Project import
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..76258e6
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,136 @@
+#
+#    Copyright (c) 2010-2014 Nest, Inc.
+#    All rights reserved.
+#
+#    This document is the property of Nest. It is considered
+#    confidential and proprietary information.
+#
+#    This document may not be reproduced or transmitted in any form,
+#    in whole or in part, without the express written permission of
+#    Nest.
+#
+#    Description:
+#      This file is the make file for the GNU partition editor,
+#      parted.
+#
+
+BuildConfigSpecialized	:= No
+BuildProductSpecialized	:= No
+
+include pre.mak
+
+PackageName		:= parted
+
+PackageExtension	:= tar.gz
+PackageSeparator	:= -
+
+PackagePatchArgs	:= -p0
+
+PackageArchive		:= $(PackageName).$(PackageExtension)
+PackageSourceDir	:= $(PackageName)$(PackageSeparator)$(PackageVersion)
+
+PackageBuildMakefile	= $(call GenerateBuildPaths,Makefile)
+
+LicenseSourceFile	:= $(PackageSourceDir)/COPYING
+
+CleanPaths		+= $(PackageLicenseFile)
+
+UUIDDir         	:= sw/tps/e2fsprogs
+UUIDIncDir      	= $(call GenerateResultPaths,$(UUIDDir),usr/include)
+UUIDLibDir      	= $(call GenerateResultPaths,$(UUIDDir),usr/lib)
+
+all: $(PackageDefaultGoal)
+
+# Generate the package license contents.
+
+$(LicenseSourceFile): source
+
+$(PackageLicenseFile): $(LicenseSourceFile)
+	$(copy-result)
+
+# Extract the source from the archive and apply patches, if any.
+
+$(PackageSourceDir): $(PackageArchive) $(PackagePatchPaths)
+	$(expand-and-patch-package)
+
+# Prepare the sources.
+
+.PHONY: source
+source: | $(PackageSourceDir)
+
+# Patch the sources, if necessary.
+
+.PHONY: patch
+patch: source
+
+# Generate the package build makefile.
+
+$(PackageBuildMakefile): | $(PackageSourceDir) $(BuildDirectory) $(ResultDirectory)
+	$(Verbose)cd $(BuildDirectory) && \
+	$(CURDIR)/$(PackageSourceDir)/configure \
+	CC="$(CC)" CXX="$(CXX)" AR=$(AR) NM=$(NM) RANLIB=$(RANLIB) STRIP=$(STRIP) \
+	CPPFLAGS="$(call ToolGenerateIncludeArgument,$(UUIDIncDir))" \
+	INSTALL="$(INSTALL) $(INSTALLFLAGS)" \
+	LDFLAGS="-L$(UUIDLibDir)" \
+	--build=$(HostTuple) \
+	--host=$(TargetTuple) \
+	--target=$(TargetTuple) \
+	--prefix=/usr \
+	--sysconfdir=/etc \
+	--localstatedir=/var \
+	--disable-device-mapper \
+	--disable-fs \
+	--enable-read-only \
+	--without-readline \
+	ac_cv_func_malloc_0_nonnull=yes \
+	ac_cv_func_realloc_0_nonnull=yes \
+	ac_cv_func_calloc_0_nonnull=yes \
+	--disable-static
+
+# Configure the source for building.
+
+.PHONY: configure
+configure: source $(PackageBuildMakefile)
+
+# Build the source.
+#
+# We have to unset MAKEFLAGS since they confuse the package build otherwise.
+
+.PHONY: build
+build: configure
+	$(Verbose)unset MAKEFLAGS && \
+	$(MAKE) $(JOBSFLAG) -C $(BuildDirectory) \
+	all
+
+# Stage the build to a temporary installation area.
+#
+# We have to unset MAKEFLAGS since they confuse the package build otherwise.
+#
+# We explictly remove 'libparted.la' because some packages that depend
+# on libparted use libtool. If libtool finds a '*.la' file for a
+# library, it uses the value of 'libdir=<dir>' it finds. In our case,
+# since '--prefix=/usr' this value is '/usr/lib'. It then resolves
+# '-lparted' to '/usr/lib/libparted.so'. In a cross-compilation
+# environment, this is likely to be neither the right architecture nor
+# the right version to link against. In short, we lose.
+#
+# We could also handle this by removing DESTDIR and setting the prefix
+# to $(ResultDirectory); however, that results in libtool hard-coding
+# $(ResultDirectory) as the RPATH in the linked executables which is
+# NOT what we want either. We lose again.
+#
+# By removing the '*.la' file, we win by ensuring neither a misdirected
+# link nor an RPATH.
+
+.PHONY: stage
+stage: build | $(ResultDirectory)
+	$(Verbose)unset MAKEFLAGS && \
+	$(MAKE) $(JOBSFLAG) -C $(BuildDirectory) DESTDIR=$(ResultDirectory) install
+	$(Verbose)$(RM) $(RMFLAGS) $(call GenerateResultPaths,,usr/lib/libparted.la)
+
+clean:
+	$(Verbose)$(RM) $(RMFLAGS) -r $(PackageSourceDir)
+	$(Verbose)$(RM) $(RMFLAGS) -r $(BuildDirectory)
+	$(Verbose)$(RM) $(RMFLAGS) -r $(ResultDirectory)
+
+include post.mak
diff --git a/parted-1.8.7/.prev-version b/parted-1.8.7/.prev-version
new file mode 100644
index 0000000..6259340
--- /dev/null
+++ b/parted-1.8.7/.prev-version
@@ -0,0 +1 @@
+1.8
diff --git a/parted-1.8.7/ABOUT-NLS b/parted-1.8.7/ABOUT-NLS
new file mode 100644
index 0000000..3575535
--- /dev/null
+++ b/parted-1.8.7/ABOUT-NLS
@@ -0,0 +1,1111 @@
+1 Notes on the Free Translation Project
+***************************************
+
+Free software is going international!  The Free Translation Project is
+a way to get maintainers of free software, translators, and users all
+together, so that free software will gradually become able to speak many
+languages.  A few packages already provide translations for their
+messages.
+
+   If you found this `ABOUT-NLS' file inside a distribution, you may
+assume that the distributed package does use GNU `gettext' internally,
+itself available at your nearest GNU archive site.  But you do _not_
+need to install GNU `gettext' prior to configuring, installing or using
+this package with messages translated.
+
+   Installers will find here some useful hints.  These notes also
+explain how users should proceed for getting the programs to use the
+available translations.  They tell how people wanting to contribute and
+work on translations can contact the appropriate team.
+
+   When reporting bugs in the `intl/' directory or bugs which may be
+related to internationalization, you should tell about the version of
+`gettext' which is used.  The information can be found in the
+`intl/VERSION' file, in internationalized packages.
+
+1.1 Quick configuration advice
+==============================
+
+If you want to exploit the full power of internationalization, you
+should configure it using
+
+     ./configure --with-included-gettext
+
+to force usage of internationalizing routines provided within this
+package, despite the existence of internationalizing capabilities in the
+operating system where this package is being installed.  So far, only
+the `gettext' implementation in the GNU C library version 2 provides as
+many features (such as locale alias, message inheritance, automatic
+charset conversion or plural form handling) as the implementation here.
+It is also not possible to offer this additional functionality on top
+of a `catgets' implementation.  Future versions of GNU `gettext' will
+very likely convey even more functionality.  So it might be a good idea
+to change to GNU `gettext' as soon as possible.
+
+   So you need _not_ provide this option if you are using GNU libc 2 or
+you have installed a recent copy of the GNU gettext package with the
+included `libintl'.
+
+1.2 INSTALL Matters
+===================
+
+Some packages are "localizable" when properly installed; the programs
+they contain can be made to speak your own native language.  Most such
+packages use GNU `gettext'.  Other packages have their own ways to
+internationalization, predating GNU `gettext'.
+
+   By default, this package will be installed to allow translation of
+messages.  It will automatically detect whether the system already
+provides the GNU `gettext' functions.  If not, the included GNU
+`gettext' library will be used.  This library is wholly contained
+within this package, usually in the `intl/' subdirectory, so prior
+installation of the GNU `gettext' package is _not_ required.
+Installers may use special options at configuration time for changing
+the default behaviour.  The commands:
+
+     ./configure --with-included-gettext
+     ./configure --disable-nls
+
+will, respectively, bypass any pre-existing `gettext' to use the
+internationalizing routines provided within this package, or else,
+_totally_ disable translation of messages.
+
+   When you already have GNU `gettext' installed on your system and run
+configure without an option for your new package, `configure' will
+probably detect the previously built and installed `libintl.a' file and
+will decide to use this.  This might not be desirable.  You should use
+the more recent version of the GNU `gettext' library.  I.e. if the file
+`intl/VERSION' shows that the library which comes with this package is
+more recent, you should use
+
+     ./configure --with-included-gettext
+
+to prevent auto-detection.
+
+   The configuration process will not test for the `catgets' function
+and therefore it will not be used.  The reason is that even an
+emulation of `gettext' on top of `catgets' could not provide all the
+extensions of the GNU `gettext' library.
+
+   Internationalized packages usually have many `po/LL.po' files, where
+LL gives an ISO 639 two-letter code identifying the language.  Unless
+translations have been forbidden at `configure' time by using the
+`--disable-nls' switch, all available translations are installed
+together with the package.  However, the environment variable `LINGUAS'
+may be set, prior to configuration, to limit the installed set.
+`LINGUAS' should then contain a space separated list of two-letter
+codes, stating which languages are allowed.
+
+1.3 Using This Package
+======================
+
+As a user, if your language has been installed for this package, you
+only have to set the `LANG' environment variable to the appropriate
+`LL_CC' combination.  Here `LL' is an ISO 639 two-letter language code,
+and `CC' is an ISO 3166 two-letter country code.  For example, let's
+suppose that you speak German and live in Germany.  At the shell
+prompt, merely execute `setenv LANG de_DE' (in `csh'),
+`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
+This can be done from your `.login' or `.profile' file, once and for
+all.
+
+   You might think that the country code specification is redundant.
+But in fact, some languages have dialects in different countries.  For
+example, `de_AT' is used for Austria, and `pt_BR' for Brazil.  The
+country code serves to distinguish the dialects.
+
+   The locale naming convention of `LL_CC', with `LL' denoting the
+language and `CC' denoting the country, is the one use on systems based
+on GNU libc.  On other systems, some variations of this scheme are
+used, such as `LL' or `LL_CC.ENCODING'.  You can get the list of
+locales supported by your system for your language by running the
+command `locale -a | grep '^LL''.
+
+   Not all programs have translations for all languages.  By default, an
+English message is shown in place of a nonexistent translation.  If you
+understand other languages, you can set up a priority list of languages.
+This is done through a different environment variable, called
+`LANGUAGE'.  GNU `gettext' gives preference to `LANGUAGE' over `LANG'
+for the purpose of message handling, but you still need to have `LANG'
+set to the primary language; this is required by other parts of the
+system libraries.  For example, some Swedish users who would rather
+read translations in German than English for when Swedish is not
+available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
+
+   Special advice for Norwegian users: The language code for Norwegian
+bokma*l changed from `no' to `nb' recently (in 2003).  During the
+transition period, while some message catalogs for this language are
+installed under `nb' and some older ones under `no', it's recommended
+for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and
+older translations are used.
+
+   In the `LANGUAGE' environment variable, but not in the `LANG'
+environment variable, `LL_CC' combinations can be abbreviated as `LL'
+to denote the language's main dialect.  For example, `de' is equivalent
+to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
+(Portuguese as spoken in Portugal) in this context.
+
+1.4 Translating Teams
+=====================
+
+For the Free Translation Project to be a success, we need interested
+people who like their own language and write it well, and who are also
+able to synergize with other translators speaking the same language.
+Each translation team has its own mailing list.  The up-to-date list of
+teams can be found at the Free Translation Project's homepage,
+`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams"
+area.
+
+   If you'd like to volunteer to _work_ at translating messages, you
+should become a member of the translating team for your own language.
+The subscribing address is _not_ the same as the list itself, it has
+`-request' appended.  For example, speakers of Swedish can send a
+message to `sv-request@li.org', having this message body:
+
+     subscribe
+
+   Keep in mind that team members are expected to participate
+_actively_ in translations, or at solving translational difficulties,
+rather than merely lurking around.  If your team does not exist yet and
+you want to start one, or if you are unsure about what to do or how to
+get started, please write to `translation@iro.umontreal.ca' to reach the
+coordinator for all translator teams.
+
+   The English team is special.  It works at improving and uniformizing
+the terminology in use.  Proven linguistic skill are praised more than
+programming skill, here.
+
+1.5 Available Packages
+======================
+
+Languages are not equally supported in all packages.  The following
+matrix shows the current state of internationalization, as of July
+2006.  The matrix shows, in regard of each package, for which languages
+PO files have been submitted to translation coordination, with a
+translation percentage of at least 50%.
+
+     Ready PO files       af am ar az be bg bs ca cs cy da de el en en_GB eo
+                        +----------------------------------------------------+
+     GNUnet             |                                  []                |
+     a2ps               |             []                [] [] []     []      |
+     aegis              |                                  ()                |
+     ant-phone          |                                  ()                |
+     anubis             |                                  []                |
+     ap-utils           |                                                    |
+     aspell             |                         []    [] []        []      |
+     bash               |                      []          []             [] |
+     batchelor          |                                  []                |
+     bfd                |                                                    |
+     bibshelf           |                                  []                |
+     binutils           |                               []                   |
+     bison              |                               [] []                |
+     bison-runtime      |                                  []                |
+     bluez-pin          | []                      []       [] []          [] |
+     cflow              |                               []                   |
+     clisp              |                                  []    []          |
+     console-tools      |                         []       []                |
+     coreutils          |                []    []       [] []                |
+     cpio               |                                                    |
+     cpplib             |                      []       [] []                |
+     cryptonit          |                                  []                |
+     darkstat           |                []             () []                |
+     dialog             |                      [] [] [] [] [] []             |
+     diffutils          |                      [] []    [] [] []          [] |
+     doodle             |                                  []                |
+     e2fsprogs          |                         []       []                |
+     enscript           |                      []       [] []        []      |
+     error              |                      []       [] []        []      |
+     fetchmail          |                      []       [] () []             |
+     fileutils          |                               [] []                |
+     findutils          |                []    []       []                   |
+     flex               |                      []       [] []                |
+     fslint             |                                  []                |
+     gas                |                                                    |
+     gawk               |                      []       [] []                |
+     gbiff              |                                  []                |
+     gcal               |                      []                            |
+     gcc                |                                  []                |
+     gettext-examples   | []                   []          [] []          [] |
+     gettext-runtime    |             []       []       [] []             [] |
+     gettext-tools      |                      []          []                |
+     gimp-print         |                         []    [] []        []      |
+     gip                |                []                                  |
+     gliv               |                                  []                |
+     glunarclock        |                []                                  |
+     gmult              | []                               []                |
+     gnubiff            |                                  ()                |
+     gnucash            |                                  () ()     []      |
+     gnucash-glossary   |                               [] ()                |
+     gnuedu             |                                                    |
+     gnulib             | []          [] []    []       [] []                |
+     gnunet-gtk         |                                                    |
+     gnutls             |                                                    |
+     gpe-aerial         |                         []       []                |
+     gpe-beam           |                         []       []                |
+     gpe-calendar       |                         []       []                |
+     gpe-clock          |                         []       []                |
+     gpe-conf           |                         []       []                |
+     gpe-contacts       |                                                    |
+     gpe-edit           |                         []                         |
+     gpe-filemanager    |                                                    |
+     gpe-go             |                         []                         |
+     gpe-login          |                         []       []                |
+     gpe-ownerinfo      |                         []       []                |
+     gpe-package        |                                                    |
+     gpe-sketchbook     |                         []       []                |
+     gpe-su             |                         []       []                |
+     gpe-taskmanager    |                         []       []                |
+     gpe-timesheet      |                         []                         |
+     gpe-today          |                         []       []                |
+     gpe-todo           |                                                    |
+     gphoto2            |                         []    [] []        []      |
+     gprof              |                               [] []                |
+     gpsdrive           |                                  ()    ()          |
+     gramadoir          | []                               []                |
+     grep               | []          [] []    []          [] []             |
+     gretl              |                                                    |
+     gsasl              |                                                    |
+     gss                |                                                    |
+     gst-plugins        | []                   [] []    []                   |
+     gst-plugins-base   |                []    []       []                   |
+     gst-plugins-good   | []       []    []    [] []    []           []      |
+     gstreamer          | []             []    [] []    [] []        []      |
+     gtick              | []                               ()                |
+     gtkam              |                         []    [] []                |
+     gtkorphan          |                []                []                |
+     gtkspell           |             []                   [] []          [] |
+     gutenprint         |                               []                   |
+     hello              |                      []       [] [] []          [] |
+     id-utils           |                               [] []                |
+     impost             |                                                    |
+     indent             |                      []          []             [] |
+     iso_3166           |                                  []             [] |
+     iso_3166_1         |                      [] []    [] [] []             |
+     iso_3166_2         |                                                    |
+     iso_3166_3         |                                  []                |
+     iso_4217           |                                  []                |
+     iso_639            |                                  []             [] |
+     jpilot             |                         []                         |
+     jtag               |                                                    |
+     jwhois             |                                                    |
+     kbd                |                         []    [] [] []             |
+     keytouch           |                                                    |
+     keytouch-editor    |                                                    |
+     keytouch-keyboa... |                                                    |
+     latrine            |                                  ()                |
+     ld                 |                               []                   |
+     leafpad            |                []    [] []       [] []             |
+     libc               |                      [] []    [] [] []             |
+     libexif            |                                  []                |
+     libextractor       |                                  []                |
+     libgpewidget       |                         []    [] []                |
+     libgpg-error       |                                  []                |
+     libgphoto2         |                               [] []                |
+     libgphoto2_port    |                               [] []                |
+     libgsasl           |                                                    |
+     libiconv           |                                  []             [] |
+     libidn             |                               []                [] |
+     lifelines          |                               [] ()                |
+     lilypond           |                                  []                |
+     lingoteach         |                                                    |
+     lynx               |                      [] []    [] []                |
+     m4                 |                         []    [] [] []             |
+     mailutils          |                      []                            |
+     make               |                               [] []                |
+     man-db             |                      [] ()    [] []                |
+     minicom            |                         []    [] []                |
+     mysecretdiary      |                               [] []                |
+     nano               |                []    [] ()       []                |
+     nano_1_0           |                      [] ()    [] []                |
+     opcodes            |                                  []                |
+     parted             |                                                    |
+     pilot-qof          |                                            []      |
+     psmisc             |                []                                  |
+     pwdutils           |                                                    |
+     python             |                                                    |
+     qof                |                                                    |
+     radius             |                      []                            |
+     recode             |             []       []       [] [] []          [] |
+     rpm                |                         []    []                   |
+     screem             |                                                    |
+     scrollkeeper       |          [] []       [] [] [] [] []        []      |
+     sed                |                      []          []             [] |
+     sh-utils           |                               [] []                |
+     shared-mime-info   |                []       []                      [] |
+     sharutils          |                []    [] []    [] [] []             |
+     shishi             |                                                    |
+     silky              |                                                    |
+     skencil            |                               [] ()                |
+     sketch             |                               [] ()                |
+     solfege            |                                                    |
+     soundtracker       |                               [] []                |
+     sp                 |                                  []                |
+     stardict           |                         []                         |
+     system-tools-ba... |       []       [] [] [] []    [] [] []     []      |
+     tar                |                []                                  |
+     texinfo            |                               [] []             [] |
+     textutils          |                      []       [] []                |
+     tin                |                                  ()        ()      |
+     tp-robot           |                                  []                |
+     tuxpaint           | []             []             [] []        []      |
+     unicode-han-tra... |                                                    |
+     unicode-transla... |                                                    |
+     util-linux         |                      [] []    [] []                |
+     vorbis-tools       |             []          []    []           []      |
+     wastesedge         |                                  ()                |
+     wdiff              |                      []       [] []        []      |
+     wget               |                      []          []                |
+     xchat              |                []    []          [] []     []      |
+     xkeyboard-config   |                                                    |
+     xpad               |                []             []                   |
+                        +----------------------------------------------------+
+                          af am ar az be bg bs ca cs cy da de el en en_GB eo
+                          11  0  1  2  8 21  1 42 43  2 62 99 18  1  16   16
+
+                          es et eu fa fi fr  ga gl gu he hi hr hu id is it
+                        +--------------------------------------------------+
+     GNUnet             |                                                  |
+     a2ps               |    []       [] []                             () |
+     aegis              |                                                  |
+     ant-phone          |                []                                |
+     anubis             |                []                                |
+     ap-utils           |             [] []                                |
+     aspell             |                []  []                         [] |
+     bash               | []             []                    []          |
+     batchelor          |                []  []                            |
+     bfd                | []                                               |
+     bibshelf           | []                 []                         [] |
+     binutils           | []          [] []                                |
+     bison              | [] []          []  []                   []    [] |
+     bison-runtime      |    []          []  []                   []    [] |
+     bluez-pin          |             [] []  []                [] []       |
+     cflow              |                                                  |
+     clisp              | []             []                                |
+     console-tools      |                                                  |
+     coreutils          | [] []       [] []  []                []          |
+     cpio               | []             []  []                            |
+     cpplib             | []             []                                |
+     cryptonit          |                []                                |
+     darkstat           | []             ()  []                [] []       |
+     dialog             | [] [] []    [] []  []                []       [] |
+     diffutils          | []          [] []  [] []    []       [] []    [] |
+     doodle             |                    []                         [] |
+     e2fsprogs          | []             []                             [] |
+     enscript           |                []  []             []             |
+     error              | []          [] []  []                []          |
+     fetchmail          | []                                               |
+     fileutils          | [] []          []  []                []       [] |
+     findutils          |    []          []  []                []          |
+     flex               | []             []  []                            |
+     fslint             |                []                                |
+     gas                | []             []                                |
+     gawk               | []             []  []       []                   |
+     gbiff              |                []                                |
+     gcal               | []             []                                |
+     gcc                | []                                               |
+     gettext-examples   | []             []  []                []       [] |
+     gettext-runtime    | []          [] []  []                   []    [] |
+     gettext-tools      | []             []                             [] |
+     gimp-print         | []             []                                |
+     gip                | []    []       []                                |
+     gliv               |                ()                                |
+     glunarclock        |             []     []                []          |
+     gmult              |       []       []                             [] |
+     gnubiff            |                ()                             () |
+     gnucash            | ()             ()                    ()          |
+     gnucash-glossary   | []                                            [] |
+     gnuedu             | []                                               |
+     gnulib             | [] [] []    [] []  [] []             []          |
+     gnunet-gtk         |                                                  |
+     gnutls             |                                                  |
+     gpe-aerial         | []             []                                |
+     gpe-beam           | []             []                                |
+     gpe-calendar       | []             []                    [] []       |
+     gpe-clock          | []          [] []                    []          |
+     gpe-conf           |                []                                |
+     gpe-contacts       | []             []                                |
+     gpe-edit           | []             []                    [] []       |
+     gpe-filemanager    | []                                               |
+     gpe-go             | []             []                    []          |
+     gpe-login          | []             []                    []          |
+     gpe-ownerinfo      | []          [] []                    [] []       |
+     gpe-package        | []                                               |
+     gpe-sketchbook     | []             []                                |
+     gpe-su             | []          [] []                    []          |
+     gpe-taskmanager    | []          [] []                                |
+     gpe-timesheet      | []             []  []                   []       |
+     gpe-today          | []          [] []  []                            |
+     gpe-todo           | []                                               |
+     gphoto2            | []          [] []                    []       [] |
+     gprof              | []             []  []                   []       |
+     gpsdrive           | ()             ()                    []       () |
+     gramadoir          |                []  []                            |
+     grep               | [] [] []    [] []  [] []    []    [] [] []    [] |
+     gretl              | []             []                             [] |
+     gsasl              |                    []                            |
+     gss                |                []                                |
+     gst-plugins        |                []                    []       [] |
+     gst-plugins-base   |                                      []       [] |
+     gst-plugins-good   |       []                             []       [] |
+     gstreamer          |             []                       []       [] |
+     gtick              |       []    [] []  []                         [] |
+     gtkam              | []             []                    []       [] |
+     gtkorphan          |                []                             [] |
+     gtkspell           | []    []    [] []  []                         [] |
+     gutenprint         |                                      []          |
+     hello              | [] [] [] [] [] []  [] []    []    [] [] []    [] |
+     id-utils           |                []  []                [] []    [] |
+     impost             |                []  []                            |
+     indent             | [] [] []    [] []  [] []             [] []    [] |
+     iso_3166           |             [] []                    []          |
+     iso_3166_1         | []    []    [] []  []                [] []       |
+     iso_3166_2         |                []                                |
+     iso_3166_3         |                []                                |
+     iso_4217           |    []       []        []             []          |
+     iso_639            |          [] [] []  []                []          |
+     jpilot             | []             []                                |
+     jtag               |                []                                |
+     jwhois             | []             []                    [] []    [] |
+     kbd                | []             []                                |
+     keytouch           |                    []                            |
+     keytouch-editor    |                    []                            |
+     keytouch-keyboa... |                    []                            |
+     latrine            |                []  []                         [] |
+     ld                 | []             []                                |
+     leafpad            | []             []  []       []       []       [] |
+     libc               | []          [] []     []             []          |
+     libexif            | []                                               |
+     libextractor       |                    []                            |
+     libgpewidget       | []             []  []                [] []       |
+     libgpg-error       |                                                  |
+     libgphoto2         | []             []                             [] |
+     libgphoto2_port    |                []                             [] |
+     libgsasl           |                []  []                            |
+     libiconv           |                    []                            |
+     libidn             |                []                             [] |
+     lifelines          |                ()                                |
+     lilypond           |                []                                |
+     lingoteach         |                []                       []    [] |
+     lynx               |    []                                []       [] |
+     m4                 |                []  [] []                []       |
+     mailutils          | []             []                                |
+     make               | []          [] []  [] []    []    []    []       |
+     man-db             | ()                                               |
+     minicom            | []          [] []                    []          |
+     mysecretdiary      | []             []                       []       |
+     nano               |       []    () []  []                []       [] |
+     nano_1_0           | []             []     []                []    [] |
+     opcodes            | []          [] []  []                            |
+     parted             | []             []                       []    [] |
+     pilot-qof          |                                                  |
+     psmisc             |       []                             []       [] |
+     pwdutils           |                                                  |
+     python             |                                                  |
+     qof                |                                                  |
+     radius             | []             []                                |
+     recode             | []             []  [] []    []       [] []    [] |
+     rpm                |                []                       []       |
+     screem             |                                                  |
+     scrollkeeper       | []          []                       []          |
+     sed                | [] []          []  []                []          |
+     sh-utils           | [] []       [] []  []                []       [] |
+     shared-mime-info   | []    []    [] []                    []       [] |
+     sharutils          | [] []       [] []  [] []             []       [] |
+     shishi             |                                                  |
+     silky              |                []                                |
+     skencil            | []             []                                |
+     sketch             | []             []                                |
+     solfege            |                                               [] |
+     soundtracker       | []             []                             [] |
+     sp                 |                []                                |
+     stardict           |                                      []          |
+     system-tools-ba... | []    []    [] []                 [] [] []    [] |
+     tar                | [] []          []  []                []       [] |
+     texinfo            |                []           []                   |
+     textutils          | []             []  [] []             []          |
+     tin                |    []          ()                                |
+     tp-robot           |             [] []  []                []          |
+     tuxpaint           |                    []                []          |
+     unicode-han-tra... |                                                  |
+     unicode-transla... |                []  []                            |
+     util-linux         | [] []       [] []                    [] []    [] |
+     vorbis-tools       | []             []                                |
+     wastesedge         |                ()                                |
+     wdiff              | [] []          []  [] []             [] []    [] |
+     wget               |    []       [] []  []             [] [] []    [] |
+     xchat              | []    []    [] []        []    []    []       [] |
+     xkeyboard-config   |             [] []                    []       [] |
+     xpad               | []                 []                []          |
+                        +--------------------------------------------------+
+                          es et eu fa fi fr  ga gl gu he hi hr hu id is it
+                          89 21 16  2 41 119 61 14  1  8  1  6 61 30  0 53
+
+                          ja ko ku ky lg lt lv mk mn ms mt nb ne nl  nn no
+                        +--------------------------------------------------+
+     GNUnet             |                                                  |
+     a2ps               |    ()                      []          []     () |
+     aegis              |                                        ()        |
+     ant-phone          |                                        []        |
+     anubis             |                            []    []    []        |
+     ap-utils           |                            []                    |
+     aspell             |                         []             []        |
+     bash               |                                        []        |
+     batchelor          |                            []          []        |
+     bfd                |                                                  |
+     bibshelf           |                            []                    |
+     binutils           |                                                  |
+     bison              |                            []    []    []        |
+     bison-runtime      |                            []    []    []        |
+     bluez-pin          |       []                   []          []        |
+     cflow              |                                                  |
+     clisp              |                                        []        |
+     console-tools      |                                                  |
+     coreutils          |                                        []        |
+     cpio               |                                                  |
+     cpplib             |                                        []        |
+     cryptonit          |                                        []        |
+     darkstat           |                            []          []        |
+     dialog             |                            []          []        |
+     diffutils          | []                         []          []        |
+     doodle             |                                                  |
+     e2fsprogs          |                                        []        |
+     enscript           |                                        []        |
+     error              |                                        []        |
+     fetchmail          | []                                     []        |
+     fileutils          | []          []                                   |
+     findutils          |                                        []        |
+     flex               |    []                                  []        |
+     fslint             |                            []          []        |
+     gas                |                                                  |
+     gawk               | []                                     []        |
+     gbiff              |                                        []        |
+     gcal               |                                                  |
+     gcc                |                                                  |
+     gettext-examples   | []                                     []        |
+     gettext-runtime    | [] []                                  []        |
+     gettext-tools      | [] []                                            |
+     gimp-print         | []                                     []        |
+     gip                |                            []          []        |
+     gliv               |                                        []        |
+     glunarclock        |                            []          []        |
+     gmult              | []                         []                    |
+     gnubiff            |                                                  |
+     gnucash            | ()                               ()              |
+     gnucash-glossary   |                                        []        |
+     gnuedu             |                                                  |
+     gnulib             | [] []                      []          []        |
+     gnunet-gtk         |                                                  |
+     gnutls             |                                                  |
+     gpe-aerial         |                                        []        |
+     gpe-beam           |                                        []        |
+     gpe-calendar       |                                        []        |
+     gpe-clock          |    []                                  []        |
+     gpe-conf           |    []                                  []        |
+     gpe-contacts       |    []                                            |
+     gpe-edit           |    []                                  []        |
+     gpe-filemanager    |    []                                            |
+     gpe-go             |    []                                  []        |
+     gpe-login          |    []                                  []        |
+     gpe-ownerinfo      |                                        []        |
+     gpe-package        |    []                                            |
+     gpe-sketchbook     |    []                                  []        |
+     gpe-su             |    []                                  []        |
+     gpe-taskmanager    |    [] []                               []        |
+     gpe-timesheet      |                                        []        |
+     gpe-today          |                                        []        |
+     gpe-todo           |                                                  |
+     gphoto2            | []                                     []        |
+     gprof              |                                                  |
+     gpsdrive           | ()                                     ()     () |
+     gramadoir          |                                        ()        |
+     grep               | []                               []    []        |
+     gretl              |                                                  |
+     gsasl              |                                        []        |
+     gss                |                                                  |
+     gst-plugins        |                                        []        |
+     gst-plugins-base   |                                                  |
+     gst-plugins-good   |                                        []        |
+     gstreamer          |                                        []        |
+     gtick              |                                        []        |
+     gtkam              | []                                               |
+     gtkorphan          |                                        []        |
+     gtkspell           |                         []             []        |
+     gutenprint         |                                                  |
+     hello              | [] []             []       []    []    []  [] [] |
+     id-utils           |                                        []        |
+     impost             |                                                  |
+     indent             | []                                     []        |
+     iso_3166           |                                        []        |
+     iso_3166_1         |                                        []     [] |
+     iso_3166_2         |                                        []        |
+     iso_3166_3         |                                        []        |
+     iso_4217           | []                      []             []        |
+     iso_639            | []                                     []        |
+     jpilot             | ()                                     ()     () |
+     jtag               |                                                  |
+     jwhois             |                                        []        |
+     kbd                |                                        []        |
+     keytouch           |                                        []        |
+     keytouch-editor    |                                                  |
+     keytouch-keyboa... |                                                  |
+     latrine            |                                        []        |
+     ld                 |                                                  |
+     leafpad            | []             []                                |
+     libc               | [] []                            []    []     [] |
+     libexif            |                                                  |
+     libextractor       |                                                  |
+     libgpewidget       |                                        []        |
+     libgpg-error       |                                                  |
+     libgphoto2         | []                                               |
+     libgphoto2_port    | []                                               |
+     libgsasl           |                                        []        |
+     libiconv           |                                                  |
+     libidn             | []                                     []        |
+     lifelines          |                                        []        |
+     lilypond           |                                                  |
+     lingoteach         |                                        []        |
+     lynx               | []                                     []        |
+     m4                 | []                                     []        |
+     mailutils          |                                                  |
+     make               | [] []                                  []        |
+     man-db             | ()                                               |
+     minicom            | []                                               |
+     mysecretdiary      |                                        []        |
+     nano               |                            []    []    []        |
+     nano_1_0           |                            []    []        []    |
+     opcodes            |                                        []        |
+     parted             | []                                     []        |
+     pilot-qof          |                                                  |
+     psmisc             | []                               []    []        |
+     pwdutils           |                                                  |
+     python             |                                                  |
+     qof                |                                                  |
+     radius             |                                                  |
+     recode             |                                        []        |
+     rpm                | [] []                                            |
+     screem             | []                                               |
+     scrollkeeper       |                                  [] [] []  []    |
+     sed                | []                                     []        |
+     sh-utils           | []                               []              |
+     shared-mime-info   |    []          []                []    []  []    |
+     sharutils          | []                                     []        |
+     shishi             |                                                  |
+     silky              |                                        []        |
+     skencil            |                                                  |
+     sketch             |                                                  |
+     solfege            |                                                  |
+     soundtracker       |                                                  |
+     sp                 | ()                                               |
+     stardict           |                      []                []        |
+     system-tools-ba... | [] []          []                      []        |
+     tar                | []       []                            []        |
+     texinfo            | []                               []    []        |
+     textutils          | [] []                            []              |
+     tin                |                                                  |
+     tp-robot           |                                        []        |
+     tuxpaint           |                                            []    |
+     unicode-han-tra... |                                                  |
+     unicode-transla... |                                                  |
+     util-linux         | []                                     []        |
+     vorbis-tools       |                                        []        |
+     wastesedge         |                                        []        |
+     wdiff              |                            []    []              |
+     wget               | []                                     []        |
+     xchat              | [] []                []                []        |
+     xkeyboard-config   |                                        []        |
+     xpad               |    []                      []          []        |
+                        +--------------------------------------------------+
+                          ja ko ku ky lg lt lv mk mn ms mt nb ne nl  nn no
+                          40 24  2  1  1  3  1  2  3 21  0 15  1 101  5  3
+
+                          nso or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv  ta
+                        +------------------------------------------------------+
+     GNUnet             |                                                      |
+     a2ps               |           ()     []      [] []       []    [] []     |
+     aegis              |                          () ()                       |
+     ant-phone          |                          []                   []     |
+     anubis             |           []             [] []                       |
+     ap-utils           |           ()                                         |
+     aspell             |                          [] []                       |
+     bash               |                  []      [] []                       |
+     batchelor          |                          []                   []     |
+     bfd                |                                                      |
+     bibshelf           |                                               []     |
+     binutils           |                             []                []     |
+     bison              |           []     []      [] []                []     |
+     bison-runtime      |           []             []          []       []     |
+     bluez-pin          |           []     []   [] [] []    [] []    [] []     |
+     cflow              |           []                                         |
+     clisp              |                             []                       |
+     console-tools      |                             []                       |
+     coreutils          |           []                []       []       []     |
+     cpio               |           []                []                []     |
+     cpplib             |                                               []     |
+     cryptonit          |                  []                           []     |
+     darkstat           |           []     []      []       []       [] []     |
+     dialog             |           [] []  []   [] [] [] []          [] []     |
+     diffutils          |           []     []      [] []             [] []     |
+     doodle             |                                         []    []     |
+     e2fsprogs          |           []                                  []     |
+     enscript           |                  []      [] []       []       []     |
+     error              |                  []      []       []          []     |
+     fetchmail          |           []                []          []           |
+     fileutils          |           []             [] []       []       []     |
+     findutils          |           [] []          []       [] []       []     |
+     flex               |           []     []      [] []                []     |
+     fslint             |                  []      []                [] []     |
+     gas                |                                                      |
+     gawk               |           []     []      []                   []     |
+     gbiff              |                          []                          |
+     gcal               |                                               []     |
+     gcc                |                                               []     |
+     gettext-examples   |           [] []          [] []    [] []    [] []     |
+     gettext-runtime    |           [] []          [] []    [] []    [] []     |
+     gettext-tools      |           []             [] []    [] []    [] []     |
+     gimp-print         |                                   []          []     |
+     gip                |                       []          []       [] []     |
+     gliv               |                  []      []       []          []     |
+     glunarclock        |                  []      [] []    []       [] []     |
+     gmult              |                       [] []                [] []     |
+     gnubiff            |                          ()                          |
+     gnucash            |           ()                                  []     |
+     gnucash-glossary   |              []                   []          []     |
+     gnuedu             |                                                      |
+     gnulib             |           []             [] []       []       []     |
+     gnunet-gtk         |                                               []     |
+     gnutls             |           []                                  []     |
+     gpe-aerial         |              []  []      [] []       []    [] []     |
+     gpe-beam           |              []  []      [] []       []    [] []     |
+     gpe-calendar       |              []  []      [] []    [] []    [] []     |
+     gpe-clock          |              []  []      [] []    [] []    [] []     |
+     gpe-conf           |              []  []      [] []    [] []       []     |
+     gpe-contacts       |                          [] []       []    [] []     |
+     gpe-edit           |              []  []      [] []    [] []    [] []     |
+     gpe-filemanager    |                                      []       []     |
+     gpe-go             |                  []      [] []       []    [] []     |
+     gpe-login          |              []  []      [] []    [] []    [] []     |
+     gpe-ownerinfo      |              []  []      [] []    [] []    [] []     |
+     gpe-package        |                                      []       []     |
+     gpe-sketchbook     |              []  []      [] []    [] []    [] []     |
+     gpe-su             |              []  []      [] []    [] []    [] []     |
+     gpe-taskmanager    |              []  []      [] []    [] []    [] []     |
+     gpe-timesheet      |              []  []      [] []    [] []    [] []     |
+     gpe-today          |              []  []      [] []    [] []    [] []     |
+     gpe-todo           |                             []       []    [] []     |
+     gphoto2            |           []             []       []       [] []     |
+     gprof              |                  []      []                   []     |
+     gpsdrive           |        []                []                   []     |
+     gramadoir          |                                   []          []     |
+     grep               |           [] []  []      [] []       []    [] []     |
+     gretl              |           []                                         |
+     gsasl              |           []                                  []     |
+     gss                |           []             []                   []     |
+     gst-plugins        |     []                                  [] [] []     |
+     gst-plugins-base   |                                               []     |
+     gst-plugins-good   |     []                                  [] [] []     |
+     gstreamer          |                                         [] [] []     |
+     gtick              |                          [] []                []     |
+     gtkam              |           []     []         []                []     |
+     gtkorphan          |                                               []     |
+     gtkspell           |                  []   [] [] []    [] []    [] []     |
+     gutenprint         |                                               []     |
+     hello              |           []     []      [] []    [] []    [] []     |
+     id-utils           |                  []      [] []                []     |
+     impost             |                                               []     |
+     indent             |                  []      [] []    []       [] []     |
+     iso_3166           |              []                []    [] [] [] []     |
+     iso_3166_1         |                                   [] [] [] []        |
+     iso_3166_2         |                                                      |
+     iso_3166_3         |                          []    []    []    []        |
+     iso_4217           |                                []    []    [] []     |
+     iso_639            |                                []    []    [] []     |
+     jpilot             |                                                      |
+     jtag               |                                   []                 |
+     jwhois             |           []     []      []                   []     |
+     kbd                |           []             []                   []     |
+     keytouch           |                                               []     |
+     keytouch-editor    |                                               []     |
+     keytouch-keyboa... |                                               []     |
+     latrine            |                          []                   []     |
+     ld                 |                                               []     |
+     leafpad            |           [] []             []    []          []  [] |
+     libc               |           []     []         []    []          []     |
+     libexif            |           []                                         |
+     libextractor       |                          []                   []     |
+     libgpewidget       |              []  []      []       [] []    [] []     |
+     libgpg-error       |           []             []                          |
+     libgphoto2         |           []                                         |
+     libgphoto2_port    |           []                []                []     |
+     libgsasl           |           []             []                [] []     |
+     libiconv           |                                                      |
+     libidn             |           []                               [] ()     |
+     lifelines          |           []                                  []     |
+     lilypond           |                                                      |
+     lingoteach         |                  []                                  |
+     lynx               |                  []         []                []     |
+     m4                 |           []     []      [] []                []     |
+     mailutils          |           []             [] []                []     |
+     make               |           []     []         []                []     |
+     man-db             |                          []                   []     |
+     minicom            |           []     []      [] []                []     |
+     mysecretdiary      |                  []      [] []                []     |
+     nano               |                          []                   []     |
+     nano_1_0           |           []             [] []                []     |
+     opcodes            |                          []                   []     |
+     parted             |           []                                         |
+     pilot-qof          |                                               []     |
+     psmisc             |           []                                  []     |
+     pwdutils           |           []                                  []     |
+     python             |                                                      |
+     qof                |                                               []     |
+     radius             |           []                []                       |
+     recode             |           [] []  []      [] []       []       []     |
+     rpm                |           [] []             []                []     |
+     screem             |                                                      |
+     scrollkeeper       |           []             [] []    []    [] [] []     |
+     sed                |           [] []  []      [] []    [] []    [] []     |
+     sh-utils           |                             []       []    []        |
+     shared-mime-info   |              []  []                     [] [] []     |
+     sharutils          |           []                []             [] []     |
+     shishi             |           []                                         |
+     silky              |                                   []                 |
+     skencil            |              []  []                           []     |
+     sketch             |              []  []                           []     |
+     solfege            |                                               []     |
+     soundtracker       |                                   []          []     |
+     sp                 |                                                      |
+     stardict           |                             []    []          []     |
+     system-tools-ba... |        [] [] []  []      []             [] [] []  [] |
+     tar                |           []             [] []       []       []     |
+     texinfo            |           []             [] []                []     |
+     textutils          |                             []       []       []     |
+     tin                |                             ()                       |
+     tp-robot           |                             []                       |
+     tuxpaint           |              []                      [] [] [] []     |
+     unicode-han-tra... |                                                      |
+     unicode-transla... |                                                      |
+     util-linux         |                  []         []       []       []     |
+     vorbis-tools       |                          [] []                       |
+     wastesedge         |                                                      |
+     wdiff              |           []     []      [] []    []          []     |
+     wget               |              []             []    []          []     |
+     xchat              |        []                   []    [] [] [] [] []     |
+     xkeyboard-config   |                                      []       []     |
+     xpad               |                                   [] []       []     |
+                        +------------------------------------------------------+
+                          nso or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv  ta
+                           0   2  3 58 31  53    5 76 72  5 42 48 12 51 130  2
+
+                          tg th tk tr uk ven vi  wa xh zh_CN zh_HK zh_TW zu
+                        +---------------------------------------------------+
+     GNUnet             |                    []                             |  2
+     a2ps               |          [] []     []                             | 19
+     aegis              |                                                   |  0
+     ant-phone          |          []        []                             |  6
+     anubis             |          [] []     []                             | 11
+     ap-utils           |             ()     []                             |  4
+     aspell             |             []     []  []                         | 14
+     bash               |                    []                             | 11
+     batchelor          |          []        []                             |  9
+     bfd                |                                                   |  1
+     bibshelf           |                    []                             |  7
+     binutils           |          []        []                     []      |  9
+     bison              |          []        []                     []      | 19
+     bison-runtime      |                    []         []          []      | 16
+     bluez-pin          |          [] []     []  []     []          []      | 28
+     cflow              |             []     []                             |  4
+     clisp              |                                                   |  6
+     console-tools      |          []        []                             |  5
+     coreutils          |          []        []                             | 17
+     cpio               |          [] []     []                             |  9
+     cpplib             |          []        []         []          []      | 11
+     cryptonit          |                                                   |  5
+     darkstat           |                    []         ()          ()      | 15
+     dialog             |          [] []     []         []          []      | 30
+     diffutils          |          []        []         []          []      | 28
+     doodle             |                    []                             |  6
+     e2fsprogs          |          []        []                             | 10
+     enscript           |          [] []     []                             | 16
+     error              |          []        []         []          []      | 18
+     fetchmail          |          []        []                             | 12
+     fileutils          |          []                   []          []      | 18
+     findutils          |          []        []                     []      | 17
+     flex               |          []        []                             | 15
+     fslint             |                    []                             |  9
+     gas                |          []                                       |  3
+     gawk               |          []        []                             | 15
+     gbiff              |                    []                             |  5
+     gcal               |          []                                       |  5
+     gcc                |          []                   []          []      |  6
+     gettext-examples   |          [] []     []         []    []    []      | 26
+     gettext-runtime    |          [] []     []         []    []    []      | 28
+     gettext-tools      |          [] []     []         []          []      | 19
+     gimp-print         |             []     []                             | 12
+     gip                |                    []                     []      | 12
+     gliv               |          []        []                             |  8
+     glunarclock        |                    []  []                 []      | 15
+     gmult              |          []        []         []          []      | 15
+     gnubiff            |                    []                             |  1
+     gnucash            |          ()                                       |  2
+     gnucash-glossary   |                    []                     []      |  9
+     gnuedu             |                    []                             |  2
+     gnulib             |          [] []     []         []          []      | 28
+     gnunet-gtk         |                                                   |  1
+     gnutls             |                                                   |  2
+     gpe-aerial         |                    []         []                  | 14
+     gpe-beam           |                    []         []                  | 14
+     gpe-calendar       |                    []  []     []          []      | 19
+     gpe-clock          |          []        []  []     []                  | 20
+     gpe-conf           |                    []         []                  | 14
+     gpe-contacts       |                    []         []                  | 10
+     gpe-edit           |          []        []  []                 []      | 19
+     gpe-filemanager    |                    []                             |  5
+     gpe-go             |          []        []                             | 14
+     gpe-login          |          []        []  []     []          []      | 20
+     gpe-ownerinfo      |          []        []         []          []      | 20
+     gpe-package        |                    []                             |  5
+     gpe-sketchbook     |          []        []                             | 16
+     gpe-su             |          []        []         []                  | 19
+     gpe-taskmanager    |          []        []         []                  | 19
+     gpe-timesheet      |          []        []         []          []      | 18
+     gpe-today          |          []        []  []     []          []      | 20
+     gpe-todo           |                    []                             |  6
+     gphoto2            |             []     []         []          []      | 20
+     gprof              |          []        []                             | 11
+     gpsdrive           |                                                   |  4
+     gramadoir          |                    []                             |  7
+     grep               |          [] []     []                     []      | 33
+     gretl              |                                                   |  4
+     gsasl              |                    []         []                  |  6
+     gss                |                    []                             |  5
+     gst-plugins        |             []     []                     []      | 15
+     gst-plugins-base   |             []     []         []                  |  9
+     gst-plugins-good   |             []     []         []                  | 18
+     gstreamer          |          [] []     []                             | 17
+     gtick              |                    []                             | 11
+     gtkam              |                    []                             | 13
+     gtkorphan          |                    []                             |  7
+     gtkspell           |             []     []  []     []    []    []      | 26
+     gutenprint         |                                                   |  3
+     hello              |          [] []     []         []          []      | 39
+     id-utils           |          []        []                             | 14
+     impost             |                    []                             |  4
+     indent             |          []        []         []          []      | 25
+     iso_3166           |       [] []        []                             | 15
+     iso_3166_1         |          []            []                         | 20
+     iso_3166_2         |                                                   |  2
+     iso_3166_3         |                        []     []                  |  9
+     iso_4217           |          []        []                             | 14
+     iso_639            |                    []                             | 14
+     jpilot             |          [] []     []         []                  |  7
+     jtag               |                    []                             |  3
+     jwhois             |          []        []                     []      | 13
+     kbd                |          []        []                             | 12
+     keytouch           |                    []                             |  4
+     keytouch-editor    |                                                   |  2
+     keytouch-keyboa... |                                                   |  2
+     latrine            |          []        []                             |  8
+     ld                 |          []        []         []          []      |  8
+     leafpad            |          []        []         []          []      | 23
+     libc               |          []                   []          []      | 23
+     libexif            |                    []                             |  4
+     libextractor       |                    []                             |  5
+     libgpewidget       |                    []  []     []                  | 19
+     libgpg-error       |                    []                             |  4
+     libgphoto2         |             []                                    |  8
+     libgphoto2_port    |             []     []                     []      | 11
+     libgsasl           |                    []                             |  8
+     libiconv           |                    []                             |  4
+     libidn             |                    []         []                  | 10
+     lifelines          |                                                   |  4
+     lilypond           |                                                   |  2
+     lingoteach         |                    []                             |  6
+     lynx               |          [] []     []                             | 15
+     m4                 |                    []         []          []      | 18
+     mailutils          |             []                                    |  8
+     make               |          []        []         []                  | 20
+     man-db             |                    []                             |  6
+     minicom            |                    []                             | 14
+     mysecretdiary      |          []        []                             | 12
+     nano               |                    []                     []      | 15
+     nano_1_0           |          [] []     []                             | 18
+     opcodes            |          []        []                             | 10
+     parted             |          [] []                            []      | 10
+     pilot-qof          |                    []                             |  3
+     psmisc             |                    []                             | 10
+     pwdutils           |                    []                             |  3
+     python             |                                                   |  0
+     qof                |                    []                             |  2
+     radius             |             []                                    |  6
+     recode             |          []        []         []                  | 25
+     rpm                |          [] []     []                     []      | 14
+     screem             |                    []                             |  2
+     scrollkeeper       |          [] []     []                     []      | 26
+     sed                |          []        []                     []      | 22
+     sh-utils           |          []                                       | 15
+     shared-mime-info   |             []     []         []          []      | 23
+     sharutils          |          []        []                     []      | 23
+     shishi             |                                                   |  1
+     silky              |                    []                             |  4
+     skencil            |                    []                             |  7
+     sketch             |                                                   |  6
+     solfege            |                                                   |  2
+     soundtracker       |          []        []                             |  9
+     sp                 |          []                                       |  3
+     stardict           |             []     []         []          []      | 11
+     system-tools-ba... |    []    [] []     []     []  []          []      | 37
+     tar                |          [] []     []                     []      | 19
+     texinfo            |          []        []         []                  | 15
+     textutils          |          []                   []          []      | 17
+     tin                |                                                   |  1
+     tp-robot           |                    []         []          []      | 10
+     tuxpaint           |                    []  []                 []      | 16
+     unicode-han-tra... |                                                   |  0
+     unicode-transla... |                                                   |  2
+     util-linux         |          [] []     []                             | 20
+     vorbis-tools       |             []     []                             | 11
+     wastesedge         |                                                   |  1
+     wdiff              |          []        []                             | 22
+     wget               |          []        []                     []      | 19
+     xchat              |             []     []         []          []      | 28
+     xkeyboard-config   |          [] []     []                     []      | 11
+     xpad               |                    []         []          []      | 14
+                        +---------------------------------------------------+
+       77 teams           tg th tk tr uk ven vi  wa xh zh_CN zh_HK zh_TW zu
+      172 domains          0  1  1 78 39  0  135 13  1  50     3    54    0  2054
+
+   Some counters in the preceding matrix are higher than the number of
+visible blocks let us expect.  This is because a few extra PO files are
+used for implementing regional variants of languages, or language
+dialects.
+
+   For a PO file in the matrix above to be effective, the package to
+which it applies should also have been internationalized and
+distributed as such by its maintainer.  There might be an observable
+lag between the mere existence a PO file and its wide availability in a
+distribution.
+
+   If July 2006 seems to be old, you may fetch a more recent copy of
+this `ABOUT-NLS' file on most GNU archive sites.  The most up-to-date
+matrix with full percentage details can be found at
+`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
+
+1.6 Using `gettext' in new packages
+===================================
+
+If you are writing a freely available program and want to
+internationalize it you are welcome to use GNU `gettext' in your
+package.  Of course you have to respect the GNU Library General Public
+License which covers the use of the GNU `gettext' library.  This means
+in particular that even non-free programs can use `libintl' as a shared
+library, whereas only free software can use `libintl' as a static
+library or use modified versions of `libintl'.
+
+   Once the sources are changed appropriately and the setup can handle
+the use of `gettext' the only thing missing are the translations.  The
+Free Translation Project is also available for packages which are not
+developed inside the GNU project.  Therefore the information given above
+applies also for every other Free Software Project.  Contact
+`translation@iro.umontreal.ca' to make the `.pot' files available to
+the translation teams.
+
diff --git a/parted-1.8.7/AUTHORS b/parted-1.8.7/AUTHORS
new file mode 100644
index 0000000..e955e6f
--- /dev/null
+++ b/parted-1.8.7/AUTHORS
@@ -0,0 +1,233 @@
+This file is part of GNU Parted
+Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+              Free Software Foundation Inc.
+
+This file may be modified and/or distributed without restriction.  This is
+not an invitation to misrepresent who contributed to GNU Parted.
+
+-------------------------------------------------------------------------------
+
+We need to keep track of copyright (see the Maintainer HOWTO on www.gnu.org).
+
+
+Leslie Patrick Polzer   <polzer@gnu.org>
+        * parts of 1.6.24 PedUnit API
+        * GPT pth_* functions and block size fixes
+        * PED_SECTOR_SIZE -> PED_SECTOR_SIZE_DEFAULT
+        * debugging framework
+        * ext2 "strange layout" fix (experimental)
+        * support for physical block sizes
+        * SCO BFS support
+
+        http://nic-nac-project.de/~skypher/
+
+        Snail Mail:
+        Am Kirchberg 15
+        89537 Giengen
+        Germany
+
+Andrew Clausen          <clausen@gnu.org>
+        * all FAT code (libparted/fs_fat)
+        * all linux-swap code (libparted/fs_linux_swap)
+        * some reiserfs glue code (libparted/fs_reiserfs) with Umanets
+        * most of the API (with lots of discussion with Lennert Buytenhek)
+          (include/parted/*)
+        * generic filesystem code (filesys.c) and device code (device.c)
+        * exception code (exception.c, debug.c)
+        * partition table code (disk.c)
+        * dos partition support (disk_dos.c)
+        * mac partition support (disk_mac.c)
+        * mips partition support (disk_mips.c)
+        * loopback support (disk_loop.c)
+        * some of the PC98 code (disk_pc98.c), with Masahiro Sakai.
+        * misc. hacking on all disk_*.c code
+        * low-level I/O code (device.c, geom.c, linux.c)
+          - init_scsi() stolen from gnome-gfdisk via Matt Wilson.
+        * constraint solver (natmath.c, constraint.c)
+        * command-line, and fdisk-like frontend (parted/*)
+        * stubs for ntfs, hfs, xfs
+        * hacked on libparted/fs_ext2 a fair bit (bug fixes, error handling,
+        support for > 1024 groups, etc.)
+        * libparted/mbr.s (the MBR boot loader code)
+        * misc hacking on GNU/Hurd port
+        * major surgery on GUID Partition Table (GPT) support (disk_gpt.[ch])
+        * progress meter support (libparted/timer.c include/parted/timer.h)
+
+        Snail mail:
+        18 Shaw St
+        Ashwood, 3147
+        Australia
+
+Lennert Buytenhek       <buytenh@gnu.org>
+        * original ext2 code (libparted/fs_ext2)
+        * discussion/ideas for API
+
+Matthew Wilson          <msw@redhat.com>
+        * basis of partition table and device code (disk.c, disk_dos.c,
+        and device.c)  Has morphed into something that looks completely
+        different now :-)
+        * bug fixes
+        * BSD disklabel support (disk_bsd.c)
+        * Python bindings to libparted
+        * Don't detect AIX physical volumes as msdos partition tables
+        * Code for manipulating AIX PVs
+
+Martin von Löwis        <martin@mira.isdn.cs.tu-berlin.de>
+        * German translations
+
+Baty Jean-Marc          <baty@club-internet.fr>
+        * French translations
+
+Hiroshi Takekawa        <takekawa@sr3.t.u-tokyo.ac.jp>
+        * Japanese translations
+
+Eliphas Levy Theodoro   <eliphas@conectiva.com>
+        * Brazillian Portugese translations
+
+Dmitry S. Sivachenko    <dima@Chg.RU>
+        * Russian translations
+
+Timshel Knoll           <timshel@pobox.com>
+        * man pages (parted.8 partprobe.8)
+        * bug fixes
+
+Ivo Timmermans          <itimmermans@bigfoot.com>
+        * Dutch translations
+
+Ryoji Kawagishi         <kawagisi@yk.rim.or.jp>
+        * Japanese translation of doc/USER (user documentation)
+        (replaced by Okuji's version, now)
+
+Okuji Yoshinori         <okuji@kuicr.kyoto-a.ac.jp>
+        * doc/USER.jp
+        * contributions to Japanese translations
+
+Masahiro Sakai          <ZVM01052@nifty.ne.jp>
+        * most of the PC98 support (disk_pc98.c), with Andrew Clausen
+        * lots of tedious work on parted/strlist.c
+
+Damien Genet            <damien.genet@free.fr>
+        * parted.m4
+
+Ben Collins             <bcollins@debian.org>
+        * Sun disk label support (libparted/disk_sun.c)
+        * stubs for UFS
+
+Vincent Stelhé          <vincent.stelhe@free.fr>
+        * move syntax patch (make END specification optional).  Trivial
+        for copyright purposes (no disclaimer needed)
+
+Neal H Walfield         <neal@cs.uml.edu>
+        * GNU/Hurd port - libparted/gnu.c
+
+Thomas Roelz            <tom@suse.de>
+        * misc bug fixes
+
+Matt Domsch             <Matt_Domsch@dell.com>
+        * GUID Partition Table (GPT) support (disk_gpt.[ch],
+                                              crc32.[ch])
+        * misc bug fixes, including end-of-device workaround
+        in libparted/linux.c
+
+Kjetil Torgrim Homme    <kjetilho@linpro.no>
+        * Norweigen translations
+
+Jörgen Tegnér           <jorgen.tegner@telia.com>
+        * Swedish translations
+
+Keld Simonsen           <keld@dkuug.dk>
+        * Danish translations
+
+Richard M. Kreuter      <kreuter@ausar.rutgers.edu>
+        * converted doc/USER to texinfo (doc/parted.texi)
+
+Miquel Matas            <miquelmatas@wanadoo.es>
+        * Catalan translations
+
+Andreas Dilger          <adilger@clusterfs.com>
+        * lots of mix bug fixes/cleanups
+
+Vicente E. Llorens      <vllorens@mundofree.com>
+        * Spanish translations
+
+Yury Umanets            <torque@ukrpost.net>
+        * basis of libparted/fs_reiserfs
+
+Bernardo João Torres da Silveira 
+                        <bernardojts@ig.com.br>
+        * pt_BR translation of FAQ and parted.texi
+
+Wojciech Polak          <polak@gnu.org>
+        * Polish translations
+
+Miloslav Trmac          <mitr@volny.cz>
+        * Czech translations
+
+Maxim V. Dziumanenko    <mvd@mylinux.com.ua>
+        * Ukrainian translations
+
+Giuseppe Sacco          <eppesuig@debian.org>
+        * Italian translations
+
+Guillaume Knispel       <k_guillaume@libertysurf.fr>
+        * nearly all hfs and hfs+ code (libparted/fs_hfs)
+        * hfs+ support for mac partitions (disk_mac.c)
+        * sync_fast code (linux.c gnu.c geom.[ch] device.[ch] )
+        * various fixes (parted.c ui.c filesys.c disk_dos.c disk.c
+        doc/parted.texi doc/API disk_gpt.c disk_mac.c unit.c fs_fat/traverse.c)
+
+Chris Lumens            <clumens@redhat.com>
+        * interactive help fixes for filesystem types
+        * gcc-4 pedanticism cleanups
+
+Wei-Lun Chao            <chaoweilun@pcmail.com.tw>
+        * Taiwanese dialect of Chinese (Cantonese?) translations.
+
+Tran Thi Hoang Quyen    <banhdauxanhhaiduong@gmail.com>
+        * Vietnamese translations
+
+Eduardo Maestri Righes  <eduardo@tteng.com.br>
+        * hidden partitions support
+        * setting MS Reserved partitions through "set" command.
+
+Arif E. Nugroho         <arif_endro@yahoo.com>
+        * Indonesian translations
+
+Ithamar R. Adema        <ithamar@unet.nl>
+        * BeOS support
+
+David Cantrell          <dcantrell@redhat.com>
+        * Added support for Promise SX8 devices (original patch from Jeremy
+          Katz <katzj@redhat.com>)
+        * Brought IBM/Red Hat DASD patches forward to parted-1.7.x
+          Original IBM authors: Volker Sameske <sameske@de.ibm.com>
+                                Horst Hummel <Horst.Hummel@de.ibm.com>
+          Original Red Hat authors: Phil Knirsch <phil@redhat.de>
+                                    Harald Hoyer <harald@redhat.de>
+        * Prevent SIGFPE when FAT sector size is 0
+        * Add virtual DASD (VIODASD) on iSeries support
+        * Use O_DIRECT I/O to prevent first partition corruption on GPT disks
+        * Prevent sector reading exceptions from ped_geometry_check() on Mac
+          disklabels.
+        * Various bug fixes and other things.
+
+Peter Jones             <pjones@redhat.com>
+        * Add ped_exception_get_handler()
+        * /dev/mapper read/write support on Linux (via libdevmapper)
+
+Darren Lavender         <dl1@hppine99.gbr.hp.com>
+        * Fix SIGSEGV in parted 1.6.19 and assertion error in 1.7.0
+        * Add support for LUN/device resize detection and option GPT
+          header corruption
+        * Fixed off-by-one error in GPT header that allowed for overlap
+          between LDAs of LastUsableLBA and PartitionEntryLBA in backup GPT
+
+Olaf Hering             <olh@suse.de>
+        * Fixes for Macintosh disk label code
+
+Debarshi Ray            <rishi@gnu.org>
+        * Display disk model and transport type in parted(8).
+        * '--list/-l' command line switch.
+        * Introduce 'print devices' and alias 'print list' to 'print all'.
+        * Alias 'mktable' to 'mklabel'.
+        * Code and API clean-up, bug fixes, and other miscellaneous stuff.
diff --git a/parted-1.8.7/BUGS b/parted-1.8.7/BUGS
new file mode 100644
index 0000000..e7d3999
--- /dev/null
+++ b/parted-1.8.7/BUGS
@@ -0,0 +1,7 @@
+
+Please see the FAQ (available on the web site at
+http://www.gnu.org/software/parted/) for common bugs from the past
+and http://alioth.debian.org/parted/ for a bug tracker.
+
+=======================================================================
+
diff --git a/parted-1.8.7/COPYING b/parted-1.8.7/COPYING
new file mode 100644
index 0000000..3912109
--- /dev/null
+++ b/parted-1.8.7/COPYING
@@ -0,0 +1,340 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                       51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/parted-1.8.7/ChangeLog b/parted-1.8.7/ChangeLog
new file mode 100644
index 0000000..8a5c7a4
--- /dev/null
+++ b/parted-1.8.7/ChangeLog
@@ -0,0 +1,2483 @@
+commit 6a9b85014a7193d6bb08cc376fc8eca62de71806
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Wed May 9 16:45:38 2007 -0400
+
+    Removed clean.sh script.  Using git now, we don't need it anymore (git 
+clean -d -x).
+
+commit cda0b9bf4ad99a8c06a831e0efc46aeefdcfbc4c
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Wed May 9 16:41:30 2007 -0400
+
+    Updated NEWS file for 1.8.7.
+
+commit 5dae040800b2862280a3a4b65bc3cbbe01350cac
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Wed May 9 15:15:47 2007 -0400
+
+    Use gnulib xmalloc() and xrealloc().
+
+commit 774b5839c04173eccebee905b3d3fc08d464bf4e
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Wed May 9 15:14:29 2007 -0400
+
+    Whitespace cleanups.
+
+commit a65a6ee30e13cdb3354a51b67687b0ac6a7089c7
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Tue May 8 18:44:44 2007 -0400
+
+    Bump version to 1.8.7.
+
+commit 9e5e55c7a7f2be4ec819d08b99023d20d18f358a
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Tue May 8 18:44:23 2007 -0400
+
+    Blank the NEWS file in preparation for 1.8.7.
+
+commit e77bb0f0fe26c694e1786742ac24efad8bc8e6ef
+Author: Otavio Salvador <otavio@ossystems.com.br>
+Date:   Wed May 9 16:03:39 2007 -0300
+
+    [parted] Fix script mode support on mkfs commandline command
+    
+    Parted was lacking support to script mode on do_mkfs method hence
+    always failing.
+    
+    Note: tests/t2000-mkfs.sh was created to avoid it to happen again
+    
+    Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+    (cherry picked from commit 20fd17ca725b0705e462d59604951ad7ea34497c)
+
+commit acc28864bb858bcdd476facd4bd9a0f79c1cd680
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Tue May 8 23:05:23 2007 +0530
+
+    Preventing compilation of DASD code on GNU Hurd systems through the use of 
+AC_COMPILE_IFELSE and AM_CONDITIONAL, instead of #ifdef.
+    (cherry picked from commit 2b4fa6af6736ee2526da7f4ae6a173b29c321826)
+
+commit faca3cb2738d12f7e0346df03ad1ee162e988436
+Author: Jim Meyering <jim@meyering.net>
+Date:   Mon May 7 18:42:38 2007 +0200
+
+    Rewrite integration tests to use a new framework (git's).
+    * tests/t1000-mkpartfs.sh: New file.
+    * tests/t0000-basic.sh: New file.
+    * tests/test-lib.sh: New file.  Derived from git's t/test-lib.sh.
+    * tests/lang-default, tests/priv-check: Remove files.
+    * tests/Makefile.am (EXTRA_DIST): Add test-lib.sh.
+    Remove lang-default and priv-check; no longer used.
+    * tests/part-01, tests/label-01: Remove files.
+    * tests/part-02, tests/label-02: Likewise.
+    (cherry picked from commit 6803320261c8ad3e9e97d77c4548c0b151d5de34)
+
+commit a6c2ff8ede1d7eba0d8da5be0218670d15d08da7
+Author: Jim Meyering <jim@meyering.net>
+Date:   Mon May 7 16:51:29 2007 +0200
+
+    Make ---pretend-input-tty inhibit output word-wrap.
+    * parted/ui.c (screen_width): Use effectively-unlimited screen width
+    with ---pretend-input-tty, just as for '--script' mode.
+    (cherry picked from commit a15d89c3a553f5cf17bf844d0e9ae4a1089fc66f)
+
+commit f2e1e47ed24d688a5c611c9932e75bd4a66c18f3
+Author: Jim Meyering <jim@meyering.net>
+Date:   Mon May 7 16:45:27 2007 +0200
+
+    Suppress "you are not superuser..." warning in script mode.
+    * parted/parted.c (_init): Do not emit this warning in script mode:
+    "You are not superuser.  Watch out for permissions."
+    (cherry picked from commit 0a8bfdca7c90a936dcf689bc54d5b098b84dc630)
+
+commit 8df6e6f03a69c97626e46fd141c19fae63bd207d
+Author: Jim Meyering <jim@meyering.net>
+Date:   Mon May 7 16:38:00 2007 +0200
+
+    Avoid "make distcheck" failure, with newer system headers.
+    * parted/parted.c: Include <limits.h>, for use of CHAR_MAX.
+    (cherry picked from commit 6008ff8125e2a4612cece18cea4808a89eb3f911)
+
+commit cd3e8ca7f5ace787b81463c6ed884651f6628a4d
+Author: Anant Narayanan <anant@kix.in>
+Date:   Fri May 4 05:09:52 2007 +0530
+
+    Updated Doxyfile
+    (cherry picked from commit c40d3fd6fb40f6c9a52dccaf8db2adc0117c1ada)
+
+commit 52bd893e3a0facc8f6b134534c1b578c6152afa3
+Author: Jim Meyering <jim@meyering.net>
+Date:   Thu Apr 26 23:17:32 2007 +0200
+
+    Add integration tests, then adjust code so that they pass.
+    These changes affect how --script (-s) works, and when diagnostics
+    are displayed.
+    * Makefile.am (SUBDIRS): Add tests.
+    * configure.ac (AC_OUTPUT): Add tests/Makefile.
+    * tests/Makefile.am: New file.
+    * tests/part-01, tests/label-01: New files.
+    * tests/part-02, tests/label-02: New files.
+    * parted/parted.c (enum) [PRETEND_INPUT_TTY]: Define.
+    Support a new, undocumented option: ---pretend-input-tty.
+    It is intended solely for testing.  The leading '---' ensures
+    that it will never conflict with a "regular" long option.
+    (do_mkpartfs): Prompt only when not in script mode.
+    Call ped_exception_leave_all() to decrement global counter.
+    Without this, the use of parted in tests/part-01 would still fail,
+    but would not issue the diagnostic explaining why.
+    * parted/ui.h (pretend_input_tty): Declare new global.
+    * parted/ui.c (exception_handler): Let the new "pretend_input_tty"
+    option override "!isatty (0)".
+    (init_ui): Don't set opt_script_mode.
+    * tests/lang-default, tests/priv-check: New files.
+    (cherry picked from commit b235f8a487d81b4703e76e08add3c89cf109a06f)
+
+commit 22e12c227ed41ee04987714dab9a6db95cb8a39b
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Mon Apr 23 16:41:02 2007 -0400
+
+    Revert "Remove unused label."
+    
+    This reverts commit bfd9a6d8b6322d870650b0e92bd936035ab28e76.
+    (cherry picked from commit 5ac8e21a86ecf8c9e639e4aeadad8b778052841c)
+
+commit 9b04b181d6147af89a1678ebcc5a7c52898f35ed
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Mon Apr 23 16:02:13 2007 -0400
+
+    Fix primary partition cylinder alignment error for DOS disk labels.
+
+commit 6aa9317010b0694d2c5b1dc85cec6d8e63659236
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Mon Apr 23 16:00:54 2007 -0400
+
+    Fix off-by-one bug in parted when displaying information about the disk 
+label (the disk size, specifically).
+
+commit 5ba0af2247450bd4c2bca53c3971f043e3563e08
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Mon Apr 23 15:58:03 2007 -0400
+
+    Do not translate partition names in 'parted print' command. This causes 
+problems for non-Latin-based character sets. Also, we don't want to translate 
+the partition name here as we are just showing what is in the disklabel, 
+translating it distorts what the value is.
+    
+    Also added some malloc checks in table.c.
+
+commit e31f600fea11ba29f48d125032daea500a63acc2
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Mon Apr 23 15:53:48 2007 -0400
+
+    Remove unused label.
+
+commit a699da637bd6b5a688b79afa8f41dd49b2a94517
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Tue May 1 10:01:50 2007 +0530
+
+    [tests] Separate and improved test for reading of disk labels.
+    (cherry picked from commit e736648c24372fd7532fef7c568a5424395b3a7a)
+
+commit a6bcab446e8957b771efd00ec52b288c04a3bfa4
+Author: Matthew Harris <mharris@coruscant.(none)>
+Date:   Tue Apr 24 08:13:41 2007 -0700
+
+    Fix endianness bugs
+    (cherry picked from commit ecea0c9857813beae1c91b0afa39c17634b97a95)
+
+commit 0a5859eeda49909ae54a6510947c16934b86ef8d
+Author: Jim Meyering <jim@meyering.net>
+Date:   Thu Apr 26 21:54:51 2007 +0200
+
+    Temporarily disable the clone-dvh-label test.
+    * libparted/tests/label.c (test_clone_label):
+    (cherry picked from commit ef8d13eb0053e5e0b87fea037a150b1eef3a3372)
+
+commit 6f04f317301b505079f492d57977f46c1e745ed2
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Sat Apr 21 00:59:15 2007 +0530
+
+    [tests] New test for probing of disk labels.
+    (cherry picked from commit b40a7a0976280fc861d5afa7563b28f561818b55)
+
+commit 1cba5a2f1ebcae79d710f601b4bb1306d6fa5519
+Author: Jim Meyering <jim@meyering.net>
+Date:   Sat Apr 21 18:59:43 2007 +0200
+
+    [PATCH] Avoid warning from -Wformat-security; tweak error diagnostic.
+    
+    * parted/parted.c (_parse_options): Upon failure, output diagnostic
+    to stderr, not stdout.  Use "program_name" value, not literal "parted".
+    
+    Signed-off-by: Jim Meyering <jim@meyering.net>
+    (cherry picked from commit 3b93925f767ee1727898674a6e357b7572157dd8)
+
+commit 4263c3a15f39d0dca01b35d671b44c60f4110db5
+Author: Otavio Salvador <otavio@ossystems.com.br>
+Date:   Fri Apr 20 03:53:18 2007 -0300
+
+    [tests] Simplify test_clone_label removing the label reading test
+    
+    Since the test_create_label already tests the label reading we
+    shouldn't redo it. It's always better to have simple tests so is much
+    easier to find the bugs.
+    
+    Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+    (cherry picked from commit 5650695a9abf63c3930b0f5f44352b4e2a5469dc)
+
+commit 9b1ad1dc13f5f427c03b77d07a024e830c977a17
+Author: Otavio Salvador <otavio@ossystems.com.br>
+Date:   Fri Apr 20 00:37:07 2007 -0300
+
+    [tests] Trivial coding style fixes around the tests code
+    
+    Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+    (cherry picked from commit 5c438aee9b6fc699b5e4bb9adcbe2ed13c87f202)
+
+commit 9365c83cf57ca287a481f44b9a1e907994bb9b41
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Fri Apr 20 05:49:44 2007 +0530
+
+    [tests] New test for cloning of disk labels.
+    (cherry picked from commit a46cc7578fd2ff478b6e83850e06b73fe42911b1)
+
+commit bc19c56aad86d4eb7b8bb200b38ee77ff8e4bc29
+Author: Otavio Salvador <otavio@ossystems.com.br>
+Date:   Thu Apr 19 21:30:53 2007 -0300
+
+    [tests] Add _test_exception_handler to fail every time an exception is 
+raised
+    
+    Sometimes parts of code raises exceptions and this shouldn't happen on
+    tests. To ensure we catch them a specific exception handler has been
+    implemented.
+    
+    The handler usage is very easy. You just need to put the following
+    code at testsuite main method:
+    
+    ...
+            /* Fail when an exception is raised */
+            ped_exception_set_handler (_test_exception_handler);
+    ...
+    
+    Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+    (cherry picked from commit cba3a64fb1744f545c373594c8795a4da30558c4)
+
+commit dff847674fe48a08dc9ab5c6793d3dd4c8da3a8e
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Fri Apr 20 01:00:50 2007 +0530
+
+    [tests] Fix spacing around brackets and asterisks.
+    
+    Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+    (cherry picked from commit a1ae8809d111795dcc977e693668bcfaf776fbbe)
+
+commit 319a886cc97fc1aa11054d839a0da80c3ee1777f
+Author: Benno Schulenberg <bensberg@justemail.net>
+Date:   Mon Apr 9 23:34:15 2007 +0200
+
+    Handle options independent of their order.
+    
+    Abort on any invalid option, and handle -v and -h first.
+    
+    Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+    (cherry picked from commit b60e2a0cb24272cc9d5af043ab69aa2fba546f93)
+
+commit 55098d9d232ce7b15280afd5cb5e90673f5615a1
+Author: Otavio Salvador <otavio@ossystems.com.br>
+Date:   Wed Apr 18 19:37:11 2007 -0300
+
+    [tests] Small refactoring on test_create_label
+    
+     - Destroy the temporary device once the test has been finished,
+     - Use the _implemented_disk_label and _create_disk_label methods
+       to avoid code duplication.
+    
+    Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+    (cherry picked from commit 0b3cdc7425a3b8d6095c1d0dd4e0d53851c52236)
+
+commit bc00d3be97e5ca55f7028e9ecd05de07fc841d79
+Author: Otavio Salvador <otavio@ossystems.com.br>
+Date:   Wed Apr 18 19:35:57 2007 -0300
+
+    [tests] Implements _implemented_disk_label and _create_disk_label on 
+common.[hc]
+    
+     - _implemented_disk_label: returns 0 when we haven't yet implemented
+       this specific label and 1 otherwise;
+    
+     - _create_disk_label: creates a disk label of a specific type on a
+       specific device;
+    
+    Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+    (cherry picked from commit c70ef4439cc5ea80db950f404ccdc2fef92bd488)
+
+commit e2177dee8b0836518c35492ad9a8608a2e6c76ad
+Author: Otavio Salvador <otavio@ossystems.com.br>
+Date:   Wed Apr 18 17:05:05 2007 -0300
+
+    [tests] Ensure that we're able to read the just created disk label
+    
+    To ensure we're able to read the just created disk label we introduced a 
+call
+    ped_disk_new using the same loopback. This could detect bad label creating 
+or
+    probing detectiong mistakes.
+    
+    Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+    (cherry picked from commit ad50aff79f5062d543b21e98d2de938bec247a26)
+
+commit 2cbdba25de402f48959a468b584e83dcc77ae331
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Tue Apr 17 00:04:54 2007 +0530
+
+    Show the update /etc/fstab message only when there has been a change to the 
+disk. The message is now shorter and more direct.
+    (cherry picked from commit fc5e7030c2b672054c7732c36d009dc302ffe7aa)
+
+commit b1117fdbe4cce1ab12fb2da875e3528b72b4b99f
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Tue Apr 17 21:08:14 2007 +0530
+
+    Indentation fixes in libparted/tests/.
+    (cherry picked from commit 5b4bfde015d7e1c3b01b352d8eafe003e1cd8474)
+
+commit 80b1572bd1ef3b704e7fa8d67d1e75f768cb5156
+Author: solsTiCe d'Hiver <solsticed.hiver@laposte.net>
+Date:   Fri Apr 6 00:01:46 2007 +0200
+
+    change the variable named start to offset to be consistent with the doc
+    (cherry picked from commit cc8f086cde0c75945e5dddfef67de02bf45ac8b8)
+
+commit 5aa851b89bcb649149952be50fe2bfbfdf25ca11
+Author: solsTiCe d'Hiver <solstice.dhiver@laposte.net>
+Date:   Thu Apr 5 14:39:45 2007 +0200
+
+    remove any trace of PED_PARTITION_PRIMARY which was deprecated a long time 
+ago to use PED_PARTITION_NORMAL
+    (cherry picked from commit f9ad3f0d114dedc706ffc4bd7fdc7ce13761766b)
+
+commit 43bb17ea7306402eda03872840ebc69b6004d289
+Author: Benno Schulenberg <bensberg@justemail.net>
+Date:   Thu Mar 29 19:28:25 2007 +0200
+
+    Added 'rescue', 'unit', and 'version' to the man page, plus some small 
+edits.
+    (cherry picked from commit 1792848063066de3cc62d3bcf9810bad77f230c2)
+
+commit abff646aa88e7ed0e18a7d2621b1e505a31ab4c9
+Author: Benno Schulenberg <bensberg@justemail.net>
+Date:   Wed Apr 4 12:03:29 2007 +0200
+
+    Make the wording of warning somewhat clearer.
+
+commit 9c80df4b50c9838ef661fd4286ce56ed74cb0b6f
+Author: Otavio Salvador <otavio@ossystems.com.br>
+Date:   Wed Apr 4 09:04:30 2007 -0300
+
+    Avoid segfault due a double free on reiserfs support (patch sent by Jakub 
+Bogusz <qboosh@pld-linux.org>)
+
+commit 0005325e24fe2ae21dc8e978da6597619335b197
+Author: Benno Schulenberg <bensberg@justemail.net>
+Date:   Tue Mar 27 00:23:18 2007 +0200
+
+    Tweak some help messages: change third person to imperative for 
+consistency, add single quotes and remove letters for clarity
+
+commit 39ebba8b5b31b00e6896405055335ff2af6e12b3
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Tue Mar 20 01:37:13 2007 -0400
+
+    Added %find_lang to the spec file template.
+
+commit 7362c6e3074cbd9a9163a96ac46327b62c7ac41c
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Tue Mar 20 00:58:16 2007 -0400
+
+    Fix variable names.
+
+commit 818404016bddbc929b8165106fa45897bb4a121b
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Tue Mar 20 00:09:08 2007 -0400
+
+    Updated file sizes.
+
+commit 1f1c4e94bc2e3994cd8a42d1fcb42f9c3e8250f0
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Mon Mar 19 22:40:15 2007 -0400
+
+    Update NEWS for 1.8.5.
+
+commit 39ff688b9a3b7d20288373c53d4927e431ee6d48
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Mon Mar 19 17:26:39 2007 -0400
+
+    Update for version 1.8.5.
+
+commit b8dab26e6d815a86a4cb9b33c4f1a64b51ab1dcc
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Mon Mar 19 17:25:29 2007 -0400
+
+    wget lies, cheats, and steals.  Use curl to download PO files instead.
+
+commit cb63e683259f9425f8f4949287316503cf929467
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Mon Mar 19 14:30:27 2007 -0400
+
+    Updated NEWS file for 1.8.4.
+
+commit 028f3b3d8f7ba29bca6117d897faf25fef54c2a7
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Mon Mar 19 14:20:52 2007 -0400
+
+    Remove GNU make-specific things from po4a.mk.
+
+commit 6e1bad8c99e2a5db61dcb8ad3c8c2ef1ef3dffb8
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Mon Mar 19 14:02:00 2007 -0400
+
+    Update.
+
+commit c26019b8fdd8fdb2c5f5d4b9978b153f3eced8f8
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Mon Mar 19 14:01:46 2007 -0400
+
+    Conditionalize the System Z stuff correctly.  We get headers installed on 
+non-System Z platforms, but the code only compiles on that platform.
+
+commit b07405d594cf3110ecf01086819e33924dc16f8f
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Mon Mar 19 11:22:22 2007 -0400
+
+    Added a section for version 1.8.4 (it's only a minor bug fix release).
+
+commit 82bd95c127e699ea46d83d0ef983bd1bbeddb241
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Mon Mar 19 11:22:06 2007 -0400
+
+    Update to 1.8.4 for the version number.
+
+commit 26522f85f7f9b03a1273b73bf17cc035ad0d74b2
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Mon Mar 19 11:20:55 2007 -0400
+
+    Remove the COMPILE_FOR_S390 flag-setting stuff.  It wasn't correct anyway.  
+Take a kernel-style approach and check uname -m to see if we are on s390.  If 
+so, we build for zSeries.  Otherwise we do not.
+
+commit d5186c9ce91f43e1302a0e3b4edcee08578cac2c
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Mon Mar 19 11:19:27 2007 -0400
+
+    Include vtoc.h for the format1_label_t typedef.
+
+commit b222813d2c6bd2d48b5c208b0f98ec1c7ddd23c6
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Mon Mar 19 11:12:11 2007 -0400
+
+    Remove some unused variables, check the return values from fgets() and 
+asprintf(), and remove the unused _dm_remove_map() function.
+
+commit 39b8326cd8d2f720246e30567558860a89afdc13
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Mon Mar 19 11:10:38 2007 -0400
+
+    Check for tgetent() in libtinfo as well as ncurses, curses, termcap, and 
+termlib.
+
+commit f6ad5d645eb0c41fc55cb52ad901f5661135d29d
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Mon Mar 19 11:09:25 2007 -0400
+
+    Fix for compile problems with gcc-4.1.2 as indicated here:
+    http://lists.gnu.org/archive/html/bug-parted/2007-03/msg00008.html
+
+commit cba88be73e1323cd5ab101eab717a9b56dcacfbf
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Mon Mar 19 10:43:56 2007 -0400
+
+    Sleep for one second after uploading a file to ftp-upload.gnu.org.  Seems 
+transactions need to be spaced out a bit otherwise the server will reject files.
+
+commit 1f4627cb45b50b1c102d59c2a07235b545e4b862
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Mar 16 16:09:08 2007 -0400
+
+    Updated the release script to work with the new source layout.
+
+commit 7dd9ac4a860a4965a215aa33872f1bea6e688f93
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Mar 16 15:20:22 2007 -0400
+
+    Ignore the gnulib/ subdirectory in version control.
+
+commit d165ede94cfa70cc5f72894e12aed851b47ce795
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Mar 16 15:19:57 2007 -0400
+
+    More spec file template cleanups.
+
+commit 2328bb6bc41ee07a9284b5233e7986d9dbf2524a
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Mar 16 15:18:27 2007 -0400
+
+    File size updates.
+
+commit 412eb2ae187bfd63480d5cbc4a4ab10e792fe77c
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Mar 16 15:18:08 2007 -0400
+
+    Install the libparted.pc file, not the libparted.pc.in file.
+
+commit 1027064bbd7d587808e28ffd488c00ea1a5dece3
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Mar 16 15:10:03 2007 -0400
+
+    Updated NEWS for version 1.8.3.
+
+commit abab0f1e36da89edc36f10d01bfdc11657e251fa
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Mar 16 14:50:34 2007 -0400
+
+    Revert "From: Jim Meyering <jim@meyering.net> - 2048-byte linux_write patch"
+    
+    This reverts commit 152c426cacedcd20db4515bd40d66ece6632c258.
+    
+    Test hardware not secured in time for release.  Postponing this patch to
+    next release.
+
+commit 152c426cacedcd20db4515bd40d66ece6632c258
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Mar 16 14:10:11 2007 -0400
+
+    From: Jim Meyering <jim@meyering.net>
+    
+    Patch linux_write() to handle logical sector sizes larger than 
+PED_SECTOR_SIZE_DEFAULT (512).
+
+commit 66939bf90b96e5cbe09889e4d3490837f87fc285
+Author: Jim Meyering <jim@meyering.net>
+Date:   Fri Mar 16 10:59:19 2007 +0100
+
+    po/POTFILES.in: Add lib/getopt.c
+
+commit b3ed253cbbc93f61cbf06e7b87f1065619d39cc9
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Fri Mar 16 19:50:32 2007 +0530
+
+    Fixed faulty information in README-hacking (Bison is not a maintainer tool 
+for Parted), and Makefile.maint (every project has certain variations of it).
+
+commit 4f9da17313899b0ea98373249cb6a6d09c32ea4a
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Fri Mar 16 12:12:34 2007 +0530
+
+    Prevented DASD specific headers and sources from being compiled/installed 
+on non-s390 systems; and conditionally included fdasd.h in linux.h for s390 
+systems.
+
+commit e117aded872afad903758900353487ab9f3265be
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Tue Mar 13 17:34:05 2007 -0400
+
+    Modernize the spec file template.
+
+commit d6a40ac2888f221b41d3a46a9bcf33e4171409eb
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Thu Mar 15 13:03:24 2007 -0400
+
+    Move static variable flagging little endian or not to journal.c.  We don't 
+want static variables in general, but if they must exist, put them in a C file, 
+not a header.
+    
+    Parameterize the little_endian flag for the macros in journal.h.
+
+commit 5a968514dfc49c716c04a4b4de4b1756253618cf
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Thu Mar 15 12:53:35 2007 -0400
+
+    Reverted my patch to configure.ac to remove -Wl,--as-needed from LDFLAGS 
+when checking for libreadline.
+
+commit 8c2e29fefa1ce459764b694c68f495034fff3a88
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Wed Mar 14 14:55:49 2007 -0400
+
+    libreadline is a problematic library.  Autoconf adds a block to the 
+generated configure script that checks to see if we should be passing the 
+--as-needed flag to ld(1).  There are portability reasons this code exists 
+(best I can figure), but it presents a problem when we scan for libreadline.
+    
+    libreadline specifically has unresolved symbols on at least Fedora and 
+RHEL.  Why?  Well, the developer can choose to provide libtermcap, libncurses, 
+or libncursesw (wide-char support) at compile time which all satisfy the curses 
+API dependency that libreadline has.  When the parted configure script runs, it 
+fails on readline because the --as-needed flag causes the linker to not include 
+libncurses even though we already have that on the link line.
+    
+    My solution is to remove the --as-needed flag when we scan for libreadline 
+and then later check for rl_completion_matches() in libreadline.
+
+commit ac91d97b31643951836c8fdc071be88c177df186
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Tue Mar 13 23:24:17 2007 -0400
+
+    Ignore more files.
+
+commit 2793d89afb88df92396fcd0a722b0b676841bf95
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Tue Mar 13 15:05:53 2007 -0400
+
+    More changes to set the version number to 1.8.3.
+
+commit d0bfc19688128a4da86a6bec875266b5cb8f5878
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Tue Mar 13 13:37:45 2007 -0400
+
+    Patch from Matthew Garrett <mjg59@srcf.ucam.org> to add HFS+ resize support.
+
+commit b2390873a632d04a133191c6b9feb21b15f58722
+Author: Jim Meyering <jim@meyering.net>
+Date:   Thu Mar 8 01:05:33 2007 +0100
+
+    Don't use deprecated mktemp, to avoid linker warning
+    * libparted/tests/common.c (_create_disk): Rewrite to
+    use mkstemp instead.
+
+commit 499a48b7413e60fd39d1be79db79b3b8745d000c
+Author: Jim Meyering <jim@meyering.net>
+Date:   Wed Mar 7 18:56:21 2007 +0100
+
+    tests/label: Don't dereference NULL if open fails.
+    * libparted/tests/label.c (START_TEST): Return right away if
+    ped_device_get returns NULL.
+
+commit 8da395b8b5bdf26730c59d696975edc4a2067f8d
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Tue Mar 13 13:03:02 2007 -0400
+
+    Set version to 1.8.3 for upcoming release.
+
+commit 8cf8ecbf9018c12429bec550f55a867b9df5a7f3
+Author: Jim Meyering <jim@meyering.net>
+Date:   Mon Mar 12 14:58:40 2007 +0100
+
+    hfs.c: Detect write failure.
+    * libparted/fs/hfs/hfs.c (hfs_extract_file, hfs_extract_bitmap):
+    (hfs_extract_mdb, hfsplus_extract_file, hfsplus_extract_vh):
+    Fail when fclose fails for a written-to file handle.
+
+commit 39437335049b0e0d0fa0c36bb69c50dc2ef0eae9
+Author: Jim Meyering <jim@meyering.net>
+Date:   Thu Mar 8 23:40:03 2007 +0100
+
+    	aix.c: Avoid memory overrun.  Don't assume logical sector size <= 512B
+    	* libparted/labels/aix.c (struct AixLabel): Remove definition.
+    	(aix_label_magic_get, aix_label_magic_set): New functions.
+    	(read_sector): New function.
+    	(aix_probe): Rewrite not to use the above, and not a static buffer.
+    	(aix_clobber): Likewise.
+    	Also, rather than PED_ASSERT'ing that aix_probe returns 1,
+    	simply return 0 if aix_probe returns fails.
+    	(ped_disk_aix_init): Remove assertion, now that AixLabel is gone.
+
+commit 154a2c3028359d3f8f9fcd0d6446e64e185a2fce
+Author: Jim Meyering <jim@meyering.net>
+Date:   Thu Mar 8 23:11:53 2007 +0100
+
+    	Use PED_SECTOR_SIZE_DEFAULT not 512
+    	* libparted/arch/beos.c (beos_read, beos_write):
+    	* libparted/arch/linux.c (_device_get_length, _device_seek)
+    	(linux_read, linux_write, _blkpg_add_partition):
+    	* libparted/fs/fat/bootsector.c (fat_boot_sector_read):
+    	* libparted/labels/bsd.c (bsd_alloc):
+    	* libparted/labels/dos.c (probe_filesystem_for_geom):
+    	* libparted/labels/rdb.c (amiga_read):
+
+commit 53d9a7d2e7104b91a1575a1ad01d403788fce94f
+Author: Jim Meyering <jim@meyering.net>
+Date:   Thu Mar 8 22:39:33 2007 +0100
+
+    * parted/ui.c (non_interactive_mode): Plug a tiny leak.
+    Exercise by running the following with a CD-ROM in the drive:
+    valgrind --leak-check=full parted/parted /dev/cdrom print
+    Before, we'd leak the 6-byte command: "print\0".
+
+commit da62e39536d0aaeaff1e855374c2c7be7237a44c
+Author: Jim Meyering <jim@meyering.net>
+Date:   Thu Mar 8 17:41:34 2007 +0100
+
+    linux.c: Avoid memory overrun.  Handle 2048-byte logical sectors.
+    * libparted/arch/linux.c (linux_read): Allocate the right amount of
+    space for the (potentially 2048-byte-long) sectors we're about to read.
+
+commit 6236d44bb8133131a06aef2a6d596f7b5fe1d886
+Author: Jim Meyering <jim@meyering.net>
+Date:   Thu Mar 8 01:04:44 2007 +0100
+
+    * libparted/tests/label.c: Plug a trivial leak.
+
+commit 1e4c2c85ad53bc3163b2a000336d39a80e9a236f
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Thu Mar 8 01:48:30 2007 +0530
+
+    Replaced [f]printf with fput[c|s] globally.
+
+commit 881c973e12735983e42307a2b208a86a24cefdc5
+Author: Jim Meyering <jim@meyering.net>
+Date:   Wed Mar 7 19:39:56 2007 +0100
+
+    libparted/unit.c: constify interfaces
+    * include/parted/unit.h (PED_UNIT_LAST):
+    * libparted/unit.c (ped_unit_get_size):
+    (ped_unit_format_custom_byte, ped_unit_format_byte):
+    (ped_unit_format_custom, ped_unit_format, ped_unit_parse):
+    (find_suffix, parse_chs, clip, geometry_from_centre_radius):
+    (ped_unit_parse_custom):
+
+commit b8afc0b5d48aefb48cd3b2eeb811dca83cfa9401
+Author: Jim Meyering <jim@meyering.net>
+Date:   Wed Mar 7 19:27:18 2007 +0100
+
+    Declare some static arrays to be "const".
+    * libparted/labels/dos.c (MBR_BOOT_CODE):
+    * libparted/labels/efi_crc32.c (crc32_tab):
+    * libparted/labels/pc98.c (MBR_BOOT_CODE):
+    * libparted/labels/vtoc.c (EBCtoASC, ASCtoEBC):
+
+commit cb77063c26281dae2dbce6079819c4aad4e15b15
+Author: Jim Meyering <jim@meyering.net>
+Date:   Wed Mar 7 18:17:00 2007 +0100
+
+    Add "const" to parameters in these public interfaces.
+    * libparted/disk.c (ped_disk_check):
+    (ped_disk_get_primary_partition_count):
+    (ped_disk_get_last_partition_num, ped_partition_print):
+    (ped_disk_print):
+    (ped_partition_print): Also declare to be "static".
+    This is ok, since the function is referenced only from this file.
+    * include/parted/disk.h: Update their prototypes.
+
+commit b906fb597e84c5ff7ca3c54343b6c2de216d2471
+Author: Jim Meyering <jim@meyering.net>
+Date:   Wed Mar 7 12:29:47 2007 +0100
+
+    Use <config.h> consistently, not "config.h".
+    * Makefile.cfg (local-checks-to-skip): Remove sc_require_config_h,
+    to enable the "make distcheck" test for this.
+
+commit cc1955e39202f9ff5ecf9f3bf874af1b85a737aa
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Tue Mar 6 17:19:31 2007 -0500
+
+    start_pos is a PedSector, not a PedGeometry.
+
+commit 51e774269002a7a9c0aecf497d4d98486c918918
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Tue Mar 6 11:18:20 2007 -0500
+
+    Preserve starting sector for primary NTFS 3.1 partitions (Windows Vista)
+    when modifying the DOS disk label.  NTFS 3.1 partitions do not start on
+    the 2nd head of the 1st cylinder at the beginning of the drive.
+
+commit 40bfba3a317f33e7bc55fdd8cd5073ac69ae280a
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Fri Mar 2 13:20:28 2007 -0500
+
+    Patched parted.8 man page to show partition names apply to GPT disk labels
+    
+    as well as Mac and PC98 disk labels.
+
+commit 5330d232f97619b39277bd46f8858bb41a8f1541
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Tue Mar 6 20:47:58 2007 +0530
+
+    Replaced [f]printf with fput[c|s] in 
+libparted/fs/ext2/ext2_block_relocator.c.
+
+commit 57b3c73e7e4d01ac87212501f7a87477be018d12
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Tue Mar 6 16:38:33 2007 +0530
+
+    Re-arranging .gitignore in alphabetical order.
+
+commit f4a46701638355a80e75909315878b3b7237b6b5
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Tue Mar 6 15:57:24 2007 +0530
+
+    Defined a dummy '_dump_history' function in parted/ui.c when Readline is 
+absent. Thanks to Jim Meyering for the suggestion.
+
+commit d72b78e2f55e44985716f37c0fde40e5f8fd79eb
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Tue Mar 6 15:51:58 2007 +0530
+
+    Added libparted/tests/label to .gitignore.
+
+commit 7ca20fbca15e89d8d40c33d11917c6969f1ed403
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Tue Mar 6 14:37:25 2007 +0530
+
+    Fixed parted/ui.c to incorporate signal handlers for systems lacking 
+'sigaction', 'SA_SIGINFO', and other constants in signal.h.
+
+commit ce3810b4372764154b71a299c3e90eb08a610a46
+Author: Jim Meyering <jim@meyering.net>
+Date:   Mon Mar 5 22:44:38 2007 +0100
+
+    Undo part of the dos.c constification.
+    * libparted/disk.c: The sole parameter of ped_disk_type_register
+    and ped_disk_type_unregister must *not* be const.
+    * libparted/labels/dos.c (msdos_disk_type): Likewise for the
+    corresponding static struct in dos.c, since those functions modify
+    the struct.  This didn't show up at compile time due to casts.
+    * include/parted/disk.h: Update prototypes, too.
+
+commit 3011e1809a1935f576a5ec80681cc5fcf94cd262
+Author: Jim Meyering <jim@meyering.net>
+Date:   Mon Mar 5 22:07:23 2007 +0100
+
+    Hide two unnecessarily-"extern" functions.
+    * libparted/labels/mac.c (mac_alloc): Declare static.
+    * libparted/labels/dos.c (raw_part_parse): Declare static.
+
+commit f0c8fc255dbdefea2f5c79ae100f89c852952312
+Author: Jim Meyering <jim@meyering.net>
+Date:   Mon Mar 5 15:37:25 2007 +0100
+
+    * libparted/labels/dos.c: Complete constification of this file.
+    * libparted/disk.c (ped_disk_type_register): Make the sole
+    parameter "const", so that caller's argument may be "const".
+    (ped_disk_type_unregister): Likewise.
+
+commit 869a6b4e28218b09c5b9e46b214e02ce75450d70
+Author: Jim Meyering <jim@meyering.net>
+Date:   Mon Mar 5 15:06:31 2007 +0100
+
+    * po/POTFILES.in: Add partprobe/partprobe.c, now that it contains
+    translatable strings.
+
+commit cc46aa2dbbaebc7f68e8bbfc9bfb313a2e1c2e18
+Author: Jim Meyering <jim@meyering.net>
+Date:   Mon Mar 5 14:47:02 2007 +0100
+
+    Make partprobe accept --help and --version options.
+    Add long options: --no-update (same as existing -d), and
+    --summary (same as existing -s).
+    * partprobe/partprobe.c
+    Include configmake.h, getopt.h, and NLS-related things.
+    (main): Rewrite option handling.
+    Along the way, fix a bug whereby "partprobe DEV1 DEV2 ... DEVN" would
+    exit successfully whenever process_dev (DEVN) returns nonzero, even
+    when that function fails for each of the preceding devices.
+
+commit 3389f62ba35ca2f0c5ba87ae29af5ef807ecf985
+Author: Jim Meyering <jim@meyering.net>
+Date:   Mon Mar 5 14:47:02 2007 +0100
+
+    Make clearfat accept --help and --version options.
+    * debug/clearfat/clearfat.c (AUTHORS, PROGRAM_NAME): Define.
+    Include gettext-related things.
+    Include closeout.h.
+    (usage): New function.
+    (main): Set up for translations, use close_stdout.
+    * bootstrap.conf: Add long-options, for clearfat.
+    * debug/clearfat/Makefile.am: Use gnulib.
+
+commit a3f971d08ff676bd515da2830acfddd3753d5b6e
+Author: Jim Meyering <jim@meyering.net>
+Date:   Mon Mar 5 14:44:58 2007 +0100
+
+    * include/parted/disk.h (struct _PedDiskOps) [write]: Change
+    parameter type to be "const".
+
+commit 6b0d9c51985ae48af05250bd50600f387ba7ff8d
+Author: Jim Meyering <jim@meyering.net>
+Date:   Mon Mar 5 14:37:39 2007 +0100
+
+    Begin making libparted/labels/*.c const-correct.
+    For an introduction, see
+    http://mail-archive.com/parted-devel@lists.alioth.debian.org/msg00930.html
+    In particular, I've used a const-adding case in mac.c to work around
+    the current, inconsistent semantics of mac_write.
+
+commit e1fee6ee482fee8ad1b255e29d3b39bff37b979c
+Author: Jim Meyering <jim@meyering.net>
+Date:   Mon Mar 5 10:19:53 2007 +0100
+
+    Avoid a libtool warning:
+    libtool: link: warning: `-release' is ignored for convenience libraries
+    * libparted/labels/Makefile.am (liblabels_la_LDFLAGS): Don't define.
+
+commit ceffe567344966353079819f6c7aab357a7809c1
+Author: Jim Meyering <jim@meyering.net>
+Date:   Mon Mar 5 10:13:08 2007 +0100
+
+    Make "make distcheck" work better.
+    * Makefile.cfg (local-checks-to-skip): Skip sc_system_h_headers, too.
+    * Makefile.maint (my-distcheck): Don't depend on $(release_archive_dir).
+
+commit 334e10639c208c0e69317556b5bae4af35f4fb70
+Author: Jim Meyering <jim@meyering.net>
+Date:   Fri Mar 2 12:23:25 2007 +0100
+
+    Avoid recursive "LIBS = ... $(LIBS)" assignments.
+    * libparted/labels/Makefile.am (liblabels_la_LIBADD): Add $(INTLLIBS)
+    here rather than via a recursive LIBS = ... $(LIBS) assignment.
+    * libparted/fs/Makefile.am (libfs_la_LIBADD): Likewise.
+
+commit 233c78f24efe16ef29626f348cf7e4f4f275668f
+Author: Jim Meyering <jim@meyering.net>
+Date:   Fri Mar 2 11:56:02 2007 +0100
+
+    Use $(VAR), rather than obsolescent @VAR@ automake notation.
+    
+    Enable the makefile-check rule.
+    * Makefile.cfg: Remove makefile-check from the list of rules to skip.
+    * Makefile.am: change e.g., @VERSION@ to $(VERSION).
+    * debug/clearfat/Makefile.am: Likewise.
+    * libparted/Makefile.am: Likewise.
+    * libparted/fs/Makefile.am: Likewise.
+    * libparted/fs/amiga/Makefile.am: Likewise.
+    * libparted/fs/bfs/Makefile.am: Likewise.
+    * libparted/fs/ext2/Makefile.am: Likewise.
+    * libparted/fs/fat/Makefile.am: Likewise.
+    * libparted/fs/hfs/Makefile.am: Likewise.
+    * libparted/fs/jfs/Makefile.am: Likewise.
+    * libparted/fs/linux_swap/Makefile.am: Likewise.
+    * libparted/fs/ntfs/Makefile.am: Likewise.
+    * libparted/fs/reiserfs/Makefile.am: Likewise.
+    * libparted/fs/ufs/Makefile.am: Likewise.
+    * libparted/fs/xfs/Makefile.am: Likewise.
+    * libparted/labels/Makefile.am: Likewise.
+    * libparted/tests/Makefile.am: Likewise.
+    * parted/Makefile.am: Likewise.
+    * partprobe/Makefile.am: Likewise.
+    
+    The above conversion caused a problem:
+    * libparted/Makefile.am: Remove this recursive definition:
+    LIBS = @INTLLIBS@ @LIBS@.  Once converted to LIBS = ...$(LIBS),
+    GNU make would (rightly) fail, objecting to the recursive definition.
+    (libparted_la_LIBADD): Instead, add $(INTLLIBS) here.
+
+commit 037e1d061a3bbf0f85c80c92d31b1081ea22e182
+Author: Jim Meyering <jim@meyering.net>
+Date:   Fri Mar 2 11:55:58 2007 +0100
+
+    Enable the po-check rule.
+    
+    * Makefile.cfg (local-checks-to-skip): Remove po-check.
+    * po/POTFILES.in: Add a bunch of names of files that contain
+    translatable strings.  Remove some which contain none.
+
+commit 478c89f683083a768fb47d33059af3005bf3be82
+Author: Jim Meyering <jim@meyering.net>
+Date:   Fri Mar 2 11:55:50 2007 +0100
+
+    Add infrastructure for more rigorous "make distcheck" rules.
+    
+    * GNUmakefile: New file.
+    * .prev-version: New file.
+    * Makefile.am (MAINTAINERCLEANFILES): Remove names of files now in 
+build-aux/.
+    (distcheck-hook): New rule, to run the checks in Makefile.maint.
+    (EXTRA_DIST): Add .prev-version.
+    * Makefile.maint: New file.  Improved "make distcheck" rules.
+    * Makefile.cfg: Select which Makefile.maint checks to run.
+    (local-checks-to-skip): List all currently-failing and irrelevant
+    tests here.
+    * build-aux/vc-list-files: New file.  List version-controlled files.
+    * .gitignore: Remove build-aux, since now it contains a
+    version-controlled file.
+
+commit 852b9c08a7a1ae8ec7e58145a7f128cf69cbaa2f
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Thu Mar 1 21:42:32 2007 +0530
+
+    Fixing indentation in parted/ui.c. Replaced TABs with spaces to ensure 
+uniformity in all editors.
+
+commit b3603b541252f0dedfd3adc10aec2e79f9a2d586
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Wed Feb 28 21:01:52 2007 +0530
+
+    Fixing indentation in parted/ui.c.
+
+commit 25d5569313677c66dd850af34a6c6f61b0c7e5a7
+Author: Jim Meyering <jim@meyering.net>
+Date:   Tue Feb 27 18:56:36 2007 +0100
+
+    Normalize the way we handle a generated-and-distributed file, parted.spec.
+    * Makefile.am (EXTRA_DIST): Add parted.spec.
+    (parted.spec): New rule.
+    (MAINTAINERCLEANFILES): Add parted.spec.
+    * configure.ac (AC_OUTPUT): Remove parted.spec from the list.
+
+commit 7cc9fd767dadcf8bbacd8e6d498781b3113d5721
+Author: Jim Meyering <jim@meyering.net>
+Date:   Tue Feb 27 16:22:29 2007 +0100
+
+    Add -I$(top_srcdir)/lib, required for new use of close_stdout.
+    * partprobe/Makefile.am (partedincludedir):
+
+commit dd3fe031ff4f06df145c50d557b65ce5716e1029
+Author: Jim Meyering <jim@meyering.net>
+Date:   Tue Feb 27 13:16:44 2007 +0100
+
+    Arrange for "make distcheck" to be stricter.
+
+commit 15ae6ceca82602fe3a1c6ef6130f0ca133c7016b
+Author: Jim Meyering <jim@meyering.net>
+Date:   Tue Feb 27 00:43:55 2007 +0100
+
+    * bootstrap: new file.
+
+commit 72d1a0c4e574c528e30b1e104490772530eedcb1
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Tue Feb 27 04:02:44 2007 +0530
+
+    Fixing libparted/arch/gnu.c to remove build-time errors.
+
+commit 802504ae11a79d3ed72fc3466dd3a96de1139c12
+Author: Jim Meyering <jim@meyering.net>
+Date:   Sun Feb 25 18:46:05 2007 +0100
+
+    partprobe: Detect/report any error when writing to stdout.
+    	* partprobe/Makefile.am (partprobe_LDADD): Add lib/libparted.la.
+    	* partprobe/partprobe.c:
+    	Include "closeout.h" for close_stdout.
+    	Include "version-etc.h" for version_etc prototype.
+    	Declare global, program_name.
+    	(PROGRAM_NAME, AUTHORS): Define.
+    	(help): Use PROGRAM_NAME, rather than hard-coding it.
+    	(version): Use gnulib's version_etc.
+    	(main): Set program_name.
+    	Use atexit to close stdout carefully upon exit.
+
+commit 1bfda3859e3f6d19cfdff4794da5d150bec4c6b3
+Author: Jim Meyering <jim@meyering.net>
+Date:   Sun Feb 25 18:44:30 2007 +0100
+
+    Add a bunch of .gitignore files.
+
+commit 7a46b70e5ecc0b1eb97e87158e2ca0816d63214e
+Author: Jim Meyering <jim@meyering.net>
+Date:   Sun Feb 25 18:44:30 2007 +0100
+
+    	Avoid a gcc format warning:
+    	* debug/clearfat/clearfat.c (_do_help): Use fputs, not printf.
+
+commit 17e5036bf4e4e5c88b94562432e10d1ae3b2b1b0
+Author: Jim Meyering <jim@meyering.net>
+Date:   Sun Feb 25 18:44:30 2007 +0100
+
+    	Remove now-generated files.
+    	* po/ca.po, po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po:
+    	* po/gl.po, po/id.po, po/it.po, po/ja.po, po/nl.po, po/nn.po:
+    	* po/pl.po, po/pt.po, po/pt_BR.po, po/ru.po:
+    	* po/sv.po, po/tr.po, po/uk.po, po/vi.po, po/zh_CN.po, po/zh_TW.po:
+    	* po/Makevars: Remove now-generated file.
+    	* po/parted.pot: Remove -generated file.
+
+commit 720c03986d3d9e158c54bbe89afa970c1e3be60e
+Author: Jim Meyering <jim@meyering.net>
+Date:   Sun Feb 25 18:44:30 2007 +0100
+
+    	mv parted.m4 into new dir, m4/
+    
+    	* Makefile.am (EXTRA_DIST): Remove parted.m4.
+    	Now that it's in m4, it's included automatically.
+    	(aclocal_DATA): Remove unnecessary definition.
+
+commit 40758f1bd909f927e81f9a523fc4169e18572eec
+Author: Jim Meyering <jim@meyering.net>
+Date:   Sun Feb 25 18:44:30 2007 +0100
+
+    	* libparted/tests/label.c: Fail if _create_disk returns NULL.
+    	Make global and functions static.
+    	* libparted/tests/common.c (_create_disk): Handle fopen failure.
+    	Handle fclose failure.
+
+commit dea71f503c58d39ba5a7901c675f3dcc4522962d
+Author: Jim Meyering <jim@meyering.net>
+Date:   Sun Feb 25 18:44:30 2007 +0100
+
+    	Include <config.h> from every .c file:
+    	* libparted/unit.c, libparted/timer.c:
+    	* libparted/cs/natmath.c, libparted/cs/constraint.c:
+    	* libparted/tests/label.c, libparted/tests/common.c:
+    	* libparted/fs/fat/count.c, libparted/fs/fat/bootsector.c:
+    	* libparted/fs/fat/context.c, libparted/fs/fat/fatio.c:
+    	* libparted/fs/fat/fat.c, libparted/fs/fat/clstdup.c:
+    	* libparted/fs/fat/resize.c, libparted/fs/fat/traverse.c:
+    	* libparted/fs/fat/table.c, libparted/fs/fat/calc.c:
+    	* libparted/fs/amiga/amiga.c, libparted/labels/fdasd.c:
+    	* libparted/labels/dvh.c, libparted/labels/efi_crc32.c:
+    	* libparted/labels/vtoc.c, parted/command.c:
+    	* libparted/tests/label.c, libparted/tests/common.c:
+
+commit 2cc2792a2ff36fd9f959577c1f6058d9eb9ba3dd
+Author: Jim Meyering <jim@meyering.net>
+Date:   Sun Feb 25 18:44:30 2007 +0100
+
+    	* libparted/libparted.c: Include "configmake.h" for LOCALEDIR defn.
+
+commit e08dea672f8f0715acd873117121f716565d292c
+Author: Jim Meyering <jim@meyering.net>
+Date:   Sun Feb 25 18:44:30 2007 +0100
+
+    parted: Detect/report stdout write errors.
+    	* parted/parted.c: Include "closeout.h" for close_stdout.
+    	Include "configmake.h" for LOCALEDIR definition.
+    	Include "version-etc.h" for version_etc prototype.
+    	Declare global, program_name.
+    	(PROGRAM_NAME, AUTHORS): Define.
+    	(_version): Use gnulib's version_etc.
+    	(main): Set program_name.
+    	Use atexit to close stdout carefully upon exit.
+
+commit 2944a1e139782729b980d55d01394b4148321ab0
+Author: Jim Meyering <jim@meyering.net>
+Date:   Sun Feb 25 18:44:29 2007 +0100
+
+    Include <config.h>, not "../config.h".
+
+commit e2583060e3ba1b94465a79f9cc8fadf02ee7b5ef
+Author: Jim Meyering <jim@meyering.net>
+Date:   Sun Feb 25 18:43:53 2007 +0100
+
+    Begin adjusting Makefile.am files to use gnulib.
+    * libparted/Makefile.am (partedincludedir): Add -I$(top_srcdir)/lib.
+    * parted/Makefile.am (parted_LDADD): Add lib/libparted.la.
+    (partedincludedir): Add -I$(top_srcdir)/lib.
+
+commit 66760ee42fd8c627cb2a32fea23908f3e08d164c
+Author: Jim Meyering <jim@meyering.net>
+Date:   Sun Feb 25 18:38:41 2007 +0100
+
+    Update to use gnulib, and newer autoconf, automake conventions.
+    
+    	Add build-from-checkout instructions.
+    	* README-hacking: New file.  Mostly copied from coreutils'
+    	README-cvs.
+    	* bootstrap: Generate ChangeLog here, if needed/possible,
+    	before invoking tools that require its presence.
+    	* autogen.sh: Remove this file.  It's superseded by bootstrap.
+    
+    	Use gnulib, modernize some uses of autoconf, automake, etc.
+    	* bootstrap, bootstrap.conf: New files.
+    
+    	* configure.ac: Modernize.
+    	Require the latest stable releases: autoconf-2.61, automake-1.10.
+    	Require gettext-0.15.
+    	Use more modern form of AC_INIT, etc.
+    	Now that the version string must be hard-coded in the AC_INIT line,
+    	add code to ensure it agrees with the PED_* and LT_* variables.
+    	Use AM_CPPFLAGS, not CFLAGS
+    	Remove obsolete setting of ALL_LINGUAS.
+    	Don't set CFLAGS=-D_GNU_SOURCE=1 explicitly , since that's already
+    	done via AC_GNU_SOURCE, which gnulib pulls in by default,
+    	through gl_EARLY.
+    	Use gl_INIT and gl_EARLY.
+    
+    	* Makefile.am (SUBDIRS): Add lib.
+    	(EXTRA_DIST): Remove names that are automatically included.
+    	* lib/Makefile.am: New file.
+
+commit a7975b69a52675f8a1ef346d4b5ebf994200c88e
+Author: Anant Narayanan <anant@theghost.local>
+Date:   Fri Feb 23 16:18:31 2007 +0530
+
+    Fix memleaks. Patch thanks to Mike Hommey
+
+commit 7855179120162cd4de8bd7dc04e21809b8f1d413
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Mon Feb 19 10:58:46 2007 +0530
+
+    Introduced MAINTAINERCLEANFILES in Makefile.am for carrying out 'make 
+maintainer-clean'.
+
+commit 9d4a4289659625ef143e8c74a26654a7c4da2906
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Mon Feb 19 09:09:44 2007 +0530
+
+    Cleaning up nested structs & unions.
+
+commit 4529f6625622b459975c59921f4360afe6b7eb5c
+Author: Jim Meyering <jim@meyering.net>
+Date:   Fri Feb 16 15:55:40 2007 +0100
+
+    Avoid compiler warnings with gcc -Wall -Wshadow.
+    
+    * libparted/arch/linux.c (init_ide): Add missing "break" at end of
+    final case: stmt.
+    Add "default:" in the same switch to avoid a compiler warning.
+    * libparted/fs/fat/bootsector.c (fat_boot_sector_analyse): Likewise.
+    * libparted/fs/fat/resize.c (ask_type): Likewise.
+    * libparted/fs/fat/traverse.c (fat_dir_entry_set_first_cluster):
+    Likewise.
+    * debug/clearfat/clearfat.c (_calc_fat_entry_offset): Likewise.
+    
+    * parted/parted.c (_timer_handler): Cast time_t values to "int"
+    to agree with %d printf format.
+    (g_timer): Rename file-scoped global from shadowed "timer".
+    Update all uses of the global.
+    (version_msg): Remove decl of unused global.
+    
+    * parted/ui.c (current_exception_opt): Remove decl of unused global.
+    
+    * libparted/filesys.c (ped_file_system_close): Remove unused label.
+    * libparted/unit.c (parse_chs): Likewise.
+    
+    * libparted/debug.c (ped_assert): Use "int" as type of backtrace
+    return value, not size_t.
+    
+    * libparted/fs/reiserfs/reiserfs.c (reiserfs_check):
+    Guard declaration of local with #ifdef HAVE_REISERFS_FS_CHECK,
+    since it's used only in a similarly-guarded block.
+    (reiserfs_fs_check): Likewise for this file-scoped global.
+    
+    Avoid warnings about unused file-scoped global variables.
+    * libparted/fs/hfs/hfs.h (hfs_type, hfsplus_type): Remove these
+    declarations of file-scoped static variables.
+    * libparted/fs/hfs/hfs.c: Put them here, instead.
+    
+    * libparted/fs/fat/table.c (_test_code_active): Remove unused function.
+    
+    * libparted/arch/linux.c: Add casts to avoid performing
+    pointer arithmetic on "void *" pointers.
+    
+    * libparted/fs/hfs/file_plus.c (hfsplus_file_read):
+    Don't do pointer arithmetic on a "void *" pointer.
+    (hfsplus_file_write): Likewise.
+    
+    * libparted/fs/fat/count.c (flag_traverse_dir): Move decl of
+    unused local into #if-0'd block where it is referenced.
+    (print_chain): Guard definition with #ifdef PED_VERBOSE,
+    since the sole use of this function is guarded the same way.
+    
+    * libparted/fs/amiga/amiga.c: (_amiga_valid_block_id):
+    Remove unused function.
+    (_amiga_get_bstr): Likewise.
+    (_amiga_set_bstr): Likewise.
+    
+    Remove unused labels and/or declarations of unused variables.
+    * parted/ui.c (_readline): Likewise.
+    * libparted/cs/constraint.c (_constraint_get_canonical_start_range):
+    Likewise.
+    * libparted/cs/geom.c (ped_geometry_read): Likewise.
+    * libparted/fs/amiga/apfs.c (_generic_apfs_probe): Likewise.
+    * libparted/fs/ext2/ext2_mkfs.c (ext2_mkfs_write_meta): Likewise.
+    * libparted/disk.c: Likewise.
+    * libparted/fs/hfs/hfs.c: Likewise.
+    * libparted/fs/fat/fat.c: Likewise.
+    * libparted/fs/fat/clstdup.c: Likewise.
+    * libparted/fs/fat/calc.c: Likewise.
+    * libparted/fs/ext2/ext2.c: Likewise.
+    * libparted/fs/amiga/affs.c: Likewise.
+    * libparted/fs/amiga/asfs.c: Likewise.
+    * libparted/labels/aix.c: Likewise.
+    * libparted/labels/sun.c: Likewise.
+    * libparted/labels/pc98.c: Likewise.
+    * libparted/labels/mac.c: Likewise.
+    * libparted/labels/dos.c: Likewise.
+    * libparted/labels/loop.c (loop_alloc): Likewise.
+    * libparted/labels/gpt.c: Likewise.
+    * libparted/labels/dvh.c (dvh_alloc): Likewise.
+    (dvh_read) [!DISCOVER_ONLY]: Add "default:" in a switch.
+    
+    * libparted/labels/fdasd.c (fdasd_reread_partition_table):
+    Remove decl of unused local(s).
+    (fdasd_get_partition_data): Likewise.
+    (fdasd_partition_type): Remove unused function.
+    (fdasd_write_vtoc_labels): Likewise.
+    (fdasd_change_volser): Likewise.
+    (fdasd_check_volser): Likewise.
+    (fdasd_reread_partition_table): Likewise.
+    
+    Signed-off-by: Jim Meyering <jim@meyering.net>
+
+commit cbf5b4da095637e18ab6f2b8a52a506a4126845b
+Author: Jim Meyering <jim@meyering.net>
+Date:   Thu Feb 15 16:05:17 2007 +0100
+
+    * libparted/labels/rdb.c (amiga_read): Remove decl of unused local(s).
+    
+    Signed-off-by: Jim Meyering <jim@meyering.net>
+
+commit 3f3af4affe2ee037620c717acc7d3fc84422574c
+Author: Jim Meyering <jim@meyering.net>
+Date:   Thu Feb 15 15:56:23 2007 +0100
+
+    * libparted/labels/bsd.c (bsd_partition_new): Remove unused label.
+    
+    Signed-off-by: Jim Meyering <jim@meyering.net>
+
+commit 74eb62c50d7a6107f7c9dcb5273060f20da990b8
+Author: Jim Meyering <jim@meyering.net>
+Date:   Thu Feb 15 15:53:44 2007 +0100
+
+    * libparted/labels/dasd.c: Remove unused labels and declarations
+    
+    of unused variables.
+    
+    Signed-off-by: Jim Meyering <jim@meyering.net>
+
+commit 93ca20d8aebd0d04dbb00b86a2903c992e59a96b
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Fri Feb 16 10:10:17 2007 +0530
+
+    Fix the style of typedef, enum, struct and __attribute__ ((packed)).
+
+commit f4022a35faf01c5286ab5b44bce080e80d310099
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Thu Feb 15 10:25:41 2007 +0530
+
+    Deprecating ped_[register|unregister]_disk_type in favour of 
+ped_disk_type_[register|unregister].
+
+commit 3965965b3413df11d6306704478490f6e5b72549
+Author: Jim Meyering <jim@meyering.net>
+Date:   Tue Feb 13 22:51:56 2007 +0100
+
+    Use lighter-weight fputs and putchar in place of printf, when possible.
+    
+    * parted/ui.c (wipe_line, _dump_history, reset_env):
+    (sigsegv_handler, sigfpe_handler, sigill_handler, _readline):
+    (help_msg, interactive_mode, non_interactive_mode): Use puts,
+    fputs, and putchar in place of printf, when possible.
+    (reset_env): Correct misleading indentation.
+    (wipe_line): Split a long string.
+    
+    Signed-off-by: Jim Meyering <jim@meyering.net>
+
+commit f757156d846c70a88b90ab3ff47ff385ed136a56
+Author: Jim Meyering <jim@meyering.net>
+Date:   Wed Feb 14 12:37:45 2007 +0100
+
+    Make it so "make distcheck" passes.
+    
+    * doc/po4a.mk (updatepo): Don't choke when *.$(lang).po matches no file.
+    * doc/C/Makefile.am (updatepo): Don't do anything when $(srcdir) is not 
+writable.
+    
+    Signed-off-by: Jim Meyering <jim@meyering.net>
+
+commit 4ae6903525e60202efa78ebec336d1bb2c3bb6b4
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Wed Feb 14 22:19:42 2007 +0530
+
+    Fixed the copyright notices.
+
+commit 69b733fcedc80d7192fb98c2ade006938c6d58f8
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Wed Feb 14 21:39:57 2007 +0530
+
+    Cleaned up the formatting of AUTHORS.
+
+commit d29c917bf4a22a084deecf769346f030b87e0eb8
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Wed Feb 14 20:25:12 2007 +0530
+
+    Tidying up the formatting and comments in linux_swap.c.
+
+commit 951e82fc0c102aa8187cf19de49c9f504eaa60f6
+Author: Jim Meyering <jim@meyering.net>
+Date:   Tue Feb 13 21:02:08 2007 +0100
+
+    Don't define _GNU_SOURCE manually.
+    
+    It's better not to define _GNU_SOURCE manually.
+    By using AC_GNU_SOURCE, you get the definition in exactly one place:
+    in config.h.  I verified that each affected file also includes config.h.
+    
+    Don't define _GNU_SOURCE manually.
+    * configure.ac: Use AC_GNU_SOURCE instead.
+    * libparted/arch/gnu.c: Remove definition of _GNU_SOURCE.
+    * libparted/arch/linux.c: Likewise.
+    * libparted/device.c: Likewise.
+    * parted/table.c: Likewise.
+    * parted/table.h: Likewise.
+    
+    Signed-off-by: Jim Meyering <jim@meyering.net>
+
+commit 2d2e20fc366c08519fdac33d74686da87d8291f5
+Author: Jim Meyering <jim@meyering.net>
+Date:   Tue Feb 13 17:10:18 2007 +0100
+
+    Remove some #ifdefs
+    
+    Remove some #ifdefs.
+    * parted/table.c (L_): define.
+    Remove in-function #ifdefs; use L_(str) instead.
+    
+    Signed-off-by: Jim Meyering <jim@meyering.net>
+
+commit f38cb2091e5f9cd300b4bc0aa93138c205d34135
+Author: Jim Meyering <jim@meyering.net>
+Date:   Tue Feb 13 17:08:35 2007 +0100
+
+    * libparted/labels/fdasd.c (GETARG): Remove unused definition.
+    
+    A tiny change...
+    
+    Signed-off-by: Jim Meyering <jim@meyering.net>
+
+commit 7074a16500bc275a4f5bb4bd0a02d26b3c83ae9a
+Author: Otavio Salvador <otavio@ossystems.com.br>
+Date:   Tue Feb 13 09:44:33 2007 -0200
+
+    Create 'm4' directory when generating the building system
+
+commit e3c1ef348cea4ab998224db3e77672db9b7af8d7
+Author: Jim Meyering <jim@meyering.net>
+Date:   Mon Feb 12 23:30:46 2007 +0100
+
+    Work with automake-1.10.
+    
+    I've just tried building parted from scratch (running ./autogen.sh
+    after git-clone) and hit a couple of snags:
+    
+    Without aclocal's -I m4, ./autogen.sh produced this:
+    
+      configure.ac:192: warning: macro `AM_GNU_GETTEXT_VERSION' not found in 
+library
+      configure.ac:193: warning: macro `AM_GNU_GETTEXT' not found in library
+      configure.ac:192: error: possibly undefined macro: AM_GNU_GETTEXT_VERSION
+            If this token and others are legitimate, please use 
+m4_pattern_allow.
+            See the Autoconf documentation.
+    
+    With automake-1.10, I got this:
+    
+        parted/Makefile.am:5: compiling `command.c' with per-target flags 
+requires `AM_PROG_CC_C_O' in `configure.ac'
+    
+    Here's a patch that fixes those and also removes some trailing blanks.
+
+commit 64f61abbcaefe060433196e323eba251bfc6e17e
+Author: Jim Meyering <jim@meyering.net>
+Date:   Mon Feb 12 23:35:30 2007 +0100
+
+    Compile warning-free with "gcc -Wall -Wshadow".
+    
+    Hello,
+    
+    I find that keeping code warning-free (wrt gcc -Wall -Wshadow)
+    makes it easier to avoid certain classes of bugs.
+    
+    Compiling with gcc -Wall -Wshadow evoked a few warnings
+    on a Debian/unstable system.  Here are patches to fix those:
+    
+    * libparted/exception.c (default_handler): Rename parameter "ex"
+    to "e", to avoid shadowing file-scoped global.
+    * libparted/fs/linux_swap/linux_swap.c (_generic_swap_probe): Add a
+    "can't happen" (with current callers) "default: goto error" clause
+    in a switch to avoid a may-be-used-uninitialized warning.
+    (_generic_swap_clobber): Likewise.
+    * libparted/fs/hfs/reloc_plus.c (hfsplus_pack_free_space_from_block):
+    Rename local variable "div" to "divisor", to avoid shadowing
+    the function in <stdlib.h>.
+    * libparted/fs/hfs/reloc.c (hfs_pack_free_space_from_block): Likewise.
+    * libparted/fs/hfs/cache.c (hfsc_cache_add_extent): Rename parameter
+    "index" to "ref_index" to avoid shadowing the <string.h> function.
+    * libparted/labels/sun.c (sun_partition_enumerate): Rename local
+    variable "i" to "j", to avoid shadowing another local.
+    
+    Signed-off-by: Jim Meyering <jim@meyering.net>
+
+commit eff7c75fbe7348e20fde39f0f02dc9613ccd7afc
+Author: Jim Meyering <jim@meyering.net>
+Date:   Mon Feb 12 23:38:07 2007 +0100
+
+    configure.ac: Add LOCALEDIR definition to CFLAGS only once.
+    
+    I noticed that there were two identical lines in configure.ac,
+    adding the same LOCALEDIR definition to CFLAGS.
+    This change removes the latter.
+    
+    * configure.ac: Add LOCALEDIR definition to CFLAGS only once.
+    
+    Signed-off-by: Jim Meyering <jim@meyering.net>
+
+commit 92f00c9a4b6669954aa8689c5963c52ceaefdf57
+Author: Riccardo Setti <giskard@piton.asimov.bot>
+Date:   Mon Feb 12 13:24:29 2007 +0100
+
+    Added a pkgconfig file for libparted, adjusted Makefile.am and configure.ac 
+for reflect the canges
+    
+    	modified:   Makefile.am
+    	modified:   configure.ac
+    	new file:   libparted.pc.in
+
+commit 760e6decef7aac12aada62c3185e83506fcb5d47
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Wed Jan 31 02:01:43 2007 +0530
+
+    Renaming PARTITION_EXT to PARTITION_DOS_EXT in MSDOS disk-label code, to 
+maintain similarity with Linux v2.6.18.2
+
+commit 98a53fd115ca012edf226525b8d4be628454f99e
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Wed Jan 17 18:56:46 2007 +0530
+
+    Enable support for swsusp partitions, and the ability to differentiate 
+between old and new versions of linux-swap partitions. Changed the swap_init 
+signature and removed extra ped_geometry_read from _swap*_open.
+
+commit f58467190721c7d29b2d07c1567cdd90633f1996
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Tue Jan 16 23:13:09 2007 +0530
+
+    Synchronize the linux-swap (new version) header according to the Linux 
+kernel sources.
+
+commit 8cc182e1919144ecaede5b95983b6528017a78ac
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Tue Jan 16 22:41:47 2007 +0530
+
+    cb6ca73be06f360308e6a2fccb7142ed8175af29 continued.
+
+commit cb6ca73be06f360308e6a2fccb7142ed8175af29
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Tue Jan 16 06:43:36 2007 +0530
+
+    Add stdint.h stdlib.h & string.h to include/parted/parted.h and remove them 
+from other files.
+
+commit 21dc308fe0829e12d55fba0e6f75063cf7bf651a
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Sun Jan 14 21:06:58 2007 +0530
+
+    Synchronise manual page and --help documentation.
+
+commit 7ad100209c0a7382ca36cc4b337b8800d45c4a7a
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Fri Jan 12 12:47:13 2007 -0500
+
+    Updated i18n information.
+
+commit 400386a9a6f39b052ecebb307cf2aa8c3bfc0e35
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Fri Jan 12 10:05:08 2007 -0500
+
+    Add ped_device_cache_remove() prototype.
+    (cherry picked from commit cb53b87ab2f779633f152f478c7f8c99c2fd1817)
+
+commit 935ae113d257fa4f42ca97b30650f056238e7705
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Fri Jan 12 10:06:40 2007 -0500
+
+    Only call _disk_warn_loss(disk) in do_mklabel() if disk is not NULL.  Fixes 
+a segfault when initializing new volumes.
+    (cherry picked from commit 70e3bf5e7818df49a11e203ac8519e037818d592)
+
+commit 5fa95be2c48e0913f78dabe2c9c078d0742a71f8
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Fri Jan 12 10:07:17 2007 -0500
+
+    Fix a segfault in ped_assert() where the wrong pointer is freed in the 
+backtrace.
+    (cherry picked from commit 63f7b33b352d0d699efeb1095340ed6139c49e3b)
+
+commit b5e6500868c4216b5c137799c898870726f28a00
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Fri Jan 12 10:07:45 2007 -0500
+
+    Add the ped_device_cache_remove() function to remove a device from the 
+cache.
+    (cherry picked from commit 5fb6658d124050a9dc27a87f2e1c3ffd3d1ad7c0)
+
+commit 1c1251c20172246671ac2c0c7c66663af902fdf3
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Fri Jan 12 10:10:07 2007 -0500
+
+    Updated the AUTHORS file.
+    (cherry picked from commit 7ab32d423cc43a5e9372a7dc000feb183db9a89a)
+
+commit 9ef417f05d1405d6a6b874d77d93ccf3113deee6
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Fri Jan 12 08:10:15 2007 +0530
+
+    Rectify segmentation fault caused by 
+9e05418de3477666b0709f5d1996149febd33100
+
+commit 399cc344ef9ec0b2c06132b95ee4195779d44686
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Fri Jan 12 06:35:58 2007 +0530
+
+    Update doc/C/parted.8 to document --list.
+
+commit 9e05418de3477666b0709f5d1996149febd33100
+Author: Otavio Salvador <otavio@debian.org>
+Date:   Sat Dec 16 18:47:53 2006 -0200
+
+    parted/parted.c: Destroy all objects before return when called with --list 
+or --all option.
+
+commit 7f310ecdeb187c3ccd0f51c7cc874f34fb95cf81
+Author: Anant Narayanan <anant@kix.in>
+Date:   Fri Jan 5 23:42:23 2007 +0530
+
+    Dump readline history on crash
+
+commit 8acac4f1497e55447d931df8a128af3a14452385
+Author: Anant Narayanan <anant@kix.in>
+Date:   Thu Dec 14 22:00:59 2006 +0530
+
+    Loosen requirement for the 'check' library.
+
+commit 45713930032b8e0664287a6cb354509f7df281e7
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Fri Dec 15 01:26:03 2006 +0530
+
+    Update AUTHORS.
+
+commit f74b890bb3658b972b02e98e4354994306cb8372
+Author: Leslie P. Polzer <polzer@gnu.org>
+Date:   Wed Dec 13 17:23:15 2006 +0100
+
+    added scripts/update-po
+
+commit a7b47b3632fd2ac59495520b9db02a57c6c82794
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Tue Dec 12 19:26:09 2006 -0500
+
+    Merge branches 'master' and 'master' of 
+git+ssh://dcantrell-guest@git.debian.org/git/parted/parted
+
+commit 60a1188ce869ec19a0650cb4251f80bc2b51625c
+Author: Leslie P. Polzer <polzer@gnu.org>
+Date:   Mon Dec 11 18:00:00 2006 +0100
+
+    Updated translations.
+
+commit b9fadd12d1a6c0a853f999398ed5d689fd7d9106
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Sat Dec 9 01:11:49 2006 +0530
+
+    Alias 'print list' with 'print all'.
+
+commit 6928477436823359850941fabd78444635752095
+Author: Otavio Salvador <otavio@ossystems.com.br>
+Date:   Mon Dec 11 07:46:34 2006 -0200
+
+    Include a disk probing test
+
+commit c95d7f912f577c6188c4900826f50ddd54505b4e
+Author: Otavio Salvador <otavio@ossystems.com.br>
+Date:   Mon Dec 11 07:46:34 2006 -0200
+
+    If CHECK is installed on configure time, build our unittest framework
+
+commit 38f29307583865f83117aa7c7c85a297feefad18
+Author: Otavio Salvador <otavio@ossystems.com.br>
+Date:   Mon Dec 11 07:46:33 2006 -0200
+
+    Add CHECK unittext library detection to Autoconf script
+
+commit ab143e1794c06ee5828450ec48ebccd2a89adfa4
+Author: Leslie P. Polzer <polzer@gnu.org>
+Date:   Sat Dec 9 10:51:43 2006 +0100
+
+    Release script: cannot call "return" from top level;  replaced with "exit".
+
+commit a6c3ff6df55c31c922a7e963662b1a0d76001162
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Fri Dec 8 00:51:06 2006 +0530
+
+    Zero sized device is shown as 0.00B and not -0.00kB.
+
+commit 17155dfd54b893181c0cc6aee98b1387b4e3ba7a
+Author: Otavio Salvador <otavio@debian.org>
+Date:   Wed Dec 6 23:33:52 2006 -0200
+
+    libparted/exception.c: Dynamically allow space of exception message.
+
+commit b8903b3f54151437a2fff93399ca50b01abd4184
+Author: Otavio Salvador <otavio@debian.org>
+Date:   Wed Dec 6 22:44:40 2006 -0200
+
+    Output a backtrace when catching SEGV_MAPERR or a general SIGSEGV signals.
+
+commit 13c28f379c46d983e7005808261119c188b9c8a0
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Thu Dec 7 07:31:39 2006 +0530
+
+    Implement 'print devices'.
+
+commit 7df669078834b8a48eb29042d1c6fea06e221367
+Author: Benno Schulenberg <bensberg@justemail.net>
+Date:   Wed Dec 6 00:00:03 2006 +0100
+
+    Translate the copyright message, and hard wrap it
+
+commit a9fea1add642a8f1243932a4db2ee967ad668a4b
+Author: Otavio Salvador <otavio@debian.org>
+Date:   Tue Dec 5 15:32:26 2006 -0200
+
+    libparted/disk.c: Standarize the way we walk throught the disk types 
+overall the code
+
+commit 0f1ba3f5d9d57f3a2205ec67738f611cf5b22e7d
+Author: Otavio Salvador <otavio@debian.org>
+Date:   Tue Dec 5 14:16:04 2006 -0200
+
+    Revert "Add check unittest support and a initial test for a resizing bug."
+    
+    This code wasn't ready for commit yet.
+    
+    This reverts commit ba43cb6ff7bb1d945062e25b94efecb1b84c0c33.
+
+commit fe914828d2b36451a7056292560820633c891afe
+Author: Otavio Salvador <otavio@debian.org>
+Date:   Tue Dec 5 14:12:24 2006 -0200
+
+    parted/parted.c: Remove useless line break
+
+commit ba43cb6ff7bb1d945062e25b94efecb1b84c0c33
+Author: Otavio Salvador <otavio@ossystems.com.br>
+Date:   Mon Dec 4 23:40:54 2006 -0200
+
+    Add check unittest support and a initial test for a resizing bug.
+
+commit dc4df69ecac2c693328dba452f4b4e9df9c0d29f
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Sun Dec 3 22:20:25 2006 -0500
+
+    Fix the upload script to correctly reference the sig files.
+
+commit be1a157ad3657b1c1406d2b246df9e49afca826f
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Sun Dec 3 20:31:10 2006 -0500
+
+    Remove ChangeLog, doc/mdate-sh, and doc/texinfo.tex since they are 
+unmanaged files and get generated automatically at release time.
+
+commit 0b8b2da570ceda85f79e1b2b1239f7e5a4668ece
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Sun Dec 3 20:30:44 2006 -0500
+
+    Generate ChangeLog before running the autogen tools because we need a file 
+called 'ChangeLog' to exist when running those tools.
+
+commit afeb97c0968ea0dda5f07d56ee1361562a8d6517
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Sun Dec 3 18:37:45 2006 -0500
+
+    Pass git changelog through 'fold -s' to wrap long lines.
+
+commit e6012cac9fa1999d2719f01c35df33cef9b92614
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Sun Dec 3 18:25:41 2006 -0500
+
+    Added the --enable-selinux switch to the configure script.  If set, it adds 
+-lselinux and -lsepol to the list of libraries to link libparted with.  Bumped 
+the version number to 1.9.9 since this is the edge branch.
+
+commit 00ab69cc4471643aa422e3bf9a536ac2fff64266
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Sun Dec 3 18:09:54 2006 -0500
+
+    Rename all old ChangeLog files to ChangeLog.0.  Added code to the 
+tarball_upload.sh script to generate a toplevel ChangeLog from the git 
+changelog.
+
+commit 155b8da6f647a09b365a599d96ce259fd4649429
+Author: Leslie P. Polzer <polzer@gnu.org>
+Date:   Sat Dec 2 21:43:02 2006 +0100
+
+    Updated URL of static parted in docs.
+
+commit e3af14fde62492e7a4a7f451161c999527025d65
+Author: Anant Narayanan <anant@kix.in>
+Date:   Sun Dec 3 01:45:14 2006 +0530
+
+    Make parted ignore '-i' option instead of failing
+
+commit 30e12276029b0b6c04d2d0edf2b9b00ba797013c
+Author: Anant Narayanan <anant@kix.in>
+Date:   Sun Dec 3 00:24:34 2006 +0530
+
+    Support machine parseable output.
+
+commit a51bc04c311154ab770a720faf84def68c2f4875
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Thu Nov 30 08:09:08 2006 +0530
+
+    Cleanup _partition_warn_busy, _disk_warn_busy, _partition_warn_loss and 
+_disk_warn_loss.
+
+commit cebee78a5b5c9f6b0fb3c918d2cab82744d74e24
+Author: Otavio Salvador <otavio@debian.org>
+Date:   Tue Nov 28 22:26:50 2006 -0200
+
+    Proper print when there're no extended partitions, but partition names 
+(patch from Sven Luther)
+
+commit ad358e802bc539e49608e05badd257a1ff6d3658
+Author: Otavio Salvador <otavio@debian.org>
+Date:   Tue Nov 28 17:36:03 2006 -0200
+
+    libparted/arch/linux.c: initialize task point to please GCC
+
+commit 7081b489002dedb5b9450fb83bdf91a915b2838b
+Author: Otavio Salvador <otavio@debian.org>
+Date:   Tue Nov 28 17:35:00 2006 -0200
+
+    Don't enforce libselinux and libsepol linking when using device-mapper 
+support
+
+commit 692a1a8363d17986da061b792dd01f80e7b745f0
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Wed Nov 29 03:43:05 2006 +0530
+
+    Warn before mklabel and mkfs.
+
+commit ae6278b3091dbbaee4832c0579a02d867cc5bbe2
+Author: Debarshi Ray <rishi@gnu.org>
+Date:   Wed Nov 29 00:10:04 2006 +0530
+
+    Make mktable aliased to mklabel.
+
+commit 3ca373769bd33b99946e9a85f476e21c4cad47ce
+Author: Otavio Salvador <otavio@debian.org>
+Date:   Mon Nov 27 22:06:20 2006 -0200
+
+    Fix 'print' command help
+    
+    'print' command help was missing a new line at end and then breaking
+    the help printing.
+
+commit a9f9240d7ee40659edaa953bb987e475ac159ea2
+Author: Leslie P. Polzer <polzer@gnu.org>
+Date:   Mon Nov 27 17:59:14 2006 +0100
+
+    Updated translations.
+
+commit 9a6d5bc9fbd991b23b5e78c552d252740da0bf63
+Author: Otavio Salvador <otavio@debian.org>
+Date:   Sun Nov 26 22:47:11 2006 -0200
+
+    Remove doc/mdate-sh and doc/texinfo.tex since they are included when we run 
+autogen.sh
+
+commit e567b42aed82eace7143e0e04e2532d7124ee991
+Author: Anant Narayanan <anant@kix.in>
+Date:   Thu Nov 23 13:46:13 2006 +0530
+
+    Introduce the -list command-line switch, patch by Debarshi Ray
+
+commit 45c63412a89580e4c33db29d218bc7896c7c5d45
+Author: Otavio Salvador <otavio@debian.org>
+Date:   Wed Nov 22 18:38:59 2006 -0200
+
+    Avoid warning about user permissions when using --version
+
+commit 1d021d78eccc3a87461a49bbb871b30277c4b010
+Author: Otavio Salvador <otavio@debian.org>
+Date:   Wed Nov 22 18:22:39 2006 -0200
+
+    parted/parted.c: Remove redeclaration of current_dev fixing a compilation 
+error
+
+commit b593b0219787646cecc64818c3618afada5075b9
+Author: Otavio Salvador <otavio@debian.org>
+Date:   Wed Nov 22 15:40:44 2006 -0200
+
+    Readd the 'return 0;' to please GCC
+    
+    The commit d000de8f062ce070d5310f164ebf4f5ed26fcad0 included a
+    compilation warning that makes sense when Parted is built without
+    debugging. To solve the warning and ensure that when running without
+    debugging we return a sinsible value I've reverted
+    d000de8f062ce070d5310f164ebf4f5ed26fcad0 change and added a nice
+    comment to avoid misunderstandings again.
+
+commit 0ddc14a9d22cf1d994ea15285cc39c6f000a2d30
+Author: Anant <anant@theghost.(none)>
+Date:   Thu Nov 23 01:12:04 2006 +0530
+
+    Fix loop in print_all, thanks to Debarshi Ray for the patch.
+
+commit d000de8f062ce070d5310f164ebf4f5ed26fcad0
+Author: Otavio Salvador <otavio@debian.org>
+Date:   Mon Nov 20 21:45:13 2006 -0200
+
+    Remove useless 'return 0;' call
+    
+    Since PED_ASSERT will always be run, the return 0 is useless, hence
+    removed.
+
+commit 43b8a930c3c97088e85f676100b3f8c8afcd01eb
+Author: Otavio Salvador <otavio@debian.org>
+Date:   Mon Nov 20 21:44:13 2006 -0200
+
+    Remove useless semicolon from PED_ASSERT calls
+
+commit e8c462eaae67a38678f19cc0f18f473d363b4227
+Author: David Cantrell <dcantrel@mortise.boston.redhat.com>
+Date:   Mon Nov 20 12:34:49 2006 -0500
+
+    Generate SHA-1 digests of the archive files and upload those along with the 
+actual archive files.
+
+commit 791bc17d9f6a3f3890b37b0a96823350cf8a7ebb
+Author: Otavio Salvador <otavio@debian.org>
+Date:   Mon Nov 20 18:16:12 2006 -0200
+
+    Rework backtrace support
+    
+    While doing a deeply check about the backtrace support I found that
+    -rdynamic is useless on CFLAGS and my previous change was wrong since
+    it wasn't avoiding -rdynamic on LFLAGS if the running system missed
+    the execinfo.h support. That would probably cause a build error on
+    some systems.
+
+commit d9f985240c67d6b789d7c5d4e7f5b8c86865d050
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Nov 17 15:42:05 2006 +0000
+
+    Final changes for parted-1.8.0
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@896 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 7f443fa31de53c58b836cfe2b42aa920dce34f91
+Author: Otavio Salvador <otavio@debian.org>
+Date:   Sat Nov 11 20:30:57 2006 +0000
+
+    Apply changes done on Darcs and suitable for release on 1.8 final:
+    
+    Sat Nov 11 18:09:17 BRST 2006  Otavio Salvador <otavio@debian.org>
+      * Enable backtrace just if it's has support on libc.
+    
+    Sat Nov 11 17:41:12 BRST 2006  Otavio Salvador <otavio@debian.org>
+      * Add -rdynamic to LDFLAGS.
+    
+    Sat Nov 11 17:40:19 BRST 2006  Otavio Salvador <otavio@debian.org>
+      * Add -rdynamic to CFLAGS
+    
+    Sat Nov 11 17:38:11 BRST 2006  Otavio Salvador <otavio@debian.org>
+      * Print backtrace stack when throwing an exception
+    
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@895 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 8d01bac2a34ba2a0bc7e4fdb68c61917cda03a71
+Author: Otavio Salvador <otavio@debian.org>
+Date:   Sat Nov 11 17:23:46 2006 +0000
+
+    Remove files that can be generated.
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@894 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit ea44a7b5e1395ac06c965daf815d08b525d35cf9
+Author: Otavio Salvador <otavio@debian.org>
+Date:   Sat Nov 11 12:45:23 2006 +0000
+
+    Changes done on darcs repository suitable for 1.8 release:
+    
+    Sat Nov 11 10:41:54 BRST 2006  Otavio Salvador <otavio@debian.org>
+      * Break lines bigger then 80 columns.
+    
+    Sat Nov 11 02:02:26 BRST 2006  Otavio Salvador <otavio@debian.org>
+      * Fix autogen.sh script to call autopoint with -f
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@892 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit c4a8b9d94afb889fc90f4a855d55b0a1716c57b2
+Author: Otavio Salvador <otavio@debian.org>
+Date:   Sat Nov 11 01:32:58 2006 +0000
+
+    Changes done on darcs repository suitable for 1.8 release:
+    
+    Fri Nov 10 23:19:15 BRST 2006  Otavio Salvador <otavio@debian.org>
+      * Code clean-up on registering and unregistering of disks
+    
+            * libparted/disk.c (ped_register_disk_type, 
+ped_unregister_disk_type):
+            Clean-up. Patch sent by Debarshi 'Rishi' Ray 
+<debarshi.ray@gmail.com>.
+    
+    Fri Nov 10 23:14:58 BRST 2006  Otavio Salvador <otavio@debian.org>
+      * Fix filesystem unregistering
+    
+            * libparted/filesys.c (ped_file_system_type_unregister): Handle
+            instances where fs_types == NULL and the given fs_type is not in
+            the list of registered file-system types. Some code clean-up.
+            Patch sent by Debarshi 'Rishi' Ray <debarshi.ray@gmail.com>.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@891 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 65a9b87971a1761274b79aed464ae924d924ce04
+Author: Otavio Salvador <otavio@debian.org>
+Date:   Fri Nov 10 14:05:18 2006 +0000
+
+    Changes done on darcs repository suitable for 1.8 release:
+    
+    Wed Nov  8 20:40:43 BRST 2006  Otavio Salvador <otavio@debian.org>
+      * Merge libparted/ChangeLog conflict caused by Subversion syncing
+    
+    Wed Nov  8 21:15:58 BRST 2006  Otavio Salvador <otavio@debian.org>
+      * doc/C/parted.8: small documentation simplification
+    
+    Wed Nov  8 20:09:03 BRST 2006  Otavio Salvador <otavio@debian.org>
+      * libparted/fs/hfs/probe.c: Fix a segmentation fault when running without 
+debug
+    
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@890 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit ed3347ffe695c45cdb0e6037e382db619b6e76c2
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Mon Nov 6 00:34:57 2006 +0000
+
+    Updates for parted-1.8.0rc3
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@882 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit b55d4cb7eb481b71894ff3416f9e092ffb794042
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Mon Nov 6 00:01:01 2006 +0000
+
+       * arch/linux.c: Define PROC_DEVICES_BUFSIZ for reading /proc/devices,
+       set to 16384.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@881 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 857952db44cbeeba462fc4b1efebb73adabeb9e9
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Thu Nov 2 23:35:31 2006 +0000
+
+       * labels/mac.c (_rawpart_is_boot): Check for Apple_Boot type.
+       * labels/mac.c (_rawpart_analyse): Don't check the data_region_length
+       against the part->geom.length for boot partitions.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@880 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit bedeb63457b543cd14ba62ff167b552f4b7f64b2
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Tue Oct 31 20:06:25 2006 +0000
+
+    2048 -> 1024
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@871 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 537863c5defd5d3f1ba33cd65f060c63e2eab7b0
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Tue Oct 31 20:05:55 2006 +0000
+
+            * device.c (canonicalize_file_name): calloc should use sizeof(char)
+            instead of 1 (from Debarshi Ray).
+            * arch/linux.c (readFD): Use a 1KB buffer to read /proc/devices
+            rather than a 16KB buffer.  Init filesize to zero at declaration.
+            Combine error and EOF check for read() loop.  Memory cleanups at
+            function exit.  Use malloc() instead of calloc() (from Debarshi
+            Ray).
+            * arch/linux.c (_is_dm_major): Test expression and loop cleanups
+            (from Debarshi Ray).
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@870 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit e5abd4d5597ba4a54d9b5e4194f8d90988c18e19
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Tue Oct 31 20:05:42 2006 +0000
+
+            * parted.c (do_print): Add device-mapper type to the transport type
+            list (from Debarshi Ray).
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@869 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit ef4343efe1ea283ff3f4ee44046af1a473014f93
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Thu Oct 26 20:23:20 2006 +0000
+
+            * arch/linux.c: Go to error_free_arch_specific rather than
+            error_free_dev for init_generic() failure on PED_DEVICE_UBD.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@866 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 52b5281bbbe6f9f262f024ba31bd49787c1a1a4e
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Thu Oct 26 20:22:59 2006 +0000
+
+    Line length fixes.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@865 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 3cf7e98f65bf1695cedafd9ceec53eacbb2f49ec
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Wed Oct 11 20:52:58 2006 +0000
+
+    Need the filename: directive as well.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@858 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 31562e95ae323492785f821b3da61d5bea5a8829
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Wed Oct 11 20:35:24 2006 +0000
+
+    Set directive file version to 1.1.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@855 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 2820e091e51b394aca26a50c2ce0e33fd75fd224
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Wed Oct 11 19:55:58 2006 +0000
+
+    Conditionalize the device-mapper stuff.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@852 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 7ae07d52ec84c00e3749fd74302fbe9470447af0
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Wed Oct 11 19:48:29 2006 +0000
+
+    i18n updates.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@850 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 2f90fe2b624807347127e7a9dde3c2e28c32a256
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Wed Oct 11 19:46:07 2006 +0000
+
+    Bump version.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@849 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 2d3ff5782f478c9a68e1084787e8e97556054aaa
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Wed Oct 11 19:45:52 2006 +0000
+
+    Updates for 1.8.0rc2 release.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@848 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 797cdb00cbd05ca529537de6546c595290db3974
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Wed Oct 11 19:42:08 2006 +0000
+
+    Added /dev/mapper device support (patch from Peter Jones).
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@847 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit df9247c1425e23daaaf51e15d2afe5d3939b58a4
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Mon Oct 9 18:33:48 2006 +0000
+
+       * cs/geom.c (ped_geometry_read): Do not throw PED_EXCEPTION_ERROR here
+       if accessing sectors outside of partition boundary. Returning false
+       causes ped_geometry_check() to shift correctly anyway.  This occurs
+       on current Mac disklabels, among other systems.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@845 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 743a57354cbb7fe0c0cfb38cca5d69a35d0f0f3d
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Mon Oct 9 18:29:22 2006 +0000
+
+       * disk.c (ped_unregister_disk_type): Handle instances where disk_types
+       == NULL and the given type is not in the list of registered disk types
+       (from Debarshi Ray).
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@844 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit c9b7d8ff9d23766663d59465e4025bb9278c2f10
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Mon Oct 9 18:25:06 2006 +0000
+
+           * parted.c (do_print): Define transport type list and display disk
+           model type and transport type (from Debarshi Ray).
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@843 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit d404542493c6e6c9f0950375af847877fc477eb9
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Mon Oct 9 18:03:52 2006 +0000
+
+    Forgot changelog notice.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@842 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit e11ee6af016557c71e40561c02060f71c2814a84
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Mon Oct 9 18:03:22 2006 +0000
+
+    Updated i18n files.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@841 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit f0b9c8cf02196ce7e6d1eacc39ead1879268ee0a
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Oct 6 19:36:14 2006 +0000
+
+       * arch/linux.c: Change __GNU_SOURCE define to _GNU_SOURCE (only one
+       underscore at the beginning). Fixes problem with certain systems
+       not getting posix_memalign() defined during compilation.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@840 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 4b9f246731f061a61e63e3af2eddf4d136f9775a
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Oct 6 18:15:41 2006 +0000
+
+       * scripts/release/tarball_upload.sh: Since v1.0 directive files will
+       no longer be supported by ftp-upload.gnu.org after 2006, modified the
+       upload script to use the v1.1 format.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@839 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 1733f680f22a6f15ad0ba86a3849cf9e6280c351
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Oct 6 17:51:42 2006 +0000
+
+       * scripts/release/tarball_upload.sh: Support the -a (or --alpha) switch
+       on the tarball upload script. This switch will upload the release to
+       alpha.gnu.org rather than ftp.gnu.org.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@838 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit fee81c46f5890d9024c0f4e164d555fe828f0d13
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Sep 15 19:14:17 2006 +0000
+
+    Fix execution of autogen.sh and configure.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@836 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 67d6bdcfe0e3b3447243e1e3ba2ac195fda6e349
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Sep 15 19:10:08 2006 +0000
+
+    These (upx and statifier) are not called from anywhere.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@835 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 0e3276e2ad5bdfc5134066499a94daf2ae3df461
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Sep 15 19:06:53 2006 +0000
+
+    Updated for parted-1.8.0rc1.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@834 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 735066798b3bdd05cb2d6324c4519d21ad8f94de
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Sep 15 19:05:23 2006 +0000
+
+           * doc/po4a.mk: Removed fake* stuff. Fixed all-local target so you 
+don't
+           end up in an infinite make loop trying to make '*'. Fixed the remove
+           target as well.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@833 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit ee51dc64f9ce85b8efe3e31e371c5fdb9591dfd8
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Sep 15 18:54:55 2006 +0000
+
+    Tabs for the updatepo target.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@832 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit d76a8b989c26414a11085d995d463f3b2926b1da
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Sep 15 18:32:54 2006 +0000
+
+    Add vtoc.h and fdasd.h to the list.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@831 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit a41cd22e1f035478c429f5cb5f2017d405b31864
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Sep 15 18:27:43 2006 +0000
+
+    Removed the extra double quote at the end of line 6 in 
+partprobe.8.pt_BR.po.  Other updates for i18n.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@830 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 3d5f22814bc20546bd6361a2e718b2bde22fed12
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Sep 15 18:16:19 2006 +0000
+
+    Added a script to clean the tree after running 'make distclean'.  Gets it 
+back to the checked-out state from svn.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@829 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit e4ab44a38068e3a856c49b681963159030a377a3
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Sep 15 18:14:28 2006 +0000
+
+    i18n updates for parted-1.8.0.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@828 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 4c273408ede70a343727cfa80d656114e085c696
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Sep 15 18:14:06 2006 +0000
+
+    Removed *.h files from the Makefile.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@827 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 36b3a98e3d5fa6bb1a182f3a8cfea8d6d010dc20
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Sep 15 18:13:07 2006 +0000
+
+    i18n updates for parted-1.8.0.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@826 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 859d0d68fe03235b438a738ed5a65a32d880614e
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Sep 15 18:12:35 2006 +0000
+
+    Removed from version control.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@825 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit f4448f549734e7fd8ed575024c83a9fead496bf8
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Sep 15 18:11:10 2006 +0000
+
+    i18n updates for parted-1.8.0.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@824 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 4d69cd37d6e55d47a1fdf12451566a4e12442407
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Sep 15 18:10:43 2006 +0000
+
+    Removed from version control.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@823 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 48ea38118fc9c601eca616680a65327cb4dcdcfe
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Fri Sep 15 15:25:41 2006 +0000
+
+    Updated for version 1.8.0rc1.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@822 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 26cfacb70d75923b23a0e07f1a01ed7ed88622c6
+Author: David Cantrell <dcantrell@redhat.com>
+Date:   Thu Sep 14 20:55:58 2006 +0000
+
+           * labels/mac.c (mac_partition_new): memset() inits everything to
+           zero, no need to do it manually.
+    
+           * labels/mac.c (mac_partition_set_flag): Prevent LVM and RAID 
+partition
+           types from corrupting the partition table.
+    
+           * arch/linux.c (_blkpg_add_partition): Set linux_part.length based on
+           whether or not this partition is PED_PARTITION_EXTENDED or not.
+    
+           * arch/linux.c (_disk_sync_part_table): Remove the check and continue
+           for PED_PARTITION_EXTENDED types.
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@821 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
+
+commit 232dbda915dfcfec99e5983b7f53d57d4498a6aa
+Author: Anant Narayanan <anant@kix.in>
+Date:   Thu Sep 14 15:18:45 2006 +0000
+
+    Fix ChangeLog
+    
+    
+    git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@820 
+2d424fd7-7fe2-0310-af74-8bc65edeb173
diff --git a/parted-1.8.7/GNUmakefile b/parted-1.8.7/GNUmakefile
new file mode 100644
index 0000000..38d5524
--- /dev/null
+++ b/parted-1.8.7/GNUmakefile
@@ -0,0 +1,58 @@
+# Having a separate GNUmakefile lets me `include' the dynamically
+# generated rules created via Makefile.maint as well as Makefile.maint itself.
+# This makefile is used only if you run GNU Make.
+# It is necessary if you want to build targets usually of interest
+# only to the maintainer.
+
+# Copyright (C) 2001, 2003, 2006 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+# Systems where /bin/sh is not the default shell need this.  The $(shell)
+# command below won't work with e.g. stock DOS/Windows shells.
+ifeq ($(wildcard /bin/s[h]),/bin/sh)
+SHELL = /bin/sh
+else
+# will be used only with the next shell-test line, then overwritten
+# by a configured-in value
+SHELL = sh
+endif
+
+have-Makefile := $(shell test -f Makefile && echo yes)
+
+# If the user runs GNU make but has not yet run ./configure,
+# give them a diagnostic.
+ifeq ($(have-Makefile),yes)
+
+# Make tar archive easier to reproduce.
+export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner
+
+include Makefile
+include $(srcdir)/Makefile.cfg
+include $(srcdir)/Makefile.maint
+
+else
+
+all:
+	@echo There seems to be no Makefile in this directory.   1>&2
+	@echo "You must run ./configure before running \`make'." 1>&2
+	@exit 1
+
+endif
+
+# Tell version 3.79 and up of GNU make to not build goals in this
+# directory in parallel.  This is necessary in case someone tries to
+# build multiple targets on one command line.
+.NOTPARALLEL:
diff --git a/parted-1.8.7/INSTALL b/parted-1.8.7/INSTALL
new file mode 100644
index 0000000..5458714
--- /dev/null
+++ b/parted-1.8.7/INSTALL
@@ -0,0 +1,234 @@
+Installation Instructions
+*************************
+
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
+2006 Free Software Foundation, Inc.
+
+This file is free documentation; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+
+Basic Installation
+==================
+
+Briefly, the shell commands `./configure; make; make install' should
+configure, build, and install this package.  The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package.
+
+   The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation.  It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions.  Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+   It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring.  Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.
+
+   If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release.  If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+   The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'.  You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
+
+The simplest way to compile this package is:
+
+  1. `cd' to the directory containing the package's source code and type
+     `./configure' to configure the package for your system.
+
+     Running `configure' might take a while.  While running, it prints
+     some messages telling which features it is checking for.
+
+  2. Type `make' to compile the package.
+
+  3. Optionally, type `make check' to run any self-tests that come with
+     the package.
+
+  4. Type `make install' to install the programs and any data files and
+     documentation.
+
+  5. You can remove the program binaries and object files from the
+     source code directory by typing `make clean'.  To also remove the
+     files that `configure' created (so you can compile the package for
+     a different kind of computer), type `make distclean'.  There is
+     also a `make maintainer-clean' target, but that is intended mainly
+     for the package's developers.  If you use it, you may have to get
+     all sorts of other programs in order to regenerate files that came
+     with the distribution.
+
+Compilers and Options
+=====================
+
+Some systems require unusual options for compilation or linking that the
+`configure' script does not know about.  Run `./configure --help' for
+details on some of the pertinent environment variables.
+
+   You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment.  Here
+is an example:
+
+     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
+
+   *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory.  To do this, you can use GNU `make'.  `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script.  `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+   With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory.  After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
+
+Installation Names
+==================
+
+By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc.  You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX'.
+
+   You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files.  If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+   In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files.  Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+   If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System).  The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+   For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+There may be some features `configure' cannot figure out automatically,
+but needs to determine by the type of machine the package will run on.
+Usually, assuming the package is built to be run on the _same_
+architectures, `configure' can figure that out, but if it prints a
+message saying it cannot guess the machine type, give it the
+`--build=TYPE' option.  TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+     CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+     OS KERNEL-OS
+
+   See the file `config.sub' for the possible values of each field.  If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+   If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+   If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+If you want to set default values for `configure' scripts to share, you
+can create a site shell script called `config.site' that gives default
+values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists.  Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+Variables not defined in a site shell script can be set in the
+environment passed to `configure'.  However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost.  In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'.  For example:
+
+     ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf bug.  Until the bug is fixed you can use this workaround:
+
+     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+`configure' Invocation
+======================
+
+`configure' recognizes the following options to control how it operates.
+
+`--help'
+`-h'
+     Print a summary of the options to `configure', and exit.
+
+`--version'
+`-V'
+     Print the version of Autoconf used to generate the `configure'
+     script, and exit.
+
+`--cache-file=FILE'
+     Enable the cache: use and save the results of the tests in FILE,
+     traditionally `config.cache'.  FILE defaults to `/dev/null' to
+     disable caching.
+
+`--config-cache'
+`-C'
+     Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+     Do not print messages saying which checks are being made.  To
+     suppress all normal output, redirect it to `/dev/null' (any error
+     messages will still be shown).
+
+`--srcdir=DIR'
+     Look for the package's source code in directory DIR.  Usually
+     `configure' can determine that directory automatically.
+
+`configure' also accepts some other, not widely useful, options.  Run
+`configure --help' for more details.
+
diff --git a/parted-1.8.7/Makefile.am b/parted-1.8.7/Makefile.am
new file mode 100644
index 0000000..1aba177
--- /dev/null
+++ b/parted-1.8.7/Makefile.am
@@ -0,0 +1,74 @@
+ACLOCAL_AMFLAGS = -I m4
+SUBDIRS = po lib libparted parted partprobe include doc debug tests
+
+EXTRA_DIST =				\
+  .prev-version				\
+  BUGS					\
+  libparted.pc.in			\
+  parted.spec.in			\
+  parted.spec				\
+  scripts/data/abi/baseline_symbols.txt \
+  scripts/extract_symvers		\
+  Makefile.cfg				\
+  Makefile.maint			\
+  GNUmakefile
+
+aclocaldir=$(datadir)/aclocal
+
+pcdir = $(libdir)/pkgconfig
+pc_DATA = libparted.pc
+
+# This is best not done via configure.ac, because automake's
+# make distcheck target does not like auto-generated files
+# being included in the distributed archive.
+parted.spec: parted.spec.in
+	sed 's/@''PACKAGE@/$(PACKAGE)/;s/@''VERSION@/$(VERSION)/' $< > $@-tmp
+	mv $@-tmp $@
+MAINTAINERCLEANFILES = parted.spec
+
+distcheck-hook:
+	$(MAKE) my-distcheck
+
+### ABI Checking scripts ###
+
+baseline_file = ${top_srcdir}/scripts/data/abi/baseline_symbols.txt
+extract_symvers = $(top_srcdir)/scripts/extract_symvers
+
+current_symbols.txt: ${extract_symvers}
+	  -@(sh ${extract_symvers} libparted/.libs/libparted.so current_symbols.txt)
+
+baseline_symbols:
+	-@(output=${baseline_file}; \
+	  if test ! -f $${output}; then \
+	    echo "Baseline file doesn't exist."; \
+	    echo "Try 'make new-abi-baseline' to create it."; \
+	    exit 1; \
+	  fi; true)
+
+new-abi-baseline:
+	-@$(mkinstalldirs) ${baseline_dir}
+	-@(output=${baseline_file}; \
+	  if test -f $${output}; then \
+	    output=$${output}.new; \
+	    t=`echo $${output} | sed 's=.*config/abi/=='`; \
+	    echo "Baseline file already exists, writing to $${t} instead."; \
+	  fi; \
+	  sh ${extract_symvers} libparted/.libs/libparted.so $${output})
+
+# Use 'new-abi-baseline' to create an initial symbol file.  Then run
+# 'check-abi' to test for changes against that file.
+check-abi: baseline_symbols current_symbols.txt
+	@diff -u ${baseline_file} ./current_symbols.txt 2>&1 \
+         | tee libparted.abi-diff
+	@test `wc -l < libparted.abi-diff` -gt 0 \
+         && (echo "ABI has changed. Please, update you ABI package version."; exit 1) \
+         || exit 0
+
+MOSTLYCLEANDIRS = m4
+
+MAINTAINERCLEANFILES += \
+  ABOUT-NLS     \
+  ChangeLog     \
+  INSTALL       \
+  aclocal.m4    \
+  configure
diff --git a/parted-1.8.7/Makefile.cfg b/parted-1.8.7/Makefile.cfg
new file mode 100644
index 0000000..e1bad2b
--- /dev/null
+++ b/parted-1.8.7/Makefile.cfg
@@ -0,0 +1,54 @@
+# Customize Makefile.maint.                           -*- makefile -*-
+# Copyright (C) 2003-2007 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+
+# Use alpha.gnu.org for alpha and beta releases.
+# Use ftp.gnu.org for major releases.
+gnu_ftp_host-alpha = alpha.gnu.org
+gnu_ftp_host-beta = alpha.gnu.org
+gnu_ftp_host-major = ftp.gnu.org
+gnu_rel_host = $(gnu_ftp_host-$(RELEASE_TYPE))
+
+url_dir_list = \
+  ftp://$(gnu_rel_host)/gnu/parted
+
+# The GnuPG ID of the key used to sign the tarballs.
+gpg_key_ID = D333CBA1
+
+# Tests not to run as part of "make distcheck".
+# Exclude changelog-check here so that there's less churn in ChangeLog
+# files -- otherwise, you'd need to have the upcoming version number
+# at the top of the file for each `make distcheck' run.
+local-checks-to-skip = \
+  sc_file_system \
+  sc_prohibit_atoi_atof \
+  sc_system_h_headers \
+  sc_space_tab \
+  sc_tight_scope \
+  sc_trailing_blank \
+  sc_useless_cpp_parens \
+  changelog-check \
+  strftime-check \
+  patch-check \
+  author_mark_check \
+  sc_cast_of_argument_to_free \
+  check-AUTHORS
+
+
+# The local directory containing the checked-out copy of gnulib used in
+# this release.  Used solely to get a date for the "announcement" target.
+gnulib_dir = /gnulib
diff --git a/parted-1.8.7/Makefile.in b/parted-1.8.7/Makefile.in
new file mode 100644
index 0000000..808ee2f
--- /dev/null
+++ b/parted-1.8.7/Makefile.in
@@ -0,0 +1,897 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = .
+DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in $(srcdir)/libparted.pc.in \
+	$(top_srcdir)/configure ABOUT-NLS AUTHORS COPYING ChangeLog \
+	INSTALL NEWS THANKS TODO build-aux/compile \
+	build-aux/config.guess build-aux/config.rpath \
+	build-aux/config.sub build-aux/depcomp build-aux/install-sh \
+	build-aux/ltmain.sh build-aux/mdate-sh build-aux/missing \
+	build-aux/texinfo.tex
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES = libparted.pc
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+	html-recursive info-recursive install-data-recursive \
+	install-dvi-recursive install-exec-recursive \
+	install-html-recursive install-info-recursive \
+	install-pdf-recursive install-ps-recursive install-recursive \
+	installcheck-recursive installdirs-recursive pdf-recursive \
+	ps-recursive uninstall-recursive
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(pcdir)"
+pcDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(pc_DATA)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
+  distclean-recursive maintainer-clean-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+  { test ! -d $(distdir) \
+    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+         && rm -fr $(distdir); }; }
+DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
+GZIP_ENV = --best
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+ACLOCAL_AMFLAGS = -I m4
+SUBDIRS = po lib libparted parted partprobe include doc debug tests
+EXTRA_DIST = \
+  .prev-version				\
+  BUGS					\
+  libparted.pc.in			\
+  parted.spec.in			\
+  parted.spec				\
+  scripts/data/abi/baseline_symbols.txt \
+  scripts/extract_symvers		\
+  Makefile.cfg				\
+  Makefile.maint			\
+  GNUmakefile
+
+aclocaldir = $(datadir)/aclocal
+pcdir = $(libdir)/pkgconfig
+pc_DATA = libparted.pc
+MAINTAINERCLEANFILES = parted.spec ABOUT-NLS ChangeLog INSTALL \
+	aclocal.m4 configure
+
+### ABI Checking scripts ###
+baseline_file = ${top_srcdir}/scripts/data/abi/baseline_symbols.txt
+extract_symvers = $(top_srcdir)/scripts/extract_symvers
+MOSTLYCLEANDIRS = m4
+all: all-recursive
+
+.SUFFIXES:
+am--refresh:
+	@:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
+	      cd $(srcdir) && $(AUTOMAKE) --gnu  \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    echo ' $(SHELL) ./config.status'; \
+	    $(SHELL) ./config.status;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	$(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+libparted.pc: $(top_builddir)/config.status $(srcdir)/libparted.pc.in
+	cd $(top_builddir) && $(SHELL) ./config.status $@
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+install-pcDATA: $(pc_DATA)
+	@$(NORMAL_INSTALL)
+	test -z "$(pcdir)" || $(MKDIR_P) "$(DESTDIR)$(pcdir)"
+	@list='$(pc_DATA)'; for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  f=$(am__strip_dir) \
+	  echo " $(pcDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pcdir)/$$f'"; \
+	  $(pcDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pcdir)/$$f"; \
+	done
+
+uninstall-pcDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(pc_DATA)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(pcdir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(pcdir)/$$f"; \
+	done
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	rev=''; for subdir in $$list; do \
+	  if test "$$subdir" = "."; then :; else \
+	    rev="$$subdir $$rev"; \
+	  fi; \
+	done; \
+	rev="$$rev ."; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done && test -z "$$fail"
+tags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+ctags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+	  include_option=--etags-include; \
+	  empty_fix=.; \
+	else \
+	  include_option=--include; \
+	  empty_fix=; \
+	fi; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test ! -f $$subdir/TAGS || \
+	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	  fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	$(am__remove_distdir)
+	test -d $(distdir) || mkdir $(distdir)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d "$(distdir)/$$subdir" \
+	    || $(MKDIR_P) "$(distdir)/$$subdir" \
+	    || exit 1; \
+	    distdir=`$(am__cd) $(distdir) && pwd`; \
+	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+	    (cd $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$$top_distdir" \
+	        distdir="$$distdir/$$subdir" \
+		am__remove_distdir=: \
+		am__skip_length_check=: \
+	        distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+	-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+	|| chmod -R a+r $(distdir)
+dist-gzip: distdir
+	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	$(am__remove_distdir)
+dist-bzip2: distdir
+	tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+	$(am__remove_distdir)
+
+dist-tarZ: distdir
+	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+	$(am__remove_distdir)
+
+dist-shar: distdir
+	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+	$(am__remove_distdir)
+
+dist-zip: distdir
+	-rm -f $(distdir).zip
+	zip -rq $(distdir).zip $(distdir)
+	$(am__remove_distdir)
+
+dist dist-all: distdir
+	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+	$(am__remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration.  Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+	case '$(DIST_ARCHIVES)' in \
+	*.tar.gz*) \
+	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+	*.tar.bz2*) \
+	  bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+	*.tar.Z*) \
+	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+	*.shar.gz*) \
+	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+	*.zip*) \
+	  unzip $(distdir).zip ;;\
+	esac
+	chmod -R a-w $(distdir); chmod a+w $(distdir)
+	mkdir $(distdir)/_build
+	mkdir $(distdir)/_inst
+	chmod a-w $(distdir)
+	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+	  && $(MAKE) $(AM_MAKEFLAGS) distcheck-hook \
+	  && cd $(distdir)/_build \
+	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+	    $(DISTCHECK_CONFIGURE_FLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
+	  && $(MAKE) $(AM_MAKEFLAGS) check \
+	  && $(MAKE) $(AM_MAKEFLAGS) install \
+	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+	        distuninstallcheck \
+	  && chmod -R a-w "$$dc_install_base" \
+	  && ({ \
+	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
+	  && rm -rf "$$dc_destdir" \
+	  && $(MAKE) $(AM_MAKEFLAGS) dist \
+	  && rm -rf $(DIST_ARCHIVES) \
+	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+	$(am__remove_distdir)
+	@(echo "$(distdir) archives ready for distribution: "; \
+	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+distuninstallcheck:
+	@cd $(distuninstallcheck_dir) \
+	&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+	   || { echo "ERROR: files left after uninstall:" ; \
+	        if test -n "$(DESTDIR)"; then \
+	          echo "  (check DESTDIR support)"; \
+	        fi ; \
+	        $(distuninstallcheck_listfiles) ; \
+	        exit 1; } >&2
+distcleancheck: distclean
+	@if test '$(srcdir)' = . ; then \
+	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+	  exit 1 ; \
+	fi
+	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+	  || { echo "ERROR: files left in build directory after distclean:" ; \
+	       $(distcleancheck_listfiles) ; \
+	       exit 1; } >&2
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(DATA)
+installdirs: installdirs-recursive
+installdirs-am:
+	for dir in "$(DESTDIR)$(pcdir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool \
+	distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-pcDATA
+
+install-dvi: install-dvi-recursive
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-info: install-info-recursive
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-ps: install-ps-recursive
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -rf $(top_srcdir)/autom4te.cache
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-pcDATA
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+	install-strip
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+	all all-am am--refresh check check-am clean clean-generic \
+	clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
+	dist-gzip dist-shar dist-tarZ dist-zip distcheck distclean \
+	distclean-generic distclean-libtool distclean-tags \
+	distcleancheck distdir distuninstallcheck dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pcDATA install-pdf \
+	install-pdf-am install-ps install-ps-am install-strip \
+	installcheck installcheck-am installdirs installdirs-am \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-recursive uninstall uninstall-am uninstall-pcDATA
+
+
+# This is best not done via configure.ac, because automake's
+# make distcheck target does not like auto-generated files
+# being included in the distributed archive.
+parted.spec: parted.spec.in
+	sed 's/@''PACKAGE@/$(PACKAGE)/;s/@''VERSION@/$(VERSION)/' $< > $@-tmp
+	mv $@-tmp $@
+
+distcheck-hook:
+	$(MAKE) my-distcheck
+
+current_symbols.txt: ${extract_symvers}
+	  -@(sh ${extract_symvers} libparted/.libs/libparted.so current_symbols.txt)
+
+baseline_symbols:
+	-@(output=${baseline_file}; \
+	  if test ! -f $${output}; then \
+	    echo "Baseline file doesn't exist."; \
+	    echo "Try 'make new-abi-baseline' to create it."; \
+	    exit 1; \
+	  fi; true)
+
+new-abi-baseline:
+	-@$(mkinstalldirs) ${baseline_dir}
+	-@(output=${baseline_file}; \
+	  if test -f $${output}; then \
+	    output=$${output}.new; \
+	    t=`echo $${output} | sed 's=.*config/abi/=='`; \
+	    echo "Baseline file already exists, writing to $${t} instead."; \
+	  fi; \
+	  sh ${extract_symvers} libparted/.libs/libparted.so $${output})
+
+# Use 'new-abi-baseline' to create an initial symbol file.  Then run
+# 'check-abi' to test for changes against that file.
+check-abi: baseline_symbols current_symbols.txt
+	@diff -u ${baseline_file} ./current_symbols.txt 2>&1 \
+         | tee libparted.abi-diff
+	@test `wc -l < libparted.abi-diff` -gt 0 \
+         && (echo "ABI has changed. Please, update you ABI package version."; exit 1) \
+         || exit 0
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/Makefile.maint b/parted-1.8.7/Makefile.maint
new file mode 100644
index 0000000..ccb7370
--- /dev/null
+++ b/parted-1.8.7/Makefile.maint
@@ -0,0 +1,620 @@
+# -*-Makefile-*-
+
+## Copyright (C) 2001-2007 Free Software Foundation, Inc.
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+## 02110-1301, USA.
+
+# This is reported not to work with make-3.79.1
+# ME := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
+ME := Makefile.maint
+
+# Do not save the original name or timestamp in the .tar.gz file.
+# Use --rsyncable if available.
+gzip_rsyncable := \
+  $(shell gzip --help 2>/dev/null|grep rsyncable >/dev/null && echo --rsyncable)
+GZIP_ENV = '--no-name --best $(gzip_rsyncable)'
+
+CVS = cvs
+GIT = git
+VC = $(GIT)
+VC-tag = git-tag -s -m '$(VERSION)'
+
+CVS_LIST = build-aux/vc-list-files
+
+CVS_LIST_EXCEPT = \
+  $(CVS_LIST) | if test -f .x-$@; then grep -vEf .x-$@; else grep -v ChangeLog; fi
+
+ifeq ($(origin prev_version_file), undefined)
+  prev_version_file = .prev-version
+endif
+
+PREV_VERSION := $(shell cat $(prev_version_file))
+VERSION_REGEXP = $(subst .,\.,$(VERSION))
+
+tag-package = $(shell echo "$(PACKAGE)" | tr '[:lower:]' '[:upper:]')
+tag-this-version = $(subst .,_,$(VERSION))
+this-vc-tag = $(tag-package)-$(tag-this-version)
+my_distdir = $(PACKAGE)-$(VERSION)
+
+# Old releases are stored here.
+# Used for diffs and xdeltas.
+release_archive_dir ?= ../release
+
+# Prevent programs like 'sort' from considering distinct strings to be equal.
+# Doing it here saves us from having to set LC_ALL elsewhere in this file.
+export LC_ALL = C
+
+
+
+## --------------- ##
+## Sanity checks.  ##
+## --------------- ##
+
+# FIXME: add a check to prohibit definition in src/*.c of symbols defined
+# in system.h.  E.g. today I removed from tail.c a useless definition of
+# ENOSYS.  It was useless because system.h ensures it's defined.
+
+# Collect the names of rules starting with `sc_'.
+syntax-check-rules := $(shell sed -n 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' $(ME))
+.PHONY: $(syntax-check-rules)
+
+# Checks that don't require cvs.
+# Run `changelog-check' last, as previous test may reveal problems requiring
+# new ChangeLog entries.
+local-checks-available = \
+  po-check copyright-check m4-check author_mark_check \
+  changelog-check patch-check strftime-check $(syntax-check-rules) \
+  makefile_path_separator_check \
+  makefile-check check-AUTHORS
+.PHONY: $(local-checks-available)
+
+local-check := $(filter-out $(local-checks-to-skip), $(local-checks-available))
+
+syntax-check: $(local-check)
+#	@grep -nE '#  *include <(limits|std(def|arg|bool))\.h>'		\
+#	    $$(find -type f -name '*.[chly]') &&			\
+#	  { echo '$(ME): found conditional include' 1>&2;		\
+#	    exit 1; } || :
+
+#	grep -nE '^#  *include <(string|stdlib)\.h>'			\
+#	    $(srcdir)/{lib,src}/*.[chy] &&				\
+#	  { echo '$(ME): FIXME' 1>&2;					\
+#	    exit 1; } || :
+# FIXME: don't allow `#include .strings\.h' anywhere
+
+sc_cast_of_argument_to_free:
+	@grep -nE '\<free \(\(' $$($(CVS_LIST_EXCEPT)) &&		\
+	  { echo '$(ME): don'\''t cast free argument' 1>&2;		\
+	    exit 1; } || :
+
+sc_cast_of_x_alloc_return_value:
+	@grep -nE '\*\) *x(m|c|re)alloc\>' $$($(CVS_LIST_EXCEPT)) &&	\
+	  { echo '$(ME): don'\''t cast x*alloc return value' 1>&2;	\
+	    exit 1; } || :
+
+sc_cast_of_alloca_return_value:
+	@grep -nE '\*\) *alloca\>' $$($(CVS_LIST_EXCEPT)) &&		\
+	  { echo '$(ME): don'\''t cast alloca return value' 1>&2;	\
+	    exit 1; } || :
+
+sc_space_tab:
+	@grep -n '[ ]	' $$($(CVS_LIST_EXCEPT)) &&			\
+	  { echo '$(ME): found SPACE-TAB sequence; remove the SPACE'	\
+		1>&2; exit 1; } || :
+
+# Don't use the old ato* functions in `real' code.
+# They provide no error checking mechanism.
+# Instead, use strto* functions.
+sc_prohibit_atoi_atof:
+	@grep -nE '\<ato([filq]|ll)\>' $$($(CVS_LIST_EXCEPT)) &&	\
+	  { echo '$(ME): do not use ato''f, ato''i, ato''l, ato''ll, or ato''q'	\
+		1>&2; exit 1; } || :
+
+# Using EXIT_SUCCESS as the first argument to error is misleading,
+# since when that parameter is 0, error does not exit.  Use `0' instead.
+sc_error_exit_success:
+	@grep -nF 'error (EXIT_SUCCESS,'				\
+	    $$(find -type f -name '*.[chly]') &&			\
+	  { echo '$(ME): found error (EXIT_SUCCESS' 1>&2;		\
+	    exit 1; } || :
+
+sc_file_system:
+	@grep -ni 'file''system' $$($(CVS_LIST_EXCEPT)) &&		\
+	  { echo '$(ME): found use of "file''system";'			\
+	    'rewrite to use "file system"' 1>&2;			\
+	    exit 1; } || :
+
+sc_no_have_config_h:
+	@grep -n 'HAVE''_CONFIG_H' $$($(CVS_LIST_EXCEPT)) &&		\
+	  { echo '$(ME): found use of HAVE''_CONFIG_H; remove'		\
+		1>&2; exit 1; } || :
+
+# Nearly all .c files must include <config.h>.
+sc_require_config_h:
+	@if $(CVS_LIST_EXCEPT) | grep '\.c$$' > /dev/null; then		\
+	  grep -L '^# *include <config\.h>'				\
+		$$($(CVS_LIST_EXCEPT) | grep '\.c$$')			\
+	      | grep . &&						\
+	  { echo '$(ME): the above files do not include <config.h>'	\
+		1>&2; exit 1; } || :;					\
+	else :;								\
+	fi
+
+# Prohibit the inclusion of assert.h without an actual use of assert.
+sc_prohibit_assert_without_use:
+	@if $(CVS_LIST_EXCEPT) | grep '\.c$$' > /dev/null; then		\
+	  files=$$(grep -l '# *include <assert\.h>'			\
+		    $$($(CVS_LIST_EXCEPT) | grep '\.c$$')) &&		\
+	  grep -L '\<assert (' $$files					\
+	      | grep . &&						\
+	    { echo "$(ME): the above files include <assert.h> but don't use it" \
+		  1>&2; exit 1; } || :;					\
+	else :;								\
+	fi
+
+sc_obsolete_symbols:
+	@grep -nE '\<(HAVE''_FCNTL_H|O''_NDELAY)\>'			\
+	     $$($(CVS_LIST_EXCEPT)) &&					\
+	  { echo '$(ME): do not use HAVE''_FCNTL_H or O''_NDELAY'	\
+		1>&2; exit 1; } || :
+
+# FIXME: warn about definitions of EXIT_FAILURE, EXIT_SUCCESS, STREQ
+
+# Each nonempty line must start with a year number, or a TAB.
+sc_changelog:
+	@grep -n '^[^12	]' $$(find . -maxdepth 2 -name ChangeLog) &&	\
+	  { echo '$(ME): found unexpected prefix in a ChangeLog' 1>&2;	\
+	    exit 1; } || :
+
+# Ensure that dd's definition of LONGEST_SYMBOL stays in sync
+# with the strings from the two affected variables.
+dd_c = $(srcdir)/src/dd.c
+sc_dd_max_sym_length:
+ifneq ($(wildcard $(dd_c)),)
+	@len=$$( (sed -n '/conversions\[\] =$$/,/^};/p' $(dd_c);\
+		 sed -n '/flags\[\] =$$/,/^};/p' $(dd_c) )	\
+		|sed -n '/"/s/^[^"]*"\([^"]*\)".*/\1/p'		\
+	      | wc --max-line-length);				\
+	max=$$(sed -n '/^#define LONGEST_SYMBOL /s///p' $(dd_c)	\
+	      |tr -d '"' | wc --max-line-length);		\
+	if test "$$len" = "$$max"; then :; else			\
+	  echo 'dd.c: LONGEST_SYMBOL is not longest' 1>&2;	\
+	  exit 1;						\
+	fi
+endif
+
+# Many m4 macros names once began with `jm_'.
+# On 2004-04-13, they were all changed to start with gl_ instead.
+# Make sure that none are inadvertently reintroduced.
+sc_prohibit_jm_in_m4:
+	@grep -nE 'jm_[A-Z]'					\
+		$$($(CVS_LIST) m4 |grep '\.m4$$'; echo /dev/null) && \
+	    { echo '$(ME): do not use jm_ in m4 macro names'	\
+	      1>&2; exit 1; } || :
+
+sc_root_tests:
+	@if test -d tests \
+	      && grep check-root tests/Makefile.am>/dev/null 2>&1; then \
+	t1=sc-root.expected; t2=sc-root.actual;				\
+	grep -nl '^PRIV_CHECK_ARG=require-root'				\
+	  $$($(CVS_LIST) tests) |sed s,tests,., |sort > $$t1;		\
+	sed -n 's,	cd \([^ ]*\) .*MAKE..check TESTS=\(.*\),./\1/\2,p' \
+	  $(srcdir)/tests/Makefile.am |sort > $$t2;			\
+	diff -u $$t1 $$t2 || diff=1;					\
+	rm -f $$t1 $$t2;						\
+	test "$$diff"							\
+	  && { echo 'tests/Makefile.am: missing check-root action'>&2;	\
+	       exit 1; } || :;						\
+	fi
+
+headers_with_interesting_macro_defs = \
+  exit.h	\
+  fcntl_.h	\
+  fnmatch_.h	\
+  intprops.h	\
+  inttypes_.h	\
+  lchown.h	\
+  openat.h	\
+  stat-macros.h	\
+  stdint_.h
+
+# Create a list of regular expressions matching the names
+# of macros that are guaranteed by parts of gnulib to be defined.
+.re-defmac:
+	@(cd $(srcdir)/lib;						\
+	  for f in $(headers_with_interesting_macro_defs); do		\
+	    test -f $$f &&						\
+	      sed -n '/^# *define \([^_ (][^ (]*\)[ (].*/s//\1/p' $$f;	\
+	   done;							\
+	 ) | sort -u							\
+	   | grep -Ev 'ATTRIBUTE_NORETURN|SIZE_MAX'			\
+	   | sed 's/^/^# *define /'					\
+	  > $@-t
+	@mv $@-t $@
+
+# Don't define macros that we already get from gnulib header files.
+sc_always_defined_macros: .re-defmac
+	@if test -f $(srcdir)/src/system.h; then			\
+	  trap 'rc=$$?; rm -f .re-defmac; exit $$rc' 0 1 2 3 15;	\
+	  grep -f .re-defmac $$($(CVS_LIST))				\
+	    && { echo '$(ME): define the above via some gnulib .h file'	\
+		  1>&2;  exit 1; } || :;				\
+	fi
+
+# Create a list of regular expressions matching the names
+# of files included from system.h.  Exclude a couple.
+.re-list:
+	@sed -n '/^# *include /s///p' $(srcdir)/src/system.h \
+	  | grep -Ev 'sys/(param|file)\.h' \
+	  | sed 's/ .*//;;s/^["<]/^# *include [<"]/;s/\.h[">]$$/\\.h[">]/' \
+	  > $@-t
+	@mv $@-t $@
+
+# Files in src/ should not include directly any of
+# the headers already included via system.h.
+sc_system_h_headers: .re-list
+	@if test -f $(srcdir)/src/system.h; then			\
+	  trap 'rc=$$?; rm -f .re-list; exit $$rc' 0 1 2 3 15;		\
+	  grep -nE -f .re-list						\
+	      $$($(CVS_LIST) src |					\
+		 grep -Ev '((copy|system)\.h|parse-gram\.c)$$')		\
+	    && { echo '$(ME): the above are already included via system.h'\
+		  1>&2;  exit 1; } || :;				\
+	fi
+
+sc_sun_os_names:
+	@grep -nEi \
+	    'solaris[^[:alnum:]]*2\.(7|8|9|[1-9][0-9])|sunos[^[:alnum:]][6-9]' \
+	    $$($(CVS_LIST_EXCEPT)) &&					\
+	  { echo '$(ME): found misuse of Sun OS version numbers' 1>&2;	\
+	    exit 1; } || :
+
+sc_the_the:
+	@grep -ni '\<the ''the\>' $$($(CVS_LIST_EXCEPT)) &&		\
+	  { echo '$(ME): found use of "the ''the";' 1>&2;		\
+	    exit 1; } || :
+
+sc_tight_scope:
+	$(MAKE) -C parted $@
+
+sc_trailing_blank:
+	@grep -n '[	 ]$$' $$($(CVS_LIST_EXCEPT)) &&			\
+	  { echo '$(ME): found trailing blank(s)'			\
+		1>&2; exit 1; } || :
+
+# Match lines like the following, but where there is only one space
+# between the options and the description:
+#   -D, --all-repeated[=delimit-method]  print all duplicate lines\n
+longopt_re = --[a-z][0-9A-Za-z-]*(\[?=[0-9A-Za-z-]*\]?)?
+sc_two_space_separator_in_usage:
+	@grep -nE '^   *(-[A-Za-z],)? $(longopt_re) [^ ].*\\$$'		\
+	    $$($(CVS_LIST_EXCEPT)) &&					\
+	  { echo "$(ME): help2man requires at least two spaces between"; \
+	    echo "$(ME): an option and its description"; \
+		1>&2; exit 1; } || :
+
+# Look for diagnostics that aren't marked for translation.
+# This won't find any for which error's format string is on a separate line.
+sc_unmarked_diagnostics:
+	@grep -nE							\
+	    '\<error \([^"]*"[^"]*[a-z]{3}' $$($(CVS_LIST_EXCEPT))	\
+	  | grep -v '_''(' &&						\
+	  { echo '$(ME): found unmarked diagnostic(s)' 1>&2;		\
+	    exit 1; } || :
+
+# Avoid useless parentheses like those in this example:
+# #if defined (SYMBOL) || defined (SYM2)
+sc_useless_cpp_parens:
+	@grep -n '^# *if .*defined *(' $$($(CVS_LIST_EXCEPT)) &&	\
+	  { echo '$(ME): found useless parentheses in cpp directive'	\
+		1>&2; exit 1; } || :
+
+# Ensure that the c99-to-c89 patch applies cleanly.
+patch-check:
+	rm -rf src-c89 $@.1 $@.2
+	cp -a src src-c89
+	(cd src-c89; patch -p2 -V never --fuzz=0) < src/c99-to-c89.diff \
+	  > $@.1 2>&1
+	if test "$${REGEN_PATCH+set}" = set; then \
+	  diff -upr src src-c89 > new-diff || : ; fi
+	grep -v '^patching file ' $@.1 > $@.2 || :
+	msg=ok; test -s $@.2 && msg='fuzzy patch' || : ;	\
+	rm -f src-c89/*.o || msg='rm failed';			\
+	$(MAKE) -C src-c89 CFLAGS='-Wdeclaration-after-statement -Werror' \
+	  || msg='compile failure with extra options';		\
+	rm -rf src-c89 $@.1 $@.2;				\
+	test "$$msg" = ok && : || echo "$$msg" 1>&2;		\
+	test "$$msg" = ok
+
+# Ensure that date's --help output stays in sync with the info
+# documentation for GNU strftime.  The only exception is %N,
+# which date accepts but GNU strftime does not.
+extract_char = sed 's/^[^%][^%]*%\(.\).*/\1/'
+strftime-check:
+	if test -f $(srcdir)/src/date.c; then				\
+	  grep '^  %.  ' $(srcdir)/src/date.c | sort			\
+	    | $(extract_char) > $@-src;					\
+	  { echo N;							\
+	    info libc date calendar format | grep '^    `%.'\'		\
+	      | $(extract_char); } | sort > $@-info;			\
+	  diff -u $@-src $@-info || exit 1;				\
+	  rm -f $@-src $@-info;						\
+	fi
+
+check-AUTHORS:
+	$(MAKE) -C src $@
+
+# Ensure that we use only the standard $(VAR) notation,
+# not @...@ in Makefile.am, now that we can rely on automake
+# to emit a definition for each substituted variable.
+makefile-check:
+	grep -nE '@[A-Z_0-9]+@' `find . -name Makefile.am` \
+	  && { echo 'Makefile.maint: use $$(...), not @...@' 1>&2; exit 1; } || :
+
+news-date-check: NEWS
+	today=`date +%Y-%m-%d`;						\
+	if head NEWS | grep '^\*.* $(VERSION_REGEXP) ('$$today')'	\
+	    >/dev/null; then						\
+	  :;								\
+	else								\
+	  echo "version or today's date is not in NEWS" 1>&2;		\
+	  exit 1;							\
+	fi
+
+changelog-check:
+	if head ChangeLog | grep 'Version $(VERSION_REGEXP)\.$$'	\
+	    >/dev/null; then						\
+	  :;								\
+	else								\
+	  echo "$(VERSION) not in ChangeLog" 1>&2;			\
+	  exit 1;							\
+	fi
+
+m4-check:
+	@grep -n 'AC_DEFUN([^[]' m4/*.m4 \
+	  && { echo 'Makefile.maint: quote the first arg to AC_DEFUN' 1>&2; \
+	       exit 1; } || :
+
+# Verify that all source files using _() are listed in po/POTFILES.in.
+# FIXME: don't hard-code file names below; use a more general mechanism.
+po-check:
+	if test -f po/POTFILES.in; then					\
+	  grep -E -v '^(#|$$)' po/POTFILES.in				\
+	    | grep -v '^src/false\.c$$' | sort > $@-1;			\
+	  files=;							\
+	  for file in $$($(CVS_LIST_EXCEPT)) lib/*.[ch]; do		\
+	    case $$file in						\
+	    djgpp/* | man/*) continue;;					\
+	    esac;							\
+	    case $$file in						\
+	    *.[ch])							\
+	      base=`expr " $$file" : ' \(.*\)\..'`;			\
+	      { test -f $$base.l || test -f $$base.y; } && continue;;	\
+	    esac;							\
+	    files="$$files $$file";					\
+	  done;								\
+	  grep -E -l '\b(N?_|gettext *)\([^)"]*("|$$)' $$files		\
+	    | sort -u > $@-2;						\
+	  diff -u $@-1 $@-2 || exit 1;					\
+	  rm -f $@-1 $@-2;						\
+	fi
+
+# In a definition of #define AUTHORS "... and ..." where the RHS contains
+# the English word `and', the string must be marked with `N_ (...)' so that
+# gettext recognizes it as a string requiring translation.
+author_mark_check:
+	@grep -n '^# *define AUTHORS "[^"]* and ' src/*.c |grep -v ' N_ (' && \
+	  { echo 'Makefile.maint: enclose the above strings in N_ (...)' 1>&2; \
+	    exit 1; } || :
+
+# Sometimes it is useful to change the PATH environment variable
+# in Makefiles.  When doing so, it's better not to use the Unix-centric
+# path separator of `:', but rather the automake-provided `@PATH_SEPARATOR@'.
+# It'd be better to use `find -print0 ...|xargs -0 ...', but less portable,
+# and there probably aren't many projects with so many Makefile.am files
+# that we'd have to worry about limits on command line length.
+msg = 'Makefile.maint: Do not use `:'\'' above; use @PATH_SEPARATOR@ instead'
+makefile_path_separator_check:
+	@grep -n 'PATH=.*:' `find $(srcdir) -name Makefile.am` \
+	  && { echo $(msg) 1>&2; exit 1; } || :
+
+# Check that `make alpha' will not fail at the end of the process.
+writable-files:
+	if test -d $(release_archive_dir); then :; else			\
+	  mkdir $(release_archive_dir);					\
+	fi
+	for file in $(distdir).tar.gz $(xd-delta)			\
+	            $(release_archive_dir)/$(distdir).tar.gz		\
+	            $(release_archive_dir)/$(xd-delta); do		\
+	  test -e $$file || continue;					\
+	  test -w $$file						\
+	    || { echo ERROR: $$file is not writable; fail=1; };		\
+	done;								\
+	test "$$fail" && exit 1 || :
+
+v_etc_file = lib/version-etc.c
+sample-test = tests/sample-test
+# Make sure that the copyright date in $(v_etc_file) is up to date.
+copyright-check:
+	@if test -f $(v_etc_file); then \
+	  grep 'enum { COPYRIGHT_YEAR = '$$(date +%Y)' };' $(v_etc_file) \
+	    >/dev/null \
+	  || { echo 'out of date copyright in $(v_etc_file); update it' 1>&2; \
+	       exit 1; }; \
+	fi
+	@if test -f $(sample-test); then \
+	  grep '# Copyright (C) '$$(date +%Y)' Free' $(sample-test) \
+	    >/dev/null \
+	  || { echo 'out of date copyright in $(sample-test); update it' 1>&2; \
+	       exit 1; }; \
+	fi
+
+
+# Sanity checks with the repository.
+# Abort early if this tag has already been used.
+vc-tag-check:
+	used=no;							\
+	if $(VC) --help | grep CVS; then				\
+	  $(CVS) -n log -h README|grep -e $(this-vc-tag): >/dev/null	\
+	    && used=yes;						\
+	else								\
+	  $(GIT) tag -l '^$(this-vc-tag)$$' && used=yes;		\
+	fi;								\
+	if test "$$used" = yes; then					\
+	  echo "$(this-vc-tag) has already been used; not tagging" 1>&2; \
+	  exit 1;							\
+	fi
+
+vc-diff-check:
+	$(VC) diff > vc-diffs || :
+	if test -s vc-diffs; then				\
+	  cat vc-diffs;						\
+	  echo "Some files are locally modified:" 1>&2;		\
+	  exit 1;						\
+	else							\
+	  rm vc-diffs;						\
+	fi
+
+cvs-check: vc-diff-check vc-tag-check
+
+maintainer-distcheck:
+	$(MAKE) distcheck
+	$(MAKE) my-distcheck
+
+
+# Tag before making distribution.  Also, don't make a distribution if
+# checks fail.  Also, make sure the NEWS file is up-to-date.
+# FIXME: use dist-hook/my-dist like distcheck-hook/my-distcheck.
+vc-dist: $(local-check) cvs-check maintainer-distcheck
+	$(VC-tag) $(this-vc-tag)
+	$(MAKE) dist
+
+# Use this to make sure we don't run these programs when building
+# from a virgin tgz file, below.
+null_AM_MAKEFLAGS = \
+  ACLOCAL=false \
+  AUTOCONF=false \
+  AUTOMAKE=false \
+  AUTOHEADER=false \
+  MAKEINFO=false
+
+warn_cflags = -Dlint -O -Werror -Wall -Wformat -Wshadow -Wpointer-arith
+
+# Use -Wformat -Werror to detect format-string/arg-list mismatches.
+# Also, check for shadowing problems with -Wshadow, and for pointer
+# arithmetic problems with -Wpointer-arith.
+# These CFLAGS are pretty strict.  If you build this target, you probably
+# have to have a recent version of gcc and glibc headers.
+TMPDIR ?= /tmp
+t=$(TMPDIR)/$(PACKAGE)/test
+my-distcheck: $(local-check)
+	-rm -rf $(t)
+	mkdir -p $(t)
+	GZIP=$(GZIP_ENV) $(AMTAR) -C $(t) -zxf $(distdir).tar.gz
+	cd $(t)/$(distdir)				\
+	  && ./configure --disable-nls			\
+	  && $(MAKE) CFLAGS='$(warn_cflags)'		\
+	      AM_MAKEFLAGS='$(null_AM_MAKEFLAGS)'	\
+	  && $(MAKE) dvi				\
+	  && $(MAKE) check				\
+	  && $(MAKE) distclean
+	(cd $(t) && mv $(distdir) $(distdir).old	\
+	  && $(AMTAR) -zxf - ) < $(distdir).tar.gz
+	diff -ur $(t)/$(distdir).old $(t)/$(distdir)
+	if test -f $(srcdir)/src/c99-to-c89.diff; then			\
+	  cd $(t)/$(distdir)						\
+	    && (cd src && patch -V never --fuzz=0 <c99-to-c89.diff)	\
+	    && ./configure --disable-largefile				\
+	         CFLAGS='-Werror -ansi -pedantic -Wno-long-long'	\
+	    && $(MAKE);							\
+	fi
+	-rm -rf $(t)
+	@echo "========================"; \
+	echo "$(distdir).tar.gz is ready for distribution"; \
+	echo "========================"
+
+WGET = wget
+WGETFLAGS = -C off
+
+rel-check:
+	tarz=/tmp/rel-check-tarz-$$$$; \
+	md5_tmp=/tmp/rel-check-md5-$$$$; \
+	set -e; \
+	trap 'status=$$?; rm -f $$tarz $$md5_tmp; exit $$status' 0 1 2 3 15; \
+	$(WGET) $(WGETFLAGS) -q --output-document=$$tarz $(url); \
+	echo "$(md5)  -" > $$md5_tmp; \
+	md5sum -c $$md5_tmp < $$tarz
+
+prev-tgz = $(PACKAGE)-$(PREV_VERSION).tar.gz
+xd-delta = $(PACKAGE)-$(PREV_VERSION)-$(VERSION).xdelta
+
+rel-files = $(xd-delta) $(DIST_ARCHIVES)
+
+# Approximate the date of last gnulib "update" by the ChangeLog file's
+# mtime, and provide that date in the announcement.
+announcement: NEWS ChangeLog $(rel-files)
+	@cl_date=$$(stat --printf @%Y $(gnulib_dir)/ChangeLog);		\
+	utc_date=$$(date -u --date $$cl_date '+%Y-%m-%d %T %z');	\
+	./build-aux/announce-gen					\
+	    --release-type=$(RELEASE_TYPE)				\
+	    --package=$(PACKAGE)					\
+	    --prev=$(PREV_VERSION)					\
+	    --curr=$(VERSION)						\
+	    --gpg-key-id=$(gpg_key_ID)					\
+	    --news=NEWS							\
+	    --bootstrap-tools=autoconf,automake,bison,gnulib		\
+	    --gnulib-snapshot-time-stamp="$$utc_date"			\
+	    $(addprefix --url-dir=, $(url_dir_list))
+
+## ---------------- ##
+## Updating files.  ##
+## ---------------- ##
+
+ftp-gnu = ftp://ftp.gnu.org/gnu
+www-gnu = http://www.gnu.org
+
+# Use mv, if you don't have/want move-if-change.
+move_if_change ?= move-if-change
+
+emit_upload_commands:
+	@echo =====================================
+	@echo =====================================
+	@echo "$(srcdir)/build-aux/gnupload $(GNUPLOADFLAGS) \\"
+	@echo "    --to $(gnu_rel_host):$(PACKAGE) \\"
+	@echo "  $(rel-files)"
+	@echo '# send the /tmp/announcement e-mail'
+	@echo =====================================
+	@echo =====================================
+
+$(xd-delta): $(release_archive_dir)/$(prev-tgz) $(distdir).tar.gz
+	xdelta delta -9 $^ $@ || :
+
+.PHONY: alpha beta major
+alpha beta major: news-date-check changelog-check $(local-check) writable-files
+	test $@ = major						\
+	  && { echo $(VERSION) | grep -E '^[0-9]+(\.[0-9]+)+$$'	\
+	       || { echo "invalid version string: $(VERSION)" 1>&2; exit 1;};}\
+	  || :
+	$(MAKE) vc-dist
+	$(MAKE) $(xd-delta)
+	$(MAKE) -s announcement RELEASE_TYPE=$@ > /tmp/announce-$(my_distdir)
+	ln $(rel-files) $(release_archive_dir)
+	chmod a-w $(rel-files)
+	$(MAKE) -s emit_upload_commands RELEASE_TYPE=$@
+	echo $(VERSION) > $(prev_version_file)
+	$(VC) commit -m \
+	  '$(prev_version_file): Record previous version: $(VERSION).' \
+	  $(prev_version_file)
diff --git a/parted-1.8.7/NEWS b/parted-1.8.7/NEWS
new file mode 100644
index 0000000..cb1598f
--- /dev/null
+++ b/parted-1.8.7/NEWS
@@ -0,0 +1,21 @@
+1.8.7
+=====
+
+libparted:
+- Prevent compilation of DASD code on GNU Hurd systems.
+- Integrate new unit testing framework for parted and libparted.
+- Fix primary partition cylinder alignment error for DOS disk labels.
+- Use PED_PARTITION_NORMAL in place of PED_PARTITION_PRIMARY.
+- Avoid segfault due to a double free on reiserfs support.
+
+parted:
+- Fix script mode (-s) for mkfs command in parted.
+- Suppress "you are not superuser..." warning in script mode.
+- Fix off-by-one bug in parted when displaying information about the disk.
+- Do not translate partition names in the 'parted print' command.  This
+  causes problems for non-Latin-based character sets.
+- Send errors to stderr rather than stdout.
+- Handle command line options independent of the order.
+- Abort on any invalid option and handle -v and -h first.
+- Only display the update /etc/fstab message when there has been a change
+  to the disk (a shorter and more direct message too).
diff --git a/parted-1.8.7/README b/parted-1.8.7/README
new file mode 100644
index 0000000..1edacd5
--- /dev/null
+++ b/parted-1.8.7/README
@@ -0,0 +1,63 @@
+GNU Parted
+----------
+
+GNU Parted is a program for creating, destroying, resizing, checking and
+copying partitions, and the filesystems on them.  This is useful for creating
+space for new operating systems, reorganising disk usage, copying data between
+hard disks, and disk imaging.
+
+ * documentation is in the doc/ directory.  The User's documentation is in
+texinfo format, and is built into a format viewable by info/pinfo when
+you run make.  i.e.
+
+	$ ./configure
+	$ cd doc
+	$ make
+	$ info -f parted.info
+
+Yes, it sucks that you need to run ./configure before you can read the manual.
+If you have problems with it, doc/parted.texi should be fairly easy to read,
+just a bit less userfriendly.
+	If you prefer html format, you can run:
+
+	$ cd doc
+	$ makeinfo --html parted.texi
+
+ * an online tutorial is available at http://www.luv.asn.au/overheads/parted
+ * the GNU Parted home page is http://www.gnu.org/software/parted
+ * the GNU Parted FAQ can be found at
+   http://www.gnu.org/software/parted/faq.html
+ * send bug reports, requests for help, feature requests, comments, etc. to
+bug-parted@gnu.org.  The authors can be contacted directly (see the AUTHORS
+file).
+
+
+NOTE TO DISTRIBUTIONS
+---------------------
+
+(1) When compiling Parted for distribution for general use, we recommend using
+the default configuration:
+
+	CFLAGS=-Os ./configure
+
+This includes --enable-debug (by default), which contains many assertions.
+Obviously, these "waste" space, but in the past, they have caught potentially
+dangerous bugs before they would have done damage, so we think it's worth
+it.  Also, it means we get more bug reports ;)
+
+
+(2) When doing dependencies, remember that libreiserfs is a *soft* dependency,
+so I guess that means Debian-look-alikes should do a "suggests", but
+not a "requires".
+
+
+(3) When space is important, we suggest --without-readline, --disable-shared,
+and possibly --disable-nls and --disable-dynamic-loading.
+
+If Parted is only going to be used for probing / discovery (and not
+"editing"), there is a --enable-discovery-only and --disable-fs (when you're
+only interested in partition tables).  Since it's readonly, --enable-debug
+gains you nothing wrt safety, so use --disable-debug ;)  The "discover"
+program is about 35k (gzipped) when compiled this way (not counting libc
+and libuuid).
+
diff --git a/parted-1.8.7/THANKS b/parted-1.8.7/THANKS
new file mode 100644
index 0000000..466ccac
--- /dev/null
+++ b/parted-1.8.7/THANKS
@@ -0,0 +1,28 @@
+In no particular order:
+
+ * Jonathan duSaint <jon@rockgeeks.net> for binary unit support and more.
+ * Kamil Ignacak <acerion@wp.pl> for help with the migration of the API documentation.
+ * Conectiva, www.conectiva.com, for sponsoring Parted's development (in the
+past).  Eliphas, beber (aka Pato), baretta, fuganti, claudio, olive (anyone
+else?)
+ * Stefan Kanthak <101.33761@germanynet.de> for lots of info on boot-loaders,
+and some corrections to the documentation
+ * Fabian Emmes <fab@orlen.de> for RPM spec file, help with hidden
+partitions and autoconfusion :-) - and lots of other misc. help.
+ * Falk Hueffner <falk.hueffner@student.uni-tuebingen.de> for bug fixes.
+ * Kevin Lindsay <klindsay@stormix.com> for lots of bug reports, etc.
+ * John Weismiller <john@stormix.com> for lots of bug reports, etc.
+ * Andries Brouwer <Andries.Brouwer@cwi.nl> for advice on BIOS geometry
+ * Simon Kirby <sim@stormix.com> for advice on BIOS geometry
+ * Glenn McGrath <Glenn.McGrath@jcu.edu.au>
+ * Timshel Knoll <timshel@pobox.com> for Debian stuff
+ * Tim Waugh <twaugh@redhat.com> for bug reports and fixes
+ * My friends for helping with testing: Tristan Zwalf, Menaka Lashitha Bandara,
+Thomas Hambleton
+ * Ryan Weaver <ryanw@infohwy.com> for parted.spec.in patches
+ * Benjamin Herrenschmidt <bh40@calva.net> for answering all of our questions
+on Mac's
+ * Ethan Benson <erbenson@alaska.net> for lots of advice / testing on ppc
+ * Charles Stevenson <csteven@terraplex.com> - ppc stuff
+ * heaps of people we left out!
+
diff --git a/parted-1.8.7/TODO b/parted-1.8.7/TODO
new file mode 100644
index 0000000..019cd74
--- /dev/null
+++ b/parted-1.8.7/TODO
@@ -0,0 +1,98 @@
+
+See http://wiki.debian.org/Parted
+
+=== everything below is old and for reference purposes only ===
+
+* regression tests:
+	- add specific tests for FAT16 -> FAT32, FAT32 -> FAT16, cluster
+resizing 8k -> 4k, etc.  Also, compare output, to catch other "unexpected"
+errors (like partitions going missing, <cough> not that that's ever
+happened <cough>)
+
+* ui:
+	- support a cylinder interface for the masochistic.
+	- warn when partition numbers change (?)  in UI?
+
+* make *_read() do ped_file_system_probe(), and warn if it isn't sane for
+the partition ID on-disk.
+
+* disk label implementations:
+	- OS/2 DLAT support
+	- read-only flag for Mac partitions, and the macufs partition type
+	- lba flag - default flag?
+	- PC98: relax cylinder boundary restrictions (create conforming
+	partitions, but allow non-conforming partitions ;-)
+
+* docs for RAWRITE, etc.
+
+* write a summary of operation list things, and get discussion going...
+* ped_file_system_is_flag_available()
+* ped_file_system_commit() ?   polymorphic operations, with apply() and
+revert() in memory, and commit all fs's and disk's to commit on-disk.
+* ped_operation_queue (ped_operation_new (PED_OP_PARTITION_SET_FLAG, ...)),
+	or ped_partition_set_flag() (with a "transparent" queue?)
+
+* separate domains libparted and parted (for nls)
+* merge with partimage.sourceforge.net
+* merge with gpart
+* "renumber"
+* "reconstruct"
+* "resizepart"
+* make an errata web page
+* bootdisk: try getting readline & nls support in, use a newer version of
+busybox.  Also, write some scripts for disk imaging.
+* Rawrite3 IS free, it seems.  Find the source (version 1.3 == version 3), and
+stick source+bin up on the ftp site.
+* improve website (check out texinfo.  Does it create much autoconfusion?)
+
+* /proc/meminfo, mlock()
+
+* create an FAQ, and stick lots of examples in it.
+
+* ped_file_system_resize_online()
+
+* reiser fs (almost there), ntfs support!
+
+* when Windows doesn't shut down properly, it knows about it.  How?
+* FAT boot sector reconstruction, in fat_check()  - actually, fat_open(),
+since it won't open properly if it's broken...  Tell panov@iacp.vl.ru when
+done.  Perhaps connect this to the front-end via a "force MINOR FS-TYPE"
+command, since it's sometimes hard to detect broken file systems.
+
+* FreeBSD support (get a copy - I want to try it anyway!)
+
+* LBA support in boot loader
+
+* OS/2 Boot manager
+
+* documentation of the internal API, tutorial on external API, and perhaps a bit
+on how the resizers, etc. work  [MOSTLY DONE]
+
+* logical sectors (?)  byte addressing?
+
+* libbootload ?
+	- update LILO/GRUB/Quik
+
+* command-line interface: i18n issues, "Yes, No or Cancel?".  This issue is
+hard, for free software in general.  We need a community (i.e. mailing list)
+that specializes in this, IMHO.
+
+* ped_geometry_{map|unmap}(), and kill the libparted/fs_ext2 buffer cache
+
+* injecting/ejecting partitions into/out of extended partitions.  But to
+keep alignment rules, would have to move the start of the partition.  No
+problem for FAT.  Absolute pain for ext2.
+
+* ext2 resizer:
+	- add ability to move the start of the file system.
+	- fix "strange layout" problem
+	- add an incompat feature to ext2 that is a special resize-the-start
+journal, and add support in e2fsck / mount / linux (?) for it.
+
+* RAID? LVM? EVMS? grand-unified system TM?
+
+* support finding bad-blocks.  Use ped_device_check() in ped_geometry_check()
+
+* generic resizing/converting with the inplace copy via sparse loopback idea
+  from Serguei Tzukanov
+
diff --git a/parted-1.8.7/aclocal.m4 b/parted-1.8.7/aclocal.m4
new file mode 100644
index 0000000..c9d354f
--- /dev/null
+++ b/parted-1.8.7/aclocal.m4
@@ -0,0 +1,7568 @@
+# generated automatically by aclocal 1.10 -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006  Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_if(m4_PACKAGE_VERSION, [2.61],,
+[m4_fatal([this file was generated for autoconf 2.61.
+You have another version of autoconf.  If you want to use that,
+you should regenerate the build system entirely.], [63])])
+
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+
+# serial 48 AC_PROG_LIBTOOL
+
+
+# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
+# -----------------------------------------------------------
+# If this macro is not defined by Autoconf, define it here.
+m4_ifdef([AC_PROVIDE_IFELSE],
+         [],
+         [m4_define([AC_PROVIDE_IFELSE],
+	         [m4_ifdef([AC_PROVIDE_$1],
+		           [$2], [$3])])])
+
+
+# AC_PROG_LIBTOOL
+# ---------------
+AC_DEFUN([AC_PROG_LIBTOOL],
+[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
+dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
+dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
+  AC_PROVIDE_IFELSE([AC_PROG_CXX],
+    [AC_LIBTOOL_CXX],
+    [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
+  ])])
+dnl And a similar setup for Fortran 77 support
+  AC_PROVIDE_IFELSE([AC_PROG_F77],
+    [AC_LIBTOOL_F77],
+    [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77
+])])
+
+dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
+dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
+dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
+  AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+    [AC_LIBTOOL_GCJ],
+    [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+      [AC_LIBTOOL_GCJ],
+      [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
+	[AC_LIBTOOL_GCJ],
+      [ifdef([AC_PROG_GCJ],
+	     [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+       ifdef([A][M_PROG_GCJ],
+	     [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+       ifdef([LT_AC_PROG_GCJ],
+	     [define([LT_AC_PROG_GCJ],
+		defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])
+])])# AC_PROG_LIBTOOL
+
+
+# _AC_PROG_LIBTOOL
+# ----------------
+AC_DEFUN([_AC_PROG_LIBTOOL],
+[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+# Prevent multiple expansion
+define([AC_PROG_LIBTOOL], [])
+])# _AC_PROG_LIBTOOL
+
+
+# AC_LIBTOOL_SETUP
+# ----------------
+AC_DEFUN([AC_LIBTOOL_SETUP],
+[AC_PREREQ(2.50)dnl
+AC_REQUIRE([AC_ENABLE_SHARED])dnl
+AC_REQUIRE([AC_ENABLE_STATIC])dnl
+AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_LD])dnl
+AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
+AC_REQUIRE([AC_PROG_NM])dnl
+
+AC_REQUIRE([AC_PROG_LN_S])dnl
+AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
+# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
+AC_REQUIRE([AC_OBJEXT])dnl
+AC_REQUIRE([AC_EXEEXT])dnl
+dnl
+
+AC_LIBTOOL_SYS_MAX_CMD_LEN
+AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+AC_LIBTOOL_OBJDIR
+
+AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+_LT_AC_PROG_ECHO_BACKSLASH
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e 1s/^X//'
+[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
+
+# Same as above, but do not quote variable references.
+[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g']
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Constants:
+rm="rm -f"
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+ltmain="$ac_aux_dir/ltmain.sh"
+ofile="$default_ofile"
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+AC_CHECK_TOOL(AR, ar, false)
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+AC_CHECK_TOOL(STRIP, strip, :)
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$AS" && AS=as
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$LD" && LD=ld
+test -z "$LN_S" && LN_S="ln -s"
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+test -z "$NM" && NM=nm
+test -z "$SED" && SED=sed
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$RANLIB" && RANLIB=:
+test -z "$STRIP" && STRIP=:
+test -z "$ac_objext" && ac_objext=o
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  openbsd*)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    ;;
+  *)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+_LT_CC_BASENAME([$compiler])
+
+# Only perform the check for file, if the check method requires it
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    AC_PATH_MAGIC
+  fi
+  ;;
+esac
+
+AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
+AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+enable_win32_dll=yes, enable_win32_dll=no)
+
+AC_ARG_ENABLE([libtool-lock],
+    [AC_HELP_STRING([--disable-libtool-lock],
+	[avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+AC_ARG_WITH([pic],
+    [AC_HELP_STRING([--with-pic],
+	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+    [pic_mode="$withval"],
+    [pic_mode=default])
+test -z "$pic_mode" && pic_mode=default
+
+# Use C for the default configuration in the libtool script
+tagname=
+AC_LIBTOOL_LANG_C_CONFIG
+_LT_AC_TAGCONFIG
+])# AC_LIBTOOL_SETUP
+
+
+# _LT_AC_SYS_COMPILER
+# -------------------
+AC_DEFUN([_LT_AC_SYS_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_AC_SYS_COMPILER
+
+
+# _LT_CC_BASENAME(CC)
+# -------------------
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+AC_DEFUN([_LT_CC_BASENAME],
+[for cc_temp in $1""; do
+  case $cc_temp in
+    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+])
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+AC_DEFUN([_LT_COMPILER_BOILERPLATE],
+[ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+])# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+AC_DEFUN([_LT_LINKER_BOILERPLATE],
+[ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+])# _LT_LINKER_BOILERPLATE
+
+
+# _LT_AC_SYS_LIBPATH_AIX
+# ----------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX],
+[AC_LINK_IFELSE(AC_LANG_PROGRAM,[
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi],[])
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+])# _LT_AC_SYS_LIBPATH_AIX
+
+
+# _LT_AC_SHELL_INIT(ARG)
+# ----------------------
+AC_DEFUN([_LT_AC_SHELL_INIT],
+[ifdef([AC_DIVERSION_NOTICE],
+	     [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
+	 [AC_DIVERT_PUSH(NOTICE)])
+$1
+AC_DIVERT_POP
+])# _LT_AC_SHELL_INIT
+
+
+# _LT_AC_PROG_ECHO_BACKSLASH
+# --------------------------
+# Add some code to the start of the generated configure script which
+# will find an echo command which doesn't interpret backslashes.
+AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
+[_LT_AC_SHELL_INIT([
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$ECHO in
+X*--fallback-echo)
+  # Remove one level of quotation (which was required for Make).
+  ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
+  ;;
+esac
+
+echo=${ECHO-echo}
+if test "X[$]1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X[$]1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
+  # Yippee, $echo works!
+  :
+else
+  # Restart under the correct shell.
+  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
+fi
+
+if test "X[$]1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<EOF
+[$]*
+EOF
+  exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test -z "$ECHO"; then
+if test "X${echo_test_string+set}" != Xset; then
+# find a string as large as possible, as long as the shell can cope with it
+  for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
+    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+    if (echo_test_string=`eval $cmd`) 2>/dev/null &&
+       echo_test_string=`eval $cmd` &&
+       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+    then
+      break
+    fi
+  done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+   test "X$echo_testing_string" = "X$echo_test_string"; then
+  :
+else
+  # The Solaris, AIX, and Digital Unix default echo programs unquote
+  # backslashes.  This makes it impossible to quote backslashes using
+  #   echo "$something" | sed 's/\\/\\\\/g'
+  #
+  # So, first we look for a working echo in the user's PATH.
+
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for dir in $PATH /usr/ucb; do
+    IFS="$lt_save_ifs"
+    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      echo="$dir/echo"
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  if test "X$echo" = Xecho; then
+    # We didn't find a better echo, so look for alternatives.
+    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      # This shell has a builtin print -r that does the trick.
+      echo='print -r'
+    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+	 test "X$CONFIG_SHELL" != X/bin/ksh; then
+      # If we have ksh, try running configure again with it.
+      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+      export ORIGINAL_CONFIG_SHELL
+      CONFIG_SHELL=/bin/ksh
+      export CONFIG_SHELL
+      exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
+    else
+      # Try using printf.
+      echo='printf %s\n'
+      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+	 echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+	 test "X$echo_testing_string" = "X$echo_test_string"; then
+	# Cool, printf works
+	:
+      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+	export CONFIG_SHELL
+	SHELL="$CONFIG_SHELL"
+	export SHELL
+	echo="$CONFIG_SHELL [$]0 --fallback-echo"
+      elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	echo="$CONFIG_SHELL [$]0 --fallback-echo"
+      else
+	# maybe with a smaller string...
+	prev=:
+
+	for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
+	  if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+	  then
+	    break
+	  fi
+	  prev="$cmd"
+	done
+
+	if test "$prev" != 'sed 50q "[$]0"'; then
+	  echo_test_string=`eval $prev`
+	  export echo_test_string
+	  exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
+	else
+	  # Oops.  We lost completely, so just stick with echo.
+	  echo=echo
+	fi
+      fi
+    fi
+  fi
+fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+ECHO=$echo
+if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
+   ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
+fi
+
+AC_SUBST(ECHO)
+])])# _LT_AC_PROG_ECHO_BACKSLASH
+
+
+# _LT_AC_LOCK
+# -----------
+AC_DEFUN([_LT_AC_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+    [AC_HELP_STRING([--disable-libtool-lock],
+	[avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *ELF-32*)
+      HPUX_IA64_MODE="32"
+      ;;
+    *ELF-64*)
+      HPUX_IA64_MODE="64"
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+   if test "$lt_cv_prog_gnu_ld" = yes; then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -melf32bsmip"
+      ;;
+    *N32*)
+      LD="${LD-ld} -melf32bmipn32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -melf64bmip"
+      ;;
+    esac
+   else
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -32"
+      ;;
+    *N32*)
+      LD="${LD-ld} -n32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -64"
+      ;;
+    esac
+   fi
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+    *32-bit*)
+      case $host in
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_i386"
+          ;;
+        ppc64-*linux*|powerpc64-*linux*)
+          LD="${LD-ld} -m elf32ppclinux"
+          ;;
+        s390x-*linux*)
+          LD="${LD-ld} -m elf_s390"
+          ;;
+        sparc64-*linux*)
+          LD="${LD-ld} -m elf32_sparc"
+          ;;
+      esac
+      ;;
+    *64-bit*)
+      case $host in
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        ppc*-*linux*|powerpc*-*linux*)
+          LD="${LD-ld} -m elf64ppc"
+          ;;
+        s390*-*linux*)
+          LD="${LD-ld} -m elf64_s390"
+          ;;
+        sparc*-*linux*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+    [AC_LANG_PUSH(C)
+     AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+     AC_LANG_POP])
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
+  fi
+  ;;
+sparc*-*solaris*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+    *64-bit*)
+      case $lt_cv_prog_gnu_ld in
+      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      *)    LD="${LD-ld} -64" ;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
+  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+  AC_CHECK_TOOL(AS, as, false)
+  AC_CHECK_TOOL(OBJDUMP, objdump, false)
+  ;;
+  ])
+esac
+
+need_locks="$enable_libtool_lock"
+
+])# _LT_AC_LOCK
+
+
+# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION],
+[AC_REQUIRE([LT_AC_PROG_SED])
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+  ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$3"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       $2=yes
+     fi
+   fi
+   $rm conftest*
+])
+
+if test x"[$]$2" = xyes; then
+    ifelse([$5], , :, [$5])
+else
+    ifelse([$6], , :, [$6])
+fi
+])# AC_LIBTOOL_COMPILER_OPTION
+
+
+# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#                          [ACTION-SUCCESS], [ACTION-FAILURE])
+# ------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
+[AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $3"
+   printf "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&AS_MESSAGE_LOG_FD
+       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         $2=yes
+       fi
+     else
+       $2=yes
+     fi
+   fi
+   $rm conftest*
+   LDFLAGS="$save_LDFLAGS"
+])
+
+if test x"[$]$2" = xyes; then
+    ifelse([$4], , :, [$4])
+else
+    ifelse([$5], , :, [$5])
+fi
+])# AC_LIBTOOL_LINKER_OPTION
+
+
+# AC_LIBTOOL_SYS_MAX_CMD_LEN
+# --------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN],
+[# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+  i=0
+  teststring="ABCD"
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  amigaos*)
+    # On AmigaOS with pdksh, this test takes hours, literally.
+    # So we just punt and use a minimum line length of 8192.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+    # This has been around since 386BSD, at least.  Likely further.
+    if test -x /sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+    elif test -x /usr/sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+    else
+      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
+    fi
+    # And add a safety zone
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    ;;
+
+  interix*)
+    # We know the value 262144 and hardcode it with a safety zone (like BSD)
+    lt_cv_sys_max_cmd_len=196608
+    ;;
+
+  osf*)
+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+    # nice to cause kernel panics so lets avoid the loop below.
+    # First set a reasonable default.
+    lt_cv_sys_max_cmd_len=16384
+    #
+    if test -x /sbin/sysconfig; then
+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+      esac
+    fi
+    ;;
+  sco3.2v5*)
+    lt_cv_sys_max_cmd_len=102400
+    ;;
+  sysv5* | sco5v6* | sysv4.2uw2*)
+    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+    if test -n "$kargmax"; then
+      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ 	]]//'`
+    else
+      lt_cv_sys_max_cmd_len=32768
+    fi
+    ;;
+  *)
+    # If test is not a shell built-in, we'll probably end up computing a
+    # maximum length that is only half of the actual maximum length, but
+    # we can't tell.
+    SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+    while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \
+	       = "XX$teststring") >/dev/null 2>&1 &&
+	    new_result=`expr "X$teststring" : ".*" 2>&1` &&
+	    lt_cv_sys_max_cmd_len=$new_result &&
+	    test $i != 17 # 1/2 MB should be enough
+    do
+      i=`expr $i + 1`
+      teststring=$teststring$teststring
+    done
+    teststring=
+    # Add a significant safety factor because C++ compilers can tack on massive
+    # amounts of additional arguments before passing them to the linker.
+    # It appears as though 1/2 is a usable value.
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    ;;
+  esac
+])
+if test -n $lt_cv_sys_max_cmd_len ; then
+  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+  AC_MSG_RESULT(none)
+fi
+])# AC_LIBTOOL_SYS_MAX_CMD_LEN
+
+
+# _LT_AC_CHECK_DLFCN
+# ------------------
+AC_DEFUN([_LT_AC_CHECK_DLFCN],
+[AC_CHECK_HEADERS(dlfcn.h)dnl
+])# _LT_AC_CHECK_DLFCN
+
+
+# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+#                           ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ---------------------------------------------------------------------
+AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
+[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+if test "$cross_compiling" = yes; then :
+  [$4]
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+[#line __oline__ "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+    exit (status);
+}]
+EOF
+  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) $1 ;;
+      x$lt_dlneed_uscore) $2 ;;
+      x$lt_dlunknown|x*) $3 ;;
+    esac
+  else :
+    # compilation failed
+    $3
+  fi
+fi
+rm -fr conftest*
+])# _LT_AC_TRY_DLOPEN_SELF
+
+
+# AC_LIBTOOL_DLOPEN_SELF
+# ----------------------
+AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
+[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+   ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+   ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ])
+   ;;
+
+  *)
+    AC_CHECK_FUNC([shl_load],
+	  [lt_cv_dlopen="shl_load"],
+      [AC_CHECK_LIB([dld], [shl_load],
+	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"],
+	[AC_CHECK_FUNC([dlopen],
+	      [lt_cv_dlopen="dlopen"],
+	  [AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+	    [AC_CHECK_LIB([svld], [dlopen],
+		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+	      [AC_CHECK_LIB([dld], [dld_link],
+		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
+	      ])
+	    ])
+	  ])
+	])
+      ])
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    AC_CACHE_CHECK([whether a program can dlopen itself],
+	  lt_cv_dlopen_self, [dnl
+	  _LT_AC_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+    ])
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+    	  lt_cv_dlopen_self_static, [dnl
+	  _LT_AC_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
+      ])
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+])# AC_LIBTOOL_DLOPEN_SELF
+
+
+# AC_LIBTOOL_PROG_CC_C_O([TAGNAME])
+# ---------------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler
+AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O],
+[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+     fi
+   fi
+   chmod u+w . 2>&AS_MESSAGE_LOG_FD
+   $rm conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+   $rm out/* && rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+])
+])# AC_LIBTOOL_PROG_CC_C_O
+
+
+# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME])
+# -----------------------------------------
+# Check to see if we can do hard links to lock some files if needed
+AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS],
+[AC_REQUIRE([_LT_AC_LOCK])dnl
+
+hard_links="nottested"
+if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  AC_MSG_CHECKING([if we can lock with hard links])
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  AC_MSG_RESULT([$hard_links])
+  if test "$hard_links" = no; then
+    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS
+
+
+# AC_LIBTOOL_OBJDIR
+# -----------------
+AC_DEFUN([AC_LIBTOOL_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+])# AC_LIBTOOL_OBJDIR
+
+
+# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME])
+# ----------------------------------------------
+# Check hardcoding attributes.
+AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_AC_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \
+   test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \
+   test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
+     test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then
+    # Linking always hardcodes the temporary library directory.
+    _LT_AC_TAGVAR(hardcode_action, $1)=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    _LT_AC_TAGVAR(hardcode_action, $1)=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  _LT_AC_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)])
+
+if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH
+
+
+# AC_LIBTOOL_SYS_LIB_STRIP
+# ------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP],
+[striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  AC_MSG_RESULT([yes])
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+   darwin*)
+       if test -n "$STRIP" ; then
+         striplib="$STRIP -x"
+         AC_MSG_RESULT([yes])
+       else
+  AC_MSG_RESULT([no])
+fi
+       ;;
+   *)
+  AC_MSG_RESULT([no])
+    ;;
+  esac
+fi
+])# AC_LIBTOOL_SYS_LIB_STRIP
+
+
+# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER],
+[AC_MSG_CHECKING([dynamic linker characteristics])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+if test "$GCC" = yes; then
+  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+  else
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+  fi
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix4* | aix5*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[[01]] | aix4.[[01]].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[[45]]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+  if test "$GCC" = yes; then
+    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+  else
+    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+  fi
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+kfreebsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[[123]]*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
+  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  freebsd*) # from 4.6 on
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext_cmds='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+interix3*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # find out which ABI we are using
+  libsuff=
+  case "$host_cpu" in
+  x86_64*|s390x*|powerpc64*)
+    echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+    if AC_TRY_EVAL(ac_compile); then
+      case `/usr/bin/file conftest.$ac_objext` in
+      *64-bit*)
+        libsuff=64
+        sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+        ;;
+      esac
+    fi
+    rm -rf conftest*
+    ;;
+  esac
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/^[	 ]*//;s/#.*//;/^[^\/]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+knetbsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+    *)                         need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[[89]] | openbsd2.[[89]].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+    shlibpath_overrides_runpath=no
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    shlibpath_overrides_runpath=yes
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+])# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+
+
+# _LT_AC_TAGCONFIG
+# ----------------
+AC_DEFUN([_LT_AC_TAGCONFIG],
+[AC_ARG_WITH([tags],
+    [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@],
+        [include additional configurations @<:@automatic@:>@])],
+    [tagnames="$withval"])
+
+if test -f "$ltmain" && test -n "$tagnames"; then
+  if test ! -f "${ofile}"; then
+    AC_MSG_WARN([output file `$ofile' does not exist])
+  fi
+
+  if test -z "$LTCC"; then
+    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
+    if test -z "$LTCC"; then
+      AC_MSG_WARN([output file `$ofile' does not look like a libtool script])
+    else
+      AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])
+    fi
+  fi
+  if test -z "$LTCFLAGS"; then
+    eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`"
+  fi
+
+  # Extract list of available tagged configurations in $ofile.
+  # Note that this assumes the entire list is on one line.
+  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
+
+  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+  for tagname in $tagnames; do
+    IFS="$lt_save_ifs"
+    # Check whether tagname contains only valid characters
+    case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in
+    "") ;;
+    *)  AC_MSG_ERROR([invalid tag name: $tagname])
+	;;
+    esac
+
+    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
+    then
+      AC_MSG_ERROR([tag name \"$tagname\" already exists])
+    fi
+
+    # Update the list of available tags.
+    if test -n "$tagname"; then
+      echo appending configuration tag \"$tagname\" to $ofile
+
+      case $tagname in
+      CXX)
+	if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+	    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+	    (test "X$CXX" != "Xg++"))) ; then
+	  AC_LIBTOOL_LANG_CXX_CONFIG
+	else
+	  tagname=""
+	fi
+	;;
+
+      F77)
+	if test -n "$F77" && test "X$F77" != "Xno"; then
+	  AC_LIBTOOL_LANG_F77_CONFIG
+	else
+	  tagname=""
+	fi
+	;;
+
+      GCJ)
+	if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
+	  AC_LIBTOOL_LANG_GCJ_CONFIG
+	else
+	  tagname=""
+	fi
+	;;
+
+      RC)
+	AC_LIBTOOL_LANG_RC_CONFIG
+	;;
+
+      *)
+	AC_MSG_ERROR([Unsupported tag name: $tagname])
+	;;
+      esac
+
+      # Append the new tag name to the list of available tags.
+      if test -n "$tagname" ; then
+      available_tags="$available_tags $tagname"
+    fi
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  # Now substitute the updated list of available tags.
+  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
+    mv "${ofile}T" "$ofile"
+    chmod +x "$ofile"
+  else
+    rm -f "${ofile}T"
+    AC_MSG_ERROR([unable to update list of available tagged configurations.])
+  fi
+fi
+])# _LT_AC_TAGCONFIG
+
+
+# AC_LIBTOOL_DLOPEN
+# -----------------
+# enable checks for dlopen support
+AC_DEFUN([AC_LIBTOOL_DLOPEN],
+ [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])
+])# AC_LIBTOOL_DLOPEN
+
+
+# AC_LIBTOOL_WIN32_DLL
+# --------------------
+# declare package support for building win32 DLLs
+AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
+])# AC_LIBTOOL_WIN32_DLL
+
+
+# AC_ENABLE_SHARED([DEFAULT])
+# ---------------------------
+# implement the --enable-shared flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_SHARED],
+[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([shared],
+    [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+	[build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_shared=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_shared=]AC_ENABLE_SHARED_DEFAULT)
+])# AC_ENABLE_SHARED
+
+
+# AC_DISABLE_SHARED
+# -----------------
+# set the default shared flag to --disable-shared
+AC_DEFUN([AC_DISABLE_SHARED],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_SHARED(no)
+])# AC_DISABLE_SHARED
+
+
+# AC_ENABLE_STATIC([DEFAULT])
+# ---------------------------
+# implement the --enable-static flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_STATIC],
+[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([static],
+    [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+	[build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_static=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_static=]AC_ENABLE_STATIC_DEFAULT)
+])# AC_ENABLE_STATIC
+
+
+# AC_DISABLE_STATIC
+# -----------------
+# set the default static flag to --disable-static
+AC_DEFUN([AC_DISABLE_STATIC],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_STATIC(no)
+])# AC_DISABLE_STATIC
+
+
+# AC_ENABLE_FAST_INSTALL([DEFAULT])
+# ---------------------------------
+# implement the --enable-fast-install flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_FAST_INSTALL],
+[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([fast-install],
+    [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+    [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_fast_install=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT)
+])# AC_ENABLE_FAST_INSTALL
+
+
+# AC_DISABLE_FAST_INSTALL
+# -----------------------
+# set the default to --disable-fast-install
+AC_DEFUN([AC_DISABLE_FAST_INSTALL],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_FAST_INSTALL(no)
+])# AC_DISABLE_FAST_INSTALL
+
+
+# AC_LIBTOOL_PICMODE([MODE])
+# --------------------------
+# implement the --with-pic flag
+# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
+AC_DEFUN([AC_LIBTOOL_PICMODE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+pic_mode=ifelse($#,1,$1,default)
+])# AC_LIBTOOL_PICMODE
+
+
+# AC_PROG_EGREP
+# -------------
+# This is predefined starting with Autoconf 2.54, so this conditional
+# definition can be removed once we require Autoconf 2.54 or later.
+m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP],
+[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
+   [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+    then ac_cv_prog_egrep='grep -E'
+    else ac_cv_prog_egrep='egrep'
+    fi])
+ EGREP=$ac_cv_prog_egrep
+ AC_SUBST([EGREP])
+])])
+
+
+# AC_PATH_TOOL_PREFIX
+# -------------------
+# find a file program which can recognise shared library
+AC_DEFUN([AC_PATH_TOOL_PREFIX],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] |  ?:[\\/]*])
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word.  This closes a longstanding sh security hole.
+  ac_dummy="ifelse([$2], , $PATH, [$2])"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$1; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac])
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  AC_MSG_RESULT($MAGIC_CMD)
+else
+  AC_MSG_RESULT(no)
+fi
+])# AC_PATH_TOOL_PREFIX
+
+
+# AC_PATH_MAGIC
+# -------------
+# find a file program which can recognise a shared library
+AC_DEFUN([AC_PATH_MAGIC],
+[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+  else
+    MAGIC_CMD=:
+  fi
+fi
+])# AC_PATH_MAGIC
+
+
+# AC_PROG_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([AC_PROG_LD],
+[AC_ARG_WITH([gnu-ld],
+    [AC_HELP_STRING([--with-gnu-ld],
+	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
+    [test "$withval" = no || with_gnu_ld=yes],
+    [with_gnu_ld=no])
+AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by $CC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]]* | ?:[[\\/]]*)
+      re_direlt='/[[^/]][[^/]]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_PROG_LD_GNU
+])# AC_PROG_LD
+
+
+# AC_PROG_LD_GNU
+# --------------
+AC_DEFUN([AC_PROG_LD_GNU],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# AC_PROG_LD_GNU
+
+
+# AC_PROG_LD_RELOAD_FLAG
+# ----------------------
+# find reload flag for linker
+#   -- PORTME Some linkers may need a different reload flag.
+AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+  lt_cv_ld_reload_flag,
+  [lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+  darwin*)
+    if test "$GCC" = yes; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+    else
+      reload_cmds='$LD$reload_flag -o $output$reload_objs'
+    fi
+    ;;
+esac
+])# AC_PROG_LD_RELOAD_FLAG
+
+
+# AC_DEPLIBS_CHECK_METHOD
+# -----------------------
+# how to check for library dependencies
+#  -- PORTME fill in with the dynamic library characteristics
+AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
+[AC_CACHE_CHECK([how to recognise dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix4* | aix5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi[[45]]*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin*)
+  # func_win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='func_win32_libid'
+  ;;
+
+mingw* | pw32*)
+  # Base MSYS/MinGW do not provide the 'file' command needed by
+  # func_win32_libid shell function, so use a weaker test based on 'objdump'.
+  lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+  lt_cv_file_magic_cmd='$OBJDUMP -f'
+  ;;
+
+darwin* | rhapsody*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | kfreebsd*-gnu | dragonfly*)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case $host_cpu in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+interix3*)
+  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $LD in
+  *-32|*"-32 ") libmagic=32-bit;;
+  *-n32|*"-n32 ") libmagic=N32;;
+  *-64|*"-64 ") libmagic=64-bit;;
+  *) libmagic=never-match;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+netbsd*)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+nto-qnx*)
+  lt_cv_deplibs_check_method=unknown
+  ;;
+
+openbsd*)
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv4 | sysv4.3*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  pc)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+])
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+])# AC_DEPLIBS_CHECK_METHOD
+
+
+# AC_PROG_NM
+# ----------
+# find the pathname to a BSD-compatible name lister
+AC_DEFUN([AC_PROG_NM],
+[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM,
+[if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_nm_to_check="${ac_tool_prefix}nm"
+  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then 
+    lt_nm_to_check="$lt_nm_to_check nm"
+  fi
+  for lt_tmp_nm in $lt_nm_to_check; do
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+      IFS="$lt_save_ifs"
+      test -z "$ac_dir" && ac_dir=.
+      tmp_nm="$ac_dir/$lt_tmp_nm"
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+	# Check to see if the nm accepts a BSD-compat flag.
+	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
+	#   nm: unknown option "B" ignored
+	# Tru64's nm complains that /dev/null is an invalid object file
+	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+	*/dev/null* | *'Invalid file or object type'*)
+	  lt_cv_path_NM="$tmp_nm -B"
+	  break
+	  ;;
+	*)
+	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	  */dev/null*)
+	    lt_cv_path_NM="$tmp_nm -p"
+	    break
+	    ;;
+	  *)
+	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	    continue # so that we can try to find one that supports BSD flags
+	    ;;
+	  esac
+	  ;;
+	esac
+      fi
+    done
+    IFS="$lt_save_ifs"
+  done
+  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
+fi])
+NM="$lt_cv_path_NM"
+])# AC_PROG_NM
+
+
+# AC_CHECK_LIBM
+# -------------
+# check for math library
+AC_DEFUN([AC_CHECK_LIBM],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+  # These system don't have libm, or don't need it
+  ;;
+*-ncr-sysv4.3*)
+  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+  ;;
+*)
+  AC_CHECK_LIB(m, cos, LIBM="-lm")
+  ;;
+esac
+])# AC_CHECK_LIBM
+
+
+# AC_LIBLTDL_CONVENIENCE([DIRECTORY])
+# -----------------------------------
+# sets LIBLTDL to the link flags for the libltdl convenience library and
+# LTDLINCL to the include flags for the libltdl header and adds
+# --enable-ltdl-convenience to the configure arguments.  Note that
+# AC_CONFIG_SUBDIRS is not called here.  If DIRECTORY is not provided,
+# it is assumed to be `libltdl'.  LIBLTDL will be prefixed with
+# '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/'
+# (note the single quotes!).  If your package is not flat and you're not
+# using automake, define top_builddir and top_srcdir appropriately in
+# the Makefiles.
+AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+  case $enable_ltdl_convenience in
+  no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
+  "") enable_ltdl_convenience=yes
+      ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
+  esac
+  LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
+  LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+  # For backwards non-gettext consistent compatibility...
+  INCLTDL="$LTDLINCL"
+])# AC_LIBLTDL_CONVENIENCE
+
+
+# AC_LIBLTDL_INSTALLABLE([DIRECTORY])
+# -----------------------------------
+# sets LIBLTDL to the link flags for the libltdl installable library and
+# LTDLINCL to the include flags for the libltdl header and adds
+# --enable-ltdl-install to the configure arguments.  Note that
+# AC_CONFIG_SUBDIRS is not called here.  If DIRECTORY is not provided,
+# and an installed libltdl is not found, it is assumed to be `libltdl'.
+# LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with
+# '${top_srcdir}/' (note the single quotes!).  If your package is not
+# flat and you're not using automake, define top_builddir and top_srcdir
+# appropriately in the Makefiles.
+# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
+AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+  AC_CHECK_LIB(ltdl, lt_dlinit,
+  [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
+  [if test x"$enable_ltdl_install" = xno; then
+     AC_MSG_WARN([libltdl not installed, but installation disabled])
+   else
+     enable_ltdl_install=yes
+   fi
+  ])
+  if test x"$enable_ltdl_install" = x"yes"; then
+    ac_configure_args="$ac_configure_args --enable-ltdl-install"
+    LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
+    LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+  else
+    ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
+    LIBLTDL="-lltdl"
+    LTDLINCL=
+  fi
+  # For backwards non-gettext consistent compatibility...
+  INCLTDL="$LTDLINCL"
+])# AC_LIBLTDL_INSTALLABLE
+
+
+# AC_LIBTOOL_CXX
+# --------------
+# enable support for C++ libraries
+AC_DEFUN([AC_LIBTOOL_CXX],
+[AC_REQUIRE([_LT_AC_LANG_CXX])
+])# AC_LIBTOOL_CXX
+
+
+# _LT_AC_LANG_CXX
+# ---------------
+AC_DEFUN([_LT_AC_LANG_CXX],
+[AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([_LT_AC_PROG_CXXCPP])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX])
+])# _LT_AC_LANG_CXX
+
+# _LT_AC_PROG_CXXCPP
+# ------------------
+AC_DEFUN([_LT_AC_PROG_CXXCPP],
+[
+AC_REQUIRE([AC_PROG_CXX])
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+    (test "X$CXX" != "Xg++"))) ; then
+  AC_PROG_CXXCPP
+fi
+])# _LT_AC_PROG_CXXCPP
+
+# AC_LIBTOOL_F77
+# --------------
+# enable support for Fortran 77 libraries
+AC_DEFUN([AC_LIBTOOL_F77],
+[AC_REQUIRE([_LT_AC_LANG_F77])
+])# AC_LIBTOOL_F77
+
+
+# _LT_AC_LANG_F77
+# ---------------
+AC_DEFUN([_LT_AC_LANG_F77],
+[AC_REQUIRE([AC_PROG_F77])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77])
+])# _LT_AC_LANG_F77
+
+
+# AC_LIBTOOL_GCJ
+# --------------
+# enable support for GCJ libraries
+AC_DEFUN([AC_LIBTOOL_GCJ],
+[AC_REQUIRE([_LT_AC_LANG_GCJ])
+])# AC_LIBTOOL_GCJ
+
+
+# _LT_AC_LANG_GCJ
+# ---------------
+AC_DEFUN([_LT_AC_LANG_GCJ],
+[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
+  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
+    [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[],
+      [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
+	 [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
+	   [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ])
+])# _LT_AC_LANG_GCJ
+
+
+# AC_LIBTOOL_RC
+# -------------
+# enable support for Windows resource files
+AC_DEFUN([AC_LIBTOOL_RC],
+[AC_REQUIRE([LT_AC_PROG_RC])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC])
+])# AC_LIBTOOL_RC
+
+
+# AC_LIBTOOL_LANG_C_CONFIG
+# ------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG])
+AC_DEFUN([_LT_AC_LANG_C_CONFIG],
+[lt_save_CC="$CC"
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}\n'
+
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF
+
+# Report which library types will actually be built
+AC_MSG_CHECKING([if libtool supports shared libraries])
+AC_MSG_RESULT([$can_build_shared])
+
+AC_MSG_CHECKING([whether to build shared libraries])
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case $host_os in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+
+aix4* | aix5*)
+  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+    test "$enable_shared" = yes && enable_static=no
+  fi
+    ;;
+esac
+AC_MSG_RESULT([$enable_shared])
+
+AC_MSG_CHECKING([whether to build static libraries])
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+AC_MSG_RESULT([$enable_static])
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_C_CONFIG
+
+
+# AC_LIBTOOL_LANG_CXX_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)])
+AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],
+[AC_LANG_PUSH(C++)
+AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([_LT_AC_PROG_CXXCPP])
+
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+_LT_AC_TAGVAR(always_export_symbols, $1)=no
+_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_direct, $1)=no
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+_LT_AC_TAGVAR(module_cmds, $1)=
+_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_AC_TAGVAR(no_undefined_flag, $1)=
+_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Dependencies to place before and after the object being linked:
+_LT_AC_TAGVAR(predep_objects, $1)=
+_LT_AC_TAGVAR(postdep_objects, $1)=
+_LT_AC_TAGVAR(predeps, $1)=
+_LT_AC_TAGVAR(postdeps, $1)=
+_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_LD=$LD
+lt_save_GCC=$GCC
+GCC=$GXX
+lt_save_with_gnu_ld=$with_gnu_ld
+lt_save_path_LD=$lt_cv_path_LD
+if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+else
+  $as_unset lt_cv_prog_gnu_ld
+fi
+if test -n "${lt_cv_path_LDCXX+set}"; then
+  lt_cv_path_LD=$lt_cv_path_LDCXX
+else
+  $as_unset lt_cv_path_LD
+fi
+test -z "${LDCXX+set}" || LD=$LDCXX
+CC=${CXX-"c++"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+
+# We don't want -fno-exception wen compiling C++ code, so set the
+# no_builtin_flag separately
+if test "$GXX" = yes; then
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+else
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+fi
+
+if test "$GXX" = yes; then
+  # Set up default GNU C++ configuration
+
+  AC_PROG_LD
+
+  # Check if GNU C++ uses GNU ld as the underlying linker, since the
+  # archiving commands below assume that GNU ld is being used.
+  if test "$with_gnu_ld" = yes; then
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+    #     investigate it a little bit more. (MM)
+    wlarc='${wl}'
+
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
+	grep 'no-whole-archive' > /dev/null; then
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+  else
+    with_gnu_ld=no
+    wlarc=
+
+    # A generic and very simple default shared library creation
+    # command for GNU C++ for the case where it uses the native
+    # linker, instead of GNU ld.  If possible, this setting should
+    # overridden to take advantage of the native linker features on
+    # the platform it is being used on.
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+  fi
+
+  # Commands to make compiler produce verbose output that lists
+  # what "hidden" libraries, object files and flags are used when
+  # linking a shared library.
+  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+else
+  GXX=no
+  with_gnu_ld=no
+  wlarc=
+fi
+
+# PORTME: fill in a description of your system's C++ link characteristics
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+_LT_AC_TAGVAR(ld_shlibs, $1)=yes
+case $host_os in
+  aix3*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  aix4* | aix5*)
+    if test "$host_cpu" = ia64; then
+      # On IA64, the linker does run time linking by default, so we don't
+      # have to do anything special.
+      aix_use_runtimelinking=no
+      exp_sym_flag='-Bexport'
+      no_entry_flag=""
+    else
+      aix_use_runtimelinking=no
+
+      # Test if we are trying to use run time linking or normal
+      # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+      # need to do runtime linking.
+      case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
+	for ld_flag in $LDFLAGS; do
+	  case $ld_flag in
+	  *-brtl*)
+	    aix_use_runtimelinking=yes
+	    break
+	    ;;
+	  esac
+	done
+	;;
+      esac
+
+      exp_sym_flag='-bexport'
+      no_entry_flag='-bnoentry'
+    fi
+
+    # When large executables or shared objects are built, AIX ld can
+    # have problems creating the table of contents.  If linking a library
+    # or program results in "error TOC overflow" add -mminimal-toc to
+    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+    _LT_AC_TAGVAR(archive_cmds, $1)=''
+    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+    if test "$GXX" = yes; then
+      case $host_os in aix4.[[012]]|aix4.[[012]].*)
+      # We only want to do this on AIX 4.2 and lower, the check
+      # below for broken collect2 doesn't work under 4.3+
+	collect2name=`${CC} -print-prog-name=collect2`
+	if test -f "$collect2name" && \
+	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	then
+	  # We have reworked collect2
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	else
+	  # We have old collect2
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+	  # It fails to find uninstalled libraries when the uninstalled
+	  # path is not listed in the libpath.  Setting hardcode_minus_L
+	  # to unsupported forces relinking
+	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+	fi
+	;;
+      esac
+      shared_flag='-shared'
+      if test "$aix_use_runtimelinking" = yes; then
+	shared_flag="$shared_flag "'${wl}-G'
+      fi
+    else
+      # not using gcc
+      if test "$host_cpu" = ia64; then
+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	# chokes on -Wl,-G. The following line is correct:
+	shared_flag='-G'
+      else
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag='${wl}-G'
+	else
+	  shared_flag='${wl}-bM:SRE'
+	fi
+      fi
+    fi
+
+    # It seems that -bexpall does not export symbols beginning with
+    # underscore (_), so it is better to generate a list of symbols to export.
+    _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+    if test "$aix_use_runtimelinking" = yes; then
+      # Warning - without using the other runtime loading flags (-brtl),
+      # -berok will link without error, but may produce a broken library.
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+      # Determine the default libpath from the value encoded in an empty executable.
+      _LT_AC_SYS_LIBPATH_AIX
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+     else
+      if test "$host_cpu" = ia64; then
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+      else
+	# Determine the default libpath from the value encoded in an empty executable.
+	_LT_AC_SYS_LIBPATH_AIX
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	# Warning - without using the other run time loading flags,
+	# -berok will link without error, but may produce a broken library.
+	_LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	# Exported symbols can be pulled into shared objects from archives
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+	# This is similar to how AIX traditionally builds its shared libraries.
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+      fi
+    fi
+    ;;
+
+  beos*)
+    if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+      # support --undefined.  This deserves some investigation.  FIXME
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+    else
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    fi
+    ;;
+
+  chorus*)
+    case $cc_basename in
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+
+  cygwin* | mingw* | pw32*)
+    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+    # as there is no search path for DLLs.
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+    _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+    _LT_AC_TAGVAR(always_export_symbols, $1)=no
+    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+    if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      # If the export-symbols file already is a .def file (1st line
+      # is EXPORTS), use it as is; otherwise, prepend...
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	cp $export_symbols $output_objdir/$soname.def;
+      else
+	echo EXPORTS > $output_objdir/$soname.def;
+	cat $export_symbols >> $output_objdir/$soname.def;
+      fi~
+      $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+    else
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    fi
+  ;;
+      darwin* | rhapsody*)
+        case $host_os in
+        rhapsody* | darwin1.[[012]])
+         _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress'
+         ;;
+       *) # Darwin 1.3 on
+         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+           _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+         else
+           case ${MACOSX_DEPLOYMENT_TARGET} in
+             10.[[012]])
+               _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+               ;;
+             10.*)
+               _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup'
+               ;;
+           esac
+         fi
+         ;;
+        esac
+      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=''
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+    if test "$GXX" = yes ; then
+      lt_int_apple_cc_single_mod=no
+      output_verbose_link_cmd='echo'
+      if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then
+       lt_int_apple_cc_single_mod=yes
+      fi
+      if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+      else
+          _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+        fi
+        _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+        # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+          if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+            _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          else
+            _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          fi
+            _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      else
+      case $cc_basename in
+        xlc*)
+         output_verbose_link_cmd='echo'
+          _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+          _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          ;;
+       *)
+         _LT_AC_TAGVAR(ld_shlibs, $1)=no
+          ;;
+      esac
+      fi
+        ;;
+
+  dgux*)
+    case $cc_basename in
+      ec++*)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      ghcx*)
+	# Green Hills C++ Compiler
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  freebsd[[12]]*)
+    # C++ shared libraries reported to be fairly broken before switch to ELF
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  freebsd-elf*)
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    ;;
+  freebsd* | kfreebsd*-gnu | dragonfly*)
+    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+    # conventions
+    _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+    ;;
+  gnu*)
+    ;;
+  hpux9*)
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+    _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+				# but as the default
+				# location of the library.
+
+    case $cc_basename in
+    CC*)
+      # FIXME: insert proper C++ library support
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    aCC*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      # Commands to make compiler produce verbose output that lists
+      # what "hidden" libraries, object files and flags are used when
+      # linking a shared library.
+      #
+      # There doesn't appear to be a way to prevent this compiler from
+      # explicitly linking system object files so we need to strip them
+      # from the output so that they don't get included in the library
+      # dependencies.
+      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+      ;;
+    *)
+      if test "$GXX" = yes; then
+        _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+        # FIXME: insert proper C++ library support
+        _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+    ;;
+  hpux10*|hpux11*)
+    if test $with_gnu_ld = no; then
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+      case $host_cpu in
+      hppa*64*|ia64*)
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+        ;;
+      *)
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+        ;;
+      esac
+    fi
+    case $host_cpu in
+    hppa*64*|ia64*)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+    *)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+					      # but as the default
+					      # location of the library.
+      ;;
+    esac
+
+    case $cc_basename in
+      CC*)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      aCC*)
+	case $host_cpu in
+	hppa*64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	esac
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test $with_gnu_ld = no; then
+	    case $host_cpu in
+	    hppa*64*)
+	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    ia64*)
+	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    *)
+	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    esac
+	  fi
+	else
+	  # FIXME: insert proper C++ library support
+	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+    esac
+    ;;
+  interix3*)
+    _LT_AC_TAGVAR(hardcode_direct, $1)=no
+    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+    # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+    # Instead, shared libraries are loaded at an image base (0x10000000 by
+    # default) and relocated if they conflict, which is a slow very memory
+    # consuming and fragmenting process.  To avoid this, we pick a random,
+    # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+    # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+    ;;
+  irix5* | irix6*)
+    case $cc_basename in
+      CC*)
+	# SGI C++
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+	# Archives containing C++ object files must be created using
+	# "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+	# necessary to make sure instantiated templates are included
+	# in the archive.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test "$with_gnu_ld" = no; then
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	  else
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
+	  fi
+	fi
+	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+	;;
+    esac
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+    ;;
+  linux*)
+    case $cc_basename in
+      KCC*)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+	# Archives containing C++ object files must be created using
+	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+	;;
+      icpc*)
+	# Intel C++
+	with_gnu_ld=yes
+	# version 8.0 and above of icpc choke on multiply defined symbols
+	# if we add $predep_objects and $postdep_objects, however 7.1 and
+	# earlier do not add the objects themselves.
+	case `$CC -V 2>&1` in
+	*"Version 7."*)
+  	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+  	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	  ;;
+	*)  # Version 8.0 or newer
+	  tmp_idyn=
+	  case $host_cpu in
+	    ia64*) tmp_idyn=' -i_dynamic';;
+	  esac
+  	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	  ;;
+	esac
+	_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	;;
+      pgCC*)
+        # Portland Group C++ compiler
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+  	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+        ;;
+      cxx*)
+	# Compaq C++
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+	runpath_var=LD_RUN_PATH
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+    esac
+    ;;
+  lynxos*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  m88k*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  mvs*)
+    case $cc_basename in
+      cxx*)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  netbsd*)
+    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+      wlarc=
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+    fi
+    # Workaround some broken pre-1.5 toolchains
+    output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+    ;;
+  openbsd2*)
+    # C++ shared libraries are fairly broken
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  openbsd*)
+    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+    if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    fi
+    output_verbose_link_cmd='echo'
+    ;;
+  osf3*)
+    case $cc_basename in
+      KCC*)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Archives containing C++ object files must be created using
+	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+
+	;;
+      RCC*)
+	# Rational C++ 2.4.1
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      cxx*)
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	  # Commands to make compiler produce verbose output that lists
+	  # what "hidden" libraries, object files and flags are used when
+	  # linking a shared library.
+	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+	else
+	  # FIXME: insert proper C++ library support
+	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+    esac
+    ;;
+  osf4* | osf5*)
+    case $cc_basename in
+      KCC*)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Archives containing C++ object files must be created using
+	# the KAI C++ compiler.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs'
+	;;
+      RCC*)
+	# Rational C++ 2.4.1
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      cxx*)
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+	  echo "-hidden">> $lib.exp~
+	  $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp  `test -n "$verstring" && echo -set_version	$verstring` -update_registry ${output_objdir}/so_locations -o $lib~
+	  $rm $lib.exp'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	 _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	  # Commands to make compiler produce verbose output that lists
+	  # what "hidden" libraries, object files and flags are used when
+	  # linking a shared library.
+	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+	else
+	  # FIXME: insert proper C++ library support
+	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+    esac
+    ;;
+  psos*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  sunos4*)
+    case $cc_basename in
+      CC*)
+	# Sun C++ 4.x
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      lcc*)
+	# Lucid
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  solaris*)
+    case $cc_basename in
+      CC*)
+	# Sun C++ 4.2, 5.x and Centerline C++
+        _LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes
+	_LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	$CC -G${allow_undefined_flag}  ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+	case $host_os in
+	  solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+	  *)
+	    # The C++ compiler is used as linker so we must use $wl
+	    # flag to pass the commands to the underlying system
+	    # linker. We must also pass each convience library through
+	    # to the system linker between allextract/defaultextract.
+	    # The C++ compiler will combine linker options so we
+	    # cannot just pass the convience library names through
+	    # without $wl.
+	    # Supported since Solaris 2.6 (maybe 2.5.1?)
+	    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract'
+	    ;;
+	esac
+	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+	output_verbose_link_cmd='echo'
+
+	# Archives containing C++ object files must be created using
+	# "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	# necessary to make sure instantiated templates are included
+	# in the archive.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+	;;
+      gcx*)
+	# Green Hills C++ Compiler
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+	# The C++ compiler must be used to create the archive.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+	;;
+      *)
+	# GNU C++ compiler with Solaris linker
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+	  if $CC --version | grep -v '^2\.7' > /dev/null; then
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+	  else
+	    # g++ 2.7 appears to require `-G' NOT `-shared' on this
+	    # platform.
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+	  fi
+
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+	fi
+	;;
+    esac
+    ;;
+  sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+    _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+    runpath_var='LD_RUN_PATH'
+
+    case $cc_basename in
+      CC*)
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+      *)
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+    esac
+    ;;
+  sysv5* | sco3.2v5* | sco5v6*)
+    # Note: We can NOT use -z defs as we might desire, because we do not
+    # link with -lc, and that would cause any symbols used from libc to
+    # always be unresolved, which means just about no library would
+    # ever link correctly.  If we're not using GNU ld we use -z text
+    # though, which does catch some bad symbols but isn't as heavy-handed
+    # as -z defs.
+    # For security reasons, it is highly recommended that you always
+    # use absolute paths for naming shared libraries, and exclude the
+    # DT_RUNPATH tag from executables and libraries.  But doing so
+    # requires that you compile everything twice, which is a pain.
+    # So that behaviour is only enabled if SCOABSPATH is set to a
+    # non-empty value in the environment.  Most likely only useful for
+    # creating official distributions of packages.
+    # This is a hack until libtool officially supports absolute path
+    # names for shared libraries.
+    _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+    _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+    runpath_var='LD_RUN_PATH'
+
+    case $cc_basename in
+      CC*)
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+      *)
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+    esac
+    ;;
+  tandem*)
+    case $cc_basename in
+      NCC*)
+	# NonStop-UX NCC 3.20
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  vxworks*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  *)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+esac
+AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_AC_TAGVAR(GCC, $1)="$GXX"
+_LT_AC_TAGVAR(LD, $1)="$LD"
+
+AC_LIBTOOL_POSTDEP_PREDEP($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC=$lt_save_CC
+LDCXX=$LD
+LD=$lt_save_LD
+GCC=$lt_save_GCC
+with_gnu_ldcxx=$with_gnu_ld
+with_gnu_ld=$lt_save_with_gnu_ld
+lt_cv_path_LDCXX=$lt_cv_path_LD
+lt_cv_path_LD=$lt_save_path_LD
+lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+])# AC_LIBTOOL_LANG_CXX_CONFIG
+
+# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME])
+# ------------------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[
+dnl we can't use the lt_simple_compile_test_code here,
+dnl because it contains code intended for an executable,
+dnl not a library.  It's possible we should let each
+dnl tag define a new lt_????_link_test_code variable,
+dnl but it's only used here...
+ifelse([$1],[],[cat > conftest.$ac_ext <<EOF
+int a;
+void foo (void) { a = 0; }
+EOF
+],[$1],[CXX],[cat > conftest.$ac_ext <<EOF
+class Foo
+{
+public:
+  Foo (void) { a = 0; }
+private:
+  int a;
+};
+EOF
+],[$1],[F77],[cat > conftest.$ac_ext <<EOF
+      subroutine foo
+      implicit none
+      integer*4 a
+      a=0
+      return
+      end
+EOF
+],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF
+public class foo {
+  private int a;
+  public void bar (void) {
+    a = 0;
+  }
+};
+EOF
+])
+dnl Parse the compiler output and extract the necessary
+dnl objects, libraries and library flags.
+if AC_TRY_EVAL(ac_compile); then
+  # Parse the compiler output and extract the necessary
+  # objects, libraries and library flags.
+
+  # Sentinel used to keep track of whether or not we are before
+  # the conftest object file.
+  pre_test_object_deps_done=no
+
+  # The `*' in the case matches for architectures that use `case' in
+  # $output_verbose_cmd can trigger glob expansion during the loop
+  # eval without this substitution.
+  output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"`
+
+  for p in `eval $output_verbose_link_cmd`; do
+    case $p in
+
+    -L* | -R* | -l*)
+       # Some compilers place space between "-{L,R}" and the path.
+       # Remove the space.
+       if test $p = "-L" \
+	  || test $p = "-R"; then
+	 prev=$p
+	 continue
+       else
+	 prev=
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 case $p in
+	 -L* | -R*)
+	   # Internal compiler library paths should come after those
+	   # provided the user.  The postdeps already come after the
+	   # user supplied libs so there is no need to process them.
+	   if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
+	     _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+	   else
+	     _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+	   fi
+	   ;;
+	 # The "-l" case would never come before the object being
+	 # linked, so don't bother handling this case.
+	 esac
+       else
+	 if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then
+	   _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}"
+	 else
+	   _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}"
+	 fi
+       fi
+       ;;
+
+    *.$objext)
+       # This assumes that the test object file only shows up
+       # once in the compiler output.
+       if test "$p" = "conftest.$objext"; then
+	 pre_test_object_deps_done=yes
+	 continue
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then
+	   _LT_AC_TAGVAR(predep_objects, $1)="$p"
+	 else
+	   _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p"
+	 fi
+       else
+	 if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then
+	   _LT_AC_TAGVAR(postdep_objects, $1)="$p"
+	 else
+	   _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p"
+	 fi
+       fi
+       ;;
+
+    *) ;; # Ignore the rest.
+
+    esac
+  done
+
+  # Clean up.
+  rm -f a.out a.exe
+else
+  echo "libtool.m4: error: problem compiling $1 test program"
+fi
+
+$rm -f confest.$objext
+
+# PORTME: override above test on systems where it is broken
+ifelse([$1],[CXX],
+[case $host_os in
+interix3*)
+  # Interix 3.5 installs completely hosed .la files for C++, so rather than
+  # hack all around it, let's just trust "g++" to DTRT.
+  _LT_AC_TAGVAR(predep_objects,$1)=
+  _LT_AC_TAGVAR(postdep_objects,$1)=
+  _LT_AC_TAGVAR(postdeps,$1)=
+  ;;
+
+solaris*)
+  case $cc_basename in
+  CC*)
+    # Adding this requires a known-good setup of shared libraries for
+    # Sun compiler versions before 5.6, else PIC objects from an old
+    # archive will be linked into the output, leading to subtle bugs.
+    _LT_AC_TAGVAR(postdeps,$1)='-lCstd -lCrun'
+    ;;
+  esac
+  ;;
+esac
+])
+
+case " $_LT_AC_TAGVAR(postdeps, $1) " in
+*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+esac
+])# AC_LIBTOOL_POSTDEP_PREDEP
+
+# AC_LIBTOOL_LANG_F77_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)])
+AC_DEFUN([_LT_AC_LANG_F77_CONFIG],
+[AC_REQUIRE([AC_PROG_F77])
+AC_LANG_PUSH(Fortran 77)
+
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+_LT_AC_TAGVAR(always_export_symbols, $1)=no
+_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_direct, $1)=no
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+_LT_AC_TAGVAR(module_cmds, $1)=
+_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_AC_TAGVAR(no_undefined_flag, $1)=
+_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="      subroutine t\n      return\n      end\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="      program t\n      end\n"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${F77-"f77"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+
+AC_MSG_CHECKING([if libtool supports shared libraries])
+AC_MSG_RESULT([$can_build_shared])
+
+AC_MSG_CHECKING([whether to build shared libraries])
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case $host_os in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+aix4* | aix5*)
+  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+    test "$enable_shared" = yes && enable_static=no
+  fi
+  ;;
+esac
+AC_MSG_RESULT([$enable_shared])
+
+AC_MSG_CHECKING([whether to build static libraries])
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+AC_MSG_RESULT([$enable_static])
+
+_LT_AC_TAGVAR(GCC, $1)="$G77"
+_LT_AC_TAGVAR(LD, $1)="$LD"
+
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_F77_CONFIG
+
+
+# AC_LIBTOOL_LANG_GCJ_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)])
+AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG],
+[AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${GCJ-"gcj"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+
+AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_GCJ_CONFIG
+
+
+# AC_LIBTOOL_LANG_RC_CONFIG
+# -------------------------
+# Ensure that the configuration vars for the Windows resource compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)])
+AC_DEFUN([_LT_AC_LANG_RC_CONFIG],
+[AC_LANG_SAVE
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${RC-"windres"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_RC_CONFIG
+
+
+# AC_LIBTOOL_CONFIG([TAGNAME])
+# ----------------------------
+# If TAGNAME is not passed, then create an initial libtool script
+# with a default configuration from the untagged config vars.  Otherwise
+# add code to config.status for appending the configuration named by
+# TAGNAME from the matching tagged config vars.
+AC_DEFUN([AC_LIBTOOL_CONFIG],
+[# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    _LT_AC_TAGVAR(compiler, $1) \
+    _LT_AC_TAGVAR(CC, $1) \
+    _LT_AC_TAGVAR(LD, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \
+    _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \
+    _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \
+    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \
+    _LT_AC_TAGVAR(old_archive_cmds, $1) \
+    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \
+    _LT_AC_TAGVAR(predep_objects, $1) \
+    _LT_AC_TAGVAR(postdep_objects, $1) \
+    _LT_AC_TAGVAR(predeps, $1) \
+    _LT_AC_TAGVAR(postdeps, $1) \
+    _LT_AC_TAGVAR(compiler_lib_search_path, $1) \
+    _LT_AC_TAGVAR(archive_cmds, $1) \
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1) \
+    _LT_AC_TAGVAR(postinstall_cmds, $1) \
+    _LT_AC_TAGVAR(postuninstall_cmds, $1) \
+    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \
+    _LT_AC_TAGVAR(allow_undefined_flag, $1) \
+    _LT_AC_TAGVAR(no_undefined_flag, $1) \
+    _LT_AC_TAGVAR(export_symbols_cmds, $1) \
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \
+    _LT_AC_TAGVAR(hardcode_automatic, $1) \
+    _LT_AC_TAGVAR(module_cmds, $1) \
+    _LT_AC_TAGVAR(module_expsym_cmds, $1) \
+    _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \
+    _LT_AC_TAGVAR(exclude_expsyms, $1) \
+    _LT_AC_TAGVAR(include_expsyms, $1); do
+
+    case $var in
+    _LT_AC_TAGVAR(old_archive_cmds, $1) | \
+    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \
+    _LT_AC_TAGVAR(archive_cmds, $1) | \
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \
+    _LT_AC_TAGVAR(module_cmds, $1) | \
+    _LT_AC_TAGVAR(module_expsym_cmds, $1) | \
+    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \
+    _LT_AC_TAGVAR(export_symbols_cmds, $1) | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\[$]0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'`
+    ;;
+  esac
+
+ifelse([$1], [],
+  [cfgfile="${ofile}T"
+  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+  $rm -f "$cfgfile"
+  AC_MSG_NOTICE([creating $ofile])],
+  [cfgfile="$ofile"])
+
+  cat <<__EOF__ >> "$cfgfile"
+ifelse([$1], [],
+[#! $SHELL
+
+# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+#
+# This file is part of GNU Libtool:
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# 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.
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="$SED -e 1s/^X//"
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# The names of the tagged configurations supported by this script.
+available_tags=
+
+# ### BEGIN LIBTOOL CONFIG],
+[# ### BEGIN LIBTOOL TAG CONFIG: $tagname])
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
+# A language-specific compiler.
+CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
+
+# Is the compiler the GNU C compiler?
+with_gcc=$_LT_AC_TAGVAR(GCC, $1)
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_[]_LT_AC_TAGVAR(LD, $1)
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1)
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1)
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1)
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1)
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1)
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1)
+archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1)
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1)
+module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1)
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1)
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1)
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1)
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1)
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1)
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1)
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1)
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1)
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1)
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1)
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1)
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1)
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1)
+
+# Symbols that must always be exported.
+include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1)
+
+ifelse([$1],[],
+[# ### END LIBTOOL CONFIG],
+[# ### END LIBTOOL TAG CONFIG: $tagname])
+
+__EOF__
+
+ifelse([$1],[], [
+  case $host_os in
+  aix3*)
+    cat <<\EOF >> "$cfgfile"
+
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+EOF
+    ;;
+  esac
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
+
+  mv -f "$cfgfile" "$ofile" || \
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+])
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
+fi
+])# AC_LIBTOOL_CONFIG
+
+
+# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------------------
+AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI],
+[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+
+_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+
+if test "$GCC" = yes; then
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+
+  AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+    lt_cv_prog_compiler_rtti_exceptions,
+    [-fno-rtti -fno-exceptions], [],
+    [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+fi
+])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI
+
+
+# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+# ---------------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
+[AC_REQUIRE([AC_CANONICAL_HOST])
+AC_REQUIRE([AC_PROG_NM])
+AC_REQUIRE([AC_OBJEXT])
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+[
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Transform an extracted symbol line into a proper C declaration
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[[BCDT]]'
+  ;;
+cygwin* | mingw* | pw32*)
+  symcode='[[ABCDGISTW]]'
+  ;;
+hpux*) # Its linker distinguishes data from code symbols
+  if test "$host_cpu" = ia64; then
+    symcode='[[ABCDEGRST]]'
+  fi
+  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+  ;;
+linux*)
+  if test "$host_cpu" = ia64; then
+    symcode='[[ABCDGIRSTW]]'
+    lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+    lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+  fi
+  ;;
+irix* | nonstopux*)
+  symcode='[[BCDEGRST]]'
+  ;;
+osf*)
+  symcode='[[BCDEGQRST]]'
+  ;;
+solaris*)
+  symcode='[[BDRT]]'
+  ;;
+sco3.2v5*)
+  symcode='[[DT]]'
+  ;;
+sysv4.2uw2*)
+  symcode='[[DT]]'
+  ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+  symcode='[[ABDT]]'
+  ;;
+sysv4)
+  symcode='[[DFNSTU]]'
+  ;;
+esac
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[[ABCDGIRSTW]]' ;;
+esac
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+  symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+  # Write the raw and C identifiers.
+  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ 	]]\($symcode$symcode*\)[[ 	]][[ 	]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+  if AC_TRY_EVAL(ac_compile); then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+	mv -f "$nlist"T "$nlist"
+      else
+	rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if grep ' nm_test_var$' "$nlist" >/dev/null; then
+	if grep ' nm_test_func$' "$nlist" >/dev/null; then
+	  cat <<EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+	  # Now generate the symbol file.
+	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
+
+	  cat <<EOF >> conftest.$ac_ext
+#if defined (__STDC__) && __STDC__
+# define lt_ptr_t void *
+#else
+# define lt_ptr_t char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+  const char *name;
+  lt_ptr_t address;
+}
+lt_preloaded_symbols[[]] =
+{
+EOF
+	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
+	  cat <<\EOF >> conftest.$ac_ext
+  {0, (lt_ptr_t) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+	  # Now try linking the two files.
+	  mv conftest.$ac_objext conftstm.$ac_objext
+	  lt_save_LIBS="$LIBS"
+	  lt_save_CFLAGS="$CFLAGS"
+	  LIBS="conftstm.$ac_objext"
+	  CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+	    pipe_works=yes
+	  fi
+	  LIBS="$lt_save_LIBS"
+	  CFLAGS="$lt_save_CFLAGS"
+	else
+	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+	fi
+      else
+	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+    fi
+  else
+    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+    cat conftest.$ac_ext >&5
+  fi
+  rm -f conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test "$pipe_works" = yes; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+])
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  AC_MSG_RESULT(failed)
+else
+  AC_MSG_RESULT(ok)
+fi
+]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+
+
+# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME])
+# ---------------------------------------
+AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC],
+[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=
+_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=
+
+AC_MSG_CHECKING([for $compiler option to produce PIC])
+ ifelse([$1],[CXX],[
+  # C++ specific cases for pic, static, wl, etc.
+  if test "$GXX" = yes; then
+    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+    aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+      ;;
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+    mingw* | os2* | pw32*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+      ;;
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+    *djgpp*)
+      # DJGPP does not support shared libraries at all
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+      ;;
+    interix3*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+    *)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    case $host_os in
+      aix4* | aix5*)
+	# All AIX code is PIC.
+	if test "$host_cpu" = ia64; then
+	  # AIX 5 now supports IA64 processor
+	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	else
+	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+	fi
+	;;
+      chorus*)
+	case $cc_basename in
+	cxch68*)
+	  # Green Hills C++ Compiler
+	  # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+	  ;;
+	esac
+	;;
+       darwin*)
+         # PIC is the default on this platform
+         # Common symbols not allowed in MH_DYLIB files
+         case $cc_basename in
+           xlc*)
+           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon'
+           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           ;;
+         esac
+       ;;
+      dgux*)
+	case $cc_basename in
+	  ec++*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  ghcx*)
+	    # Green Hills C++ Compiler
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      freebsd* | kfreebsd*-gnu | dragonfly*)
+	# FreeBSD uses GNU C++
+	;;
+      hpux9* | hpux10* | hpux11*)
+	case $cc_basename in
+	  CC*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+	    if test "$host_cpu" != ia64; then
+	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	    fi
+	    ;;
+	  aCC*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+	    case $host_cpu in
+	    hppa*64*|ia64*)
+	      # +Z the default
+	      ;;
+	    *)
+	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	      ;;
+	    esac
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      interix*)
+	# This is c89, which is MS Visual C++ (no shared libs)
+	# Anyone wants to do a port?
+	;;
+      irix5* | irix6* | nonstopux*)
+	case $cc_basename in
+	  CC*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    # CC pic flag -KPIC is the default.
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      linux*)
+	case $cc_basename in
+	  KCC*)
+	    # KAI C++ Compiler
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    ;;
+	  icpc* | ecpc*)
+	    # Intel C++
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	    ;;
+	  pgCC*)
+	    # Portland Group C++ compiler.
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  cxx*)
+	    # Compaq C++
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      lynxos*)
+	;;
+      m88k*)
+	;;
+      mvs*)
+	case $cc_basename in
+	  cxx*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      netbsd*)
+	;;
+      osf3* | osf4* | osf5*)
+	case $cc_basename in
+	  KCC*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    ;;
+	  RCC*)
+	    # Rational C++ 2.4.1
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  cxx*)
+	    # Digital/Compaq C++
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      psos*)
+	;;
+      solaris*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	    ;;
+	  gcx*)
+	    # Green Hills C++ Compiler
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sunos4*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.x
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  lcc*)
+	    # Lucid
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      tandem*)
+	case $cc_basename in
+	  NCC*)
+	    # NonStop-UX NCC 3.20
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+	case $cc_basename in
+	  CC*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	esac
+	;;
+      vxworks*)
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+	;;
+    esac
+  fi
+],
+[
+  if test "$GCC" = yes; then
+    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+      ;;
+
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+
+    interix3*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      enable_shared=no
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+
+    *)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      else
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+      darwin*)
+        # PIC is the default on this platform
+        # Common symbols not allowed in MH_DYLIB files
+       case $cc_basename in
+         xlc*)
+         _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon'
+         _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+         ;;
+       esac
+       ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC (with -KPIC) is the default.
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    newsos6)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    linux*)
+      case $cc_basename in
+      icc* | ecc*)
+	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      pgcc* | pgf77* | pgf90* | pgf95*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+        ;;
+      ccc*)
+        _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+        # All Alpha code is PIC.
+        _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+        ;;
+      esac
+      ;;
+
+    osf3* | osf4* | osf5*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # All OSF/1 code is PIC.
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    solaris*)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95*)
+	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    unicos*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+
+    uts4*)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *)
+      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+    esac
+  fi
+])
+AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)])
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then
+  AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works],
+    _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1),
+    [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [],
+    [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in
+     "" | " "*) ;;
+     *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+     esac],
+    [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+     _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+fi
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+    ;;
+  *)
+    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])"
+    ;;
+esac
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\"
+AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
+  _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1),
+  $lt_tmp_static_flag,
+  [],
+  [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
+])
+
+
+# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME])
+# ------------------------------------
+# See if the linker supports building shared libraries.
+AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS],
+[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+ifelse([$1],[CXX],[
+  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  case $host_os in
+  aix4* | aix5*)
+    # If we're using GNU nm, then we don't want the "-C" option.
+    # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+    else
+      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+    fi
+    ;;
+  pw32*)
+    _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+  ;;
+  cygwin* | mingw*)
+    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([[^ ]]*\) [[^ ]]*/\1 DATA/;/^I /d;/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  *)
+    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  esac
+],[
+  runpath_var=
+  _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+  _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+  _LT_AC_TAGVAR(archive_cmds, $1)=
+  _LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+  _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=
+  _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+  _LT_AC_TAGVAR(thread_safe_flag_spec, $1)=
+  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+  _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+  _LT_AC_TAGVAR(hardcode_automatic, $1)=no
+  _LT_AC_TAGVAR(module_cmds, $1)=
+  _LT_AC_TAGVAR(module_expsym_cmds, $1)=
+  _LT_AC_TAGVAR(always_export_symbols, $1)=no
+  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  _LT_AC_TAGVAR(include_expsyms, $1)=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_"
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  extract_expsyms_cmds=
+  # Just being paranoid about ensuring that cc_basename is set.
+  _LT_CC_BASENAME([$compiler])
+  case $host_os in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      else
+  	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>/dev/null` in
+      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix3* | aix4* | aix5*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+      fi
+      ;;
+
+    amigaos*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+
+      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can't use
+      # them.
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+      # as there is no search path for DLLs.
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_AC_TAGVAR(always_export_symbols, $1)=no
+      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    interix3*)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    linux*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	tmp_addflag=
+	case $cc_basename,$host_cpu in
+	pgcc*)				# Portland Group C compiler
+	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
+	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)		# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	esac
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+	if test $supports_anon_versioning = yes; then
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~
+  cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+  $echo "local: *; };" >> $output_objdir/$libname.ver~
+	  $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	fi
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) 
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
+	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
+	  else
+	    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	  fi
+	;;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+
+    if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then
+      runpath_var=
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	_LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+      fi
+      ;;
+
+    aix4* | aix5*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+	  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+	else
+	  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# need to do runtime linking.
+	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
+	  for ld_flag in $LDFLAGS; do
+  	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+  	    aix_use_runtimelinking=yes
+  	    break
+  	  fi
+	  done
+	  ;;
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      _LT_AC_TAGVAR(archive_cmds, $1)=''
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[[012]]|aix4.[[012]].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" && \
+  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	  then
+  	  # We have reworked collect2
+  	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	  else
+  	  # We have old collect2
+  	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+  	  # It fails to find uninstalled libraries when the uninstalled
+  	  # path is not listed in the libpath.  Setting hardcode_minus_L
+  	  # to unsupported forces relinking
+  	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+  	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+  	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+	  fi
+	  ;;
+	esac
+	shared_flag='-shared'
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag="$shared_flag "'${wl}-G'
+	fi
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+  	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='${wl}-G'
+	  else
+	    shared_flag='${wl}-bM:SRE'
+	  fi
+	fi
+      fi
+
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+       # Determine the default libpath from the value encoded in an empty executable.
+       _LT_AC_SYS_LIBPATH_AIX
+       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+       else
+	if test "$host_cpu" = ia64; then
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an empty executable.
+	 _LT_AC_SYS_LIBPATH_AIX
+	 _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	  # Exported symbols can be pulled into shared objects from archives
+	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+	  # This is similar to how AIX traditionally builds its shared libraries.
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      # see comment about different semantics on the GNU ld section
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    bsdi[[45]]*)
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext_cmds=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'
+      # FIXME: Should let the user specify the lib program.
+      _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs'
+      _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
+      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      ;;
+
+    darwin* | rhapsody*)
+      case $host_os in
+        rhapsody* | darwin1.[[012]])
+         _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress'
+         ;;
+       *) # Darwin 1.3 on
+         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+           _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+         else
+           case ${MACOSX_DEPLOYMENT_TARGET} in
+             10.[[012]])
+               _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+               ;;
+             10.*)
+               _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup'
+               ;;
+           esac
+         fi
+         ;;
+      esac
+      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=''
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+    if test "$GCC" = yes ; then
+    	output_verbose_link_cmd='echo'
+        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+      _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    else
+      case $cc_basename in
+        xlc*)
+         output_verbose_link_cmd='echo'
+         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+         _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+         _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          ;;
+       *)
+         _LT_AC_TAGVAR(ld_shlibs, $1)=no
+          ;;
+      esac
+    fi
+      ;;
+
+    dgux*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    freebsd1*)
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | kfreebsd*-gnu | dragonfly*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      ;;
+
+    hpux10*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	_LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	_LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      fi
+      ;;
+
+    hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case $host_cpu in
+	hppa*64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case $host_cpu in
+	hppa*64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	case $host_cpu in
+	hppa*64*|ia64*)
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+	  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    newsos6)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    openbsd*)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      else
+       case $host_os in
+	 openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+	   _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	   _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	   ;;
+	 *)
+	   _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	   _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	   ;;
+       esac
+      fi
+      ;;
+
+    os2*)
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      else
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    solaris*)
+      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
+      if test "$GCC" = yes; then
+	wlarc='${wl}'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+      else
+	wlarc=''
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      case $host_os in
+      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+      *)
+ 	# The compiler driver will combine linker options so we
+ 	# cannot just pass the convience library names through
+ 	# without $wl, iff we do not link with $LD.
+ 	# Luckily, gcc supports the same syntax we need for Sun Studio.
+ 	# Supported since Solaris 2.6 (maybe 2.5.1?)
+ 	case $wlarc in
+ 	'')
+ 	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
+ 	*)
+ 	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+ 	esac ;;
+      esac
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+        ;;
+	motorola)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4.3*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	_LT_AC_TAGVAR(ld_shlibs, $1)=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7*)
+      _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    esac
+  fi
+])
+AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in
+x|xyes)
+  # Assume -lc should be added
+  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $_LT_AC_TAGVAR(archive_cmds, $1) in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
+      $rm conftest*
+      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+	pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1)
+        _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+        if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)
+        then
+	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+        else
+	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+        fi
+        _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)])
+      ;;
+    esac
+  fi
+  ;;
+esac
+])# AC_LIBTOOL_PROG_LD_SHLIBS
+
+
+# _LT_AC_FILE_LTDLL_C
+# -------------------
+# Be careful that the start marker always follows a newline.
+AC_DEFUN([_LT_AC_FILE_LTDLL_C], [
+# /* ltdll.c starts here */
+# #define WIN32_LEAN_AND_MEAN
+# #include <windows.h>
+# #undef WIN32_LEAN_AND_MEAN
+# #include <stdio.h>
+#
+# #ifndef __CYGWIN__
+# #  ifdef __CYGWIN32__
+# #    define __CYGWIN__ __CYGWIN32__
+# #  endif
+# #endif
+#
+# #ifdef __cplusplus
+# extern "C" {
+# #endif
+# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
+# #ifdef __cplusplus
+# }
+# #endif
+#
+# #ifdef __CYGWIN__
+# #include <cygwin/cygwin_dll.h>
+# DECLARE_CYGWIN_DLL( DllMain );
+# #endif
+# HINSTANCE __hDllInstance_base;
+#
+# BOOL APIENTRY
+# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
+# {
+#   __hDllInstance_base = hInst;
+#   return TRUE;
+# }
+# /* ltdll.c ends here */
+])# _LT_AC_FILE_LTDLL_C
+
+
+# _LT_AC_TAGVAR(VARNAME, [TAGNAME])
+# ---------------------------------
+AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])])
+
+
+# old names
+AC_DEFUN([AM_PROG_LIBTOOL],   [AC_PROG_LIBTOOL])
+AC_DEFUN([AM_ENABLE_SHARED],  [AC_ENABLE_SHARED($@)])
+AC_DEFUN([AM_ENABLE_STATIC],  [AC_ENABLE_STATIC($@)])
+AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+AC_DEFUN([AM_PROG_LD],        [AC_PROG_LD])
+AC_DEFUN([AM_PROG_NM],        [AC_PROG_NM])
+
+# This is just to silence aclocal about the macro not being used
+ifelse([AC_DISABLE_FAST_INSTALL])
+
+AC_DEFUN([LT_AC_PROG_GCJ],
+[AC_CHECK_TOOL(GCJ, gcj, no)
+  test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+  AC_SUBST(GCJFLAGS)
+])
+
+AC_DEFUN([LT_AC_PROG_RC],
+[AC_CHECK_TOOL(RC, windres, no)
+])
+
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+# LT_AC_PROG_SED
+# --------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible.  Prefer GNU sed if found.
+AC_DEFUN([LT_AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for lt_ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+      fi
+    done
+  done
+done
+IFS=$as_save_IFS
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+  test ! -f $lt_ac_sed && continue
+  cat /dev/null > conftest.in
+  lt_ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+  # Check for GNU sed and select it if it is found.
+  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+    lt_cv_path_SED=$lt_ac_sed
+    break
+  fi
+  while true; do
+    cat conftest.in conftest.in >conftest.tmp
+    mv conftest.tmp conftest.in
+    cp conftest.in conftest.nl
+    echo >>conftest.nl
+    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+    cmp -s conftest.out conftest.nl || break
+    # 10000 chars as input seems more than enough
+    test $lt_ac_count -gt 10 && break
+    lt_ac_count=`expr $lt_ac_count + 1`
+    if test $lt_ac_count -gt $lt_ac_max; then
+      lt_ac_max=$lt_ac_count
+      lt_cv_path_SED=$lt_ac_sed
+    fi
+  done
+done
+])
+SED=$lt_cv_path_SED
+AC_SUBST([SED])
+AC_MSG_RESULT([$SED])
+])
+
+# pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
+# 
+# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# 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.
+
+# PKG_PROG_PKG_CONFIG([MIN-VERSION])
+# ----------------------------------
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+	AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+	_pkg_min_version=m4_default([$1], [0.9.0])
+	AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+		AC_MSG_RESULT([yes])
+	else
+		AC_MSG_RESULT([no])
+		PKG_CONFIG=""
+	fi
+		
+fi[]dnl
+])# PKG_PROG_PKG_CONFIG
+
+# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+#
+# Check to see whether a particular set of modules exists.  Similar
+# to PKG_CHECK_MODULES(), but does not set variables or print errors.
+#
+#
+# Similar to PKG_CHECK_MODULES, make sure that the first instance of
+# this or PKG_CHECK_MODULES is called, or make sure to call
+# PKG_CHECK_EXISTS manually
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+    AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+  m4_ifval([$2], [$2], [:])
+m4_ifvaln([$3], [else
+  $3])dnl
+fi])
+
+
+# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+# ---------------------------------------------
+m4_define([_PKG_CONFIG],
+[if test -n "$PKG_CONFIG"; then
+    if test -n "$$1"; then
+        pkg_cv_[]$1="$$1"
+    else
+        PKG_CHECK_EXISTS([$3],
+                         [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
+			 [pkg_failed=yes])
+    fi
+else
+	pkg_failed=untried
+fi[]dnl
+])# _PKG_CONFIG
+
+# _PKG_SHORT_ERRORS_SUPPORTED
+# -----------------------------
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi[]dnl
+])# _PKG_SHORT_ERRORS_SUPPORTED
+
+
+# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+# [ACTION-IF-NOT-FOUND])
+#
+#
+# Note that if there is a possibility the first call to
+# PKG_CHECK_MODULES might not happen, you should be sure to include an
+# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+#
+#
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+        _PKG_SHORT_ERRORS_SUPPORTED
+        if test $_pkg_short_errors_supported = yes; then
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`
+        else 
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+	ifelse([$4], , [AC_MSG_ERROR(dnl
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT
+])],
+		[AC_MSG_RESULT([no])
+                $4])
+elif test $pkg_failed = untried; then
+	ifelse([$4], , [AC_MSG_FAILURE(dnl
+[The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.])],
+		[$4])
+else
+	$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+	$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+        AC_MSG_RESULT([yes])
+	ifelse([$3], , :, [$3])
+fi[]dnl
+])# PKG_CHECK_MODULES
+
+# ulonglong.m4 serial 6
+dnl Copyright (C) 1999-2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Paul Eggert.
+
+# Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works.
+# This fixes a bug in Autoconf 2.60, but can be removed once we
+# assume 2.61 everywhere.
+
+# Note: If the type 'unsigned long long int' exists but is only 32 bits
+# large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT
+# will not be defined. In this case you can treat 'unsigned long long int'
+# like 'unsigned long int'.
+
+AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT],
+[
+  AC_CACHE_CHECK([for unsigned long long int],
+    [ac_cv_type_unsigned_long_long_int],
+    [AC_LINK_IFELSE(
+       [AC_LANG_PROGRAM(
+	  [[unsigned long long int ull = 18446744073709551615ULL;
+	    typedef int a[(18446744073709551615ULL <= (unsigned long long int) -1
+			   ? 1 : -1)];
+	   int i = 63;]],
+	  [[unsigned long long int ullmax = 18446744073709551615ull;
+	    return (ull << 63 | ull >> 63 | ull << i | ull >> i
+		    | ullmax / ull | ullmax % ull);]])],
+       [ac_cv_type_unsigned_long_long_int=yes],
+       [ac_cv_type_unsigned_long_long_int=no])])
+  if test $ac_cv_type_unsigned_long_long_int = yes; then
+    AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], 1,
+      [Define to 1 if the system has the type `unsigned long long int'.])
+  fi
+])
+
+# This macro is obsolescent and should go away soon.
+AC_DEFUN([gl_AC_TYPE_UNSIGNED_LONG_LONG],
+[
+  AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
+  ac_cv_type_unsigned_long_long=$ac_cv_type_unsigned_long_long_int
+  if test $ac_cv_type_unsigned_long_long = yes; then
+    AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1,
+      [Define if you have the 'unsigned long long' type.])
+  fi
+])
+
+# Copyright (C) 2002, 2003, 2005, 2006  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+# (This private macro should not be called outside this file.)
+AC_DEFUN([AM_AUTOMAKE_VERSION],
+[am__api_version='1.10'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version.  Point them to the right macro.
+m4_if([$1], [1.10], [],
+      [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too.  Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+[AM_AUTOMAKE_VERSION([1.10])dnl
+_AM_AUTOCONF_VERSION(m4_PACKAGE_VERSION)])
+
+# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
+
+# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory.  The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run.  This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+#    fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+#    fails if $ac_aux_dir is absolute,
+#    fails when called from a subdirectory in a VPATH build with
+#          a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir.  In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
+#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+#   MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH.  The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_CONDITIONAL                                            -*- Autoconf -*-
+
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 8
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ(2.52)dnl
+ ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+	[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+if $2; then
+  $1_TRUE=
+  $1_FALSE='#'
+else
+  $1_TRUE='#'
+  $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+  AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 9
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery.  Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
+       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
+       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+       [$1], UPC,  [depcc="$UPC"  am_compiler_list=],
+       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                   [depcc="$$1"   am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+               [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_$1_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+  fi
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+      # Solaris 8's {/usr,}/bin/sh.
+      touch sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    case $depmode in
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    none) break ;;
+    esac
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.
+    if depmode=$depmode \
+       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_$1_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[  --disable-dependency-tracking  speeds up one-time build
+  --enable-dependency-tracking   do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+])
+
+# Generate code to set up dependency tracking.              -*- Autoconf -*-
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+#serial 3
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[for mf in $CONFIG_FILES; do
+  # Strip MF so we end up with the name of the file.
+  mf=`echo "$mf" | sed -e 's/:.*$//'`
+  # Check whether this is an Automake generated Makefile or not.
+  # We used to match only the files named `Makefile.in', but
+  # some people rename them; so instead we look at the file content.
+  # Grep'ing the first line is not enough: some people post-process
+  # each Makefile.in and add a new line on top of each file to say so.
+  # Grep'ing the whole file is not good either: AIX grep has a line
+  # limit of 2048, but all sed's we know have understand at least 4000.
+  if sed 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then
+    dirpart=`AS_DIRNAME("$mf")`
+  else
+    continue
+  fi
+  # Extract the definition of DEPDIR, am__include, and am__quote
+  # from the Makefile without running `make'.
+  DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+  test -z "$DEPDIR" && continue
+  am__include=`sed -n 's/^am__include = //p' < "$mf"`
+  test -z "am__include" && continue
+  am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+  # When using ansi2knr, U may be empty or an underscore; expand it
+  U=`sed -n 's/^U = //p' < "$mf"`
+  # Find all dependency output files, they are included files with
+  # $(DEPDIR) in their names.  We invoke sed twice because it is the
+  # simplest approach to changing $(DEPDIR) to its actual value in the
+  # expansion.
+  for file in `sed -n "
+    s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+    # Make sure the directory exists.
+    test -f "$dirpart/$file" && continue
+    fdir=`AS_DIRNAME(["$file"])`
+    AS_MKDIR_P([$dirpart/$fdir])
+    # echo "creating $dirpart/$file"
+    echo '# dummy' > "$dirpart/$file"
+  done
+done
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking
+# is enabled.  FIXME.  This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+     [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+     [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+
+# Do all the work for Automake.                             -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 12
+
+# This macro actually does too much.  Some checks are only needed if
+# your package does certain things.  But this isn't really a big deal.
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out.  PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition.  After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.60])dnl
+dnl Autoconf wants to disallow AM_ names.  We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+  # is not polluted with repeated "-I."
+  AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+  # test to see if srcdir already configured
+  if test -f $srcdir/config.status; then
+    AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+  fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+  if (cygpath --version) >/dev/null 2>/dev/null; then
+    CYGPATH_W='cygpath -w'
+  else
+    CYGPATH_W=echo
+  fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+  [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_PROG_INSTALL_SH
+AM_PROG_INSTALL_STRIP
+AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+# We need awk for the "check" target.  The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+              [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+	      		     [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+                  [_AM_DEPENDENCIES(CC)],
+                  [define([AC_PROG_CC],
+                          defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+                  [_AM_DEPENDENCIES(CXX)],
+                  [define([AC_PROG_CXX],
+                          defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+                  [_AM_DEPENDENCIES(OBJC)],
+                  [define([AC_PROG_OBJC],
+                          defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+])
+])
+
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated.  The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+  case $_am_header in
+    $1 | $1:* )
+      break ;;
+    * )
+      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+  esac
+done
+echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}
+AC_SUBST(install_sh)])
+
+# Copyright (C) 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot.  For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
+else
+  am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Check to see how 'make' treats includes.	            -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 3
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+	@echo done
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
+   am__include=include
+   am__quote=
+   _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+      am__include=.include
+      am__quote="\""
+      _am_result=BSD
+   fi
+fi
+AC_SUBST([am__include])
+AC_SUBST([am__quote])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+
+# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 5
+
+# AM_PROG_CC_C_O
+# --------------
+# Like AC_PROG_CC_C_O, but changed for automake.
+AC_DEFUN([AM_PROG_CC_C_O],
+[AC_REQUIRE([AC_PROG_CC_C_O])dnl
+AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+# FIXME: we rely on the cache variable name because
+# there is no other way.
+set dummy $CC
+ac_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']`
+if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" != yes"; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+dnl Make sure AC_PROG_CC is never called again, or it will override our
+dnl setting of CC.
+m4_define([AC_PROG_CC],
+          [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])])
+])
+
+# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
+
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 5
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+  am_missing_run="$MISSING --run "
+else
+  am_missing_run=
+  AC_MSG_WARN([`missing' script is too old or missing])
+fi
+])
+
+# Copyright (C) 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_MKDIR_P
+# ---------------
+# Check for `mkdir -p'.
+AC_DEFUN([AM_PROG_MKDIR_P],
+[AC_PREREQ([2.60])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+dnl Automake 1.8 to 1.9.6 used to define mkdir_p.  We now use MKDIR_P,
+dnl while keeping a definition of mkdir_p for backward compatibility.
+dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
+dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
+dnl Makefile.ins that do not define MKDIR_P, so we do our own
+dnl adjustment using top_builddir (which is defined more often than
+dnl MKDIR_P).
+AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
+case $mkdir_p in
+  [[\\/$]]* | ?:[[\\/]]*) ;;
+  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+])
+
+# Helper functions for option handling.                     -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 3
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# ------------------------------
+# Set option NAME.  Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ----------------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Check to make sure that the build environment is sane.    -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+   if test "$[*]" = "X"; then
+      # -L didn't work.
+      set X `ls -t $srcdir/configure conftest.file`
+   fi
+   rm -f conftest.file
+   if test "$[*]" != "X $srcdir/configure conftest.file" \
+      && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+      # If neither matched, then we have a broken ls.  This can happen
+      # if, for instance, CONFIG_SHELL is bash and it inherits a
+      # broken ls alias from the environment.  This has actually
+      # happened.  Such a system could not be considered "sane".
+      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+alias in your environment])
+   fi
+
+   test "$[2]" = conftest.file
+   )
+then
+   # Ok.
+   :
+else
+   AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT(yes)])
+
+# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries.  This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'.  However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+if test "$cross_compiling" != no; then
+  AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Copyright (C) 2006  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputing VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# Check how to create a tarball.                            -*- Autoconf -*-
+
+# Copyright (C) 2004, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of `v7', `ustar', or `pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+#     tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+#     $(am__untar) < result.tar
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
+m4_if([$1], [v7],
+     [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+     [m4_case([$1], [ustar],, [pax],,
+              [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+  case $_am_tool in
+  gnutar)
+    for _am_tar in tar gnutar gtar;
+    do
+      AM_RUN_LOG([$_am_tar --version]) && break
+    done
+    am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+    am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+    am__untar="$_am_tar -xf -"
+    ;;
+  plaintar)
+    # Must skip GNU tar: if it does not support --format= it doesn't create
+    # ustar tarball either.
+    (tar --version) >/dev/null 2>&1 && continue
+    am__tar='tar chf - "$$tardir"'
+    am__tar_='tar chf - "$tardir"'
+    am__untar='tar xf -'
+    ;;
+  pax)
+    am__tar='pax -L -x $1 -w "$$tardir"'
+    am__tar_='pax -L -x $1 -w "$tardir"'
+    am__untar='pax -r'
+    ;;
+  cpio)
+    am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+    am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+    am__untar='cpio -i -H $1 -d'
+    ;;
+  none)
+    am__tar=false
+    am__tar_=false
+    am__untar=false
+    ;;
+  esac
+
+  # If the value was cached, stop now.  We just wanted to have am__tar
+  # and am__untar set.
+  test -n "${am_cv_prog_tar_$1}" && break
+
+  # tar/untar a dummy directory, and stop if the command works
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  echo GrepMe > conftest.dir/file
+  AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+  rm -rf conftest.dir
+  if test -s conftest.tar; then
+    AM_RUN_LOG([$am__untar <conftest.tar])
+    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+  fi
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+m4_include([m4/absolute-header.m4])
+m4_include([m4/alloca.m4])
+m4_include([m4/assert.m4])
+m4_include([m4/atexit.m4])
+m4_include([m4/calloc.m4])
+m4_include([m4/close-stream.m4])
+m4_include([m4/closeout.m4])
+m4_include([m4/codeset.m4])
+m4_include([m4/config-h.m4])
+m4_include([m4/dirname.m4])
+m4_include([m4/dos.m4])
+m4_include([m4/double-slash-root.m4])
+m4_include([m4/error.m4])
+m4_include([m4/exitfail.m4])
+m4_include([m4/extensions.m4])
+m4_include([m4/fpending.m4])
+m4_include([m4/free.m4])
+m4_include([m4/getopt.m4])
+m4_include([m4/gettext.m4])
+m4_include([m4/glibc21.m4])
+m4_include([m4/gnulib-common.m4])
+m4_include([m4/gnulib-comp.m4])
+m4_include([m4/iconv.m4])
+m4_include([m4/inline.m4])
+m4_include([m4/inttypes-pri.m4])
+m4_include([m4/inttypes.m4])
+m4_include([m4/lib-ignore.m4])
+m4_include([m4/lib-ld.m4])
+m4_include([m4/lib-link.m4])
+m4_include([m4/lib-prefix.m4])
+m4_include([m4/localcharset.m4])
+m4_include([m4/long-options.m4])
+m4_include([m4/longlong.m4])
+m4_include([m4/mbrtowc.m4])
+m4_include([m4/mbstate_t.m4])
+m4_include([m4/memchr.m4])
+m4_include([m4/memcmp.m4])
+m4_include([m4/memcpy.m4])
+m4_include([m4/memmove.m4])
+m4_include([m4/memset.m4])
+m4_include([m4/nls.m4])
+m4_include([m4/po.m4])
+m4_include([m4/progtest.m4])
+m4_include([m4/quotearg.m4])
+m4_include([m4/regex.m4])
+m4_include([m4/rename.m4])
+m4_include([m4/rpmatch.m4])
+m4_include([m4/safe-read.m4])
+m4_include([m4/safe-write.m4])
+m4_include([m4/ssize_t.m4])
+m4_include([m4/stdarg.m4])
+m4_include([m4/stdbool.m4])
+m4_include([m4/stdint.m4])
+m4_include([m4/stdlib_h.m4])
+m4_include([m4/strcspn.m4])
+m4_include([m4/string_h.m4])
+m4_include([m4/strndup.m4])
+m4_include([m4/strnlen.m4])
+m4_include([m4/strtod.m4])
+m4_include([m4/strtol.m4])
+m4_include([m4/unistd_h.m4])
+m4_include([m4/utimbuf.m4])
+m4_include([m4/utime.m4])
+m4_include([m4/utimes-null.m4])
+m4_include([m4/wchar.m4])
+m4_include([m4/wctype.m4])
+m4_include([m4/wint_t.m4])
+m4_include([m4/xalloc.m4])
+m4_include([m4/xstrndup.m4])
diff --git a/parted-1.8.7/build-aux/compile b/parted-1.8.7/build-aux/compile
new file mode 100755
index 0000000..1b1d232
--- /dev/null
+++ b/parted-1.8.7/build-aux/compile
@@ -0,0 +1,142 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand `-c -o'.
+
+scriptversion=2005-05-14.22
+
+# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey@cygnus.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# 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.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+case $1 in
+  '')
+     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
+     exit 1;
+     ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand `-c -o'.
+Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file `INSTALL'.
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "compile $scriptversion"
+    exit $?
+    ;;
+esac
+
+ofile=
+cfile=
+eat=
+
+for arg
+do
+  if test -n "$eat"; then
+    eat=
+  else
+    case $1 in
+      -o)
+	# configure might choose to run compile as `compile cc -o foo foo.c'.
+	# So we strip `-o arg' only if arg is an object.
+	eat=1
+	case $2 in
+	  *.o | *.obj)
+	    ofile=$2
+	    ;;
+	  *)
+	    set x "$@" -o "$2"
+	    shift
+	    ;;
+	esac
+	;;
+      *.c)
+	cfile=$1
+	set x "$@" "$1"
+	shift
+	;;
+      *)
+	set x "$@" "$1"
+	shift
+	;;
+    esac
+  fi
+  shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+  # If no `-o' option was seen then we might have been invoked from a
+  # pattern rule where we don't need one.  That is ok -- this is a
+  # normal compilation that the losing compiler can handle.  If no
+  # `.c' file was seen then we are probably linking.  That is also
+  # ok.
+  exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use `[/.-]' here to ensure that we don't use the same name
+# that we are using for the .o file.  Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
+while true; do
+  if mkdir "$lockdir" >/dev/null 2>&1; then
+    break
+  fi
+  sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+  mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+  mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/parted-1.8.7/build-aux/config.guess b/parted-1.8.7/build-aux/config.guess
new file mode 100755
index 0000000..0f0fe71
--- /dev/null
+++ b/parted-1.8.7/build-aux/config.guess
@@ -0,0 +1,1516 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
+#   Inc.
+
+timestamp='2007-03-06'
+
+# 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
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# 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 <per@bothner.com>.
+# Please send patches to <config-patches@gnu.org>.  Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# 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.
+#
+# The plan is that this can be called by configure scripts if you
+# don't specify an explicit build system type.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+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."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help" >&2
+       exit 1 ;;
+    * )
+       break ;;
+  esac
+done
+
+if test $# != 0; then
+  echo "$me: too many arguments$help" >&2
+  exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,)    echo "int x;" > $dummy.c ;
+	for c in cc gcc c89 c99 ; do
+	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+	     CC_FOR_BUILD="$c"; break ;
+	  fi ;
+	done ;
+	if test x"$CC_FOR_BUILD" = x ; then
+	  CC_FOR_BUILD=no_compiler_found ;
+	fi
+	;;
+ ,,*)   CC_FOR_BUILD=$CC ;;
+ ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+esac ; set_cc_for_build= ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+	PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+    *:NetBSD:*:*)
+	# NetBSD (nbsd) targets should (where applicable) match one or
+	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
+	# switched to ELF, *-*-netbsd* would select the old
+	# object file format.  This provides both forward
+	# compatibility and a consistent mechanism for selecting the
+	# object file format.
+	#
+	# Note: NetBSD doesn't particularly care about the vendor
+	# portion of the name.  We always set it to "unknown".
+	sysctl="sysctl -n hw.machine_arch"
+	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+	case "${UNAME_MACHINE_ARCH}" in
+	    armeb) machine=armeb-unknown ;;
+	    arm*) machine=arm-unknown ;;
+	    sh3el) machine=shl-unknown ;;
+	    sh3eb) machine=sh-unknown ;;
+	    sh5el) machine=sh5le-unknown ;;
+	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+	esac
+	# The Operating System including object format, if it has switched
+	# to ELF recently, or will in the future.
+	case "${UNAME_MACHINE_ARCH}" in
+	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+		eval $set_cc_for_build
+		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+			| grep __ELF__ >/dev/null
+		then
+		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+		    # Return netbsd for either.  FIX?
+		    os=netbsd
+		else
+		    os=netbsdelf
+		fi
+		;;
+	    *)
+	        os=netbsd
+		;;
+	esac
+	# The OS release
+	# Debian GNU/NetBSD machines have a different userland, and
+	# thus, need a distinct triplet. However, they do not need
+	# kernel version information, so it can be replaced with a
+	# suitable tag, in the style of linux-gnu.
+	case "${UNAME_VERSION}" in
+	    Debian*)
+		release='-gnu'
+		;;
+	    *)
+		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+		;;
+	esac
+	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+	# contains redundant information, the shorter form:
+	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+	echo "${machine}-${os}${release}"
+	exit ;;
+    *:OpenBSD:*:*)
+	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+	exit ;;
+    *:ekkoBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+	exit ;;
+    *:SolidBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+	exit ;;
+    macppc:MirBSD:*:*)
+	echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
+    *:MirBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
+    alpha:OSF1:*:*)
+	case $UNAME_RELEASE in
+	*4.0)
+		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+		;;
+	*5.*)
+	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+		;;
+	esac
+	# According to Compaq, /usr/sbin/psrinfo has been available on
+	# OSF/1 and Tru64 systems produced since 1995.  I hope that
+	# covers most systems running today.  This code pipes the CPU
+	# types through head -n 1, so we only detect the type of CPU 0.
+	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+	case "$ALPHA_CPU_TYPE" in
+	    "EV4 (21064)")
+		UNAME_MACHINE="alpha" ;;
+	    "EV4.5 (21064)")
+		UNAME_MACHINE="alpha" ;;
+	    "LCA4 (21066/21068)")
+		UNAME_MACHINE="alpha" ;;
+	    "EV5 (21164)")
+		UNAME_MACHINE="alphaev5" ;;
+	    "EV5.6 (21164A)")
+		UNAME_MACHINE="alphaev56" ;;
+	    "EV5.6 (21164PC)")
+		UNAME_MACHINE="alphapca56" ;;
+	    "EV5.7 (21164PC)")
+		UNAME_MACHINE="alphapca57" ;;
+	    "EV6 (21264)")
+		UNAME_MACHINE="alphaev6" ;;
+	    "EV6.7 (21264A)")
+		UNAME_MACHINE="alphaev67" ;;
+	    "EV6.8CB (21264C)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.8AL (21264B)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.8CX (21264D)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.9A (21264/EV69A)")
+		UNAME_MACHINE="alphaev69" ;;
+	    "EV7 (21364)")
+		UNAME_MACHINE="alphaev7" ;;
+	    "EV7.9 (21364A)")
+		UNAME_MACHINE="alphaev79" ;;
+	esac
+	# A Pn.n version is a patched version.
+	# A Vn.n version is a released version.
+	# A Tn.n version is a released field test version.
+	# A Xn.n version is an unreleased experimental baselevel.
+	# 1.2 uses "1.2" for uname -r.
+	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+	exit ;;
+    Alpha\ *:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# Should we change UNAME_MACHINE based on the output of uname instead
+	# of the specific Alpha model?
+	echo alpha-pc-interix
+	exit ;;
+    21064:Windows_NT:50:3)
+	echo alpha-dec-winnt3.5
+	exit ;;
+    Amiga*:UNIX_System_V:4.0:*)
+	echo m68k-unknown-sysv4
+	exit ;;
+    *:[Aa]miga[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-amigaos
+	exit ;;
+    *:[Mm]orph[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-morphos
+	exit ;;
+    *:OS/390:*:*)
+	echo i370-ibm-openedition
+	exit ;;
+    *:z/VM:*:*)
+	echo s390-ibm-zvmoe
+	exit ;;
+    *:OS400:*:*)
+        echo powerpc-ibm-os400
+	exit ;;
+    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+	echo arm-acorn-riscix${UNAME_RELEASE}
+	exit ;;
+    arm:riscos:*:*|arm:RISCOS:*:*)
+	echo arm-unknown-riscos
+	exit ;;
+    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+	echo hppa1.1-hitachi-hiuxmpp
+	exit ;;
+    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+	if test "`(/bin/universe) 2>/dev/null`" = att ; then
+		echo pyramid-pyramid-sysv3
+	else
+		echo pyramid-pyramid-bsd
+	fi
+	exit ;;
+    NILE*:*:*:dcosx)
+	echo pyramid-pyramid-svr4
+	exit ;;
+    DRS?6000:unix:4.0:6*)
+	echo sparc-icl-nx6
+	exit ;;
+    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+	case `/usr/bin/uname -p` in
+	    sparc) echo sparc-icl-nx7; exit ;;
+	esac ;;
+    sun4H:SunOS:5.*:*)
+	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    i86pc:SunOS:5.*:*)
+	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:6*:*)
+	# According to config.sub, this is the proper way to canonicalize
+	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
+	# it's likely to be more like Solaris than SunOS4.
+	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:*:*)
+	case "`/usr/bin/arch -k`" in
+	    Series*|S4*)
+		UNAME_RELEASE=`uname -v`
+		;;
+	esac
+	# Japanese Language versions have a version number like `4.1.3-JL'.
+	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+	exit ;;
+    sun3*:SunOS:*:*)
+	echo m68k-sun-sunos${UNAME_RELEASE}
+	exit ;;
+    sun*:*:4.2BSD:*)
+	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+	case "`/bin/arch`" in
+	    sun3)
+		echo m68k-sun-sunos${UNAME_RELEASE}
+		;;
+	    sun4)
+		echo sparc-sun-sunos${UNAME_RELEASE}
+		;;
+	esac
+	exit ;;
+    aushp:SunOS:*:*)
+	echo sparc-auspex-sunos${UNAME_RELEASE}
+	exit ;;
+    # The situation for MiNT is a little confusing.  The machine name
+    # can be virtually everything (everything which is not
+    # "atarist" or "atariste" at least should have a processor
+    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
+    # to the lowercase version "mint" (or "freemint").  Finally
+    # the system name "TOS" denotes a system which is actually not
+    # MiNT.  But MiNT is downward compatible to TOS, so this should
+    # be no problem.
+    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+	echo m68k-atari-mint${UNAME_RELEASE}
+        exit ;;
+    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+        echo m68k-milan-mint${UNAME_RELEASE}
+        exit ;;
+    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+        echo m68k-hades-mint${UNAME_RELEASE}
+        exit ;;
+    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+        echo m68k-unknown-mint${UNAME_RELEASE}
+        exit ;;
+    m68k:machten:*:*)
+	echo m68k-apple-machten${UNAME_RELEASE}
+	exit ;;
+    powerpc:machten:*:*)
+	echo powerpc-apple-machten${UNAME_RELEASE}
+	exit ;;
+    RISC*:Mach:*:*)
+	echo mips-dec-mach_bsd4.3
+	exit ;;
+    RISC*:ULTRIX:*:*)
+	echo mips-dec-ultrix${UNAME_RELEASE}
+	exit ;;
+    VAX*:ULTRIX*:*:*)
+	echo vax-dec-ultrix${UNAME_RELEASE}
+	exit ;;
+    2020:CLIX:*:* | 2430:CLIX:*:*)
+	echo clipper-intergraph-clix${UNAME_RELEASE}
+	exit ;;
+    mips:*:*:UMIPS | mips:*:*:RISCos)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h>  /* for printf() prototype */
+	int main (int argc, char *argv[]) {
+#else
+	int main (argc, argv) int argc; char *argv[]; {
+#endif
+	#if defined (host_mips) && defined (MIPSEB)
+	#if defined (SYSTYPE_SYSV)
+	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_SVR4)
+	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+	#endif
+	#endif
+	  exit (-1);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c &&
+	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+	  SYSTEM_NAME=`$dummy $dummyarg` &&
+	    { echo "$SYSTEM_NAME"; exit; }
+	echo mips-mips-riscos${UNAME_RELEASE}
+	exit ;;
+    Motorola:PowerMAX_OS:*:*)
+	echo powerpc-motorola-powermax
+	exit ;;
+    Motorola:*:4.3:PL8-*)
+	echo powerpc-harris-powermax
+	exit ;;
+    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+	echo powerpc-harris-powermax
+	exit ;;
+    Night_Hawk:Power_UNIX:*:*)
+	echo powerpc-harris-powerunix
+	exit ;;
+    m88k:CX/UX:7*:*)
+	echo m88k-harris-cxux7
+	exit ;;
+    m88k:*:4*:R4*)
+	echo m88k-motorola-sysv4
+	exit ;;
+    m88k:*:3*:R3*)
+	echo m88k-motorola-sysv3
+	exit ;;
+    AViiON:dgux:*:*)
+        # DG/UX returns AViiON for all architectures
+        UNAME_PROCESSOR=`/usr/bin/uname -p`
+	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+	then
+	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+	       [ ${TARGET_BINARY_INTERFACE}x = x ]
+	    then
+		echo m88k-dg-dgux${UNAME_RELEASE}
+	    else
+		echo m88k-dg-dguxbcs${UNAME_RELEASE}
+	    fi
+	else
+	    echo i586-dg-dgux${UNAME_RELEASE}
+	fi
+ 	exit ;;
+    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
+	echo m88k-dolphin-sysv3
+	exit ;;
+    M88*:*:R3*:*)
+	# Delta 88k system running SVR3
+	echo m88k-motorola-sysv3
+	exit ;;
+    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+	echo m88k-tektronix-sysv3
+	exit ;;
+    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+	echo m68k-tektronix-bsd
+	exit ;;
+    *:IRIX*:*:*)
+	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+	exit ;;
+    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
+	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
+    i*86:AIX:*:*)
+	echo i386-ibm-aix
+	exit ;;
+    ia64:AIX:*:*)
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+	exit ;;
+    *:AIX:2:3)
+	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+		eval $set_cc_for_build
+		sed 's/^		//' << EOF >$dummy.c
+		#include <sys/systemcfg.h>
+
+		main()
+			{
+			if (!__power_pc())
+				exit(1);
+			puts("powerpc-ibm-aix3.2.5");
+			exit(0);
+			}
+EOF
+		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+		then
+			echo "$SYSTEM_NAME"
+		else
+			echo rs6000-ibm-aix3.2.5
+		fi
+	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+		echo rs6000-ibm-aix3.2.4
+	else
+		echo rs6000-ibm-aix3.2
+	fi
+	exit ;;
+    *:AIX:*:[45])
+	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+		IBM_ARCH=rs6000
+	else
+		IBM_ARCH=powerpc
+	fi
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+	exit ;;
+    *:AIX:*:*)
+	echo rs6000-ibm-aix
+	exit ;;
+    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+	echo romp-ibm-bsd4.4
+	exit ;;
+    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
+	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+	exit ;;                             # report: romp-ibm BSD 4.3
+    *:BOSX:*:*)
+	echo rs6000-bull-bosx
+	exit ;;
+    DPX/2?00:B.O.S.:*:*)
+	echo m68k-bull-sysv3
+	exit ;;
+    9000/[34]??:4.3bsd:1.*:*)
+	echo m68k-hp-bsd
+	exit ;;
+    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+	echo m68k-hp-bsd4.4
+	exit ;;
+    9000/[34678]??:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	case "${UNAME_MACHINE}" in
+	    9000/31? )            HP_ARCH=m68000 ;;
+	    9000/[34]?? )         HP_ARCH=m68k ;;
+	    9000/[678][0-9][0-9])
+		if [ -x /usr/bin/getconf ]; then
+		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+                    case "${sc_cpu_version}" in
+                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                      532)                      # CPU_PA_RISC2_0
+                        case "${sc_kernel_bits}" in
+                          32) HP_ARCH="hppa2.0n" ;;
+                          64) HP_ARCH="hppa2.0w" ;;
+			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+                        esac ;;
+                    esac
+		fi
+		if [ "${HP_ARCH}" = "" ]; then
+		    eval $set_cc_for_build
+		    sed 's/^              //' << EOF >$dummy.c
+
+              #define _HPUX_SOURCE
+              #include <stdlib.h>
+              #include <unistd.h>
+
+              int main ()
+              {
+              #if defined(_SC_KERNEL_BITS)
+                  long bits = sysconf(_SC_KERNEL_BITS);
+              #endif
+                  long cpu  = sysconf (_SC_CPU_VERSION);
+
+                  switch (cpu)
+              	{
+              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+              	case CPU_PA_RISC2_0:
+              #if defined(_SC_KERNEL_BITS)
+              	    switch (bits)
+              		{
+              		case 64: puts ("hppa2.0w"); break;
+              		case 32: puts ("hppa2.0n"); break;
+              		default: puts ("hppa2.0"); break;
+              		} break;
+              #else  /* !defined(_SC_KERNEL_BITS) */
+              	    puts ("hppa2.0"); break;
+              #endif
+              	default: puts ("hppa1.0"); break;
+              	}
+                  exit (0);
+              }
+EOF
+		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+		    test -z "$HP_ARCH" && HP_ARCH=hppa
+		fi ;;
+	esac
+	if [ ${HP_ARCH} = "hppa2.0w" ]
+	then
+	    eval $set_cc_for_build
+
+	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
+	    # generating 64-bit code.  GNU and HP use different nomenclature:
+	    #
+	    # $ CC_FOR_BUILD=cc ./config.guess
+	    # => hppa2.0w-hp-hpux11.23
+	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+	    # => hppa64-hp-hpux11.23
+
+	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+		grep __LP64__ >/dev/null
+	    then
+		HP_ARCH="hppa2.0w"
+	    else
+		HP_ARCH="hppa64"
+	    fi
+	fi
+	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+	exit ;;
+    ia64:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	echo ia64-hp-hpux${HPUX_REV}
+	exit ;;
+    3050*:HI-UX:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <unistd.h>
+	int
+	main ()
+	{
+	  long cpu = sysconf (_SC_CPU_VERSION);
+	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
+	     results, however.  */
+	  if (CPU_IS_PA_RISC (cpu))
+	    {
+	      switch (cpu)
+		{
+		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+		  default: puts ("hppa-hitachi-hiuxwe2"); break;
+		}
+	    }
+	  else if (CPU_IS_HP_MC68K (cpu))
+	    puts ("m68k-hitachi-hiuxwe2");
+	  else puts ("unknown-hitachi-hiuxwe2");
+	  exit (0);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+		{ echo "$SYSTEM_NAME"; exit; }
+	echo unknown-hitachi-hiuxwe2
+	exit ;;
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+	echo hppa1.1-hp-bsd
+	exit ;;
+    9000/8??:4.3bsd:*:*)
+	echo hppa1.0-hp-bsd
+	exit ;;
+    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+	echo hppa1.0-hp-mpeix
+	exit ;;
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+	echo hppa1.1-hp-osf
+	exit ;;
+    hp8??:OSF1:*:*)
+	echo hppa1.0-hp-osf
+	exit ;;
+    i*86:OSF1:*:*)
+	if [ -x /usr/sbin/sysversion ] ; then
+	    echo ${UNAME_MACHINE}-unknown-osf1mk
+	else
+	    echo ${UNAME_MACHINE}-unknown-osf1
+	fi
+	exit ;;
+    parisc*:Lites*:*:*)
+	echo hppa1.1-hp-lites
+	exit ;;
+    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+	echo c1-convex-bsd
+        exit ;;
+    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+        exit ;;
+    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+	echo c34-convex-bsd
+        exit ;;
+    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+	echo c38-convex-bsd
+        exit ;;
+    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+	echo c4-convex-bsd
+        exit ;;
+    CRAY*Y-MP:*:*:*)
+	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*[A-Z]90:*:*:*)
+	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+	      -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*TS:*:*:*)
+	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*T3E:*:*:*)
+	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*SV1:*:*:*)
+	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    *:UNICOS/mp:*:*)
+	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+        exit ;;
+    5000:UNIX_System_V:4.*:*)
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+	exit ;;
+    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+	exit ;;
+    sparc*:BSD/OS:*:*)
+	echo sparc-unknown-bsdi${UNAME_RELEASE}
+	exit ;;
+    *:BSD/OS:*:*)
+	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+	exit ;;
+    *:FreeBSD:*:*)
+	case ${UNAME_MACHINE} in
+	    pc98)
+		echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	    amd64)
+		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	    *)
+		echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	esac
+	exit ;;
+    i*:CYGWIN*:*)
+	echo ${UNAME_MACHINE}-pc-cygwin
+	exit ;;
+    *:MINGW*:*)
+	echo ${UNAME_MACHINE}-pc-mingw32
+	exit ;;
+    i*:windows32*:*)
+    	# uname -m includes "-pc" on this system.
+    	echo ${UNAME_MACHINE}-mingw32
+	exit ;;
+    i*:PW*:*)
+	echo ${UNAME_MACHINE}-pc-pw32
+	exit ;;
+    *:Interix*:[3456]*)
+    	case ${UNAME_MACHINE} in
+	    x86) 
+		echo i586-pc-interix${UNAME_RELEASE}
+		exit ;;
+	    EM64T | authenticamd)
+		echo x86_64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	esac ;;
+    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+	echo i${UNAME_MACHINE}-pc-mks
+	exit ;;
+    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+	# UNAME_MACHINE based on the output of uname instead of i386?
+	echo i586-pc-interix
+	exit ;;
+    i*:UWIN*:*)
+	echo ${UNAME_MACHINE}-pc-uwin
+	exit ;;
+    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+	echo x86_64-unknown-cygwin
+	exit ;;
+    p*:CYGWIN*:*)
+	echo powerpcle-unknown-cygwin
+	exit ;;
+    prep*:SunOS:5.*:*)
+	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    *:GNU:*:*)
+	# the GNU system
+	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+	exit ;;
+    *:GNU/*:*:*)
+	# other systems with GNU libc and userland
+	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+	exit ;;
+    i*86:Minix:*:*)
+	echo ${UNAME_MACHINE}-pc-minix
+	exit ;;
+    arm*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    avr32*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    cris:Linux:*:*)
+	echo cris-axis-linux-gnu
+	exit ;;
+    crisv32:Linux:*:*)
+	echo crisv32-axis-linux-gnu
+	exit ;;
+    frv:Linux:*:*)
+    	echo frv-unknown-linux-gnu
+	exit ;;
+    ia64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    m32r*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    m68*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    mips:Linux:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#undef CPU
+	#undef mips
+	#undef mipsel
+	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+	CPU=mipsel
+	#else
+	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+	CPU=mips
+	#else
+	CPU=
+	#endif
+	#endif
+EOF
+	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+	    /^CPU/{
+		s: ::g
+		p
+	    }'`"
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+	;;
+    mips64:Linux:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#undef CPU
+	#undef mips64
+	#undef mips64el
+	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+	CPU=mips64el
+	#else
+	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+	CPU=mips64
+	#else
+	CPU=
+	#endif
+	#endif
+EOF
+	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+	    /^CPU/{
+		s: ::g
+		p
+	    }'`"
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+	;;
+    or32:Linux:*:*)
+	echo or32-unknown-linux-gnu
+	exit ;;
+    ppc:Linux:*:*)
+	echo powerpc-unknown-linux-gnu
+	exit ;;
+    ppc64:Linux:*:*)
+	echo powerpc64-unknown-linux-gnu
+	exit ;;
+    alpha:Linux:*:*)
+	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+	  EV5)   UNAME_MACHINE=alphaev5 ;;
+	  EV56)  UNAME_MACHINE=alphaev56 ;;
+	  PCA56) UNAME_MACHINE=alphapca56 ;;
+	  PCA57) UNAME_MACHINE=alphapca56 ;;
+	  EV6)   UNAME_MACHINE=alphaev6 ;;
+	  EV67)  UNAME_MACHINE=alphaev67 ;;
+	  EV68*) UNAME_MACHINE=alphaev68 ;;
+        esac
+	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	exit ;;
+    parisc:Linux:*:* | hppa:Linux:*:*)
+	# Look for CPU level
+	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
+	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
+	  *)    echo hppa-unknown-linux-gnu ;;
+	esac
+	exit ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+	echo hppa64-unknown-linux-gnu
+	exit ;;
+    s390:Linux:*:* | s390x:Linux:*:*)
+	echo ${UNAME_MACHINE}-ibm-linux
+	exit ;;
+    sh64*:Linux:*:*)
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    sh*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    sparc:Linux:*:* | sparc64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    vax:Linux:*:*)
+	echo ${UNAME_MACHINE}-dec-linux-gnu
+	exit ;;
+    x86_64:Linux:*:*)
+	echo x86_64-unknown-linux-gnu
+	exit ;;
+    xtensa:Linux:*:*)
+    	echo xtensa-unknown-linux-gnu
+	exit ;;
+    i*86:Linux:*:*)
+	# The BFD linker knows what the default object file format is, so
+	# first see if it will tell us. cd to the root directory to prevent
+	# problems with other programs or directories called `ld' in the path.
+	# Set LC_ALL=C to ensure ld outputs messages in English.
+	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+			 | sed -ne '/supported targets:/!d
+				    s/[ 	][ 	]*/ /g
+				    s/.*supported targets: *//
+				    s/ .*//
+				    p'`
+        case "$ld_supported_targets" in
+	  elf32-i386)
+		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+		;;
+	  a.out-i386-linux)
+		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+		exit ;;
+	  coff-i386)
+		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+		exit ;;
+	  "")
+		# Either a pre-BFD a.out linker (linux-gnuoldld) or
+		# one that does not give us useful --help.
+		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+		exit ;;
+	esac
+	# Determine whether the default compiler is a.out or elf
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <features.h>
+	#ifdef __ELF__
+	# ifdef __GLIBC__
+	#  if __GLIBC__ >= 2
+	LIBC=gnu
+	#  else
+	LIBC=gnulibc1
+	#  endif
+	# else
+	LIBC=gnulibc1
+	# endif
+	#else
+	#if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
+	LIBC=gnu
+	#else
+	LIBC=gnuaout
+	#endif
+	#endif
+	#ifdef __dietlibc__
+	LIBC=dietlibc
+	#endif
+EOF
+	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+	    /^LIBC/{
+		s: ::g
+		p
+	    }'`"
+	test x"${LIBC}" != x && {
+		echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+		exit
+	}
+	test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
+	;;
+    i*86:DYNIX/ptx:4*:*)
+	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+	# earlier versions are messed up and put the nodename in both
+	# sysname and nodename.
+	echo i386-sequent-sysv4
+	exit ;;
+    i*86:UNIX_SV:4.2MP:2.*)
+        # Unixware is an offshoot of SVR4, but it has its own version
+        # number series starting with 2...
+        # I am not positive that other SVR4 systems won't match this,
+	# I just have to hope.  -- rms.
+        # Use sysv4.2uw... so that sysv4* matches it.
+	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+	exit ;;
+    i*86:OS/2:*:*)
+	# If we were able to find `uname', then EMX Unix compatibility
+	# is probably installed.
+	echo ${UNAME_MACHINE}-pc-os2-emx
+	exit ;;
+    i*86:XTS-300:*:STOP)
+	echo ${UNAME_MACHINE}-unknown-stop
+	exit ;;
+    i*86:atheos:*:*)
+	echo ${UNAME_MACHINE}-unknown-atheos
+	exit ;;
+    i*86:syllable:*:*)
+	echo ${UNAME_MACHINE}-pc-syllable
+	exit ;;
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+	echo i386-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    i*86:*DOS:*:*)
+	echo ${UNAME_MACHINE}-pc-msdosdjgpp
+	exit ;;
+    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+	else
+		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+	fi
+	exit ;;
+    i*86:*:5:[678]*)
+    	# UnixWare 7.x, OpenUNIX and OpenServer 6.
+	case `/bin/uname -X | grep "^Machine"` in
+	    *486*)	     UNAME_MACHINE=i486 ;;
+	    *Pentium)	     UNAME_MACHINE=i586 ;;
+	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+	esac
+	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+	exit ;;
+    i*86:*:3.2:*)
+	if test -f /usr/options/cb.name; then
+		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+	elif /bin/uname -X 2>/dev/null >/dev/null ; then
+		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+			&& UNAME_MACHINE=i586
+		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+	else
+		echo ${UNAME_MACHINE}-pc-sysv32
+	fi
+	exit ;;
+    pc:*:*:*)
+	# Left here for compatibility:
+        # uname -m prints for DJGPP always 'pc', but it prints nothing about
+        # the processor, so we play safe by assuming i386.
+	echo i386-pc-msdosdjgpp
+        exit ;;
+    Intel:Mach:3*:*)
+	echo i386-pc-mach3
+	exit ;;
+    paragon:*:*:*)
+	echo i860-intel-osf1
+	exit ;;
+    i860:*:4.*:*) # i860-SVR4
+	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+	else # Add other i860-SVR4 vendors below as they are discovered.
+	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+	fi
+	exit ;;
+    mini*:CTIX:SYS*5:*)
+	# "miniframe"
+	echo m68010-convergent-sysv
+	exit ;;
+    mc68k:UNIX:SYSTEM5:3.51m)
+	echo m68k-convergent-sysv
+	exit ;;
+    M680?0:D-NIX:5.3:*)
+	echo m68k-diab-dnix
+	exit ;;
+    M68*:*:R3V[5678]*:*)
+	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+	OS_REL=''
+	test -r /etc/.relid \
+	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+          && { echo i486-ncr-sysv4; exit; } ;;
+    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+	echo m68k-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    mc68030:UNIX_System_V:4.*:*)
+	echo m68k-atari-sysv4
+	exit ;;
+    TSUNAMI:LynxOS:2.*:*)
+	echo sparc-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    rs6000:LynxOS:2.*:*)
+	echo rs6000-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+	echo powerpc-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    SM[BE]S:UNIX_SV:*:*)
+	echo mips-dde-sysv${UNAME_RELEASE}
+	exit ;;
+    RM*:ReliantUNIX-*:*:*)
+	echo mips-sni-sysv4
+	exit ;;
+    RM*:SINIX-*:*:*)
+	echo mips-sni-sysv4
+	exit ;;
+    *:SINIX-*:*:*)
+	if uname -p 2>/dev/null >/dev/null ; then
+		UNAME_MACHINE=`(uname -p) 2>/dev/null`
+		echo ${UNAME_MACHINE}-sni-sysv4
+	else
+		echo ns32k-sni-sysv
+	fi
+	exit ;;
+    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+                      # says <Richard.M.Bartel@ccMail.Census.GOV>
+        echo i586-unisys-sysv4
+        exit ;;
+    *:UNIX_System_V:4*:FTX*)
+	# From Gerald Hewes <hewes@openmarket.com>.
+	# How about differentiating between stratus architectures? -djm
+	echo hppa1.1-stratus-sysv4
+	exit ;;
+    *:*:*:FTX*)
+	# From seanf@swdc.stratus.com.
+	echo i860-stratus-sysv4
+	exit ;;
+    i*86:VOS:*:*)
+	# From Paul.Green@stratus.com.
+	echo ${UNAME_MACHINE}-stratus-vos
+	exit ;;
+    *:VOS:*:*)
+	# From Paul.Green@stratus.com.
+	echo hppa1.1-stratus-vos
+	exit ;;
+    mc68*:A/UX:*:*)
+	echo m68k-apple-aux${UNAME_RELEASE}
+	exit ;;
+    news*:NEWS-OS:6*:*)
+	echo mips-sony-newsos6
+	exit ;;
+    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+	if [ -d /usr/nec ]; then
+	        echo mips-nec-sysv${UNAME_RELEASE}
+	else
+	        echo mips-unknown-sysv${UNAME_RELEASE}
+	fi
+        exit ;;
+    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
+	echo powerpc-be-beos
+	exit ;;
+    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
+	echo powerpc-apple-beos
+	exit ;;
+    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
+	echo i586-pc-beos
+	exit ;;
+    SX-4:SUPER-UX:*:*)
+	echo sx4-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-5:SUPER-UX:*:*)
+	echo sx5-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-6:SUPER-UX:*:*)
+	echo sx6-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-7:SUPER-UX:*:*)
+	echo sx7-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8:SUPER-UX:*:*)
+	echo sx8-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8R:SUPER-UX:*:*)
+	echo sx8r-nec-superux${UNAME_RELEASE}
+	exit ;;
+    Power*:Rhapsody:*:*)
+	echo powerpc-apple-rhapsody${UNAME_RELEASE}
+	exit ;;
+    *:Rhapsody:*:*)
+	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+	exit ;;
+    *:Darwin:*:*)
+	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+	case $UNAME_PROCESSOR in
+	    unknown) UNAME_PROCESSOR=powerpc ;;
+	esac
+	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+	exit ;;
+    *:procnto*:*:* | *:QNX:[0123456789]*:*)
+	UNAME_PROCESSOR=`uname -p`
+	if test "$UNAME_PROCESSOR" = "x86"; then
+		UNAME_PROCESSOR=i386
+		UNAME_MACHINE=pc
+	fi
+	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+	exit ;;
+    *:QNX:*:4*)
+	echo i386-pc-qnx
+	exit ;;
+    NSE-?:NONSTOP_KERNEL:*:*)
+	echo nse-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    NSR-?:NONSTOP_KERNEL:*:*)
+	echo nsr-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    *:NonStop-UX:*:*)
+	echo mips-compaq-nonstopux
+	exit ;;
+    BS2000:POSIX*:*:*)
+	echo bs2000-siemens-sysv
+	exit ;;
+    DS/*:UNIX_System_V:*:*)
+	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+	exit ;;
+    *:Plan9:*:*)
+	# "uname -m" is not consistent, so use $cputype instead. 386
+	# is converted to i386 for consistency with other x86
+	# operating systems.
+	if test "$cputype" = "386"; then
+	    UNAME_MACHINE=i386
+	else
+	    UNAME_MACHINE="$cputype"
+	fi
+	echo ${UNAME_MACHINE}-unknown-plan9
+	exit ;;
+    *:TOPS-10:*:*)
+	echo pdp10-unknown-tops10
+	exit ;;
+    *:TENEX:*:*)
+	echo pdp10-unknown-tenex
+	exit ;;
+    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+	echo pdp10-dec-tops20
+	exit ;;
+    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+	echo pdp10-xkl-tops20
+	exit ;;
+    *:TOPS-20:*:*)
+	echo pdp10-unknown-tops20
+	exit ;;
+    *:ITS:*:*)
+	echo pdp10-unknown-its
+	exit ;;
+    SEI:*:*:SEIUX)
+        echo mips-sei-seiux${UNAME_RELEASE}
+	exit ;;
+    *:DragonFly:*:*)
+	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+	exit ;;
+    *:*VMS:*:*)
+    	UNAME_MACHINE=`(uname -p) 2>/dev/null`
+	case "${UNAME_MACHINE}" in
+	    A*) echo alpha-dec-vms ; exit ;;
+	    I*) echo ia64-dec-vms ; exit ;;
+	    V*) echo vax-dec-vms ; exit ;;
+	esac ;;
+    *:XENIX:*:SysV)
+	echo i386-pc-xenix
+	exit ;;
+    i*86:skyos:*:*)
+	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+	exit ;;
+    i*86:rdos:*:*)
+	echo ${UNAME_MACHINE}-pc-rdos
+	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_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
+     I don't know....  */
+  printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+  printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+          "4"
+#else
+	  ""
+#endif
+         ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+  printf ("arm-acorn-riscix\n"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+  printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+  int version;
+  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+  if (version < 4)
+    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+  else
+    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+  exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+  printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+  printf ("ns32k-encore-mach\n"); exit (0);
+#else
+  printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+  printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+  printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+  printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+    struct utsname un;
+
+    uname(&un);
+
+    if (strncmp(un.version, "V2", 2) == 0) {
+	printf ("i386-sequent-ptx2\n"); exit (0);
+    }
+    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+	printf ("i386-sequent-ptx1\n"); exit (0);
+    }
+    printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+#  include <sys/param.h>
+#  if defined (BSD)
+#   if BSD == 43
+      printf ("vax-dec-bsd4.3\n"); exit (0);
+#   else
+#    if BSD == 199006
+      printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#    else
+      printf ("vax-dec-bsd\n"); exit (0);
+#    endif
+#   endif
+#  else
+    printf ("vax-dec-bsd\n"); exit (0);
+#  endif
+# else
+    printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+  printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+  exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+	{ echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+    case `getsysinfo -f cpu_type` in
+    c1*)
+	echo c1-convex-bsd
+	exit ;;
+    c2*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+	exit ;;
+    c34*)
+	echo c34-convex-bsd
+	exit ;;
+    c38*)
+	echo c38-convex-bsd
+	exit ;;
+    c4*)
+	echo c4-convex-bsd
+	exit ;;
+    esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
+and
+  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo               = `(hostinfo) 2>/dev/null`
+/bin/universe          = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch              = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM  = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/parted-1.8.7/build-aux/config.rpath b/parted-1.8.7/build-aux/config.rpath
new file mode 100755
index 0000000..e082db6
--- /dev/null
+++ b/parted-1.8.7/build-aux/config.rpath
@@ -0,0 +1,660 @@
+#! /bin/sh
+# Output a system dependent set of variables, describing how to set the
+# run time search path of shared libraries in an executable.
+#
+#   Copyright 1996-2006 Free Software Foundation, Inc.
+#   Taken from GNU libtool, 2001
+#   Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+#   This file is free software; the Free Software Foundation gives
+#   unlimited permission to copy and/or distribute it, with or without
+#   modifications, as long as this notice is preserved.
+#
+# The first argument passed to this file is the canonical host specification,
+#    CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or
+#    CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
+# should be set by the caller.
+#
+# The set of defined variables is at the end of this script.
+
+# Known limitations:
+# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
+#   than 256 bytes, otherwise the compiler driver will dump core. The only
+#   known workaround is to choose shorter directory names for the build
+#   directory and/or the installation directory.
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+shrext=.so
+
+host="$1"
+host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+# Code taken from libtool.m4's _LT_CC_BASENAME.
+
+for cc_temp in $CC""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
+
+# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
+
+wl=
+if test "$GCC" = yes; then
+  wl='-Wl,'
+else
+  case "$host_os" in
+    aix*)
+      wl='-Wl,'
+      ;;
+    darwin*)
+      case $cc_basename in
+        xlc*)
+          wl='-Wl,'
+          ;;
+      esac
+      ;;
+    mingw* | pw32* | os2*)
+      ;;
+    hpux9* | hpux10* | hpux11*)
+      wl='-Wl,'
+      ;;
+    irix5* | irix6* | nonstopux*)
+      wl='-Wl,'
+      ;;
+    newsos6)
+      ;;
+    linux*)
+      case $cc_basename in
+        icc* | ecc*)
+          wl='-Wl,'
+          ;;
+        pgcc | pgf77 | pgf90)
+          wl='-Wl,'
+          ;;
+        ccc*)
+          wl='-Wl,'
+          ;;
+        como)
+          wl='-lopt='
+          ;;
+        *)
+          case `$CC -V 2>&1 | sed 5q` in
+            *Sun\ C*)
+              wl='-Wl,'
+              ;;
+          esac
+          ;;
+      esac
+      ;;
+    osf3* | osf4* | osf5*)
+      wl='-Wl,'
+      ;;
+    sco3.2v5*)
+      ;;
+    solaris*)
+      wl='-Wl,'
+      ;;
+    sunos4*)
+      wl='-Qoption ld '
+      ;;
+    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+      wl='-Wl,'
+      ;;
+    sysv4*MP*)
+      ;;
+    unicos*)
+      wl='-Wl,'
+      ;;
+    uts4*)
+      ;;
+  esac
+fi
+
+# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS.
+
+hardcode_libdir_flag_spec=
+hardcode_libdir_separator=
+hardcode_direct=no
+hardcode_minus_L=no
+
+case "$host_os" in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+esac
+
+ld_shlibs=yes
+if test "$with_gnu_ld" = yes; then
+  # Set some defaults for GNU ld with shared library support. These
+  # are reset later if shared libraries are not supported. Putting them
+  # here allows them to be overridden if necessary.
+  # Unlike libtool, we use -rpath here, not --rpath, since the documented
+  # option of GNU ld is called -rpath, not --rpath.
+  hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+  case "$host_os" in
+    aix3* | aix4* | aix5*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+        ld_shlibs=no
+      fi
+      ;;
+    amigaos*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we cannot use
+      # them.
+      ld_shlibs=no
+      ;;
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+        :
+      else
+        ld_shlibs=no
+      fi
+      ;;
+    cygwin* | mingw* | pw32*)
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec='-L$libdir'
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        :
+      else
+        ld_shlibs=no
+      fi
+      ;;
+    interix3*)
+      hardcode_direct=no
+      hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+      ;;
+    linux*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+        :
+      else
+        ld_shlibs=no
+      fi
+      ;;
+    netbsd*)
+      ;;
+    solaris*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+        ld_shlibs=no
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+        :
+      else
+        ld_shlibs=no
+      fi
+      ;;
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+          ld_shlibs=no
+          ;;
+        *)
+          if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+            hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+          else
+            ld_shlibs=no
+          fi
+          ;;
+      esac
+      ;;
+    sunos4*)
+      hardcode_direct=yes
+      ;;
+    *)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+        :
+      else
+        ld_shlibs=no
+      fi
+      ;;
+  esac
+  if test "$ld_shlibs" = no; then
+    hardcode_libdir_flag_spec=
+  fi
+else
+  case "$host_os" in
+    aix3*)
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L=yes
+      if test "$GCC" = yes; then
+        # Neither direct hardcoding nor static linking is supported with a
+        # broken collect2.
+        hardcode_direct=unsupported
+      fi
+      ;;
+    aix4* | aix5*)
+      if test "$host_cpu" = ia64; then
+        # On IA64, the linker does run time linking by default, so we don't
+        # have to do anything special.
+        aix_use_runtimelinking=no
+      else
+        aix_use_runtimelinking=no
+        # Test if we are trying to use run time linking or normal
+        # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+        # need to do runtime linking.
+        case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+          for ld_flag in $LDFLAGS; do
+            if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+              aix_use_runtimelinking=yes
+              break
+            fi
+          done
+          ;;
+        esac
+      fi
+      hardcode_direct=yes
+      hardcode_libdir_separator=':'
+      if test "$GCC" = yes; then
+        case $host_os in aix4.[012]|aix4.[012].*)
+          collect2name=`${CC} -print-prog-name=collect2`
+          if test -f "$collect2name" && \
+            strings "$collect2name" | grep resolve_lib_name >/dev/null
+          then
+            # We have reworked collect2
+            hardcode_direct=yes
+          else
+            # We have old collect2
+            hardcode_direct=unsupported
+            hardcode_minus_L=yes
+            hardcode_libdir_flag_spec='-L$libdir'
+            hardcode_libdir_separator=
+          fi
+          ;;
+        esac
+      fi
+      # Begin _LT_AC_SYS_LIBPATH_AIX.
+      echo 'int main () { return 0; }' > conftest.c
+      ${CC} ${LDFLAGS} conftest.c -o conftest
+      aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+      if test -z "$aix_libpath"; then
+        aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+      fi
+      if test -z "$aix_libpath"; then
+        aix_libpath="/usr/lib:/lib"
+      fi
+      rm -f conftest.c conftest
+      # End _LT_AC_SYS_LIBPATH_AIX.
+      if test "$aix_use_runtimelinking" = yes; then
+        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+      else
+        if test "$host_cpu" = ia64; then
+          hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+        else
+          hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+        fi
+      fi
+      ;;
+    amigaos*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      # see comment about different semantics on the GNU ld section
+      ld_shlibs=no
+      ;;
+    bsdi[45]*)
+      ;;
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec=' '
+      libext=lib
+      ;;
+    darwin* | rhapsody*)
+      hardcode_direct=no
+      if test "$GCC" = yes ; then
+        :
+      else
+        case $cc_basename in
+          xlc*)
+            ;;
+          *)
+            ld_shlibs=no
+            ;;
+        esac
+      fi
+      ;;
+    dgux*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      ;;
+    freebsd1*)
+      ld_shlibs=no
+      ;;
+    freebsd2.2*)
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      ;;
+    freebsd2*)
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      ;;
+    freebsd* | kfreebsd*-gnu | dragonfly*)
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      ;;
+    hpux9*)
+      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator=:
+      hardcode_direct=yes
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      hardcode_minus_L=yes
+      ;;
+    hpux10*)
+      if test "$with_gnu_ld" = no; then
+        hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+        hardcode_libdir_separator=:
+        hardcode_direct=yes
+        # hardcode_minus_L: Not really in the search PATH,
+        # but as the default location of the library.
+        hardcode_minus_L=yes
+      fi
+      ;;
+    hpux11*)
+      if test "$with_gnu_ld" = no; then
+        hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+        hardcode_libdir_separator=:
+        case $host_cpu in
+          hppa*64*|ia64*)
+            hardcode_direct=no
+            ;;
+          *)
+            hardcode_direct=yes
+            # hardcode_minus_L: Not really in the search PATH,
+            # but as the default location of the library.
+            hardcode_minus_L=yes
+            ;;
+        esac
+      fi
+      ;;
+    irix5* | irix6* | nonstopux*)
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
+    netbsd*)
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      ;;
+    newsos6)
+      hardcode_direct=yes
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
+    openbsd*)
+      hardcode_direct=yes
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+        hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+      else
+        case "$host_os" in
+          openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+            hardcode_libdir_flag_spec='-R$libdir'
+            ;;
+          *)
+            hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+            ;;
+        esac
+      fi
+      ;;
+    os2*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      ;;
+    osf3*)
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
+    osf4* | osf5*)
+      if test "$GCC" = yes; then
+        hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      else
+        # Both cc and cxx compiler support -rpath directly
+        hardcode_libdir_flag_spec='-rpath $libdir'
+      fi
+      hardcode_libdir_separator=:
+      ;;
+    solaris*)
+      hardcode_libdir_flag_spec='-R$libdir'
+      ;;
+    sunos4*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      ;;
+    sysv4)
+      case $host_vendor in
+        sni)
+          hardcode_direct=yes # is this really true???
+          ;;
+        siemens)
+          hardcode_direct=no
+          ;;
+        motorola)
+          hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+          ;;
+      esac
+      ;;
+    sysv4.3*)
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+        ld_shlibs=yes
+      fi
+      ;;
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*)
+      ;;
+    sysv5* | sco3.2v5* | sco5v6*)
+      hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+      hardcode_libdir_separator=':'
+      ;;
+    uts4*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      ;;
+    *)
+      ld_shlibs=no
+      ;;
+  esac
+fi
+
+# Check dynamic linker characteristics
+# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER.
+# Unlike libtool.m4, here we don't care about _all_ names of the library, but
+# only about the one the linker finds when passed -lNAME. This is the last
+# element of library_names_spec in libtool.m4, or possibly two of them if the
+# linker has special search rules.
+library_names_spec=      # the last element of library_names_spec in libtool.m4
+libname_spec='lib$name'
+case "$host_os" in
+  aix3*)
+    library_names_spec='$libname.a'
+    ;;
+  aix4* | aix5*)
+    library_names_spec='$libname$shrext'
+    ;;
+  amigaos*)
+    library_names_spec='$libname.a'
+    ;;
+  beos*)
+    library_names_spec='$libname$shrext'
+    ;;
+  bsdi[45]*)
+    library_names_spec='$libname$shrext'
+    ;;
+  cygwin* | mingw* | pw32*)
+    shrext=.dll
+    library_names_spec='$libname.dll.a $libname.lib'
+    ;;
+  darwin* | rhapsody*)
+    shrext=.dylib
+    library_names_spec='$libname$shrext'
+    ;;
+  dgux*)
+    library_names_spec='$libname$shrext'
+    ;;
+  freebsd1*)
+    ;;
+  kfreebsd*-gnu)
+    library_names_spec='$libname$shrext'
+    ;;
+  freebsd* | dragonfly*)
+    case "$host_os" in
+      freebsd[123]*)
+        library_names_spec='$libname$shrext$versuffix' ;;
+      *)
+        library_names_spec='$libname$shrext' ;;
+    esac
+    ;;
+  gnu*)
+    library_names_spec='$libname$shrext'
+    ;;
+  hpux9* | hpux10* | hpux11*)
+    case $host_cpu in
+      ia64*)
+        shrext=.so
+        ;;
+      hppa*64*)
+        shrext=.sl
+        ;;
+      *)
+        shrext=.sl
+        ;;
+    esac
+    library_names_spec='$libname$shrext'
+    ;;
+  interix3*)
+    library_names_spec='$libname$shrext'
+    ;;
+  irix5* | irix6* | nonstopux*)
+    library_names_spec='$libname$shrext'
+    case "$host_os" in
+      irix5* | nonstopux*)
+        libsuff= shlibsuff=
+        ;;
+      *)
+        case $LD in
+          *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
+          *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
+          *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
+          *) libsuff= shlibsuff= ;;
+        esac
+        ;;
+    esac
+    ;;
+  linux*oldld* | linux*aout* | linux*coff*)
+    ;;
+  linux*)
+    library_names_spec='$libname$shrext'
+    ;;
+  knetbsd*-gnu)
+    library_names_spec='$libname$shrext'
+    ;;
+  netbsd*)
+    library_names_spec='$libname$shrext'
+    ;;
+  newsos6)
+    library_names_spec='$libname$shrext'
+    ;;
+  nto-qnx*)
+    library_names_spec='$libname$shrext'
+    ;;
+  openbsd*)
+    library_names_spec='$libname$shrext$versuffix'
+    ;;
+  os2*)
+    libname_spec='$name'
+    shrext=.dll
+    library_names_spec='$libname.a'
+    ;;
+  osf3* | osf4* | osf5*)
+    library_names_spec='$libname$shrext'
+    ;;
+  solaris*)
+    library_names_spec='$libname$shrext'
+    ;;
+  sunos4*)
+    library_names_spec='$libname$shrext$versuffix'
+    ;;
+  sysv4 | sysv4.3*)
+    library_names_spec='$libname$shrext'
+    ;;
+  sysv4*MP*)
+    library_names_spec='$libname$shrext'
+    ;;
+  sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+    library_names_spec='$libname$shrext'
+    ;;
+  uts4*)
+    library_names_spec='$libname$shrext'
+    ;;
+esac
+
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
+shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
+escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+
+LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
+
+# How to pass a linker flag through the compiler.
+wl="$escaped_wl"
+
+# Static library suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally "so").
+shlibext="$shlibext"
+
+# Format of library name prefix.
+libname_spec="$escaped_libname_spec"
+
+# Library names that the linker finds when passed -lNAME.
+library_names_spec="$escaped_library_names_spec"
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator="$hardcode_libdir_separator"
+
+# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct="$hardcode_direct"
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L="$hardcode_minus_L"
+
+EOF
diff --git a/parted-1.8.7/build-aux/config.sub b/parted-1.8.7/build-aux/config.sub
new file mode 100755
index 0000000..c060f44
--- /dev/null
+++ b/parted-1.8.7/build-aux/config.sub
@@ -0,0 +1,1626 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
+#   Inc.
+
+timestamp='2007-04-29'
+
+# 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
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# 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.
+
+
+# Please send patches to <config-patches@gnu.org>.  Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support.  The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+       $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+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."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help"
+       exit 1 ;;
+
+    *local*)
+       # First pass through any local machine types.
+       echo $1
+       exit ;;
+
+    * )
+       break ;;
+  esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+    exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+    exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
+  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+  storm-chaos* | os2-emx* | rtmk-nova*)
+    os=-$maybe_os
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+    ;;
+  *)
+    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+    if [ $basic_machine != $1 ]
+    then os=`echo $1 | sed 's/.*-/-/'`
+    else os=; fi
+    ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work.  We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+	-sun*os*)
+		# Prevent following clause from handling this invalid input.
+		;;
+	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+	-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)
+		os=
+		basic_machine=$1
+		;;
+	-sim | -cisco | -oki | -wec | -winbond)
+		os=
+		basic_machine=$1
+		;;
+	-scout)
+		;;
+	-wrs)
+		os=-vxworks
+		basic_machine=$1
+		;;
+	-chorusos*)
+		os=-chorusos
+		basic_machine=$1
+		;;
+ 	-chorusrdb)
+ 		os=-chorusrdb
+		basic_machine=$1
+ 		;;
+	-hiux*)
+		os=-hiuxwe2
+		;;
+	-sco6)
+		os=-sco5v6
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco5)
+		os=-sco3.2v5
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco4)
+		os=-sco3.2v4
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2.[4-9]*)
+		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2v[4-9]*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco5v6*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco*)
+		os=-sco3.2v2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-udk*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-isc)
+		os=-isc2.2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-clix*)
+		basic_machine=clipper-intergraph
+		;;
+	-isc*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-lynx*)
+		os=-lynxos
+		;;
+	-ptx*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+		;;
+	-windowsnt*)
+		os=`echo $os | sed -e 's/windowsnt/winnt/'`
+		;;
+	-psos*)
+		os=-psos
+		;;
+	-mint | -mint[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+	# Recognize the basic CPU types without company name.
+	# Some are omitted here because they have special meanings below.
+	1750a | 580 \
+	| a29k \
+	| 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 \
+	| bfin \
+	| c4x | clipper \
+	| d10v | d30v | dlx | dsp16xx \
+	| fido | fr30 | frv \
+	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+	| i370 | i860 | i960 | ia64 \
+	| ip2k | iq2000 \
+	| m32c | m32r | m32rle | m68000 | m68k | m88k \
+	| maxq | mb | microblaze | mcore | mep \
+	| mips | mipsbe | mipseb | mipsel | mipsle \
+	| mips16 \
+	| mips64 | mips64el \
+	| mips64vr | mips64vrel \
+	| mips64orion | mips64orionel \
+	| mips64vr4100 | mips64vr4100el \
+	| mips64vr4300 | mips64vr4300el \
+	| mips64vr5000 | mips64vr5000el \
+	| mips64vr5900 | mips64vr5900el \
+	| mipsisa32 | mipsisa32el \
+	| mipsisa32r2 | mipsisa32r2el \
+	| mipsisa64 | mipsisa64el \
+	| mipsisa64r2 | mipsisa64r2el \
+	| mipsisa64sb1 | mipsisa64sb1el \
+	| mipsisa64sr71k | mipsisa64sr71kel \
+	| mipstx39 | mipstx39el \
+	| mn10200 | mn10300 \
+	| mt \
+	| msp430 \
+	| nios | nios2 \
+	| ns16k | ns32k \
+	| or32 \
+	| pdp10 | pdp11 | pj | pjl \
+	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+	| pyramid \
+	| score \
+	| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+	| sh64 | sh64le \
+	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+	| spu | strongarm \
+	| tahoe | thumb | tic4x | tic80 | tron \
+	| v850 | v850e \
+	| we32k \
+	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+	| z8k)
+		basic_machine=$basic_machine-unknown
+		;;
+	m6811 | m68hc11 | m6812 | m68hc12)
+		# Motorola 68HC11/12.
+		basic_machine=$basic_machine-unknown
+		os=-none
+		;;
+	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+		;;
+	ms1)
+		basic_machine=mt-unknown
+		;;
+
+	# We use `pc' rather than `unknown'
+	# because (1) that's what they normally are, and
+	# (2) the word "unknown" tends to confuse beginning users.
+	i*86 | x86_64)
+	  basic_machine=$basic_machine-pc
+	  ;;
+	# Object if more than one company name word.
+	*-*-*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+	# Recognize the basic CPU types with company name.
+	580-* \
+	| a29k-* \
+	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
+	| avr-* | avr32-* \
+	| bfin-* | bs2000-* \
+	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+	| clipper-* | craynv-* | cydra-* \
+	| d10v-* | d30v-* | dlx-* \
+	| elxsi-* \
+	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+	| h8300-* | h8500-* \
+	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+	| i*86-* | i860-* | i960-* | ia64-* \
+	| ip2k-* | iq2000-* \
+	| m32c-* | m32r-* | m32rle-* \
+	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* \
+	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+	| mips16-* \
+	| mips64-* | mips64el-* \
+	| mips64vr-* | mips64vrel-* \
+	| mips64orion-* | mips64orionel-* \
+	| mips64vr4100-* | mips64vr4100el-* \
+	| mips64vr4300-* | mips64vr4300el-* \
+	| mips64vr5000-* | mips64vr5000el-* \
+	| mips64vr5900-* | mips64vr5900el-* \
+	| mipsisa32-* | mipsisa32el-* \
+	| mipsisa32r2-* | mipsisa32r2el-* \
+	| mipsisa64-* | mipsisa64el-* \
+	| mipsisa64r2-* | mipsisa64r2el-* \
+	| mipsisa64sb1-* | mipsisa64sb1el-* \
+	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+	| mipstx39-* | mipstx39el-* \
+	| mmix-* \
+	| mt-* \
+	| msp430-* \
+	| nios-* | nios2-* \
+	| none-* | np1-* | ns16k-* | ns32k-* \
+	| orion-* \
+	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+	| pyramid-* \
+	| romp-* | rs6000-* \
+	| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+	| sparclite-* \
+	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
+	| tahoe-* | thumb-* \
+	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+	| tron-* \
+	| v850-* | v850e-* | vax-* \
+	| we32k-* \
+	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+	| xstormy16-* | xtensa-* \
+	| ymp-* \
+	| z8k-*)
+		;;
+	# Recognize the various machine names and aliases which stand
+	# for a CPU type and a company and sometimes even an OS.
+	386bsd)
+		basic_machine=i386-unknown
+		os=-bsd
+		;;
+	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+		basic_machine=m68000-att
+		;;
+	3b*)
+		basic_machine=we32k-att
+		;;
+	a29khif)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+    	abacus)
+		basic_machine=abacus-unknown
+		;;
+	adobe68k)
+		basic_machine=m68010-adobe
+		os=-scout
+		;;
+	alliant | fx80)
+		basic_machine=fx80-alliant
+		;;
+	altos | altos3068)
+		basic_machine=m68k-altos
+		;;
+	am29k)
+		basic_machine=a29k-none
+		os=-bsd
+		;;
+	amd64)
+		basic_machine=x86_64-pc
+		;;
+	amd64-*)
+		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	amdahl)
+		basic_machine=580-amdahl
+		os=-sysv
+		;;
+	amiga | amiga-*)
+		basic_machine=m68k-unknown
+		;;
+	amigaos | amigados)
+		basic_machine=m68k-unknown
+		os=-amigaos
+		;;
+	amigaunix | amix)
+		basic_machine=m68k-unknown
+		os=-sysv4
+		;;
+	apollo68)
+		basic_machine=m68k-apollo
+		os=-sysv
+		;;
+	apollo68bsd)
+		basic_machine=m68k-apollo
+		os=-bsd
+		;;
+	aux)
+		basic_machine=m68k-apple
+		os=-aux
+		;;
+	balance)
+		basic_machine=ns32k-sequent
+		os=-dynix
+		;;
+	c90)
+		basic_machine=c90-cray
+		os=-unicos
+		;;
+	convex-c1)
+		basic_machine=c1-convex
+		os=-bsd
+		;;
+	convex-c2)
+		basic_machine=c2-convex
+		os=-bsd
+		;;
+	convex-c32)
+		basic_machine=c32-convex
+		os=-bsd
+		;;
+	convex-c34)
+		basic_machine=c34-convex
+		os=-bsd
+		;;
+	convex-c38)
+		basic_machine=c38-convex
+		os=-bsd
+		;;
+	cray | j90)
+		basic_machine=j90-cray
+		os=-unicos
+		;;
+	craynv)
+		basic_machine=craynv-cray
+		os=-unicosmp
+		;;
+	cr16c)
+		basic_machine=cr16c-unknown
+		os=-elf
+		;;
+	crds | unos)
+		basic_machine=m68k-crds
+		;;
+	crisv32 | crisv32-* | etraxfs*)
+		basic_machine=crisv32-axis
+		;;
+	cris | cris-* | etrax*)
+		basic_machine=cris-axis
+		;;
+	crx)
+		basic_machine=crx-unknown
+		os=-elf
+		;;
+	da30 | da30-*)
+		basic_machine=m68k-da30
+		;;
+	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+		basic_machine=mips-dec
+		;;
+	decsystem10* | dec10*)
+		basic_machine=pdp10-dec
+		os=-tops10
+		;;
+	decsystem20* | dec20*)
+		basic_machine=pdp10-dec
+		os=-tops20
+		;;
+	delta | 3300 | motorola-3300 | motorola-delta \
+	      | 3300-motorola | delta-motorola)
+		basic_machine=m68k-motorola
+		;;
+	delta88)
+		basic_machine=m88k-motorola
+		os=-sysv3
+		;;
+	djgpp)
+		basic_machine=i586-pc
+		os=-msdosdjgpp
+		;;
+	dpx20 | dpx20-*)
+		basic_machine=rs6000-bull
+		os=-bosx
+		;;
+	dpx2* | dpx2*-bull)
+		basic_machine=m68k-bull
+		os=-sysv3
+		;;
+	ebmon29k)
+		basic_machine=a29k-amd
+		os=-ebmon
+		;;
+	elxsi)
+		basic_machine=elxsi-elxsi
+		os=-bsd
+		;;
+	encore | umax | mmax)
+		basic_machine=ns32k-encore
+		;;
+	es1800 | OSE68k | ose68k | ose | OSE)
+		basic_machine=m68k-ericsson
+		os=-ose
+		;;
+	fx2800)
+		basic_machine=i860-alliant
+		;;
+	genix)
+		basic_machine=ns32k-ns
+		;;
+	gmicro)
+		basic_machine=tron-gmicro
+		os=-sysv
+		;;
+	go32)
+		basic_machine=i386-pc
+		os=-go32
+		;;
+	h3050r* | hiux*)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	h8300hms)
+		basic_machine=h8300-hitachi
+		os=-hms
+		;;
+	h8300xray)
+		basic_machine=h8300-hitachi
+		os=-xray
+		;;
+	h8500hms)
+		basic_machine=h8500-hitachi
+		os=-hms
+		;;
+	harris)
+		basic_machine=m88k-harris
+		os=-sysv3
+		;;
+	hp300-*)
+		basic_machine=m68k-hp
+		;;
+	hp300bsd)
+		basic_machine=m68k-hp
+		os=-bsd
+		;;
+	hp300hpux)
+		basic_machine=m68k-hp
+		os=-hpux
+		;;
+	hp3k9[0-9][0-9] | hp9[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k2[0-9][0-9] | hp9k31[0-9])
+		basic_machine=m68000-hp
+		;;
+	hp9k3[2-9][0-9])
+		basic_machine=m68k-hp
+		;;
+	hp9k6[0-9][0-9] | hp6[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k7[0-79][0-9] | hp7[0-79][0-9])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k78[0-9] | hp78[0-9])
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][13679] | hp8[0-9][13679])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][0-9] | hp8[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hppa-next)
+		os=-nextstep3
+		;;
+	hppaosf)
+		basic_machine=hppa1.1-hp
+		os=-osf
+		;;
+	hppro)
+		basic_machine=hppa1.1-hp
+		os=-proelf
+		;;
+	i370-ibm* | ibm*)
+		basic_machine=i370-ibm
+		;;
+# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
+	i*86v32)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv32
+		;;
+	i*86v4*)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv4
+		;;
+	i*86v)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv
+		;;
+	i*86sol2)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-solaris2
+		;;
+	i386mach)
+		basic_machine=i386-mach
+		os=-mach
+		;;
+	i386-vsta | vsta)
+		basic_machine=i386-unknown
+		os=-vsta
+		;;
+	iris | iris4d)
+		basic_machine=mips-sgi
+		case $os in
+		    -irix*)
+			;;
+		    *)
+			os=-irix4
+			;;
+		esac
+		;;
+	isi68 | isi)
+		basic_machine=m68k-isi
+		os=-sysv
+		;;
+	m88k-omron*)
+		basic_machine=m88k-omron
+		;;
+	magnum | m3230)
+		basic_machine=mips-mips
+		os=-sysv
+		;;
+	merlin)
+		basic_machine=ns32k-utek
+		os=-sysv
+		;;
+	mingw32)
+		basic_machine=i386-pc
+		os=-mingw32
+		;;
+	mingw32ce)
+		basic_machine=arm-unknown
+		os=-mingw32ce
+		;;
+	miniframe)
+		basic_machine=m68000-convergent
+		;;
+	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+	mips3*-*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+		;;
+	mips3*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+		;;
+	monitor)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	morphos)
+		basic_machine=powerpc-unknown
+		os=-morphos
+		;;
+	msdos)
+		basic_machine=i386-pc
+		os=-msdos
+		;;
+	ms1-*)
+		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+		;;
+	mvs)
+		basic_machine=i370-ibm
+		os=-mvs
+		;;
+	ncr3000)
+		basic_machine=i486-ncr
+		os=-sysv4
+		;;
+	netbsd386)
+		basic_machine=i386-unknown
+		os=-netbsd
+		;;
+	netwinder)
+		basic_machine=armv4l-rebel
+		os=-linux
+		;;
+	news | news700 | news800 | news900)
+		basic_machine=m68k-sony
+		os=-newsos
+		;;
+	news1000)
+		basic_machine=m68030-sony
+		os=-newsos
+		;;
+	news-3600 | risc-news)
+		basic_machine=mips-sony
+		os=-newsos
+		;;
+	necv70)
+		basic_machine=v70-nec
+		os=-sysv
+		;;
+	next | m*-next )
+		basic_machine=m68k-next
+		case $os in
+		    -nextstep* )
+			;;
+		    -ns2*)
+		      os=-nextstep2
+			;;
+		    *)
+		      os=-nextstep3
+			;;
+		esac
+		;;
+	nh3000)
+		basic_machine=m68k-harris
+		os=-cxux
+		;;
+	nh[45]000)
+		basic_machine=m88k-harris
+		os=-cxux
+		;;
+	nindy960)
+		basic_machine=i960-intel
+		os=-nindy
+		;;
+	mon960)
+		basic_machine=i960-intel
+		os=-mon960
+		;;
+	nonstopux)
+		basic_machine=mips-compaq
+		os=-nonstopux
+		;;
+	np1)
+		basic_machine=np1-gould
+		;;
+	nsr-tandem)
+		basic_machine=nsr-tandem
+		;;
+	op50n-* | op60c-*)
+		basic_machine=hppa1.1-oki
+		os=-proelf
+		;;
+	openrisc | openrisc-*)
+		basic_machine=or32-unknown
+		;;
+	os400)
+		basic_machine=powerpc-ibm
+		os=-os400
+		;;
+	OSE68000 | ose68000)
+		basic_machine=m68000-ericsson
+		os=-ose
+		;;
+	os68k)
+		basic_machine=m68k-none
+		os=-os68k
+		;;
+	pa-hitachi)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	paragon)
+		basic_machine=i860-intel
+		os=-osf
+		;;
+	pbd)
+		basic_machine=sparc-tti
+		;;
+	pbb)
+		basic_machine=m68k-tti
+		;;
+	pc532 | pc532-*)
+		basic_machine=ns32k-pc532
+		;;
+	pc98)
+		basic_machine=i386-pc
+		;;
+	pc98-*)
+		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentium | p5 | k5 | k6 | nexgen | viac3)
+		basic_machine=i586-pc
+		;;
+	pentiumpro | p6 | 6x86 | athlon | athlon_*)
+		basic_machine=i686-pc
+		;;
+	pentiumii | pentium2 | pentiumiii | pentium3)
+		basic_machine=i686-pc
+		;;
+	pentium4)
+		basic_machine=i786-pc
+		;;
+	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumpro-* | p6-* | 6x86-* | athlon-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentium4-*)
+		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pn)
+		basic_machine=pn-gould
+		;;
+	power)	basic_machine=power-ibm
+		;;
+	ppc)	basic_machine=powerpc-unknown
+		;;
+	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppcle | powerpclittle | ppc-le | powerpc-little)
+		basic_machine=powerpcle-unknown
+		;;
+	ppcle-* | powerpclittle-*)
+		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64)	basic_machine=powerpc64-unknown
+		;;
+	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+		basic_machine=powerpc64le-unknown
+		;;
+	ppc64le-* | powerpc64little-*)
+		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ps2)
+		basic_machine=i386-ibm
+		;;
+	pw32)
+		basic_machine=i586-unknown
+		os=-pw32
+		;;
+	rdos)
+		basic_machine=i386-pc
+		os=-rdos
+		;;
+	rom68k)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	rm[46]00)
+		basic_machine=mips-siemens
+		;;
+	rtpc | rtpc-*)
+		basic_machine=romp-ibm
+		;;
+	s390 | s390-*)
+		basic_machine=s390-ibm
+		;;
+	s390x | s390x-*)
+		basic_machine=s390x-ibm
+		;;
+	sa29200)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	sb1)
+		basic_machine=mipsisa64sb1-unknown
+		;;
+	sb1el)
+		basic_machine=mipsisa64sb1el-unknown
+		;;
+	sde)
+		basic_machine=mipsisa32-sde
+		os=-elf
+		;;
+	sei)
+		basic_machine=mips-sei
+		os=-seiux
+		;;
+	sequent)
+		basic_machine=i386-sequent
+		;;
+	sh)
+		basic_machine=sh-hitachi
+		os=-hms
+		;;
+	sh5el)
+		basic_machine=sh5le-unknown
+		;;
+	sh64)
+		basic_machine=sh64-unknown
+		;;
+	sparclite-wrs | simso-wrs)
+		basic_machine=sparclite-wrs
+		os=-vxworks
+		;;
+	sps7)
+		basic_machine=m68k-bull
+		os=-sysv2
+		;;
+	spur)
+		basic_machine=spur-unknown
+		;;
+	st2000)
+		basic_machine=m68k-tandem
+		;;
+	stratus)
+		basic_machine=i860-stratus
+		os=-sysv4
+		;;
+	sun2)
+		basic_machine=m68000-sun
+		;;
+	sun2os3)
+		basic_machine=m68000-sun
+		os=-sunos3
+		;;
+	sun2os4)
+		basic_machine=m68000-sun
+		os=-sunos4
+		;;
+	sun3os3)
+		basic_machine=m68k-sun
+		os=-sunos3
+		;;
+	sun3os4)
+		basic_machine=m68k-sun
+		os=-sunos4
+		;;
+	sun4os3)
+		basic_machine=sparc-sun
+		os=-sunos3
+		;;
+	sun4os4)
+		basic_machine=sparc-sun
+		os=-sunos4
+		;;
+	sun4sol2)
+		basic_machine=sparc-sun
+		os=-solaris2
+		;;
+	sun3 | sun3-*)
+		basic_machine=m68k-sun
+		;;
+	sun4)
+		basic_machine=sparc-sun
+		;;
+	sun386 | sun386i | roadrunner)
+		basic_machine=i386-sun
+		;;
+	sv1)
+		basic_machine=sv1-cray
+		os=-unicos
+		;;
+	symmetry)
+		basic_machine=i386-sequent
+		os=-dynix
+		;;
+	t3e)
+		basic_machine=alphaev5-cray
+		os=-unicos
+		;;
+	t90)
+		basic_machine=t90-cray
+		os=-unicos
+		;;
+	tic54x | c54x*)
+		basic_machine=tic54x-unknown
+		os=-coff
+		;;
+	tic55x | c55x*)
+		basic_machine=tic55x-unknown
+		os=-coff
+		;;
+	tic6x | c6x*)
+		basic_machine=tic6x-unknown
+		os=-coff
+		;;
+	tx39)
+		basic_machine=mipstx39-unknown
+		;;
+	tx39el)
+		basic_machine=mipstx39el-unknown
+		;;
+	toad1)
+		basic_machine=pdp10-xkl
+		os=-tops20
+		;;
+	tower | tower-32)
+		basic_machine=m68k-ncr
+		;;
+	tpf)
+		basic_machine=s390x-ibm
+		os=-tpf
+		;;
+	udi29k)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	ultra3)
+		basic_machine=a29k-nyu
+		os=-sym1
+		;;
+	v810 | necv810)
+		basic_machine=v810-nec
+		os=-none
+		;;
+	vaxv)
+		basic_machine=vax-dec
+		os=-sysv
+		;;
+	vms)
+		basic_machine=vax-dec
+		os=-vms
+		;;
+	vpp*|vx|vx-*)
+		basic_machine=f301-fujitsu
+		;;
+	vxworks960)
+		basic_machine=i960-wrs
+		os=-vxworks
+		;;
+	vxworks68)
+		basic_machine=m68k-wrs
+		os=-vxworks
+		;;
+	vxworks29k)
+		basic_machine=a29k-wrs
+		os=-vxworks
+		;;
+	w65*)
+		basic_machine=w65-wdc
+		os=-none
+		;;
+	w89k-*)
+		basic_machine=hppa1.1-winbond
+		os=-proelf
+		;;
+	xbox)
+		basic_machine=i686-pc
+		os=-mingw32
+		;;
+	xps | xps100)
+		basic_machine=xps100-honeywell
+		;;
+	ymp)
+		basic_machine=ymp-cray
+		os=-unicos
+		;;
+	z8k-*-coff)
+		basic_machine=z8k-unknown
+		os=-sim
+		;;
+	none)
+		basic_machine=none-none
+		os=-none
+		;;
+
+# Here we handle the default manufacturer of certain CPU types.  It is in
+# some cases the only manufacturer, in others, it is the most popular.
+	w89k)
+		basic_machine=hppa1.1-winbond
+		;;
+	op50n)
+		basic_machine=hppa1.1-oki
+		;;
+	op60c)
+		basic_machine=hppa1.1-oki
+		;;
+	romp)
+		basic_machine=romp-ibm
+		;;
+	mmix)
+		basic_machine=mmix-knuth
+		;;
+	rs6000)
+		basic_machine=rs6000-ibm
+		;;
+	vax)
+		basic_machine=vax-dec
+		;;
+	pdp10)
+		# there are many clones, so DEC is not a safe bet
+		basic_machine=pdp10-unknown
+		;;
+	pdp11)
+		basic_machine=pdp11-dec
+		;;
+	we32k)
+		basic_machine=we32k-att
+		;;
+	sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
+		basic_machine=sh-unknown
+		;;
+	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+		basic_machine=sparc-sun
+		;;
+	cydra)
+		basic_machine=cydra-cydrome
+		;;
+	orion)
+		basic_machine=orion-highlevel
+		;;
+	orion105)
+		basic_machine=clipper-highlevel
+		;;
+	mac | mpw | mac-mpw)
+		basic_machine=m68k-apple
+		;;
+	pmac | pmac-mpw)
+		basic_machine=powerpc-apple
+		;;
+	*-unknown)
+		# Make sure to match an already-canonicalized machine name.
+		;;
+	*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+	*-digital*)
+		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+		;;
+	*-commodore*)
+		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+		;;
+	*)
+		;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+        # First match some system type aliases
+        # that might get confused with valid system types.
+	# -solaris* is a basic system type, with this one exception.
+	-solaris1 | -solaris1.*)
+		os=`echo $os | sed -e 's|solaris1|sunos4|'`
+		;;
+	-solaris)
+		os=-solaris2
+		;;
+	-svr4*)
+		os=-sysv4
+		;;
+	-unixware*)
+		os=-sysv4.2uw
+		;;
+	-gnu/linux*)
+		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+		;;
+	# First accept the basic system types.
+	# The portable systems comes first.
+	# Each alternative MUST END IN A *, to match a version number.
+	# -sysv* is not here because it comes later, after sysvr4.
+	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+	      | -aos* \
+	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+	      | -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* \
+	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+	      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
+	      | -uxpv* | -beos* | -mpeix* | -udk* \
+	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
+	# Remember, each alternative MUST END IN *, to match a version number.
+		;;
+	-qnx*)
+		case $basic_machine in
+		    x86-* | i*86-*)
+			;;
+		    *)
+			os=-nto$os
+			;;
+		esac
+		;;
+	-nto-qnx*)
+		;;
+	-nto*)
+		os=`echo $os | sed -e 's|nto|nto-qnx|'`
+		;;
+	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+		;;
+	-mac*)
+		os=`echo $os | sed -e 's|mac|macos|'`
+		;;
+	-linux-dietlibc)
+		os=-linux-dietlibc
+		;;
+	-linux*)
+		os=`echo $os | sed -e 's|linux|linux-gnu|'`
+		;;
+	-sunos5*)
+		os=`echo $os | sed -e 's|sunos5|solaris2|'`
+		;;
+	-sunos6*)
+		os=`echo $os | sed -e 's|sunos6|solaris3|'`
+		;;
+	-opened*)
+		os=-openedition
+		;;
+        -os400*)
+		os=-os400
+		;;
+	-wince*)
+		os=-wince
+		;;
+	-osfrose*)
+		os=-osfrose
+		;;
+	-osf*)
+		os=-osf
+		;;
+	-utek*)
+		os=-bsd
+		;;
+	-dynix*)
+		os=-bsd
+		;;
+	-acis*)
+		os=-aos
+		;;
+	-atheos*)
+		os=-atheos
+		;;
+	-syllable*)
+		os=-syllable
+		;;
+	-386bsd)
+		os=-bsd
+		;;
+	-ctix* | -uts*)
+		os=-sysv
+		;;
+	-nova*)
+		os=-rtmk-nova
+		;;
+	-ns2 )
+		os=-nextstep2
+		;;
+	-nsk*)
+		os=-nsk
+		;;
+	# Preserve the version number of sinix5.
+	-sinix5.*)
+		os=`echo $os | sed -e 's|sinix|sysv|'`
+		;;
+	-sinix*)
+		os=-sysv4
+		;;
+        -tpf*)
+		os=-tpf
+		;;
+	-triton*)
+		os=-sysv3
+		;;
+	-oss*)
+		os=-sysv3
+		;;
+	-svr4)
+		os=-sysv4
+		;;
+	-svr3)
+		os=-sysv3
+		;;
+	-sysvr4)
+		os=-sysv4
+		;;
+	# This must come after -sysvr4.
+	-sysv*)
+		;;
+	-ose*)
+		os=-ose
+		;;
+	-es1800*)
+		os=-ose
+		;;
+	-xenix)
+		os=-xenix
+		;;
+	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+		os=-mint
+		;;
+	-aros*)
+		os=-aros
+		;;
+	-kaos*)
+		os=-kaos
+		;;
+	-zvmoe)
+		os=-zvmoe
+		;;
+	-none)
+		;;
+	*)
+		# Get rid of the `-' at the beginning of $os.
+		os=`echo $os | sed 's/[^-]*-//'`
+		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+		exit 1
+		;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system.  Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+        score-*)
+		os=-elf
+		;;
+        spu-*)
+		os=-elf
+		;;
+	*-acorn)
+		os=-riscix1.2
+		;;
+	arm*-rebel)
+		os=-linux
+		;;
+	arm*-semi)
+		os=-aout
+		;;
+        c4x-* | tic4x-*)
+        	os=-coff
+		;;
+	# This must come before the *-dec entry.
+	pdp10-*)
+		os=-tops20
+		;;
+	pdp11-*)
+		os=-none
+		;;
+	*-dec | vax-*)
+		os=-ultrix4.2
+		;;
+	m68*-apollo)
+		os=-domain
+		;;
+	i386-sun)
+		os=-sunos4.0.2
+		;;
+	m68000-sun)
+		os=-sunos3
+		# This also exists in the configure program, but was not the
+		# default.
+		# os=-sunos4
+		;;
+	m68*-cisco)
+		os=-aout
+		;;
+        mep-*)
+		os=-elf
+		;;
+	mips*-cisco)
+		os=-elf
+		;;
+	mips*-*)
+		os=-elf
+		;;
+	or32-*)
+		os=-coff
+		;;
+	*-tti)	# must be before sparc entry or we get the wrong os.
+		os=-sysv3
+		;;
+	sparc-* | *-sun)
+		os=-sunos4.1.1
+		;;
+	*-be)
+		os=-beos
+		;;
+	*-haiku)
+		os=-haiku
+		;;
+	*-ibm)
+		os=-aix
+		;;
+    	*-knuth)
+		os=-mmixware
+		;;
+	*-wec)
+		os=-proelf
+		;;
+	*-winbond)
+		os=-proelf
+		;;
+	*-oki)
+		os=-proelf
+		;;
+	*-hp)
+		os=-hpux
+		;;
+	*-hitachi)
+		os=-hiux
+		;;
+	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+		os=-sysv
+		;;
+	*-cbm)
+		os=-amigaos
+		;;
+	*-dg)
+		os=-dgux
+		;;
+	*-dolphin)
+		os=-sysv3
+		;;
+	m68k-ccur)
+		os=-rtu
+		;;
+	m88k-omron*)
+		os=-luna
+		;;
+	*-next )
+		os=-nextstep
+		;;
+	*-sequent)
+		os=-ptx
+		;;
+	*-crds)
+		os=-unos
+		;;
+	*-ns)
+		os=-genix
+		;;
+	i370-*)
+		os=-mvs
+		;;
+	*-next)
+		os=-nextstep3
+		;;
+	*-gould)
+		os=-sysv
+		;;
+	*-highlevel)
+		os=-bsd
+		;;
+	*-encore)
+		os=-bsd
+		;;
+	*-sgi)
+		os=-irix
+		;;
+	*-siemens)
+		os=-sysv4
+		;;
+	*-masscomp)
+		os=-rtu
+		;;
+	f30[01]-fujitsu | f700-fujitsu)
+		os=-uxpv
+		;;
+	*-rom68k)
+		os=-coff
+		;;
+	*-*bug)
+		os=-coff
+		;;
+	*-apple)
+		os=-macos
+		;;
+	*-atari*)
+		os=-mint
+		;;
+	*)
+		os=-none
+		;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer.  We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+	*-unknown)
+		case $os in
+			-riscix*)
+				vendor=acorn
+				;;
+			-sunos*)
+				vendor=sun
+				;;
+			-aix*)
+				vendor=ibm
+				;;
+			-beos*)
+				vendor=be
+				;;
+			-hpux*)
+				vendor=hp
+				;;
+			-mpeix*)
+				vendor=hp
+				;;
+			-hiux*)
+				vendor=hitachi
+				;;
+			-unos*)
+				vendor=crds
+				;;
+			-dgux*)
+				vendor=dg
+				;;
+			-luna*)
+				vendor=omron
+				;;
+			-genix*)
+				vendor=ns
+				;;
+			-mvs* | -opened*)
+				vendor=ibm
+				;;
+			-os400*)
+				vendor=ibm
+				;;
+			-ptx*)
+				vendor=sequent
+				;;
+			-tpf*)
+				vendor=ibm
+				;;
+			-vxsim* | -vxworks* | -windiss*)
+				vendor=wrs
+				;;
+			-aux*)
+				vendor=apple
+				;;
+			-hms*)
+				vendor=hitachi
+				;;
+			-mpw* | -macos*)
+				vendor=apple
+				;;
+			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+				vendor=atari
+				;;
+			-vos*)
+				vendor=stratus
+				;;
+		esac
+		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+		;;
+esac
+
+echo $basic_machine$os
+exit
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/parted-1.8.7/build-aux/depcomp b/parted-1.8.7/build-aux/depcomp
new file mode 100755
index 0000000..e5f9736
--- /dev/null
+++ b/parted-1.8.7/build-aux/depcomp
@@ -0,0 +1,589 @@
+#! /bin/sh
+# depcomp - compile a program generating dependencies as side-effects
+
+scriptversion=2007-03-29.01
+
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software
+# Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+
+# 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 Alexandre Oliva <oliva@dcc.unicamp.br>.
+
+case $1 in
+  '')
+     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
+     exit 1;
+     ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: depcomp [--help] [--version] PROGRAM [ARGS]
+
+Run PROGRAMS ARGS to compile a file, generating dependencies
+as side-effects.
+
+Environment variables:
+  depmode     Dependency tracking mode.
+  source      Source file read by `PROGRAMS ARGS'.
+  object      Object file output by `PROGRAMS ARGS'.
+  DEPDIR      directory where to store dependencies.
+  depfile     Dependency file to output.
+  tmpdepfile  Temporary file to use when outputing dependencies.
+  libtool     Whether libtool is used (yes/no).
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "depcomp $scriptversion"
+    exit $?
+    ;;
+esac
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+  echo "depcomp: Variables source, object and depmode must be set" 1>&2
+  exit 1
+fi
+
+# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
+depfile=${depfile-`echo "$object" |
+  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Some modes work just like other modes, but use different flags.  We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write.  Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+  # HP compiler uses -M and no extra arg.
+  gccflag=-M
+  depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+   # This is just like dashmstdout with a different argument.
+   dashmflag=-xM
+   depmode=dashmstdout
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
+## it if -MD -MP comes after the -MF stuff.  Hmm.
+## Unfortunately, FreeBSD c89 acceptance of flags depends upon
+## the command line argument order; so add the flags where they
+## appear in depend2.am.  Note that the slowdown incurred here
+## affects only configure: in makefiles, %FASTDEP% shortcuts this.
+  for arg
+  do
+    case $arg in
+    -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
+    *)  set fnord "$@" "$arg" ;;
+    esac
+    shift # fnord
+    shift # $arg
+  done
+  "$@"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  mv "$tmpdepfile" "$depfile"
+  ;;
+
+gcc)
+## There are various ways to get dependency output from gcc.  Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+##   up in a subdir.  Having to rename by hand is ugly.
+##   (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+##   -MM, not -M (despite what the docs say).
+## - Using -M directly means running the compiler twice (even worse
+##   than renaming).
+  if test -z "$gccflag"; then
+    gccflag=-MD,
+  fi
+  "$@" -Wp,"$gccflag$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
+## The second -e expression handles DOS-style file names with drive letters.
+  sed -e 's/^[^:]*: / /' \
+      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the `deleted header file' problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header).  We avoid this by adding
+## dummy dependencies for each header file.  Too bad gcc doesn't do
+## this for us directly.
+  tr ' ' '
+' < "$tmpdepfile" |
+## Some versions of gcc put a space before the `:'.  On the theory
+## that the space means something, we add a space to the output as
+## well.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+hp)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+sgi)
+  if test "$libtool" = yes; then
+    "$@" "-Wp,-MDupdate,$tmpdepfile"
+  else
+    "$@" -MDupdate "$tmpdepfile"
+  fi
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+
+  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
+    echo "$object : \\" > "$depfile"
+
+    # Clip off the initial element (the dependent).  Don't try to be
+    # clever and replace this with sed code, as IRIX sed won't handle
+    # lines with more than a fixed number of characters (4096 in
+    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
+    # the IRIX cc adds comments like `#:fec' to the end of the
+    # dependency line.
+    tr ' ' '
+' < "$tmpdepfile" \
+    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
+    tr '
+' ' ' >> $depfile
+    echo >> $depfile
+
+    # The second pass generates a dummy entry for each header file.
+    tr ' ' '
+' < "$tmpdepfile" \
+   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+   >> $depfile
+  else
+    # The sourcefile does not contain any dependencies, so just
+    # store a dummy comment line, to avoid errors with the Makefile
+    # "include basename.Plo" scheme.
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+aix)
+  # The C for AIX Compiler uses -M and outputs the dependencies
+  # in a .u file.  In older versions, this file always lives in the
+  # current directory.  Also, the AIX compiler puts `$object:' at the
+  # start of each line; $object doesn't have directory information.
+  # Version 6 uses the directory in both cases.
+  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+  test "x$dir" = "x$object" && dir=
+  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  if test "$libtool" = yes; then
+    tmpdepfile1=$dir$base.u
+    tmpdepfile2=$base.u
+    tmpdepfile3=$dir.libs/$base.u
+    "$@" -Wc,-M
+  else
+    tmpdepfile1=$dir$base.u
+    tmpdepfile2=$dir$base.u
+    tmpdepfile3=$dir$base.u
+    "$@" -M
+  fi
+  stat=$?
+
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+    exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  if test -f "$tmpdepfile"; then
+    # Each line is of the form `foo.o: dependent.h'.
+    # Do two passes, one to just change these to
+    # `$object: dependent.h' and one to simply `dependent.h:'.
+    sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+    # That's a tab and a space in the [].
+    sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+  else
+    # The sourcefile does not contain any dependencies, so just
+    # store a dummy comment line, to avoid errors with the Makefile
+    # "include basename.Plo" scheme.
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+icc)
+  # Intel's C compiler understands `-MD -MF file'.  However on
+  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+  # ICC 7.0 will fill foo.d with something like
+  #    foo.o: sub/foo.c
+  #    foo.o: sub/foo.h
+  # which is wrong.  We want:
+  #    sub/foo.o: sub/foo.c
+  #    sub/foo.o: sub/foo.h
+  #    sub/foo.c:
+  #    sub/foo.h:
+  # ICC 7.1 will output
+  #    foo.o: sub/foo.c sub/foo.h
+  # and will wrap long lines using \ :
+  #    foo.o: sub/foo.c ... \
+  #     sub/foo.h ... \
+  #     ...
+
+  "$@" -MD -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  # Each line is of the form `foo.o: dependent.h',
+  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
+  # Do two passes, one to just change these to
+  # `$object: dependent.h' and one to simply `dependent.h:'.
+  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
+    sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+hp2)
+  # The "hp" stanza above does not work with aCC (C++) and HP's ia64
+  # compilers, which have integrated preprocessors.  The correct option
+  # to use with these is +Maked; it writes dependencies to a file named
+  # 'foo.d', which lands next to the object file, wherever that
+  # happens to be.
+  # Much of this is similar to the tru64 case; see comments there.
+  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+  test "x$dir" = "x$object" && dir=
+  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  if test "$libtool" = yes; then
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir.libs/$base.d
+    "$@" -Wc,+Maked
+  else
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir$base.d
+    "$@" +Maked
+  fi
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+     rm -f "$tmpdepfile1" "$tmpdepfile2"
+     exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  if test -f "$tmpdepfile"; then
+    sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
+    # Add `dependent.h:' lines.
+    sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile"
+  else
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile" "$tmpdepfile2"
+  ;;
+
+tru64)
+   # The Tru64 compiler uses -MD to generate dependencies as a side
+   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
+   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+   # dependencies in `foo.d' instead, so we check for that too.
+   # Subdirectories are respected.
+   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+   test "x$dir" = "x$object" && dir=
+   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+
+   if test "$libtool" = yes; then
+      # With Tru64 cc, shared objects can also be used to make a
+      # static library.  This mechanism is used in libtool 1.4 series to
+      # handle both shared and static libraries in a single compilation.
+      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
+      #
+      # With libtool 1.5 this exception was removed, and libtool now
+      # generates 2 separate objects for the 2 libraries.  These two
+      # compilations output dependencies in $dir.libs/$base.o.d and
+      # in $dir$base.o.d.  We have to check for both files, because
+      # one of the two compilations can be disabled.  We should prefer
+      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+      # automatically cleaned when .libs/ is deleted, while ignoring
+      # the former would cause a distcleancheck panic.
+      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
+      tmpdepfile2=$dir$base.o.d          # libtool 1.5
+      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
+      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
+      "$@" -Wc,-MD
+   else
+      tmpdepfile1=$dir$base.o.d
+      tmpdepfile2=$dir$base.d
+      tmpdepfile3=$dir$base.d
+      tmpdepfile4=$dir$base.d
+      "$@" -MD
+   fi
+
+   stat=$?
+   if test $stat -eq 0; then :
+   else
+      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+      exit $stat
+   fi
+
+   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+   do
+     test -f "$tmpdepfile" && break
+   done
+   if test -f "$tmpdepfile"; then
+      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+      # That's a tab and a space in the [].
+      sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+   else
+      echo "#dummy" > "$depfile"
+   fi
+   rm -f "$tmpdepfile"
+   ;;
+
+#nosideeffect)
+  # This comment above is used by automake to tell side-effect
+  # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout, regardless of -o.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test $1 != '--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove `-o $object'.
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
+      ;;
+    esac
+  done
+
+  test -z "$dashmflag" && dashmflag=-M
+  # Require at least two characters before searching for `:'
+  # in the target name.  This is to cope with DOS-style filenames:
+  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
+  "$@" $dashmflag |
+    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
+  rm -f "$depfile"
+  cat < "$tmpdepfile" > "$depfile"
+  tr ' ' '
+' < "$tmpdepfile" | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+dashXmstdout)
+  # This case only exists to satisfy depend.m4.  It is never actually
+  # run, as this mode is specially recognized in the preamble.
+  exit 1
+  ;;
+
+makedepend)
+  "$@" || exit $?
+  # Remove any Libtool call
+  if test "$libtool" = yes; then
+    while test $1 != '--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+  # X makedepend
+  shift
+  cleared=no
+  for arg in "$@"; do
+    case $cleared in
+    no)
+      set ""; shift
+      cleared=yes ;;
+    esac
+    case "$arg" in
+    -D*|-I*)
+      set fnord "$@" "$arg"; shift ;;
+    # Strip any option that makedepend may not understand.  Remove
+    # the object too, otherwise makedepend will parse it as a source file.
+    -*|$object)
+      ;;
+    *)
+      set fnord "$@" "$arg"; shift ;;
+    esac
+  done
+  obj_suffix="`echo $object | sed 's/^.*\././'`"
+  touch "$tmpdepfile"
+  ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
+  rm -f "$depfile"
+  cat < "$tmpdepfile" > "$depfile"
+  sed '1,2d' "$tmpdepfile" | tr ' ' '
+' | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile" "$tmpdepfile".bak
+  ;;
+
+cpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test $1 != '--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove `-o $object'.
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
+      ;;
+    esac
+  done
+
+  "$@" -E |
+    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
+    sed '$ s: \\$::' > "$tmpdepfile"
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  cat < "$tmpdepfile" >> "$depfile"
+  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvisualcpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout, regardless of -o,
+  # because we must use -o when running libtool.
+  "$@" || exit $?
+  IFS=" "
+  for arg
+  do
+    case "$arg" in
+    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
+	set fnord "$@"
+	shift
+	shift
+	;;
+    *)
+	set fnord "$@" "$arg"
+	shift
+	shift
+	;;
+    esac
+  done
+  "$@" -E |
+  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
+  echo "	" >> "$depfile"
+  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+none)
+  exec "$@"
+  ;;
+
+*)
+  echo "Unknown depmode $depmode" 1>&2
+  exit 1
+  ;;
+esac
+
+exit 0
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/parted-1.8.7/build-aux/install-sh b/parted-1.8.7/build-aux/install-sh
new file mode 100755
index 0000000..a5897de
--- /dev/null
+++ b/parted-1.8.7/build-aux/install-sh
@@ -0,0 +1,519 @@
+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2006-12-25.00
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+
+nl='
+'
+IFS=" ""	$nl"
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit=${DOITPROG-}
+if test -z "$doit"; then
+  doit_exec=exec
+else
+  doit_exec=$doit
+fi
+
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_glob='?'
+initialize_posix_glob='
+  test "$posix_glob" != "?" || {
+    if (set -f) 2>/dev/null; then
+      posix_glob=
+    else
+      posix_glob=:
+    fi
+  }
+'
+
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
+
+chgrpcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
+rmcmd="$rmprog -f"
+stripcmd=
+
+src=
+dst=
+dir_arg=
+dst_arg=
+
+copy_on_change=false
+no_target_directory=
+
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+   or: $0 [OPTION]... SRCFILES... DIRECTORY
+   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+   or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+     --help     display this help and exit.
+     --version  display version info and exit.
+
+  -c            (ignored)
+  -C            install only if different (preserve the last data modification time)
+  -d            create directories instead of installing files.
+  -g GROUP      $chgrpprog installed files to GROUP.
+  -m MODE       $chmodprog installed files to MODE.
+  -o USER       $chownprog installed files to USER.
+  -s            $stripprog installed files.
+  -t DIRECTORY  install into DIRECTORY.
+  -T            report an error if DSTFILE is a directory.
+
+Environment variables override the default commands:
+  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+  RMPROG STRIPPROG
+"
+
+while test $# -ne 0; do
+  case $1 in
+    -c) ;;
+
+    -C) copy_on_change=true;;
+
+    -d) dir_arg=true;;
+
+    -g) chgrpcmd="$chgrpprog $2"
+	shift;;
+
+    --help) echo "$usage"; exit $?;;
+
+    -m) mode=$2
+	case $mode in
+	  *' '* | *'	'* | *'
+'*	  | *'*'* | *'?'* | *'['*)
+	    echo "$0: invalid mode: $mode" >&2
+	    exit 1;;
+	esac
+	shift;;
+
+    -o) chowncmd="$chownprog $2"
+	shift;;
+
+    -s) stripcmd=$stripprog;;
+
+    -t) dst_arg=$2
+	shift;;
+
+    -T) no_target_directory=true;;
+
+    --version) echo "$0 $scriptversion"; exit $?;;
+
+    --)	shift
+	break;;
+
+    -*)	echo "$0: invalid option: $1" >&2
+	exit 1;;
+
+    *)  break;;
+  esac
+  shift
+done
+
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+  # When -d is used, all remaining arguments are directories to create.
+  # When -t is used, the destination is already specified.
+  # Otherwise, the last argument is the destination.  Remove it from $@.
+  for arg
+  do
+    if test -n "$dst_arg"; then
+      # $@ is not empty: it contains at least $arg.
+      set fnord "$@" "$dst_arg"
+      shift # fnord
+    fi
+    shift # arg
+    dst_arg=$arg
+  done
+fi
+
+if test $# -eq 0; then
+  if test -z "$dir_arg"; then
+    echo "$0: no input file specified." >&2
+    exit 1
+  fi
+  # It's OK to call `install-sh -d' without argument.
+  # This can happen when creating conditional directories.
+  exit 0
+fi
+
+if test -z "$dir_arg"; then
+  trap '(exit $?); exit' 1 2 13 15
+
+  # Set umask so as not to create temps with too-generous modes.
+  # However, 'strip' requires both read and write access to temps.
+  case $mode in
+    # Optimize common cases.
+    *644) cp_umask=133;;
+    *755) cp_umask=22;;
+
+    *[0-7])
+      if test -z "$stripcmd"; then
+	u_plus_rw=
+      else
+	u_plus_rw='% 200'
+      fi
+      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+    *)
+      if test -z "$stripcmd"; then
+	u_plus_rw=
+      else
+	u_plus_rw=,u+rw
+      fi
+      cp_umask=$mode$u_plus_rw;;
+  esac
+fi
+
+for src
+do
+  # Protect names starting with `-'.
+  case $src in
+    -*) src=./$src;;
+  esac
+
+  if test -n "$dir_arg"; then
+    dst=$src
+    dstdir=$dst
+    test -d "$dstdir"
+    dstdir_status=$?
+  else
+
+    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+    # might cause directories to be created, which would be especially bad
+    # if $src (and thus $dsttmp) contains '*'.
+    if test ! -f "$src" && test ! -d "$src"; then
+      echo "$0: $src does not exist." >&2
+      exit 1
+    fi
+
+    if test -z "$dst_arg"; then
+      echo "$0: no destination specified." >&2
+      exit 1
+    fi
+
+    dst=$dst_arg
+    # Protect names starting with `-'.
+    case $dst in
+      -*) dst=./$dst;;
+    esac
+
+    # If destination is a directory, append the input filename; won't work
+    # if double slashes aren't ignored.
+    if test -d "$dst"; then
+      if test -n "$no_target_directory"; then
+	echo "$0: $dst_arg: Is a directory" >&2
+	exit 1
+      fi
+      dstdir=$dst
+      dst=$dstdir/`basename "$src"`
+      dstdir_status=0
+    else
+      # Prefer dirname, but fall back on a substitute if dirname fails.
+      dstdir=`
+	(dirname "$dst") 2>/dev/null ||
+	expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	     X"$dst" : 'X\(//\)[^/]' \| \
+	     X"$dst" : 'X\(//\)$' \| \
+	     X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+	echo X"$dst" |
+	    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+		   s//\1/
+		   q
+		 }
+		 /^X\(\/\/\)[^/].*/{
+		   s//\1/
+		   q
+		 }
+		 /^X\(\/\/\)$/{
+		   s//\1/
+		   q
+		 }
+		 /^X\(\/\).*/{
+		   s//\1/
+		   q
+		 }
+		 s/.*/./; q'
+      `
+
+      test -d "$dstdir"
+      dstdir_status=$?
+    fi
+  fi
+
+  obsolete_mkdir_used=false
+
+  if test $dstdir_status != 0; then
+    case $posix_mkdir in
+      '')
+	# Create intermediate dirs using mode 755 as modified by the umask.
+	# This is like FreeBSD 'install' as of 1997-10-28.
+	umask=`umask`
+	case $stripcmd.$umask in
+	  # Optimize common cases.
+	  *[2367][2367]) mkdir_umask=$umask;;
+	  .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+	  *[0-7])
+	    mkdir_umask=`expr $umask + 22 \
+	      - $umask % 100 % 40 + $umask % 20 \
+	      - $umask % 10 % 4 + $umask % 2
+	    `;;
+	  *) mkdir_umask=$umask,go-w;;
+	esac
+
+	# With -d, create the new directory with the user-specified mode.
+	# Otherwise, rely on $mkdir_umask.
+	if test -n "$dir_arg"; then
+	  mkdir_mode=-m$mode
+	else
+	  mkdir_mode=
+	fi
+
+	posix_mkdir=false
+	case $umask in
+	  *[123567][0-7][0-7])
+	    # POSIX mkdir -p sets u+wx bits regardless of umask, which
+	    # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+	    ;;
+	  *)
+	    tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+	    trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+	    if (umask $mkdir_umask &&
+		exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+	    then
+	      if test -z "$dir_arg" || {
+		   # Check for POSIX incompatibilities with -m.
+		   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+		   # other-writeable bit of parent directory when it shouldn't.
+		   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+		   ls_ld_tmpdir=`ls -ld "$tmpdir"`
+		   case $ls_ld_tmpdir in
+		     d????-?r-*) different_mode=700;;
+		     d????-?--*) different_mode=755;;
+		     *) false;;
+		   esac &&
+		   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+		     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+		     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+		   }
+		 }
+	      then posix_mkdir=:
+	      fi
+	      rmdir "$tmpdir/d" "$tmpdir"
+	    else
+	      # Remove any dirs left behind by ancient mkdir implementations.
+	      rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+	    fi
+	    trap '' 0;;
+	esac;;
+    esac
+
+    if
+      $posix_mkdir && (
+	umask $mkdir_umask &&
+	$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+      )
+    then :
+    else
+
+      # The umask is ridiculous, or mkdir does not conform to POSIX,
+      # or it failed possibly due to a race condition.  Create the
+      # directory the slow way, step by step, checking for races as we go.
+
+      case $dstdir in
+	/*) prefix='/';;
+	-*) prefix='./';;
+	*)  prefix='';;
+      esac
+
+      eval "$initialize_posix_glob"
+
+      oIFS=$IFS
+      IFS=/
+      $posix_glob set -f
+      set fnord $dstdir
+      shift
+      $posix_glob set +f
+      IFS=$oIFS
+
+      prefixes=
+
+      for d
+      do
+	test -z "$d" && continue
+
+	prefix=$prefix$d
+	if test -d "$prefix"; then
+	  prefixes=
+	else
+	  if $posix_mkdir; then
+	    (umask=$mkdir_umask &&
+	     $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+	    # Don't fail if two instances are running concurrently.
+	    test -d "$prefix" || exit 1
+	  else
+	    case $prefix in
+	      *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+	      *) qprefix=$prefix;;
+	    esac
+	    prefixes="$prefixes '$qprefix'"
+	  fi
+	fi
+	prefix=$prefix/
+      done
+
+      if test -n "$prefixes"; then
+	# Don't fail if two instances are running concurrently.
+	(umask $mkdir_umask &&
+	 eval "\$doit_exec \$mkdirprog $prefixes") ||
+	  test -d "$dstdir" || exit 1
+	obsolete_mkdir_used=true
+      fi
+    fi
+  fi
+
+  if test -n "$dir_arg"; then
+    { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+    { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+      test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
+  else
+
+    # Make a couple of temp file names in the proper directory.
+    dsttmp=$dstdir/_inst.$$_
+    rmtmp=$dstdir/_rm.$$_
+
+    # Trap to clean up those temp files at exit.
+    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+
+    # Copy the file name to the temp name.
+    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+
+    # and set any options; do chmod last to preserve setuid bits.
+    #
+    # If any of these fail, we abort the whole thing.  If we want to
+    # ignore errors from any of these, just make sure not to ignore
+    # errors from the above "$doit $cpprog $src $dsttmp" command.
+    #
+    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+    # If -C, don't bother to copy if it wouldn't change the file.
+    if $copy_on_change &&
+       old=`LC_ALL=C ls -dlL "$dst"	2>/dev/null` &&
+       new=`LC_ALL=C ls -dlL "$dsttmp"	2>/dev/null` &&
+
+       eval "$initialize_posix_glob" &&
+       $posix_glob set -f &&
+       set X $old && old=:$2:$4:$5:$6 &&
+       set X $new && new=:$2:$4:$5:$6 &&
+       $posix_glob set +f &&
+
+       test "$old" = "$new" &&
+       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+    then
+      rm -f "$dsttmp"
+    else
+      # Rename the file to the real destination.
+      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+      # The rename failed, perhaps because mv can't rename something else
+      # to itself, or perhaps because mv is so ancient that it does not
+      # support -f.
+      {
+	# Now remove or move aside any old file at destination location.
+	# We try this two ways since rm can't unlink itself on some
+	# systems and the destination file might be busy for other
+	# reasons.  In this case, the final cleanup might fail but the new
+	# file should still install successfully.
+	{
+	  test ! -f "$dst" ||
+	  $doit $rmcmd -f "$dst" 2>/dev/null ||
+	  { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+	    { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+	  } ||
+	  { echo "$0: cannot unlink or rename $dst" >&2
+	    (exit 1); exit 1
+	  }
+	} &&
+
+	# Now rename the file to the real destination.
+	$doit $mvcmd "$dsttmp" "$dst"
+      }
+    fi || exit 1
+
+    trap '' 0
+  fi
+done
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/parted-1.8.7/build-aux/ltmain.sh b/parted-1.8.7/build-aux/ltmain.sh
new file mode 100644
index 0000000..d70dc75
--- /dev/null
+++ b/parted-1.8.7/build-aux/ltmain.sh
@@ -0,0 +1,6909 @@
+# ltmain.sh - Provide generalized library-building support services.
+# NOTE: Changing this file will not affect anything until you rerun configure.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# 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.
+
+basename="s,^.*/,,g"
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
+
+# The name of this program:
+progname=`echo "$progpath" | $SED $basename`
+modename="$progname"
+
+# Global variables:
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+
+PROGRAM=ltmain.sh
+PACKAGE=libtool
+VERSION=1.5.22
+TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)"
+
+# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+
+# Check that we have a working $echo.
+if test "X$1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X$1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
+  # Yippee, $echo works!
+  :
+else
+  # Restart under the correct shell, and then maybe $echo will work.
+  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<EOF
+$*
+EOF
+  exit $EXIT_SUCCESS
+fi
+
+default_mode=
+help="Try \`$progname --help' for more information."
+magic="%%%MAGIC variable%%%"
+mkdir="mkdir"
+mv="mv -f"
+rm="rm -f"
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed="${SED}"' -e 1s/^X//'
+sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+  SP2NL='tr \040 \012'
+  NL2SP='tr \015\012 \040\040'
+  ;;
+ *) # EBCDIC based system
+  SP2NL='tr \100 \n'
+  NL2SP='tr \r\n \100\100'
+  ;;
+esac
+
+# NLS nuisances.
+# Only set LANG and LC_ALL to C if already set.
+# These must not be set unconditionally because not all systems understand
+# e.g. LANG=C (notably SCO).
+# We save the old values to restore during execute mode.
+for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+do
+  eval "if test \"\${$lt_var+set}\" = set; then
+         save_$lt_var=\$$lt_var
+         $lt_var=C
+         export $lt_var
+       fi"
+done
+
+# Make sure IFS has a sensible default
+lt_nl='
+'
+IFS=" 	$lt_nl"
+
+if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+  $echo "$modename: not configured to build any kind of library" 1>&2
+  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
+  exit $EXIT_FAILURE
+fi
+
+# Global variables.
+mode=$default_mode
+nonopt=
+prev=
+prevopt=
+run=
+show="$echo"
+show_help=
+execute_dlfiles=
+duplicate_deps=no
+preserve_args=
+lo2o="s/\\.lo\$/.${objext}/"
+o2lo="s/\\.${objext}\$/.lo/"
+extracted_archives=
+extracted_serial=0
+
+#####################################
+# Shell function definitions:
+# This seems to be the best place for them
+
+# func_mktempdir [string]
+# Make a temporary directory that won't clash with other running
+# libtool processes, and avoids race conditions if possible.  If
+# given, STRING is the basename for that directory.
+func_mktempdir ()
+{
+    my_template="${TMPDIR-/tmp}/${1-$progname}"
+
+    if test "$run" = ":"; then
+      # Return a directory name, but don't create it in dry-run mode
+      my_tmpdir="${my_template}-$$"
+    else
+
+      # If mktemp works, use that first and foremost
+      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
+
+      if test ! -d "$my_tmpdir"; then
+	# Failing that, at least try and use $RANDOM to avoid a race
+	my_tmpdir="${my_template}-${RANDOM-0}$$"
+
+	save_mktempdir_umask=`umask`
+	umask 0077
+	$mkdir "$my_tmpdir"
+	umask $save_mktempdir_umask
+      fi
+
+      # If we're not in dry-run mode, bomb out on failure
+      test -d "$my_tmpdir" || {
+        $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
+	exit $EXIT_FAILURE
+      }
+    fi
+
+    $echo "X$my_tmpdir" | $Xsed
+}
+
+
+# func_win32_libid arg
+# return the library type of file 'arg'
+#
+# Need a lot of goo to handle *both* DLLs and import libs
+# Has to be a shell function in order to 'eat' the argument
+# that is supplied when $file_magic_command is called.
+func_win32_libid ()
+{
+  win32_libid_type="unknown"
+  win32_fileres=`file -L $1 2>/dev/null`
+  case $win32_fileres in
+  *ar\ archive\ import\ library*) # definitely import
+    win32_libid_type="x86 archive import"
+    ;;
+  *ar\ archive*) # could be an import, or static
+    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
+      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
+      win32_nmres=`eval $NM -f posix -A $1 | \
+	$SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'`
+      case $win32_nmres in
+      import*)  win32_libid_type="x86 archive import";;
+      *)        win32_libid_type="x86 archive static";;
+      esac
+    fi
+    ;;
+  *DLL*)
+    win32_libid_type="x86 DLL"
+    ;;
+  *executable*) # but shell scripts are "executable" too...
+    case $win32_fileres in
+    *MS\ Windows\ PE\ Intel*)
+      win32_libid_type="x86 DLL"
+      ;;
+    esac
+    ;;
+  esac
+  $echo $win32_libid_type
+}
+
+
+# func_infer_tag arg
+# Infer tagged configuration to use if any are available and
+# if one wasn't chosen via the "--tag" command line option.
+# Only attempt this if the compiler in the base compile
+# command doesn't match the default compiler.
+# arg is usually of the form 'gcc ...'
+func_infer_tag ()
+{
+    if test -n "$available_tags" && test -z "$tagname"; then
+      CC_quoted=
+      for arg in $CC; do
+	case $arg in
+	  *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	  arg="\"$arg\""
+	  ;;
+	esac
+	CC_quoted="$CC_quoted $arg"
+      done
+      case $@ in
+      # Blanks in the command may have been stripped by the calling shell,
+      # but not from the CC environment variable when configure was run.
+      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
+      # Blanks at the start of $base_compile will cause this to fail
+      # if we don't check for them as well.
+      *)
+	for z in $available_tags; do
+	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
+	    # Evaluate the configuration.
+	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
+	    CC_quoted=
+	    for arg in $CC; do
+	    # Double-quote args containing other shell metacharacters.
+	    case $arg in
+	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	      arg="\"$arg\""
+	      ;;
+	    esac
+	    CC_quoted="$CC_quoted $arg"
+	  done
+	    case "$@ " in
+	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
+	      # The compiler in the base compile command matches
+	      # the one in the tagged configuration.
+	      # Assume this is the tagged configuration we want.
+	      tagname=$z
+	      break
+	      ;;
+	    esac
+	  fi
+	done
+	# If $tagname still isn't set, then no tagged configuration
+	# was found and let the user know that the "--tag" command
+	# line option must be used.
+	if test -z "$tagname"; then
+	  $echo "$modename: unable to infer tagged configuration"
+	  $echo "$modename: specify a tag with \`--tag'" 1>&2
+	  exit $EXIT_FAILURE
+#        else
+#          $echo "$modename: using $tagname tagged configuration"
+	fi
+	;;
+      esac
+    fi
+}
+
+
+# func_extract_an_archive dir oldlib
+func_extract_an_archive ()
+{
+    f_ex_an_ar_dir="$1"; shift
+    f_ex_an_ar_oldlib="$1"
+
+    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
+    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
+    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
+     :
+    else
+      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
+      exit $EXIT_FAILURE
+    fi
+}
+
+# func_extract_archives gentop oldlib ...
+func_extract_archives ()
+{
+    my_gentop="$1"; shift
+    my_oldlibs=${1+"$@"}
+    my_oldobjs=""
+    my_xlib=""
+    my_xabs=""
+    my_xdir=""
+    my_status=""
+
+    $show "${rm}r $my_gentop"
+    $run ${rm}r "$my_gentop"
+    $show "$mkdir $my_gentop"
+    $run $mkdir "$my_gentop"
+    my_status=$?
+    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
+      exit $my_status
+    fi
+
+    for my_xlib in $my_oldlibs; do
+      # Extract the objects.
+      case $my_xlib in
+	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
+	*) my_xabs=`pwd`"/$my_xlib" ;;
+      esac
+      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
+      my_xlib_u=$my_xlib
+      while :; do
+        case " $extracted_archives " in
+       *" $my_xlib_u "*)
+         extracted_serial=`expr $extracted_serial + 1`
+         my_xlib_u=lt$extracted_serial-$my_xlib ;;
+       *) break ;;
+       esac
+      done
+      extracted_archives="$extracted_archives $my_xlib_u"
+      my_xdir="$my_gentop/$my_xlib_u"
+
+      $show "${rm}r $my_xdir"
+      $run ${rm}r "$my_xdir"
+      $show "$mkdir $my_xdir"
+      $run $mkdir "$my_xdir"
+      exit_status=$?
+      if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
+	exit $exit_status
+      fi
+      case $host in
+      *-darwin*)
+	$show "Extracting $my_xabs"
+	# Do not bother doing anything if just a dry run
+	if test -z "$run"; then
+	  darwin_orig_dir=`pwd`
+	  cd $my_xdir || exit $?
+	  darwin_archive=$my_xabs
+	  darwin_curdir=`pwd`
+	  darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
+	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
+	  if test -n "$darwin_arches"; then 
+	    darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
+	    darwin_arch=
+	    $show "$darwin_base_archive has multiple architectures $darwin_arches"
+	    for darwin_arch in  $darwin_arches ; do
+	      mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+	      lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
+	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
+	      cd "$darwin_curdir"
+	      $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
+	    done # $darwin_arches
+      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
+	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
+	    darwin_file=
+	    darwin_files=
+	    for darwin_file in $darwin_filelist; do
+	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
+	      lipo -create -output "$darwin_file" $darwin_files
+	    done # $darwin_filelist
+	    ${rm}r unfat-$$
+	    cd "$darwin_orig_dir"
+	  else
+	    cd "$darwin_orig_dir"
+ 	    func_extract_an_archive "$my_xdir" "$my_xabs"
+	  fi # $darwin_arches
+	fi # $run
+	;;
+      *)
+        func_extract_an_archive "$my_xdir" "$my_xabs"
+        ;;
+      esac
+      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+    done
+    func_extract_archives_result="$my_oldobjs"
+}
+# End of Shell function definitions
+#####################################
+
+# Darwin sucks
+eval std_shrext=\"$shrext_cmds\"
+
+disable_libs=no
+
+# Parse our command line options once, thoroughly.
+while test "$#" -gt 0
+do
+  arg="$1"
+  shift
+
+  case $arg in
+  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) optarg= ;;
+  esac
+
+  # If the previous option needs an argument, assign it.
+  if test -n "$prev"; then
+    case $prev in
+    execute_dlfiles)
+      execute_dlfiles="$execute_dlfiles $arg"
+      ;;
+    tag)
+      tagname="$arg"
+      preserve_args="${preserve_args}=$arg"
+
+      # Check whether tagname contains only valid characters
+      case $tagname in
+      *[!-_A-Za-z0-9,/]*)
+	$echo "$progname: invalid tag name: $tagname" 1>&2
+	exit $EXIT_FAILURE
+	;;
+      esac
+
+      case $tagname in
+      CC)
+	# Don't test for the "default" C tag, as we know, it's there, but
+	# not specially marked.
+	;;
+      *)
+	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
+	  taglist="$taglist $tagname"
+	  # Evaluate the configuration.
+	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
+	else
+	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
+	fi
+	;;
+      esac
+      ;;
+    *)
+      eval "$prev=\$arg"
+      ;;
+    esac
+
+    prev=
+    prevopt=
+    continue
+  fi
+
+  # Have we seen a non-optional argument yet?
+  case $arg in
+  --help)
+    show_help=yes
+    ;;
+
+  --version)
+    $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
+    $echo
+    $echo "Copyright (C) 2005  Free Software Foundation, Inc."
+    $echo "This is free software; see the source for copying conditions.  There is NO"
+    $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+    exit $?
+    ;;
+
+  --config)
+    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
+    # Now print the configurations for the tags.
+    for tagname in $taglist; do
+      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
+    done
+    exit $?
+    ;;
+
+  --debug)
+    $echo "$progname: enabling shell trace mode"
+    set -x
+    preserve_args="$preserve_args $arg"
+    ;;
+
+  --dry-run | -n)
+    run=:
+    ;;
+
+  --features)
+    $echo "host: $host"
+    if test "$build_libtool_libs" = yes; then
+      $echo "enable shared libraries"
+    else
+      $echo "disable shared libraries"
+    fi
+    if test "$build_old_libs" = yes; then
+      $echo "enable static libraries"
+    else
+      $echo "disable static libraries"
+    fi
+    exit $?
+    ;;
+
+  --finish) mode="finish" ;;
+
+  --mode) prevopt="--mode" prev=mode ;;
+  --mode=*) mode="$optarg" ;;
+
+  --preserve-dup-deps) duplicate_deps="yes" ;;
+
+  --quiet | --silent)
+    show=:
+    preserve_args="$preserve_args $arg"
+    ;;
+
+  --tag)
+    prevopt="--tag"
+    prev=tag
+    preserve_args="$preserve_args --tag"
+    ;;
+  --tag=*)
+    set tag "$optarg" ${1+"$@"}
+    shift
+    prev=tag
+    preserve_args="$preserve_args --tag"
+    ;;
+
+  -dlopen)
+    prevopt="-dlopen"
+    prev=execute_dlfiles
+    ;;
+
+  -*)
+    $echo "$modename: unrecognized option \`$arg'" 1>&2
+    $echo "$help" 1>&2
+    exit $EXIT_FAILURE
+    ;;
+
+  *)
+    nonopt="$arg"
+    break
+    ;;
+  esac
+done
+
+if test -n "$prevopt"; then
+  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
+  $echo "$help" 1>&2
+  exit $EXIT_FAILURE
+fi
+
+case $disable_libs in
+no) 
+  ;;
+shared)
+  build_libtool_libs=no
+  build_old_libs=yes
+  ;;
+static)
+  build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
+  ;;
+esac
+
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end.  This prevents here-documents from being
+# left over by shells.
+exec_cmd=
+
+if test -z "$show_help"; then
+
+  # Infer the operation mode.
+  if test -z "$mode"; then
+    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
+    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
+    case $nonopt in
+    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
+      mode=link
+      for arg
+      do
+	case $arg in
+	-c)
+	   mode=compile
+	   break
+	   ;;
+	esac
+      done
+      ;;
+    *db | *dbx | *strace | *truss)
+      mode=execute
+      ;;
+    *install*|cp|mv)
+      mode=install
+      ;;
+    *rm)
+      mode=uninstall
+      ;;
+    *)
+      # If we have no mode, but dlfiles were specified, then do execute mode.
+      test -n "$execute_dlfiles" && mode=execute
+
+      # Just use the default operation mode.
+      if test -z "$mode"; then
+	if test -n "$nonopt"; then
+	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
+	else
+	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
+	fi
+      fi
+      ;;
+    esac
+  fi
+
+  # Only execute mode is allowed to have -dlopen flags.
+  if test -n "$execute_dlfiles" && test "$mode" != execute; then
+    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
+    $echo "$help" 1>&2
+    exit $EXIT_FAILURE
+  fi
+
+  # Change the help message to a mode-specific one.
+  generic_help="$help"
+  help="Try \`$modename --help --mode=$mode' for more information."
+
+  # These modes are in order of execution frequency so that they run quickly.
+  case $mode in
+  # libtool compile mode
+  compile)
+    modename="$modename: compile"
+    # Get the compilation command and the source file.
+    base_compile=
+    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
+    suppress_opt=yes
+    suppress_output=
+    arg_mode=normal
+    libobj=
+    later=
+
+    for arg
+    do
+      case $arg_mode in
+      arg  )
+	# do not "continue".  Instead, add this to base_compile
+	lastarg="$arg"
+	arg_mode=normal
+	;;
+
+      target )
+	libobj="$arg"
+	arg_mode=normal
+	continue
+	;;
+
+      normal )
+	# Accept any command-line options.
+	case $arg in
+	-o)
+	  if test -n "$libobj" ; then
+	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+	  arg_mode=target
+	  continue
+	  ;;
+
+	-static | -prefer-pic | -prefer-non-pic)
+	  later="$later $arg"
+	  continue
+	  ;;
+
+	-no-suppress)
+	  suppress_opt=no
+	  continue
+	  ;;
+
+	-Xcompiler)
+	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
+	  continue      #  The current "srcfile" will either be retained or
+	  ;;            #  replaced later.  I would guess that would be a bug.
+
+	-Wc,*)
+	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
+	  lastarg=
+	  save_ifs="$IFS"; IFS=','
+ 	  for arg in $args; do
+	    IFS="$save_ifs"
+
+	    # Double-quote args containing other shell metacharacters.
+	    # Many Bourne shells cannot handle close brackets correctly
+	    # in scan sets, so we specify it separately.
+	    case $arg in
+	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	      arg="\"$arg\""
+	      ;;
+	    esac
+	    lastarg="$lastarg $arg"
+	  done
+	  IFS="$save_ifs"
+	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
+
+	  # Add the arguments to base_compile.
+	  base_compile="$base_compile $lastarg"
+	  continue
+	  ;;
+
+	* )
+	  # Accept the current argument as the source file.
+	  # The previous "srcfile" becomes the current argument.
+	  #
+	  lastarg="$srcfile"
+	  srcfile="$arg"
+	  ;;
+	esac  #  case $arg
+	;;
+      esac    #  case $arg_mode
+
+      # Aesthetically quote the previous argument.
+      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
+
+      case $lastarg in
+      # Double-quote args containing other shell metacharacters.
+      # Many Bourne shells cannot handle close brackets correctly
+      # in scan sets, and some SunOS ksh mistreat backslash-escaping
+      # in scan sets (worked around with variable expansion),
+      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
+      # at all, so we specify them separately.
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	lastarg="\"$lastarg\""
+	;;
+      esac
+
+      base_compile="$base_compile $lastarg"
+    done # for arg
+
+    case $arg_mode in
+    arg)
+      $echo "$modename: you must specify an argument for -Xcompile"
+      exit $EXIT_FAILURE
+      ;;
+    target)
+      $echo "$modename: you must specify a target with \`-o'" 1>&2
+      exit $EXIT_FAILURE
+      ;;
+    *)
+      # Get the name of the library object.
+      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
+      ;;
+    esac
+
+    # Recognize several different file suffixes.
+    # If the user specifies -o file.o, it is replaced with file.lo
+    xform='[cCFSifmso]'
+    case $libobj in
+    *.ada) xform=ada ;;
+    *.adb) xform=adb ;;
+    *.ads) xform=ads ;;
+    *.asm) xform=asm ;;
+    *.c++) xform=c++ ;;
+    *.cc) xform=cc ;;
+    *.ii) xform=ii ;;
+    *.class) xform=class ;;
+    *.cpp) xform=cpp ;;
+    *.cxx) xform=cxx ;;
+    *.f90) xform=f90 ;;
+    *.for) xform=for ;;
+    *.java) xform=java ;;
+    *.obj) xform=obj ;;
+    esac
+
+    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
+
+    case $libobj in
+    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
+    *)
+      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
+      exit $EXIT_FAILURE
+      ;;
+    esac
+
+    func_infer_tag $base_compile
+
+    for arg in $later; do
+      case $arg in
+      -static)
+	build_old_libs=yes
+	continue
+	;;
+
+      -prefer-pic)
+	pic_mode=yes
+	continue
+	;;
+
+      -prefer-non-pic)
+	pic_mode=no
+	continue
+	;;
+      esac
+    done
+
+    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
+    case $qlibobj in
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	qlibobj="\"$qlibobj\"" ;;
+    esac
+    test "X$libobj" != "X$qlibobj" \
+	&& $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' 	&()|`$[]' \
+	&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
+    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
+    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
+    if test "X$xdir" = "X$obj"; then
+      xdir=
+    else
+      xdir=$xdir/
+    fi
+    lobj=${xdir}$objdir/$objname
+
+    if test -z "$base_compile"; then
+      $echo "$modename: you must specify a compilation command" 1>&2
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
+
+    # Delete any leftover library objects.
+    if test "$build_old_libs" = yes; then
+      removelist="$obj $lobj $libobj ${libobj}T"
+    else
+      removelist="$lobj $libobj ${libobj}T"
+    fi
+
+    $run $rm $removelist
+    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
+
+    # On Cygwin there's no "real" PIC flag so we must build both object types
+    case $host_os in
+    cygwin* | mingw* | pw32* | os2*)
+      pic_mode=default
+      ;;
+    esac
+    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
+      # non-PIC code in shared libraries is not supported
+      pic_mode=default
+    fi
+
+    # Calculate the filename of the output object if compiler does
+    # not support -o with -c
+    if test "$compiler_c_o" = no; then
+      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
+      lockfile="$output_obj.lock"
+      removelist="$removelist $output_obj $lockfile"
+      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
+    else
+      output_obj=
+      need_locks=no
+      lockfile=
+    fi
+
+    # Lock this critical section if it is needed
+    # We use this script file to make the link, it avoids creating a new file
+    if test "$need_locks" = yes; then
+      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
+	$show "Waiting for $lockfile to be removed"
+	sleep 2
+      done
+    elif test "$need_locks" = warn; then
+      if test -f "$lockfile"; then
+	$echo "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$run $rm $removelist
+	exit $EXIT_FAILURE
+      fi
+      $echo "$srcfile" > "$lockfile"
+    fi
+
+    if test -n "$fix_srcfile_path"; then
+      eval srcfile=\"$fix_srcfile_path\"
+    fi
+    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
+    case $qsrcfile in
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+      qsrcfile="\"$qsrcfile\"" ;;
+    esac
+
+    $run $rm "$libobj" "${libobj}T"
+
+    # Create a libtool object file (analogous to a ".la" file),
+    # but don't create it if we're doing a dry run.
+    test -z "$run" && cat > ${libobj}T <<EOF
+# $libobj - a libtool object file
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+EOF
+
+    # Only build a PIC object if we are building libtool libraries.
+    if test "$build_libtool_libs" = yes; then
+      # Without this assignment, base_compile gets emptied.
+      fbsd_hideous_sh_bug=$base_compile
+
+      if test "$pic_mode" != no; then
+	command="$base_compile $qsrcfile $pic_flag"
+      else
+	# Don't build PIC code
+	command="$base_compile $qsrcfile"
+      fi
+
+      if test ! -d "${xdir}$objdir"; then
+	$show "$mkdir ${xdir}$objdir"
+	$run $mkdir ${xdir}$objdir
+	exit_status=$?
+	if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
+	  exit $exit_status
+	fi
+      fi
+
+      if test -z "$output_obj"; then
+	# Place PIC objects in $objdir
+	command="$command -o $lobj"
+      fi
+
+      $run $rm "$lobj" "$output_obj"
+
+      $show "$command"
+      if $run eval "$command"; then :
+      else
+	test -n "$output_obj" && $run $rm $removelist
+	exit $EXIT_FAILURE
+      fi
+
+      if test "$need_locks" = warn &&
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+	$echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$run $rm $removelist
+	exit $EXIT_FAILURE
+      fi
+
+      # Just move the object if needed, then go on to compile the next one
+      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
+	$show "$mv $output_obj $lobj"
+	if $run $mv $output_obj $lobj; then :
+	else
+	  error=$?
+	  $run $rm $removelist
+	  exit $error
+	fi
+      fi
+
+      # Append the name of the PIC object to the libtool object file.
+      test -z "$run" && cat >> ${libobj}T <<EOF
+pic_object='$objdir/$objname'
+
+EOF
+
+      # Allow error messages only from the first compilation.
+      if test "$suppress_opt" = yes; then
+        suppress_output=' >/dev/null 2>&1'
+      fi
+    else
+      # No PIC object so indicate it doesn't exist in the libtool
+      # object file.
+      test -z "$run" && cat >> ${libobj}T <<EOF
+pic_object=none
+
+EOF
+    fi
+
+    # Only build a position-dependent object if we build old libraries.
+    if test "$build_old_libs" = yes; then
+      if test "$pic_mode" != yes; then
+	# Don't build PIC code
+	command="$base_compile $qsrcfile"
+      else
+	command="$base_compile $qsrcfile $pic_flag"
+      fi
+      if test "$compiler_c_o" = yes; then
+	command="$command -o $obj"
+      fi
+
+      # Suppress compiler output if we already did a PIC compilation.
+      command="$command$suppress_output"
+      $run $rm "$obj" "$output_obj"
+      $show "$command"
+      if $run eval "$command"; then :
+      else
+	$run $rm $removelist
+	exit $EXIT_FAILURE
+      fi
+
+      if test "$need_locks" = warn &&
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+	$echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$run $rm $removelist
+	exit $EXIT_FAILURE
+      fi
+
+      # Just move the object if needed
+      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
+	$show "$mv $output_obj $obj"
+	if $run $mv $output_obj $obj; then :
+	else
+	  error=$?
+	  $run $rm $removelist
+	  exit $error
+	fi
+      fi
+
+      # Append the name of the non-PIC object the libtool object file.
+      # Only append if the libtool object file exists.
+      test -z "$run" && cat >> ${libobj}T <<EOF
+# Name of the non-PIC object.
+non_pic_object='$objname'
+
+EOF
+    else
+      # Append the name of the non-PIC object the libtool object file.
+      # Only append if the libtool object file exists.
+      test -z "$run" && cat >> ${libobj}T <<EOF
+# Name of the non-PIC object.
+non_pic_object=none
+
+EOF
+    fi
+
+    $run $mv "${libobj}T" "${libobj}"
+
+    # Unlock the critical section if it was locked
+    if test "$need_locks" != no; then
+      $run $rm "$lockfile"
+    fi
+
+    exit $EXIT_SUCCESS
+    ;;
+
+  # libtool link mode
+  link | relink)
+    modename="$modename: link"
+    case $host in
+    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+      # It is impossible to link a dll without this setting, and
+      # we shouldn't force the makefile maintainer to figure out
+      # which system we are compiling for in order to pass an extra
+      # flag for every libtool invocation.
+      # allow_undefined=no
+
+      # FIXME: Unfortunately, there are problems with the above when trying
+      # to make a dll which has undefined symbols, in which case not
+      # even a static library is built.  For now, we need to specify
+      # -no-undefined on the libtool link line when we can be certain
+      # that all symbols are satisfied, otherwise we get a static library.
+      allow_undefined=yes
+      ;;
+    *)
+      allow_undefined=yes
+      ;;
+    esac
+    libtool_args="$nonopt"
+    base_compile="$nonopt $@"
+    compile_command="$nonopt"
+    finalize_command="$nonopt"
+
+    compile_rpath=
+    finalize_rpath=
+    compile_shlibpath=
+    finalize_shlibpath=
+    convenience=
+    old_convenience=
+    deplibs=
+    old_deplibs=
+    compiler_flags=
+    linker_flags=
+    dllsearchpath=
+    lib_search_path=`pwd`
+    inst_prefix_dir=
+
+    avoid_version=no
+    dlfiles=
+    dlprefiles=
+    dlself=no
+    export_dynamic=no
+    export_symbols=
+    export_symbols_regex=
+    generated=
+    libobjs=
+    ltlibs=
+    module=no
+    no_install=no
+    objs=
+    non_pic_objects=
+    notinst_path= # paths that contain not-installed libtool libraries
+    precious_files_regex=
+    prefer_static_libs=no
+    preload=no
+    prev=
+    prevarg=
+    release=
+    rpath=
+    xrpath=
+    perm_rpath=
+    temp_rpath=
+    thread_safe=no
+    vinfo=
+    vinfo_number=no
+
+    func_infer_tag $base_compile
+
+    # We need to know -static, to get the right output filenames.
+    for arg
+    do
+      case $arg in
+      -all-static | -static | -static-libtool-libs)
+    case $arg in
+    -all-static)
+	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
+	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
+	  fi
+	  if test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=yes
+	  ;;
+    -static)
+	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=built
+	  ;;
+    -static-libtool-libs)
+      if test -z "$pic_flag" && test -n "$link_static_flag"; then
+        dlopen_self=$dlopen_self_static
+      fi
+      prefer_static_libs=yes
+      ;;
+    esac
+	build_libtool_libs=no
+	build_old_libs=yes
+	break
+	;;
+      esac
+    done
+
+    # See if our shared archives depend on static archives.
+    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+
+    # Go through the arguments, transforming them on the way.
+    while test "$#" -gt 0; do
+      arg="$1"
+      shift
+      case $arg in
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
+	;;
+      *) qarg=$arg ;;
+      esac
+      libtool_args="$libtool_args $qarg"
+
+      # If the previous option needs an argument, assign it.
+      if test -n "$prev"; then
+	case $prev in
+	output)
+	  compile_command="$compile_command @OUTPUT@"
+	  finalize_command="$finalize_command @OUTPUT@"
+	  ;;
+	esac
+
+	case $prev in
+	dlfiles|dlprefiles)
+	  if test "$preload" = no; then
+	    # Add the symbol object into the linking commands.
+	    compile_command="$compile_command @SYMFILE@"
+	    finalize_command="$finalize_command @SYMFILE@"
+	    preload=yes
+	  fi
+	  case $arg in
+	  *.la | *.lo) ;;  # We handle these cases below.
+	  force)
+	    if test "$dlself" = no; then
+	      dlself=needless
+	      export_dynamic=yes
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  self)
+	    if test "$prev" = dlprefiles; then
+	      dlself=yes
+	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
+	      dlself=yes
+	    else
+	      dlself=needless
+	      export_dynamic=yes
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  *)
+	    if test "$prev" = dlfiles; then
+	      dlfiles="$dlfiles $arg"
+	    else
+	      dlprefiles="$dlprefiles $arg"
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  esac
+	  ;;
+	expsyms)
+	  export_symbols="$arg"
+	  if test ! -f "$arg"; then
+	    $echo "$modename: symbol file \`$arg' does not exist"
+	    exit $EXIT_FAILURE
+	  fi
+	  prev=
+	  continue
+	  ;;
+	expsyms_regex)
+	  export_symbols_regex="$arg"
+	  prev=
+	  continue
+	  ;;
+	inst_prefix)
+	  inst_prefix_dir="$arg"
+	  prev=
+	  continue
+	  ;;
+	precious_regex)
+	  precious_files_regex="$arg"
+	  prev=
+	  continue
+	  ;;
+	release)
+	  release="-$arg"
+	  prev=
+	  continue
+	  ;;
+	objectlist)
+	  if test -f "$arg"; then
+	    save_arg=$arg
+	    moreargs=
+	    for fil in `cat $save_arg`
+	    do
+#	      moreargs="$moreargs $fil"
+	      arg=$fil
+	      # A libtool-controlled object.
+
+	      # Check to see that this really is a libtool object.
+	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+		pic_object=
+		non_pic_object=
+
+		# Read the .lo file
+		# If there is no directory component, then add one.
+		case $arg in
+		*/* | *\\*) . $arg ;;
+		*) . ./$arg ;;
+		esac
+
+		if test -z "$pic_object" || \
+		   test -z "$non_pic_object" ||
+		   test "$pic_object" = none && \
+		   test "$non_pic_object" = none; then
+		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
+		  exit $EXIT_FAILURE
+		fi
+
+		# Extract subdirectory from the argument.
+		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+		if test "X$xdir" = "X$arg"; then
+		  xdir=
+		else
+		  xdir="$xdir/"
+		fi
+
+		if test "$pic_object" != none; then
+		  # Prepend the subdirectory the object is found in.
+		  pic_object="$xdir$pic_object"
+
+		  if test "$prev" = dlfiles; then
+		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+		      dlfiles="$dlfiles $pic_object"
+		      prev=
+		      continue
+		    else
+		      # If libtool objects are unsupported, then we need to preload.
+		      prev=dlprefiles
+		    fi
+		  fi
+
+		  # CHECK ME:  I think I busted this.  -Ossama
+		  if test "$prev" = dlprefiles; then
+		    # Preload the old-style object.
+		    dlprefiles="$dlprefiles $pic_object"
+		    prev=
+		  fi
+
+		  # A PIC object.
+		  libobjs="$libobjs $pic_object"
+		  arg="$pic_object"
+		fi
+
+		# Non-PIC object.
+		if test "$non_pic_object" != none; then
+		  # Prepend the subdirectory the object is found in.
+		  non_pic_object="$xdir$non_pic_object"
+
+		  # A standard non-PIC object
+		  non_pic_objects="$non_pic_objects $non_pic_object"
+		  if test -z "$pic_object" || test "$pic_object" = none ; then
+		    arg="$non_pic_object"
+		  fi
+		else
+		  # If the PIC object exists, use it instead.
+		  # $xdir was prepended to $pic_object above.
+		  non_pic_object="$pic_object"
+		  non_pic_objects="$non_pic_objects $non_pic_object"
+		fi
+	      else
+		# Only an error if not doing a dry-run.
+		if test -z "$run"; then
+		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
+		  exit $EXIT_FAILURE
+		else
+		  # Dry-run case.
+
+		  # Extract subdirectory from the argument.
+		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+		  if test "X$xdir" = "X$arg"; then
+		    xdir=
+		  else
+		    xdir="$xdir/"
+		  fi
+
+		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
+		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
+		  libobjs="$libobjs $pic_object"
+		  non_pic_objects="$non_pic_objects $non_pic_object"
+		fi
+	      fi
+	    done
+	  else
+	    $echo "$modename: link input file \`$save_arg' does not exist"
+	    exit $EXIT_FAILURE
+	  fi
+	  arg=$save_arg
+	  prev=
+	  continue
+	  ;;
+	rpath | xrpath)
+	  # We need an absolute path.
+	  case $arg in
+	  [\\/]* | [A-Za-z]:[\\/]*) ;;
+	  *)
+	    $echo "$modename: only absolute run-paths are allowed" 1>&2
+	    exit $EXIT_FAILURE
+	    ;;
+	  esac
+	  if test "$prev" = rpath; then
+	    case "$rpath " in
+	    *" $arg "*) ;;
+	    *) rpath="$rpath $arg" ;;
+	    esac
+	  else
+	    case "$xrpath " in
+	    *" $arg "*) ;;
+	    *) xrpath="$xrpath $arg" ;;
+	    esac
+	  fi
+	  prev=
+	  continue
+	  ;;
+	xcompiler)
+	  compiler_flags="$compiler_flags $qarg"
+	  prev=
+	  compile_command="$compile_command $qarg"
+	  finalize_command="$finalize_command $qarg"
+	  continue
+	  ;;
+	xlinker)
+	  linker_flags="$linker_flags $qarg"
+	  compiler_flags="$compiler_flags $wl$qarg"
+	  prev=
+	  compile_command="$compile_command $wl$qarg"
+	  finalize_command="$finalize_command $wl$qarg"
+	  continue
+	  ;;
+	xcclinker)
+	  linker_flags="$linker_flags $qarg"
+	  compiler_flags="$compiler_flags $qarg"
+	  prev=
+	  compile_command="$compile_command $qarg"
+	  finalize_command="$finalize_command $qarg"
+	  continue
+	  ;;
+	shrext)
+  	  shrext_cmds="$arg"
+	  prev=
+	  continue
+	  ;;
+	darwin_framework|darwin_framework_skip)
+	  test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
+	  compile_command="$compile_command $arg"
+	  finalize_command="$finalize_command $arg"
+	  prev=
+	  continue
+	  ;;
+	*)
+	  eval "$prev=\"\$arg\""
+	  prev=
+	  continue
+	  ;;
+	esac
+      fi # test -n "$prev"
+
+      prevarg="$arg"
+
+      case $arg in
+      -all-static)
+	if test -n "$link_static_flag"; then
+	  compile_command="$compile_command $link_static_flag"
+	  finalize_command="$finalize_command $link_static_flag"
+	fi
+	continue
+	;;
+
+      -allow-undefined)
+	# FIXME: remove this flag sometime in the future.
+	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
+	continue
+	;;
+
+      -avoid-version)
+	avoid_version=yes
+	continue
+	;;
+
+      -dlopen)
+	prev=dlfiles
+	continue
+	;;
+
+      -dlpreopen)
+	prev=dlprefiles
+	continue
+	;;
+
+      -export-dynamic)
+	export_dynamic=yes
+	continue
+	;;
+
+      -export-symbols | -export-symbols-regex)
+	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+	  $echo "$modename: more than one -exported-symbols argument is not allowed"
+	  exit $EXIT_FAILURE
+	fi
+	if test "X$arg" = "X-export-symbols"; then
+	  prev=expsyms
+	else
+	  prev=expsyms_regex
+	fi
+	continue
+	;;
+
+      -framework|-arch|-isysroot)
+	case " $CC " in
+	  *" ${arg} ${1} "* | *" ${arg}	${1} "*) 
+		prev=darwin_framework_skip ;;
+	  *) compiler_flags="$compiler_flags $arg"
+	     prev=darwin_framework ;;
+	esac
+	compile_command="$compile_command $arg"
+	finalize_command="$finalize_command $arg"
+	continue
+	;;
+
+      -inst-prefix-dir)
+	prev=inst_prefix
+	continue
+	;;
+
+      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
+      # so, if we see these flags be careful not to treat them like -L
+      -L[A-Z][A-Z]*:*)
+	case $with_gcc/$host in
+	no/*-*-irix* | /*-*-irix*)
+	  compile_command="$compile_command $arg"
+	  finalize_command="$finalize_command $arg"
+	  ;;
+	esac
+	continue
+	;;
+
+      -L*)
+	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
+	# We need an absolute path.
+	case $dir in
+	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	*)
+	  absdir=`cd "$dir" && pwd`
+	  if test -z "$absdir"; then
+	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
+	    absdir="$dir"
+	    notinst_path="$notinst_path $dir"
+	  fi
+	  dir="$absdir"
+	  ;;
+	esac
+	case "$deplibs " in
+	*" -L$dir "*) ;;
+	*)
+	  deplibs="$deplibs -L$dir"
+	  lib_search_path="$lib_search_path $dir"
+	  ;;
+	esac
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+	  testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
+	  case :$dllsearchpath: in
+	  *":$dir:"*) ;;
+	  *) dllsearchpath="$dllsearchpath:$dir";;
+	  esac
+	  case :$dllsearchpath: in
+	  *":$testbindir:"*) ;;
+	  *) dllsearchpath="$dllsearchpath:$testbindir";;
+	  esac
+	  ;;
+	esac
+	continue
+	;;
+
+      -l*)
+	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
+	  case $host in
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
+	    # These systems don't actually have a C or math library (as such)
+	    continue
+	    ;;
+	  *-*-os2*)
+	    # These systems don't actually have a C library (as such)
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	    # Do not include libc due to us having libc/libc_r.
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-rhapsody* | *-*-darwin1.[012])
+	    # Rhapsody C and math libraries are in the System framework
+	    deplibs="$deplibs -framework System"
+	    continue
+	    ;;
+	  *-*-sco3.2v5* | *-*-sco5v6*)
+	    # Causes problems with __ctype
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+	    # Compiler inserts libc in the correct place for threads to work
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  esac
+	elif test "X$arg" = "X-lc_r"; then
+	 case $host in
+	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	   # Do not include libc_r directly, use -pthread flag.
+	   continue
+	   ;;
+	 esac
+	fi
+	deplibs="$deplibs $arg"
+	continue
+	;;
+
+      # Tru64 UNIX uses -model [arg] to determine the layout of C++
+      # classes, name mangling, and exception handling.
+      -model)
+	compile_command="$compile_command $arg"
+	compiler_flags="$compiler_flags $arg"
+	finalize_command="$finalize_command $arg"
+	prev=xcompiler
+	continue
+	;;
+
+     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
+	compiler_flags="$compiler_flags $arg"
+	compile_command="$compile_command $arg"
+	finalize_command="$finalize_command $arg"
+	continue
+	;;
+
+      -module)
+	module=yes
+	continue
+	;;
+
+      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
+      # -r[0-9][0-9]* specifies the processor on the SGI compiler
+      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
+      # +DA*, +DD* enable 64-bit mode on the HP compiler
+      # -q* pass through compiler args for the IBM compiler
+      # -m* pass through architecture-specific compiler args for GCC
+      # -m*, -t[45]*, -txscale* pass through architecture-specific
+      # compiler args for GCC
+      # -pg pass through profiling flag for GCC
+      # @file GCC response files
+      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \
+      -t[45]*|-txscale*|@*)
+
+	# Unknown arguments in both finalize_command and compile_command need
+	# to be aesthetically quoted because they are evaled later.
+	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+	case $arg in
+	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	  arg="\"$arg\""
+	  ;;
+	esac
+        compile_command="$compile_command $arg"
+        finalize_command="$finalize_command $arg"
+        compiler_flags="$compiler_flags $arg"
+        continue
+        ;;
+
+      -shrext)
+	prev=shrext
+	continue
+	;;
+
+      -no-fast-install)
+	fast_install=no
+	continue
+	;;
+
+      -no-install)
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+	  # The PATH hackery in wrapper scripts is required on Windows
+	  # in order for the loader to find any dlls it needs.
+	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
+	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
+	  fast_install=no
+	  ;;
+	*) no_install=yes ;;
+	esac
+	continue
+	;;
+
+      -no-undefined)
+	allow_undefined=no
+	continue
+	;;
+
+      -objectlist)
+	prev=objectlist
+	continue
+	;;
+
+      -o) prev=output ;;
+
+      -precious-files-regex)
+	prev=precious_regex
+	continue
+	;;
+
+      -release)
+	prev=release
+	continue
+	;;
+
+      -rpath)
+	prev=rpath
+	continue
+	;;
+
+      -R)
+	prev=xrpath
+	continue
+	;;
+
+      -R*)
+	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
+	# We need an absolute path.
+	case $dir in
+	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	*)
+	  $echo "$modename: only absolute run-paths are allowed" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+	case "$xrpath " in
+	*" $dir "*) ;;
+	*) xrpath="$xrpath $dir" ;;
+	esac
+	continue
+	;;
+
+      -static | -static-libtool-libs)
+	# The effects of -static are defined in a previous loop.
+	# We used to do the same as -all-static on platforms that
+	# didn't have a PIC flag, but the assumption that the effects
+	# would be equivalent was wrong.  It would break on at least
+	# Digital Unix and AIX.
+	continue
+	;;
+
+      -thread-safe)
+	thread_safe=yes
+	continue
+	;;
+
+      -version-info)
+	prev=vinfo
+	continue
+	;;
+      -version-number)
+	prev=vinfo
+	vinfo_number=yes
+	continue
+	;;
+
+      -Wc,*)
+	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
+	arg=
+	save_ifs="$IFS"; IFS=','
+	for flag in $args; do
+	  IFS="$save_ifs"
+	  case $flag in
+	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	    flag="\"$flag\""
+	    ;;
+	  esac
+	  arg="$arg $wl$flag"
+	  compiler_flags="$compiler_flags $flag"
+	done
+	IFS="$save_ifs"
+	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
+	;;
+
+      -Wl,*)
+	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
+	arg=
+	save_ifs="$IFS"; IFS=','
+	for flag in $args; do
+	  IFS="$save_ifs"
+	  case $flag in
+	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	    flag="\"$flag\""
+	    ;;
+	  esac
+	  arg="$arg $wl$flag"
+	  compiler_flags="$compiler_flags $wl$flag"
+	  linker_flags="$linker_flags $flag"
+	done
+	IFS="$save_ifs"
+	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
+	;;
+
+      -Xcompiler)
+	prev=xcompiler
+	continue
+	;;
+
+      -Xlinker)
+	prev=xlinker
+	continue
+	;;
+
+      -XCClinker)
+	prev=xcclinker
+	continue
+	;;
+
+      # Some other compiler flag.
+      -* | +*)
+	# Unknown arguments in both finalize_command and compile_command need
+	# to be aesthetically quoted because they are evaled later.
+	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+	case $arg in
+	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	  arg="\"$arg\""
+	  ;;
+	esac
+	;;
+
+      *.$objext)
+	# A standard object.
+	objs="$objs $arg"
+	;;
+
+      *.lo)
+	# A libtool-controlled object.
+
+	# Check to see that this really is a libtool object.
+	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+	  pic_object=
+	  non_pic_object=
+
+	  # Read the .lo file
+	  # If there is no directory component, then add one.
+	  case $arg in
+	  */* | *\\*) . $arg ;;
+	  *) . ./$arg ;;
+	  esac
+
+	  if test -z "$pic_object" || \
+	     test -z "$non_pic_object" ||
+	     test "$pic_object" = none && \
+	     test "$non_pic_object" = none; then
+	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+
+	  # Extract subdirectory from the argument.
+	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+	  if test "X$xdir" = "X$arg"; then
+	    xdir=
+ 	  else
+	    xdir="$xdir/"
+	  fi
+
+	  if test "$pic_object" != none; then
+	    # Prepend the subdirectory the object is found in.
+	    pic_object="$xdir$pic_object"
+
+	    if test "$prev" = dlfiles; then
+	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+		dlfiles="$dlfiles $pic_object"
+		prev=
+		continue
+	      else
+		# If libtool objects are unsupported, then we need to preload.
+		prev=dlprefiles
+	      fi
+	    fi
+
+	    # CHECK ME:  I think I busted this.  -Ossama
+	    if test "$prev" = dlprefiles; then
+	      # Preload the old-style object.
+	      dlprefiles="$dlprefiles $pic_object"
+	      prev=
+	    fi
+
+	    # A PIC object.
+	    libobjs="$libobjs $pic_object"
+	    arg="$pic_object"
+	  fi
+
+	  # Non-PIC object.
+	  if test "$non_pic_object" != none; then
+	    # Prepend the subdirectory the object is found in.
+	    non_pic_object="$xdir$non_pic_object"
+
+	    # A standard non-PIC object
+	    non_pic_objects="$non_pic_objects $non_pic_object"
+	    if test -z "$pic_object" || test "$pic_object" = none ; then
+	      arg="$non_pic_object"
+	    fi
+	  else
+	    # If the PIC object exists, use it instead.
+	    # $xdir was prepended to $pic_object above.
+	    non_pic_object="$pic_object"
+	    non_pic_objects="$non_pic_objects $non_pic_object"
+	  fi
+	else
+	  # Only an error if not doing a dry-run.
+	  if test -z "$run"; then
+	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
+	    exit $EXIT_FAILURE
+	  else
+	    # Dry-run case.
+
+	    # Extract subdirectory from the argument.
+	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+	    if test "X$xdir" = "X$arg"; then
+	      xdir=
+	    else
+	      xdir="$xdir/"
+	    fi
+
+	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
+	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
+	    libobjs="$libobjs $pic_object"
+	    non_pic_objects="$non_pic_objects $non_pic_object"
+	  fi
+	fi
+	;;
+
+      *.$libext)
+	# An archive.
+	deplibs="$deplibs $arg"
+	old_deplibs="$old_deplibs $arg"
+	continue
+	;;
+
+      *.la)
+	# A libtool-controlled library.
+
+	if test "$prev" = dlfiles; then
+	  # This library was specified with -dlopen.
+	  dlfiles="$dlfiles $arg"
+	  prev=
+	elif test "$prev" = dlprefiles; then
+	  # The library was specified with -dlpreopen.
+	  dlprefiles="$dlprefiles $arg"
+	  prev=
+	else
+	  deplibs="$deplibs $arg"
+	fi
+	continue
+	;;
+
+      # Some other compiler argument.
+      *)
+	# Unknown arguments in both finalize_command and compile_command need
+	# to be aesthetically quoted because they are evaled later.
+	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+	case $arg in
+	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	  arg="\"$arg\""
+	  ;;
+	esac
+	;;
+      esac # arg
+
+      # Now actually substitute the argument into the commands.
+      if test -n "$arg"; then
+	compile_command="$compile_command $arg"
+	finalize_command="$finalize_command $arg"
+      fi
+    done # argument parsing loop
+
+    if test -n "$prev"; then
+      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
+
+    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+      eval arg=\"$export_dynamic_flag_spec\"
+      compile_command="$compile_command $arg"
+      finalize_command="$finalize_command $arg"
+    fi
+
+    oldlibs=
+    # calculate the name of the file, without its directory
+    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
+    libobjs_save="$libobjs"
+
+    if test -n "$shlibpath_var"; then
+      # get the directories listed in $shlibpath_var
+      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
+    else
+      shlib_search_path=
+    fi
+    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
+    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+
+    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
+    if test "X$output_objdir" = "X$output"; then
+      output_objdir="$objdir"
+    else
+      output_objdir="$output_objdir/$objdir"
+    fi
+    # Create the object directory.
+    if test ! -d "$output_objdir"; then
+      $show "$mkdir $output_objdir"
+      $run $mkdir $output_objdir
+      exit_status=$?
+      if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
+	exit $exit_status
+      fi
+    fi
+
+    # Determine the type of output
+    case $output in
+    "")
+      $echo "$modename: you must specify an output file" 1>&2
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+      ;;
+    *.$libext) linkmode=oldlib ;;
+    *.lo | *.$objext) linkmode=obj ;;
+    *.la) linkmode=lib ;;
+    *) linkmode=prog ;; # Anything else should be a program.
+    esac
+
+    case $host in
+    *cygwin* | *mingw* | *pw32*)
+      # don't eliminate duplications in $postdeps and $predeps
+      duplicate_compiler_generated_deps=yes
+      ;;
+    *)
+      duplicate_compiler_generated_deps=$duplicate_deps
+      ;;
+    esac
+    specialdeplibs=
+
+    libs=
+    # Find all interdependent deplibs by searching for libraries
+    # that are linked more than once (e.g. -la -lb -la)
+    for deplib in $deplibs; do
+      if test "X$duplicate_deps" = "Xyes" ; then
+	case "$libs " in
+	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	esac
+      fi
+      libs="$libs $deplib"
+    done
+
+    if test "$linkmode" = lib; then
+      libs="$predeps $libs $compiler_lib_search_path $postdeps"
+
+      # Compute libraries that are listed more than once in $predeps
+      # $postdeps and mark them as special (i.e., whose duplicates are
+      # not to be eliminated).
+      pre_post_deps=
+      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
+	for pre_post_dep in $predeps $postdeps; do
+	  case "$pre_post_deps " in
+	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
+	  esac
+	  pre_post_deps="$pre_post_deps $pre_post_dep"
+	done
+      fi
+      pre_post_deps=
+    fi
+
+    deplibs=
+    newdependency_libs=
+    newlib_search_path=
+    need_relink=no # whether we're linking any uninstalled libtool libraries
+    notinst_deplibs= # not-installed libtool libraries
+    case $linkmode in
+    lib)
+	passes="conv link"
+	for file in $dlfiles $dlprefiles; do
+	  case $file in
+	  *.la) ;;
+	  *)
+	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
+	    exit $EXIT_FAILURE
+	    ;;
+	  esac
+	done
+	;;
+    prog)
+	compile_deplibs=
+	finalize_deplibs=
+	alldeplibs=no
+	newdlfiles=
+	newdlprefiles=
+	passes="conv scan dlopen dlpreopen link"
+	;;
+    *)  passes="conv"
+	;;
+    esac
+    for pass in $passes; do
+      if test "$linkmode,$pass" = "lib,link" ||
+	 test "$linkmode,$pass" = "prog,scan"; then
+	libs="$deplibs"
+	deplibs=
+      fi
+      if test "$linkmode" = prog; then
+	case $pass in
+	dlopen) libs="$dlfiles" ;;
+	dlpreopen) libs="$dlprefiles" ;;
+	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+	esac
+      fi
+      if test "$pass" = dlopen; then
+	# Collect dlpreopened libraries
+	save_deplibs="$deplibs"
+	deplibs=
+      fi
+      for deplib in $libs; do
+	lib=
+	found=no
+	case $deplib in
+	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
+	  if test "$linkmode,$pass" = "prog,link"; then
+	    compile_deplibs="$deplib $compile_deplibs"
+	    finalize_deplibs="$deplib $finalize_deplibs"
+	  else
+	    compiler_flags="$compiler_flags $deplib"
+	  fi
+	  continue
+	  ;;
+	-l*)
+	  if test "$linkmode" != lib && test "$linkmode" != prog; then
+	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
+	    continue
+	  fi
+	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
+	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
+	    for search_ext in .la $std_shrext .so .a; do
+	      # Search the libtool library
+	      lib="$searchdir/lib${name}${search_ext}"
+	      if test -f "$lib"; then
+		if test "$search_ext" = ".la"; then
+		  found=yes
+		else
+		  found=no
+		fi
+		break 2
+	      fi
+	    done
+	  done
+	  if test "$found" != yes; then
+	    # deplib doesn't seem to be a libtool library
+	    if test "$linkmode,$pass" = "prog,link"; then
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    else
+	      deplibs="$deplib $deplibs"
+	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	    continue
+	  else # deplib is a libtool library
+	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
+	    # We need to do some special things here, and not later.
+	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+	      case " $predeps $postdeps " in
+	      *" $deplib "*)
+		if (${SED} -e '2q' $lib |
+                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+		  library_names=
+		  old_library=
+		  case $lib in
+		  */* | *\\*) . $lib ;;
+		  *) . ./$lib ;;
+		  esac
+		  for l in $old_library $library_names; do
+		    ll="$l"
+		  done
+		  if test "X$ll" = "X$old_library" ; then # only static version available
+		    found=no
+		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
+		    test "X$ladir" = "X$lib" && ladir="."
+		    lib=$ladir/$old_library
+		    if test "$linkmode,$pass" = "prog,link"; then
+		      compile_deplibs="$deplib $compile_deplibs"
+		      finalize_deplibs="$deplib $finalize_deplibs"
+		    else
+		      deplibs="$deplib $deplibs"
+		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+		    fi
+		    continue
+		  fi
+		fi
+	        ;;
+	      *) ;;
+	      esac
+	    fi
+	  fi
+	  ;; # -l
+	-L*)
+	  case $linkmode in
+	  lib)
+	    deplibs="$deplib $deplibs"
+	    test "$pass" = conv && continue
+	    newdependency_libs="$deplib $newdependency_libs"
+	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
+	    ;;
+	  prog)
+	    if test "$pass" = conv; then
+	      deplibs="$deplib $deplibs"
+	      continue
+	    fi
+	    if test "$pass" = scan; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    fi
+	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
+	    ;;
+	  *)
+	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
+	    ;;
+	  esac # linkmode
+	  continue
+	  ;; # -L
+	-R*)
+	  if test "$pass" = link; then
+	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
+	    # Make sure the xrpath contains only unique directories.
+	    case "$xrpath " in
+	    *" $dir "*) ;;
+	    *) xrpath="$xrpath $dir" ;;
+	    esac
+	  fi
+	  deplibs="$deplib $deplibs"
+	  continue
+	  ;;
+	*.la) lib="$deplib" ;;
+	*.$libext)
+	  if test "$pass" = conv; then
+	    deplibs="$deplib $deplibs"
+	    continue
+	  fi
+	  case $linkmode in
+	  lib)
+	    valid_a_lib=no
+	    case $deplibs_check_method in
+	      match_pattern*)
+		set dummy $deplibs_check_method
+	        match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+		if eval $echo \"$deplib\" 2>/dev/null \
+		    | $SED 10q \
+		    | $EGREP "$match_pattern_regex" > /dev/null; then
+		  valid_a_lib=yes
+		fi
+		;;
+	      pass_all)
+		valid_a_lib=yes
+		;;
+            esac
+	    if test "$valid_a_lib" != yes; then
+	      $echo
+	      $echo "*** Warning: Trying to link with static lib archive $deplib."
+	      $echo "*** I have the capability to make that library automatically link in when"
+	      $echo "*** you link to this library.  But I can only do this if you have a"
+	      $echo "*** shared version of the library, which you do not appear to have"
+	      $echo "*** because the file extensions .$libext of this argument makes me believe"
+	      $echo "*** that it is just a static archive that I should not used here."
+	    else
+	      $echo
+	      $echo "*** Warning: Linking the shared library $output against the"
+	      $echo "*** static library $deplib is not portable!"
+	      deplibs="$deplib $deplibs"
+	    fi
+	    continue
+	    ;;
+	  prog)
+	    if test "$pass" != link; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    fi
+	    continue
+	    ;;
+	  esac # linkmode
+	  ;; # *.$libext
+	*.lo | *.$objext)
+	  if test "$pass" = conv; then
+	    deplibs="$deplib $deplibs"
+	  elif test "$linkmode" = prog; then
+	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+	      # If there is no dlopen support or we're linking statically,
+	      # we need to preload.
+	      newdlprefiles="$newdlprefiles $deplib"
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    else
+	      newdlfiles="$newdlfiles $deplib"
+	    fi
+	  fi
+	  continue
+	  ;;
+	%DEPLIBS%)
+	  alldeplibs=yes
+	  continue
+	  ;;
+	esac # case $deplib
+	if test "$found" = yes || test -f "$lib"; then :
+	else
+	  $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+
+	# Check to see that this really is a libtool archive.
+	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+	else
+	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+
+	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
+	test "X$ladir" = "X$lib" && ladir="."
+
+	dlname=
+	dlopen=
+	dlpreopen=
+	libdir=
+	library_names=
+	old_library=
+	# If the library was installed with an old release of libtool,
+	# it will not redefine variables installed, or shouldnotlink
+	installed=yes
+	shouldnotlink=no
+	avoidtemprpath=
+
+
+	# Read the .la file
+	case $lib in
+	*/* | *\\*) . $lib ;;
+	*) . ./$lib ;;
+	esac
+
+	if test "$linkmode,$pass" = "lib,link" ||
+	   test "$linkmode,$pass" = "prog,scan" ||
+	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
+	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
+	fi
+
+	if test "$pass" = conv; then
+	  # Only check for convenience libraries
+	  deplibs="$lib $deplibs"
+	  if test -z "$libdir"; then
+	    if test -z "$old_library"; then
+	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
+	      exit $EXIT_FAILURE
+	    fi
+	    # It is a libtool convenience library, so add in its objects.
+	    convenience="$convenience $ladir/$objdir/$old_library"
+	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
+	    tmp_libs=
+	    for deplib in $dependency_libs; do
+	      deplibs="$deplib $deplibs"
+              if test "X$duplicate_deps" = "Xyes" ; then
+	        case "$tmp_libs " in
+	        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	        esac
+              fi
+	      tmp_libs="$tmp_libs $deplib"
+	    done
+	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
+	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+	  continue
+	fi # $pass = conv
+
+
+	# Get the name of the library we link against.
+	linklib=
+	for l in $old_library $library_names; do
+	  linklib="$l"
+	done
+	if test -z "$linklib"; then
+	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+
+	# This library was specified with -dlopen.
+	if test "$pass" = dlopen; then
+	  if test -z "$libdir"; then
+	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+	  if test -z "$dlname" ||
+	     test "$dlopen_support" != yes ||
+	     test "$build_libtool_libs" = no; then
+	    # If there is no dlname, no dlopen support or we're linking
+	    # statically, we need to preload.  We also need to preload any
+	    # dependent libraries so libltdl's deplib preloader doesn't
+	    # bomb out in the load deplibs phase.
+	    dlprefiles="$dlprefiles $lib $dependency_libs"
+	  else
+	    newdlfiles="$newdlfiles $lib"
+	  fi
+	  continue
+	fi # $pass = dlopen
+
+	# We need an absolute path.
+	case $ladir in
+	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
+	*)
+	  abs_ladir=`cd "$ladir" && pwd`
+	  if test -z "$abs_ladir"; then
+	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
+	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
+	    abs_ladir="$ladir"
+	  fi
+	  ;;
+	esac
+	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+
+	# Find the relevant object directory and library name.
+	if test "X$installed" = Xyes; then
+	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
+	    dir="$ladir"
+	    absdir="$abs_ladir"
+	    libdir="$abs_ladir"
+	  else
+	    dir="$libdir"
+	    absdir="$libdir"
+	  fi
+	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
+	else
+	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+	    dir="$ladir"
+	    absdir="$abs_ladir"
+	    # Remove this search path later
+	    notinst_path="$notinst_path $abs_ladir"
+	  else
+	    dir="$ladir/$objdir"
+	    absdir="$abs_ladir/$objdir"
+	    # Remove this search path later
+	    notinst_path="$notinst_path $abs_ladir"
+	  fi
+	fi # $installed = yes
+	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+
+	# This library was specified with -dlpreopen.
+	if test "$pass" = dlpreopen; then
+	  if test -z "$libdir"; then
+	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+	  # Prefer using a static library (so that no silly _DYNAMIC symbols
+	  # are required to link).
+	  if test -n "$old_library"; then
+	    newdlprefiles="$newdlprefiles $dir/$old_library"
+	  # Otherwise, use the dlname, so that lt_dlopen finds it.
+	  elif test -n "$dlname"; then
+	    newdlprefiles="$newdlprefiles $dir/$dlname"
+	  else
+	    newdlprefiles="$newdlprefiles $dir/$linklib"
+	  fi
+	fi # $pass = dlpreopen
+
+	if test -z "$libdir"; then
+	  # Link the convenience library
+	  if test "$linkmode" = lib; then
+	    deplibs="$dir/$old_library $deplibs"
+	  elif test "$linkmode,$pass" = "prog,link"; then
+	    compile_deplibs="$dir/$old_library $compile_deplibs"
+	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
+	  else
+	    deplibs="$lib $deplibs" # used for prog,scan pass
+	  fi
+	  continue
+	fi
+
+
+	if test "$linkmode" = prog && test "$pass" != link; then
+	  newlib_search_path="$newlib_search_path $ladir"
+	  deplibs="$lib $deplibs"
+
+	  linkalldeplibs=no
+	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
+	     test "$build_libtool_libs" = no; then
+	    linkalldeplibs=yes
+	  fi
+
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    case $deplib in
+	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
+	    esac
+	    # Need to link against all dependency_libs?
+	    if test "$linkalldeplibs" = yes; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      # Need to hardcode shared library paths
+	      # or/and link against static libraries
+	      newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	    if test "X$duplicate_deps" = "Xyes" ; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      esac
+	    fi
+	    tmp_libs="$tmp_libs $deplib"
+	  done # for deplib
+	  continue
+	fi # $linkmode = prog...
+
+	if test "$linkmode,$pass" = "prog,link"; then
+	  if test -n "$library_names" &&
+         { { test "$prefer_static_libs" = no ||
+             test "$prefer_static_libs,$installed" = "built,yes"; } ||
+           test -z "$old_library"; }; then
+	    # We need to hardcode the library path
+	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
+	      # Make sure the rpath contains only unique directories.
+	      case "$temp_rpath " in
+	      *" $dir "*) ;;
+	      *" $absdir "*) ;;
+	      *) temp_rpath="$temp_rpath $absdir" ;;
+	      esac
+	    fi
+
+	    # Hardcode the library path.
+	    # Skip directories that are in the system default run-time
+	    # search path.
+	    case " $sys_lib_dlsearch_path " in
+	    *" $absdir "*) ;;
+	    *)
+	      case "$compile_rpath " in
+	      *" $absdir "*) ;;
+	      *) compile_rpath="$compile_rpath $absdir"
+	      esac
+	      ;;
+	    esac
+	    case " $sys_lib_dlsearch_path " in
+	    *" $libdir "*) ;;
+	    *)
+	      case "$finalize_rpath " in
+	      *" $libdir "*) ;;
+	      *) finalize_rpath="$finalize_rpath $libdir"
+	      esac
+	      ;;
+	    esac
+	  fi # $linkmode,$pass = prog,link...
+
+	  if test "$alldeplibs" = yes &&
+	     { test "$deplibs_check_method" = pass_all ||
+	       { test "$build_libtool_libs" = yes &&
+		 test -n "$library_names"; }; }; then
+	    # We only need to search for static libraries
+	    continue
+	  fi
+	fi
+
+	link_static=no # Whether the deplib will be linked statically
+	use_static_libs=$prefer_static_libs
+	if test "$use_static_libs" = built && test "$installed" = yes ; then
+	  use_static_libs=no
+	fi
+	if test -n "$library_names" &&
+	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
+	  if test "$installed" = no; then
+	    notinst_deplibs="$notinst_deplibs $lib"
+	    need_relink=yes
+	  fi
+	  # This is a shared library
+
+	  # Warn about portability, can't link against -module's on
+	  # some systems (darwin)
+	  if test "$shouldnotlink" = yes && test "$pass" = link ; then
+	    $echo
+	    if test "$linkmode" = prog; then
+	      $echo "*** Warning: Linking the executable $output against the loadable module"
+	    else
+	      $echo "*** Warning: Linking the shared library $output against the loadable module"
+	    fi
+	    $echo "*** $linklib is not portable!"
+	  fi
+	  if test "$linkmode" = lib &&
+	     test "$hardcode_into_libs" = yes; then
+	    # Hardcode the library path.
+	    # Skip directories that are in the system default run-time
+	    # search path.
+	    case " $sys_lib_dlsearch_path " in
+	    *" $absdir "*) ;;
+	    *)
+	      case "$compile_rpath " in
+	      *" $absdir "*) ;;
+	      *) compile_rpath="$compile_rpath $absdir"
+	      esac
+	      ;;
+	    esac
+	    case " $sys_lib_dlsearch_path " in
+	    *" $libdir "*) ;;
+	    *)
+	      case "$finalize_rpath " in
+	      *" $libdir "*) ;;
+	      *) finalize_rpath="$finalize_rpath $libdir"
+	      esac
+	      ;;
+	    esac
+	  fi
+
+	  if test -n "$old_archive_from_expsyms_cmds"; then
+	    # figure out the soname
+	    set dummy $library_names
+	    realname="$2"
+	    shift; shift
+	    libname=`eval \\$echo \"$libname_spec\"`
+	    # use dlname if we got it. it's perfectly good, no?
+	    if test -n "$dlname"; then
+	      soname="$dlname"
+	    elif test -n "$soname_spec"; then
+	      # bleh windows
+	      case $host in
+	      *cygwin* | mingw*)
+		major=`expr $current - $age`
+		versuffix="-$major"
+		;;
+	      esac
+	      eval soname=\"$soname_spec\"
+	    else
+	      soname="$realname"
+	    fi
+
+	    # Make a new name for the extract_expsyms_cmds to use
+	    soroot="$soname"
+	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
+	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
+
+	    # If the library has no export list, then create one now
+	    if test -f "$output_objdir/$soname-def"; then :
+	    else
+	      $show "extracting exported symbol list from \`$soname'"
+	      save_ifs="$IFS"; IFS='~'
+	      cmds=$extract_expsyms_cmds
+	      for cmd in $cmds; do
+		IFS="$save_ifs"
+		eval cmd=\"$cmd\"
+		$show "$cmd"
+		$run eval "$cmd" || exit $?
+	      done
+	      IFS="$save_ifs"
+	    fi
+
+	    # Create $newlib
+	    if test -f "$output_objdir/$newlib"; then :; else
+	      $show "generating import library for \`$soname'"
+	      save_ifs="$IFS"; IFS='~'
+	      cmds=$old_archive_from_expsyms_cmds
+	      for cmd in $cmds; do
+		IFS="$save_ifs"
+		eval cmd=\"$cmd\"
+		$show "$cmd"
+		$run eval "$cmd" || exit $?
+	      done
+	      IFS="$save_ifs"
+	    fi
+	    # make sure the library variables are pointing to the new library
+	    dir=$output_objdir
+	    linklib=$newlib
+	  fi # test -n "$old_archive_from_expsyms_cmds"
+
+	  if test "$linkmode" = prog || test "$mode" != relink; then
+	    add_shlibpath=
+	    add_dir=
+	    add=
+	    lib_linked=yes
+	    case $hardcode_action in
+	    immediate | unsupported)
+	      if test "$hardcode_direct" = no; then
+		add="$dir/$linklib"
+		case $host in
+		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
+		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
+		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
+		    *-*-unixware7*) add_dir="-L$dir" ;;
+		  *-*-darwin* )
+		    # if the lib is a module then we can not link against
+		    # it, someone is ignoring the new warnings I added
+		    if /usr/bin/file -L $add 2> /dev/null |
+                      $EGREP ": [^:]* bundle" >/dev/null ; then
+		      $echo "** Warning, lib $linklib is a module, not a shared library"
+		      if test -z "$old_library" ; then
+		        $echo
+		        $echo "** And there doesn't seem to be a static archive available"
+		        $echo "** The link will probably fail, sorry"
+		      else
+		        add="$dir/$old_library"
+		      fi
+		    fi
+		esac
+	      elif test "$hardcode_minus_L" = no; then
+		case $host in
+		*-*-sunos*) add_shlibpath="$dir" ;;
+		esac
+		add_dir="-L$dir"
+		add="-l$name"
+	      elif test "$hardcode_shlibpath_var" = no; then
+		add_shlibpath="$dir"
+		add="-l$name"
+	      else
+		lib_linked=no
+	      fi
+	      ;;
+	    relink)
+	      if test "$hardcode_direct" = yes; then
+		add="$dir/$linklib"
+	      elif test "$hardcode_minus_L" = yes; then
+		add_dir="-L$dir"
+		# Try looking first in the location we're being installed to.
+		if test -n "$inst_prefix_dir"; then
+		  case $libdir in
+		    [\\/]*)
+		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
+		      ;;
+		  esac
+		fi
+		add="-l$name"
+	      elif test "$hardcode_shlibpath_var" = yes; then
+		add_shlibpath="$dir"
+		add="-l$name"
+	      else
+		lib_linked=no
+	      fi
+	      ;;
+	    *) lib_linked=no ;;
+	    esac
+
+	    if test "$lib_linked" != yes; then
+	      $echo "$modename: configuration error: unsupported hardcode properties"
+	      exit $EXIT_FAILURE
+	    fi
+
+	    if test -n "$add_shlibpath"; then
+	      case :$compile_shlibpath: in
+	      *":$add_shlibpath:"*) ;;
+	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
+	      esac
+	    fi
+	    if test "$linkmode" = prog; then
+	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
+	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
+	    else
+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
+	      test -n "$add" && deplibs="$add $deplibs"
+	      if test "$hardcode_direct" != yes && \
+		 test "$hardcode_minus_L" != yes && \
+		 test "$hardcode_shlibpath_var" = yes; then
+		case :$finalize_shlibpath: in
+		*":$libdir:"*) ;;
+		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+		esac
+	      fi
+	    fi
+	  fi
+
+	  if test "$linkmode" = prog || test "$mode" = relink; then
+	    add_shlibpath=
+	    add_dir=
+	    add=
+	    # Finalize command for both is simple: just hardcode it.
+	    if test "$hardcode_direct" = yes; then
+	      add="$libdir/$linklib"
+	    elif test "$hardcode_minus_L" = yes; then
+	      add_dir="-L$libdir"
+	      add="-l$name"
+	    elif test "$hardcode_shlibpath_var" = yes; then
+	      case :$finalize_shlibpath: in
+	      *":$libdir:"*) ;;
+	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+	      esac
+	      add="-l$name"
+	    elif test "$hardcode_automatic" = yes; then
+	      if test -n "$inst_prefix_dir" &&
+		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
+	        add="$inst_prefix_dir$libdir/$linklib"
+	      else
+	        add="$libdir/$linklib"
+	      fi
+	    else
+	      # We cannot seem to hardcode it, guess we'll fake it.
+	      add_dir="-L$libdir"
+	      # Try looking first in the location we're being installed to.
+	      if test -n "$inst_prefix_dir"; then
+		case $libdir in
+		  [\\/]*)
+		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
+		    ;;
+		esac
+	      fi
+	      add="-l$name"
+	    fi
+
+	    if test "$linkmode" = prog; then
+	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
+	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
+	    else
+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
+	      test -n "$add" && deplibs="$add $deplibs"
+	    fi
+	  fi
+	elif test "$linkmode" = prog; then
+	  # Here we assume that one of hardcode_direct or hardcode_minus_L
+	  # is not unsupported.  This is valid on all known static and
+	  # shared platforms.
+	  if test "$hardcode_direct" != unsupported; then
+	    test -n "$old_library" && linklib="$old_library"
+	    compile_deplibs="$dir/$linklib $compile_deplibs"
+	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
+	  else
+	    compile_deplibs="-l$name -L$dir $compile_deplibs"
+	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
+	  fi
+	elif test "$build_libtool_libs" = yes; then
+	  # Not a shared library
+	  if test "$deplibs_check_method" != pass_all; then
+	    # We're trying link a shared library against a static one
+	    # but the system doesn't support it.
+
+	    # Just print a warning and add the library to dependency_libs so
+	    # that the program can be linked against the static library.
+	    $echo
+	    $echo "*** Warning: This system can not link to static lib archive $lib."
+	    $echo "*** I have the capability to make that library automatically link in when"
+	    $echo "*** you link to this library.  But I can only do this if you have a"
+	    $echo "*** shared version of the library, which you do not appear to have."
+	    if test "$module" = yes; then
+	      $echo "*** But as you try to build a module library, libtool will still create "
+	      $echo "*** a static module, that should work as long as the dlopening application"
+	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
+	      if test -z "$global_symbol_pipe"; then
+		$echo
+		$echo "*** However, this would only work if libtool was able to extract symbol"
+		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+		$echo "*** not find such a program.  So, this module is probably useless."
+		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
+	      fi
+	      if test "$build_old_libs" = no; then
+		build_libtool_libs=module
+		build_old_libs=yes
+	      else
+		build_libtool_libs=no
+	      fi
+	    fi
+	  else
+	    deplibs="$dir/$old_library $deplibs"
+	    link_static=yes
+	  fi
+	fi # link shared/static library?
+
+	if test "$linkmode" = lib; then
+	  if test -n "$dependency_libs" &&
+	     { test "$hardcode_into_libs" != yes ||
+	       test "$build_old_libs" = yes ||
+	       test "$link_static" = yes; }; then
+	    # Extract -R from dependency_libs
+	    temp_deplibs=
+	    for libdir in $dependency_libs; do
+	      case $libdir in
+	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
+		   case " $xrpath " in
+		   *" $temp_xrpath "*) ;;
+		   *) xrpath="$xrpath $temp_xrpath";;
+		   esac;;
+	      *) temp_deplibs="$temp_deplibs $libdir";;
+	      esac
+	    done
+	    dependency_libs="$temp_deplibs"
+	  fi
+
+	  newlib_search_path="$newlib_search_path $absdir"
+	  # Link against this library
+	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+	  # ... and its dependency_libs
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    newdependency_libs="$deplib $newdependency_libs"
+	    if test "X$duplicate_deps" = "Xyes" ; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      esac
+	    fi
+	    tmp_libs="$tmp_libs $deplib"
+	  done
+
+	  if test "$link_all_deplibs" != no; then
+	    # Add the search paths of all dependency libraries
+	    for deplib in $dependency_libs; do
+	      case $deplib in
+	      -L*) path="$deplib" ;;
+	      *.la)
+		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
+		test "X$dir" = "X$deplib" && dir="."
+		# We need an absolute path.
+		case $dir in
+		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+		*)
+		  absdir=`cd "$dir" && pwd`
+		  if test -z "$absdir"; then
+		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
+		    absdir="$dir"
+		  fi
+		  ;;
+		esac
+		if grep "^installed=no" $deplib > /dev/null; then
+		  path="$absdir/$objdir"
+		else
+		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		  if test -z "$libdir"; then
+		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
+		    exit $EXIT_FAILURE
+		  fi
+		  if test "$absdir" != "$libdir"; then
+		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
+		  fi
+		  path="$absdir"
+		fi
+		depdepl=
+		case $host in
+		*-*-darwin*)
+		  # we do not want to link against static libs,
+		  # but need to link against shared
+		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+		  if test -n "$deplibrary_names" ; then
+		    for tmp in $deplibrary_names ; do
+		      depdepl=$tmp
+		    done
+		    if test -f "$path/$depdepl" ; then
+		      depdepl="$path/$depdepl"
+		    fi
+		    # do not add paths which are already there
+		    case " $newlib_search_path " in
+		    *" $path "*) ;;
+		    *) newlib_search_path="$newlib_search_path $path";;
+		    esac
+		  fi
+		  path=""
+		  ;;
+		*)
+		  path="-L$path"
+		  ;;
+		esac
+		;;
+	      -l*)
+		case $host in
+		*-*-darwin*)
+		  # Again, we only want to link against shared libraries
+		  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
+		  for tmp in $newlib_search_path ; do
+		    if test -f "$tmp/lib$tmp_libs.dylib" ; then
+		      eval depdepl="$tmp/lib$tmp_libs.dylib"
+		      break
+		    fi
+		  done
+		  path=""
+		  ;;
+		*) continue ;;
+		esac
+		;;
+	      *) continue ;;
+	      esac
+	      case " $deplibs " in
+	      *" $path "*) ;;
+	      *) deplibs="$path $deplibs" ;;
+	      esac
+	      case " $deplibs " in
+	      *" $depdepl "*) ;;
+	      *) deplibs="$depdepl $deplibs" ;;
+	      esac
+	    done
+	  fi # link_all_deplibs != no
+	fi # linkmode = lib
+      done # for deplib in $libs
+      dependency_libs="$newdependency_libs"
+      if test "$pass" = dlpreopen; then
+	# Link the dlpreopened libraries before other libraries
+	for deplib in $save_deplibs; do
+	  deplibs="$deplib $deplibs"
+	done
+      fi
+      if test "$pass" != dlopen; then
+	if test "$pass" != conv; then
+	  # Make sure lib_search_path contains only unique directories.
+	  lib_search_path=
+	  for dir in $newlib_search_path; do
+	    case "$lib_search_path " in
+	    *" $dir "*) ;;
+	    *) lib_search_path="$lib_search_path $dir" ;;
+	    esac
+	  done
+	  newlib_search_path=
+	fi
+
+	if test "$linkmode,$pass" != "prog,link"; then
+	  vars="deplibs"
+	else
+	  vars="compile_deplibs finalize_deplibs"
+	fi
+	for var in $vars dependency_libs; do
+	  # Add libraries to $var in reverse order
+	  eval tmp_libs=\"\$$var\"
+	  new_libs=
+	  for deplib in $tmp_libs; do
+	    # FIXME: Pedantically, this is the right thing to do, so
+	    #        that some nasty dependency loop isn't accidentally
+	    #        broken:
+	    #new_libs="$deplib $new_libs"
+	    # Pragmatically, this seems to cause very few problems in
+	    # practice:
+	    case $deplib in
+	    -L*) new_libs="$deplib $new_libs" ;;
+	    -R*) ;;
+	    *)
+	      # And here is the reason: when a library appears more
+	      # than once as an explicit dependence of a library, or
+	      # is implicitly linked in more than once by the
+	      # compiler, it is considered special, and multiple
+	      # occurrences thereof are not removed.  Compare this
+	      # with having the same library being listed as a
+	      # dependency of multiple other libraries: in this case,
+	      # we know (pedantically, we assume) the library does not
+	      # need to be listed more than once, so we keep only the
+	      # last copy.  This is not always right, but it is rare
+	      # enough that we require users that really mean to play
+	      # such unportable linking tricks to link the library
+	      # using -Wl,-lname, so that libtool does not consider it
+	      # for duplicate removal.
+	      case " $specialdeplibs " in
+	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
+	      *)
+		case " $new_libs " in
+		*" $deplib "*) ;;
+		*) new_libs="$deplib $new_libs" ;;
+		esac
+		;;
+	      esac
+	      ;;
+	    esac
+	  done
+	  tmp_libs=
+	  for deplib in $new_libs; do
+	    case $deplib in
+	    -L*)
+	      case " $tmp_libs " in
+	      *" $deplib "*) ;;
+	      *) tmp_libs="$tmp_libs $deplib" ;;
+	      esac
+	      ;;
+	    *) tmp_libs="$tmp_libs $deplib" ;;
+	    esac
+	  done
+	  eval $var=\"$tmp_libs\"
+	done # for var
+      fi
+      # Last step: remove runtime libs from dependency_libs
+      # (they stay in deplibs)
+      tmp_libs=
+      for i in $dependency_libs ; do
+	case " $predeps $postdeps $compiler_lib_search_path " in
+	*" $i "*)
+	  i=""
+	  ;;
+	esac
+	if test -n "$i" ; then
+	  tmp_libs="$tmp_libs $i"
+	fi
+      done
+      dependency_libs=$tmp_libs
+    done # for pass
+    if test "$linkmode" = prog; then
+      dlfiles="$newdlfiles"
+      dlprefiles="$newdlprefiles"
+    fi
+
+    case $linkmode in
+    oldlib)
+      if test -n "$deplibs"; then
+	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
+      fi
+
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$rpath"; then
+	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$xrpath"; then
+	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$vinfo"; then
+	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$release"; then
+	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
+      fi
+
+      # Now set the variables for building old libraries.
+      build_libtool_libs=no
+      oldlibs="$output"
+      objs="$objs$old_deplibs"
+      ;;
+
+    lib)
+      # Make sure we only generate libraries of the form `libNAME.la'.
+      case $outputname in
+      lib*)
+	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+	eval shared_ext=\"$shrext_cmds\"
+	eval libname=\"$libname_spec\"
+	;;
+      *)
+	if test "$module" = no; then
+	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
+	  $echo "$help" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+	if test "$need_lib_prefix" != no; then
+	  # Add the "lib" prefix for modules if required
+	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+	  eval shared_ext=\"$shrext_cmds\"
+	  eval libname=\"$libname_spec\"
+	else
+	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+	fi
+	;;
+      esac
+
+      if test -n "$objs"; then
+	if test "$deplibs_check_method" != pass_all; then
+	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
+	  exit $EXIT_FAILURE
+	else
+	  $echo
+	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
+	  $echo "*** objects $objs is not portable!"
+	  libobjs="$libobjs $objs"
+	fi
+      fi
+
+      if test "$dlself" != no; then
+	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
+      fi
+
+      set dummy $rpath
+      if test "$#" -gt 2; then
+	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
+      fi
+      install_libdir="$2"
+
+      oldlibs=
+      if test -z "$rpath"; then
+	if test "$build_libtool_libs" = yes; then
+	  # Building a libtool convenience library.
+	  # Some compilers have problems with a `.al' extension so
+	  # convenience libraries should have the same extension an
+	  # archive normally would.
+	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
+	  build_libtool_libs=convenience
+	  build_old_libs=yes
+	fi
+
+	if test -n "$vinfo"; then
+	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
+	fi
+
+	if test -n "$release"; then
+	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
+	fi
+      else
+
+	# Parse the version information argument.
+	save_ifs="$IFS"; IFS=':'
+	set dummy $vinfo 0 0 0
+	IFS="$save_ifs"
+
+	if test -n "$8"; then
+	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
+	  $echo "$help" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+
+	# convert absolute version numbers to libtool ages
+	# this retains compatibility with .la files and attempts
+	# to make the code below a bit more comprehensible
+
+	case $vinfo_number in
+	yes)
+	  number_major="$2"
+	  number_minor="$3"
+	  number_revision="$4"
+	  #
+	  # There are really only two kinds -- those that
+	  # use the current revision as the major version
+	  # and those that subtract age and use age as
+	  # a minor version.  But, then there is irix
+	  # which has an extra 1 added just for fun
+	  #
+	  case $version_type in
+	  darwin|linux|osf|windows|none)
+	    current=`expr $number_major + $number_minor`
+	    age="$number_minor"
+	    revision="$number_revision"
+	    ;;
+	  freebsd-aout|freebsd-elf|sunos)
+	    current="$number_major"
+	    revision="$number_minor"
+	    age="0"
+	    ;;
+	  irix|nonstopux)
+	    current=`expr $number_major + $number_minor - 1`
+	    age="$number_minor"
+	    revision="$number_minor"
+	    ;;
+	  esac
+	  ;;
+	no)
+	  current="$2"
+	  revision="$3"
+	  age="$4"
+	  ;;
+	esac
+
+	# Check that each of the things are valid numbers.
+	case $current in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
+	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+
+	case $revision in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
+	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+
+	case $age in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
+	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+
+	if test "$age" -gt "$current"; then
+	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
+	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+
+	# Calculate the version variables.
+	major=
+	versuffix=
+	verstring=
+	case $version_type in
+	none) ;;
+
+	darwin)
+	  # Like Linux, but with the current version available in
+	  # verstring for coding it into the library header
+	  major=.`expr $current - $age`
+	  versuffix="$major.$age.$revision"
+	  # Darwin ld doesn't like 0 for these options...
+	  minor_current=`expr $current + 1`
+	  verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
+	  ;;
+
+	freebsd-aout)
+	  major=".$current"
+	  versuffix=".$current.$revision";
+	  ;;
+
+	freebsd-elf)
+	  major=".$current"
+	  versuffix=".$current";
+	  ;;
+
+	irix | nonstopux)
+	  major=`expr $current - $age + 1`
+
+	  case $version_type in
+	    nonstopux) verstring_prefix=nonstopux ;;
+	    *)         verstring_prefix=sgi ;;
+	  esac
+	  verstring="$verstring_prefix$major.$revision"
+
+	  # Add in all the interfaces that we are compatible with.
+	  loop=$revision
+	  while test "$loop" -ne 0; do
+	    iface=`expr $revision - $loop`
+	    loop=`expr $loop - 1`
+	    verstring="$verstring_prefix$major.$iface:$verstring"
+	  done
+
+	  # Before this point, $major must not contain `.'.
+	  major=.$major
+	  versuffix="$major.$revision"
+	  ;;
+
+	linux)
+	  major=.`expr $current - $age`
+	  versuffix="$major.$age.$revision"
+	  ;;
+
+	osf)
+	  major=.`expr $current - $age`
+	  versuffix=".$current.$age.$revision"
+	  verstring="$current.$age.$revision"
+
+	  # Add in all the interfaces that we are compatible with.
+	  loop=$age
+	  while test "$loop" -ne 0; do
+	    iface=`expr $current - $loop`
+	    loop=`expr $loop - 1`
+	    verstring="$verstring:${iface}.0"
+	  done
+
+	  # Make executables depend on our current version.
+	  verstring="$verstring:${current}.0"
+	  ;;
+
+	sunos)
+	  major=".$current"
+	  versuffix=".$current.$revision"
+	  ;;
+
+	windows)
+	  # Use '-' rather than '.', since we only want one
+	  # extension on DOS 8.3 filesystems.
+	  major=`expr $current - $age`
+	  versuffix="-$major"
+	  ;;
+
+	*)
+	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
+	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+
+	# Clear the version info if we defaulted, and they specified a release.
+	if test -z "$vinfo" && test -n "$release"; then
+	  major=
+	  case $version_type in
+	  darwin)
+	    # we can't check for "0.0" in archive_cmds due to quoting
+	    # problems, so we reset it completely
+	    verstring=
+	    ;;
+	  *)
+	    verstring="0.0"
+	    ;;
+	  esac
+	  if test "$need_version" = no; then
+	    versuffix=
+	  else
+	    versuffix=".0.0"
+	  fi
+	fi
+
+	# Remove version info from name if versioning should be avoided
+	if test "$avoid_version" = yes && test "$need_version" = no; then
+	  major=
+	  versuffix=
+	  verstring=""
+	fi
+
+	# Check to see if the archive will have undefined symbols.
+	if test "$allow_undefined" = yes; then
+	  if test "$allow_undefined_flag" = unsupported; then
+	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
+	    build_libtool_libs=no
+	    build_old_libs=yes
+	  fi
+	else
+	  # Don't allow undefined symbols.
+	  allow_undefined_flag="$no_undefined_flag"
+	fi
+      fi
+
+      if test "$mode" != relink; then
+	# Remove our outputs, but don't remove object files since they
+	# may have been created when compiling PIC objects.
+	removelist=
+	tempremovelist=`$echo "$output_objdir/*"`
+	for p in $tempremovelist; do
+	  case $p in
+	    *.$objext)
+	       ;;
+	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
+	       if test "X$precious_files_regex" != "X"; then
+	         if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
+	         then
+		   continue
+		 fi
+	       fi
+	       removelist="$removelist $p"
+	       ;;
+	    *) ;;
+	  esac
+	done
+	if test -n "$removelist"; then
+	  $show "${rm}r $removelist"
+	  $run ${rm}r $removelist
+	fi
+      fi
+
+      # Now set the variables for building old libraries.
+      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+	oldlibs="$oldlibs $output_objdir/$libname.$libext"
+
+	# Transform .lo files to .o files.
+	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
+      fi
+
+      # Eliminate all temporary directories.
+#      for path in $notinst_path; do
+#	lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
+#	deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
+#	dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
+#      done
+
+      if test -n "$xrpath"; then
+	# If the user specified any rpath flags, then add them.
+	temp_xrpath=
+	for libdir in $xrpath; do
+	  temp_xrpath="$temp_xrpath -R$libdir"
+	  case "$finalize_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_rpath="$finalize_rpath $libdir" ;;
+	  esac
+	done
+	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
+	  dependency_libs="$temp_xrpath $dependency_libs"
+	fi
+      fi
+
+      # Make sure dlfiles contains only unique files that won't be dlpreopened
+      old_dlfiles="$dlfiles"
+      dlfiles=
+      for lib in $old_dlfiles; do
+	case " $dlprefiles $dlfiles " in
+	*" $lib "*) ;;
+	*) dlfiles="$dlfiles $lib" ;;
+	esac
+      done
+
+      # Make sure dlprefiles contains only unique files
+      old_dlprefiles="$dlprefiles"
+      dlprefiles=
+      for lib in $old_dlprefiles; do
+	case "$dlprefiles " in
+	*" $lib "*) ;;
+	*) dlprefiles="$dlprefiles $lib" ;;
+	esac
+      done
+
+      if test "$build_libtool_libs" = yes; then
+	if test -n "$rpath"; then
+	  case $host in
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
+	    # these systems don't actually have a c library (as such)!
+	    ;;
+	  *-*-rhapsody* | *-*-darwin1.[012])
+	    # Rhapsody C library is in the System framework
+	    deplibs="$deplibs -framework System"
+	    ;;
+	  *-*-netbsd*)
+	    # Don't link with libc until the a.out ld.so is fixed.
+	    ;;
+	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	    # Do not include libc due to us having libc/libc_r.
+	    ;;
+	  *-*-sco3.2v5* | *-*-sco5v6*)
+	    # Causes problems with __ctype
+	    ;;
+	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+	    # Compiler inserts libc in the correct place for threads to work
+	    ;;
+ 	  *)
+	    # Add libc to deplibs on all other systems if necessary.
+	    if test "$build_libtool_need_lc" = "yes"; then
+	      deplibs="$deplibs -lc"
+	    fi
+	    ;;
+	  esac
+	fi
+
+	# Transform deplibs into only deplibs that can be linked in shared.
+	name_save=$name
+	libname_save=$libname
+	release_save=$release
+	versuffix_save=$versuffix
+	major_save=$major
+	# I'm not sure if I'm treating the release correctly.  I think
+	# release should show up in the -l (ie -lgmp5) so we don't want to
+	# add it in twice.  Is that correct?
+	release=""
+	versuffix=""
+	major=""
+	newdeplibs=
+	droppeddeps=no
+	case $deplibs_check_method in
+	pass_all)
+	  # Don't check for shared/static.  Everything works.
+	  # This might be a little naive.  We might want to check
+	  # whether the library exists or not.  But this is on
+	  # osf3 & osf4 and I'm not really sure... Just
+	  # implementing what was already the behavior.
+	  newdeplibs=$deplibs
+	  ;;
+	test_compile)
+	  # This code stresses the "libraries are programs" paradigm to its
+	  # limits. Maybe even breaks it.  We compile a program, linking it
+	  # against the deplibs as a proxy for the library.  Then we can check
+	  # whether they linked in statically or dynamically with ldd.
+	  $rm conftest.c
+	  cat > conftest.c <<EOF
+	  int main() { return 0; }
+EOF
+	  $rm conftest
+      if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
+	    ldd_output=`ldd conftest`
+	    for i in $deplibs; do
+	      name=`expr $i : '-l\(.*\)'`
+	      # If $name is empty we are operating on a -L argument.
+              if test "$name" != "" && test "$name" != "0"; then
+		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		  case " $predeps $postdeps " in
+		  *" $i "*)
+		    newdeplibs="$newdeplibs $i"
+		    i=""
+		    ;;
+		  esac
+	        fi
+		if test -n "$i" ; then
+		  libname=`eval \\$echo \"$libname_spec\"`
+		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
+		  set dummy $deplib_matches
+		  deplib_match=$2
+		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+		    newdeplibs="$newdeplibs $i"
+		  else
+		    droppeddeps=yes
+		    $echo
+		    $echo "*** Warning: dynamic linker does not accept needed library $i."
+		    $echo "*** I have the capability to make that library automatically link in when"
+		    $echo "*** you link to this library.  But I can only do this if you have a"
+		    $echo "*** shared version of the library, which I believe you do not have"
+		    $echo "*** because a test_compile did reveal that the linker did not use it for"
+		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
+		  fi
+		fi
+	      else
+		newdeplibs="$newdeplibs $i"
+	      fi
+	    done
+	  else
+	    # Error occurred in the first compile.  Let's try to salvage
+	    # the situation: Compile a separate program for each library.
+	    for i in $deplibs; do
+	      name=`expr $i : '-l\(.*\)'`
+	      # If $name is empty we are operating on a -L argument.
+              if test "$name" != "" && test "$name" != "0"; then
+		$rm conftest
+		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
+		  ldd_output=`ldd conftest`
+		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		    case " $predeps $postdeps " in
+		    *" $i "*)
+		      newdeplibs="$newdeplibs $i"
+		      i=""
+		      ;;
+		    esac
+		  fi
+		  if test -n "$i" ; then
+		    libname=`eval \\$echo \"$libname_spec\"`
+		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
+		    set dummy $deplib_matches
+		    deplib_match=$2
+		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+		      newdeplibs="$newdeplibs $i"
+		    else
+		      droppeddeps=yes
+		      $echo
+		      $echo "*** Warning: dynamic linker does not accept needed library $i."
+		      $echo "*** I have the capability to make that library automatically link in when"
+		      $echo "*** you link to this library.  But I can only do this if you have a"
+		      $echo "*** shared version of the library, which you do not appear to have"
+		      $echo "*** because a test_compile did reveal that the linker did not use this one"
+		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
+		    fi
+		  fi
+		else
+		  droppeddeps=yes
+		  $echo
+		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
+		  $echo "*** make it link in!  You will probably need to install it or some"
+		  $echo "*** library that it depends on before this library will be fully"
+		  $echo "*** functional.  Installing it before continuing would be even better."
+		fi
+	      else
+		newdeplibs="$newdeplibs $i"
+	      fi
+	    done
+	  fi
+	  ;;
+	file_magic*)
+	  set dummy $deplibs_check_method
+	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+	  for a_deplib in $deplibs; do
+	    name=`expr $a_deplib : '-l\(.*\)'`
+	    # If $name is empty we are operating on a -L argument.
+            if test "$name" != "" && test  "$name" != "0"; then
+	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		case " $predeps $postdeps " in
+		*" $a_deplib "*)
+		  newdeplibs="$newdeplibs $a_deplib"
+		  a_deplib=""
+		  ;;
+		esac
+	      fi
+	      if test -n "$a_deplib" ; then
+		libname=`eval \\$echo \"$libname_spec\"`
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+		  for potent_lib in $potential_libs; do
+		      # Follow soft links.
+		      if ls -lLd "$potent_lib" 2>/dev/null \
+			 | grep " -> " >/dev/null; then
+			continue
+		      fi
+		      # The statement above tries to avoid entering an
+		      # endless loop below, in case of cyclic links.
+		      # We might still enter an endless loop, since a link
+		      # loop can be closed while we follow links,
+		      # but so what?
+		      potlib="$potent_lib"
+		      while test -h "$potlib" 2>/dev/null; do
+			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
+			case $potliblink in
+			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
+			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
+			esac
+		      done
+		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
+			 | ${SED} 10q \
+			 | $EGREP "$file_magic_regex" > /dev/null; then
+			newdeplibs="$newdeplibs $a_deplib"
+			a_deplib=""
+			break 2
+		      fi
+		  done
+		done
+	      fi
+	      if test -n "$a_deplib" ; then
+		droppeddeps=yes
+		$echo
+		$echo "*** Warning: linker path does not have real file for library $a_deplib."
+		$echo "*** I have the capability to make that library automatically link in when"
+		$echo "*** you link to this library.  But I can only do this if you have a"
+		$echo "*** shared version of the library, which you do not appear to have"
+		$echo "*** because I did check the linker path looking for a file starting"
+		if test -z "$potlib" ; then
+		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
+		else
+		  $echo "*** with $libname and none of the candidates passed a file format test"
+		  $echo "*** using a file magic. Last file checked: $potlib"
+		fi
+	      fi
+	    else
+	      # Add a -L argument.
+	      newdeplibs="$newdeplibs $a_deplib"
+	    fi
+	  done # Gone through all deplibs.
+	  ;;
+	match_pattern*)
+	  set dummy $deplibs_check_method
+	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+	  for a_deplib in $deplibs; do
+	    name=`expr $a_deplib : '-l\(.*\)'`
+	    # If $name is empty we are operating on a -L argument.
+	    if test -n "$name" && test "$name" != "0"; then
+	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		case " $predeps $postdeps " in
+		*" $a_deplib "*)
+		  newdeplibs="$newdeplibs $a_deplib"
+		  a_deplib=""
+		  ;;
+		esac
+	      fi
+	      if test -n "$a_deplib" ; then
+		libname=`eval \\$echo \"$libname_spec\"`
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+		  for potent_lib in $potential_libs; do
+		    potlib="$potent_lib" # see symlink-check above in file_magic test
+		    if eval $echo \"$potent_lib\" 2>/dev/null \
+		        | ${SED} 10q \
+		        | $EGREP "$match_pattern_regex" > /dev/null; then
+		      newdeplibs="$newdeplibs $a_deplib"
+		      a_deplib=""
+		      break 2
+		    fi
+		  done
+		done
+	      fi
+	      if test -n "$a_deplib" ; then
+		droppeddeps=yes
+		$echo
+		$echo "*** Warning: linker path does not have real file for library $a_deplib."
+		$echo "*** I have the capability to make that library automatically link in when"
+		$echo "*** you link to this library.  But I can only do this if you have a"
+		$echo "*** shared version of the library, which you do not appear to have"
+		$echo "*** because I did check the linker path looking for a file starting"
+		if test -z "$potlib" ; then
+		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
+		else
+		  $echo "*** with $libname and none of the candidates passed a file format test"
+		  $echo "*** using a regex pattern. Last file checked: $potlib"
+		fi
+	      fi
+	    else
+	      # Add a -L argument.
+	      newdeplibs="$newdeplibs $a_deplib"
+	    fi
+	  done # Gone through all deplibs.
+	  ;;
+	none | unknown | *)
+	  newdeplibs=""
+	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
+	    -e 's/ -[LR][^ ]*//g'`
+	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+	    for i in $predeps $postdeps ; do
+	      # can't use Xsed below, because $i might contain '/'
+	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
+	    done
+	  fi
+	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
+	    | grep . >/dev/null; then
+	    $echo
+	    if test "X$deplibs_check_method" = "Xnone"; then
+	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
+	    else
+	      $echo "*** Warning: inter-library dependencies are not known to be supported."
+	    fi
+	    $echo "*** All declared inter-library dependencies are being dropped."
+	    droppeddeps=yes
+	  fi
+	  ;;
+	esac
+	versuffix=$versuffix_save
+	major=$major_save
+	release=$release_save
+	libname=$libname_save
+	name=$name_save
+
+	case $host in
+	*-*-rhapsody* | *-*-darwin1.[012])
+	  # On Rhapsody replace the C library is the System framework
+	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
+	  ;;
+	esac
+
+	if test "$droppeddeps" = yes; then
+	  if test "$module" = yes; then
+	    $echo
+	    $echo "*** Warning: libtool could not satisfy all declared inter-library"
+	    $echo "*** dependencies of module $libname.  Therefore, libtool will create"
+	    $echo "*** a static module, that should work as long as the dlopening"
+	    $echo "*** application is linked with the -dlopen flag."
+	    if test -z "$global_symbol_pipe"; then
+	      $echo
+	      $echo "*** However, this would only work if libtool was able to extract symbol"
+	      $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+	      $echo "*** not find such a program.  So, this module is probably useless."
+	      $echo "*** \`nm' from GNU binutils and a full rebuild may help."
+	    fi
+	    if test "$build_old_libs" = no; then
+	      oldlibs="$output_objdir/$libname.$libext"
+	      build_libtool_libs=module
+	      build_old_libs=yes
+	    else
+	      build_libtool_libs=no
+	    fi
+	  else
+	    $echo "*** The inter-library dependencies that have been dropped here will be"
+	    $echo "*** automatically added whenever a program is linked with this library"
+	    $echo "*** or is declared to -dlopen it."
+
+	    if test "$allow_undefined" = no; then
+	      $echo
+	      $echo "*** Since this library must not contain undefined symbols,"
+	      $echo "*** because either the platform does not support them or"
+	      $echo "*** it was explicitly requested with -no-undefined,"
+	      $echo "*** libtool will only create a static version of it."
+	      if test "$build_old_libs" = no; then
+		oldlibs="$output_objdir/$libname.$libext"
+		build_libtool_libs=module
+		build_old_libs=yes
+	      else
+		build_libtool_libs=no
+	      fi
+	    fi
+	  fi
+	fi
+	# Done checking deplibs!
+	deplibs=$newdeplibs
+      fi
+
+
+      # move library search paths that coincide with paths to not yet
+      # installed libraries to the beginning of the library search list
+      new_libs=
+      for path in $notinst_path; do
+	case " $new_libs " in
+	*" -L$path/$objdir "*) ;;
+	*)
+	  case " $deplibs " in
+	  *" -L$path/$objdir "*)
+	    new_libs="$new_libs -L$path/$objdir" ;;
+	  esac
+	  ;;
+	esac
+      done
+      for deplib in $deplibs; do
+	case $deplib in
+	-L*)
+	  case " $new_libs " in
+	  *" $deplib "*) ;;
+	  *) new_libs="$new_libs $deplib" ;;
+	  esac
+	  ;;
+	*) new_libs="$new_libs $deplib" ;;
+	esac
+      done
+      deplibs="$new_libs"
+
+
+      # All the library-specific variables (install_libdir is set above).
+      library_names=
+      old_library=
+      dlname=
+
+      # Test again, we may have decided not to build it any more
+      if test "$build_libtool_libs" = yes; then
+	if test "$hardcode_into_libs" = yes; then
+	  # Hardcode the library paths
+	  hardcode_libdirs=
+	  dep_rpath=
+	  rpath="$finalize_rpath"
+	  test "$mode" != relink && rpath="$compile_rpath$rpath"
+	  for libdir in $rpath; do
+	    if test -n "$hardcode_libdir_flag_spec"; then
+	      if test -n "$hardcode_libdir_separator"; then
+		if test -z "$hardcode_libdirs"; then
+		  hardcode_libdirs="$libdir"
+		else
+		  # Just accumulate the unique libdirs.
+		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		    ;;
+		  *)
+		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		    ;;
+		  esac
+		fi
+	      else
+		eval flag=\"$hardcode_libdir_flag_spec\"
+		dep_rpath="$dep_rpath $flag"
+	      fi
+	    elif test -n "$runpath_var"; then
+	      case "$perm_rpath " in
+	      *" $libdir "*) ;;
+	      *) perm_rpath="$perm_rpath $libdir" ;;
+	      esac
+	    fi
+	  done
+	  # Substitute the hardcoded libdirs into the rpath.
+	  if test -n "$hardcode_libdir_separator" &&
+	     test -n "$hardcode_libdirs"; then
+	    libdir="$hardcode_libdirs"
+	    if test -n "$hardcode_libdir_flag_spec_ld"; then
+	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
+	    else
+	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
+	    fi
+	  fi
+	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
+	    # We should set the runpath_var.
+	    rpath=
+	    for dir in $perm_rpath; do
+	      rpath="$rpath$dir:"
+	    done
+	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+	  fi
+	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
+	fi
+
+	shlibpath="$finalize_shlibpath"
+	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+	if test -n "$shlibpath"; then
+	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
+	fi
+
+	# Get the real and link names of the library.
+	eval shared_ext=\"$shrext_cmds\"
+	eval library_names=\"$library_names_spec\"
+	set dummy $library_names
+	realname="$2"
+	shift; shift
+
+	if test -n "$soname_spec"; then
+	  eval soname=\"$soname_spec\"
+	else
+	  soname="$realname"
+	fi
+	if test -z "$dlname"; then
+	  dlname=$soname
+	fi
+
+	lib="$output_objdir/$realname"
+	linknames=
+	for link
+	do
+	  linknames="$linknames $link"
+	done
+
+	# Use standard objects if they are pic
+	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+
+	# Prepare the list of exported symbols
+	if test -z "$export_symbols"; then
+	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
+	    $show "generating symbol list for \`$libname.la'"
+	    export_symbols="$output_objdir/$libname.exp"
+	    $run $rm $export_symbols
+	    cmds=$export_symbols_cmds
+	    save_ifs="$IFS"; IFS='~'
+	    for cmd in $cmds; do
+	      IFS="$save_ifs"
+	      eval cmd=\"$cmd\"
+	      if len=`expr "X$cmd" : ".*"` &&
+	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	        $show "$cmd"
+	        $run eval "$cmd" || exit $?
+	        skipped_export=false
+	      else
+	        # The command line is too long to execute in one step.
+	        $show "using reloadable object file for export list..."
+	        skipped_export=:
+		# Break out early, otherwise skipped_export may be
+		# set to false by a later but shorter cmd.
+		break
+	      fi
+	    done
+	    IFS="$save_ifs"
+	    if test -n "$export_symbols_regex"; then
+	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
+	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
+	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
+	    fi
+	  fi
+	fi
+
+	if test -n "$export_symbols" && test -n "$include_expsyms"; then
+	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
+	fi
+
+	tmp_deplibs=
+	for test_deplib in $deplibs; do
+		case " $convenience " in
+		*" $test_deplib "*) ;;
+		*)
+			tmp_deplibs="$tmp_deplibs $test_deplib"
+			;;
+		esac
+	done
+	deplibs="$tmp_deplibs"
+
+	if test -n "$convenience"; then
+	  if test -n "$whole_archive_flag_spec"; then
+	    save_libobjs=$libobjs
+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+	  else
+	    gentop="$output_objdir/${outputname}x"
+	    generated="$generated $gentop"
+
+	    func_extract_archives $gentop $convenience
+	    libobjs="$libobjs $func_extract_archives_result"
+	  fi
+	fi
+	
+	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+	  eval flag=\"$thread_safe_flag_spec\"
+	  linker_flags="$linker_flags $flag"
+	fi
+
+	# Make a backup of the uninstalled library when relinking
+	if test "$mode" = relink; then
+	  $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
+	fi
+
+	# Do each of the archive commands.
+	if test "$module" = yes && test -n "$module_cmds" ; then
+	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+	    eval test_cmds=\"$module_expsym_cmds\"
+	    cmds=$module_expsym_cmds
+	  else
+	    eval test_cmds=\"$module_cmds\"
+	    cmds=$module_cmds
+	  fi
+	else
+	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+	  eval test_cmds=\"$archive_expsym_cmds\"
+	  cmds=$archive_expsym_cmds
+	else
+	  eval test_cmds=\"$archive_cmds\"
+	  cmds=$archive_cmds
+	  fi
+	fi
+
+	if test "X$skipped_export" != "X:" &&
+	   len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
+	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	  :
+	else
+	  # The command line is too long to link in one step, link piecewise.
+	  $echo "creating reloadable object files..."
+
+	  # Save the value of $output and $libobjs because we want to
+	  # use them later.  If we have whole_archive_flag_spec, we
+	  # want to use save_libobjs as it was before
+	  # whole_archive_flag_spec was expanded, because we can't
+	  # assume the linker understands whole_archive_flag_spec.
+	  # This may have to be revisited, in case too many
+	  # convenience libraries get linked in and end up exceeding
+	  # the spec.
+	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
+	    save_libobjs=$libobjs
+	  fi
+	  save_output=$output
+	  output_la=`$echo "X$output" | $Xsed -e "$basename"`
+
+	  # Clear the reloadable object creation command queue and
+	  # initialize k to one.
+	  test_cmds=
+	  concat_cmds=
+	  objlist=
+	  delfiles=
+	  last_robj=
+	  k=1
+	  output=$output_objdir/$output_la-${k}.$objext
+	  # Loop over the list of objects to be linked.
+	  for obj in $save_libobjs
+	  do
+	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
+	    if test "X$objlist" = X ||
+	       { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
+		 test "$len" -le "$max_cmd_len"; }; then
+	      objlist="$objlist $obj"
+	    else
+	      # The command $test_cmds is almost too long, add a
+	      # command to the queue.
+	      if test "$k" -eq 1 ; then
+		# The first file doesn't have a previous command to add.
+		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
+	      else
+		# All subsequent reloadable object files will link in
+		# the last one created.
+		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
+	      fi
+	      last_robj=$output_objdir/$output_la-${k}.$objext
+	      k=`expr $k + 1`
+	      output=$output_objdir/$output_la-${k}.$objext
+	      objlist=$obj
+	      len=1
+	    fi
+	  done
+	  # Handle the remaining objects by creating one last
+	  # reloadable object file.  All subsequent reloadable object
+	  # files will link in the last one created.
+	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
+
+	  if ${skipped_export-false}; then
+	    $show "generating symbol list for \`$libname.la'"
+	    export_symbols="$output_objdir/$libname.exp"
+	    $run $rm $export_symbols
+	    libobjs=$output
+	    # Append the command to create the export file.
+	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
+          fi
+
+	  # Set up a command to remove the reloadable object files
+	  # after they are used.
+	  i=0
+	  while test "$i" -lt "$k"
+	  do
+	    i=`expr $i + 1`
+	    delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
+	  done
+
+	  $echo "creating a temporary reloadable object file: $output"
+
+	  # Loop through the commands generated above and execute them.
+	  save_ifs="$IFS"; IFS='~'
+	  for cmd in $concat_cmds; do
+	    IFS="$save_ifs"
+	    $show "$cmd"
+	    $run eval "$cmd" || exit $?
+	  done
+	  IFS="$save_ifs"
+
+	  libobjs=$output
+	  # Restore the value of output.
+	  output=$save_output
+
+	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+	  fi
+	  # Expand the library linking commands again to reset the
+	  # value of $libobjs for piecewise linking.
+
+	  # Do each of the archive commands.
+	  if test "$module" = yes && test -n "$module_cmds" ; then
+	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+	      cmds=$module_expsym_cmds
+	    else
+	      cmds=$module_cmds
+	    fi
+	  else
+	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+	    cmds=$archive_expsym_cmds
+	  else
+	    cmds=$archive_cmds
+	    fi
+	  fi
+
+	  # Append the command to remove the reloadable object files
+	  # to the just-reset $cmds.
+	  eval cmds=\"\$cmds~\$rm $delfiles\"
+	fi
+	save_ifs="$IFS"; IFS='~'
+	for cmd in $cmds; do
+	  IFS="$save_ifs"
+	  eval cmd=\"$cmd\"
+	  $show "$cmd"
+	  $run eval "$cmd" || {
+	    lt_exit=$?
+
+	    # Restore the uninstalled library and exit
+	    if test "$mode" = relink; then
+	      $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
+	    fi
+
+	    exit $lt_exit
+	  }
+	done
+	IFS="$save_ifs"
+
+	# Restore the uninstalled library and exit
+	if test "$mode" = relink; then
+	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
+
+	  if test -n "$convenience"; then
+	    if test -z "$whole_archive_flag_spec"; then
+	      $show "${rm}r $gentop"
+	      $run ${rm}r "$gentop"
+	    fi
+	  fi
+
+	  exit $EXIT_SUCCESS
+	fi
+
+	# Create links to the real library.
+	for linkname in $linknames; do
+	  if test "$realname" != "$linkname"; then
+	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
+	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
+	  fi
+	done
+
+	# If -module or -export-dynamic was specified, set the dlname.
+	if test "$module" = yes || test "$export_dynamic" = yes; then
+	  # On all known operating systems, these are identical.
+	  dlname="$soname"
+	fi
+      fi
+      ;;
+
+    obj)
+      if test -n "$deplibs"; then
+	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
+      fi
+
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
+      fi
+
+      if test -n "$rpath"; then
+	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
+      fi
+
+      if test -n "$xrpath"; then
+	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
+      fi
+
+      if test -n "$vinfo"; then
+	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
+      fi
+
+      if test -n "$release"; then
+	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
+      fi
+
+      case $output in
+      *.lo)
+	if test -n "$objs$old_deplibs"; then
+	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+	libobj="$output"
+	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
+	;;
+      *)
+	libobj=
+	obj="$output"
+	;;
+      esac
+
+      # Delete the old objects.
+      $run $rm $obj $libobj
+
+      # Objects from convenience libraries.  This assumes
+      # single-version convenience libraries.  Whenever we create
+      # different ones for PIC/non-PIC, this we'll have to duplicate
+      # the extraction.
+      reload_conv_objs=
+      gentop=
+      # reload_cmds runs $LD directly, so let us get rid of
+      # -Wl from whole_archive_flag_spec and hope we can get by with
+      # turning comma into space..
+      wl=
+
+      if test -n "$convenience"; then
+	if test -n "$whole_archive_flag_spec"; then
+	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
+      reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
+	else
+	  gentop="$output_objdir/${obj}x"
+	  generated="$generated $gentop"
+
+	  func_extract_archives $gentop $convenience
+	  reload_conv_objs="$reload_objs $func_extract_archives_result"
+	fi
+      fi
+
+      # Create the old-style object.
+      reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+
+      output="$obj"
+      cmds=$reload_cmds
+      save_ifs="$IFS"; IFS='~'
+      for cmd in $cmds; do
+	IFS="$save_ifs"
+	eval cmd=\"$cmd\"
+	$show "$cmd"
+	$run eval "$cmd" || exit $?
+      done
+      IFS="$save_ifs"
+
+      # Exit if we aren't doing a library object file.
+      if test -z "$libobj"; then
+	if test -n "$gentop"; then
+	  $show "${rm}r $gentop"
+	  $run ${rm}r $gentop
+	fi
+
+	exit $EXIT_SUCCESS
+      fi
+
+      if test "$build_libtool_libs" != yes; then
+	if test -n "$gentop"; then
+	  $show "${rm}r $gentop"
+	  $run ${rm}r $gentop
+	fi
+
+	# Create an invalid libtool object if no PIC, so that we don't
+	# accidentally link it into a program.
+	# $show "echo timestamp > $libobj"
+	# $run eval "echo timestamp > $libobj" || exit $?
+	exit $EXIT_SUCCESS
+      fi
+
+      if test -n "$pic_flag" || test "$pic_mode" != default; then
+	# Only do commands if we really have different PIC objects.
+	reload_objs="$libobjs $reload_conv_objs"
+	output="$libobj"
+	cmds=$reload_cmds
+	save_ifs="$IFS"; IFS='~'
+	for cmd in $cmds; do
+	  IFS="$save_ifs"
+	  eval cmd=\"$cmd\"
+	  $show "$cmd"
+	  $run eval "$cmd" || exit $?
+	done
+	IFS="$save_ifs"
+      fi
+
+      if test -n "$gentop"; then
+	$show "${rm}r $gentop"
+	$run ${rm}r $gentop
+      fi
+
+      exit $EXIT_SUCCESS
+      ;;
+
+    prog)
+      case $host in
+	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
+      esac
+      if test -n "$vinfo"; then
+	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
+      fi
+
+      if test -n "$release"; then
+	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
+      fi
+
+      if test "$preload" = yes; then
+	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
+	   test "$dlopen_self_static" = unknown; then
+	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
+	fi
+      fi
+
+      case $host in
+      *-*-rhapsody* | *-*-darwin1.[012])
+	# On Rhapsody replace the C library is the System framework
+	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
+	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
+	;;
+      esac
+
+      case $host in
+      *darwin*)
+        # Don't allow lazy linking, it breaks C++ global constructors
+        if test "$tagname" = CXX ; then
+        compile_command="$compile_command ${wl}-bind_at_load"
+        finalize_command="$finalize_command ${wl}-bind_at_load"
+        fi
+        ;;
+      esac
+
+
+      # move library search paths that coincide with paths to not yet
+      # installed libraries to the beginning of the library search list
+      new_libs=
+      for path in $notinst_path; do
+	case " $new_libs " in
+	*" -L$path/$objdir "*) ;;
+	*)
+	  case " $compile_deplibs " in
+	  *" -L$path/$objdir "*)
+	    new_libs="$new_libs -L$path/$objdir" ;;
+	  esac
+	  ;;
+	esac
+      done
+      for deplib in $compile_deplibs; do
+	case $deplib in
+	-L*)
+	  case " $new_libs " in
+	  *" $deplib "*) ;;
+	  *) new_libs="$new_libs $deplib" ;;
+	  esac
+	  ;;
+	*) new_libs="$new_libs $deplib" ;;
+	esac
+      done
+      compile_deplibs="$new_libs"
+
+
+      compile_command="$compile_command $compile_deplibs"
+      finalize_command="$finalize_command $finalize_deplibs"
+
+      if test -n "$rpath$xrpath"; then
+	# If the user specified any rpath flags, then add them.
+	for libdir in $rpath $xrpath; do
+	  # This is the magic to use -rpath.
+	  case "$finalize_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_rpath="$finalize_rpath $libdir" ;;
+	  esac
+	done
+      fi
+
+      # Now hardcode the library paths
+      rpath=
+      hardcode_libdirs=
+      for libdir in $compile_rpath $finalize_rpath; do
+	if test -n "$hardcode_libdir_flag_spec"; then
+	  if test -n "$hardcode_libdir_separator"; then
+	    if test -z "$hardcode_libdirs"; then
+	      hardcode_libdirs="$libdir"
+	    else
+	      # Just accumulate the unique libdirs.
+	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		;;
+	      *)
+		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		;;
+	      esac
+	    fi
+	  else
+	    eval flag=\"$hardcode_libdir_flag_spec\"
+	    rpath="$rpath $flag"
+	  fi
+	elif test -n "$runpath_var"; then
+	  case "$perm_rpath " in
+	  *" $libdir "*) ;;
+	  *) perm_rpath="$perm_rpath $libdir" ;;
+	  esac
+	fi
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+	  testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
+	  case :$dllsearchpath: in
+	  *":$libdir:"*) ;;
+	  *) dllsearchpath="$dllsearchpath:$libdir";;
+	  esac
+	  case :$dllsearchpath: in
+	  *":$testbindir:"*) ;;
+	  *) dllsearchpath="$dllsearchpath:$testbindir";;
+	  esac
+	  ;;
+	esac
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+	 test -n "$hardcode_libdirs"; then
+	libdir="$hardcode_libdirs"
+	eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      compile_rpath="$rpath"
+
+      rpath=
+      hardcode_libdirs=
+      for libdir in $finalize_rpath; do
+	if test -n "$hardcode_libdir_flag_spec"; then
+	  if test -n "$hardcode_libdir_separator"; then
+	    if test -z "$hardcode_libdirs"; then
+	      hardcode_libdirs="$libdir"
+	    else
+	      # Just accumulate the unique libdirs.
+	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		;;
+	      *)
+		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		;;
+	      esac
+	    fi
+	  else
+	    eval flag=\"$hardcode_libdir_flag_spec\"
+	    rpath="$rpath $flag"
+	  fi
+	elif test -n "$runpath_var"; then
+	  case "$finalize_perm_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
+	  esac
+	fi
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+	 test -n "$hardcode_libdirs"; then
+	libdir="$hardcode_libdirs"
+	eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      finalize_rpath="$rpath"
+
+      if test -n "$libobjs" && test "$build_old_libs" = yes; then
+	# Transform all the library objects into standard objects.
+	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+      fi
+
+      dlsyms=
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	if test -n "$NM" && test -n "$global_symbol_pipe"; then
+	  dlsyms="${outputname}S.c"
+	else
+	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
+	fi
+      fi
+
+      if test -n "$dlsyms"; then
+	case $dlsyms in
+	"") ;;
+	*.c)
+	  # Discover the nlist of each of the dlfiles.
+	  nlist="$output_objdir/${outputname}.nm"
+
+	  $show "$rm $nlist ${nlist}S ${nlist}T"
+	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
+
+	  # Parse the name list into a source file.
+	  $show "creating $output_objdir/$dlsyms"
+
+	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
+/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
+/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
+
+#ifdef __cplusplus
+extern \"C\" {
+#endif
+
+/* Prevent the only kind of declaration conflicts we can make. */
+#define lt_preloaded_symbols some_other_symbol
+
+/* External symbol declarations for the compiler. */\
+"
+
+	  if test "$dlself" = yes; then
+	    $show "generating symbol list for \`$output'"
+
+	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
+
+	    # Add our own program objects to the symbol list.
+	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	    for arg in $progfiles; do
+	      $show "extracting global C symbols from \`$arg'"
+	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+	    done
+
+	    if test -n "$exclude_expsyms"; then
+	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+	      $run eval '$mv "$nlist"T "$nlist"'
+	    fi
+
+	    if test -n "$export_symbols_regex"; then
+	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+	      $run eval '$mv "$nlist"T "$nlist"'
+	    fi
+
+	    # Prepare the list of exported symbols
+	    if test -z "$export_symbols"; then
+	      export_symbols="$output_objdir/$outputname.exp"
+	      $run $rm $export_symbols
+	      $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+              case $host in
+              *cygwin* | *mingw* )
+	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+		$run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
+                ;;
+              esac
+	    else
+	      $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+	      $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
+	      $run eval 'mv "$nlist"T "$nlist"'
+              case $host in
+              *cygwin* | *mingw* )
+	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+		$run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
+                ;;
+              esac
+	    fi
+	  fi
+
+	  for arg in $dlprefiles; do
+	    $show "extracting global C symbols from \`$arg'"
+	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
+	    $run eval '$echo ": $name " >> "$nlist"'
+	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+	  done
+
+	  if test -z "$run"; then
+	    # Make sure we have at least an empty file.
+	    test -f "$nlist" || : > "$nlist"
+
+	    if test -n "$exclude_expsyms"; then
+	      $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+	      $mv "$nlist"T "$nlist"
+	    fi
+
+	    # Try sorting and uniquifying the output.
+	    if grep -v "^: " < "$nlist" |
+		if sort -k 3 </dev/null >/dev/null 2>&1; then
+		  sort -k 3
+		else
+		  sort +2
+		fi |
+		uniq > "$nlist"S; then
+	      :
+	    else
+	      grep -v "^: " < "$nlist" > "$nlist"S
+	    fi
+
+	    if test -f "$nlist"S; then
+	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
+	    else
+	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
+	    fi
+
+	    $echo >> "$output_objdir/$dlsyms" "\
+
+#undef lt_preloaded_symbols
+
+#if defined (__STDC__) && __STDC__
+# define lt_ptr void *
+#else
+# define lt_ptr char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+"
+
+	    case $host in
+	    *cygwin* | *mingw* )
+	  $echo >> "$output_objdir/$dlsyms" "\
+/* DATA imports from DLLs on WIN32 can't be const, because
+   runtime relocations are performed -- see ld's documentation
+   on pseudo-relocs */
+struct {
+"
+	      ;;
+	    * )
+	  $echo >> "$output_objdir/$dlsyms" "\
+const struct {
+"
+	      ;;
+	    esac
+
+
+	  $echo >> "$output_objdir/$dlsyms" "\
+  const char *name;
+  lt_ptr address;
+}
+lt_preloaded_symbols[] =
+{\
+"
+
+	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
+
+	    $echo >> "$output_objdir/$dlsyms" "\
+  {0, (lt_ptr) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif\
+"
+	  fi
+
+	  pic_flag_for_symtable=
+	  case $host in
+	  # compiling the symbol table file with pic_flag works around
+	  # a FreeBSD bug that causes programs to crash when -lm is
+	  # linked before any other PIC object.  But we must not use
+	  # pic_flag when linking with -static.  The problem exists in
+	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+	    case "$compile_command " in
+	    *" -static "*) ;;
+	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
+	    esac;;
+	  *-*-hpux*)
+	    case "$compile_command " in
+	    *" -static "*) ;;
+	    *) pic_flag_for_symtable=" $pic_flag";;
+	    esac
+	  esac
+
+	  # Now compile the dynamic symbol file.
+	  $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
+	  $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
+
+	  # Clean up the generated files.
+	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
+	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
+
+	  # Transform the symbol file into the correct name.
+          case $host in
+          *cygwin* | *mingw* )
+            if test -f "$output_objdir/${outputname}.def" ; then
+              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
+              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
+            else
+              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
+              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
+             fi
+            ;;
+          * )
+            compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
+            finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
+            ;;
+          esac
+	  ;;
+	*)
+	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+      else
+	# We keep going just in case the user didn't refer to
+	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
+	# really was required.
+
+	# Nullify the symbol file.
+	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
+	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
+      fi
+
+      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
+	# Replace the output file specification.
+	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP`
+	link_command="$compile_command$compile_rpath"
+
+	# We have no uninstalled library dependencies, so finalize right now.
+	$show "$link_command"
+	$run eval "$link_command"
+	exit_status=$?
+
+	# Delete the generated files.
+	if test -n "$dlsyms"; then
+	  $show "$rm $output_objdir/${outputname}S.${objext}"
+	  $run $rm "$output_objdir/${outputname}S.${objext}"
+	fi
+
+	exit $exit_status
+      fi
+
+      if test -n "$shlibpath_var"; then
+	# We should set the shlibpath_var
+	rpath=
+	for dir in $temp_rpath; do
+	  case $dir in
+	  [\\/]* | [A-Za-z]:[\\/]*)
+	    # Absolute path.
+	    rpath="$rpath$dir:"
+	    ;;
+	  *)
+	    # Relative path: add a thisdir entry.
+	    rpath="$rpath\$thisdir/$dir:"
+	    ;;
+	  esac
+	done
+	temp_rpath="$rpath"
+      fi
+
+      if test -n "$compile_shlibpath$finalize_shlibpath"; then
+	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
+      fi
+      if test -n "$finalize_shlibpath"; then
+	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+      fi
+
+      compile_var=
+      finalize_var=
+      if test -n "$runpath_var"; then
+	if test -n "$perm_rpath"; then
+	  # We should set the runpath_var.
+	  rpath=
+	  for dir in $perm_rpath; do
+	    rpath="$rpath$dir:"
+	  done
+	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+	fi
+	if test -n "$finalize_perm_rpath"; then
+	  # We should set the runpath_var.
+	  rpath=
+	  for dir in $finalize_perm_rpath; do
+	    rpath="$rpath$dir:"
+	  done
+	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+	fi
+      fi
+
+      if test "$no_install" = yes; then
+	# We don't need to create a wrapper script.
+	link_command="$compile_var$compile_command$compile_rpath"
+	# Replace the output file specification.
+	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+	# Delete the old output file.
+	$run $rm $output
+	# Link the executable and exit
+	$show "$link_command"
+	$run eval "$link_command" || exit $?
+	exit $EXIT_SUCCESS
+      fi
+
+      if test "$hardcode_action" = relink; then
+	# Fast installation is not supported
+	link_command="$compile_var$compile_command$compile_rpath"
+	relink_command="$finalize_var$finalize_command$finalize_rpath"
+
+	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
+	$echo "$modename: \`$output' will be relinked during installation" 1>&2
+      else
+	if test "$fast_install" != no; then
+	  link_command="$finalize_var$compile_command$finalize_rpath"
+	  if test "$fast_install" = yes; then
+	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP`
+	  else
+	    # fast_install is set to needless
+	    relink_command=
+	  fi
+	else
+	  link_command="$compile_var$compile_command$compile_rpath"
+	  relink_command="$finalize_var$finalize_command$finalize_rpath"
+	fi
+      fi
+
+      # Replace the output file specification.
+      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+
+      # Delete the old output files.
+      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
+
+      $show "$link_command"
+      $run eval "$link_command" || exit $?
+
+      # Now create the wrapper script.
+      $show "creating $output"
+
+      # Quote the relink command for shipping.
+      if test -n "$relink_command"; then
+	# Preserve any variables that may affect compiler behavior
+	for var in $variables_saved_for_relink; do
+	  if eval test -z \"\${$var+set}\"; then
+	    relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
+	  elif eval var_value=\$$var; test -z "$var_value"; then
+	    relink_command="$var=; export $var; $relink_command"
+	  else
+	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
+	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
+	  fi
+	done
+	relink_command="(cd `pwd`; $relink_command)"
+	relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
+      fi
+
+      # Quote $echo for shipping.
+      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
+	case $progpath in
+	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
+	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
+	esac
+	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
+      else
+	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
+      fi
+
+      # Only actually do things if our run command is non-null.
+      if test -z "$run"; then
+	# win32 will think the script is a binary if it has
+	# a .exe suffix, so we strip it off here.
+	case $output in
+	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
+	esac
+	# test for cygwin because mv fails w/o .exe extensions
+	case $host in
+	  *cygwin*)
+	    exeext=.exe
+	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
+	  *) exeext= ;;
+	esac
+	case $host in
+	  *cygwin* | *mingw* )
+            output_name=`basename $output`
+            output_path=`dirname $output`
+            cwrappersource="$output_path/$objdir/lt-$output_name.c"
+            cwrapper="$output_path/$output_name.exe"
+            $rm $cwrappersource $cwrapper
+            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
+
+	    cat > $cwrappersource <<EOF
+
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
+   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+
+   The $output program cannot be directly executed until all the libtool
+   libraries that it depends on are installed.
+
+   This wrapper executable should never be moved out of the build directory.
+   If it is, it will not operate correctly.
+
+   Currently, it simply execs the wrapper *script* "/bin/sh $output",
+   but could eventually absorb all of the scripts functionality and
+   exec $objdir/$outputname directly.
+*/
+EOF
+	    cat >> $cwrappersource<<"EOF"
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <malloc.h>
+#include <stdarg.h>
+#include <assert.h>
+#include <string.h>
+#include <ctype.h>
+#include <sys/stat.h>
+
+#if defined(PATH_MAX)
+# define LT_PATHMAX PATH_MAX
+#elif defined(MAXPATHLEN)
+# define LT_PATHMAX MAXPATHLEN
+#else
+# define LT_PATHMAX 1024
+#endif
+
+#ifndef DIR_SEPARATOR
+# define DIR_SEPARATOR '/'
+# define PATH_SEPARATOR ':'
+#endif
+
+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
+  defined (__OS2__)
+# define HAVE_DOS_BASED_FILE_SYSTEM
+# ifndef DIR_SEPARATOR_2
+#  define DIR_SEPARATOR_2 '\\'
+# endif
+# ifndef PATH_SEPARATOR_2
+#  define PATH_SEPARATOR_2 ';'
+# endif
+#endif
+
+#ifndef DIR_SEPARATOR_2
+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
+#else /* DIR_SEPARATOR_2 */
+# define IS_DIR_SEPARATOR(ch) \
+        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
+#endif /* DIR_SEPARATOR_2 */
+
+#ifndef PATH_SEPARATOR_2
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
+#else /* PATH_SEPARATOR_2 */
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
+#endif /* PATH_SEPARATOR_2 */
+
+#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
+#define XFREE(stale) do { \
+  if (stale) { free ((void *) stale); stale = 0; } \
+} while (0)
+
+/* -DDEBUG is fairly common in CFLAGS.  */
+#undef DEBUG
+#if defined DEBUGWRAPPER
+# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
+#else
+# define DEBUG(format, ...)
+#endif
+
+const char *program_name = NULL;
+
+void * xmalloc (size_t num);
+char * xstrdup (const char *string);
+const char * base_name (const char *name);
+char * find_executable(const char *wrapper);
+int    check_executable(const char *path);
+char * strendzap(char *str, const char *pat);
+void lt_fatal (const char *message, ...);
+
+int
+main (int argc, char *argv[])
+{
+  char **newargz;
+  int i;
+
+  program_name = (char *) xstrdup (base_name (argv[0]));
+  DEBUG("(main) argv[0]      : %s\n",argv[0]);
+  DEBUG("(main) program_name : %s\n",program_name);
+  newargz = XMALLOC(char *, argc+2);
+EOF
+
+            cat >> $cwrappersource <<EOF
+  newargz[0] = (char *) xstrdup("$SHELL");
+EOF
+
+            cat >> $cwrappersource <<"EOF"
+  newargz[1] = find_executable(argv[0]);
+  if (newargz[1] == NULL)
+    lt_fatal("Couldn't find %s", argv[0]);
+  DEBUG("(main) found exe at : %s\n",newargz[1]);
+  /* we know the script has the same name, without the .exe */
+  /* so make sure newargz[1] doesn't end in .exe */
+  strendzap(newargz[1],".exe");
+  for (i = 1; i < argc; i++)
+    newargz[i+1] = xstrdup(argv[i]);
+  newargz[argc+1] = NULL;
+
+  for (i=0; i<argc+1; i++)
+  {
+    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
+    ;
+  }
+
+EOF
+
+            case $host_os in
+              mingw*)
+                cat >> $cwrappersource <<EOF
+  execv("$SHELL",(char const **)newargz);
+EOF
+              ;;
+              *)
+                cat >> $cwrappersource <<EOF
+  execv("$SHELL",newargz);
+EOF
+              ;;
+            esac
+
+            cat >> $cwrappersource <<"EOF"
+  return 127;
+}
+
+void *
+xmalloc (size_t num)
+{
+  void * p = (void *) malloc (num);
+  if (!p)
+    lt_fatal ("Memory exhausted");
+
+  return p;
+}
+
+char *
+xstrdup (const char *string)
+{
+  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
+;
+}
+
+const char *
+base_name (const char *name)
+{
+  const char *base;
+
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  /* Skip over the disk name in MSDOS pathnames. */
+  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
+    name += 2;
+#endif
+
+  for (base = name; *name; name++)
+    if (IS_DIR_SEPARATOR (*name))
+      base = name + 1;
+  return base;
+}
+
+int
+check_executable(const char * path)
+{
+  struct stat st;
+
+  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
+  if ((!path) || (!*path))
+    return 0;
+
+  if ((stat (path, &st) >= 0) &&
+      (
+        /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
+#if defined (S_IXOTH)
+       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
+#endif
+#if defined (S_IXGRP)
+       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
+#endif
+       ((st.st_mode & S_IXUSR) == S_IXUSR))
+      )
+    return 1;
+  else
+    return 0;
+}
+
+/* Searches for the full path of the wrapper.  Returns
+   newly allocated full path name if found, NULL otherwise */
+char *
+find_executable (const char* wrapper)
+{
+  int has_slash = 0;
+  const char* p;
+  const char* p_next;
+  /* static buffer for getcwd */
+  char tmp[LT_PATHMAX + 1];
+  int tmp_len;
+  char* concat_name;
+
+  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
+
+  if ((wrapper == NULL) || (*wrapper == '\0'))
+    return NULL;
+
+  /* Absolute path? */
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
+  {
+    concat_name = xstrdup (wrapper);
+    if (check_executable(concat_name))
+      return concat_name;
+    XFREE(concat_name);
+  }
+  else
+  {
+#endif
+    if (IS_DIR_SEPARATOR (wrapper[0]))
+    {
+      concat_name = xstrdup (wrapper);
+      if (check_executable(concat_name))
+        return concat_name;
+      XFREE(concat_name);
+    }
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  }
+#endif
+
+  for (p = wrapper; *p; p++)
+    if (*p == '/')
+    {
+      has_slash = 1;
+      break;
+    }
+  if (!has_slash)
+  {
+    /* no slashes; search PATH */
+    const char* path = getenv ("PATH");
+    if (path != NULL)
+    {
+      for (p = path; *p; p = p_next)
+      {
+        const char* q;
+        size_t p_len;
+        for (q = p; *q; q++)
+          if (IS_PATH_SEPARATOR(*q))
+            break;
+        p_len = q - p;
+        p_next = (*q == '\0' ? q : q + 1);
+        if (p_len == 0)
+        {
+          /* empty path: current directory */
+          if (getcwd (tmp, LT_PATHMAX) == NULL)
+            lt_fatal ("getcwd failed");
+          tmp_len = strlen(tmp);
+          concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
+          memcpy (concat_name, tmp, tmp_len);
+          concat_name[tmp_len] = '/';
+          strcpy (concat_name + tmp_len + 1, wrapper);
+        }
+        else
+        {
+          concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
+          memcpy (concat_name, p, p_len);
+          concat_name[p_len] = '/';
+          strcpy (concat_name + p_len + 1, wrapper);
+        }
+        if (check_executable(concat_name))
+          return concat_name;
+        XFREE(concat_name);
+      }
+    }
+    /* not found in PATH; assume curdir */
+  }
+  /* Relative path | not found in path: prepend cwd */
+  if (getcwd (tmp, LT_PATHMAX) == NULL)
+    lt_fatal ("getcwd failed");
+  tmp_len = strlen(tmp);
+  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
+  memcpy (concat_name, tmp, tmp_len);
+  concat_name[tmp_len] = '/';
+  strcpy (concat_name + tmp_len + 1, wrapper);
+
+  if (check_executable(concat_name))
+    return concat_name;
+  XFREE(concat_name);
+  return NULL;
+}
+
+char *
+strendzap(char *str, const char *pat)
+{
+  size_t len, patlen;
+
+  assert(str != NULL);
+  assert(pat != NULL);
+
+  len = strlen(str);
+  patlen = strlen(pat);
+
+  if (patlen <= len)
+  {
+    str += len - patlen;
+    if (strcmp(str, pat) == 0)
+      *str = '\0';
+  }
+  return str;
+}
+
+static void
+lt_error_core (int exit_status, const char * mode,
+          const char * message, va_list ap)
+{
+  fprintf (stderr, "%s: %s: ", program_name, mode);
+  vfprintf (stderr, message, ap);
+  fprintf (stderr, ".\n");
+
+  if (exit_status >= 0)
+    exit (exit_status);
+}
+
+void
+lt_fatal (const char *message, ...)
+{
+  va_list ap;
+  va_start (ap, message);
+  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
+  va_end (ap);
+}
+EOF
+          # we should really use a build-platform specific compiler
+          # here, but OTOH, the wrappers (shell script and this C one)
+          # are only useful if you want to execute the "real" binary.
+          # Since the "real" binary is built for $host, then this
+          # wrapper might as well be built for $host, too.
+          $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
+          ;;
+        esac
+        $rm $output
+        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
+
+	$echo > $output "\
+#! $SHELL
+
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# The $output program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='${SED} -e 1s/^X//'
+sed_quote_subst='$sed_quote_subst'
+
+# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
+if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command=\"$relink_command\"
+
+# This environment variable determines our operation mode.
+if test \"\$libtool_install_magic\" = \"$magic\"; then
+  # install mode needs the following variable:
+  notinst_deplibs='$notinst_deplibs'
+else
+  # When we are sourced in execute mode, \$file and \$echo are already set.
+  if test \"\$libtool_execute_magic\" != \"$magic\"; then
+    echo=\"$qecho\"
+    file=\"\$0\"
+    # Make sure echo works.
+    if test \"X\$1\" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
+      # Yippee, \$echo works!
+      :
+    else
+      # Restart under the correct shell, and then maybe \$echo will work.
+      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
+    fi
+  fi\
+"
+	$echo >> $output "\
+
+  # Find the directory that this script lives in.
+  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
+  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
+  while test -n \"\$file\"; do
+    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
+
+    # If there was a directory component, then change thisdir.
+    if test \"x\$destdir\" != \"x\$file\"; then
+      case \"\$destdir\" in
+      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
+      *) thisdir=\"\$thisdir/\$destdir\" ;;
+      esac
+    fi
+
+    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
+    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
+  done
+
+  # Try to get the absolute directory name.
+  absdir=\`cd \"\$thisdir\" && pwd\`
+  test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
+
+	if test "$fast_install" = yes; then
+	  $echo >> $output "\
+  program=lt-'$outputname'$exeext
+  progdir=\"\$thisdir/$objdir\"
+
+  if test ! -f \"\$progdir/\$program\" || \\
+     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
+       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+
+    file=\"\$\$-\$program\"
+
+    if test ! -d \"\$progdir\"; then
+      $mkdir \"\$progdir\"
+    else
+      $rm \"\$progdir/\$file\"
+    fi"
+
+	  $echo >> $output "\
+
+    # relink executable if necessary
+    if test -n \"\$relink_command\"; then
+      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+      else
+	$echo \"\$relink_command_output\" >&2
+	$rm \"\$progdir/\$file\"
+	exit $EXIT_FAILURE
+      fi
+    fi
+
+    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+    { $rm \"\$progdir/\$program\";
+      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+    $rm \"\$progdir/\$file\"
+  fi"
+	else
+	  $echo >> $output "\
+  program='$outputname'
+  progdir=\"\$thisdir/$objdir\"
+"
+	fi
+
+	$echo >> $output "\
+
+  if test -f \"\$progdir/\$program\"; then"
+
+	# Export our shlibpath_var if we have one.
+	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+	  $echo >> $output "\
+    # Add our own library path to $shlibpath_var
+    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
+
+    # Some systems cannot cope with colon-terminated $shlibpath_var
+    # The second colon is a workaround for a bug in BeOS R4 sed
+    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
+
+    export $shlibpath_var
+"
+	fi
+
+	# fixup the dll searchpath if we need to.
+	if test -n "$dllsearchpath"; then
+	  $echo >> $output "\
+    # Add the dll search path components to the executable PATH
+    PATH=$dllsearchpath:\$PATH
+"
+	fi
+
+	$echo >> $output "\
+    if test \"\$libtool_execute_magic\" != \"$magic\"; then
+      # Run the actual program with our arguments.
+"
+	case $host in
+	# Backslashes separate directories on plain windows
+	*-*-mingw | *-*-os2*)
+	  $echo >> $output "\
+      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+"
+	  ;;
+
+	*)
+	  $echo >> $output "\
+      exec \"\$progdir/\$program\" \${1+\"\$@\"}
+"
+	  ;;
+	esac
+	$echo >> $output "\
+      \$echo \"\$0: cannot exec \$program \$*\"
+      exit $EXIT_FAILURE
+    fi
+  else
+    # The program doesn't exist.
+    \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
+    \$echo \"This script is just a wrapper for \$program.\" 1>&2
+    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
+    exit $EXIT_FAILURE
+  fi
+fi\
+"
+	chmod +x $output
+      fi
+      exit $EXIT_SUCCESS
+      ;;
+    esac
+
+    # See if we need to build an old-fashioned archive.
+    for oldlib in $oldlibs; do
+
+      if test "$build_libtool_libs" = convenience; then
+	oldobjs="$libobjs_save"
+	addlibs="$convenience"
+	build_libtool_libs=no
+      else
+	if test "$build_libtool_libs" = module; then
+	  oldobjs="$libobjs_save"
+	  build_libtool_libs=no
+	else
+	  oldobjs="$old_deplibs $non_pic_objects"
+	fi
+	addlibs="$old_convenience"
+      fi
+
+      if test -n "$addlibs"; then
+	gentop="$output_objdir/${outputname}x"
+	generated="$generated $gentop"
+
+	func_extract_archives $gentop $addlibs
+	oldobjs="$oldobjs $func_extract_archives_result"
+      fi
+
+      # Do each command in the archive commands.
+      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
+       cmds=$old_archive_from_new_cmds
+      else
+	# POSIX demands no paths to be encoded in archives.  We have
+	# to avoid creating archives with duplicate basenames if we
+	# might have to extract them afterwards, e.g., when creating a
+	# static archive out of a convenience library, or when linking
+	# the entirety of a libtool archive into another (currently
+	# not supported by libtool).
+	if (for obj in $oldobjs
+	    do
+	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
+	    done | sort | sort -uc >/dev/null 2>&1); then
+	  :
+	else
+	  $echo "copying selected object files to avoid basename conflicts..."
+
+	  if test -z "$gentop"; then
+	    gentop="$output_objdir/${outputname}x"
+	    generated="$generated $gentop"
+
+	    $show "${rm}r $gentop"
+	    $run ${rm}r "$gentop"
+	    $show "$mkdir $gentop"
+	    $run $mkdir "$gentop"
+	    exit_status=$?
+	    if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
+	      exit $exit_status
+	    fi
+	  fi
+
+	  save_oldobjs=$oldobjs
+	  oldobjs=
+	  counter=1
+	  for obj in $save_oldobjs
+	  do
+	    objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
+	    case " $oldobjs " in
+	    " ") oldobjs=$obj ;;
+	    *[\ /]"$objbase "*)
+	      while :; do
+		# Make sure we don't pick an alternate name that also
+		# overlaps.
+		newobj=lt$counter-$objbase
+		counter=`expr $counter + 1`
+		case " $oldobjs " in
+		*[\ /]"$newobj "*) ;;
+		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
+		esac
+	      done
+	      $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
+	      $run ln "$obj" "$gentop/$newobj" ||
+	      $run cp "$obj" "$gentop/$newobj"
+	      oldobjs="$oldobjs $gentop/$newobj"
+	      ;;
+	    *) oldobjs="$oldobjs $obj" ;;
+	    esac
+	  done
+	fi
+
+	eval cmds=\"$old_archive_cmds\"
+
+	if len=`expr "X$cmds" : ".*"` &&
+	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	  cmds=$old_archive_cmds
+	else
+	  # the command line is too long to link in one step, link in parts
+	  $echo "using piecewise archive linking..."
+	  save_RANLIB=$RANLIB
+	  RANLIB=:
+	  objlist=
+	  concat_cmds=
+	  save_oldobjs=$oldobjs
+
+	  # Is there a better way of finding the last object in the list?
+	  for obj in $save_oldobjs
+	  do
+	    last_oldobj=$obj
+	  done
+	  for obj in $save_oldobjs
+	  do
+	    oldobjs="$objlist $obj"
+	    objlist="$objlist $obj"
+	    eval test_cmds=\"$old_archive_cmds\"
+	    if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
+	       test "$len" -le "$max_cmd_len"; then
+	      :
+	    else
+	      # the above command should be used before it gets too long
+	      oldobjs=$objlist
+	      if test "$obj" = "$last_oldobj" ; then
+	        RANLIB=$save_RANLIB
+	      fi
+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
+	      objlist=
+	    fi
+	  done
+	  RANLIB=$save_RANLIB
+	  oldobjs=$objlist
+	  if test "X$oldobjs" = "X" ; then
+	    eval cmds=\"\$concat_cmds\"
+	  else
+	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
+	  fi
+	fi
+      fi
+      save_ifs="$IFS"; IFS='~'
+      for cmd in $cmds; do
+        eval cmd=\"$cmd\"
+	IFS="$save_ifs"
+	$show "$cmd"
+	$run eval "$cmd" || exit $?
+      done
+      IFS="$save_ifs"
+    done
+
+    if test -n "$generated"; then
+      $show "${rm}r$generated"
+      $run ${rm}r$generated
+    fi
+
+    # Now create the libtool archive.
+    case $output in
+    *.la)
+      old_library=
+      test "$build_old_libs" = yes && old_library="$libname.$libext"
+      $show "creating $output"
+
+      # Preserve any variables that may affect compiler behavior
+      for var in $variables_saved_for_relink; do
+	if eval test -z \"\${$var+set}\"; then
+	  relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
+	elif eval var_value=\$$var; test -z "$var_value"; then
+	  relink_command="$var=; export $var; $relink_command"
+	else
+	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
+	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
+	fi
+      done
+      # Quote the link command for shipping.
+      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
+      if test "$hardcode_automatic" = yes ; then
+	relink_command=
+      fi
+
+
+      # Only create the output if not a dry run.
+      if test -z "$run"; then
+	for installed in no yes; do
+	  if test "$installed" = yes; then
+	    if test -z "$install_libdir"; then
+	      break
+	    fi
+	    output="$output_objdir/$outputname"i
+	    # Replace all uninstalled libtool libraries with the installed ones
+	    newdependency_libs=
+	    for deplib in $dependency_libs; do
+	      case $deplib in
+	      *.la)
+		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
+		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		if test -z "$libdir"; then
+		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
+		  exit $EXIT_FAILURE
+		fi
+		newdependency_libs="$newdependency_libs $libdir/$name"
+		;;
+	      *) newdependency_libs="$newdependency_libs $deplib" ;;
+	      esac
+	    done
+	    dependency_libs="$newdependency_libs"
+	    newdlfiles=
+	    for lib in $dlfiles; do
+	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+	      if test -z "$libdir"; then
+		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+		exit $EXIT_FAILURE
+	      fi
+	      newdlfiles="$newdlfiles $libdir/$name"
+	    done
+	    dlfiles="$newdlfiles"
+	    newdlprefiles=
+	    for lib in $dlprefiles; do
+	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+	      if test -z "$libdir"; then
+		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+		exit $EXIT_FAILURE
+	      fi
+	      newdlprefiles="$newdlprefiles $libdir/$name"
+	    done
+	    dlprefiles="$newdlprefiles"
+	  else
+	    newdlfiles=
+	    for lib in $dlfiles; do
+	      case $lib in
+		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+		*) abs=`pwd`"/$lib" ;;
+	      esac
+	      newdlfiles="$newdlfiles $abs"
+	    done
+	    dlfiles="$newdlfiles"
+	    newdlprefiles=
+	    for lib in $dlprefiles; do
+	      case $lib in
+		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+		*) abs=`pwd`"/$lib" ;;
+	      esac
+	      newdlprefiles="$newdlprefiles $abs"
+	    done
+	    dlprefiles="$newdlprefiles"
+	  fi
+	  $rm $output
+	  # place dlname in correct position for cygwin
+	  tdlname=$dlname
+	  case $host,$output,$installed,$module,$dlname in
+	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+	  esac
+	  $echo > $output "\
+# $outputname - a libtool library file
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='$tdlname'
+
+# Names of this library.
+library_names='$library_names'
+
+# The name of the static archive.
+old_library='$old_library'
+
+# Libraries that this one depends upon.
+dependency_libs='$dependency_libs'
+
+# Version information for $libname.
+current=$current
+age=$age
+revision=$revision
+
+# Is this an already installed library?
+installed=$installed
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=$module
+
+# Files to dlopen/dlpreopen
+dlopen='$dlfiles'
+dlpreopen='$dlprefiles'
+
+# Directory that this library needs to be installed in:
+libdir='$install_libdir'"
+	  if test "$installed" = no && test "$need_relink" = yes; then
+	    $echo >> $output "\
+relink_command=\"$relink_command\""
+	  fi
+	done
+      fi
+
+      # Do a symbolic link so that the libtool archive can be found in
+      # LD_LIBRARY_PATH before the program is installed.
+      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
+      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
+      ;;
+    esac
+    exit $EXIT_SUCCESS
+    ;;
+
+  # libtool install mode
+  install)
+    modename="$modename: install"
+
+    # There may be an optional sh(1) argument at the beginning of
+    # install_prog (especially on Windows NT).
+    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
+       # Allow the use of GNU shtool's install command.
+       $echo "X$nonopt" | grep shtool > /dev/null; then
+      # Aesthetically quote it.
+      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
+      case $arg in
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	arg="\"$arg\""
+	;;
+      esac
+      install_prog="$arg "
+      arg="$1"
+      shift
+    else
+      install_prog=
+      arg=$nonopt
+    fi
+
+    # The real first argument should be the name of the installation program.
+    # Aesthetically quote it.
+    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+    case $arg in
+    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+      arg="\"$arg\""
+      ;;
+    esac
+    install_prog="$install_prog$arg"
+
+    # We need to accept at least all the BSD install flags.
+    dest=
+    files=
+    opts=
+    prev=
+    install_type=
+    isdir=no
+    stripme=
+    for arg
+    do
+      if test -n "$dest"; then
+	files="$files $dest"
+	dest=$arg
+	continue
+      fi
+
+      case $arg in
+      -d) isdir=yes ;;
+      -f) 
+      	case " $install_prog " in
+	*[\\\ /]cp\ *) ;;
+	*) prev=$arg ;;
+	esac
+	;;
+      -g | -m | -o) prev=$arg ;;
+      -s)
+	stripme=" -s"
+	continue
+	;;
+      -*)
+	;;
+      *)
+	# If the previous option needed an argument, then skip it.
+	if test -n "$prev"; then
+	  prev=
+	else
+	  dest=$arg
+	  continue
+	fi
+	;;
+      esac
+
+      # Aesthetically quote the argument.
+      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+      case $arg in
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	arg="\"$arg\""
+	;;
+      esac
+      install_prog="$install_prog $arg"
+    done
+
+    if test -z "$install_prog"; then
+      $echo "$modename: you must specify an install program" 1>&2
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
+
+    if test -n "$prev"; then
+      $echo "$modename: the \`$prev' option requires an argument" 1>&2
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
+
+    if test -z "$files"; then
+      if test -z "$dest"; then
+	$echo "$modename: no file or destination specified" 1>&2
+      else
+	$echo "$modename: you must specify a destination" 1>&2
+      fi
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
+
+    # Strip any trailing slash from the destination.
+    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
+
+    # Check to see that the destination is a directory.
+    test -d "$dest" && isdir=yes
+    if test "$isdir" = yes; then
+      destdir="$dest"
+      destname=
+    else
+      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
+      test "X$destdir" = "X$dest" && destdir=.
+      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
+
+      # Not a directory, so check to see that there is only one file specified.
+      set dummy $files
+      if test "$#" -gt 2; then
+	$echo "$modename: \`$dest' is not a directory" 1>&2
+	$echo "$help" 1>&2
+	exit $EXIT_FAILURE
+      fi
+    fi
+    case $destdir in
+    [\\/]* | [A-Za-z]:[\\/]*) ;;
+    *)
+      for file in $files; do
+	case $file in
+	*.lo) ;;
+	*)
+	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
+	  $echo "$help" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+      done
+      ;;
+    esac
+
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic="$magic"
+
+    staticlibs=
+    future_libdirs=
+    current_libdirs=
+    for file in $files; do
+
+      # Do each installation.
+      case $file in
+      *.$libext)
+	# Do the static libraries later.
+	staticlibs="$staticlibs $file"
+	;;
+
+      *.la)
+	# Check to see that this really is a libtool archive.
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+	else
+	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
+	  $echo "$help" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+
+	library_names=
+	old_library=
+	relink_command=
+	# If there is no directory component, then add one.
+	case $file in
+	*/* | *\\*) . $file ;;
+	*) . ./$file ;;
+	esac
+
+	# Add the libdir to current_libdirs if it is the destination.
+	if test "X$destdir" = "X$libdir"; then
+	  case "$current_libdirs " in
+	  *" $libdir "*) ;;
+	  *) current_libdirs="$current_libdirs $libdir" ;;
+	  esac
+	else
+	  # Note the libdir as a future libdir.
+	  case "$future_libdirs " in
+	  *" $libdir "*) ;;
+	  *) future_libdirs="$future_libdirs $libdir" ;;
+	  esac
+	fi
+
+	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
+	test "X$dir" = "X$file/" && dir=
+	dir="$dir$objdir"
+
+	if test -n "$relink_command"; then
+	  # Determine the prefix the user has applied to our future dir.
+	  inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
+
+	  # Don't allow the user to place us outside of our expected
+	  # location b/c this prevents finding dependent libraries that
+	  # are installed to the same prefix.
+	  # At present, this check doesn't affect windows .dll's that
+	  # are installed into $libdir/../bin (currently, that works fine)
+	  # but it's something to keep an eye on.
+	  if test "$inst_prefix_dir" = "$destdir"; then
+	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+
+	  if test -n "$inst_prefix_dir"; then
+	    # Stick the inst_prefix_dir data into the link command.
+	    relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP`
+	  else
+	    relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP`
+	  fi
+
+	  $echo "$modename: warning: relinking \`$file'" 1>&2
+	  $show "$relink_command"
+	  if $run eval "$relink_command"; then :
+	  else
+	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+	fi
+
+	# See the names of the shared library.
+	set dummy $library_names
+	if test -n "$2"; then
+	  realname="$2"
+	  shift
+	  shift
+
+	  srcname="$realname"
+	  test -n "$relink_command" && srcname="$realname"T
+
+	  # Install the shared library and build the symlinks.
+	  $show "$install_prog $dir/$srcname $destdir/$realname"
+	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
+	  if test -n "$stripme" && test -n "$striplib"; then
+	    $show "$striplib $destdir/$realname"
+	    $run eval "$striplib $destdir/$realname" || exit $?
+	  fi
+
+	  if test "$#" -gt 0; then
+	    # Delete the old symlinks, and create new ones.
+	    # Try `ln -sf' first, because the `ln' binary might depend on
+	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
+	    # so we also need to try rm && ln -s.
+	    for linkname
+	    do
+	      if test "$linkname" != "$realname"; then
+                $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
+                $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
+	      fi
+	    done
+	  fi
+
+	  # Do each command in the postinstall commands.
+	  lib="$destdir/$realname"
+	  cmds=$postinstall_cmds
+	  save_ifs="$IFS"; IFS='~'
+	  for cmd in $cmds; do
+	    IFS="$save_ifs"
+	    eval cmd=\"$cmd\"
+	    $show "$cmd"
+	    $run eval "$cmd" || {
+	      lt_exit=$?
+
+	      # Restore the uninstalled library and exit
+	      if test "$mode" = relink; then
+		$run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
+	      fi
+
+	      exit $lt_exit
+	    }
+	  done
+	  IFS="$save_ifs"
+	fi
+
+	# Install the pseudo-library for information purposes.
+	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+	instname="$dir/$name"i
+	$show "$install_prog $instname $destdir/$name"
+	$run eval "$install_prog $instname $destdir/$name" || exit $?
+
+	# Maybe install the static library, too.
+	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
+	;;
+
+      *.lo)
+	# Install (i.e. copy) a libtool object.
+
+	# Figure out destination file name, if it wasn't already specified.
+	if test -n "$destname"; then
+	  destfile="$destdir/$destname"
+	else
+	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+	  destfile="$destdir/$destfile"
+	fi
+
+	# Deduce the name of the destination old-style object file.
+	case $destfile in
+	*.lo)
+	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
+	  ;;
+	*.$objext)
+	  staticdest="$destfile"
+	  destfile=
+	  ;;
+	*)
+	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
+	  $echo "$help" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+
+	# Install the libtool object if requested.
+	if test -n "$destfile"; then
+	  $show "$install_prog $file $destfile"
+	  $run eval "$install_prog $file $destfile" || exit $?
+	fi
+
+	# Install the old object if enabled.
+	if test "$build_old_libs" = yes; then
+	  # Deduce the name of the old-style object file.
+	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
+
+	  $show "$install_prog $staticobj $staticdest"
+	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
+	fi
+	exit $EXIT_SUCCESS
+	;;
+
+      *)
+	# Figure out destination file name, if it wasn't already specified.
+	if test -n "$destname"; then
+	  destfile="$destdir/$destname"
+	else
+	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+	  destfile="$destdir/$destfile"
+	fi
+
+	# If the file is missing, and there is a .exe on the end, strip it
+	# because it is most likely a libtool script we actually want to
+	# install
+	stripped_ext=""
+	case $file in
+	  *.exe)
+	    if test ! -f "$file"; then
+	      file=`$echo $file|${SED} 's,.exe$,,'`
+	      stripped_ext=".exe"
+	    fi
+	    ;;
+	esac
+
+	# Do a test to see if this is really a libtool program.
+	case $host in
+	*cygwin*|*mingw*)
+	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
+	    ;;
+	*)
+	    wrapper=$file
+	    ;;
+	esac
+	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
+	  notinst_deplibs=
+	  relink_command=
+
+	  # Note that it is not necessary on cygwin/mingw to append a dot to
+	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
+	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
+	  # `FILE.' does not work on cygwin managed mounts.
+	  #
+	  # If there is no directory component, then add one.
+	  case $wrapper in
+	  */* | *\\*) . ${wrapper} ;;
+	  *) . ./${wrapper} ;;
+	  esac
+
+	  # Check the variables that should have been set.
+	  if test -z "$notinst_deplibs"; then
+	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+
+	  finalize=yes
+	  for lib in $notinst_deplibs; do
+	    # Check to see that each library is installed.
+	    libdir=
+	    if test -f "$lib"; then
+	      # If there is no directory component, then add one.
+	      case $lib in
+	      */* | *\\*) . $lib ;;
+	      *) . ./$lib ;;
+	      esac
+	    fi
+	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
+	    if test -n "$libdir" && test ! -f "$libfile"; then
+	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
+	      finalize=no
+	    fi
+	  done
+
+	  relink_command=
+	  # Note that it is not necessary on cygwin/mingw to append a dot to
+	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
+	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
+	  # `FILE.' does not work on cygwin managed mounts.
+	  #
+	  # If there is no directory component, then add one.
+	  case $wrapper in
+	  */* | *\\*) . ${wrapper} ;;
+	  *) . ./${wrapper} ;;
+	  esac
+
+	  outputname=
+	  if test "$fast_install" = no && test -n "$relink_command"; then
+	    if test "$finalize" = yes && test -z "$run"; then
+	      tmpdir=`func_mktempdir`
+	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
+	      outputname="$tmpdir/$file"
+	      # Replace the output file specification.
+	      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP`
+
+	      $show "$relink_command"
+	      if $run eval "$relink_command"; then :
+	      else
+		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
+		${rm}r "$tmpdir"
+		continue
+	      fi
+	      file="$outputname"
+	    else
+	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
+	    fi
+	  else
+	    # Install the binary that we compiled earlier.
+	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
+	  fi
+	fi
+
+	# remove .exe since cygwin /usr/bin/install will append another
+	# one anyway 
+	case $install_prog,$host in
+	*/usr/bin/install*,*cygwin*)
+	  case $file:$destfile in
+	  *.exe:*.exe)
+	    # this is ok
+	    ;;
+	  *.exe:*)
+	    destfile=$destfile.exe
+	    ;;
+	  *:*.exe)
+	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
+	    ;;
+	  esac
+	  ;;
+	esac
+	$show "$install_prog$stripme $file $destfile"
+	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
+	test -n "$outputname" && ${rm}r "$tmpdir"
+	;;
+      esac
+    done
+
+    for file in $staticlibs; do
+      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+
+      # Set up the ranlib parameters.
+      oldlib="$destdir/$name"
+
+      $show "$install_prog $file $oldlib"
+      $run eval "$install_prog \$file \$oldlib" || exit $?
+
+      if test -n "$stripme" && test -n "$old_striplib"; then
+	$show "$old_striplib $oldlib"
+	$run eval "$old_striplib $oldlib" || exit $?
+      fi
+
+      # Do each command in the postinstall commands.
+      cmds=$old_postinstall_cmds
+      save_ifs="$IFS"; IFS='~'
+      for cmd in $cmds; do
+	IFS="$save_ifs"
+	eval cmd=\"$cmd\"
+	$show "$cmd"
+	$run eval "$cmd" || exit $?
+      done
+      IFS="$save_ifs"
+    done
+
+    if test -n "$future_libdirs"; then
+      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
+    fi
+
+    if test -n "$current_libdirs"; then
+      # Maybe just do a dry run.
+      test -n "$run" && current_libdirs=" -n$current_libdirs"
+      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
+    else
+      exit $EXIT_SUCCESS
+    fi
+    ;;
+
+  # libtool finish mode
+  finish)
+    modename="$modename: finish"
+    libdirs="$nonopt"
+    admincmds=
+
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+      for dir
+      do
+	libdirs="$libdirs $dir"
+      done
+
+      for libdir in $libdirs; do
+	if test -n "$finish_cmds"; then
+	  # Do each command in the finish commands.
+	  cmds=$finish_cmds
+	  save_ifs="$IFS"; IFS='~'
+	  for cmd in $cmds; do
+	    IFS="$save_ifs"
+	    eval cmd=\"$cmd\"
+	    $show "$cmd"
+	    $run eval "$cmd" || admincmds="$admincmds
+       $cmd"
+	  done
+	  IFS="$save_ifs"
+	fi
+	if test -n "$finish_eval"; then
+	  # Do the single finish_eval.
+	  eval cmds=\"$finish_eval\"
+	  $run eval "$cmds" || admincmds="$admincmds
+       $cmds"
+	fi
+      done
+    fi
+
+    # Exit here if they wanted silent mode.
+    test "$show" = : && exit $EXIT_SUCCESS
+
+    $echo "X----------------------------------------------------------------------" | $Xsed
+    $echo "Libraries have been installed in:"
+    for libdir in $libdirs; do
+      $echo "   $libdir"
+    done
+    $echo
+    $echo "If you ever happen to want to link against installed libraries"
+    $echo "in a given directory, LIBDIR, you must either use libtool, and"
+    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
+    $echo "flag during linking and do at least one of the following:"
+    if test -n "$shlibpath_var"; then
+      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
+      $echo "     during execution"
+    fi
+    if test -n "$runpath_var"; then
+      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
+      $echo "     during linking"
+    fi
+    if test -n "$hardcode_libdir_flag_spec"; then
+      libdir=LIBDIR
+      eval flag=\"$hardcode_libdir_flag_spec\"
+
+      $echo "   - use the \`$flag' linker flag"
+    fi
+    if test -n "$admincmds"; then
+      $echo "   - have your system administrator run these commands:$admincmds"
+    fi
+    if test -f /etc/ld.so.conf; then
+      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+    fi
+    $echo
+    $echo "See any operating system documentation about shared libraries for"
+    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
+    $echo "X----------------------------------------------------------------------" | $Xsed
+    exit $EXIT_SUCCESS
+    ;;
+
+  # libtool execute mode
+  execute)
+    modename="$modename: execute"
+
+    # The first argument is the command name.
+    cmd="$nonopt"
+    if test -z "$cmd"; then
+      $echo "$modename: you must specify a COMMAND" 1>&2
+      $echo "$help"
+      exit $EXIT_FAILURE
+    fi
+
+    # Handle -dlopen flags immediately.
+    for file in $execute_dlfiles; do
+      if test ! -f "$file"; then
+	$echo "$modename: \`$file' is not a file" 1>&2
+	$echo "$help" 1>&2
+	exit $EXIT_FAILURE
+      fi
+
+      dir=
+      case $file in
+      *.la)
+	# Check to see that this really is a libtool archive.
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+	else
+	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+	  $echo "$help" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+
+	# Read the libtool library.
+	dlname=
+	library_names=
+
+	# If there is no directory component, then add one.
+	case $file in
+	*/* | *\\*) . $file ;;
+	*) . ./$file ;;
+	esac
+
+	# Skip this library if it cannot be dlopened.
+	if test -z "$dlname"; then
+	  # Warn if it was a shared library.
+	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
+	  continue
+	fi
+
+	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+	test "X$dir" = "X$file" && dir=.
+
+	if test -f "$dir/$objdir/$dlname"; then
+	  dir="$dir/$objdir"
+	else
+	  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+	;;
+
+      *.lo)
+	# Just add the directory containing the .lo file.
+	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+	test "X$dir" = "X$file" && dir=.
+	;;
+
+      *)
+	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
+	continue
+	;;
+      esac
+
+      # Get the absolute pathname.
+      absdir=`cd "$dir" && pwd`
+      test -n "$absdir" && dir="$absdir"
+
+      # Now add the directory to shlibpath_var.
+      if eval "test -z \"\$$shlibpath_var\""; then
+	eval "$shlibpath_var=\"\$dir\""
+      else
+	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
+      fi
+    done
+
+    # This variable tells wrapper scripts just to set shlibpath_var
+    # rather than running their programs.
+    libtool_execute_magic="$magic"
+
+    # Check if any of the arguments is a wrapper script.
+    args=
+    for file
+    do
+      case $file in
+      -*) ;;
+      *)
+	# Do a test to see if this is really a libtool program.
+	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+	  # If there is no directory component, then add one.
+	  case $file in
+	  */* | *\\*) . $file ;;
+	  *) . ./$file ;;
+	  esac
+
+	  # Transform arg to wrapped name.
+	  file="$progdir/$program"
+	fi
+	;;
+      esac
+      # Quote arguments (to preserve shell metacharacters).
+      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
+      args="$args \"$file\""
+    done
+
+    if test -z "$run"; then
+      if test -n "$shlibpath_var"; then
+	# Export the shlibpath_var.
+	eval "export $shlibpath_var"
+      fi
+
+      # Restore saved environment variables
+      for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+      do
+       eval "if test \"\${save_$lt_var+set}\" = set; then
+               $lt_var=\$save_$lt_var; export $lt_var
+             fi"
+      done
+
+
+      # Now prepare to actually exec the command.
+      exec_cmd="\$cmd$args"
+    else
+      # Display what would be done.
+      if test -n "$shlibpath_var"; then
+	eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
+	$echo "export $shlibpath_var"
+      fi
+      $echo "$cmd$args"
+      exit $EXIT_SUCCESS
+    fi
+    ;;
+
+  # libtool clean and uninstall mode
+  clean | uninstall)
+    modename="$modename: $mode"
+    rm="$nonopt"
+    files=
+    rmforce=
+    exit_status=0
+
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic="$magic"
+
+    for arg
+    do
+      case $arg in
+      -f) rm="$rm $arg"; rmforce=yes ;;
+      -*) rm="$rm $arg" ;;
+      *) files="$files $arg" ;;
+      esac
+    done
+
+    if test -z "$rm"; then
+      $echo "$modename: you must specify an RM program" 1>&2
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
+
+    rmdirs=
+
+    origobjdir="$objdir"
+    for file in $files; do
+      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+      if test "X$dir" = "X$file"; then
+	dir=.
+	objdir="$origobjdir"
+      else
+	objdir="$dir/$origobjdir"
+      fi
+      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+      test "$mode" = uninstall && objdir="$dir"
+
+      # Remember objdir for removal later, being careful to avoid duplicates
+      if test "$mode" = clean; then
+	case " $rmdirs " in
+	  *" $objdir "*) ;;
+	  *) rmdirs="$rmdirs $objdir" ;;
+	esac
+      fi
+
+      # Don't error if the file doesn't exist and rm -f was used.
+      if (test -L "$file") >/dev/null 2>&1 \
+	|| (test -h "$file") >/dev/null 2>&1 \
+	|| test -f "$file"; then
+	:
+      elif test -d "$file"; then
+	exit_status=1
+	continue
+      elif test "$rmforce" = yes; then
+	continue
+      fi
+
+      rmfiles="$file"
+
+      case $name in
+      *.la)
+	# Possibly a libtool archive, so verify it.
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+	  . $dir/$name
+
+	  # Delete the libtool libraries and symlinks.
+	  for n in $library_names; do
+	    rmfiles="$rmfiles $objdir/$n"
+	  done
+	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
+
+	  case "$mode" in
+	  clean)
+	    case "  $library_names " in
+	    # "  " in the beginning catches empty $dlname
+	    *" $dlname "*) ;;
+	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
+	    esac
+	     test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
+	    ;;
+	  uninstall)
+	    if test -n "$library_names"; then
+	      # Do each command in the postuninstall commands.
+	      cmds=$postuninstall_cmds
+	      save_ifs="$IFS"; IFS='~'
+	      for cmd in $cmds; do
+		IFS="$save_ifs"
+		eval cmd=\"$cmd\"
+		$show "$cmd"
+		$run eval "$cmd"
+		if test "$?" -ne 0 && test "$rmforce" != yes; then
+		  exit_status=1
+		fi
+	      done
+	      IFS="$save_ifs"
+	    fi
+
+	    if test -n "$old_library"; then
+	      # Do each command in the old_postuninstall commands.
+	      cmds=$old_postuninstall_cmds
+	      save_ifs="$IFS"; IFS='~'
+	      for cmd in $cmds; do
+		IFS="$save_ifs"
+		eval cmd=\"$cmd\"
+		$show "$cmd"
+		$run eval "$cmd"
+		if test "$?" -ne 0 && test "$rmforce" != yes; then
+		  exit_status=1
+		fi
+	      done
+	      IFS="$save_ifs"
+	    fi
+	    # FIXME: should reinstall the best remaining shared library.
+	    ;;
+	  esac
+	fi
+	;;
+
+      *.lo)
+	# Possibly a libtool object, so verify it.
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+
+	  # Read the .lo file
+	  . $dir/$name
+
+	  # Add PIC object to the list of files to remove.
+	  if test -n "$pic_object" \
+	     && test "$pic_object" != none; then
+	    rmfiles="$rmfiles $dir/$pic_object"
+	  fi
+
+	  # Add non-PIC object to the list of files to remove.
+	  if test -n "$non_pic_object" \
+	     && test "$non_pic_object" != none; then
+	    rmfiles="$rmfiles $dir/$non_pic_object"
+	  fi
+	fi
+	;;
+
+      *)
+	if test "$mode" = clean ; then
+	  noexename=$name
+	  case $file in
+	  *.exe)
+	    file=`$echo $file|${SED} 's,.exe$,,'`
+	    noexename=`$echo $name|${SED} 's,.exe$,,'`
+	    # $file with .exe has already been added to rmfiles,
+	    # add $file without .exe
+	    rmfiles="$rmfiles $file"
+	    ;;
+	  esac
+	  # Do a test to see if this is a libtool program.
+	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+	    relink_command=
+	    . $dir/$noexename
+
+	    # note $name still contains .exe if it was in $file originally
+	    # as does the version of $file that was added into $rmfiles
+	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
+	    if test "$fast_install" = yes && test -n "$relink_command"; then
+	      rmfiles="$rmfiles $objdir/lt-$name"
+	    fi
+	    if test "X$noexename" != "X$name" ; then
+	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
+	    fi
+	  fi
+	fi
+	;;
+      esac
+      $show "$rm $rmfiles"
+      $run $rm $rmfiles || exit_status=1
+    done
+    objdir="$origobjdir"
+
+    # Try to remove the ${objdir}s in the directories where we deleted files
+    for dir in $rmdirs; do
+      if test -d "$dir"; then
+	$show "rmdir $dir"
+	$run rmdir $dir >/dev/null 2>&1
+      fi
+    done
+
+    exit $exit_status
+    ;;
+
+  "")
+    $echo "$modename: you must specify a MODE" 1>&2
+    $echo "$generic_help" 1>&2
+    exit $EXIT_FAILURE
+    ;;
+  esac
+
+  if test -z "$exec_cmd"; then
+    $echo "$modename: invalid operation mode \`$mode'" 1>&2
+    $echo "$generic_help" 1>&2
+    exit $EXIT_FAILURE
+  fi
+fi # test -z "$show_help"
+
+if test -n "$exec_cmd"; then
+  eval exec $exec_cmd
+  exit $EXIT_FAILURE
+fi
+
+# We need to display help for each of the modes.
+case $mode in
+"") $echo \
+"Usage: $modename [OPTION]... [MODE-ARG]...
+
+Provide generalized library-building support services.
+
+    --config          show all configuration variables
+    --debug           enable verbose shell tracing
+-n, --dry-run         display commands without modifying any files
+    --features        display basic configuration information and exit
+    --finish          same as \`--mode=finish'
+    --help            display this help message and exit
+    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
+    --quiet           same as \`--silent'
+    --silent          don't print informational messages
+    --tag=TAG         use configuration variables from tag TAG
+    --version         print version information
+
+MODE must be one of the following:
+
+      clean           remove files from the build directory
+      compile         compile a source file into a libtool object
+      execute         automatically set library path, then run a program
+      finish          complete the installation of libtool libraries
+      install         install libraries or executables
+      link            create a library or an executable
+      uninstall       remove libraries from an installed directory
+
+MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
+a more detailed description of MODE.
+
+Report bugs to <bug-libtool@gnu.org>."
+  exit $EXIT_SUCCESS
+  ;;
+
+clean)
+  $echo \
+"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
+
+Remove files from the build directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, object or program, all the files associated
+with it are deleted. Otherwise, only FILE itself is deleted using RM."
+  ;;
+
+compile)
+  $echo \
+"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+
+Compile a source file into a libtool library object.
+
+This mode accepts the following additional options:
+
+  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
+  -prefer-pic       try to building PIC objects only
+  -prefer-non-pic   try to building non-PIC objects only
+  -static           always build a \`.o' file suitable for static linking
+
+COMPILE-COMMAND is a command to be used in creating a \`standard' object file
+from the given SOURCEFILE.
+
+The output file name is determined by removing the directory component from
+SOURCEFILE, then substituting the C source code suffix \`.c' with the
+library object suffix, \`.lo'."
+  ;;
+
+execute)
+  $echo \
+"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
+
+Automatically set library path, then run a program.
+
+This mode accepts the following additional options:
+
+  -dlopen FILE      add the directory containing FILE to the library path
+
+This mode sets the library path environment variable according to \`-dlopen'
+flags.
+
+If any of the ARGS are libtool executable wrappers, then they are translated
+into their corresponding uninstalled binary, and any of their required library
+directories are added to the library path.
+
+Then, COMMAND is executed, with ARGS as arguments."
+  ;;
+
+finish)
+  $echo \
+"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
+
+Complete the installation of libtool libraries.
+
+Each LIBDIR is a directory that contains libtool libraries.
+
+The commands that this mode executes may require superuser privileges.  Use
+the \`--dry-run' option if you just want to see what would be executed."
+  ;;
+
+install)
+  $echo \
+"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
+
+Install executables or libraries.
+
+INSTALL-COMMAND is the installation command.  The first component should be
+either the \`install' or \`cp' program.
+
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+  ;;
+
+link)
+  $echo \
+"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
+
+Link object files or libraries together to form another library, or to
+create an executable program.
+
+LINK-COMMAND is a command using the C compiler that you would use to create
+a program from several object files.
+
+The following components of LINK-COMMAND are treated specially:
+
+  -all-static       do not do any dynamic linking at all
+  -avoid-version    do not add a version suffix if possible
+  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
+  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
+  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+  -export-symbols SYMFILE
+                    try to export only the symbols listed in SYMFILE
+  -export-symbols-regex REGEX
+                    try to export only the symbols matching REGEX
+  -LLIBDIR          search LIBDIR for required installed libraries
+  -lNAME            OUTPUT-FILE requires the installed library libNAME
+  -module           build a library that can dlopened
+  -no-fast-install  disable the fast-install mode
+  -no-install       link a not-installable executable
+  -no-undefined     declare that a library does not refer to external symbols
+  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
+  -objectlist FILE  Use a list of object files found in FILE to specify objects
+  -precious-files-regex REGEX
+                    don't remove output files matching REGEX
+  -release RELEASE  specify package release information
+  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
+  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
+  -static           do not do any dynamic linking of uninstalled libtool libraries
+  -static-libtool-libs
+                    do not do any dynamic linking of libtool libraries
+  -version-info CURRENT[:REVISION[:AGE]]
+                    specify library version info [each variable defaults to 0]
+
+All other options (arguments beginning with \`-') are ignored.
+
+Every other argument is treated as a filename.  Files ending in \`.la' are
+treated as uninstalled libtool libraries, other files are standard or library
+object files.
+
+If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
+only library objects (\`.lo' files) may be specified, and \`-rpath' is
+required, except when creating a convenience library.
+
+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
+using \`ar' and \`ranlib', or on Windows using \`lib'.
+
+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+is created, otherwise an executable program is created."
+  ;;
+
+uninstall)
+  $echo \
+"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
+
+Remove libraries from an installation directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, all the files associated with it are deleted.
+Otherwise, only FILE itself is deleted using RM."
+  ;;
+
+*)
+  $echo "$modename: invalid operation mode \`$mode'" 1>&2
+  $echo "$help" 1>&2
+  exit $EXIT_FAILURE
+  ;;
+esac
+
+$echo
+$echo "Try \`$modename --help' for more information about other modes."
+
+exit $?
+
+# The TAGs below are defined such that we never get into a situation
+# in which we disable both kinds of libraries.  Given conflicting
+# choices, we go for a static library, that is the most portable,
+# since we can't tell whether shared libraries were disabled because
+# the user asked for that or because the platform doesn't support
+# them.  This is particularly important on AIX, because we don't
+# support having both static and shared libraries enabled at the same
+# time on that platform, so we default to a shared-only configuration.
+# If a disable-shared tag is given, we'll fallback to a static-only
+# configuration.  But we'll never go from static-only to shared-only.
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
+disable_libs=shared
+# ### END LIBTOOL TAG CONFIG: disable-shared
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
+disable_libs=static
+# ### END LIBTOOL TAG CONFIG: disable-static
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:
diff --git a/parted-1.8.7/build-aux/mdate-sh b/parted-1.8.7/build-aux/mdate-sh
new file mode 100755
index 0000000..83d2700
--- /dev/null
+++ b/parted-1.8.7/build-aux/mdate-sh
@@ -0,0 +1,205 @@
+#!/bin/sh
+# Get modification time of a file or directory and pretty-print it.
+
+scriptversion=2007-03-30.02
+
+# Copyright (C) 1995, 1996, 1997, 2003, 2004, 2005, 2007 Free Software
+# Foundation, Inc.
+# written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# 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.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+case $1 in
+  '')
+     echo "$0: No file.  Try \`$0 --help' for more information." 1>&2
+     exit 1;
+     ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: mdate-sh [--help] [--version] FILE
+
+Pretty-print the modification time of FILE.
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "mdate-sh $scriptversion"
+    exit $?
+    ;;
+esac
+
+# Prevent date giving response in another language.
+LANG=C
+export LANG
+LC_ALL=C
+export LC_ALL
+LC_TIME=C
+export LC_TIME
+
+# GNU ls changes its time format in response to the TIME_STYLE
+# variable.  Since we cannot assume `unset' works, revert this
+# variable to its documented default.
+if test "${TIME_STYLE+set}" = set; then
+  TIME_STYLE=posix-long-iso
+  export TIME_STYLE
+fi
+
+save_arg1=$1
+
+# Find out how to get the extended ls output of a file or directory.
+if ls -L /dev/null 1>/dev/null 2>&1; then
+  ls_command='ls -L -l -d'
+else
+  ls_command='ls -l -d'
+fi
+# Avoid user/group names that might have spaces, when possible.
+if ls -n /dev/null 1>/dev/null 2>&1; then
+  ls_command="$ls_command -n"
+fi
+
+# A `ls -l' line looks as follows on OS/2.
+#  drwxrwx---        0 Aug 11  2001 foo
+# This differs from Unix, which adds ownership information.
+#  drwxrwx---   2 root  root      4096 Aug 11  2001 foo
+#
+# To find the date, we split the line on spaces and iterate on words
+# until we find a month.  This cannot work with files whose owner is a
+# user named `Jan', or `Feb', etc.  However, it's unlikely that `/'
+# will be owned by a user whose name is a month.  So we first look at
+# the extended ls output of the root directory to decide how many
+# words should be skipped to get the date.
+
+# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below.
+set x`$ls_command /`
+
+# Find which argument is the month.
+month=
+command=
+until test $month
+do
+  shift
+  # Add another shift to the command.
+  command="$command shift;"
+  case $1 in
+    Jan) month=January; nummonth=1;;
+    Feb) month=February; nummonth=2;;
+    Mar) month=March; nummonth=3;;
+    Apr) month=April; nummonth=4;;
+    May) month=May; nummonth=5;;
+    Jun) month=June; nummonth=6;;
+    Jul) month=July; nummonth=7;;
+    Aug) month=August; nummonth=8;;
+    Sep) month=September; nummonth=9;;
+    Oct) month=October; nummonth=10;;
+    Nov) month=November; nummonth=11;;
+    Dec) month=December; nummonth=12;;
+  esac
+done
+
+# Get the extended ls output of the file or directory.
+set dummy x`eval "$ls_command \"\$save_arg1\""`
+
+# Remove all preceding arguments
+eval $command
+
+# Because of the dummy argument above, month is in $2.
+#
+# On a POSIX system, we should have
+#
+# $# = 5
+# $1 = file size
+# $2 = month
+# $3 = day
+# $4 = year or time
+# $5 = filename
+#
+# On Darwin 7.7.0 and 7.6.0, we have
+#
+# $# = 4
+# $1 = day
+# $2 = month
+# $3 = year or time
+# $4 = filename
+
+# Get the month.
+case $2 in
+  Jan) month=January; nummonth=1;;
+  Feb) month=February; nummonth=2;;
+  Mar) month=March; nummonth=3;;
+  Apr) month=April; nummonth=4;;
+  May) month=May; nummonth=5;;
+  Jun) month=June; nummonth=6;;
+  Jul) month=July; nummonth=7;;
+  Aug) month=August; nummonth=8;;
+  Sep) month=September; nummonth=9;;
+  Oct) month=October; nummonth=10;;
+  Nov) month=November; nummonth=11;;
+  Dec) month=December; nummonth=12;;
+esac
+
+case $3 in
+  ???*) day=$1;;
+  *) day=$3; shift;;
+esac
+
+# Here we have to deal with the problem that the ls output gives either
+# the time of day or the year.
+case $3 in
+  *:*) set `date`; eval year=\$$#
+       case $2 in
+	 Jan) nummonthtod=1;;
+	 Feb) nummonthtod=2;;
+	 Mar) nummonthtod=3;;
+	 Apr) nummonthtod=4;;
+	 May) nummonthtod=5;;
+	 Jun) nummonthtod=6;;
+	 Jul) nummonthtod=7;;
+	 Aug) nummonthtod=8;;
+	 Sep) nummonthtod=9;;
+	 Oct) nummonthtod=10;;
+	 Nov) nummonthtod=11;;
+	 Dec) nummonthtod=12;;
+       esac
+       # For the first six month of the year the time notation can also
+       # be used for files modified in the last year.
+       if (expr $nummonth \> $nummonthtod) > /dev/null;
+       then
+	 year=`expr $year - 1`
+       fi;;
+  *) year=$3;;
+esac
+
+# The result.
+echo $day $month $year
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/parted-1.8.7/build-aux/missing b/parted-1.8.7/build-aux/missing
new file mode 100755
index 0000000..1c8ff70
--- /dev/null
+++ b/parted-1.8.7/build-aux/missing
@@ -0,0 +1,367 @@
+#! /bin/sh
+# Common stub for a few missing GNU programs while installing.
+
+scriptversion=2006-05-10.23
+
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006
+#   Free Software Foundation, Inc.
+# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+
+# 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.
+
+if test $# -eq 0; then
+  echo 1>&2 "Try \`$0 --help' for more information"
+  exit 1
+fi
+
+run=:
+sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
+sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
+
+# In the cases where this matters, `missing' is being run in the
+# srcdir already.
+if test -f configure.ac; then
+  configure_ac=configure.ac
+else
+  configure_ac=configure.in
+fi
+
+msg="missing on your system"
+
+case $1 in
+--run)
+  # Try to run requested program, and just exit if it succeeds.
+  run=
+  shift
+  "$@" && exit 0
+  # Exit code 63 means version mismatch.  This often happens
+  # when the user try to use an ancient version of a tool on
+  # a file that requires a minimum version.  In this case we
+  # we should proceed has if the program had been absent, or
+  # if --run hadn't been passed.
+  if test $? = 63; then
+    run=:
+    msg="probably too old"
+  fi
+  ;;
+
+  -h|--h|--he|--hel|--help)
+    echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
+
+Options:
+  -h, --help      display this help and exit
+  -v, --version   output version information and exit
+  --run           try to run the given command, and emulate it if it fails
+
+Supported PROGRAM values:
+  aclocal      touch file \`aclocal.m4'
+  autoconf     touch file \`configure'
+  autoheader   touch file \`config.h.in'
+  autom4te     touch the output file, or create a stub one
+  automake     touch all \`Makefile.in' files
+  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
+  flex         create \`lex.yy.c', if possible, from existing .c
+  help2man     touch the output file
+  lex          create \`lex.yy.c', if possible, from existing .c
+  makeinfo     touch the output file
+  tar          try tar, gnutar, gtar, then tar without non-portable flags
+  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
+
+Send bug reports to <bug-automake@gnu.org>."
+    exit $?
+    ;;
+
+  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+    echo "missing $scriptversion (GNU Automake)"
+    exit $?
+    ;;
+
+  -*)
+    echo 1>&2 "$0: Unknown \`$1' option"
+    echo 1>&2 "Try \`$0 --help' for more information"
+    exit 1
+    ;;
+
+esac
+
+# Now exit if we have it, but it failed.  Also exit now if we
+# don't have it and --version was passed (most likely to detect
+# the program).
+case $1 in
+  lex|yacc)
+    # Not GNU programs, they don't have --version.
+    ;;
+
+  tar)
+    if test -n "$run"; then
+       echo 1>&2 "ERROR: \`tar' requires --run"
+       exit 1
+    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+       exit 1
+    fi
+    ;;
+
+  *)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+       # Could not run --version or --help.  This is probably someone
+       # running `$TOOL --version' or `$TOOL --help' to check whether
+       # $TOOL exists and not knowing $TOOL uses missing.
+       exit 1
+    fi
+    ;;
+esac
+
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case $1 in
+  aclocal*)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
+         to install the \`Automake' and \`Perl' packages.  Grab them from
+         any GNU archive site."
+    touch aclocal.m4
+    ;;
+
+  autoconf)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified \`${configure_ac}'.  You might want to install the
+         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
+         archive site."
+    touch configure
+    ;;
+
+  autoheader)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
+         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
+         from any GNU archive site."
+    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
+    test -z "$files" && files="config.h"
+    touch_files=
+    for f in $files; do
+      case $f in
+      *:*) touch_files="$touch_files "`echo "$f" |
+				       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+      *) touch_files="$touch_files $f.in";;
+      esac
+    done
+    touch $touch_files
+    ;;
+
+  automake*)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
+         You might want to install the \`Automake' and \`Perl' packages.
+         Grab them from any GNU archive site."
+    find . -type f -name Makefile.am -print |
+	   sed 's/\.am$/.in/' |
+	   while read f; do touch "$f"; done
+    ;;
+
+  autom4te)
+    echo 1>&2 "\
+WARNING: \`$1' is needed, but is $msg.
+         You might have modified some files without having the
+         proper tools for further handling them.
+         You can get \`$1' as part of \`Autoconf' from any GNU
+         archive site."
+
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+    if test -f "$file"; then
+	touch $file
+    else
+	test -z "$file" || exec >$file
+	echo "#! /bin/sh"
+	echo "# Created by GNU Automake missing as a replacement of"
+	echo "#  $ $@"
+	echo "exit 0"
+	chmod +x $file
+	exit 1
+    fi
+    ;;
+
+  bison|yacc)
+    echo 1>&2 "\
+WARNING: \`$1' $msg.  You should only need it if
+         you modified a \`.y' file.  You may need the \`Bison' package
+         in order for those modifications to take effect.  You can get
+         \`Bison' from any GNU archive site."
+    rm -f y.tab.c y.tab.h
+    if test $# -ne 1; then
+        eval LASTARG="\${$#}"
+	case $LASTARG in
+	*.y)
+	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+	    if test -f "$SRCFILE"; then
+	         cp "$SRCFILE" y.tab.c
+	    fi
+	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+	    if test -f "$SRCFILE"; then
+	         cp "$SRCFILE" y.tab.h
+	    fi
+	  ;;
+	esac
+    fi
+    if test ! -f y.tab.h; then
+	echo >y.tab.h
+    fi
+    if test ! -f y.tab.c; then
+	echo 'main() { return 0; }' >y.tab.c
+    fi
+    ;;
+
+  lex|flex)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified a \`.l' file.  You may need the \`Flex' package
+         in order for those modifications to take effect.  You can get
+         \`Flex' from any GNU archive site."
+    rm -f lex.yy.c
+    if test $# -ne 1; then
+        eval LASTARG="\${$#}"
+	case $LASTARG in
+	*.l)
+	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+	    if test -f "$SRCFILE"; then
+	         cp "$SRCFILE" lex.yy.c
+	    fi
+	  ;;
+	esac
+    fi
+    if test ! -f lex.yy.c; then
+	echo 'main() { return 0; }' >lex.yy.c
+    fi
+    ;;
+
+  help2man)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+	 you modified a dependency of a manual page.  You may need the
+	 \`Help2man' package in order for those modifications to take
+	 effect.  You can get \`Help2man' from any GNU archive site."
+
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+    if test -f "$file"; then
+	touch $file
+    else
+	test -z "$file" || exec >$file
+	echo ".ab help2man is required to generate this page"
+	exit 1
+    fi
+    ;;
+
+  makeinfo)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified a \`.texi' or \`.texinfo' file, or any other file
+         indirectly affecting the aspect of the manual.  The spurious
+         call might also be the consequence of using a buggy \`make' (AIX,
+         DU, IRIX).  You might want to install the \`Texinfo' package or
+         the \`GNU make' package.  Grab either from any GNU archive site."
+    # The file to touch is that specified with -o ...
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+    if test -z "$file"; then
+      # ... or it is the one specified with @setfilename ...
+      infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+      file=`sed -n '
+	/^@setfilename/{
+	  s/.* \([^ ]*\) *$/\1/
+	  p
+	  q
+	}' $infile`
+      # ... or it is derived from the source name (dir/f.texi becomes f.info)
+      test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
+    fi
+    # If the file does not exist, the user really needs makeinfo;
+    # let's fail without touching anything.
+    test -f $file || exit 1
+    touch $file
+    ;;
+
+  tar)
+    shift
+
+    # We have already tried tar in the generic part.
+    # Look for gnutar/gtar before invocation to avoid ugly error
+    # messages.
+    if (gnutar --version > /dev/null 2>&1); then
+       gnutar "$@" && exit 0
+    fi
+    if (gtar --version > /dev/null 2>&1); then
+       gtar "$@" && exit 0
+    fi
+    firstarg="$1"
+    if shift; then
+	case $firstarg in
+	*o*)
+	    firstarg=`echo "$firstarg" | sed s/o//`
+	    tar "$firstarg" "$@" && exit 0
+	    ;;
+	esac
+	case $firstarg in
+	*h*)
+	    firstarg=`echo "$firstarg" | sed s/h//`
+	    tar "$firstarg" "$@" && exit 0
+	    ;;
+	esac
+    fi
+
+    echo 1>&2 "\
+WARNING: I can't seem to be able to run \`tar' with the given arguments.
+         You may want to install GNU tar or Free paxutils, or check the
+         command line arguments."
+    exit 1
+    ;;
+
+  *)
+    echo 1>&2 "\
+WARNING: \`$1' is needed, and is $msg.
+         You might have modified some files without having the
+         proper tools for further handling them.  Check the \`README' file,
+         it often tells you about the needed prerequisites for installing
+         this package.  You may also peek at any GNU archive site, in case
+         some other package would contain this missing \`$1' program."
+    exit 1
+    ;;
+esac
+
+exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/parted-1.8.7/build-aux/texinfo.tex b/parted-1.8.7/build-aux/texinfo.tex
new file mode 100644
index 0000000..0f3c750
--- /dev/null
+++ b/parted-1.8.7/build-aux/texinfo.tex
@@ -0,0 +1,8641 @@
+% 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{2007-05-04.09}
+%
+% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
+% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
+% 2007 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.
+
+
+\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}
+
+
+\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
+
+% If this character appears in an error message or help string, it
+% starts a new line in the output.
+\newlinechar = `^^J
+
+% 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
+
+% Since the category of space is not known, we have to be careful.
+\chardef\spacecat = 10
+\def\spaceisspace{\catcode`\ =\spacecat}
+
+% sometimes characters are active, so we need control sequences.
+\chardef\colonChar = `\:
+\chardef\commaChar = `\,
+\chardef\dashChar  = `\-
+\chardef\dotChar   = `\.
+\chardef\exclamChar= `\!
+\chardef\lquoteChar= `\`
+\chardef\questChar = `\?
+\chardef\rquoteChar= `\'
+\chardef\semiChar  = `\;
+\chardef\underChar = `\_
+
+% 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
+\newdimen\normaloffset
+\newdimen\pagewidth \newdimen\pageheight
+
+% 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.
+%
+\newif\ifcropmarks
+\let\cropmarks = \cropmarkstrue
+%
+% Dimensions to add cropmarks at corners.
+% Added by P. A. MacKay, 12 Nov. 1986
+%
+\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, 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 \oddfootingyyy.)
+        % The \baselineskip=24pt in plain's \makefootline has no effect.
+        \vskip 24pt
+        \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\ewtop{\vrule height\cornerthick depth0pt width\cornerlong}
+\def\nstop{\vbox
+  {\hrule height\cornerthick depth\cornerlong width\cornerthick}}
+\def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong}
+\def\nsbot{\vbox
+  {\hrule height\cornerlong depth\cornerthick width\cornerthick}}
+
+% 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\argtorun{#2}%
+  \begingroup
+    \obeylines
+    \spaceisspace
+    #1%
+    \parseargline\empty% Insert the \empty token, see \finishparsearg below.
+}
+
+{\obeylines %
+  \gdef\parseargline#1^^M{%
+    \endgroup % End of the group started in \parsearg.
+    \argremovecomment #1\comment\ArgTerm%
+  }%
+}
+
+% 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}
+
+% 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
+    % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp:
+    \let\temp\finishparsearg
+  \else
+    \let\temp\argcheckspaces
+  \fi
+  % Put the space token in:
+  \temp#1 #3\ArgTerm
+}
+
+% 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 \argtorun.
+% (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\argtorun\expandafter{#1}}
+
+% \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
+
+\def\parseargdef#1{%
+  \expandafter \doparseargdef \csname\string#1\endcsname #1%
+}
+\def\doparseargdef#1#2{%
+  \def#2{\parsearg#1}%
+  \def#1##1%
+}
+
+% 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}
+}
+
+
+\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next}
+
+% 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
+}
+
+% 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
+}
+
+% @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
+}
+
+\newhelp\EMsimple{Press RETURN to continue.}
+
+
+%% Simple single-character @ commands
+
+% @@ prints an @
+% Kludge this until the fonts are right (grr).
+\def\@{{\tt\char64}}
+
+% 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\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\hbox{}\ignorespaces}
+
+% @/ allows a line break.
+\let\/=\allowbreak
+
+% @. is an end-of-sentence period.
+\def\.{.\spacefactor=\endofsentencespacefactor\space}
+
+% @! is an end-of-sentence bang.
+\def\!{!\spacefactor=\endofsentencespacefactor\space}
+
+% @? is an end-of-sentence query.
+\def\?{?\spacefactor=\endofsentencespacefactor\space}
+
+% @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
+}
+
+% @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
+}
+
+% @br   forces paragraph break (and is undocumented).
+
+\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
+
+% This records the amount of indent in the innermost environment.
+% That's how much \exdent should take out.
+\newskip\exdentamount
+
+% This defn is used inside fill environments such as @defun.
+\parseargdef\exdent{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}
+
+% 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\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\popthisfilestack{\errthisfilestackempty}
+\def\errthisfilestackempty{\errmessage{Internal error:
+  the stack of filenames is empty.}}
+
+\def\thisfile{}
+
+% @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
+
+\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{\begingroup \catcode`\^^M=\other%
+\catcode`\@=\other \catcode`\{=\other \catcode`\}=\other%
+\commentxxx}
+{\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}}
+
+\let\c=\comment
+
+% @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
+}
+
+% @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
+}
+
+% @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
+}
+
+% 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
+  }%
+}
+
+\gdef\restorefirstparagraphindent{%
+  \global \let \indent = \ptexindent
+  \global \let \noindent = \ptexnoindent
+  \global \everypar = {}%
+}
+
+
+% @asis just yields its argument.  Used with @table, for example.
+%
+\def\asis#1{#1}
+
+% @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.
+
+% 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 the cm
+% typewriter fonts as three actual period characters; on the other hand,
+% in other typewriter fonts three periods are wider than 1.5em.  So do
+% whichever is larger.
+%
+\def\dots{%
+  \leavevmode
+  \setbox0=\hbox{...}% get width of three periods
+  \ifdim\wd0 > 1.5em
+    \dimen0 = \wd0
+  \else
+    \dimen0 = 1.5em
+  \fi
+  \hbox to \dimen0{%
+    \hskip 0pt plus.25fil
+    .\hskip 0pt plus1fil
+    .\hskip 0pt plus1fil
+    .\hskip 0pt plus.5fil
+  }%
+}
+
+% @enddots{} is an end-of-sentence ellipsis.
+%
+\def\enddots{%
+  \dots
+  \spacefactor=\endofsentencespacefactor
+}
+
+% @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
+
+% 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, with minor
+% changes for Texinfo.  It is included here under the GPL by permission
+% from the author, Heiko Oberdiek.
+% 
+% #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}%
+}
+
+\newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images
+with PDF output, and none of those formats could be found.  (.eps cannot
+be supported due to the design of the PDF format; use regular TeX (DVI
+output) for that.)}
+
+\ifpdf
+  \input pdfcolor
+  \pdfcatalog{/PageMode /UseOutlines}
+  %
+  % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto).
+  \def\dopdfimage#1#2#3{%
+    \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
+    \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
+    %
+    % pdftex (and the PDF format) support .png, .jpg, .pdf (among
+    % others).  Let's try in that order.
+    \let\pdfimgext=\empty
+    \begingroup
+      \openin 1 #1.png \ifeof 1
+        \openin 1 #1.jpg \ifeof 1
+          \openin 1 #1.jpeg \ifeof 1
+            \openin 1 #1.JPG \ifeof 1
+              \openin 1 #1.pdf \ifeof 1
+                \errhelp = \nopdfimagehelp
+                \errmessage{Could not find image file #1 for pdf}%
+              \else \gdef\pdfimgext{pdf}%
+              \fi
+            \else \gdef\pdfimgext{JPG}%
+            \fi
+          \else \gdef\pdfimgext{jpeg}%
+          \fi
+        \else \gdef\pdfimgext{jpg}%
+        \fi
+      \else \gdef\pdfimgext{png}%
+      \fi
+      \closein 1
+    \endgroup
+    %
+    % 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
+      \ifdim \wd0 >0pt width \imagewidth \fi
+      \ifdim \wd2 >0pt height \imageheight \fi
+      \ifnum\pdftexversion<13
+         #1.\pdfimgext
+       \else
+         {#1.\pdfimgext}%
+       \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.
+    \indexnofonts
+    \turnoffactive
+    \activebackslashdouble
+    \makevalueexpandable
+    \def\pdfdestname{#1}%
+    \backslashparens\pdfdestname
+    \safewhatsit{\pdfdest name{\pdfdestname} xyz}%
+  }}
+  %
+  % used to mark target names; must be expandable.
+  \def\pdfmkpgn#1{#1}
+  %
+  % by default, use a color that is dark enough to print on paper as
+  % nearly black, but still distinguishable for online viewing.
+  % (Defined in pdfcolor.tex.)
+  \let\urlcolor = \BrickRed
+  \let\linkcolor = \BrickRed
+  \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 \tocreadfilename
+    \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\urlcolor
+      \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
+
+
+\message{fonts,}
+
+% 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
+  }%
+}
+
+%
+% PDF CMaps.  See also LaTeX's t1.cmap.
+%
+% \cmapOT1
+\ifpdf
+  \begingroup
+    \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
+    \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-OT1-0)
+%%Title: (TeX-OT1-0 TeX OT1 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (OT1)
+/Supplement 0
+>> def
+/CMapName /TeX-OT1-0 def
+/CMapType 2 def
+1 begincodespacerange
+<00> <7F>
+endcodespacerange
+8 beginbfrange
+<00> <01> <0393>
+<09> <0A> <03A8>
+<23> <26> <0023>
+<28> <3B> <0028>
+<3F> <5B> <003F>
+<5D> <5E> <005D>
+<61> <7A> <0061>
+<7B> <7C> <2013>
+endbfrange
+40 beginbfchar
+<02> <0398>
+<03> <039B>
+<04> <039E>
+<05> <03A0>
+<06> <03A3>
+<07> <03D2>
+<08> <03A6>
+<0B> <00660066>
+<0C> <00660069>
+<0D> <0066006C>
+<0E> <006600660069>
+<0F> <00660066006C>
+<10> <0131>
+<11> <0237>
+<12> <0060>
+<13> <00B4>
+<14> <02C7>
+<15> <02D8>
+<16> <00AF>
+<17> <02DA>
+<18> <00B8>
+<19> <00DF>
+<1A> <00E6>
+<1B> <0153>
+<1C> <00F8>
+<1D> <00C6>
+<1E> <0152>
+<1F> <00D8>
+<21> <0021>
+<22> <201D>
+<27> <2019>
+<3C> <00A1>
+<3D> <003D>
+<3E> <00BF>
+<5C> <201C>
+<5F> <02D9>
+<60> <2018>
+<7D> <02DD>
+<7E> <007E>
+<7F> <00A8>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+    }\endgroup
+  \expandafter\edef\csname cmapOT1\endcsname#1{%
+    \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
+  }%
+%
+% \cmapOT1IT
+  \begingroup
+    \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
+    \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-OT1IT-0)
+%%Title: (TeX-OT1IT-0 TeX OT1IT 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (OT1IT)
+/Supplement 0
+>> def
+/CMapName /TeX-OT1IT-0 def
+/CMapType 2 def
+1 begincodespacerange
+<00> <7F>
+endcodespacerange
+8 beginbfrange
+<00> <01> <0393>
+<09> <0A> <03A8>
+<25> <26> <0025>
+<28> <3B> <0028>
+<3F> <5B> <003F>
+<5D> <5E> <005D>
+<61> <7A> <0061>
+<7B> <7C> <2013>
+endbfrange
+42 beginbfchar
+<02> <0398>
+<03> <039B>
+<04> <039E>
+<05> <03A0>
+<06> <03A3>
+<07> <03D2>
+<08> <03A6>
+<0B> <00660066>
+<0C> <00660069>
+<0D> <0066006C>
+<0E> <006600660069>
+<0F> <00660066006C>
+<10> <0131>
+<11> <0237>
+<12> <0060>
+<13> <00B4>
+<14> <02C7>
+<15> <02D8>
+<16> <00AF>
+<17> <02DA>
+<18> <00B8>
+<19> <00DF>
+<1A> <00E6>
+<1B> <0153>
+<1C> <00F8>
+<1D> <00C6>
+<1E> <0152>
+<1F> <00D8>
+<21> <0021>
+<22> <201D>
+<23> <0023>
+<24> <00A3>
+<27> <2019>
+<3C> <00A1>
+<3D> <003D>
+<3E> <00BF>
+<5C> <201C>
+<5F> <02D9>
+<60> <2018>
+<7D> <02DD>
+<7E> <007E>
+<7F> <00A8>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+    }\endgroup
+  \expandafter\edef\csname cmapOT1IT\endcsname#1{%
+    \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
+  }%
+%
+% \cmapOT1TT
+  \begingroup
+    \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
+    \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-OT1TT-0)
+%%Title: (TeX-OT1TT-0 TeX OT1TT 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (OT1TT)
+/Supplement 0
+>> def
+/CMapName /TeX-OT1TT-0 def
+/CMapType 2 def
+1 begincodespacerange
+<00> <7F>
+endcodespacerange
+5 beginbfrange
+<00> <01> <0393>
+<09> <0A> <03A8>
+<21> <26> <0021>
+<28> <5F> <0028>
+<61> <7E> <0061>
+endbfrange
+32 beginbfchar
+<02> <0398>
+<03> <039B>
+<04> <039E>
+<05> <03A0>
+<06> <03A3>
+<07> <03D2>
+<08> <03A6>
+<0B> <2191>
+<0C> <2193>
+<0D> <0027>
+<0E> <00A1>
+<0F> <00BF>
+<10> <0131>
+<11> <0237>
+<12> <0060>
+<13> <00B4>
+<14> <02C7>
+<15> <02D8>
+<16> <00AF>
+<17> <02DA>
+<18> <00B8>
+<19> <00DF>
+<1A> <00E6>
+<1B> <0153>
+<1C> <00F8>
+<1D> <00C6>
+<1E> <0152>
+<1F> <00D8>
+<20> <2423>
+<27> <2019>
+<60> <2018>
+<7F> <00A8>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+    }\endgroup
+  \expandafter\edef\csname cmapOT1TT\endcsname#1{%
+    \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
+  }%
+\else
+  \expandafter\let\csname cmapOT1\endcsname\gobble
+  \expandafter\let\csname cmapOT1IT\endcsname\gobble
+  \expandafter\let\csname cmapOT1TT\endcsname\gobble
+\fi
+
+
+% 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, #5 is the CMap
+% encoding (currently only OT1, OT1IT and OT1TT are allowed, pass
+% empty to omit).
+\def\setfont#1#2#3#4#5{%
+  \font#1=\fontprefix#2#3 scaled #4
+  \csname cmap#5\endcsname#1%
+}
+% This is what gets called when #5 of \setfont is empty.
+\let\cmap\gobble
+
+
+% 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}
+
+% Definitions for a main text size of 11pt.  This is the default in
+% Texinfo.
+% 
+\def\definetextfontsizexi{%
+% Text fonts (11.2pt, magstep1).
+\def\textnominalsize{11pt}
+\edef\mainmagstep{\magstephalf}
+\setfont\textrm\rmshape{10}{\mainmagstep}{OT1}
+\setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT}
+\setfont\textbf\bfshape{10}{\mainmagstep}{OT1}
+\setfont\textit\itshape{10}{\mainmagstep}{OT1IT}
+\setfont\textsl\slshape{10}{\mainmagstep}{OT1}
+\setfont\textsf\sfshape{10}{\mainmagstep}{OT1}
+\setfont\textsc\scshape{10}{\mainmagstep}{OT1}
+\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT}
+\font\texti=cmmi10 scaled \mainmagstep
+\font\textsy=cmsy10 scaled \mainmagstep
+
+% A few fonts for @defun names and args.
+\setfont\defbf\bfshape{10}{\magstep1}{OT1}
+\setfont\deftt\ttshape{10}{\magstep1}{OT1TT}
+\setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT}
+\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}{OT1}
+\setfont\smalltt\ttshape{9}{1000}{OT1TT}
+\setfont\smallbf\bfshape{10}{900}{OT1}
+\setfont\smallit\itshape{9}{1000}{OT1IT}
+\setfont\smallsl\slshape{9}{1000}{OT1}
+\setfont\smallsf\sfshape{9}{1000}{OT1}
+\setfont\smallsc\scshape{10}{900}{OT1}
+\setfont\smallttsl\ttslshape{10}{900}{OT1TT}
+\font\smalli=cmmi9
+\font\smallsy=cmsy9
+
+% Fonts for small examples (8pt).
+\def\smallernominalsize{8pt}
+\setfont\smallerrm\rmshape{8}{1000}{OT1}
+\setfont\smallertt\ttshape{8}{1000}{OT1TT}
+\setfont\smallerbf\bfshape{10}{800}{OT1}
+\setfont\smallerit\itshape{8}{1000}{OT1IT}
+\setfont\smallersl\slshape{8}{1000}{OT1}
+\setfont\smallersf\sfshape{8}{1000}{OT1}
+\setfont\smallersc\scshape{10}{800}{OT1}
+\setfont\smallerttsl\ttslshape{10}{800}{OT1TT}
+\font\smalleri=cmmi8
+\font\smallersy=cmsy8
+
+% Fonts for title page (20.4pt):
+\def\titlenominalsize{20pt}
+\setfont\titlerm\rmbshape{12}{\magstep3}{OT1}
+\setfont\titleit\itbshape{10}{\magstep4}{OT1IT}
+\setfont\titlesl\slbshape{10}{\magstep4}{OT1}
+\setfont\titlett\ttbshape{12}{\magstep3}{OT1TT}
+\setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT}
+\setfont\titlesf\sfbshape{17}{\magstep1}{OT1}
+\let\titlebf=\titlerm
+\setfont\titlesc\scbshape{10}{\magstep4}{OT1}
+\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}{OT1}
+\setfont\chapit\itbshape{10}{\magstep3}{OT1IT}
+\setfont\chapsl\slbshape{10}{\magstep3}{OT1}
+\setfont\chaptt\ttbshape{12}{\magstep2}{OT1TT}
+\setfont\chapttsl\ttslshape{10}{\magstep3}{OT1TT}
+\setfont\chapsf\sfbshape{17}{1000}{OT1}
+\let\chapbf=\chaprm
+\setfont\chapsc\scbshape{10}{\magstep3}{OT1}
+\font\chapi=cmmi12 scaled \magstep2
+\font\chapsy=cmsy10 scaled \magstep3
+
+% Section fonts (14.4pt).
+\def\secnominalsize{14pt}
+\setfont\secrm\rmbshape{12}{\magstep1}{OT1}
+\setfont\secit\itbshape{10}{\magstep2}{OT1IT}
+\setfont\secsl\slbshape{10}{\magstep2}{OT1}
+\setfont\sectt\ttbshape{12}{\magstep1}{OT1TT}
+\setfont\secttsl\ttslshape{10}{\magstep2}{OT1TT}
+\setfont\secsf\sfbshape{12}{\magstep1}{OT1}
+\let\secbf\secrm
+\setfont\secsc\scbshape{10}{\magstep2}{OT1}
+\font\seci=cmmi12 scaled \magstep1
+\font\secsy=cmsy10 scaled \magstep2
+
+% Subsection fonts (13.15pt).
+\def\ssecnominalsize{13pt}
+\setfont\ssecrm\rmbshape{12}{\magstephalf}{OT1}
+\setfont\ssecit\itbshape{10}{1315}{OT1IT}
+\setfont\ssecsl\slbshape{10}{1315}{OT1}
+\setfont\ssectt\ttbshape{12}{\magstephalf}{OT1TT}
+\setfont\ssecttsl\ttslshape{10}{1315}{OT1TT}
+\setfont\ssecsf\sfbshape{12}{\magstephalf}{OT1}
+\let\ssecbf\ssecrm
+\setfont\ssecsc\scbshape{10}{1315}{OT1}
+\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}{OT1}
+\setfont\reducedtt\ttshape{10}{1000}{OT1TT}
+\setfont\reducedbf\bfshape{10}{1000}{OT1}
+\setfont\reducedit\itshape{10}{1000}{OT1IT}
+\setfont\reducedsl\slshape{10}{1000}{OT1}
+\setfont\reducedsf\sfshape{10}{1000}{OT1}
+\setfont\reducedsc\scshape{10}{1000}{OT1}
+\setfont\reducedttsl\ttslshape{10}{1000}{OT1TT}
+\font\reducedi=cmmi10
+\font\reducedsy=cmsy10
+
+% reset the current fonts
+\textfonts
+\rm
+} % end of 11pt text font size definitions
+
+
+% Definitions to make the main text be 10pt Computer Modern, with
+% section, chapter, etc., sizes following suit.  This is for the GNU
+% Press printing of the Emacs 22 manual.  Maybe other manuals in the
+% future.  Used with @smallbook, which sets the leading to 12pt.
+% 
+\def\definetextfontsizex{%
+% Text fonts (10pt).
+\def\textnominalsize{10pt}
+\edef\mainmagstep{1000}
+\setfont\textrm\rmshape{10}{\mainmagstep}{OT1}
+\setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT}
+\setfont\textbf\bfshape{10}{\mainmagstep}{OT1}
+\setfont\textit\itshape{10}{\mainmagstep}{OT1IT}
+\setfont\textsl\slshape{10}{\mainmagstep}{OT1}
+\setfont\textsf\sfshape{10}{\mainmagstep}{OT1}
+\setfont\textsc\scshape{10}{\mainmagstep}{OT1}
+\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT}
+\font\texti=cmmi10 scaled \mainmagstep
+\font\textsy=cmsy10 scaled \mainmagstep
+
+% A few fonts for @defun names and args.
+\setfont\defbf\bfshape{10}{\magstephalf}{OT1}
+\setfont\deftt\ttshape{10}{\magstephalf}{OT1TT}
+\setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT}
+\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}{OT1}
+\setfont\smalltt\ttshape{9}{1000}{OT1TT}
+\setfont\smallbf\bfshape{10}{900}{OT1}
+\setfont\smallit\itshape{9}{1000}{OT1IT}
+\setfont\smallsl\slshape{9}{1000}{OT1}
+\setfont\smallsf\sfshape{9}{1000}{OT1}
+\setfont\smallsc\scshape{10}{900}{OT1}
+\setfont\smallttsl\ttslshape{10}{900}{OT1TT}
+\font\smalli=cmmi9
+\font\smallsy=cmsy9
+
+% Fonts for small examples (8pt).
+\def\smallernominalsize{8pt}
+\setfont\smallerrm\rmshape{8}{1000}{OT1}
+\setfont\smallertt\ttshape{8}{1000}{OT1TT}
+\setfont\smallerbf\bfshape{10}{800}{OT1}
+\setfont\smallerit\itshape{8}{1000}{OT1IT}
+\setfont\smallersl\slshape{8}{1000}{OT1}
+\setfont\smallersf\sfshape{8}{1000}{OT1}
+\setfont\smallersc\scshape{10}{800}{OT1}
+\setfont\smallerttsl\ttslshape{10}{800}{OT1TT}
+\font\smalleri=cmmi8
+\font\smallersy=cmsy8
+
+% Fonts for title page (20.4pt):
+\def\titlenominalsize{20pt}
+\setfont\titlerm\rmbshape{12}{\magstep3}{OT1}
+\setfont\titleit\itbshape{10}{\magstep4}{OT1IT}
+\setfont\titlesl\slbshape{10}{\magstep4}{OT1}
+\setfont\titlett\ttbshape{12}{\magstep3}{OT1TT}
+\setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT}
+\setfont\titlesf\sfbshape{17}{\magstep1}{OT1}
+\let\titlebf=\titlerm
+\setfont\titlesc\scbshape{10}{\magstep4}{OT1}
+\font\titlei=cmmi12 scaled \magstep3
+\font\titlesy=cmsy10 scaled \magstep4
+\def\authorrm{\secrm}
+\def\authortt{\sectt}
+
+% Chapter fonts (14.4pt).
+\def\chapnominalsize{14pt}
+\setfont\chaprm\rmbshape{12}{\magstep1}{OT1}
+\setfont\chapit\itbshape{10}{\magstep2}{OT1IT}
+\setfont\chapsl\slbshape{10}{\magstep2}{OT1}
+\setfont\chaptt\ttbshape{12}{\magstep1}{OT1TT}
+\setfont\chapttsl\ttslshape{10}{\magstep2}{OT1TT}
+\setfont\chapsf\sfbshape{12}{\magstep1}{OT1}
+\let\chapbf\chaprm
+\setfont\chapsc\scbshape{10}{\magstep2}{OT1}
+\font\chapi=cmmi12 scaled \magstep1
+\font\chapsy=cmsy10 scaled \magstep2
+
+% Section fonts (12pt).
+\def\secnominalsize{12pt}
+\setfont\secrm\rmbshape{12}{1000}{OT1}
+\setfont\secit\itbshape{10}{\magstep1}{OT1IT}
+\setfont\secsl\slbshape{10}{\magstep1}{OT1}
+\setfont\sectt\ttbshape{12}{1000}{OT1TT}
+\setfont\secttsl\ttslshape{10}{\magstep1}{OT1TT}
+\setfont\secsf\sfbshape{12}{1000}{OT1}
+\let\secbf\secrm
+\setfont\secsc\scbshape{10}{\magstep1}{OT1}
+\font\seci=cmmi12 
+\font\secsy=cmsy10 scaled \magstep1
+
+% Subsection fonts (10pt).
+\def\ssecnominalsize{10pt}
+\setfont\ssecrm\rmbshape{10}{1000}{OT1}
+\setfont\ssecit\itbshape{10}{1000}{OT1IT}
+\setfont\ssecsl\slbshape{10}{1000}{OT1}
+\setfont\ssectt\ttbshape{10}{1000}{OT1TT}
+\setfont\ssecttsl\ttslshape{10}{1000}{OT1TT}
+\setfont\ssecsf\sfbshape{10}{1000}{OT1}
+\let\ssecbf\ssecrm
+\setfont\ssecsc\scbshape{10}{1000}{OT1}
+\font\sseci=cmmi10
+\font\ssecsy=cmsy10
+
+% Reduced fonts for @acro in text (9pt).
+\def\reducednominalsize{9pt}
+\setfont\reducedrm\rmshape{9}{1000}{OT1}
+\setfont\reducedtt\ttshape{9}{1000}{OT1TT}
+\setfont\reducedbf\bfshape{10}{900}{OT1}
+\setfont\reducedit\itshape{9}{1000}{OT1IT}
+\setfont\reducedsl\slshape{9}{1000}{OT1}
+\setfont\reducedsf\sfshape{9}{1000}{OT1}
+\setfont\reducedsc\scshape{10}{900}{OT1}
+\setfont\reducedttsl\ttslshape{10}{900}{OT1TT}
+\font\reducedi=cmmi9
+\font\reducedsy=cmsy9
+
+% reduce space between paragraphs
+\divide\parskip by 2
+
+% reset the current fonts
+\textfonts
+\rm
+} % end of 10pt text font size definitions
+
+
+% We provide the user-level command
+%   @fonttextsize 10
+% (or 11) to redefine the text font size.  pt is assumed.
+% 
+\def\xword{10}
+\def\xiword{11}
+%
+\parseargdef\fonttextsize{%
+  \def\textsizearg{#1}%
+  \wlog{doing @fonttextsize \textsizearg}%
+  %
+  % Set \globaldefs so that documents can use this inside @tex, since
+  % makeinfo 4.8 does not support it, but we need it nonetheless.
+  % 
+ \begingroup \globaldefs=1
+  \ifx\textsizearg\xword \definetextfontsizex
+  \else \ifx\textsizearg\xiword \definetextfontsizexi
+  \else
+    \errhelp=\EMsimple
+    \errmessage{@fonttextsize only supports `10' or `11', not `\textsizearg'}
+  \fi\fi
+ \endgroup
+}
+
+
+% 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.
+%
+\definetextfontsizexi
+
+% Define these so they can be easily changed for other fonts.
+\def\angleleft{$\langle$}
+\def\angleright{$\rangle$}
+
+% Count depth in font-changes, for error checks
+\newcount\fontdepth \fontdepth=0
+
+% Fonts for short table of contents.
+\setfont\shortcontrm\rmshape{12}{1000}{OT1}
+\setfont\shortcontbf\bfshape{10}{\magstep1}{OT1}  % no cmb12
+\setfont\shortcontsl\slshape{12}{1000}{OT1}
+\setfont\shortconttt\ttshape{12}{1000}{OT1TT}
+
+%% Add scribe-like font environments, plus @l for inline lisp (usually sans
+%% serif) and @ii for TeX italic
+
+% \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
+
+% @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.
+%
+\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}{OT1}
+\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}}}}
+\def\key #1{{\nohyphenation \uppercase{#1}}\null}
+% 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
+  \catcode`\'=\active \catcode`\`=\active
+  %
+  \global\def\code{\begingroup
+    \catcode\rquoteChar=\active \catcode\lquoteChar=\active
+    \let'\codequoteright \let`\codequoteleft
+    %
+    \catcode\dashChar=\active  \catcode\underChar=\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
+
+% 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 }
+
+% 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
+}
+
+% @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
+}
+
+% @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
+}
+
+% @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}}%
+    }$%
+}
+
+% @textdegree - the normal degrees sign.
+%
+\def\textdegree{$^\circ$}
+
+% 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
+
+
+\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    % 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}\HEADINGShook}
+\let\HEADINGShook=\relax
+
+% Commands to set those variables.
+% For example, this is what  @headings on  does
+% @evenheading @thistitle|@thispage|@thischapter
+% @oddheading @thischapter|@thispage|@thistitle
+% @evenfooting @thisfile||
+% @oddfooting ||@thisfile
+
+
+\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}}}
+
+\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}}}
+
+\parseargdef\everyheading{\oddheadingxxx{#1}\evenheadingxxx{#1}}%
+
+\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}}}
+
+\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 -12pt
+  \global\advance\vsize by -12pt
+}
+
+\parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}}
+
+
+% @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{%
+\global\evenheadline={\hfil} \global\evenfootline={\hfil}
+\global\oddheadline={\hfil} \global\oddfootline={\hfil}}
+\HEADINGSoff
+% 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\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
+% 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
+
+% @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}}
+
+
+\message{tables,}
+% Tables -- @table, @ftable, @vtable, @item(x).
+
+% default indentation of table text
+\newdimen\tableindent \tableindent=.8in
+% default indentation of @itemize and @enumerate text
+\newdimen\itemindent  \itemindent=.3in
+% margin between end of table item and start of table text.
+\newdimen\itemmargin  \itemmargin=.1in
+
+% used internally for \itemindent minus \itemmargin
+\newdimen\itemmax
+
+% 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}
+
+
+\message{conditionals,}
+
+% @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}%
+}
+
+{ \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\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.
+}
+
+% 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
+}
+
+% 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}%
+}
+
+
+% @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}}
+
+% @clear VAR clears (i.e., unsets) the variable VAR.
+%
+\parseargdef\clear{%
+  {%
+    \makevalueexpandable
+    \global\expandafter\let\csname SET#1\endcsname=\relax
+  }%
+}
+
+% @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
+  }
+}
+
+% 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
+}
+
+% @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}}
+
+% @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}}
+
+% @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
+
+
+\message{indexing,}
+% Index generation facilities
+
+% Define \newwrite to be identical to plain tex's \newwrite
+% 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 name of an index should be no more than 2 characters long
+% for the sake of vms.
+%
+\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\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}}%
+}
+
+
+% @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.
+%
+% @syncodeindex foo bar   similar, but put all entries made for index foo
+% inside @code.
+%
+\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.
+% Argument #1 is generated by the calling \fooindex macro,
+%  and it is "foo", the name of the index.
+
+% \doindex just uses \parsearg; it calls \doind for the actual work.
+% This is because \doind is more useful to call from other macros.
+
+% There is also \dosubind {index}{topic}{subtopic}
+% which makes an entry in a two-level index such as the operation index.
+
+\def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer}
+\def\singleindexer #1{\doind{\indexname}{#1}}
+
+% like the previous two, but they put @code around the argument.
+\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{%
+  \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
+  %
+  % I don't entirely understand this, but when an index entry is
+  % generated from a macro call, the \endinput which \scanmacro inserts
+  % causes processing to be prematurely terminated.  This is,
+  % apparently, because \indexsorttmp is fully expanded, and \endinput
+  % is an expandable command.  The redefinition below makes \endinput
+  % disappear altogether for that purpose -- although logging shows that
+  % processing continues to some further point.  On the other hand, it
+  % seems \endinput does not hurt in the printed index arg, since that
+  % is still getting written without apparent harm.
+  % 
+  % Sample source (mac-idx3.tex, reported by Graham Percival to
+  % help-texinfo, 22may06):
+  % @macro funindex {WORD}
+  % @findex xyz
+  % @end macro
+  % ...
+  % @funindex commtest
+  % 
+  % The above is not enough to reproduce the bug, but it gives the flavor.
+  % 
+  % Sample whatsit resulting:
+  % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}}
+  % 
+  % So:
+  \let\endinput = \empty
+  %
+  % Do the redefinitions.
+  \commondummies
+}
+
+% 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
+  \definedummyword\textdegree
+  %
+  % 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
+}
+
+% \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
+}
+
+% \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{=>}%
+  \def\textdegree{degrees}%
+  %
+  % 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)?
+
+% 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}%
+    %
+    \safewhatsit\dosubindwrite
+  }%
+  \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/skips around a whatsit:
+%
+% 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 or \pdfdest 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}
+%
+\newskip\whatsitskip
+\newcount\whatsitpenalty
+%
+% ..., ready, GO:
+%
+\def\safewhatsit#1{%
+\ifhmode
+  #1%
+\else
+  % \lastskip and \lastpenalty cannot both be nonzero simultaneously.
+  \whatsitskip = \lastskip
+  \edef\lastskipmacro{\the\lastskip}%
+  \whatsitpenalty = \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-\whatsitskip
+  \fi
+  %
+  #1%
+  %
+  \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\whatsitpenalty>9999 \penalty\whatsitpenalty \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\whatsitskip
+  \fi
+\fi
+}
+
+% The index entry written in the file actually looks like
+%  \entry {sortstring}{page}{topic}
+% or
+%  \entry {sortstring}{page}{topic}{subtopic}
+% The texindex program reads in these files and writes files
+% containing these kinds of lines:
+%  \initial {c}
+%     before the first topic whose initial is c
+%  \entry {topic}{pagelist}
+%     for a topic that is used without subtopics
+%  \primary {topic}
+%     for the beginning of a topic that is used with subtopics
+%  \secondary {subtopic}{pagelist}
+%     for each subtopic.
+
+% Define the user-accessible indexing commands
+% @findex, @vindex, @kindex, @cindex.
+
+\def\findex {\fnindex}
+\def\kindex {\kyindex}
+\def\cindex {\cpindex}
+\def\vindex {\vrindex}
+\def\tindex {\tpindex}
+\def\pindex {\pgindex}
+
+\def\cindexsub {\begingroup\obeylines\cindexsub}
+{\obeylines %
+\gdef\cindexsub "#1" #2^^M{\endgroup %
+\dosubind{cp}{#2}{#1}}}
+
+% Define the macros used in formatting output of the sorted index material.
+
+% @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
+  \plainfrenchspacing
+  \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.
+
+\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
+}}
+
+% \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.
+    \setbox\boxA = \hbox{#1}%
+    \ifdim\wd\boxA = 0pt
+      \ %
+    \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
+}
+
+% Like plain.tex's \dotfill, except uses up at least 1 em.
+\def\indexdotfill{\cleaders
+  \hbox{$\mathsurround=0pt \mkern1.5mu.\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}\indexdotfill
+  \ifpdf
+    \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
+  \else
+    #2
+  \fi
+  \par
+}}
+
+% 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
+}
+
+% 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{%
+  % The following penalty ensures that the page builder is exercised
+  % _before_ we change the output routine.  This is necessary in the
+  % following situation:
+  %
+  % The last section of the index consists only of a single entry.
+  % Before this section, \pagetotal is less than \pagegoal, so no
+  % break occurs before the last section starts.  However, the last
+  % section, consisting of \initial and the single \entry, does not
+  % fit on the page and has to be broken off.  Without the following
+  % penalty the page builder will not be exercised until \eject
+  % below, and by that time we'll already have changed the output
+  % routine to the \balancecolumns version, so the next-to-last
+  % double-column page will be processed with \balancecolumns, which
+  % is wrong:  The two columns will go to the main vertical list, with
+  % the broken-off section in the recent contributions.  As soon as
+  % the output routine finishes, TeX starts reconsidering the page
+  % break.  The two columns and the broken-off section both fit on the
+  % page, because the two columns now take up only half of the page
+  % goal.  When TeX sees \eject from below which follows the final
+  % section, it invokes the new output routine that we've set after
+  % \balancecolumns below; \onepageout will try to fit the two columns
+  % and the final section into the vbox of \pageheight (see
+  % \pagebody), causing an overfull box.
+  %
+  % Note that glue won't work here, because glue does not exercise the
+  % page builder, unlike penalties (see The TeXbook, pp. 280-281).
+  \penalty0
+  %
+  \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
+
+
+\message{sectioning,}
+% 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}
+% 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.
+% 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
+
+% 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
+}
+
+\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
+}
+
+% @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),
+% given all the information in convenient, parsed form.
+
+%%% Args are the skip and penalty (usually negative)
+\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
+
+%%% Define plain chapter starts, and page on/off switching for it
+% Parameter controlling skip before chapter headings (if needed)
+
+\newskip\chapheadingskip
+
+\def\chapbreak{\dobreak \chapheadingskip {-4000}}
+\def\chappager{\par\vfill\supereject}
+\def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi}
+
+\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
+
+\def\CHAPPAGoff{%
+\global\let\contentsalignmacro = \chappager
+\global\let\pchapsepmacro=\chapbreak
+\global\let\pagealignmacro=\chappager}
+
+\def\CHAPPAGon{%
+\global\let\contentsalignmacro = \chappager
+\global\let\pchapsepmacro=\chappager
+\global\let\pagealignmacro=\chappager
+\global\def\HEADINGSon{\HEADINGSsingle}}
+
+\def\CHAPPAGodd{%
+\global\let\contentsalignmacro = \chapoddpage
+\global\let\pchapsepmacro=\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\thischapternum{}%
+      \gdef\thischapter{#1}%
+    \else\ifx\temptype\Yomitfromtockeyword
+      \setbox0 = \hbox{}% contents like unnumbered, but no toc entry
+      \def\toctype{omit}%
+      \gdef\thischapternum{}%
+      \gdef\thischapter{}%
+    \else\ifx\temptype\Yappendixkeyword
+      \setbox0 = \hbox{\putwordAppendix{} #3\enspace}%
+      \def\toctype{app}%
+      \xdef\thischapternum{\appendixletter}%
+      % 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\thischapternum{\the\chapno}%
+      \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 \tocreadfilename
+}
+
+\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
+}
+
+% redefined for the two-volume lispref.  We always output on
+% \jobname.toc even if this is redefined.
+% 
+\def\tocreadfilename{\jobname.toc}
+
+% Normal (long) toc.
+%
+\def\contents{%
+  \startcontents{\putwordTOC}%
+    \openin 1 \tocreadfilename\space
+    \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 \tocreadfilename\space
+    \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 \reducedsf 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
+}}
+
+\let\afterenvbreak = \aboveenvbreak
+
+% \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
+
+% @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
+}
+
+
+% 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
+}
+
+% 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
+    % end paragraph for sake of leading, in case document has no blank
+    % line.  This is redundant with what happens in \aboveenvbreak, but
+    % we need to do it before changing the fonts, and it's inconvenient
+    % to change the fonts afterward.
+    \ifnum \lastpenalty=10000 \else \endgraf \fi
+    \smallexamplefonts \rm
+  \fi
+}
+\def\setsmalldispenv{%
+  \ifx\SETdispenvsize\nosmallword
+  \else
+    \ifnum \lastpenalty=10000 \else \endgraf \fi
+    \smallexamplefonts \rm
+  \fi
+}
+
+% 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
+}
+
+% Define two synonyms:
+\def\maketwodispenvs #1#2#3{
+  \makedispenv{#1}{#3}
+  \makedispenv{#2}{#3}
+}
+
+% @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\quoteexpand
+  \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
+  \gobble       % eat return
+}
+% @display/@smalldisplay: same as @lisp except keep current font.
+%
+\makedispenv {display}{%
+  \nonfillstart
+  \gobble
+}
+
+% @format/@smallformat: same as @display except don't narrow margins.
+%
+\makedispenv{format}{%
+  \let\nonarrowing = t%
+  \nonfillstart
+  \gobble
+}
+
+% @flushleft: same as @format, but doesn't obey \SETdispenvsize.
+\envdef\flushleft{%
+  \let\nonarrowing = t%
+  \nonfillstart
+  \gobble
+}
+\let\Eflushleft = \afterenvbreak
+
+% @flushright.
+%
+\envdef\flushright{%
+  \let\nonarrowing = t%
+  \nonfillstart
+  \advance\leftskip by 0pt plus 1fill
+  \gobble
+}
+\let\Eflushright = \afterenvbreak
+
+
+% @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
+}
+
+% 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}%
+}
+
+% 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
+}
+
+
+% 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
+}
+
+% Setup for the @verbatim environment
+%
+% Real tab expansion
+\newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount
+%
+\def\starttabbox{\setbox0=\hbox\bgroup}
+
+% Allow an option to not replace quotes with a regular directed right
+% quote/apostrophe (char 0x27), but instead use the undirected quote
+% from cmtt (char 0x0d).  The undirected quote is ugly, so don't make it
+% the default, but it works for pasting with more pdf viewers (at least
+% evince), the lilypond developers report.  xpdf does work with the
+% regular 0x27.  
+% 
+\def\codequoteright{%
+  \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
+    '%
+  \else
+    \char'15
+  \fi
+}
+%
+% and a similar option for the left quote char vs. a grave accent.
+% Modern fonts display ASCII 0x60 as a grave accent, so some people like
+% the code environments to do likewise.
+% 
+\def\codequoteleft{%
+  \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
+    `%
+  \else
+    \char'22
+  \fi
+}
+%
+\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
+    }%
+  }
+  \catcode`\'=\active
+  \gdef\rquoteexpand{\catcode\rquoteChar=\active \def'{\codequoteright}}%
+  %
+  \catcode`\`=\active
+  \gdef\lquoteexpand{\catcode\lquoteChar=\active \def`{\codequoteleft}}%
+  %
+  \gdef\quoteexpand{\rquoteexpand \lquoteexpand}%
+\endgroup
+
+% start the verbatim environment.
+\def\setupverbatim{%
+  \let\nonarrowing = t%
+  \nonfillstart
+  % Easiest (and conventionally used) font for verbatim
+  \tt
+  \def\par{\leavevmode\egroup\box0\endgraf}%
+  \catcode`\`=\active
+  \tabexpand
+  \quoteexpand
+  % Respect line breaks,
+  % print special symbols as themselves, and
+  % make each space count
+  % must do in this order:
+  \obeylines \uncatcodespecials \sepspaces
+  \everypar{\starttabbox}%
+}
+
+% 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
+
+
+% @verbatiminclude FILE - insert text of file in verbatim environment.
+%
+\def\verbatiminclude{\parseargusing\filenamecatcodes\doverbatiminclude}
+%
+\def\doverbatiminclude#1{%
+  {%
+    \makevalueexpandable
+    \setupverbatim
+    \input #1
+    \afterenvbreak
+  }%
+}
+
+% @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
+}
+
+
+\message{defuns,}
+% @defun etc.
+
+\newskip\defbodyindent \defbodyindent=.4in
+\newskip\defargsindent \defargsindent=50pt
+\newskip\deflastargmargin \deflastargmargin=18pt
+\newcount\defunpenalty
+
+% Start the processing of @deffn:
+\def\startdefun{%
+  \ifnum\lastpenalty<10000
+    \medbreak
+    \defunpenalty=10003 % Will keep this @deffn together with the
+                        % following @def command, see below.
+  \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 \printdefunline, 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.
+    %
+    % As a minor refinement, we avoid "club" headers by signalling
+    % with penalty of 10003 after the very first @deffn in the
+    % sequence (see above), and penalty of 10002 after any following
+    % @def command.
+    \ifnum\lastpenalty=10002 \penalty2000 \else \defunpenalty=10002 \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\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 \else \defunpenalty=10002 \fi
+  %
+  % And now, it's time to reuse the body of the original defun:
+  \expandafter\gobbledefun#1%
+}
+\def\gobbledefun#1\startdefun{}
+
+% \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\defunpenalty  % 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\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
+}
+
+% \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%
+}
+
+%%% Untyped functions:
+
+% @deffn category name args
+\makedefun{deffn}{\deffngeneral{}}
+
+% @deffn category class name args
+\makedefun{defop}#1 {\defopon{#1\ \putwordon}}
+
+% \defopon {category on}class name args
+\def\defopon#1#2 {\deffngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} }
+
+% \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}%
+}
+
+%%% Typed functions:
+
+% @deftypefn category type name args
+\makedefun{deftypefn}{\deftypefngeneral{}}
+
+% @deftypeop category class type name args
+\makedefun{deftypeop}#1 {\deftypeopon{#1\ \putwordon}}
+
+% \deftypeopon {category on}class type name args
+\def\deftypeopon#1#2 {\deftypefngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} }
+
+% \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}%
+}
+
+%%% Typed variables:
+
+% @deftypevr category type var args
+\makedefun{deftypevr}{\deftypecvgeneral{}}
+
+% @deftypecv category class type var args
+\makedefun{deftypecv}#1 {\deftypecvof{#1\ \putwordof}}
+
+% \deftypecvof {category of}class type var args
+\def\deftypecvof#1#2 {\deftypecvgeneral{\putwordof\ \code{#2}}{#1\ \code{#2}} }
+
+% \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}%
+}
+
+%%% Untyped variables:
+
+% @defvr category var args
+\makedefun{defvr}#1 {\deftypevrheader{#1} {} }
+
+% @defcv category class var args
+\makedefun{defcv}#1 {\defcvof{#1\ \putwordof}}
+
+% \defcvof {category of}class var args
+\def\defcvof#1#2 {\deftypecvof{#1}#2 {} }
+
+%%% Type:
+% @deftp category name args
+\makedefun{deftp}#1 #2 #3\endheader{%
+  \doind{tp}{\code{#2}}%
+  \defname{#1}{}{#2}\defunargs{#3\unskip}%
+}
+
+% 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.
+}
+
+% 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
+}
+
+% We want ()&[] to print specially on the defun line.
+%
+\def\activeparens{%
+  \catcode`\(=\active \catcode`\)=\active
+  \catcode`\[=\active \catcode`\]=\active
+  \catcode`\&=\active
+}
+
+% Make control sequences which act like normal parenthesis chars.
+\let\lparen = ( \let\rparen = )
+
+% 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& = \&
+
+  \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
+  \gdef\magicamp{\let&=\amprm}
+}
+
+\newcount\parencount
+
+% If we encounter &foo, then turn on ()-hacking afterwards
+\newif\ifampseen
+\def\amprm#1 {\ampseentrue{\bf\&#1 }}
+
+\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}
+
+\def\opnr{%
+  \global\advance\parencount by 1
+  {\parenfont(}%
+  \infirstlevel \bfafterword
+}
+\def\clnr{%
+  {\parenfont)}%
+  \infirstlevel \sl
+  \global\advance\parencount by -1
+}
+
+\newcount\brackcount
+\def\lbrb{%
+  \global\advance\brackcount by 1
+  {\bf[}%
+}
+\def\rbrb{%
+  {\bf]}%
+  \global\advance\brackcount by -1
+}
+
+\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
+}
+
+
+\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
+
+\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
+}
+
+\def\scanexp#1{%
+  \edef\temp{\noexpand\scanmacro{#1}}%
+  \temp
+}
+
+\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}%
+}
+
+% 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
+}
+
+% 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}
+}
+
+% 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}%
+}
+
+% 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
+}
+
+\def\scanargctxt{%
+  \scanctxt
+  \catcode`\\=\other
+  \catcode`\^^M=\other
+}
+
+\def\macrobodyctxt{%
+  \scanctxt
+  \catcode`\{=\other
+  \catcode`\}=\other
+  \catcode`\^^M=\other
+  \usembodybackslash
+}
+
+\def\macroargctxt{%
+  \scanctxt
+  \catcode`\\=\other
+}
+
+% \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
+}
+
+% 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
+}
+
+% 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\macnamexxx=#1\futurelet\nchar\braceorlinexxx}
+\def\braceorlinexxx{%
+  \ifx\nchar\bgroup\else
+    \expandafter\parsearg
+  \fi \macnamexxx}
+
+
+% @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
+}
+
+
+\message{cross references,}
+
+\newwrite\auxfile
+\newif\ifhavexrefs    % True if xref values are known.
+\newif\ifwarnedxrefs  % True if we warned once that they aren't known.
+
+% @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}}
+
+\let\nwnode=\node
+\let\lastnode=\empty
+
+% 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
+}
+
+% @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.
+      \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, during \shipout
+    }%
+  \fi
+}
+
+% @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}%
+    {\indexnofonts
+     \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]}
+
+% 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
+}
+
+% 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.
+}
+
+% 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{%
+  {% The node name might contain 8-bit characters, which in our current
+   % implementation are changed to commands like @'e.  Don't let these
+   % mess up the control sequence name.
+    \indexnofonts
+    \turnoffactive
+    \xdef\safexrefname{#1}%
+  }%
+  %
+  \expandafter\gdef\csname XR\safexrefname\endcsname{#2}% remember this xref
+  %
+  % Was that xref control sequence that we just defined for a float?
+  \expandafter\iffloat\csname XR\safexrefname\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
+      {\safexrefname}}%
+  \fi
+}
+
+% 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\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
+}
+
+\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
+
+{\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
+}%
+
+% 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
+
+% 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.
+
+% 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
+}
+
+% 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\checksaveins#1{\ifvoid#1\else \placesaveins#1\fi}
+
+\def\placesaveins#1{%
+  \ptexinsert \csname\expandafter\gobblesave\string#1\endcsname
+    {\box#1}%
+}
+
+% eat @SAVE -- beware, all of them have catcode \other:
+{
+  \def\dospecials{\do S\do A\do V\do E} \uncatcodespecials  %  ;-)
+  \gdef\gobblesave @SAVE{}
+}
+
+% 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}%
+}
+
+% initialize:
+\let\checkinserts\empty
+\newsaveins\footins
+\newsaveins\margin
+
+
+% @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}
+
+% There may be a space before second and/or third parameter; delete it.
+\def\eatcommaspace#1, {#1,}
+
+% #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
+}
+
+% 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
+}
+
+% Append the tokens #2 to the definition of macro #1, not expanding either.
+%
+\def\appendtomacro#1#2{%
+  \expandafter\def\expandafter#1\expandafter{#1#2}%
+}
+
+% @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%
+}
+
+% \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}%
+
+% Magic string used for the XREFLABEL-title value, so \xrefX can
+% distinguish floats from other xref types.
+\def\floatmagic{!!float!!}
+
+% #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
+}
+
+% @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
+}
+
+% 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
+}}
+
+
+\message{localization,}
+
+% @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.}
+
+% Set the catcode of characters 128 through 255 to the specified number.
+%
+\def\setnonasciicharscatcode#1{%
+   \count255=128
+   \loop\ifnum\count255<256
+      \global\catcode\count255=#1
+      \advance\count255 by 1
+   \repeat
+}
+
+% @documentencoding sets the definition of non-ASCII characters
+% according to the specified encoding.
+%
+\parseargdef\documentencoding{%
+  % Encoding being declared for the document.
+  \def\declaredencoding{\csname #1.enc\endcsname}%
+  %
+  % Supported encodings: names converted to tokens in order to be able
+  % to compare them with \ifx.
+  \def\ascii{\csname US-ASCII.enc\endcsname}%
+  \def\latnine{\csname ISO-8859-15.enc\endcsname}%
+  \def\latone{\csname ISO-8859-1.enc\endcsname}%
+  \def\lattwo{\csname ISO-8859-2.enc\endcsname}%
+  \def\utfeight{\csname UTF-8.enc\endcsname}%
+  %
+  \ifx \declaredencoding \ascii
+     \asciichardefs
+  %
+  \else \ifx \declaredencoding \lattwo
+     \setnonasciicharscatcode\active
+     \lattwochardefs
+  %
+  \else \ifx \declaredencoding \latone 
+     \setnonasciicharscatcode\active
+     \latonechardefs
+  %
+  \else \ifx \declaredencoding \latnine
+     \setnonasciicharscatcode\active
+     \latninechardefs
+  %
+  \else \ifx \declaredencoding \utfeight
+     \setnonasciicharscatcode\active
+     \utfeightchardefs
+  %
+  \else 
+    \message{Unknown document encoding #1, ignoring.}%
+  %
+  \fi % utfeight
+  \fi % latnine
+  \fi % latone
+  \fi % lattwo
+  \fi % ascii
+}
+
+% A message to be logged when using a character that isn't available
+% the default font encoding (OT1).
+% 
+\def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}}
+
+% Take account of \c (plain) vs. \, (Texinfo) difference.
+\def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi}
+
+% First, make active non-ASCII characters in order for them to be
+% correctly categorized when TeX reads the replacement text of
+% macros containing the character definitions.
+\setnonasciicharscatcode\active
+%
+% Latin1 (ISO-8859-1) character definitions.
+\def\latonechardefs{%
+  \gdef^^a0{~} 
+  \gdef^^a1{\exclamdown}
+  \gdef^^a2{\missingcharmsg{CENT SIGN}} 
+  \gdef^^a3{{\pounds}}
+  \gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
+  \gdef^^a5{\missingcharmsg{YEN SIGN}}
+  \gdef^^a6{\missingcharmsg{BROKEN BAR}} 
+  \gdef^^a7{\S}
+  \gdef^^a8{\"{}} 
+  \gdef^^a9{\copyright} 
+  \gdef^^aa{\ordf}
+  \gdef^^ab{\missingcharmsg{LEFT-POINTING DOUBLE ANGLE QUOTATION MARK}} 
+  \gdef^^ac{$\lnot$}
+  \gdef^^ad{\-} 
+  \gdef^^ae{\registeredsymbol} 
+  \gdef^^af{\={}}
+  %
+  \gdef^^b0{\textdegree}
+  \gdef^^b1{$\pm$}
+  \gdef^^b2{$^2$}
+  \gdef^^b3{$^3$}
+  \gdef^^b4{\'{}}
+  \gdef^^b5{$\mu$}
+  \gdef^^b6{\P}
+  %
+  \gdef^^b7{$^.$}
+  \gdef^^b8{\cedilla\ }
+  \gdef^^b9{$^1$}
+  \gdef^^ba{\ordm}
+  %
+  \gdef^^bb{\missingcharmsg{RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK}}
+  \gdef^^bc{$1\over4$}
+  \gdef^^bd{$1\over2$}
+  \gdef^^be{$3\over4$}
+  \gdef^^bf{\questiondown}
+  %
+  \gdef^^c0{\`A}
+  \gdef^^c1{\'A}
+  \gdef^^c2{\^A}
+  \gdef^^c3{\~A}
+  \gdef^^c4{\"A}
+  \gdef^^c5{\ringaccent A} 
+  \gdef^^c6{\AE}
+  \gdef^^c7{\cedilla C}
+  \gdef^^c8{\`E}
+  \gdef^^c9{\'E}
+  \gdef^^ca{\^E}
+  \gdef^^cb{\"E}
+  \gdef^^cc{\`I}
+  \gdef^^cd{\'I}
+  \gdef^^ce{\^I}
+  \gdef^^cf{\"I}
+  %
+  \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER ETH}}
+  \gdef^^d1{\~N}
+  \gdef^^d2{\`O}
+  \gdef^^d3{\'O}
+  \gdef^^d4{\^O}
+  \gdef^^d5{\~O}
+  \gdef^^d6{\"O}
+  \gdef^^d7{$\times$}
+  \gdef^^d8{\O}
+  \gdef^^d9{\`U}
+  \gdef^^da{\'U}
+  \gdef^^db{\^U}
+  \gdef^^dc{\"U}
+  \gdef^^dd{\'Y}
+  \gdef^^de{\missingcharmsg{LATIN CAPITAL LETTER THORN}}
+  \gdef^^df{\ss}
+  %
+  \gdef^^e0{\`a}
+  \gdef^^e1{\'a}
+  \gdef^^e2{\^a}
+  \gdef^^e3{\~a}
+  \gdef^^e4{\"a}
+  \gdef^^e5{\ringaccent a}
+  \gdef^^e6{\ae}
+  \gdef^^e7{\cedilla c}
+  \gdef^^e8{\`e}
+  \gdef^^e9{\'e}
+  \gdef^^ea{\^e}
+  \gdef^^eb{\"e}
+  \gdef^^ec{\`{\dotless i}}
+  \gdef^^ed{\'{\dotless i}}
+  \gdef^^ee{\^{\dotless i}}
+  \gdef^^ef{\"{\dotless i}}
+  %
+  \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER ETH}}
+  \gdef^^f1{\~n}
+  \gdef^^f2{\`o}
+  \gdef^^f3{\'o}
+  \gdef^^f4{\^o}
+  \gdef^^f5{\~o}
+  \gdef^^f6{\"o}
+  \gdef^^f7{$\div$}
+  \gdef^^f8{\o}
+  \gdef^^f9{\`u}
+  \gdef^^fa{\'u}
+  \gdef^^fb{\^u}
+  \gdef^^fc{\"u}
+  \gdef^^fd{\'y}
+  \gdef^^fe{\missingcharmsg{LATIN SMALL LETTER THORN}}
+  \gdef^^ff{\"y}
+}
+
+% Latin9 (ISO-8859-15) encoding character definitions.
+\def\latninechardefs{%
+  % Encoding is almost identical to Latin1.
+  \latonechardefs
+  %
+  \gdef^^a4{\euro}
+  \gdef^^a6{\v S}
+  \gdef^^a8{\v s}
+  \gdef^^b4{\v Z}
+  \gdef^^b8{\v z}
+  \gdef^^bc{\OE}
+  \gdef^^bd{\oe}
+  \gdef^^be{\"Y}
+}
+
+% Latin2 (ISO-8859-2) character definitions.
+\def\lattwochardefs{%
+  \gdef^^a0{~}
+  \gdef^^a1{\missingcharmsg{LATIN CAPITAL LETTER A WITH OGONEK}}
+  \gdef^^a2{\u{}}
+  \gdef^^a3{\L}
+  \gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
+  \gdef^^a5{\v L}
+  \gdef^^a6{\'S}
+  \gdef^^a7{\S}
+  \gdef^^a8{\"{}}
+  \gdef^^a9{\v S}
+  \gdef^^aa{\cedilla S}
+  \gdef^^ab{\v T}
+  \gdef^^ac{\'Z}
+  \gdef^^ad{\-}
+  \gdef^^ae{\v Z}
+  \gdef^^af{\dotaccent Z}
+  %
+  \gdef^^b0{\textdegree}
+  \gdef^^b1{\missingcharmsg{LATIN SMALL LETTER A WITH OGONEK}}
+  \gdef^^b2{\missingcharmsg{OGONEK}}
+  \gdef^^b3{\l}
+  \gdef^^b4{\'{}}
+  \gdef^^b5{\v l}
+  \gdef^^b6{\'s}
+  \gdef^^b7{\v{}}
+  \gdef^^b8{\cedilla\ }
+  \gdef^^b9{\v s}
+  \gdef^^ba{\cedilla s}
+  \gdef^^bb{\v t}
+  \gdef^^bc{\'z}
+  \gdef^^bd{\H{}}
+  \gdef^^be{\v z}
+  \gdef^^bf{\dotaccent z}
+  %
+  \gdef^^c0{\'R}
+  \gdef^^c1{\'A}
+  \gdef^^c2{\^A}
+  \gdef^^c3{\u A}
+  \gdef^^c4{\"A}
+  \gdef^^c5{\'L}
+  \gdef^^c6{\'C}
+  \gdef^^c7{\cedilla C}
+  \gdef^^c8{\v C}
+  \gdef^^c9{\'E}
+  \gdef^^ca{\missingcharmsg{LATIN CAPITAL LETTER E WITH OGONEK}}
+  \gdef^^cb{\"E}
+  \gdef^^cc{\v E}
+  \gdef^^cd{\'I}
+  \gdef^^ce{\^I}
+  \gdef^^cf{\v D}
+  %
+  \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER D WITH STROKE}}
+  \gdef^^d1{\'N}
+  \gdef^^d2{\v N}
+  \gdef^^d3{\'O}
+  \gdef^^d4{\^O}
+  \gdef^^d5{\H O}
+  \gdef^^d6{\"O}
+  \gdef^^d7{$\times$}
+  \gdef^^d8{\v R}
+  \gdef^^d9{\ringaccent U} 
+  \gdef^^da{\'U}
+  \gdef^^db{\H U}
+  \gdef^^dc{\"U}
+  \gdef^^dd{\'Y}
+  \gdef^^de{\cedilla T}
+  \gdef^^df{\ss}
+  %
+  \gdef^^e0{\'r}
+  \gdef^^e1{\'a}
+  \gdef^^e2{\^a}
+  \gdef^^e3{\u a}
+  \gdef^^e4{\"a}
+  \gdef^^e5{\'l}
+  \gdef^^e6{\'c}
+  \gdef^^e7{\cedilla c}
+  \gdef^^e8{\v c}
+  \gdef^^e9{\'e}
+  \gdef^^ea{\missingcharmsg{LATIN SMALL LETTER E WITH OGONEK}}
+  \gdef^^eb{\"e}
+  \gdef^^ec{\v e}
+  \gdef^^ed{\'\i}
+  \gdef^^ee{\^\i}
+  \gdef^^ef{\v d}
+  %
+  \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER D WITH STROKE}}
+  \gdef^^f1{\'n}
+  \gdef^^f2{\v n}
+  \gdef^^f3{\'o}
+  \gdef^^f4{\^o}
+  \gdef^^f5{\H o}
+  \gdef^^f6{\"o}
+  \gdef^^f7{$\div$}
+  \gdef^^f8{\v r}
+  \gdef^^f9{\ringaccent u}
+  \gdef^^fa{\'u}
+  \gdef^^fb{\H u}
+  \gdef^^fc{\"u}
+  \gdef^^fd{\'y}
+  \gdef^^fe{\cedilla t}
+  \gdef^^ff{\dotaccent{}}
+}
+
+% UTF-8 character definitions.
+% 
+% This code to support UTF-8 is based on LaTeX's utf8.def, with some
+% changes for Texinfo conventions.  It is included here under the GPL by
+% permission from Frank Mittelbach and the LaTeX team.
+% 
+\newcount\countUTFx
+\newcount\countUTFy
+\newcount\countUTFz
+
+\gdef\UTFviiiTwoOctets#1#2{\expandafter
+   \UTFviiiDefined\csname u8:#1\string #2\endcsname}
+%
+\gdef\UTFviiiThreeOctets#1#2#3{\expandafter
+   \UTFviiiDefined\csname u8:#1\string #2\string #3\endcsname}
+%
+\gdef\UTFviiiFourOctets#1#2#3#4{\expandafter
+   \UTFviiiDefined\csname u8:#1\string #2\string #3\string #4\endcsname}
+
+\gdef\UTFviiiDefined#1{%
+  \ifx #1\relax
+    \message{\linenumber Unicode char \string #1 not defined for Texinfo}%
+  \else
+    \expandafter #1%
+  \fi
+}
+
+\begingroup
+  \catcode`\~13
+  \catcode`\"12
+
+  \def\UTFviiiLoop{%
+    \global\catcode\countUTFx\active
+    \uccode`\~\countUTFx
+    \uppercase\expandafter{\UTFviiiTmp}%
+    \advance\countUTFx by 1
+    \ifnum\countUTFx < \countUTFy
+      \expandafter\UTFviiiLoop
+    \fi}
+
+  \countUTFx = "C2
+  \countUTFy = "E0
+  \def\UTFviiiTmp{%
+    \xdef~{\noexpand\UTFviiiTwoOctets\string~}}
+  \UTFviiiLoop
+
+  \countUTFx = "E0
+  \countUTFy = "F0
+  \def\UTFviiiTmp{%
+    \xdef~{\noexpand\UTFviiiThreeOctets\string~}}
+  \UTFviiiLoop
+
+  \countUTFx = "F0
+  \countUTFy = "F4
+  \def\UTFviiiTmp{%
+    \xdef~{\noexpand\UTFviiiFourOctets\string~}}
+  \UTFviiiLoop
+\endgroup
+
+\begingroup
+  \catcode`\"=12
+  \catcode`\<=12
+  \catcode`\.=12
+  \catcode`\,=12
+  \catcode`\;=12
+  \catcode`\!=12
+  \catcode`\~=13
+
+  \gdef\DeclareUnicodeCharacter#1#2{%
+    \countUTFz = "#1\relax
+    \wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}%
+    \begingroup
+      \parseXMLCharref
+      \def\UTFviiiTwoOctets##1##2{%
+        \csname u8:##1\string ##2\endcsname}%
+      \def\UTFviiiThreeOctets##1##2##3{%
+        \csname u8:##1\string ##2\string ##3\endcsname}%
+      \def\UTFviiiFourOctets##1##2##3##4{%
+        \csname u8:##1\string ##2\string ##3\string ##4\endcsname}%
+      \expandafter\expandafter\expandafter\expandafter
+       \expandafter\expandafter\expandafter
+       \gdef\UTFviiiTmp{#2}%
+    \endgroup}
+
+  \gdef\parseXMLCharref{%
+    \ifnum\countUTFz < "A0\relax
+      \errhelp = \EMsimple
+      \errmessage{Cannot define Unicode char value < 00A0}%
+    \else\ifnum\countUTFz < "800\relax
+      \parseUTFviiiA,%
+      \parseUTFviiiB C\UTFviiiTwoOctets.,%
+    \else\ifnum\countUTFz < "10000\relax
+      \parseUTFviiiA;%
+      \parseUTFviiiA,%
+      \parseUTFviiiB E\UTFviiiThreeOctets.{,;}%
+    \else
+      \parseUTFviiiA;%
+      \parseUTFviiiA,%
+      \parseUTFviiiA!%
+      \parseUTFviiiB F\UTFviiiFourOctets.{!,;}%
+    \fi\fi\fi
+  }
+
+  \gdef\parseUTFviiiA#1{%
+    \countUTFx = \countUTFz
+    \divide\countUTFz by 64
+    \countUTFy = \countUTFz
+    \multiply\countUTFz by 64
+    \advance\countUTFx by -\countUTFz
+    \advance\countUTFx by 128
+    \uccode `#1\countUTFx
+    \countUTFz = \countUTFy}
+
+  \gdef\parseUTFviiiB#1#2#3#4{%
+    \advance\countUTFz by "#10\relax
+    \uccode `#3\countUTFz
+    \uppercase{\gdef\UTFviiiTmp{#2#3#4}}}
+\endgroup
+
+\def\utfeightchardefs{%
+  \DeclareUnicodeCharacter{00A0}{\tie}
+  \DeclareUnicodeCharacter{00A1}{\exclamdown}
+  \DeclareUnicodeCharacter{00A3}{\pounds}
+  \DeclareUnicodeCharacter{00A8}{\"{ }}
+  \DeclareUnicodeCharacter{00A9}{\copyright}
+  \DeclareUnicodeCharacter{00AA}{\ordf}
+  \DeclareUnicodeCharacter{00AD}{\-}
+  \DeclareUnicodeCharacter{00AE}{\registeredsymbol}
+  \DeclareUnicodeCharacter{00AF}{\={ }}
+
+  \DeclareUnicodeCharacter{00B0}{\ringaccent{ }}
+  \DeclareUnicodeCharacter{00B4}{\'{ }}
+  \DeclareUnicodeCharacter{00B8}{\cedilla{ }}
+  \DeclareUnicodeCharacter{00BA}{\ordm}
+  \DeclareUnicodeCharacter{00BF}{\questiondown}
+
+  \DeclareUnicodeCharacter{00C0}{\`A}
+  \DeclareUnicodeCharacter{00C1}{\'A}
+  \DeclareUnicodeCharacter{00C2}{\^A}
+  \DeclareUnicodeCharacter{00C3}{\~A}
+  \DeclareUnicodeCharacter{00C4}{\"A}
+  \DeclareUnicodeCharacter{00C5}{\AA}
+  \DeclareUnicodeCharacter{00C6}{\AE}
+  \DeclareUnicodeCharacter{00C7}{\cedilla{C}}
+  \DeclareUnicodeCharacter{00C8}{\`E}
+  \DeclareUnicodeCharacter{00C9}{\'E}
+  \DeclareUnicodeCharacter{00CA}{\^E}
+  \DeclareUnicodeCharacter{00CB}{\"E}
+  \DeclareUnicodeCharacter{00CC}{\`I}
+  \DeclareUnicodeCharacter{00CD}{\'I}
+  \DeclareUnicodeCharacter{00CE}{\^I}
+  \DeclareUnicodeCharacter{00CF}{\"I}
+
+  \DeclareUnicodeCharacter{00D1}{\~N}
+  \DeclareUnicodeCharacter{00D2}{\`O}
+  \DeclareUnicodeCharacter{00D3}{\'O}
+  \DeclareUnicodeCharacter{00D4}{\^O}
+  \DeclareUnicodeCharacter{00D5}{\~O}
+  \DeclareUnicodeCharacter{00D6}{\"O}
+  \DeclareUnicodeCharacter{00D8}{\O}
+  \DeclareUnicodeCharacter{00D9}{\`U}
+  \DeclareUnicodeCharacter{00DA}{\'U}
+  \DeclareUnicodeCharacter{00DB}{\^U}
+  \DeclareUnicodeCharacter{00DC}{\"U}
+  \DeclareUnicodeCharacter{00DD}{\'Y}
+  \DeclareUnicodeCharacter{00DF}{\ss}
+
+  \DeclareUnicodeCharacter{00E0}{\`a}
+  \DeclareUnicodeCharacter{00E1}{\'a}
+  \DeclareUnicodeCharacter{00E2}{\^a}
+  \DeclareUnicodeCharacter{00E3}{\~a}
+  \DeclareUnicodeCharacter{00E4}{\"a}
+  \DeclareUnicodeCharacter{00E5}{\aa}
+  \DeclareUnicodeCharacter{00E6}{\ae}
+  \DeclareUnicodeCharacter{00E7}{\cedilla{c}}
+  \DeclareUnicodeCharacter{00E8}{\`e}
+  \DeclareUnicodeCharacter{00E9}{\'e}
+  \DeclareUnicodeCharacter{00EA}{\^e}
+  \DeclareUnicodeCharacter{00EB}{\"e}
+  \DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}}
+  \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}}
+  \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}}
+  \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}}
+
+  \DeclareUnicodeCharacter{00F1}{\~n}
+  \DeclareUnicodeCharacter{00F2}{\`o}
+  \DeclareUnicodeCharacter{00F3}{\'o}
+  \DeclareUnicodeCharacter{00F4}{\^o}
+  \DeclareUnicodeCharacter{00F5}{\~o}
+  \DeclareUnicodeCharacter{00F6}{\"o}
+  \DeclareUnicodeCharacter{00F8}{\o}
+  \DeclareUnicodeCharacter{00F9}{\`u}
+  \DeclareUnicodeCharacter{00FA}{\'u}
+  \DeclareUnicodeCharacter{00FB}{\^u}
+  \DeclareUnicodeCharacter{00FC}{\"u}
+  \DeclareUnicodeCharacter{00FD}{\'y}
+  \DeclareUnicodeCharacter{00FF}{\"y}
+
+  \DeclareUnicodeCharacter{0100}{\=A}
+  \DeclareUnicodeCharacter{0101}{\=a}
+  \DeclareUnicodeCharacter{0102}{\u{A}}
+  \DeclareUnicodeCharacter{0103}{\u{a}}
+  \DeclareUnicodeCharacter{0106}{\'C}
+  \DeclareUnicodeCharacter{0107}{\'c}
+  \DeclareUnicodeCharacter{0108}{\^C}
+  \DeclareUnicodeCharacter{0109}{\^c}
+  \DeclareUnicodeCharacter{010A}{\dotaccent{C}}
+  \DeclareUnicodeCharacter{010B}{\dotaccent{c}}
+  \DeclareUnicodeCharacter{010C}{\v{C}}
+  \DeclareUnicodeCharacter{010D}{\v{c}}
+  \DeclareUnicodeCharacter{010E}{\v{D}}
+
+  \DeclareUnicodeCharacter{0112}{\=E}
+  \DeclareUnicodeCharacter{0113}{\=e}
+  \DeclareUnicodeCharacter{0114}{\u{E}}
+  \DeclareUnicodeCharacter{0115}{\u{e}}
+  \DeclareUnicodeCharacter{0116}{\dotaccent{E}}
+  \DeclareUnicodeCharacter{0117}{\dotaccent{e}}
+  \DeclareUnicodeCharacter{011A}{\v{E}}
+  \DeclareUnicodeCharacter{011B}{\v{e}}
+  \DeclareUnicodeCharacter{011C}{\^G}
+  \DeclareUnicodeCharacter{011D}{\^g}
+  \DeclareUnicodeCharacter{011E}{\u{G}}
+  \DeclareUnicodeCharacter{011F}{\u{g}}
+
+  \DeclareUnicodeCharacter{0120}{\dotaccent{G}}
+  \DeclareUnicodeCharacter{0121}{\dotaccent{g}}
+  \DeclareUnicodeCharacter{0124}{\^H}
+  \DeclareUnicodeCharacter{0125}{\^h}
+  \DeclareUnicodeCharacter{0128}{\~I}
+  \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}}
+  \DeclareUnicodeCharacter{012A}{\=I}
+  \DeclareUnicodeCharacter{012B}{\={\dotless{i}}}
+  \DeclareUnicodeCharacter{012C}{\u{I}}
+  \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}}
+
+  \DeclareUnicodeCharacter{0130}{\dotaccent{I}}
+  \DeclareUnicodeCharacter{0131}{\dotless{i}}
+  \DeclareUnicodeCharacter{0132}{IJ}
+  \DeclareUnicodeCharacter{0133}{ij}
+  \DeclareUnicodeCharacter{0134}{\^J}
+  \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}}
+  \DeclareUnicodeCharacter{0139}{\'L}
+  \DeclareUnicodeCharacter{013A}{\'l}
+
+  \DeclareUnicodeCharacter{0141}{\L}
+  \DeclareUnicodeCharacter{0142}{\l}
+  \DeclareUnicodeCharacter{0143}{\'N}
+  \DeclareUnicodeCharacter{0144}{\'n}
+  \DeclareUnicodeCharacter{0147}{\v{N}}
+  \DeclareUnicodeCharacter{0148}{\v{n}}
+  \DeclareUnicodeCharacter{014C}{\=O}
+  \DeclareUnicodeCharacter{014D}{\=o}
+  \DeclareUnicodeCharacter{014E}{\u{O}}
+  \DeclareUnicodeCharacter{014F}{\u{o}}
+
+  \DeclareUnicodeCharacter{0150}{\H{O}}
+  \DeclareUnicodeCharacter{0151}{\H{o}}
+  \DeclareUnicodeCharacter{0152}{\OE}
+  \DeclareUnicodeCharacter{0153}{\oe}
+  \DeclareUnicodeCharacter{0154}{\'R}
+  \DeclareUnicodeCharacter{0155}{\'r}
+  \DeclareUnicodeCharacter{0158}{\v{R}}
+  \DeclareUnicodeCharacter{0159}{\v{r}}
+  \DeclareUnicodeCharacter{015A}{\'S}
+  \DeclareUnicodeCharacter{015B}{\'s}
+  \DeclareUnicodeCharacter{015C}{\^S}
+  \DeclareUnicodeCharacter{015D}{\^s}
+  \DeclareUnicodeCharacter{015E}{\cedilla{S}}
+  \DeclareUnicodeCharacter{015F}{\cedilla{s}}
+
+  \DeclareUnicodeCharacter{0160}{\v{S}}
+  \DeclareUnicodeCharacter{0161}{\v{s}}
+  \DeclareUnicodeCharacter{0162}{\cedilla{t}}
+  \DeclareUnicodeCharacter{0163}{\cedilla{T}}
+  \DeclareUnicodeCharacter{0164}{\v{T}}
+
+  \DeclareUnicodeCharacter{0168}{\~U}
+  \DeclareUnicodeCharacter{0169}{\~u}
+  \DeclareUnicodeCharacter{016A}{\=U}
+  \DeclareUnicodeCharacter{016B}{\=u}
+  \DeclareUnicodeCharacter{016C}{\u{U}}
+  \DeclareUnicodeCharacter{016D}{\u{u}}
+  \DeclareUnicodeCharacter{016E}{\ringaccent{U}}
+  \DeclareUnicodeCharacter{016F}{\ringaccent{u}}
+
+  \DeclareUnicodeCharacter{0170}{\H{U}}
+  \DeclareUnicodeCharacter{0171}{\H{u}}
+  \DeclareUnicodeCharacter{0174}{\^W}
+  \DeclareUnicodeCharacter{0175}{\^w}
+  \DeclareUnicodeCharacter{0176}{\^Y}
+  \DeclareUnicodeCharacter{0177}{\^y}
+  \DeclareUnicodeCharacter{0178}{\"Y}
+  \DeclareUnicodeCharacter{0179}{\'Z}
+  \DeclareUnicodeCharacter{017A}{\'z}
+  \DeclareUnicodeCharacter{017B}{\dotaccent{Z}}
+  \DeclareUnicodeCharacter{017C}{\dotaccent{z}}
+  \DeclareUnicodeCharacter{017D}{\v{Z}}
+  \DeclareUnicodeCharacter{017E}{\v{z}}
+
+  \DeclareUnicodeCharacter{01C4}{D\v{Z}}
+  \DeclareUnicodeCharacter{01C5}{D\v{z}}
+  \DeclareUnicodeCharacter{01C6}{d\v{z}}
+  \DeclareUnicodeCharacter{01C7}{LJ}
+  \DeclareUnicodeCharacter{01C8}{Lj}
+  \DeclareUnicodeCharacter{01C9}{lj}
+  \DeclareUnicodeCharacter{01CA}{NJ}
+  \DeclareUnicodeCharacter{01CB}{Nj}
+  \DeclareUnicodeCharacter{01CC}{nj}
+  \DeclareUnicodeCharacter{01CD}{\v{A}}
+  \DeclareUnicodeCharacter{01CE}{\v{a}}
+  \DeclareUnicodeCharacter{01CF}{\v{I}}
+
+  \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}}
+  \DeclareUnicodeCharacter{01D1}{\v{O}}
+  \DeclareUnicodeCharacter{01D2}{\v{o}}
+  \DeclareUnicodeCharacter{01D3}{\v{U}}
+  \DeclareUnicodeCharacter{01D4}{\v{u}}
+
+  \DeclareUnicodeCharacter{01E2}{\={\AE}}
+  \DeclareUnicodeCharacter{01E3}{\={\ae}}
+  \DeclareUnicodeCharacter{01E6}{\v{G}}
+  \DeclareUnicodeCharacter{01E7}{\v{g}}
+  \DeclareUnicodeCharacter{01E8}{\v{K}}
+  \DeclareUnicodeCharacter{01E9}{\v{k}}
+
+  \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}}
+  \DeclareUnicodeCharacter{01F1}{DZ}
+  \DeclareUnicodeCharacter{01F2}{Dz}
+  \DeclareUnicodeCharacter{01F3}{dz}
+  \DeclareUnicodeCharacter{01F4}{\'G}
+  \DeclareUnicodeCharacter{01F5}{\'g}
+  \DeclareUnicodeCharacter{01F8}{\`N}
+  \DeclareUnicodeCharacter{01F9}{\`n}
+  \DeclareUnicodeCharacter{01FC}{\'{\AE}}
+  \DeclareUnicodeCharacter{01FD}{\'{\ae}}
+  \DeclareUnicodeCharacter{01FE}{\'{\O}}
+  \DeclareUnicodeCharacter{01FF}{\'{\o}}
+
+  \DeclareUnicodeCharacter{021E}{\v{H}}
+  \DeclareUnicodeCharacter{021F}{\v{h}}
+
+  \DeclareUnicodeCharacter{0226}{\dotaccent{A}}
+  \DeclareUnicodeCharacter{0227}{\dotaccent{a}}
+  \DeclareUnicodeCharacter{0228}{\cedilla{E}}
+  \DeclareUnicodeCharacter{0229}{\cedilla{e}}
+  \DeclareUnicodeCharacter{022E}{\dotaccent{O}}
+  \DeclareUnicodeCharacter{022F}{\dotaccent{o}}
+
+  \DeclareUnicodeCharacter{0232}{\=Y}
+  \DeclareUnicodeCharacter{0233}{\=y}
+  \DeclareUnicodeCharacter{0237}{\dotless{j}}
+
+  \DeclareUnicodeCharacter{1E02}{\dotaccent{B}}
+  \DeclareUnicodeCharacter{1E03}{\dotaccent{b}}
+  \DeclareUnicodeCharacter{1E04}{\udotaccent{B}}
+  \DeclareUnicodeCharacter{1E05}{\udotaccent{b}}
+  \DeclareUnicodeCharacter{1E06}{\ubaraccent{B}}
+  \DeclareUnicodeCharacter{1E07}{\ubaraccent{b}}
+  \DeclareUnicodeCharacter{1E0A}{\dotaccent{D}}
+  \DeclareUnicodeCharacter{1E0B}{\dotaccent{d}}
+  \DeclareUnicodeCharacter{1E0C}{\udotaccent{D}}
+  \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}}
+  \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}}
+  \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}}
+
+  \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}}
+  \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}}
+
+  \DeclareUnicodeCharacter{1E20}{\=G}
+  \DeclareUnicodeCharacter{1E21}{\=g}
+  \DeclareUnicodeCharacter{1E22}{\dotaccent{H}}
+  \DeclareUnicodeCharacter{1E23}{\dotaccent{h}}
+  \DeclareUnicodeCharacter{1E24}{\udotaccent{H}}
+  \DeclareUnicodeCharacter{1E25}{\udotaccent{h}}
+  \DeclareUnicodeCharacter{1E26}{\"H}
+  \DeclareUnicodeCharacter{1E27}{\"h}
+
+  \DeclareUnicodeCharacter{1E30}{\'K}
+  \DeclareUnicodeCharacter{1E31}{\'k}
+  \DeclareUnicodeCharacter{1E32}{\udotaccent{K}}
+  \DeclareUnicodeCharacter{1E33}{\udotaccent{k}}
+  \DeclareUnicodeCharacter{1E34}{\ubaraccent{K}}
+  \DeclareUnicodeCharacter{1E35}{\ubaraccent{k}}
+  \DeclareUnicodeCharacter{1E36}{\udotaccent{L}}
+  \DeclareUnicodeCharacter{1E37}{\udotaccent{l}}
+  \DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}}
+  \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}}
+  \DeclareUnicodeCharacter{1E3E}{\'M}
+  \DeclareUnicodeCharacter{1E3F}{\'m}
+
+  \DeclareUnicodeCharacter{1E40}{\dotaccent{M}}
+  \DeclareUnicodeCharacter{1E41}{\dotaccent{m}}
+  \DeclareUnicodeCharacter{1E42}{\udotaccent{M}}
+  \DeclareUnicodeCharacter{1E43}{\udotaccent{m}}
+  \DeclareUnicodeCharacter{1E44}{\dotaccent{N}}
+  \DeclareUnicodeCharacter{1E45}{\dotaccent{n}}
+  \DeclareUnicodeCharacter{1E46}{\udotaccent{N}}
+  \DeclareUnicodeCharacter{1E47}{\udotaccent{n}}
+  \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}}
+  \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}}
+
+  \DeclareUnicodeCharacter{1E54}{\'P}
+  \DeclareUnicodeCharacter{1E55}{\'p}
+  \DeclareUnicodeCharacter{1E56}{\dotaccent{P}}
+  \DeclareUnicodeCharacter{1E57}{\dotaccent{p}}
+  \DeclareUnicodeCharacter{1E58}{\dotaccent{R}}
+  \DeclareUnicodeCharacter{1E59}{\dotaccent{r}}
+  \DeclareUnicodeCharacter{1E5A}{\udotaccent{R}}
+  \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}}
+  \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}}
+  \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}}
+
+  \DeclareUnicodeCharacter{1E60}{\dotaccent{S}}
+  \DeclareUnicodeCharacter{1E61}{\dotaccent{s}}
+  \DeclareUnicodeCharacter{1E62}{\udotaccent{S}}
+  \DeclareUnicodeCharacter{1E63}{\udotaccent{s}}
+  \DeclareUnicodeCharacter{1E6A}{\dotaccent{T}}
+  \DeclareUnicodeCharacter{1E6B}{\dotaccent{t}}
+  \DeclareUnicodeCharacter{1E6C}{\udotaccent{T}}
+  \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}}
+  \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}}
+  \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}}
+
+  \DeclareUnicodeCharacter{1E7C}{\~V}
+  \DeclareUnicodeCharacter{1E7D}{\~v}
+  \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}}
+  \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}}
+
+  \DeclareUnicodeCharacter{1E80}{\`W}
+  \DeclareUnicodeCharacter{1E81}{\`w}
+  \DeclareUnicodeCharacter{1E82}{\'W}
+  \DeclareUnicodeCharacter{1E83}{\'w}
+  \DeclareUnicodeCharacter{1E84}{\"W}
+  \DeclareUnicodeCharacter{1E85}{\"w}
+  \DeclareUnicodeCharacter{1E86}{\dotaccent{W}}
+  \DeclareUnicodeCharacter{1E87}{\dotaccent{w}}
+  \DeclareUnicodeCharacter{1E88}{\udotaccent{W}}
+  \DeclareUnicodeCharacter{1E89}{\udotaccent{w}}
+  \DeclareUnicodeCharacter{1E8A}{\dotaccent{X}}
+  \DeclareUnicodeCharacter{1E8B}{\dotaccent{x}}
+  \DeclareUnicodeCharacter{1E8C}{\"X}
+  \DeclareUnicodeCharacter{1E8D}{\"x}
+  \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}}
+  \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}}
+
+  \DeclareUnicodeCharacter{1E90}{\^Z}
+  \DeclareUnicodeCharacter{1E91}{\^z}
+  \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}}
+  \DeclareUnicodeCharacter{1E93}{\udotaccent{z}}
+  \DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}}
+  \DeclareUnicodeCharacter{1E95}{\ubaraccent{z}}
+  \DeclareUnicodeCharacter{1E96}{\ubaraccent{h}}
+  \DeclareUnicodeCharacter{1E97}{\"t}
+  \DeclareUnicodeCharacter{1E98}{\ringaccent{w}}
+  \DeclareUnicodeCharacter{1E99}{\ringaccent{y}}
+
+  \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}}
+  \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}}
+
+  \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}}
+  \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}}
+  \DeclareUnicodeCharacter{1EBC}{\~E}
+  \DeclareUnicodeCharacter{1EBD}{\~e}
+
+  \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}}
+  \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}}
+  \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}}
+  \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}}
+
+  \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}}
+  \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}}
+
+  \DeclareUnicodeCharacter{1EF2}{\`Y}
+  \DeclareUnicodeCharacter{1EF3}{\`y}
+  \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}}
+
+  \DeclareUnicodeCharacter{1EF8}{\~Y}
+  \DeclareUnicodeCharacter{1EF9}{\~y}
+
+  \DeclareUnicodeCharacter{2013}{--}
+  \DeclareUnicodeCharacter{2014}{---}
+  \DeclareUnicodeCharacter{2022}{\bullet}
+  \DeclareUnicodeCharacter{2026}{\dots}
+  \DeclareUnicodeCharacter{20AC}{\euro}
+
+  \DeclareUnicodeCharacter{2192}{\expansion}
+  \DeclareUnicodeCharacter{21D2}{\result}
+
+  \DeclareUnicodeCharacter{2212}{\minus}
+  \DeclareUnicodeCharacter{2217}{\point}
+  \DeclareUnicodeCharacter{2261}{\equiv}
+}% end of \utfeightchardefs
+
+
+% US-ASCII character definitions.
+\def\asciichardefs{% nothing need be done
+   \relax
+}
+
+% Make non-ASCII characters printable again for compatibility with
+% existing Texinfo documents that may use them, even without declaring a
+% document encoding.
+%
+\setnonasciicharscatcode \other
+
+
+\message{formatting,}
+
+\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
+
+% Following George Bush, just get rid of widows and orphans.
+\widowpenalty=10000
+\clubpenalty=10000
+
+% 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
+}
+
+% 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
+}
+
+% @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}%
+}}
+
+% Use @smallbook to reset parameters for 7x9.25 trim size.
+\def\smallbook{{\globaldefs = 1
+  \parskip = 2pt plus 1pt
+  \textleading = 12pt
+  %
+  \internalpagesizes{7.5in}{5in}%
+                    {-.2in}{0in}%
+                    {\bindingoffset}{16pt}%
+                    {9.25in}{7in}%
+  %
+  \lispnarrowing = 0.3in
+  \tolerance = 700
+  \hfuzz = 1pt
+  \contentsrightmargin = 0pt
+  \defbodyindent = .5cm
+}}
+
+% 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
+}}
+
+% 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
+}}
+
+% 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
+}}
+
+% 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
+}}
+
+% 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
+}}
+
+% @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}%
+}}
+
+% Set default to letter.
+%
+\letterpaper
+
+
+\message{and turning on texinfo input format.}
+
+% 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}
+
+% 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).
+% 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\char34}}
+\let"=\activedoublequote
+\catcode`\~=\active
+\def~{{\tt\char126}}
+\chardef\hat=`\^
+\catcode`\^=\active
+\def^{{\tt \hat}}
+
+\catcode`\_=\active
+\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\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
+
+% \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
+}
+
+% Make _ and + \other characters, temporarily.
+% This is canceled by @fixbackslash.
+@otherifyactive
+
+% 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 = `@@
+
+% These look ok in all fonts, so just make them not special.
+@catcode`@& = @other
+@catcode`@# = @other
+@catcode`@% = @other
+
+
+@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
diff --git a/parted-1.8.7/configure b/parted-1.8.7/configure
new file mode 100755
index 0000000..d091c4f
--- /dev/null
+++ b/parted-1.8.7/configure
@@ -0,0 +1,39257 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.61 for GNU parted 1.8.7.
+#
+# Report bugs to <bug-parted@gnu.org>.
+#
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
+fi
+
+
+
+
+# PATH needs CR
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+as_nl='
+'
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+case $0 in
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  { (exit 1); exit 1; }
+fi
+
+# Work around bugs in pre-3.0 UWIN ksh.
+for as_var in ENV MAIL MAILPATH
+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+  LC_TELEPHONE LC_TIME
+do
+  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+    eval $as_var=C; export $as_var
+  else
+    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+  fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# CDPATH.
+$as_unset CDPATH
+
+
+if test "x$CONFIG_SHELL" = x; then
+  if (eval ":") 2>/dev/null; then
+  as_have_required=yes
+else
+  as_have_required=no
+fi
+
+  if test $as_have_required = yes && 	 (eval ":
+(as_func_return () {
+  (exit \$1)
+}
+as_func_success () {
+  as_func_return 0
+}
+as_func_failure () {
+  as_func_return 1
+}
+as_func_ret_success () {
+  return 0
+}
+as_func_ret_failure () {
+  return 1
+}
+
+exitcode=0
+if as_func_success; then
+  :
+else
+  exitcode=1
+  echo as_func_success failed.
+fi
+
+if as_func_failure; then
+  exitcode=1
+  echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+  :
+else
+  exitcode=1
+  echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+  exitcode=1
+  echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
+  :
+else
+  exitcode=1
+  echo positional parameters were not saved.
+fi
+
+test \$exitcode = 0) || { (exit 1); exit 1; }
+
+(
+  as_lineno_1=\$LINENO
+  as_lineno_2=\$LINENO
+  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
+  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
+") 2> /dev/null; then
+  :
+else
+  as_candidate_shells=
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  case $as_dir in
+	 /*)
+	   for as_base in sh bash ksh sh5; do
+	     as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
+	   done;;
+       esac
+done
+IFS=$as_save_IFS
+
+
+      for as_shell in $as_candidate_shells $SHELL; do
+	 # Try only shells that exist, to save several forks.
+	 if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+		{ ("$as_shell") 2> /dev/null <<\_ASEOF
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
+fi
+
+
+:
+_ASEOF
+}; then
+  CONFIG_SHELL=$as_shell
+	       as_have_required=yes
+	       if { "$as_shell" 2> /dev/null <<\_ASEOF
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
+fi
+
+
+:
+(as_func_return () {
+  (exit $1)
+}
+as_func_success () {
+  as_func_return 0
+}
+as_func_failure () {
+  as_func_return 1
+}
+as_func_ret_success () {
+  return 0
+}
+as_func_ret_failure () {
+  return 1
+}
+
+exitcode=0
+if as_func_success; then
+  :
+else
+  exitcode=1
+  echo as_func_success failed.
+fi
+
+if as_func_failure; then
+  exitcode=1
+  echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+  :
+else
+  exitcode=1
+  echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+  exitcode=1
+  echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = "$1" ); then
+  :
+else
+  exitcode=1
+  echo positional parameters were not saved.
+fi
+
+test $exitcode = 0) || { (exit 1); exit 1; }
+
+(
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
+
+_ASEOF
+}; then
+  break
+fi
+
+fi
+
+      done
+
+      if test "x$CONFIG_SHELL" != x; then
+  for as_var in BASH_ENV ENV
+        do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+        done
+        export CONFIG_SHELL
+        exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+fi
+
+
+    if test $as_have_required = no; then
+  echo This script requires a shell more modern than all the
+      echo shells that I found on your system.  Please install a
+      echo modern shell, or manually run the script under such a
+      echo shell if you do have one.
+      { (exit 1); exit 1; }
+fi
+
+
+fi
+
+fi
+
+
+
+(eval "as_func_return () {
+  (exit \$1)
+}
+as_func_success () {
+  as_func_return 0
+}
+as_func_failure () {
+  as_func_return 1
+}
+as_func_ret_success () {
+  return 0
+}
+as_func_ret_failure () {
+  return 1
+}
+
+exitcode=0
+if as_func_success; then
+  :
+else
+  exitcode=1
+  echo as_func_success failed.
+fi
+
+if as_func_failure; then
+  exitcode=1
+  echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+  :
+else
+  exitcode=1
+  echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+  exitcode=1
+  echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
+  :
+else
+  exitcode=1
+  echo positional parameters were not saved.
+fi
+
+test \$exitcode = 0") || {
+  echo No shell found that supports shell functions.
+  echo Please tell autoconf@gnu.org about your system,
+  echo including any error possibly output before this
+  echo message
+}
+
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line after each line using $LINENO; the second 'sed'
+  # does the real work.  The second script uses 'N' to pair each
+  # line-number line with the line containing $LINENO, and appends
+  # trailing '-' during substitution so that $LINENO is not a special
+  # case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # scripts with optimization help from Paolo Bonzini.  Blame Lee
+  # E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
+    sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
+      N
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      t loop
+      s/-\n.*//
+    ' >$as_me.lineno &&
+  chmod +x "$as_me.lineno" ||
+    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+   { (exit 1); exit 1; }; }
+
+  # 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).
+  . "./$as_me.lineno"
+  # Exit status is that of the last command.
+  exit
+}
+
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in
+-n*)
+  case `echo 'x\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  *)   ECHO_C='\c';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir
+fi
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s='ln -s'
+  # ... 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'.
+  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+    as_ln_s='cp -p'
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  test -d ./-p && rmdir ./-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
+
+# 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'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+
+
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$ECHO in
+X*--fallback-echo)
+  # Remove one level of quotation (which was required for Make).
+  ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','`
+  ;;
+esac
+
+echo=${ECHO-echo}
+if test "X$1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X$1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
+  # Yippee, $echo works!
+  :
+else
+  # Restart under the correct shell.
+  exec $SHELL "$0" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<EOF
+$*
+EOF
+  exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test -z "$ECHO"; then
+if test "X${echo_test_string+set}" != Xset; then
+# find a string as large as possible, as long as the shell can cope with it
+  for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
+    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+    if (echo_test_string=`eval $cmd`) 2>/dev/null &&
+       echo_test_string=`eval $cmd` &&
+       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+    then
+      break
+    fi
+  done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+   test "X$echo_testing_string" = "X$echo_test_string"; then
+  :
+else
+  # The Solaris, AIX, and Digital Unix default echo programs unquote
+  # backslashes.  This makes it impossible to quote backslashes using
+  #   echo "$something" | sed 's/\\/\\\\/g'
+  #
+  # So, first we look for a working echo in the user's PATH.
+
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for dir in $PATH /usr/ucb; do
+    IFS="$lt_save_ifs"
+    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      echo="$dir/echo"
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  if test "X$echo" = Xecho; then
+    # We didn't find a better echo, so look for alternatives.
+    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      # This shell has a builtin print -r that does the trick.
+      echo='print -r'
+    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+	 test "X$CONFIG_SHELL" != X/bin/ksh; then
+      # If we have ksh, try running configure again with it.
+      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+      export ORIGINAL_CONFIG_SHELL
+      CONFIG_SHELL=/bin/ksh
+      export CONFIG_SHELL
+      exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
+    else
+      # Try using printf.
+      echo='printf %s\n'
+      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+	 echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+	 test "X$echo_testing_string" = "X$echo_test_string"; then
+	# Cool, printf works
+	:
+      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+	export CONFIG_SHELL
+	SHELL="$CONFIG_SHELL"
+	export SHELL
+	echo="$CONFIG_SHELL $0 --fallback-echo"
+      elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	echo="$CONFIG_SHELL $0 --fallback-echo"
+      else
+	# maybe with a smaller string...
+	prev=:
+
+	for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
+	  if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+	  then
+	    break
+	  fi
+	  prev="$cmd"
+	done
+
+	if test "$prev" != 'sed 50q "$0"'; then
+	  echo_test_string=`eval $prev`
+	  export echo_test_string
+	  exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
+	else
+	  # Oops.  We lost completely, so just stick with echo.
+	  echo=echo
+	fi
+      fi
+    fi
+  fi
+fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+ECHO=$echo
+if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
+   ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
+fi
+
+
+
+
+tagnames=${tagnames+${tagnames},}CXX
+
+tagnames=${tagnames+${tagnames},}F77
+
+exec 7<&0 </dev/null 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+# Identity of this package.
+PACKAGE_NAME='GNU parted'
+PACKAGE_TARNAME='parted'
+PACKAGE_VERSION='1.8.7'
+PACKAGE_STRING='GNU parted 1.8.7'
+PACKAGE_BUGREPORT='bug-parted@gnu.org'
+
+ac_unique_file="include/parted/parted.h"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+#  include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_header_list=
+ac_func_list=
+gt_needs=
+ac_subst_vars='SHELL
+PATH_SEPARATOR
+PACKAGE_NAME
+PACKAGE_TARNAME
+PACKAGE_VERSION
+PACKAGE_STRING
+PACKAGE_BUGREPORT
+exec_prefix
+prefix
+program_transform_name
+bindir
+sbindir
+libexecdir
+datarootdir
+datadir
+sysconfdir
+sharedstatedir
+localstatedir
+includedir
+oldincludedir
+docdir
+infodir
+htmldir
+dvidir
+pdfdir
+psdir
+libdir
+localedir
+mandir
+DEFS
+ECHO_C
+ECHO_N
+ECHO_T
+LIBS
+build_alias
+host_alias
+target_alias
+LT_RELEASE
+LT_CURRENT
+LT_REVISION
+LT_AGE
+INSTALL_PROGRAM
+INSTALL_SCRIPT
+INSTALL_DATA
+am__isrc
+CYGPATH_W
+PACKAGE
+VERSION
+ACLOCAL
+AUTOCONF
+AUTOMAKE
+AUTOHEADER
+MAKEINFO
+install_sh
+STRIP
+INSTALL_STRIP_PROGRAM
+mkdir_p
+AWK
+SET_MAKE
+am__leading_dot
+AMTAR
+am__tar
+am__untar
+build
+build_cpu
+build_vendor
+build_os
+host
+host_cpu
+host_vendor
+host_os
+OS
+PARTEDLDFLAGS
+CC
+CFLAGS
+LDFLAGS
+CPPFLAGS
+ac_ct_CC
+EXEEXT
+OBJEXT
+DEPDIR
+am__include
+am__quote
+AMDEP_TRUE
+AMDEP_FALSE
+AMDEPBACKSLASH
+CCDEPMODE
+am__fastdepCC_TRUE
+am__fastdepCC_FALSE
+CPP
+GREP
+EGREP
+RANLIB
+GL_COND_LIBTOOL_TRUE
+GL_COND_LIBTOOL_FALSE
+LTALLOCA
+ALLOCA
+ALLOCA_H
+GETOPT_H
+LIBINTL
+LTLIBINTL
+HAVE_LONG_LONG_INT
+HAVE_UNSIGNED_LONG_LONG_INT
+HAVE_INTTYPES_H
+HAVE_SYS_TYPES_H
+ABSOLUTE_STDINT_H
+HAVE_STDINT_H
+HAVE_SYS_INTTYPES_H
+HAVE_SYS_BITYPES_H
+BITSIZEOF_PTRDIFF_T
+BITSIZEOF_SIG_ATOMIC_T
+BITSIZEOF_SIZE_T
+BITSIZEOF_WCHAR_T
+BITSIZEOF_WINT_T
+HAVE_SIGNED_SIG_ATOMIC_T
+HAVE_SIGNED_WCHAR_T
+HAVE_SIGNED_WINT_T
+PTRDIFF_T_SUFFIX
+SIG_ATOMIC_T_SUFFIX
+SIZE_T_SUFFIX
+WCHAR_T_SUFFIX
+WINT_T_SUFFIX
+STDINT_H
+PRI_MACROS_BROKEN
+GNULIB_IMAXABS
+GNULIB_IMAXDIV
+GNULIB_STRTOIMAX
+GNULIB_STRTOUMAX
+HAVE_DECL_IMAXABS
+HAVE_DECL_IMAXDIV
+HAVE_DECL_STRTOIMAX
+HAVE_DECL_STRTOUMAX
+ABSOLUTE_INTTYPES_H
+PRIPTR_PREFIX
+INTTYPES_H
+GLIBC21
+STDBOOL_H
+HAVE__BOOL
+GNULIB_GETSUBOPT
+GNULIB_MKDTEMP
+GNULIB_MKSTEMP
+HAVE_GETSUBOPT
+HAVE_MKDTEMP
+REPLACE_MKSTEMP
+ABSOLUTE_STDLIB_H
+GNULIB_MEMMEM
+GNULIB_MEMPCPY
+GNULIB_MEMRCHR
+GNULIB_STPCPY
+GNULIB_STPNCPY
+GNULIB_STRCHRNUL
+GNULIB_STRDUP
+GNULIB_STRNDUP
+GNULIB_STRNLEN
+GNULIB_STRPBRK
+GNULIB_STRSEP
+GNULIB_STRCASESTR
+GNULIB_STRTOK_R
+GNULIB_MBSLEN
+GNULIB_MBSCHR
+GNULIB_MBSRCHR
+GNULIB_MBSSTR
+GNULIB_MBSCASECMP
+GNULIB_MBSNCASECMP
+GNULIB_MBSPCASECMP
+GNULIB_MBSCASESTR
+GNULIB_MBSCSPN
+GNULIB_MBSPBRK
+GNULIB_MBSSPN
+GNULIB_MBSSEP
+GNULIB_MBSTOK_R
+HAVE_DECL_MEMMEM
+HAVE_MEMPCPY
+HAVE_DECL_MEMRCHR
+HAVE_STPCPY
+HAVE_STPNCPY
+HAVE_STRCASECMP
+HAVE_DECL_STRNCASECMP
+HAVE_STRCHRNUL
+HAVE_DECL_STRDUP
+HAVE_STRNDUP
+HAVE_DECL_STRNDUP
+HAVE_DECL_STRNLEN
+HAVE_STRPBRK
+HAVE_STRSEP
+HAVE_STRCASESTR
+HAVE_DECL_STRTOK_R
+ABSOLUTE_STRING_H
+POW_LIB
+GNULIB_CHOWN
+GNULIB_DUP2
+GNULIB_FCHDIR
+GNULIB_FTRUNCATE
+GNULIB_GETCWD
+GNULIB_GETLOGIN_R
+GNULIB_READLINK
+GNULIB_SLEEP
+HAVE_DUP2
+HAVE_FTRUNCATE
+HAVE_READLINK
+HAVE_SLEEP
+HAVE_DECL_GETLOGIN_R
+REPLACE_CHOWN
+REPLACE_FCHDIR
+REPLACE_GETCWD
+HAVE_UNISTD_H
+ABSOLUTE_UNISTD_H
+ABSOLUTE_WCHAR_H
+WCHAR_H
+HAVE_ISWCNTRL
+HAVE_WINT_T
+ABSOLUTE_WCTYPE_H
+HAVE_WCTYPE_H
+WCTYPE_H
+SED
+LN_S
+ECHO
+AR
+CXX
+CXXFLAGS
+ac_ct_CXX
+CXXDEPMODE
+am__fastdepCXX_TRUE
+am__fastdepCXX_FALSE
+CXXCPP
+F77
+FFLAGS
+ac_ct_F77
+LIBTOOL
+USE_NLS
+MSGFMT
+GMSGFMT
+MSGFMT_015
+GMSGFMT_015
+XGETTEXT
+XGETTEXT_015
+MSGMERGE
+INTL_MACOSX_LIBS
+LIBICONV
+LTLIBICONV
+INTLLIBS
+POSUB
+DL_LIBS
+UUID_LIBS
+DM_LIBS
+SELINUX_LIBS
+REISER_LIBS
+PARTED_LIBS
+OS_LIBS
+INTLINCS
+COMPILE_FOR_S390_TRUE
+COMPILE_FOR_S390_FALSE
+PKG_CONFIG
+CHECK_CFLAGS
+CHECK_LIBS
+HAVE_CHECK_TRUE
+HAVE_CHECK_FALSE
+BUILDINFO
+LIBOBJS
+LTLIBOBJS
+gl_LIBOBJS
+gl_LTLIBOBJS'
+ac_subst_files=''
+      ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CPP
+CXX
+CXXFLAGS
+CCC
+CXXCPP
+F77
+FFLAGS
+PKG_CONFIG
+CHECK_CFLAGS
+CHECK_LIBS'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval $ac_prev=\$ac_option
+    ac_prev=
+    continue
+  fi
+
+  case $ac_option in
+  *=*)	ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *)	ac_optarg=yes ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case $ac_dashdash$ac_option in
+  --)
+    ac_dashdash=yes ;;
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir=$ac_optarg ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build_alias ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build_alias=$ac_optarg ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file=$ac_optarg ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
+
+  -datadir | --datadir | --datadi | --datad)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=*)
+    datadir=$ac_optarg ;;
+
+  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+  | --dataroo | --dataro | --datar)
+    ac_prev=datarootdir ;;
+  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+    datarootdir=$ac_optarg ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+   { (exit 1); exit 1; }; }
+    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
+    eval enable_$ac_feature=no ;;
+
+  -docdir | --docdir | --docdi | --doc | --do)
+    ac_prev=docdir ;;
+  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+    docdir=$ac_optarg ;;
+
+  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+    ac_prev=dvidir ;;
+  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+    dvidir=$ac_optarg ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+   { (exit 1); exit 1; }; }
+    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
+    eval enable_$ac_feature=\$ac_optarg ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix=$ac_optarg ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host_alias ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host_alias=$ac_optarg ;;
+
+  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+    ac_prev=htmldir ;;
+  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+  | --ht=*)
+    htmldir=$ac_optarg ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir=$ac_optarg ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir=$ac_optarg ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir=$ac_optarg ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir=$ac_optarg ;;
+
+  -localedir | --localedir | --localedi | --localed | --locale)
+    ac_prev=localedir ;;
+  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+    localedir=$ac_optarg ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst | --locals)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+    localstatedir=$ac_optarg ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir=$ac_optarg ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c | -n)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir=$ac_optarg ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix=$ac_optarg ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix=$ac_optarg ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix=$ac_optarg ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name=$ac_optarg ;;
+
+  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+    ac_prev=pdfdir ;;
+  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+    pdfdir=$ac_optarg ;;
+
+  -psdir | --psdir | --psdi | --psd | --ps)
+    ac_prev=psdir ;;
+  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+    psdir=$ac_optarg ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir=$ac_optarg ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir=$ac_optarg ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site=$ac_optarg ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir=$ac_optarg ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir=$ac_optarg ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target_alias ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target_alias=$ac_optarg ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
+
+  -with-* | --with-*)
+    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid package name: $ac_package" >&2
+   { (exit 1); exit 1; }; }
+    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
+    eval with_$ac_package=\$ac_optarg ;;
+
+  -without-* | --without-*)
+    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid package name: $ac_package" >&2
+   { (exit 1); exit 1; }; }
+    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
+    eval with_$ac_package=no ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes=$ac_optarg ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries=$ac_optarg ;;
+
+  -*) { echo "$as_me: error: unrecognized option: $ac_option
+Try \`$0 --help' for more information." >&2
+   { (exit 1); exit 1; }; }
+    ;;
+
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+   { (exit 1); exit 1; }; }
+    eval $ac_envvar=\$ac_optarg
+    export $ac_envvar ;;
+
+  *)
+    # FIXME: should be removed in autoconf 3.0.
+    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  { echo "$as_me: error: missing argument to $ac_option" >&2
+   { (exit 1); exit 1; }; }
+fi
+
+# Be sure to have absolute directory names.
+for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
+		datadir sysconfdir sharedstatedir localstatedir includedir \
+		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+		libdir localedir mandir
+do
+  eval ac_val=\$$ac_var
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* )  continue;;
+    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+  esac
+  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; }
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+    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
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+  { echo "$as_me: error: Working directory cannot be determined" >&2
+   { (exit 1); exit 1; }; }
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+  { echo "$as_me: error: pwd does not report name of working directory" >&2
+   { (exit 1); exit 1; }; }
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then the parent directory.
+  ac_confdir=`$as_dirname -- "$0" ||
+$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$0" : 'X\(//\)[^/]' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+echo X"$0" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  srcdir=$ac_confdir
+  if test ! -r "$srcdir/$ac_unique_file"; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+  { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+   { (exit 1); exit 1; }; }
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+	cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2
+   { (exit 1); exit 1; }; }
+	pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+  srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+  eval ac_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_env_${ac_var}_value=\$${ac_var}
+  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+  # Omit some internal or obsolete options to make the list less imposing.
+  # This message is too long to be a string in the A/UX 3.1 sh.
+  cat <<_ACEOF
+\`configure' configures GNU parted 1.8.7 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --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
+      --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
+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+			  [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+			  [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR           user executables [EPREFIX/bin]
+  --sbindir=DIR          system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR       program executables [EPREFIX/libexec]
+  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
+  --libdir=DIR           object code libraries [EPREFIX/lib]
+  --includedir=DIR       C header files [PREFIX/include]
+  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
+  --datarootdir=DIR      read-only arch.-independent data root [PREFIX/share]
+  --datadir=DIR          read-only architecture-independent data [DATAROOTDIR]
+  --infodir=DIR          info documentation [DATAROOTDIR/info]
+  --localedir=DIR        locale-dependent data [DATAROOTDIR/locale]
+  --mandir=DIR           man documentation [DATAROOTDIR/man]
+  --docdir=DIR           documentation root [DATAROOTDIR/doc/parted]
+  --htmldir=DIR          html documentation [DOCDIR]
+  --dvidir=DIR           dvi documentation [DOCDIR]
+  --pdfdir=DIR           pdf documentation [DOCDIR]
+  --psdir=DIR            ps documentation [DOCDIR]
+_ACEOF
+
+  cat <<\_ACEOF
+
+Program names:
+  --program-prefix=PREFIX            prepend PREFIX to installed program names
+  --program-suffix=SUFFIX            append SUFFIX to installed program names
+  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
+
+System types:
+  --build=BUILD     configure for building on BUILD [guessed]
+  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+  case $ac_init_help in
+     short | recursive ) echo "Configuration of GNU parted 1.8.7:";;
+   esac
+  cat <<\_ACEOF
+
+Optional Features:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --enable-mtrace         enable malloc() debugging
+  --enable-device-mapper  enable device mapper support default=no
+  --enable-selinux        enable SELinux support default=no
+  --enable-discover-only  support only reading/probing default=no
+  --enable-dynamic-loading  support dynamic fs libraries default=yes
+  --enable-fs             include filesystem support default=yes
+  --enable-debug          compile in assertions default=yes
+  --enable-read-only      disable writing (for debugging) default=no
+
+  --enable-pc98          build with pc98 support default=yes
+  --enable-Werror         build with gcc -Werror default=yes
+  --enable-hfs-extract-fs Extract special HFS files for debugging default=no
+  --disable-dependency-tracking  speeds up one-time build
+  --enable-dependency-tracking   do not reject slow dependency extractors
+  --disable-largefile     omit support for large files
+  --disable-assert        turn off assertions
+  --enable-shared[=PKGS]  build shared libraries [default=yes]
+  --enable-static[=PKGS]  build static libraries [default=yes]
+  --enable-fast-install[=PKGS]
+                          optimize for fast installation [default=yes]
+  --disable-libtool-lock  avoid locking (might break parallel builds)
+  --disable-nls           do not use Native Language Support
+  --disable-rpath         do not hardcode runtime library paths
+
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-readline         support fancy command line editing
+  --without-included-regex
+                          don't compile regex; this is the default on 32-bit
+                          systems with recent-enough versions of the GNU C
+                          Library (use with caution on other systems). On
+                          systems with 64-bit ptrdiff_t and 32-bit int,
+                          --with-included-regex is the default, in case regex
+                          functions operate on very long strings (>2GB)
+  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
+  --with-pic              try to use only PIC/non-PIC objects [default=use
+                          both]
+  --with-tags[=TAGS]      include additional configurations [automatic]
+  --with-gnu-ld           assume the C compiler uses GNU ld default=no
+  --with-libiconv-prefix[=DIR]  search for libiconv in DIR/include and DIR/lib
+  --without-libiconv-prefix     don't search for libiconv in includedir and libdir
+  --with-libintl-prefix[=DIR]  search for libintl in DIR/include and DIR/lib
+  --without-libintl-prefix     don't search for libintl in includedir and libdir
+
+Some influential environment variables:
+  CC          C compiler command
+  CFLAGS      C compiler flags
+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+              nonstandard directory <lib dir>
+  LIBS        libraries to pass to the linker, e.g. -l<library>
+  CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
+              you have headers in a nonstandard directory <include dir>
+  CPP         C preprocessor
+  CXX         C++ compiler command
+  CXXFLAGS    C++ compiler flags
+  CXXCPP      C++ preprocessor
+  F77         Fortran 77 compiler command
+  FFLAGS      Fortran 77 compiler flags
+  PKG_CONFIG  path to pkg-config utility
+  CHECK_CFLAGS
+              C compiler flags for CHECK, overriding pkg-config
+  CHECK_LIBS  linker flags for CHECK, overriding pkg-config
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to <bug-parted@gnu.org>.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    test -d "$ac_dir" || continue
+    ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+    cd "$ac_dir" || { ac_status=$?; continue; }
+    # Check for guested configure.
+    if test -f "$ac_srcdir/configure.gnu"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+    elif test -f "$ac_srcdir/configure"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure" --help=recursive
+    else
+      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi || ac_status=$?
+    cd "$ac_pwd" || { ac_status=$?; break; }
+  done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+  cat <<\_ACEOF
+GNU parted configure 1.8.7
+generated by GNU Autoconf 2.61
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+  exit
+fi
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by GNU parted $as_me 1.8.7, which was
+generated by GNU Autoconf 2.61.  Invocation command line was
+
+  $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  echo "PATH: $as_dir"
+done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *\'*)
+      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+    2)
+      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+	ac_must_keep_next=false # Got value, back to normal.
+      else
+	case $ac_arg in
+	  *=* | --config-cache | -C | -disable-* | --disable-* \
+	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+	  | -with-* | --with-* | -without-* | --without-* | --x)
+	    case "$ac_configure_args0 " in
+	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+	    esac
+	    ;;
+	  -* ) ac_must_keep_next=true ;;
+	esac
+      fi
+      ac_configure_args="$ac_configure_args '$ac_arg'"
+      ;;
+    esac
+  done
+done
+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
+
+    cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+(
+  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
+echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      *) $as_unset $ac_var ;;
+      esac ;;
+    esac
+  done
+  (set) 2>&1 |
+    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      sed -n \
+	"s/'\''/'\''\\\\'\'''\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+      ;; #(
+    *)
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+)
+    echo
+
+    cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=\$$ac_var
+      case $ac_val in
+      *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      esac
+      echo "$ac_var='\''$ac_val'\''"
+    done | sort
+    echo
+
+    if test -n "$ac_subst_files"; then
+      cat <<\_ASBOX
+## ------------------- ##
+## File substitutions. ##
+## ------------------- ##
+_ASBOX
+      echo
+      for ac_var in $ac_subst_files
+      do
+	eval ac_val=\$$ac_var
+	case $ac_val in
+	*\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+	esac
+	echo "$ac_var='\''$ac_val'\''"
+      done | sort
+      echo
+    fi
+
+    if test -s confdefs.h; then
+      cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+      echo
+      cat confdefs.h
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      echo "$as_me: caught signal $ac_signal"
+    echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core *.core core.conftest.* &&
+    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer explicitly selected file to automatically selected ones.
+if test -n "$CONFIG_SITE"; then
+  set x "$CONFIG_SITE"
+elif test "x$prefix" != xNONE; then
+  set x "$prefix/share/config.site" "$prefix/etc/config.site"
+else
+  set x "$ac_default_prefix/share/config.site" \
+	"$ac_default_prefix/etc/config.site"
+fi
+shift
+for ac_site_file
+do
+  if test -r "$ac_site_file"; then
+    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special
+  # files actually), so we avoid doing that.
+  if test -f "$cache_file"; then
+    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
+echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . "$cache_file";;
+      *)                      . "./$cache_file";;
+    esac
+  fi
+else
+  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
+echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+ac_header_list="$ac_header_list stdio_ext.h"
+ac_header_list="$ac_header_list stdint.h"
+ac_header_list="$ac_header_list inttypes.h"
+ac_func_list="$ac_func_list mbsinit"
+ac_header_list="$ac_header_list locale.h"
+ac_func_list="$ac_func_list iswctype"
+ac_func_list="$ac_func_list mbrtowc"
+ac_func_list="$ac_func_list wcrtomb"
+ac_func_list="$ac_func_list wcscoll"
+ac_header_list="$ac_header_list stdlib.h"
+ac_header_list="$ac_header_list string.h"
+ac_header_list="$ac_header_list unistd.h"
+ac_header_list="$ac_header_list utime.h"
+ac_header_list="$ac_header_list sys/time.h"
+ac_header_list="$ac_header_list wchar.h"
+ac_func_list="$ac_func_list iswcntrl"
+ac_header_list="$ac_header_list wctype.h"
+gt_needs="$gt_needs "
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val=\$ac_cv_env_${ac_var}_value
+  eval ac_new_val=\$ac_env_${ac_var}_value
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
+echo "$as_me:   former value:  $ac_old_val" >&2;}
+	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
+echo "$as_me:   current value: $ac_new_val" >&2;}
+	ac_cache_corrupted=:
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+
+ac_config_headers="$ac_config_headers lib/config.h:lib/config.h.in"
+
+ac_aux_dir=
+for ac_dir in build-aux "$srcdir"/build-aux; do
+  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
+  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in build-aux \"$srcdir\"/build-aux" >&5
+echo "$as_me: error: cannot find install-sh or install.sh in build-aux \"$srcdir\"/build-aux" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
+
+
+
+PED_MAJOR_VERSION=1
+PED_MINOR_VERSION=8
+PED_MICRO_VERSION=7
+PED_INTERFACE_AGE=0
+PED_BINARY_AGE=0
+PED_VERSION_SUFFIX=
+PED_VERSION=$PED_MAJOR_VERSION.$PED_MINOR_VERSION.$PED_MICRO_VERSION$PED_VERSION_SUFFIX
+
+LT_RELEASE=$PED_MAJOR_VERSION.$PED_MINOR_VERSION
+LT_CURRENT=`expr $PED_MICRO_VERSION - $PED_INTERFACE_AGE`
+LT_REVISION=$PED_INTERFACE_AGE
+LT_AGE=`expr $PED_BINARY_AGE - $PED_INTERFACE_AGE`
+
+
+
+
+
+# Ensure that the PED_*-specified version is the same as the literal
+# in the AC_INIT line, above.
+test $PACKAGE_VERSION = $PED_VERSION ||
+  { { echo "$as_me:$LINENO: error: configure.ac: version mismatch: $PACKAGE_VERSION != $PED_VERSION" >&5
+echo "$as_me: error: configure.ac: version mismatch: $PACKAGE_VERSION != $PED_VERSION" >&2;}
+   { (exit 1); exit 1; }; }
+
+am__api_version='1.10'
+
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; }
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in
+  ./ | .// | /cC/* | \
+  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+  /usr/ucb/* ) ;;
+  *)
+    # OSF1 and SCO ODT 3.0 have their own names for install.
+    # Don't use installbsd from OSF since it installs stuff as root
+    # 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 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.
+	    :
+	  elif test $ac_prog = install &&
+	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # program-specific install script used by HP pwplus--don't use.
+	    :
+	  else
+	    ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+	    break 3
+	  fi
+	fi
+      done
+    done
+    ;;
+esac
+done
+IFS=$as_save_IFS
+
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL=$ac_cv_path_install
+  else
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the value is a relative name.
+    INSTALL=$ac_install_sh
+  fi
+fi
+{ echo "$as_me:$LINENO: result: $INSTALL" >&5
+echo "${ECHO_T}$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ echo "$as_me:$LINENO: checking whether build environment is sane" >&5
+echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; }
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+   if test "$*" = "X"; then
+      # -L didn't work.
+      set X `ls -t $srcdir/configure conftest.file`
+   fi
+   rm -f conftest.file
+   if test "$*" != "X $srcdir/configure conftest.file" \
+      && test "$*" != "X conftest.file $srcdir/configure"; then
+
+      # If neither matched, then we have a broken ls.  This can happen
+      # if, for instance, CONFIG_SHELL is bash and it inherits a
+      # broken ls alias from the environment.  This has actually
+      # happened.  Such a system could not be considered "sane".
+      { { echo "$as_me:$LINENO: error: ls -t appears to fail.  Make sure there is not a broken
+alias in your environment" >&5
+echo "$as_me: error: ls -t appears to fail.  Make sure there is not a broken
+alias in your environment" >&2;}
+   { (exit 1); exit 1; }; }
+   fi
+
+   test "$2" = conftest.file
+   )
+then
+   # Ok.
+   :
+else
+   { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
+Check your system clock" >&5
+echo "$as_me: error: newly created file is older than distributed files!
+Check your system clock" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+{ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+test "$program_prefix" != NONE &&
+  program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+  program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.  echo might interpret backslashes.
+# By default was `s,x,x', remove it if useless.
+cat <<\_ACEOF >conftest.sed
+s/[\\$]/&&/g;s/;s,x,x,$//
+_ACEOF
+program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
+rm -f conftest.sed
+
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+  am_missing_run="$MISSING --run "
+else
+  am_missing_run=
+  { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
+echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+fi
+
+{ echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
+echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; }
+if test -z "$MKDIR_P"; then
+  if test "${ac_cv_path_mkdir+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_prog in mkdir gmkdir; do
+	 for ac_exec_ext in '' $ac_executable_extensions; do
+	   { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+	     'mkdir (GNU coreutils) '* | \
+	     'mkdir (coreutils) '* | \
+	     'mkdir (fileutils) '4.1*)
+	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+	       break 3;;
+	   esac
+	 done
+       done
+done
+IFS=$as_save_IFS
+
+fi
+
+  if test "${ac_cv_path_mkdir+set}" = set; then
+    MKDIR_P="$ac_cv_path_mkdir -p"
+  else
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for MKDIR_P within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the value is a relative name.
+    test -d ./--version && rmdir ./--version
+    MKDIR_P="$ac_install_sh -d"
+  fi
+fi
+{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5
+echo "${ECHO_T}$MKDIR_P" >&6; }
+
+mkdir_p="$MKDIR_P"
+case $mkdir_p in
+  [\\/$]* | ?:[\\/]*) ;;
+  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+
+for ac_prog in gawk mawk nawk awk
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_AWK+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$AWK"; then
+  ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_prog_AWK="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+  { echo "$as_me:$LINENO: result: $AWK" >&5
+echo "${ECHO_T}$AWK" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+  test -n "$AWK" && break
+done
+
+{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; }
+set x ${MAKE-make}; ac_make=`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
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+	@echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# 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;;
+  *)
+    eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+  { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+  SET_MAKE=
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+  SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
+else
+  am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+  # is not polluted with repeated "-I."
+  am__isrc=' -I$(srcdir)'
+  # test to see if srcdir already configured
+  if test -f $srcdir/config.status; then
+    { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
+echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+  if (cygpath --version) >/dev/null 2>/dev/null; then
+    CYGPATH_W='cygpath -w'
+  else
+    CYGPATH_W=echo
+  fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE='parted'
+ VERSION='1.8.7'
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define VERSION "$VERSION"
+_ACEOF
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}
+
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'.  However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_STRIP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+  { echo "$as_me:$LINENO: result: $STRIP" >&5
+echo "${ECHO_T}$STRIP" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+  ac_ct_STRIP=$STRIP
+  # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_STRIP"; then
+  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_prog_ac_ct_STRIP="strip"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+  { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+echo "${ECHO_T}$ac_ct_STRIP" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+  if test "x$ac_ct_STRIP" = x; then
+    STRIP=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    STRIP=$ac_ct_STRIP
+  fi
+else
+  STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+# We need awk for the "check" target.  The system "awk" is bad on
+# some platforms.
+# Always define AMTAR for backward compatibility.
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+
+
+
+
+
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+  { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
+echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
+   { (exit 1); exit 1; }; }
+
+{ echo "$as_me:$LINENO: checking build system type" >&5
+echo $ECHO_N "checking build system type... $ECHO_C" >&6; }
+if test "${ac_cv_build+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&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 &&
+  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
+echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+   { (exit 1); exit 1; }; }
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+  { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
+echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
+   { (exit 1); exit 1; }; }
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+echo "${ECHO_T}$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
+echo "$as_me: error: invalid value of canonical build" >&2;}
+   { (exit 1); exit 1; }; };;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ echo "$as_me:$LINENO: checking host system type" >&5
+echo $ECHO_N "checking host system type... $ECHO_C" >&6; }
+if test "${ac_cv_host+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&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` ||
+    { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
+echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+echo "${ECHO_T}$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
+echo "$as_me: error: invalid value of canonical host" >&2;}
+   { (exit 1); exit 1; }; };;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+case "$host_os" in
+	linux*) OS=linux ;;
+	gnu*)	OS=gnu ;;
+	beos*)	OS=beos ;;
+	*)	{ { echo "$as_me:$LINENO: error: Unknown or unsupported OS \"$host_os\".  Only \"linux\", \"gnu\" and \"beos\" are supported in this version of GNU Parted." >&5
+echo "$as_me: error: Unknown or unsupported OS \"$host_os\".  Only \"linux\", \"gnu\" and \"beos\" are supported in this version of GNU Parted." >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+
+
+
+# Check whether --with-readline was given.
+if test "${with_readline+set}" = set; then
+  withval=$with_readline;
+else
+  with_readline=yes
+
+fi
+
+
+# Check whether --enable-mtrace was given.
+if test "${enable_mtrace+set}" = set; then
+  enableval=$enable_mtrace;
+else
+  enable_mtrace=no
+
+fi
+
+if test "$enable_mtrace" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define ENABLE_MTRACE 1
+_ACEOF
+
+fi
+
+# Check whether --enable-device-mapper was given.
+if test "${enable_device_mapper+set}" = set; then
+  enableval=$enable_device_mapper;
+else
+  enable_device_mapper=no
+
+fi
+
+if test "$enable_device_mapper" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define ENABLE_DEVICE_MAPPER 1
+_ACEOF
+
+fi
+
+# Check whether --enable-selinux was given.
+if test "${enable_selinux+set}" = set; then
+  enableval=$enable_selinux;
+else
+  enable_selinux=no
+
+fi
+
+
+# Check whether --enable-discover-only was given.
+if test "${enable_discover_only+set}" = set; then
+  enableval=$enable_discover_only;
+else
+  enable_discover_only=no
+
+fi
+
+if test "$enable_discover_only" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define DISCOVER_ONLY 1
+_ACEOF
+
+fi
+
+PARTED_LIBS=""
+# Check whether --enable-dynamic-loading was given.
+if test "${enable_dynamic_loading+set}" = set; then
+  enableval=$enable_dynamic_loading;
+else
+  if test "$enable_discover_only" = yes; then
+		enable_dynamic_loading=no
+	else
+		enable_dynamic_loading=yes
+	fi
+
+fi
+
+if test "$enable_discover_only" = yes -a "$enable_dynamic_loading" = yes; then
+	{ { echo "$as_me:$LINENO: error: You can't use --enable-dynamic-loading and --disable-discover-only together
+	" >&5
+echo "$as_me: error: You can't use --enable-dynamic-loading and --disable-discover-only together
+	" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+# Check whether --enable-fs was given.
+if test "${enable_fs+set}" = set; then
+  enableval=$enable_fs;
+else
+  enable_fs=yes
+
+fi
+
+if test "$enable_fs" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define ENABLE_FS 1
+_ACEOF
+
+fi
+
+# Check whether --enable-debug was given.
+if test "${enable_debug+set}" = set; then
+  enableval=$enable_debug;
+else
+  enable_debug=yes
+
+fi
+
+
+if test "$enable_debug" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define DEBUG 1
+_ACEOF
+
+fi
+
+# Check whether --enable-read-only was given.
+if test "${enable_read_only+set}" = set; then
+  enableval=$enable_read_only;
+else
+  enable_read_only=no
+
+fi
+
+if test "$enable_read_only" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define READ_ONLY 1
+_ACEOF
+
+fi
+
+PARTEDLDFLAGS=
+
+
+# Check whether --enable-pc98 was given.
+if test "${enable_pc98+set}" = set; then
+  enableval=$enable_pc98;
+else
+  enable_pc98=yes
+
+fi
+
+if test "$enable_pc98" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define ENABLE_PC98 1
+_ACEOF
+
+fi
+
+# Check whether --enable-Werror was given.
+if test "${enable_Werror+set}" = set; then
+  enableval=$enable_Werror;
+else
+  enable_Werror=yes
+
+fi
+
+
+# Check whether --enable-hfs-extract-fs was given.
+if test "${enable_hfs_extract_fs+set}" = set; then
+  enableval=$enable_hfs_extract_fs;
+else
+  enable_hfs_extract_fs=no
+
+fi
+
+if test "$enable_hfs_extract_fs" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HFS_EXTRACT_FS 1
+_ACEOF
+
+fi
+
+AM_CPPFLAGS="$AM_CPPFLAGS -D_REENTRANT"
+
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+	@echo done
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+{ echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
+echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; }
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
+   am__include=include
+   am__quote=
+   _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+      am__include=.include
+      am__quote="\""
+      _am_result=BSD
+   fi
+fi
+
+
+{ echo "$as_me:$LINENO: result: $_am_result" >&5
+echo "${ECHO_T}$_am_result" >&6; }
+rm -f confinc confmf
+
+# Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then
+  enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+  AMDEP_TRUE=
+  AMDEP_FALSE='#'
+else
+  AMDEP_TRUE='#'
+  AMDEP_FALSE=
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_prog_ac_ct_CC="gcc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+          if test -n "$ac_tool_prefix"; then
+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+  fi
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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 test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl.exe
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl.exe
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CC" && break
+done
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+fi
+
+fi
+
+
+test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&5
+echo "$as_me: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+
+# Provide some information about the compiler.
+echo "$as_me:$LINENO: checking for C compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (ac_try="$ac_compiler --version >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler --version >&5") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (ac_try="$ac_compiler -v >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler -v >&5") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (ac_try="$ac_compiler -V >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler -V >&5") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; }
+ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+#
+# List of possible output files, starting from the most likely.
+# The algorithm is not robust to junk in `.', hence go to wildcards (a.*)
+# only as a last resort.  b.out is created by i960 compilers.
+ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out'
+#
+# The IRIX 6 linker writes into existing files which may not be
+# executable, retaining their permissions.  Remove them first so a
+# subsequent execution test works.
+ac_rmfiles=
+for ac_file in $ac_files
+do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
+    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+  esac
+done
+rm -f $ac_rmfiles
+
+if { (ac_try="$ac_link_default"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link_default") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile.  We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj )
+	;;
+    [ab].out )
+	# We found the default executable, but exeext='' is most
+	# certainly right.
+	break;;
+    *.* )
+        if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+	then :; else
+	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	fi
+	# We set ac_cv_exeext here because the later test for it is not
+	# safe: cross compilers may not add the suffix if given an `-o'
+	# argument, so we may need to know it at that point already.
+	# Even if this section looks crufty: it has the advantage of
+	# actually working.
+	break;;
+    * )
+	break;;
+  esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+  ac_file=''
+fi
+
+{ echo "$as_me:$LINENO: result: $ac_file" >&5
+echo "${ECHO_T}$ac_file" >&6; }
+if test -z "$ac_file"; then
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
+See \`config.log' for more details." >&5
+echo "$as_me: error: C compiler cannot create executables
+See \`config.log' for more details." >&2;}
+   { (exit 77); exit 77; }; }
+fi
+
+ac_exeext=$ac_cv_exeext
+
+# Check that the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; }
+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+  if { ac_try='./$ac_file'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+	cross_compiling=yes
+    else
+	{ { echo "$as_me:$LINENO: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+  fi
+fi
+{ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+
+rm -f a.out a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+# Check that the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; }
+{ echo "$as_me:$LINENO: result: $cross_compiling" >&5
+echo "${ECHO_T}$cross_compiling" >&6; }
+
+{ echo "$as_me:$LINENO: checking for suffix of executables" >&5
+echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; }
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	  break;;
+    * ) break;;
+  esac
+done
+else
+  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest$ac_cv_exeext
+{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+echo "${ECHO_T}$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+{ echo "$as_me:$LINENO: checking for suffix of object files" >&5
+echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; }
+if test "${ac_cv_objext+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  for ac_file in conftest.o conftest.obj conftest.*; do
+  test -f "$ac_file" || continue;
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+echo "${ECHO_T}$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; }
+if test "${ac_cv_c_compiler_gnu+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_compiler_gnu=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_compiler_gnu=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; }
+GCC=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }
+if test "${ac_cv_prog_cc_g+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cc_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	CFLAGS=""
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_c_werror_flag=$ac_save_c_werror_flag
+	 CFLAGS="-g"
+	 cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cc_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* 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);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cc_c89=$ac_arg
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6; } ;;
+  xno)
+    { echo "$as_me:$LINENO: result: unsupported" >&5
+echo "${ECHO_T}unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+depcc="$CC"   am_compiler_list=
+
+{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; }
+if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_CC_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+      # Solaris 8's {/usr,}/bin/sh.
+      touch sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    case $depmode in
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    none) break ;;
+    esac
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.
+    if depmode=$depmode \
+       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CC_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+  am__fastdepCC_TRUE=
+  am__fastdepCC_FALSE='#'
+else
+  am__fastdepCC_TRUE='#'
+  am__fastdepCC_FALSE=
+fi
+
+
+
+{ echo "$as_me:$LINENO: checking for library containing strerror" >&5
+echo $ECHO_N "checking for library containing strerror... $ECHO_C" >&6; }
+if test "${ac_cv_search_strerror+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char strerror ();
+int
+main ()
+{
+return strerror ();
+  ;
+  return 0;
+}
+_ACEOF
+for ac_lib in '' cposix; do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+  fi
+  rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_search_strerror=$ac_res
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext
+  if test "${ac_cv_search_strerror+set}" = set; then
+  break
+fi
+done
+if test "${ac_cv_search_strerror+set}" = set; then
+  :
+else
+  ac_cv_search_strerror=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5
+echo "${ECHO_T}$ac_cv_search_strerror" >&6; }
+ac_res=$ac_cv_search_strerror
+if test "$ac_res" != no; then
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_prog_ac_ct_CC="gcc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+          if test -n "$ac_tool_prefix"; then
+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+  fi
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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 test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl.exe
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl.exe
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CC" && break
+done
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+fi
+
+fi
+
+
+test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&5
+echo "$as_me: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+
+# Provide some information about the compiler.
+echo "$as_me:$LINENO: checking for C compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (ac_try="$ac_compiler --version >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler --version >&5") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (ac_try="$ac_compiler -v >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler -v >&5") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (ac_try="$ac_compiler -V >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler -V >&5") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+
+{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; }
+if test "${ac_cv_c_compiler_gnu+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_compiler_gnu=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_compiler_gnu=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; }
+GCC=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }
+if test "${ac_cv_prog_cc_g+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cc_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	CFLAGS=""
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_c_werror_flag=$ac_save_c_werror_flag
+	 CFLAGS="-g"
+	 cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cc_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* 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);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cc_c89=$ac_arg
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6; } ;;
+  xno)
+    { echo "$as_me:$LINENO: result: unsupported" >&5
+echo "${ECHO_T}unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+depcc="$CC"   am_compiler_list=
+
+{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; }
+if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_CC_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+      # Solaris 8's {/usr,}/bin/sh.
+      touch sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    case $depmode in
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    none) break ;;
+    esac
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.
+    if depmode=$depmode \
+       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CC_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+  am__fastdepCC_TRUE=
+  am__fastdepCC_FALSE='#'
+else
+  am__fastdepCC_TRUE='#'
+  am__fastdepCC_FALSE=
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if test "${ac_cv_prog_CPP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  break
+fi
+
+    done
+    ac_cv_prog_CPP=$CPP
+
+fi
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
+fi
+{ echo "$as_me:$LINENO: result: $CPP" >&5
+echo "${ECHO_T}$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  :
+else
+  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
+echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; }
+if test "${ac_cv_path_GREP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # Extract the first word of "grep ggrep" to use in msg output
+if test -z "$GREP"; then
+set dummy grep ggrep; ac_prog_name=$2
+if test "${ac_cv_path_GREP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_path_GREP_found=false
+# Loop through the user's path and test for each of PROGNAME-LIST
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  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
+    # 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
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+  ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    echo 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    ac_count=`expr $ac_count + 1`
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+
+    $ac_path_GREP_found && break 3
+  done
+done
+
+done
+IFS=$as_save_IFS
+
+
+fi
+
+GREP="$ac_cv_path_GREP"
+if test -z "$GREP"; then
+  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+else
+  ac_cv_path_GREP=$GREP
+fi
+
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
+echo "${ECHO_T}$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ echo "$as_me:$LINENO: checking for egrep" >&5
+echo $ECHO_N "checking for egrep... $ECHO_C" >&6; }
+if test "${ac_cv_path_EGREP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+   then ac_cv_path_EGREP="$GREP -E"
+   else
+     # Extract the first word of "egrep" to use in msg output
+if test -z "$EGREP"; then
+set dummy egrep; ac_prog_name=$2
+if test "${ac_cv_path_EGREP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_path_EGREP_found=false
+# Loop through the user's path and test for each of PROGNAME-LIST
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  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
+    # 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
+*GNU*)
+  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+  ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    echo 'EGREP' >> "conftest.nl"
+    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    ac_count=`expr $ac_count + 1`
+    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_EGREP="$ac_path_EGREP"
+      ac_path_EGREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+
+    $ac_path_EGREP_found && break 3
+  done
+done
+
+done
+IFS=$as_save_IFS
+
+
+fi
+
+EGREP="$ac_cv_path_EGREP"
+if test -z "$EGREP"; then
+  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+else
+  ac_cv_path_EGREP=$EGREP
+fi
+
+
+   fi
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
+echo "${ECHO_T}$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+if test $ac_cv_c_compiler_gnu = yes; then
+    { echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5
+echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6; }
+if test "${ac_cv_prog_gcc_traditional+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+    ac_pattern="Autoconf.*'x'"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sgtty.h>
+Autoconf TIOCGETP
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "$ac_pattern" >/dev/null 2>&1; then
+  ac_cv_prog_gcc_traditional=yes
+else
+  ac_cv_prog_gcc_traditional=no
+fi
+rm -f conftest*
+
+
+  if test $ac_cv_prog_gcc_traditional = no; then
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <termio.h>
+Autoconf TCGETA
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "$ac_pattern" >/dev/null 2>&1; then
+  ac_cv_prog_gcc_traditional=yes
+fi
+rm -f conftest*
+
+  fi
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5
+echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6; }
+  if test $ac_cv_prog_gcc_traditional = yes; then
+    CC="$CC -traditional"
+  fi
+fi
+
+if test "x$CC" != xcc; then
+  { echo "$as_me:$LINENO: checking whether $CC and cc understand -c and -o together" >&5
+echo $ECHO_N "checking whether $CC and cc understand -c and -o together... $ECHO_C" >&6; }
+else
+  { echo "$as_me:$LINENO: checking whether cc understands -c and -o together" >&5
+echo $ECHO_N "checking whether cc understands -c and -o together... $ECHO_C" >&6; }
+fi
+set dummy $CC; ac_cc=`echo $2 |
+		      sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
+if { as_var=ac_cv_prog_cc_${ac_cc}_c_o; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+# Make sure it works both with $CC and with simple cc.
+# We do the test twice because some compilers refuse to overwrite an
+# existing .o file with -o, though they will create one.
+ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+rm -f conftest2.*
+if { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+   test -f conftest2.$ac_objext && { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); };
+then
+  eval ac_cv_prog_cc_${ac_cc}_c_o=yes
+  if test "x$CC" != xcc; then
+    # Test first that cc exists at all.
+    if { ac_try='cc -c conftest.$ac_ext >&5'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+      ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+      rm -f conftest2.*
+      if { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 test -f conftest2.$ac_objext && { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); };
+      then
+	# cc works too.
+	:
+      else
+	# cc exists but doesn't like -o.
+	eval ac_cv_prog_cc_${ac_cc}_c_o=no
+      fi
+    fi
+  fi
+else
+  eval ac_cv_prog_cc_${ac_cc}_c_o=no
+fi
+rm -f core conftest*
+
+fi
+if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then
+  { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define NO_MINUS_C_MINUS_O 1
+_ACEOF
+
+fi
+
+# FIXME: we rely on the cache variable name because
+# there is no other way.
+set dummy $CC
+ac_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
+if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" != yes"; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+
+
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_RANLIB+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+  { echo "$as_me:$LINENO: result: $RANLIB" >&5
+echo "${ECHO_T}$RANLIB" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+  ac_ct_RANLIB=$RANLIB
+  # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_RANLIB"; then
+  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_prog_ac_ct_RANLIB="ranlib"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+  { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+echo "${ECHO_T}$ac_ct_RANLIB" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+  if test "x$ac_ct_RANLIB" = x; then
+    RANLIB=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    RANLIB=$ac_ct_RANLIB
+  fi
+else
+  RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+
+cat >>confdefs.h <<\_ACEOF
+#define _GNU_SOURCE 1
+_ACEOF
+
+
+
+{ echo "$as_me:$LINENO: checking for AIX" >&5
+echo $ECHO_N "checking for AIX... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef _AIX
+  yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "yes" >/dev/null 2>&1; then
+  { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+cat >>confdefs.h <<\_ACEOF
+#define _ALL_SOURCE 1
+_ACEOF
+
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+rm -f conftest*
+
+
+{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
+if test "${ac_cv_header_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_header_stdc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_header_stdc=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then
+  :
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+		   (('a' <= (c) && (c) <= 'i') \
+		     || ('j' <= (c) && (c) <= 'r') \
+		     || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+	|| toupper (i) != TOUPPER (i))
+      return 2;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+fi
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
+_ACEOF
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
+
+
+
+
+
+
+
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+		  inttypes.h stdint.h unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  eval "$as_ac_Header=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Header=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+if test "${ac_cv_header_minix_config_h+set}" = set; then
+  { echo "$as_me:$LINENO: checking for minix/config.h" >&5
+echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_minix_config_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5
+echo "${ECHO_T}$ac_cv_header_minix_config_h" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking minix/config.h usability" >&5
+echo $ECHO_N "checking minix/config.h usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <minix/config.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking minix/config.h presence" >&5
+echo $ECHO_N "checking minix/config.h presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <minix/config.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: minix/config.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: minix/config.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: minix/config.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: minix/config.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: minix/config.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: minix/config.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: minix/config.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: minix/config.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: minix/config.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: minix/config.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: minix/config.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: minix/config.h: in the future, the compiler will take precedence" >&2;}
+    ( cat <<\_ASBOX
+## --------------------------------- ##
+## Report this to bug-parted@gnu.org ##
+## --------------------------------- ##
+_ASBOX
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for minix/config.h" >&5
+echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_minix_config_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_header_minix_config_h=$ac_header_preproc
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5
+echo "${ECHO_T}$ac_cv_header_minix_config_h" >&6; }
+
+fi
+if test $ac_cv_header_minix_config_h = yes; then
+  MINIX=yes
+else
+  MINIX=
+fi
+
+
+if test "$MINIX" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define _POSIX_SOURCE 1
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define _POSIX_1_SOURCE 2
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define _MINIX 1
+_ACEOF
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+  { echo "$as_me:$LINENO: checking whether it is safe to define __EXTENSIONS__" >&5
+echo $ECHO_N "checking whether it is safe to define __EXTENSIONS__... $ECHO_C" >&6; }
+if test "${ac_cv_safe_to_define___extensions__+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#	  define __EXTENSIONS__ 1
+	  $ac_includes_default
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_safe_to_define___extensions__=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_safe_to_define___extensions__=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_safe_to_define___extensions__" >&5
+echo "${ECHO_T}$ac_cv_safe_to_define___extensions__" >&6; }
+  test $ac_cv_safe_to_define___extensions__ = yes &&
+    cat >>confdefs.h <<\_ACEOF
+#define __EXTENSIONS__ 1
+_ACEOF
+
+  cat >>confdefs.h <<\_ACEOF
+#define _POSIX_PTHREAD_SEMANTICS 1
+_ACEOF
+
+  cat >>confdefs.h <<\_ACEOF
+#define _TANDEM_SOURCE 1
+_ACEOF
+
+
+
+   case $ac_cv_prog_cc_stdc in
+  no) ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;;
+  *) { echo "$as_me:$LINENO: checking for $CC option to accept ISO C99" >&5
+echo $ECHO_N "checking for $CC option to accept ISO C99... $ECHO_C" >&6; }
+if test "${ac_cv_prog_cc_c99+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_prog_cc_c99=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <wchar.h>
+#include <stdio.h>
+
+// Check varargs macros.  These examples are taken from C99 6.10.3.5.
+#define debug(...) fprintf (stderr, __VA_ARGS__)
+#define showlist(...) puts (#__VA_ARGS__)
+#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
+static void
+test_varargs_macros (void)
+{
+  int x = 1234;
+  int y = 5678;
+  debug ("Flag");
+  debug ("X = %d\n", x);
+  showlist (The first, second, and third items.);
+  report (x>y, "x is %d but y is %d", x, y);
+}
+
+// Check long long types.
+#define BIG64 18446744073709551615ull
+#define BIG32 4294967295ul
+#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
+#if !BIG_OK
+  your preprocessor is broken;
+#endif
+#if BIG_OK
+#else
+  your preprocessor is broken;
+#endif
+static long long int bignum = -9223372036854775807LL;
+static unsigned long long int ubignum = BIG64;
+
+struct incomplete_array
+{
+  int datasize;
+  double data[];
+};
+
+struct named_init {
+  int number;
+  const wchar_t *name;
+  double average;
+};
+
+typedef const char *ccp;
+
+static inline int
+test_restrict (ccp restrict text)
+{
+  // See if C++-style comments work.
+  // Iterate through items via the restricted pointer.
+  // Also check for declarations in for loops.
+  for (unsigned int i = 0; *(text+i) != '\0'; ++i)
+    continue;
+  return 0;
+}
+
+// Check varargs and va_copy.
+static void
+test_varargs (const char *format, ...)
+{
+  va_list args;
+  va_start (args, format);
+  va_list args_copy;
+  va_copy (args_copy, args);
+
+  const char *str;
+  int number;
+  float fnumber;
+
+  while (*format)
+    {
+      switch (*format++)
+	{
+	case 's': // string
+	  str = va_arg (args_copy, const char *);
+	  break;
+	case 'd': // int
+	  number = va_arg (args_copy, int);
+	  break;
+	case 'f': // float
+	  fnumber = va_arg (args_copy, double);
+	  break;
+	default:
+	  break;
+	}
+    }
+  va_end (args_copy);
+  va_end (args);
+}
+
+int
+main ()
+{
+
+  // Check bool.
+  _Bool success = false;
+
+  // Check restrict.
+  if (test_restrict ("String literal") == 0)
+    success = true;
+  char *restrict newvar = "Another string";
+
+  // Check varargs.
+  test_varargs ("s, d' f .", "string", 65, 34.234);
+  test_varargs_macros ();
+
+  // Check flexible array members.
+  struct incomplete_array *ia =
+    malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
+  ia->datasize = 10;
+  for (int i = 0; i < ia->datasize; ++i)
+    ia->data[i] = i * 1.234;
+
+  // Check named initializers.
+  struct named_init ni = {
+    .number = 34,
+    .name = L"Test wide string",
+    .average = 543.34343,
+  };
+
+  ni.number = 58;
+
+  int dynamic_array[ni.number];
+  dynamic_array[ni.number - 1] = 543;
+
+  // work around unused variable warnings
+  return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'
+	  || dynamic_array[ni.number - 1] != 543);
+
+  ;
+  return 0;
+}
+_ACEOF
+for ac_arg in '' -std=gnu99 -c99 -qlanglvl=extc99
+do
+  CC="$ac_save_CC $ac_arg"
+  rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cc_c99=$ac_arg
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c99" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c99" in
+  x)
+    { echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6; } ;;
+  xno)
+    { echo "$as_me:$LINENO: result: unsupported" >&5
+echo "${ECHO_T}unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c99"
+    { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c99" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_c99" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c99" != xno; then
+  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
+else
+  { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* 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);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cc_c89=$ac_arg
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6; } ;;
+  xno)
+    { echo "$as_me:$LINENO: result: unsupported" >&5
+echo "${ECHO_T}unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then
+  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
+else
+  ac_cv_prog_cc_stdc=no
+fi
+
+
+fi
+
+ ;;
+esac
+  { echo "$as_me:$LINENO: checking for $CC option to accept ISO Standard C" >&5
+echo $ECHO_N "checking for $CC option to accept ISO Standard C... $ECHO_C" >&6; }
+  if test "${ac_cv_prog_cc_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+
+  case $ac_cv_prog_cc_stdc in
+  no) { echo "$as_me:$LINENO: result: unsupported" >&5
+echo "${ECHO_T}unsupported" >&6; } ;;
+  '') { echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6; } ;;
+  *) { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6; } ;;
+esac
+
+
+
+
+
+
+
+
+
+# Check whether --enable-largefile was given.
+if test "${enable_largefile+set}" = set; then
+  enableval=$enable_largefile;
+fi
+
+if test "$enable_largefile" != no; then
+
+  { echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5
+echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6; }
+if test "${ac_cv_sys_largefile_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_sys_largefile_CC=no
+     if test "$GCC" != yes; then
+       ac_save_CC=$CC
+       while :; do
+	 # IRIX 6.2 and later do not support large files by default,
+	 # so use the C compiler's -n32 option if that helps.
+	 cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+	 rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext
+	 CC="$CC -n32"
+	 rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_sys_largefile_CC=' -n32'; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext
+	 break
+       done
+       CC=$ac_save_CC
+       rm -f conftest.$ac_ext
+    fi
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5
+echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6; }
+  if test "$ac_cv_sys_largefile_CC" != no; then
+    CC=$CC$ac_cv_sys_largefile_CC
+  fi
+
+  { echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6; }
+if test "${ac_cv_sys_file_offset_bits+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  while :; do
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_sys_file_offset_bits=no; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#define _FILE_OFFSET_BITS 64
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_sys_file_offset_bits=64; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_cv_sys_file_offset_bits=unknown
+  break
+done
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5
+echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6; }
+case $ac_cv_sys_file_offset_bits in #(
+  no | unknown) ;;
+  *)
+cat >>confdefs.h <<_ACEOF
+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+_ACEOF
+;;
+esac
+rm -f conftest*
+  if test $ac_cv_sys_file_offset_bits = unknown; then
+    { echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5
+echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6; }
+if test "${ac_cv_sys_large_files+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  while :; do
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_sys_large_files=no; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#define _LARGE_FILES 1
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_sys_large_files=1; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_cv_sys_large_files=unknown
+  break
+done
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5
+echo "${ECHO_T}$ac_cv_sys_large_files" >&6; }
+case $ac_cv_sys_large_files in #(
+  no | unknown) ;;
+  *)
+cat >>confdefs.h <<_ACEOF
+#define _LARGE_FILES $ac_cv_sys_large_files
+_ACEOF
+;;
+esac
+rm -f conftest*
+  fi
+fi
+
+
+# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
+# for constant arguments.  Useless!
+{ echo "$as_me:$LINENO: checking for working alloca.h" >&5
+echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6; }
+if test "${ac_cv_working_alloca_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <alloca.h>
+int
+main ()
+{
+char *p = (char *) alloca (2 * sizeof (int));
+			  if (p) return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_working_alloca_h=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_working_alloca_h=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5
+echo "${ECHO_T}$ac_cv_working_alloca_h" >&6; }
+if test $ac_cv_working_alloca_h = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_ALLOCA_H 1
+_ACEOF
+
+fi
+
+{ echo "$as_me:$LINENO: checking for alloca" >&5
+echo $ECHO_N "checking for alloca... $ECHO_C" >&6; }
+if test "${ac_cv_func_alloca_works+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+#else
+# ifdef _MSC_VER
+#  include <malloc.h>
+#  define alloca _alloca
+# else
+#  ifdef HAVE_ALLOCA_H
+#   include <alloca.h>
+#  else
+#   ifdef _AIX
+ #pragma alloca
+#   else
+#    ifndef alloca /* predefined by HP cc +Olibcalls */
+char *alloca ();
+#    endif
+#   endif
+#  endif
+# endif
+#endif
+
+int
+main ()
+{
+char *p = (char *) alloca (1);
+				    if (p) return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_func_alloca_works=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_func_alloca_works=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5
+echo "${ECHO_T}$ac_cv_func_alloca_works" >&6; }
+
+if test $ac_cv_func_alloca_works = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_ALLOCA 1
+_ACEOF
+
+else
+  # The SVR3 libPW and SVR4 libucb both contain incompatible functions
+# that cause trouble.  Some versions do not even contain alloca or
+# contain a buggy version.  If you still want to use their alloca,
+# use ar to extract alloca.o from them instead of compiling alloca.c.
+
+ALLOCA=\${LIBOBJDIR}alloca.$ac_objext
+
+cat >>confdefs.h <<\_ACEOF
+#define C_ALLOCA 1
+_ACEOF
+
+
+{ echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5
+echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6; }
+if test "${ac_cv_os_cray+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#if defined CRAY && ! defined CRAY2
+webecray
+#else
+wenotbecray
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "webecray" >/dev/null 2>&1; then
+  ac_cv_os_cray=yes
+else
+  ac_cv_os_cray=no
+fi
+rm -f conftest*
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5
+echo "${ECHO_T}$ac_cv_os_cray" >&6; }
+if test $ac_cv_os_cray = yes; then
+  for ac_func in _getb67 GETB67 getb67; do
+    as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define CRAY_STACKSEG_END $ac_func
+_ACEOF
+
+    break
+fi
+
+  done
+fi
+
+{ echo "$as_me:$LINENO: checking stack direction for C alloca" >&5
+echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6; }
+if test "${ac_cv_c_stack_direction+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_c_stack_direction=0
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+find_stack_direction ()
+{
+  static char *addr = 0;
+  auto char dummy;
+  if (addr == 0)
+    {
+      addr = &dummy;
+      return find_stack_direction ();
+    }
+  else
+    return (&dummy > addr) ? 1 : -1;
+}
+
+int
+main ()
+{
+  return find_stack_direction () < 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_c_stack_direction=1
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_c_stack_direction=-1
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5
+echo "${ECHO_T}$ac_cv_c_stack_direction" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+#define STACK_DIRECTION $ac_cv_c_stack_direction
+_ACEOF
+
+
+fi
+
+{ echo "$as_me:$LINENO: checking for size_t" >&5
+echo $ECHO_N "checking for size_t... $ECHO_C" >&6; }
+if test "${ac_cv_type_size_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+typedef size_t ac__type_new_;
+int
+main ()
+{
+if ((ac__type_new_ *) 0)
+  return 0;
+if (sizeof (ac__type_new_))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_type_size_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_type_size_t=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
+echo "${ECHO_T}$ac_cv_type_size_t" >&6; }
+if test $ac_cv_type_size_t = yes; then
+  :
+else
+
+cat >>confdefs.h <<_ACEOF
+#define size_t unsigned int
+_ACEOF
+
+fi
+
+
+    { echo "$as_me:$LINENO: checking whether system is Windows or MSDOS" >&5
+echo $ECHO_N "checking whether system is Windows or MSDOS... $ECHO_C" >&6; }
+if test "${ac_cv_win_or_dos+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+	cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __CYGWIN__
+neither MSDOS nor Windows
+#endif
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_win_or_dos=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_win_or_dos=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_win_or_dos" >&5
+echo "${ECHO_T}$ac_cv_win_or_dos" >&6; }
+
+    if test x"$ac_cv_win_or_dos" = xyes; then
+      ac_fs_accepts_drive_letter_prefix=1
+      ac_fs_backslash_is_file_name_separator=1
+      { echo "$as_me:$LINENO: checking whether drive letter can start relative path" >&5
+echo $ECHO_N "checking whether drive letter can start relative path... $ECHO_C" >&6; }
+if test "${ac_cv_drive_letter_can_be_relative+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+	  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#if defined __CYGWIN__
+drive letters are always absolute
+#endif
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_drive_letter_can_be_relative=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_drive_letter_can_be_relative=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_drive_letter_can_be_relative" >&5
+echo "${ECHO_T}$ac_cv_drive_letter_can_be_relative" >&6; }
+      if test x"$ac_cv_drive_letter_can_be_relative" = xyes; then
+	ac_fs_drive_letter_can_be_relative=1
+      else
+	ac_fs_drive_letter_can_be_relative=0
+      fi
+    else
+      ac_fs_accepts_drive_letter_prefix=0
+      ac_fs_backslash_is_file_name_separator=0
+      ac_fs_drive_letter_can_be_relative=0
+    fi
+
+
+cat >>confdefs.h <<_ACEOF
+#define FILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX $ac_fs_accepts_drive_letter_prefix
+_ACEOF
+
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR $ac_fs_backslash_is_file_name_separator
+_ACEOF
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE $ac_fs_drive_letter_can_be_relative
+_ACEOF
+
+
+
+
+  { echo "$as_me:$LINENO: checking whether // is distinct from /" >&5
+echo $ECHO_N "checking whether // is distinct from /... $ECHO_C" >&6; }
+if test "${gl_cv_double_slash_root+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+   if test x"$cross_compiling" = xyes ; then
+	# When cross-compiling, there is no way to tell whether // is special
+	# short of a list of hosts.  However, the only known hosts to date
+	# that have a distinct // are Apollo DomainOS (too old to port to),
+	# Cygwin, and z/OS.  If anyone knows of another system for which // has
+	# special semantics and is distinct from /, please report it to
+	# <bug-gnulib@gnu.org>.
+	case $host in
+	  *-cygwin | i370-ibm-openedition)
+	    gl_cv_double_slash_root=yes ;;
+	  *)
+	    # Be optimistic and assume that / and // are the same when we
+	    # don't know.
+	    gl_cv_double_slash_root='unknown, assuming no' ;;
+	esac
+      else
+	set x `ls -di / //`
+	if test $2 = $4 && wc //dev/null >/dev/null 2>&1; then
+	  gl_cv_double_slash_root=no
+	else
+	  gl_cv_double_slash_root=yes
+	fi
+      fi
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_double_slash_root" >&5
+echo "${ECHO_T}$gl_cv_double_slash_root" >&6; }
+  if test "$gl_cv_double_slash_root" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1
+_ACEOF
+
+  fi
+
+{ echo "$as_me:$LINENO: checking whether strerror_r is declared" >&5
+echo $ECHO_N "checking whether strerror_r is declared... $ECHO_C" >&6; }
+if test "${ac_cv_have_decl_strerror_r+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+#ifndef strerror_r
+  (void) strerror_r;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_have_decl_strerror_r=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_have_decl_strerror_r=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_strerror_r" >&5
+echo "${ECHO_T}$ac_cv_have_decl_strerror_r" >&6; }
+if test $ac_cv_have_decl_strerror_r = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRERROR_R 1
+_ACEOF
+
+
+else
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRERROR_R 0
+_ACEOF
+
+
+fi
+
+
+
+for ac_func in strerror_r
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+{ echo "$as_me:$LINENO: checking whether strerror_r returns char *" >&5
+echo $ECHO_N "checking whether strerror_r returns char *... $ECHO_C" >&6; }
+if test "${ac_cv_func_strerror_r_char_p+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+    ac_cv_func_strerror_r_char_p=no
+    if test $ac_cv_have_decl_strerror_r = yes; then
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+
+	  char buf[100];
+	  char x = *strerror_r (0, buf, sizeof buf);
+	  char *p = strerror_r (0, buf, sizeof buf);
+	  return !p || x;
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_func_strerror_r_char_p=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    else
+      # strerror_r is not declared.  Choose between
+      # systems that have relatively inaccessible declarations for the
+      # function.  BeOS and DEC UNIX 4.0 fall in this category, but the
+      # former has a strerror_r that returns char*, while the latter
+      # has a strerror_r that returns `int'.
+      # This test should segfault on the DEC system.
+      if test "$cross_compiling" = yes; then
+  :
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+	extern char *strerror_r ();
+int
+main ()
+{
+char buf[100];
+	  char x = *strerror_r (0, buf, sizeof buf);
+	  return ! isalpha (x);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_strerror_r_char_p=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+    fi
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_func_strerror_r_char_p" >&5
+echo "${ECHO_T}$ac_cv_func_strerror_r_char_p" >&6; }
+if test $ac_cv_func_strerror_r_char_p = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STRERROR_R_CHAR_P 1
+_ACEOF
+
+fi
+
+
+
+
+
+for ac_header in $ac_header_list
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    ( cat <<\_ASBOX
+## --------------------------------- ##
+## Report this to bug-parted@gnu.org ##
+## --------------------------------- ##
+_ASBOX
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+  if test -z "$GETOPT_H"; then
+
+for ac_header in getopt.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    ( cat <<\_ASBOX
+## --------------------------------- ##
+## Report this to bug-parted@gnu.org ##
+## --------------------------------- ##
+_ASBOX
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+else
+  GETOPT_H=getopt.h
+fi
+
+done
+
+  fi
+
+  if test -z "$GETOPT_H"; then
+
+for ac_func in getopt_long_only
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+else
+  GETOPT_H=getopt.h
+fi
+done
+
+  fi
+
+      if test -z "$GETOPT_H"; then
+    { echo "$as_me:$LINENO: checking whether optreset is declared" >&5
+echo $ECHO_N "checking whether optreset is declared... $ECHO_C" >&6; }
+if test "${ac_cv_have_decl_optreset+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <getopt.h>
+
+int
+main ()
+{
+#ifndef optreset
+  (void) optreset;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_have_decl_optreset=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_have_decl_optreset=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_optreset" >&5
+echo "${ECHO_T}$ac_cv_have_decl_optreset" >&6; }
+if test $ac_cv_have_decl_optreset = yes; then
+  GETOPT_H=getopt.h
+fi
+
+  fi
+
+      if test -z "$GETOPT_H"; then
+    { echo "$as_me:$LINENO: checking for working GNU getopt function" >&5
+echo $ECHO_N "checking for working GNU getopt function... $ECHO_C" >&6; }
+if test "${gl_cv_func_gnu_getopt+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$cross_compiling" = yes; then
+  	 	 	 { echo "$as_me:$LINENO: checking whether getopt_clip is declared" >&5
+echo $ECHO_N "checking whether getopt_clip is declared... $ECHO_C" >&6; }
+if test "${ac_cv_have_decl_getopt_clip+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <getopt.h>
+
+int
+main ()
+{
+#ifndef getopt_clip
+  (void) getopt_clip;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_have_decl_getopt_clip=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_have_decl_getopt_clip=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_getopt_clip" >&5
+echo "${ECHO_T}$ac_cv_have_decl_getopt_clip" >&6; }
+if test $ac_cv_have_decl_getopt_clip = yes; then
+  gl_cv_func_gnu_getopt=no
+else
+  gl_cv_func_gnu_getopt=yes
+fi
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <getopt.h>
+int
+main ()
+{
+
+	     char *myargv[3];
+	     myargv[0] = "conftest";
+	     myargv[1] = "-+";
+	     myargv[2] = 0;
+	     return getopt (2, myargv, "+a") != '?';
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  gl_cv_func_gnu_getopt=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+gl_cv_func_gnu_getopt=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_func_gnu_getopt" >&5
+echo "${ECHO_T}$gl_cv_func_gnu_getopt" >&6; }
+    if test "$gl_cv_func_gnu_getopt" = "no"; then
+      GETOPT_H=getopt.h
+    fi
+  fi
+
+{ echo "$as_me:$LINENO: checking whether getenv is declared" >&5
+echo $ECHO_N "checking whether getenv is declared... $ECHO_C" >&6; }
+if test "${ac_cv_have_decl_getenv+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+#ifndef getenv
+  (void) getenv;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_have_decl_getenv=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_have_decl_getenv=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_getenv" >&5
+echo "${ECHO_T}$ac_cv_have_decl_getenv" >&6; }
+if test $ac_cv_have_decl_getenv = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETENV 1
+_ACEOF
+
+
+else
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETENV 0
+_ACEOF
+
+
+fi
+
+
+{ echo "$as_me:$LINENO: checking for inline" >&5
+echo $ECHO_N "checking for inline... $ECHO_C" >&6; }
+if test "${ac_cv_c_inline+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifndef __cplusplus
+typedef int foo_t;
+static $ac_kw foo_t static_foo () {return 0; }
+$ac_kw foo_t foo () {return 0; }
+#endif
+
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_c_inline=$ac_kw
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  test "$ac_cv_c_inline" != no && break
+done
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5
+echo "${ECHO_T}$ac_cv_c_inline" >&6; }
+
+
+case $ac_cv_c_inline in
+  inline | yes) ;;
+  *)
+    case $ac_cv_c_inline in
+      no) ac_val=;;
+      *) ac_val=$ac_cv_c_inline;;
+    esac
+    cat >>confdefs.h <<_ACEOF
+#ifndef __cplusplus
+#define inline $ac_val
+#endif
+_ACEOF
+    ;;
+esac
+
+
+  { echo "$as_me:$LINENO: checking for long long int" >&5
+echo $ECHO_N "checking for long long int... $ECHO_C" >&6; }
+if test "${ac_cv_type_long_long_int+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+long long int ll = 9223372036854775807ll;
+	    long long int nll = -9223372036854775807LL;
+	    typedef int a[((-9223372036854775807LL < 0
+			    && 0 < 9223372036854775807ll)
+			   ? 1 : -1)];
+	    int i = 63;
+int
+main ()
+{
+long long int llmax = 9223372036854775807ll;
+	    return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
+		    | (llmax / ll) | (llmax % ll));
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  		        if test "$cross_compiling" = yes; then
+  ac_cv_type_long_long_int=yes
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <limits.h>
+	       #ifndef LLONG_MAX
+	       # define HALF \
+			(1LL << (sizeof (long long int) * CHAR_BIT - 2))
+	       # define LLONG_MAX (HALF - 1 + HALF)
+	       #endif
+int
+main ()
+{
+long long int n = 1;
+	       int i;
+	       for (i = 0; ; i++)
+		 {
+		   long long int m = n << i;
+		   if (m >> i != n)
+		     return 1;
+		   if (LLONG_MAX / 2 < m)
+		     break;
+		 }
+	       return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_long_long_int=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_type_long_long_int=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_type_long_long_int=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_type_long_long_int" >&5
+echo "${ECHO_T}$ac_cv_type_long_long_int" >&6; }
+  if test $ac_cv_type_long_long_int = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_LONG_LONG_INT 1
+_ACEOF
+
+  fi
+
+
+  { echo "$as_me:$LINENO: checking for unsigned long long int" >&5
+echo $ECHO_N "checking for unsigned long long int... $ECHO_C" >&6; }
+if test "${ac_cv_type_unsigned_long_long_int+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+unsigned long long int ull = 18446744073709551615ULL;
+	    typedef int a[(18446744073709551615ULL <= (unsigned long long int) -1
+			   ? 1 : -1)];
+	   int i = 63;
+int
+main ()
+{
+unsigned long long int ullmax = 18446744073709551615ull;
+	    return (ull << 63 | ull >> 63 | ull << i | ull >> i
+		    | ullmax / ull | ullmax % ull);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_type_unsigned_long_long_int=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_type_unsigned_long_long_int=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_type_unsigned_long_long_int" >&5
+echo "${ECHO_T}$ac_cv_type_unsigned_long_long_int" >&6; }
+  if test $ac_cv_type_unsigned_long_long_int = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_UNSIGNED_LONG_LONG_INT 1
+_ACEOF
+
+  fi
+
+
+
+
+
+
+  if test $ac_cv_type_long_long_int = yes; then
+    HAVE_LONG_LONG_INT=1
+  else
+    HAVE_LONG_LONG_INT=0
+  fi
+
+
+  if test $ac_cv_type_unsigned_long_long_int = yes; then
+    HAVE_UNSIGNED_LONG_LONG_INT=1
+  else
+    HAVE_UNSIGNED_LONG_LONG_INT=0
+  fi
+
+
+      if test $ac_cv_header_inttypes_h = yes; then
+    HAVE_INTTYPES_H=1
+  else
+    HAVE_INTTYPES_H=0
+  fi
+
+
+      if test $ac_cv_header_sys_types_h = yes; then
+    HAVE_SYS_TYPES_H=1
+  else
+    HAVE_SYS_TYPES_H=0
+  fi
+
+
+    if test $ac_cv_header_stdint_h = yes; then
+      { echo "$as_me:$LINENO: checking absolute name of <stdint.h>" >&5
+echo $ECHO_N "checking absolute name of <stdint.h>... $ECHO_C" >&6; }
+if test "${gl_cv_absolute_stdint_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+
+
+    if test $ac_cv_header_stdint_h = yes; then
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdint.h>
+_ACEOF
+      gl_cv_absolute_stdint_h=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+sed -n '\#/stdint.h#{s#.*"\(.*/stdint.h\)".*#\1#;s#^/[^/]#//&#;p;q;}'`
+    fi
+
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_absolute_stdint_h" >&5
+echo "${ECHO_T}$gl_cv_absolute_stdint_h" >&6; }
+cat >>confdefs.h <<_ACEOF
+#define ABSOLUTE_STDINT_H "$gl_cv_absolute_stdint_h"
+_ACEOF
+
+
+    ABSOLUTE_STDINT_H=\"$gl_cv_absolute_stdint_h\"
+    HAVE_STDINT_H=1
+  else
+    ABSOLUTE_STDINT_H=\"no/such/file/stdint.h\"
+    HAVE_STDINT_H=0
+  fi
+
+
+
+          if test $ac_cv_header_stdint_h = yes; then
+    { echo "$as_me:$LINENO: checking whether stdint.h conforms to C99" >&5
+echo $ECHO_N "checking whether stdint.h conforms to C99... $ECHO_C" >&6; }
+if test "${gl_cv_header_working_stdint_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  gl_cv_header_working_stdint_h=no
+       cat >conftest.$ac_ext <<_ACEOF
+
+         /* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #include <stdio.h>
+  #include <time.h>
+  #include <wchar.h>
+
+
+#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
+#define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */
+#include ABSOLUTE_STDINT_H
+#ifdef INT8_MAX
+int8_t a1 = INT8_MAX;
+int8_t a1min = INT8_MIN;
+#endif
+#ifdef INT16_MAX
+int16_t a2 = INT16_MAX;
+int16_t a2min = INT16_MIN;
+#endif
+#ifdef INT32_MAX
+int32_t a3 = INT32_MAX;
+int32_t a3min = INT32_MIN;
+#endif
+#ifdef INT64_MAX
+int64_t a4 = INT64_MAX;
+int64_t a4min = INT64_MIN;
+#endif
+#ifdef UINT8_MAX
+uint8_t b1 = UINT8_MAX;
+#else
+typedef int b1[(unsigned char) -1 != 255 ? 1 : -1];
+#endif
+#ifdef UINT16_MAX
+uint16_t b2 = UINT16_MAX;
+#endif
+#ifdef UINT32_MAX
+uint32_t b3 = UINT32_MAX;
+#endif
+#ifdef UINT64_MAX
+uint64_t b4 = UINT64_MAX;
+#endif
+int_least8_t c1 = INT8_C (0x7f);
+int_least8_t c1max = INT_LEAST8_MAX;
+int_least8_t c1min = INT_LEAST8_MIN;
+int_least16_t c2 = INT16_C (0x7fff);
+int_least16_t c2max = INT_LEAST16_MAX;
+int_least16_t c2min = INT_LEAST16_MIN;
+int_least32_t c3 = INT32_C (0x7fffffff);
+int_least32_t c3max = INT_LEAST32_MAX;
+int_least32_t c3min = INT_LEAST32_MIN;
+int_least64_t c4 = INT64_C (0x7fffffffffffffff);
+int_least64_t c4max = INT_LEAST64_MAX;
+int_least64_t c4min = INT_LEAST64_MIN;
+uint_least8_t d1 = UINT8_C (0xff);
+uint_least8_t d1max = UINT_LEAST8_MAX;
+uint_least16_t d2 = UINT16_C (0xffff);
+uint_least16_t d2max = UINT_LEAST16_MAX;
+uint_least32_t d3 = UINT32_C (0xffffffff);
+uint_least32_t d3max = UINT_LEAST32_MAX;
+uint_least64_t d4 = UINT64_C (0xffffffffffffffff);
+uint_least64_t d4max = UINT_LEAST64_MAX;
+int_fast8_t e1 = INT_FAST8_MAX;
+int_fast8_t e1min = INT_FAST8_MIN;
+int_fast16_t e2 = INT_FAST16_MAX;
+int_fast16_t e2min = INT_FAST16_MIN;
+int_fast32_t e3 = INT_FAST32_MAX;
+int_fast32_t e3min = INT_FAST32_MIN;
+int_fast64_t e4 = INT_FAST64_MAX;
+int_fast64_t e4min = INT_FAST64_MIN;
+uint_fast8_t f1 = UINT_FAST8_MAX;
+uint_fast16_t f2 = UINT_FAST16_MAX;
+uint_fast32_t f3 = UINT_FAST32_MAX;
+uint_fast64_t f4 = UINT_FAST64_MAX;
+#ifdef INTPTR_MAX
+intptr_t g = INTPTR_MAX;
+intptr_t gmin = INTPTR_MIN;
+#endif
+#ifdef UINTPTR_MAX
+uintptr_t h = UINTPTR_MAX;
+#endif
+intmax_t i = INTMAX_MAX;
+uintmax_t j = UINTMAX_MAX;
+struct s {
+  int check_PTRDIFF: PTRDIFF_MIN < (ptrdiff_t) 0 && (ptrdiff_t) 0 < PTRDIFF_MAX ? 1 : -1;
+  int check_SIG_ATOMIC: SIG_ATOMIC_MIN <= (sig_atomic_t) 0 && (sig_atomic_t) 0 < SIG_ATOMIC_MAX ? 1 : -1;
+  int check_SIZE: (size_t) 0 < SIZE_MAX ? 1 : -1;
+  int check_WCHAR: WCHAR_MIN <= (wchar_t) 0 && (wchar_t) 0 < WCHAR_MAX ? 1 : -1;
+  int check_WINT: WINT_MIN <= (wint_t) 0 && (wint_t) 0 < WINT_MAX ? 1 : -1;
+
+  /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others.  */
+  int check_UINT8_C:
+        (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1;
+  int check_UINT16_C:
+        (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1;
+
+  /* Detect bugs in OpenBSD 3.9 stdint.h.  */
+#ifdef UINT8_MAX
+  int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1;
+#endif
+#ifdef UINT16_MAX
+  int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1;
+#endif
+#ifdef UINT32_MAX
+  int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1;
+#endif
+#ifdef UINT64_MAX
+  int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1;
+#endif
+  int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1;
+  int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1;
+  int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1;
+  int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1;
+  int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1;
+  int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1;
+  int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1;
+  int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1;
+  int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1;
+  int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1;
+  int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1;
+};
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  gl_cv_header_working_stdint_h=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_header_working_stdint_h" >&5
+echo "${ECHO_T}$gl_cv_header_working_stdint_h" >&6; }
+  fi
+  if test "$gl_cv_header_working_stdint_h" = yes; then
+    STDINT_H=
+  else
+
+
+for ac_header in sys/inttypes.h sys/bitypes.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    ( cat <<\_ASBOX
+## --------------------------------- ##
+## Report this to bug-parted@gnu.org ##
+## --------------------------------- ##
+_ASBOX
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+    if test $ac_cv_header_sys_inttypes_h = yes; then
+      HAVE_SYS_INTTYPES_H=1
+    else
+      HAVE_SYS_INTTYPES_H=0
+    fi
+
+    if test $ac_cv_header_sys_bitypes_h = yes; then
+      HAVE_SYS_BITYPES_H=1
+    else
+      HAVE_SYS_BITYPES_H=0
+    fi
+
+
+
+
+
+
+
+
+
+
+  for gltype in ptrdiff_t sig_atomic_t size_t wchar_t wint_t ; do
+    { echo "$as_me:$LINENO: checking for bit size of $gltype" >&5
+echo $ECHO_N "checking for bit size of $gltype... $ECHO_C" >&6; }
+if { as_var=gl_cv_bitsizeof_${gltype}; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$cross_compiling" = yes; then
+  # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #include <stdio.h>
+  #include <time.h>
+  #include <wchar.h>
+
+#include <limits.h>
+int
+main ()
+{
+static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #include <stdio.h>
+  #include <time.h>
+  #include <wchar.h>
+
+#include <limits.h>
+int
+main ()
+{
+static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_hi=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_lo=`expr $ac_mid + 1`
+			if test $ac_lo -le $ac_mid; then
+			  ac_lo= ac_hi=
+			  break
+			fi
+			ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #include <stdio.h>
+  #include <time.h>
+  #include <wchar.h>
+
+#include <limits.h>
+int
+main ()
+{
+static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #include <stdio.h>
+  #include <time.h>
+  #include <wchar.h>
+
+#include <limits.h>
+int
+main ()
+{
+static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_lo=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_hi=`expr '(' $ac_mid ')' - 1`
+			if test $ac_mid -le $ac_hi; then
+			  ac_lo= ac_hi=
+			  break
+			fi
+			ac_mid=`expr 2 '*' $ac_mid`
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_lo= ac_hi=
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #include <stdio.h>
+  #include <time.h>
+  #include <wchar.h>
+
+#include <limits.h>
+int
+main ()
+{
+static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_hi=$ac_mid
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) result=$ac_lo;;
+'') result=unknown ;;
+esac
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #include <stdio.h>
+  #include <time.h>
+  #include <wchar.h>
+
+#include <limits.h>
+static long int longval () { return sizeof ($gltype) * CHAR_BIT; }
+static unsigned long int ulongval () { return sizeof ($gltype) * CHAR_BIT; }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    return 1;
+  if ((sizeof ($gltype) * CHAR_BIT) < 0)
+    {
+      long int i = longval ();
+      if (i != (sizeof ($gltype) * CHAR_BIT))
+	return 1;
+      fprintf (f, "%ld\n", i);
+    }
+  else
+    {
+      unsigned long int i = ulongval ();
+      if (i != (sizeof ($gltype) * CHAR_BIT))
+	return 1;
+      fprintf (f, "%lu\n", i);
+    }
+  return ferror (f) || fclose (f) != 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  result=`cat conftest.val`
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+result=unknown
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.val
+       eval gl_cv_bitsizeof_${gltype}=\$result
+
+fi
+ac_res=`eval echo '${'gl_cv_bitsizeof_${gltype}'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+    eval result=\$gl_cv_bitsizeof_${gltype}
+    if test $result = unknown; then
+                                                result=0
+    fi
+    GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    cat >>confdefs.h <<_ACEOF
+#define BITSIZEOF_${GLTYPE} $result
+_ACEOF
+
+    eval BITSIZEOF_${GLTYPE}=\$result
+  done
+
+
+
+
+
+
+
+  for gltype in sig_atomic_t wchar_t wint_t ; do
+    { echo "$as_me:$LINENO: checking whether $gltype is signed" >&5
+echo $ECHO_N "checking whether $gltype is signed... $ECHO_C" >&6; }
+if { as_var=gl_cv_type_${gltype}_signed; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #include <stdio.h>
+  #include <time.h>
+  #include <wchar.h>
+
+            int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  result=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	result=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+       eval gl_cv_type_${gltype}_signed=\$result
+
+fi
+ac_res=`eval echo '${'gl_cv_type_${gltype}_signed'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+    eval result=\$gl_cv_type_${gltype}_signed
+    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    if test "$result" = yes; then
+      cat >>confdefs.h <<_ACEOF
+#define HAVE_SIGNED_${GLTYPE} 1
+_ACEOF
+
+      eval HAVE_SIGNED_${GLTYPE}=1
+    else
+      eval HAVE_SIGNED_${GLTYPE}=0
+    fi
+  done
+
+
+  gl_cv_type_ptrdiff_t_signed=yes
+  gl_cv_type_size_t_signed=no
+
+
+
+
+
+
+
+  for gltype in ptrdiff_t sig_atomic_t size_t wchar_t wint_t ; do
+    { echo "$as_me:$LINENO: checking for $gltype integer literal suffix" >&5
+echo $ECHO_N "checking for $gltype integer literal suffix... $ECHO_C" >&6; }
+if { as_var=gl_cv_type_${gltype}_suffix; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval gl_cv_type_${gltype}_suffix=no
+       eval result=\$gl_cv_type_${gltype}_signed
+       if test "$result" = yes; then
+         glsufu=
+       else
+         glsufu=u
+       fi
+       for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do
+         case $glsuf in
+           '')  gltype1='int';;
+           l)	gltype1='long int';;
+           ll)	gltype1='long long int';;
+           i64)	gltype1='__int64';;
+           u)	gltype1='unsigned int';;
+           ul)	gltype1='unsigned long int';;
+           ull)	gltype1='unsigned long long int';;
+           ui64)gltype1='unsigned __int64';;
+         esac
+         cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #include <stdio.h>
+  #include <time.h>
+  #include <wchar.h>
+
+              extern $gltype foo;
+              extern $gltype1 foo;
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  eval gl_cv_type_${gltype}_suffix=\$glsuf
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+         eval result=\$gl_cv_type_${gltype}_suffix
+         test "$result" != no && break
+       done
+fi
+ac_res=`eval echo '${'gl_cv_type_${gltype}_suffix'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    eval result=\$gl_cv_type_${gltype}_suffix
+    test "$result" = no && result=
+    eval ${GLTYPE}_SUFFIX=\$result
+    cat >>confdefs.h <<_ACEOF
+#define ${GLTYPE}_SUFFIX $result
+_ACEOF
+
+  done
+
+
+
+    STDINT_H=stdint.h
+  fi
+
+
+
+
+for ac_header in inttypes.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    ( cat <<\_ASBOX
+## --------------------------------- ##
+## Report this to bug-parted@gnu.org ##
+## --------------------------------- ##
+_ASBOX
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+  if test $ac_cv_header_inttypes_h = yes; then
+    { echo "$as_me:$LINENO: checking whether the inttypes.h PRIxNN macros are broken" >&5
+echo $ECHO_N "checking whether the inttypes.h PRIxNN macros are broken... $ECHO_C" >&6; }
+if test "${gt_cv_inttypes_pri_broken+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+        cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <inttypes.h>
+#ifdef PRId32
+char *p = PRId32;
+#endif
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  gt_cv_inttypes_pri_broken=no
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	gt_cv_inttypes_pri_broken=yes
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ echo "$as_me:$LINENO: result: $gt_cv_inttypes_pri_broken" >&5
+echo "${ECHO_T}$gt_cv_inttypes_pri_broken" >&6; }
+  fi
+  if test "$gt_cv_inttypes_pri_broken" = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define PRI_MACROS_BROKEN 1
+_ACEOF
+
+    PRI_MACROS_BROKEN=1
+  else
+    PRI_MACROS_BROKEN=0
+  fi
+
+
+{ echo "$as_me:$LINENO: checking whether imaxabs is declared" >&5
+echo $ECHO_N "checking whether imaxabs is declared... $ECHO_C" >&6; }
+if test "${ac_cv_have_decl_imaxabs+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+#ifndef imaxabs
+  (void) imaxabs;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_have_decl_imaxabs=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_have_decl_imaxabs=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_imaxabs" >&5
+echo "${ECHO_T}$ac_cv_have_decl_imaxabs" >&6; }
+if test $ac_cv_have_decl_imaxabs = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_IMAXABS 1
+_ACEOF
+
+
+else
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_IMAXABS 0
+_ACEOF
+
+
+fi
+
+
+{ echo "$as_me:$LINENO: checking whether imaxdiv is declared" >&5
+echo $ECHO_N "checking whether imaxdiv is declared... $ECHO_C" >&6; }
+if test "${ac_cv_have_decl_imaxdiv+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+#ifndef imaxdiv
+  (void) imaxdiv;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_have_decl_imaxdiv=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_have_decl_imaxdiv=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_imaxdiv" >&5
+echo "${ECHO_T}$ac_cv_have_decl_imaxdiv" >&6; }
+if test $ac_cv_have_decl_imaxdiv = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_IMAXDIV 1
+_ACEOF
+
+
+else
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_IMAXDIV 0
+_ACEOF
+
+
+fi
+
+
+{ echo "$as_me:$LINENO: checking whether strtoimax is declared" >&5
+echo $ECHO_N "checking whether strtoimax is declared... $ECHO_C" >&6; }
+if test "${ac_cv_have_decl_strtoimax+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+#ifndef strtoimax
+  (void) strtoimax;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_have_decl_strtoimax=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_have_decl_strtoimax=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_strtoimax" >&5
+echo "${ECHO_T}$ac_cv_have_decl_strtoimax" >&6; }
+if test $ac_cv_have_decl_strtoimax = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRTOIMAX 1
+_ACEOF
+
+
+else
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRTOIMAX 0
+_ACEOF
+
+
+fi
+
+
+{ echo "$as_me:$LINENO: checking whether strtoumax is declared" >&5
+echo $ECHO_N "checking whether strtoumax is declared... $ECHO_C" >&6; }
+if test "${ac_cv_have_decl_strtoumax+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+#ifndef strtoumax
+  (void) strtoumax;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_have_decl_strtoumax=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_have_decl_strtoumax=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_strtoumax" >&5
+echo "${ECHO_T}$ac_cv_have_decl_strtoumax" >&6; }
+if test $ac_cv_have_decl_strtoumax = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRTOUMAX 1
+_ACEOF
+
+
+else
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRTOUMAX 0
+_ACEOF
+
+
+fi
+
+
+
+  GNULIB_IMAXABS=0;
+  GNULIB_IMAXDIV=0;
+  GNULIB_STRTOIMAX=0;
+  GNULIB_STRTOUMAX=0;
+    HAVE_DECL_IMAXABS=1;
+  HAVE_DECL_IMAXDIV=1;
+  HAVE_DECL_STRTOIMAX=1;
+  HAVE_DECL_STRTOUMAX=1;
+
+
+
+
+  { echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5
+echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6; }
+if test "${am_cv_langinfo_codeset+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <langinfo.h>
+int
+main ()
+{
+char* cs = nl_langinfo(CODESET); return !cs;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  am_cv_langinfo_codeset=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	am_cv_langinfo_codeset=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ echo "$as_me:$LINENO: result: $am_cv_langinfo_codeset" >&5
+echo "${ECHO_T}$am_cv_langinfo_codeset" >&6; }
+  if test $am_cv_langinfo_codeset = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_LANGINFO_CODESET 1
+_ACEOF
+
+  fi
+
+{ echo "$as_me:$LINENO: checking whether getc_unlocked is declared" >&5
+echo $ECHO_N "checking whether getc_unlocked is declared... $ECHO_C" >&6; }
+if test "${ac_cv_have_decl_getc_unlocked+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+#ifndef getc_unlocked
+  (void) getc_unlocked;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_have_decl_getc_unlocked=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_have_decl_getc_unlocked=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_getc_unlocked" >&5
+echo "${ECHO_T}$ac_cv_have_decl_getc_unlocked" >&6; }
+if test $ac_cv_have_decl_getc_unlocked = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETC_UNLOCKED 1
+_ACEOF
+
+
+else
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETC_UNLOCKED 0
+_ACEOF
+
+
+fi
+
+
+
+    { echo "$as_me:$LINENO: checking whether we are using the GNU C Library 2.1 or newer" >&5
+echo $ECHO_N "checking whether we are using the GNU C Library 2.1 or newer... $ECHO_C" >&6; }
+if test "${ac_cv_gnu_library_2_1+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
+  Lucky GNU user
+ #endif
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Lucky GNU user" >/dev/null 2>&1; then
+  ac_cv_gnu_library_2_1=yes
+else
+  ac_cv_gnu_library_2_1=no
+fi
+rm -f conftest*
+
+
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_gnu_library_2_1" >&5
+echo "${ECHO_T}$ac_cv_gnu_library_2_1" >&6; }
+
+    GLIBC21="$ac_cv_gnu_library_2_1"
+
+
+
+
+
+
+for ac_func in $ac_func_list
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+
+
+
+{ echo "$as_me:$LINENO: checking for C/C++ restrict keyword" >&5
+echo $ECHO_N "checking for C/C++ restrict keyword... $ECHO_C" >&6; }
+if test "${ac_cv_c_restrict+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_c_restrict=no
+   # Try the official restrict keyword, then gcc's __restrict, and
+   # the less common variants.
+   for ac_kw in restrict __restrict __restrict__ _Restrict; do
+     cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+typedef int * int_ptr;
+        int foo (int_ptr $ac_kw ip) {
+        return ip[0];
+       }
+int
+main ()
+{
+int s[1];
+        int * $ac_kw t = s;
+        t[0] = 0;
+        return foo(t)
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_c_restrict=$ac_kw
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+     test "$ac_cv_c_restrict" != no && break
+   done
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_c_restrict" >&5
+echo "${ECHO_T}$ac_cv_c_restrict" >&6; }
+ case $ac_cv_c_restrict in
+   restrict) ;;
+   no)
+cat >>confdefs.h <<\_ACEOF
+#define restrict
+_ACEOF
+ ;;
+   *)  cat >>confdefs.h <<_ACEOF
+#define restrict $ac_cv_c_restrict
+_ACEOF
+ ;;
+ esac
+
+
+
+
+
+
+
+
+
+
+  { echo "$as_me:$LINENO: checking for ssize_t" >&5
+echo $ECHO_N "checking for ssize_t... $ECHO_C" >&6; }
+if test "${gt_cv_ssize_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+int
+main ()
+{
+int x = sizeof (ssize_t *) + sizeof (ssize_t);
+        return !x;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  gt_cv_ssize_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	gt_cv_ssize_t=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $gt_cv_ssize_t" >&5
+echo "${ECHO_T}$gt_cv_ssize_t" >&6; }
+  if test $gt_cv_ssize_t = no; then
+
+cat >>confdefs.h <<\_ACEOF
+#define ssize_t int
+_ACEOF
+
+  fi
+
+{ echo "$as_me:$LINENO: checking for stdbool.h that conforms to C99" >&5
+echo $ECHO_N "checking for stdbool.h that conforms to C99... $ECHO_C" >&6; }
+if test "${ac_cv_header_stdbool_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+	  #include <stdbool.h>
+	  #ifndef bool
+	   "error: bool is not defined"
+	  #endif
+	  #ifndef false
+	   "error: false is not defined"
+	  #endif
+	  #if false
+	   "error: false is not 0"
+	  #endif
+	  #ifndef true
+	   "error: true is not defined"
+	  #endif
+	  #if true != 1
+	   "error: true is not 1"
+	  #endif
+	  #ifndef __bool_true_false_are_defined
+	   "error: __bool_true_false_are_defined is not defined"
+	  #endif
+
+	  struct s { _Bool s: 1; _Bool t; } s;
+
+	  char a[true == 1 ? 1 : -1];
+	  char b[false == 0 ? 1 : -1];
+	  char c[__bool_true_false_are_defined == 1 ? 1 : -1];
+	  char d[(bool) 0.5 == true ? 1 : -1];
+	  bool e = &s;
+	  char f[(_Bool) 0.0 == false ? 1 : -1];
+	  char g[true];
+	  char h[sizeof (_Bool)];
+	  char i[sizeof s.t];
+	  enum { j = false, k = true, l = false * true, m = true * 256 };
+	  _Bool n[m];
+	  char o[sizeof n == m * sizeof n[0] ? 1 : -1];
+	  char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
+	  #if defined __xlc__ || defined __GNUC__
+	   /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0
+	      reported by James Lemley on 2005-10-05; see
+	      http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
+	      This test is not quite right, since xlc is allowed to
+	      reject this program, as the initializer for xlcbug is
+	      not one of the forms that C requires support for.
+	      However, doing the test right would require a run-time
+	      test, and that would make cross-compilation harder.
+	      Let us hope that IBM fixes the xlc bug, and also adds
+	      support for this kind of constant expression.  In the
+	      meantime, this test will reject xlc, which is OK, since
+	      our stdbool.h substitute should suffice.  We also test
+	      this with GCC, where it should work, to detect more
+	      quickly whether someone messes up the test in the
+	      future.  */
+	   char digs[] = "0123456789";
+	   int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1);
+	  #endif
+	  /* Catch a bug in an HP-UX C compiler.  See
+	     http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+	     http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+	   */
+	  _Bool q = true;
+	  _Bool *pq = &q;
+
+int
+main ()
+{
+
+	  *pq |= q;
+	  *pq |= ! q;
+	  /* Refer to every declared value, to avoid compiler optimizations.  */
+	  return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
+		  + !m + !n + !o + !p + !q + !pq);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_header_stdbool_h=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_header_stdbool_h=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_stdbool_h" >&5
+echo "${ECHO_T}$ac_cv_header_stdbool_h" >&6; }
+   { echo "$as_me:$LINENO: checking for _Bool" >&5
+echo $ECHO_N "checking for _Bool... $ECHO_C" >&6; }
+if test "${ac_cv_type__Bool+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+typedef _Bool ac__type_new_;
+int
+main ()
+{
+if ((ac__type_new_ *) 0)
+  return 0;
+if (sizeof (ac__type_new_))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_type__Bool=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_type__Bool=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_type__Bool" >&5
+echo "${ECHO_T}$ac_cv_type__Bool" >&6; }
+if test $ac_cv_type__Bool = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE__BOOL 1
+_ACEOF
+
+
+fi
+
+   if test $ac_cv_header_stdbool_h = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_STDBOOL_H 1
+_ACEOF
+
+   fi
+
+  GNULIB_GETSUBOPT=0;
+  GNULIB_MKDTEMP=0;
+  GNULIB_MKSTEMP=0;
+    HAVE_GETSUBOPT=1;
+  HAVE_MKDTEMP=1;
+  REPLACE_MKSTEMP=0;
+
+
+
+
+  GNULIB_MEMMEM=0;
+  GNULIB_MEMPCPY=0;
+  GNULIB_MEMRCHR=0;
+  GNULIB_STPCPY=0;
+  GNULIB_STPNCPY=0;
+  GNULIB_STRCHRNUL=0;
+  GNULIB_STRDUP=0;
+  GNULIB_STRNDUP=0;
+  GNULIB_STRNLEN=0;
+  GNULIB_STRPBRK=0;
+  GNULIB_STRSEP=0;
+  GNULIB_STRCASESTR=0;
+  GNULIB_STRTOK_R=0;
+  GNULIB_MBSLEN=0;
+  GNULIB_MBSCHR=0;
+  GNULIB_MBSRCHR=0;
+  GNULIB_MBSSTR=0;
+  GNULIB_MBSCASECMP=0;
+  GNULIB_MBSNCASECMP=0;
+  GNULIB_MBSPCASECMP=0;
+  GNULIB_MBSCASESTR=0;
+  GNULIB_MBSCSPN=0;
+  GNULIB_MBSPBRK=0;
+  GNULIB_MBSSPN=0;
+  GNULIB_MBSSEP=0;
+  GNULIB_MBSTOK_R=0;
+    HAVE_DECL_MEMMEM=1;
+  HAVE_MEMPCPY=1;
+  HAVE_DECL_MEMRCHR=1;
+  HAVE_STPCPY=1;
+  HAVE_STPNCPY=1;
+  HAVE_STRCASECMP=1;
+  HAVE_DECL_STRNCASECMP=1;
+  HAVE_STRCHRNUL=1;
+  HAVE_DECL_STRDUP=1;
+  HAVE_STRNDUP=1;
+  HAVE_DECL_STRNDUP=1;
+  HAVE_DECL_STRNLEN=1;
+  HAVE_STRPBRK=1;
+  HAVE_STRSEP=1;
+  HAVE_STRCASESTR=1;
+  HAVE_DECL_STRTOK_R=1;
+
+
+
+
+
+
+    { echo "$as_me:$LINENO: checking absolute name of <string.h>" >&5
+echo $ECHO_N "checking absolute name of <string.h>... $ECHO_C" >&6; }
+if test "${gl_cv_absolute_string_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+
+
+    if test $ac_cv_header_string_h = yes; then
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <string.h>
+_ACEOF
+      gl_cv_absolute_string_h=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+sed -n '\#/string.h#{s#.*"\(.*/string.h\)".*#\1#;s#^/[^/]#//&#;p;q;}'`
+    fi
+
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_absolute_string_h" >&5
+echo "${ECHO_T}$gl_cv_absolute_string_h" >&6; }
+cat >>confdefs.h <<_ACEOF
+#define ABSOLUTE_STRING_H "$gl_cv_absolute_string_h"
+_ACEOF
+
+
+  ABSOLUTE_STRING_H=\"$gl_cv_absolute_string_h\"
+
+
+{ echo "$as_me:$LINENO: checking whether strndup is declared" >&5
+echo $ECHO_N "checking whether strndup is declared... $ECHO_C" >&6; }
+if test "${ac_cv_have_decl_strndup+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+#ifndef strndup
+  (void) strndup;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_have_decl_strndup=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_have_decl_strndup=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_strndup" >&5
+echo "${ECHO_T}$ac_cv_have_decl_strndup" >&6; }
+if test $ac_cv_have_decl_strndup = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRNDUP 1
+_ACEOF
+
+
+else
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRNDUP 0
+_ACEOF
+
+
+fi
+
+
+{ echo "$as_me:$LINENO: checking whether strnlen is declared" >&5
+echo $ECHO_N "checking whether strnlen is declared... $ECHO_C" >&6; }
+if test "${ac_cv_have_decl_strnlen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+#ifndef strnlen
+  (void) strnlen;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_have_decl_strnlen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_have_decl_strnlen=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_strnlen" >&5
+echo "${ECHO_T}$ac_cv_have_decl_strnlen" >&6; }
+if test $ac_cv_have_decl_strnlen = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRNLEN 1
+_ACEOF
+
+
+else
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRNLEN 0
+_ACEOF
+
+
+fi
+
+
+
+  GNULIB_CHOWN=0;
+  GNULIB_DUP2=0;
+  GNULIB_FCHDIR=0;
+  GNULIB_FTRUNCATE=0;
+  GNULIB_GETCWD=0;
+  GNULIB_GETLOGIN_R=0;
+  GNULIB_READLINK=0;
+  GNULIB_SLEEP=0;
+    HAVE_DUP2=1;
+  HAVE_FTRUNCATE=1;
+  HAVE_READLINK=1;
+  HAVE_SLEEP=1;
+  HAVE_DECL_GETLOGIN_R=1;
+  REPLACE_CHOWN=0;
+  REPLACE_FCHDIR=0;
+  REPLACE_GETCWD=0;
+
+
+
+
+
+
+
+
+
+
+
+{ echo "$as_me:$LINENO: checking whether utime accepts a null argument" >&5
+echo $ECHO_N "checking whether utime accepts a null argument... $ECHO_C" >&6; }
+if test "${ac_cv_func_utime_null+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  rm -f conftest.data; >conftest.data
+# Sequent interprets utime(file, 0) to mean use start of epoch.  Wrong.
+if test "$cross_compiling" = yes; then
+  ac_cv_func_utime_null=no
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+	       #ifdef HAVE_UTIME_H
+	       # include <utime.h>
+	       #endif
+int
+main ()
+{
+struct stat s, t;
+  return ! (stat ("conftest.data", &s) == 0
+	    && utime ("conftest.data", 0) == 0
+	    && stat ("conftest.data", &t) == 0
+	    && t.st_mtime >= s.st_mtime
+	    && t.st_mtime - s.st_mtime < 120);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_utime_null=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_func_utime_null=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_func_utime_null" >&5
+echo "${ECHO_T}$ac_cv_func_utime_null" >&6; }
+if test $ac_cv_func_utime_null = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_UTIME_NULL 1
+_ACEOF
+
+fi
+rm -f conftest.data
+
+
+
+
+
+
+
+
+
+
+
+
+  { echo "$as_me:$LINENO: checking for struct utimbuf" >&5
+echo $ECHO_N "checking for struct utimbuf... $ECHO_C" >&6; }
+if test "${gl_cv_sys_struct_utimbuf+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#if HAVE_SYS_TIME_H
+	     #include <sys/time.h>
+	    #endif
+	    #include <time.h>
+	    #ifdef HAVE_UTIME_H
+	     #include <utime.h>
+	    #endif
+
+int
+main ()
+{
+static struct utimbuf x; x.actime = x.modtime;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  gl_cv_sys_struct_utimbuf=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	gl_cv_sys_struct_utimbuf=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_sys_struct_utimbuf" >&5
+echo "${ECHO_T}$gl_cv_sys_struct_utimbuf" >&6; }
+
+  if test $gl_cv_sys_struct_utimbuf = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_STRUCT_UTIMBUF 1
+_ACEOF
+
+  fi
+
+
+
+
+
+
+
+
+  { echo "$as_me:$LINENO: checking for wint_t" >&5
+echo $ECHO_N "checking for wint_t... $ECHO_C" >&6; }
+if test "${gt_cv_c_wint_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
+   before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+       wint_t foo = (wchar_t)'\0';
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  gt_cv_c_wint_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	gt_cv_c_wint_t=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $gt_cv_c_wint_t" >&5
+echo "${ECHO_T}$gt_cv_c_wint_t" >&6; }
+  if test $gt_cv_c_wint_t = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_WINT_T 1
+_ACEOF
+
+  fi
+
+
+
+
+
+   if true; then
+  GL_COND_LIBTOOL_TRUE=
+  GL_COND_LIBTOOL_FALSE='#'
+else
+  GL_COND_LIBTOOL_TRUE='#'
+  GL_COND_LIBTOOL_FALSE=
+fi
+
+  gl_cond_libtool=true
+  gl_source_base='lib'
+LTALLOCA=`echo "$ALLOCA" | sed 's/\.[^.]* /.lo /g;s/\.[^.]*$/.lo/'`
+
+
+
+
+
+
+  if test $ac_cv_func_alloca_works = no; then
+    :
+  fi
+
+  # Define an additional variable used in the Makefile substitution.
+  if test $ac_cv_working_alloca_h = yes; then
+    { echo "$as_me:$LINENO: checking for alloca as a compiler built-in" >&5
+echo $ECHO_N "checking for alloca as a compiler built-in... $ECHO_C" >&6; }
+if test "${gl_cv_rpl_alloca+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#if defined __GNUC__ || defined _AIX || defined _MSC_VER
+        Need own alloca
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Need own alloca" >/dev/null 2>&1; then
+  gl_cv_rpl_alloca=yes
+else
+  gl_cv_rpl_alloca=no
+fi
+rm -f conftest*
+
+
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_rpl_alloca" >&5
+echo "${ECHO_T}$gl_cv_rpl_alloca" >&6; }
+    if test $gl_cv_rpl_alloca = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_ALLOCA 1
+_ACEOF
+
+      ALLOCA_H=alloca.h
+    else
+                  ALLOCA_H=
+    fi
+  else
+    ALLOCA_H=alloca.h
+  fi
+
+
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_ALLOCA_H 1
+_ACEOF
+
+
+
+  { echo "$as_me:$LINENO: checking whether to enable assertions" >&5
+echo $ECHO_N "checking whether to enable assertions... $ECHO_C" >&6; }
+  # Check whether --enable-assert was given.
+if test "${enable_assert+set}" = set; then
+  enableval=$enable_assert;  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define NDEBUG 1
+_ACEOF
+
+else
+   { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+
+fi
+
+
+
+
+for ac_func in atexit
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+else
+  gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+fi
+done
+
+  if test $ac_cv_func_atexit = no; then
+
+  :
+
+  fi
+
+  { echo "$as_me:$LINENO: checking for GNU libc compatible calloc" >&5
+echo $ECHO_N "checking for GNU libc compatible calloc... $ECHO_C" >&6; }
+if test "${ac_cv_func_calloc_0_nonnull+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_func_calloc_0_nonnull=no
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+exit (!calloc (0, 0) || calloc ((size_t) -1 / 8 + 1, 8));
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_calloc_0_nonnull=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_func_calloc_0_nonnull=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_func_calloc_0_nonnull" >&5
+echo "${ECHO_T}$ac_cv_func_calloc_0_nonnull" >&6; }
+if test $ac_cv_func_calloc_0_nonnull = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_CALLOC 1
+_ACEOF
+
+else
+  cat >>confdefs.h <<\_ACEOF
+#define HAVE_CALLOC 0
+_ACEOF
+
+   gl_LIBOBJS="$gl_LIBOBJS calloc.$ac_objext"
+
+cat >>confdefs.h <<\_ACEOF
+#define calloc rpl_calloc
+_ACEOF
+
+fi
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS close-stream.$ac_objext"
+
+    :
+
+
+
+cat >>confdefs.h <<\_ACEOF
+#define GNULIB_CLOSE_STREAM 1
+_ACEOF
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS closeout.$ac_objext"
+
+    :
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS basename.$ac_objext"
+  gl_LIBOBJS="$gl_LIBOBJS dirname.$ac_objext"
+  gl_LIBOBJS="$gl_LIBOBJS stripslash.$ac_objext"
+
+
+
+
+
+
+
+  { echo "$as_me:$LINENO: checking whether // is distinct from /" >&5
+echo $ECHO_N "checking whether // is distinct from /... $ECHO_C" >&6; }
+if test "${gl_cv_double_slash_root+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+   if test x"$cross_compiling" = xyes ; then
+	# When cross-compiling, there is no way to tell whether // is special
+	# short of a list of hosts.  However, the only known hosts to date
+	# that have a distinct // are Apollo DomainOS (too old to port to),
+	# Cygwin, and z/OS.  If anyone knows of another system for which // has
+	# special semantics and is distinct from /, please report it to
+	# <bug-gnulib@gnu.org>.
+	case $host in
+	  *-cygwin | i370-ibm-openedition)
+	    gl_cv_double_slash_root=yes ;;
+	  *)
+	    # Be optimistic and assume that / and // are the same when we
+	    # don't know.
+	    gl_cv_double_slash_root='unknown, assuming no' ;;
+	esac
+      else
+	set x `ls -di / //`
+	if test $2 = $4 && wc //dev/null >/dev/null 2>&1; then
+	  gl_cv_double_slash_root=no
+	else
+	  gl_cv_double_slash_root=yes
+	fi
+      fi
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_double_slash_root" >&5
+echo "${ECHO_T}$gl_cv_double_slash_root" >&6; }
+  if test "$gl_cv_double_slash_root" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1
+_ACEOF
+
+  fi
+
+
+  { echo "$as_me:$LINENO: checking for error_at_line" >&5
+echo $ECHO_N "checking for error_at_line... $ECHO_C" >&6; }
+if test "${ac_cv_lib_error_at_line+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <error.h>
+int
+main ()
+{
+error_at_line (0, 0, "", 0, "an error occurred");
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_error_at_line=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_error_at_line=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_error_at_line" >&5
+echo "${ECHO_T}$ac_cv_lib_error_at_line" >&6; }
+if test $ac_cv_lib_error_at_line = no; then
+  gl_LIBOBJS="$gl_LIBOBJS error.$ac_objext"
+fi
+
+
+
+  :
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS exitfail.$ac_objext"
+
+    :
+
+
+
+
+
+
+
+
+
+for ac_func in __fpending
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+else
+  gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+fi
+done
+
+  fp_headers='
+#     include <stdio.h>
+#     if HAVE_STDIO_EXT_H
+#      include <stdio_ext.h>
+#     endif
+'
+  { echo "$as_me:$LINENO: checking whether __fpending is declared" >&5
+echo $ECHO_N "checking whether __fpending is declared... $ECHO_C" >&6; }
+if test "${ac_cv_have_decl___fpending+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$fp_headers
+
+int
+main ()
+{
+#ifndef __fpending
+  (void) __fpending;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_have_decl___fpending=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_have_decl___fpending=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_have_decl___fpending" >&5
+echo "${ECHO_T}$ac_cv_have_decl___fpending" >&6; }
+if test $ac_cv_have_decl___fpending = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL___FPENDING 1
+_ACEOF
+
+
+else
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL___FPENDING 0
+_ACEOF
+
+
+fi
+
+
+  if test $ac_cv_func___fpending = no; then
+    { echo "$as_me:$LINENO: checking how to determine the number of pending output bytes on a stream" >&5
+echo $ECHO_N "checking how to determine the number of pending output bytes on a stream... $ECHO_C" >&6; }
+if test "${ac_cv_sys_pending_output_n_bytes+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+	for ac_expr in						\
+								\
+	    '# glibc2'						\
+	    'fp->_IO_write_ptr - fp->_IO_write_base'		\
+								\
+	    '# traditional Unix'				\
+	    'fp->_ptr - fp->_base'				\
+								\
+	    '# BSD'						\
+	    'fp->_p - fp->_bf._base'				\
+								\
+	    '# SCO, Unixware'					\
+	    '(fp->__ptr ? fp->__ptr - fp->__base : 0)'		\
+								\
+	    '# old glibc?'					\
+	    'fp->__bufp - fp->__buffer'				\
+								\
+	    '# old glibc iostream?'				\
+	    'fp->_pptr - fp->_pbase'				\
+								\
+	    '# VMS'						\
+	    '(*fp)->_ptr - (*fp)->_base'			\
+								\
+	    '# e.g., DGUX R4.11; the info is not available'	\
+	    1							\
+	    ; do
+
+	  # Skip each embedded comment.
+	  case "$ac_expr" in '#'*) continue;; esac
+
+	  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdio.h>
+
+int
+main ()
+{
+FILE *fp = stdin; (void) ($ac_expr);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  fp_done=yes
+
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+	  test "$fp_done" = yes && break
+	done
+
+	ac_cv_sys_pending_output_n_bytes=$ac_expr
+
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_sys_pending_output_n_bytes" >&5
+echo "${ECHO_T}$ac_cv_sys_pending_output_n_bytes" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+#define PENDING_OUTPUT_N_BYTES $ac_cv_sys_pending_output_n_bytes
+_ACEOF
+
+  fi
+
+
+  { echo "$as_me:$LINENO: checking whether free (NULL) is known to work" >&5
+echo $ECHO_N "checking whether free (NULL) is known to work... $ECHO_C" >&6; }
+if test "${gl_cv_func_free+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <unistd.h>
+int
+main ()
+{
+#if _POSIX_VERSION < 199009L && \
+	        (defined unix || defined _unix || defined _unix_ \
+	         || defined __unix || defined __unix__)
+	      #error "'free (NULL)' is not known to work"
+	    #endif
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  gl_cv_func_free=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	gl_cv_func_free=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_func_free" >&5
+echo "${ECHO_T}$gl_cv_func_free" >&6; }
+
+  if test $gl_cv_func_free = no; then
+    gl_LIBOBJS="$gl_LIBOBJS free.$ac_objext"
+
+cat >>confdefs.h <<\_ACEOF
+#define free rpl_free
+_ACEOF
+
+  fi
+
+
+
+  if test -n "$GETOPT_H"; then
+
+  gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext"
+  gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext"
+
+  GETOPT_H=getopt.h
+
+cat >>confdefs.h <<\_ACEOF
+#define __GETOPT_PREFIX rpl_
+_ACEOF
+
+
+
+
+
+
+
+
+
+
+fi
+
+
+
+
+
+
+
+  { echo "$as_me:$LINENO: checking whether the compiler generally respects inline" >&5
+echo $ECHO_N "checking whether the compiler generally respects inline... $ECHO_C" >&6; }
+if test "${gl_cv_c_inline_effective+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test $ac_cv_c_inline = no; then
+       gl_cv_c_inline_effective=no
+     else
+                                          cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifdef __NO_INLINE__
+               #error "inline is not effective"
+             #endif
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  gl_cv_c_inline_effective=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	gl_cv_c_inline_effective=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+     fi
+
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_c_inline_effective" >&5
+echo "${ECHO_T}$gl_cv_c_inline_effective" >&6; }
+  if test $gl_cv_c_inline_effective = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_INLINE 1
+_ACEOF
+
+  fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+              { echo "$as_me:$LINENO: checking whether inttypes.h conforms to C99" >&5
+echo $ECHO_N "checking whether inttypes.h conforms to C99... $ECHO_C" >&6; }
+if test "${gl_cv_header_working_inttypes_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  gl_cv_header_working_inttypes_h=no
+     if test "$gl_cv_header_working_stdint_h" = yes \
+	&& test $ac_cv_header_inttypes_h = yes \
+	&& test "$ac_cv_have_decl_imaxabs" = yes \
+	&& test "$ac_cv_have_decl_imaxdiv" = yes \
+	&& test "$ac_cv_have_decl_strtoimax" = yes \
+	&& test "$ac_cv_have_decl_strtoumax" = yes; then
+       cat >conftest.$ac_ext <<_ACEOF
+
+	 /* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stddef.h>
+#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
+#define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */
+#define __STDC_FORMAT_MACROS 1 /* to make it work also in C++ mode */
+#include ABSOLUTE_INTTYPES_H
+
+/* No need to duplicate the tests of stdint.m4; they are subsumed by
+   $gl_cv_header_working_stdint_h = yes.  */
+
+/* Tests for macros supposed to be defined in inttypes.h.  */
+
+const char *k = /* implicit string concatenation */
+#ifdef INT8_MAX
+  PRId8 PRIi8
+#endif
+#ifdef UINT8_MAX
+  PRIo8 PRIu8 PRIx8 PRIX8
+#endif
+#ifdef INT16_MAX
+  PRId16 PRIi16
+#endif
+#ifdef UINT16_MAX
+  PRIo16 PRIu16 PRIx16 PRIX16
+#endif
+#ifdef INT32_MAX
+  PRId32 PRIi32
+#endif
+#ifdef UINT32_MAX
+  PRIo32 PRIu32 PRIx32 PRIX32
+#endif
+#ifdef INT64_MAX
+  PRId64 PRIi64
+#endif
+#ifdef UINT64_MAX
+  PRIo64 PRIu64 PRIx64 PRIX64
+#endif
+  PRIdLEAST8 PRIiLEAST8 PRIoLEAST8 PRIuLEAST8 PRIxLEAST8 PRIXLEAST8
+  PRIdLEAST16 PRIiLEAST16 PRIoLEAST16 PRIuLEAST16 PRIxLEAST16 PRIXLEAST16
+  PRIdLEAST32 PRIiLEAST32 PRIoLEAST32 PRIuLEAST32 PRIxLEAST32 PRIXLEAST32
+  PRIdLEAST64 PRIiLEAST64
+  PRIoLEAST64 PRIuLEAST64 PRIxLEAST64 PRIXLEAST64
+  PRIdFAST8 PRIiFAST8 PRIoFAST8 PRIuFAST8 PRIxFAST8 PRIXFAST8
+  PRIdFAST16 PRIiFAST16 PRIoFAST16 PRIuFAST16 PRIxFAST16 PRIXFAST16
+  PRIdFAST32 PRIiFAST32 PRIoFAST32 PRIuFAST32 PRIxFAST32 PRIXFAST32
+  PRIdFAST64 PRIiFAST64
+  PRIoFAST64 PRIuFAST64 PRIxFAST64 PRIXFAST64
+  PRIdMAX PRIiMAX PRIoMAX PRIuMAX PRIxMAX PRIXMAX
+#ifdef INTPTR_MAX
+  PRIdPTR PRIiPTR
+#endif
+#ifdef UINTPTR_MAX
+  PRIoPTR PRIuPTR PRIxPTR PRIXPTR
+#endif
+  ;
+const char *l = /* implicit string concatenation */
+#ifdef INT8_MAX
+  SCNd8 SCNi8
+#endif
+#ifdef UINT8_MAX
+  SCNo8 SCNu8 SCNx8
+#endif
+#ifdef INT16_MAX
+  SCNd16 SCNi16
+#endif
+#ifdef UINT16_MAX
+  SCNo16 SCNu16 SCNx16
+#endif
+#ifdef INT32_MAX
+  SCNd32 SCNi32
+#endif
+#ifdef UINT32_MAX
+  SCNo32 SCNu32 SCNx32
+#endif
+#ifdef INT64_MAX
+  SCNd64 SCNi64
+#endif
+#ifdef UINT64_MAX
+  SCNo64 SCNu64 SCNx64
+#endif
+  SCNdLEAST8 SCNiLEAST8 SCNoLEAST8 SCNuLEAST8 SCNxLEAST8
+  SCNdLEAST16 SCNiLEAST16 SCNoLEAST16 SCNuLEAST16 SCNxLEAST16
+  SCNdLEAST32 SCNiLEAST32 SCNoLEAST32 SCNuLEAST32 SCNxLEAST32
+  SCNdLEAST64 SCNiLEAST64
+  SCNoLEAST64 SCNuLEAST64 SCNxLEAST64
+  SCNdFAST8 SCNiFAST8 SCNoFAST8 SCNuFAST8 SCNxFAST8
+  SCNdFAST16 SCNiFAST16 SCNoFAST16 SCNuFAST16 SCNxFAST16
+  SCNdFAST32 SCNiFAST32 SCNoFAST32 SCNuFAST32 SCNxFAST32
+  SCNdFAST64 SCNiFAST64
+  SCNoFAST64 SCNuFAST64 SCNxFAST64
+  SCNdMAX SCNiMAX SCNoMAX SCNuMAX SCNxMAX
+#ifdef INTPTR_MAX
+  SCNdPTR SCNiPTR
+#endif
+#ifdef UINTPTR_MAX
+  SCNoPTR SCNuPTR SCNxPTR
+#endif
+  ;
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  gl_cv_header_working_inttypes_h=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+     fi
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_header_working_inttypes_h" >&5
+echo "${ECHO_T}$gl_cv_header_working_inttypes_h" >&6; }
+
+    if false && test $gl_cv_header_working_inttypes_h = yes; then
+        INTTYPES_H=''
+  else
+
+
+        if test $ac_cv_header_inttypes_h = yes; then
+        { echo "$as_me:$LINENO: checking absolute name of <inttypes.h>" >&5
+echo $ECHO_N "checking absolute name of <inttypes.h>... $ECHO_C" >&6; }
+if test "${gl_cv_absolute_inttypes_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+
+
+    if test $ac_cv_header_inttypes_h = yes; then
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <inttypes.h>
+_ACEOF
+      gl_cv_absolute_inttypes_h=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+sed -n '\#/inttypes.h#{s#.*"\(.*/inttypes.h\)".*#\1#;s#^/[^/]#//&#;p;q;}'`
+    fi
+
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_absolute_inttypes_h" >&5
+echo "${ECHO_T}$gl_cv_absolute_inttypes_h" >&6; }
+cat >>confdefs.h <<_ACEOF
+#define ABSOLUTE_INTTYPES_H "$gl_cv_absolute_inttypes_h"
+_ACEOF
+
+
+      ABSOLUTE_INTTYPES_H=\"$gl_cv_absolute_inttypes_h\"
+    else
+      ABSOLUTE_INTTYPES_H=\"no/such/file/inttypes.h\"
+    fi
+
+
+    PRIPTR_PREFIX=
+    if test -n "$STDINT_H"; then
+            PRIPTR_PREFIX='"l"'
+    else
+            for glpfx in '' l ll I64; do
+        case $glpfx in
+          '')  gltype1='int';;
+          l)   gltype1='long int';;
+          ll)  gltype1='long long int';;
+          I64) gltype1='__int64';;
+        esac
+        cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdint.h>
+             extern intptr_t foo;
+             extern $gltype1 foo;
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  PRIPTR_PREFIX='"'$glpfx'"'
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+        test -n "$PRIPTR_PREFIX" && break
+      done
+    fi
+
+
+    if test "$ac_cv_have_decl_imaxabs" = yes; then
+      HAVE_DECL_IMAXABS=1
+    else
+      HAVE_DECL_IMAXABS=0
+    fi
+
+    if test "$ac_cv_have_decl_imaxdiv" = yes; then
+      HAVE_DECL_IMAXDIV=1
+    else
+      HAVE_DECL_IMAXDIV=0
+    fi
+
+    if test "$ac_cv_have_decl_strtoimax" = yes; then
+      HAVE_DECL_STRTOIMAX=1
+    else
+      HAVE_DECL_STRTOIMAX=0
+    fi
+
+    if test "$ac_cv_have_decl_strtoumax" = yes; then
+      HAVE_DECL_STRTOUMAX=1
+    else
+      HAVE_DECL_STRTOUMAX=0
+    fi
+
+    INTTYPES_H='inttypes.h'
+  fi
+
+
+
+  { echo "$as_me:$LINENO: checking for flag to ignore unused libraries" >&5
+echo $ECHO_N "checking for flag to ignore unused libraries... $ECHO_C" >&6; }
+if test "${gl_cv_ignore_unused_libraries+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  gl_cv_ignore_unused_libraries=none
+     gl_saved_ldflags=$LDFLAGS
+     gl_saved_libs=$LIBS
+     # Link with -lm to detect binutils 2.16 bug with --as-needed; see
+     # <http://lists.gnu.org/archive/html/bug-gnulib/2006-06/msg00131.html>.
+     LIBS="$LIBS -lm"
+     # Use long option sequences like '-z ignore' to test for the feature,
+     # to forestall problems with linkers that have -z, -i, -g, -n, etc. flags.
+     # GCC + binutils likes '-Wl,--as-needed'.
+     # GCC + Solaris ld likes '-Wl,-z,ignore'.
+     # Sun C likes '-z ignore'.
+     # Don't try bare '--as-needed'; nothing likes it and the HP-UX 11.11
+     # native cc issues annoying warnings and then ignores it,
+     # which would cause us to incorrectly conclude that it worked.
+     for gl_flags in \
+	'-Wl,--as-needed' \
+	'-Wl,-z,ignore' \
+	'-z ignore'
+     do
+       LDFLAGS="$gl_flags $LDFLAGS"
+       cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  gl_cv_ignore_unused_libraries=$gl_flags
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+       LDFLAGS=$gl_saved_ldflags
+       test "$gl_cv_ignore_unused_libraries" != none && break
+     done
+     LIBS=$gl_saved_libs
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_ignore_unused_libraries" >&5
+echo "${ECHO_T}$gl_cv_ignore_unused_libraries" >&6; }
+
+  test "$gl_cv_ignore_unused_libraries" != none &&
+    LDFLAGS="$LDFLAGS $gl_cv_ignore_unused_libraries"
+
+
+
+
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS long-options.$ac_objext"
+
+
+
+for ac_header in stdlib.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    ( cat <<\_ASBOX
+## --------------------------------- ##
+## Report this to bug-parted@gnu.org ##
+## --------------------------------- ##
+_ASBOX
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+{ echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5
+echo $ECHO_N "checking for GNU libc compatible malloc... $ECHO_C" >&6; }
+if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_func_malloc_0_nonnull=no
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#if defined STDC_HEADERS || defined HAVE_STDLIB_H
+# include <stdlib.h>
+#else
+char *malloc ();
+#endif
+
+int
+main ()
+{
+return ! malloc (0);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_malloc_0_nonnull=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_func_malloc_0_nonnull=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5
+echo "${ECHO_T}$ac_cv_func_malloc_0_nonnull" >&6; }
+if test $ac_cv_func_malloc_0_nonnull = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_MALLOC 1
+_ACEOF
+
+else
+  cat >>confdefs.h <<\_ACEOF
+#define HAVE_MALLOC 0
+_ACEOF
+
+   gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext"
+
+cat >>confdefs.h <<\_ACEOF
+#define malloc rpl_malloc
+_ACEOF
+
+fi
+
+
+
+
+
+for ac_func in memchr
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+else
+  gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+fi
+done
+
+  if test $ac_cv_func_memchr = no; then
+
+
+for ac_header in bp-sym.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    ( cat <<\_ASBOX
+## --------------------------------- ##
+## Report this to bug-parted@gnu.org ##
+## --------------------------------- ##
+_ASBOX
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+  fi
+
+
+  { echo "$as_me:$LINENO: checking for working memcmp" >&5
+echo $ECHO_N "checking for working memcmp... $ECHO_C" >&6; }
+if test "${ac_cv_func_memcmp_working+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_func_memcmp_working=no
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+
+  /* Some versions of memcmp are not 8-bit clean.  */
+  char c0 = '\100', c1 = '\200', c2 = '\201';
+  if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0)
+    return 1;
+
+  /* The Next x86 OpenStep bug shows up only when comparing 16 bytes
+     or more and with at least one buffer not starting on a 4-byte boundary.
+     William Lewis provided this test program.   */
+  {
+    char foo[21];
+    char bar[21];
+    int i;
+    for (i = 0; i < 4; i++)
+      {
+	char *a = foo + i;
+	char *b = bar + i;
+	strcpy (a, "--------01111111");
+	strcpy (b, "--------10000000");
+	if (memcmp (a, b, 16) >= 0)
+	  return 1;
+      }
+    return 0;
+  }
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_memcmp_working=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_func_memcmp_working=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_func_memcmp_working" >&5
+echo "${ECHO_T}$ac_cv_func_memcmp_working" >&6; }
+test $ac_cv_func_memcmp_working = no && gl_LIBOBJS="$gl_LIBOBJS memcmp.$ac_objext"
+
+    if test $ac_cv_func_memcmp_working = no; then
+
+cat >>confdefs.h <<\_ACEOF
+#define memcmp rpl_memcmp
+_ACEOF
+
+    :
+  fi
+
+
+
+for ac_func in memcpy
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+else
+  gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+fi
+done
+
+  if test $ac_cv_func_memcpy = no; then
+
+  :
+
+  fi
+
+
+
+for ac_func in memmove
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+else
+  gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+fi
+done
+
+  if test $ac_cv_func_memmove = no; then
+
+  :
+
+  fi
+
+
+
+for ac_func in memset
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+else
+  gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+fi
+done
+
+  if test $ac_cv_func_memset = no; then
+
+  :
+
+  fi
+
+
+  gl_LIBOBJS="$gl_LIBOBJS quotearg.$ac_objext"
+
+
+
+
+
+
+
+  { echo "$as_me:$LINENO: checking for mbstate_t" >&5
+echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6; }
+if test "${ac_cv_type_mbstate_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#	    include <wchar.h>
+int
+main ()
+{
+mbstate_t x; return sizeof x;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_type_mbstate_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_type_mbstate_t=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_type_mbstate_t" >&5
+echo "${ECHO_T}$ac_cv_type_mbstate_t" >&6; }
+   if test $ac_cv_type_mbstate_t = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_MBSTATE_T 1
+_ACEOF
+
+   else
+
+cat >>confdefs.h <<\_ACEOF
+#define mbstate_t int
+_ACEOF
+
+   fi
+
+    { echo "$as_me:$LINENO: checking whether mbrtowc and mbstate_t are properly declared" >&5
+echo $ECHO_N "checking whether mbrtowc and mbstate_t are properly declared... $ECHO_C" >&6; }
+if test "${gl_cv_func_mbrtowc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <wchar.h>
+int
+main ()
+{
+wchar_t wc;
+              char const s[] = "";
+              size_t n = 1;
+              mbstate_t state;
+              return ! (sizeof state && (mbrtowc) (&wc, s, n, &state));
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  gl_cv_func_mbrtowc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	gl_cv_func_mbrtowc=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc" >&5
+echo "${ECHO_T}$gl_cv_func_mbrtowc" >&6; }
+  if test $gl_cv_func_mbrtowc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_MBRTOWC 1
+_ACEOF
+
+  fi
+
+
+
+for ac_header in stdlib.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    ( cat <<\_ASBOX
+## --------------------------------- ##
+## Report this to bug-parted@gnu.org ##
+## --------------------------------- ##
+_ASBOX
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+{ echo "$as_me:$LINENO: checking for GNU libc compatible realloc" >&5
+echo $ECHO_N "checking for GNU libc compatible realloc... $ECHO_C" >&6; }
+if test "${ac_cv_func_realloc_0_nonnull+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_func_realloc_0_nonnull=no
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#if defined STDC_HEADERS || defined HAVE_STDLIB_H
+# include <stdlib.h>
+#else
+char *realloc ();
+#endif
+
+int
+main ()
+{
+return ! realloc (0, 0);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_realloc_0_nonnull=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_func_realloc_0_nonnull=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_func_realloc_0_nonnull" >&5
+echo "${ECHO_T}$ac_cv_func_realloc_0_nonnull" >&6; }
+if test $ac_cv_func_realloc_0_nonnull = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_REALLOC 1
+_ACEOF
+
+else
+  cat >>confdefs.h <<\_ACEOF
+#define HAVE_REALLOC 0
+_ACEOF
+
+   gl_LIBOBJS="$gl_LIBOBJS realloc.$ac_objext"
+
+cat >>confdefs.h <<\_ACEOF
+#define realloc rpl_realloc
+_ACEOF
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-included-regex was given.
+if test "${with_included_regex+set}" = set; then
+  withval=$with_included_regex;
+fi
+
+
+  case $with_included_regex in #(
+  yes|no) ac_use_included_regex=$with_included_regex
+	;;
+  '')
+    # If the system regex support is good enough that it passes the
+    # following run test, then default to *not* using the included regex.c.
+    # If cross compiling, assume the test would fail and use the included
+    # regex.c.
+    { echo "$as_me:$LINENO: checking for working re_compile_pattern" >&5
+echo $ECHO_N "checking for working re_compile_pattern... $ECHO_C" >&6; }
+if test "${gl_cv_func_re_compile_pattern_working+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$cross_compiling" = yes; then
+         gl_cv_func_re_compile_pattern_working=no
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+	   #if HAVE_LOCALE_H
+	    #include <locale.h>
+	   #endif
+	   #include <limits.h>
+	   #include <regex.h>
+
+int
+main ()
+{
+static struct re_pattern_buffer regex;
+	    unsigned char folded_chars[UCHAR_MAX + 1];
+	    int i;
+	    const char *s;
+	    struct re_registers regs;
+
+	    #if HAVE_LOCALE_H
+	      /* http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html
+		 This test needs valgrind to catch the bug on Debian
+		 GNU/Linux 3.1 x86, but it might catch the bug better
+		 on other platforms and it shouldn't hurt to try the
+		 test here.  */
+	      if (setlocale (LC_ALL, "en_US.UTF-8"))
+		{
+		  static char const pat[] = "insert into";
+		  static char const data[] =
+		    "\xFF\0\x12\xA2\xAA\xC4\xB1,K\x12\xC4\xB1*\xACK";
+		  re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE
+				 | RE_ICASE);
+		  memset (&regex, 0, sizeof regex);
+		  s = re_compile_pattern (pat, sizeof pat - 1, &regex);
+		  if (s)
+		    return 1;
+		  if (re_search (&regex, data, sizeof data - 1,
+				 0, sizeof data - 1, &regs)
+		      != -1)
+		    return 1;
+		  if (! setlocale (LC_ALL, "C"))
+		    return 1;
+		}
+	    #endif
+
+	    /* This test is from glibc bug 3957, reported by Andrew Mackey.  */
+	    re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE);
+	    memset (&regex, 0, sizeof regex);
+	    s = re_compile_pattern ("a[^x]b", 6, &regex);
+	    if (s)
+	      return 1;
+
+	    /* This should fail, but succeeds for glibc-2.5.  */
+	    if (re_search (&regex, "a\nb", 3, 0, 3, &regs) != -1)
+	      return 1;
+
+	    /* This regular expression is from Spencer ere test number 75
+	       in grep-2.3.  */
+	    re_set_syntax (RE_SYNTAX_POSIX_EGREP);
+	    memset (&regex, 0, sizeof regex);
+	    for (i = 0; i <= UCHAR_MAX; i++)
+	      folded_chars[i] = i;
+	    regex.translate = folded_chars;
+	    s = re_compile_pattern ("a[[:]:]]b\n", 11, &regex);
+	    /* This should fail with _Invalid character class name_ error.  */
+	    if (!s)
+	      return 1;
+
+	    /* This should succeed, but does not for glibc-2.1.3.  */
+	    memset (&regex, 0, sizeof regex);
+	    s = re_compile_pattern ("{1", 2, &regex);
+
+	    if (s)
+	      return 1;
+
+	    /* The following example is derived from a problem report
+	       against gawk from Jorge Stolfi <stolfi@ic.unicamp.br>.  */
+	    memset (&regex, 0, sizeof regex);
+	    s = re_compile_pattern ("[an\371]*n", 7, &regex);
+	    if (s)
+	      return 1;
+
+	    /* This should match, but does not for glibc-2.2.1.  */
+	    if (re_match (&regex, "an", 2, 0, &regs) != 2)
+	      return 1;
+
+	    memset (&regex, 0, sizeof regex);
+	    s = re_compile_pattern ("x", 1, &regex);
+	    if (s)
+	      return 1;
+
+	    /* glibc-2.2.93 does not work with a negative RANGE argument.  */
+	    if (re_search (&regex, "wxy", 3, 2, -2, &regs) != 1)
+	      return 1;
+
+	    /* The version of regex.c in older versions of gnulib
+	       ignored RE_ICASE.  Detect that problem too.  */
+	    re_set_syntax (RE_SYNTAX_EMACS | RE_ICASE);
+	    memset (&regex, 0, sizeof regex);
+	    s = re_compile_pattern ("x", 1, &regex);
+	    if (s)
+	      return 1;
+
+	    if (re_search (&regex, "WXY", 3, 0, 3, &regs) < 0)
+	      return 1;
+
+	    /* REG_STARTEND was added to glibc on 2004-01-15.
+	       Reject older versions.  */
+	    if (! REG_STARTEND)
+	      return 1;
+
+	    /* Reject hosts whose regoff_t values are too narrow.
+	       These include glibc 2.3.5 on hosts with 64-bit ptrdiff_t
+	       and 32-bit int.  */
+	    if (sizeof (regoff_t) < sizeof (ptrdiff_t)
+		|| sizeof (regoff_t) < sizeof (ssize_t))
+	      return 1;
+
+	    return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  gl_cv_func_re_compile_pattern_working=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+gl_cv_func_re_compile_pattern_working=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_func_re_compile_pattern_working" >&5
+echo "${ECHO_T}$gl_cv_func_re_compile_pattern_working" >&6; }
+    case $gl_cv_func_re_compile_pattern_working in #(
+    yes) ac_use_included_regex=no;; #(
+    no) ac_use_included_regex=yes;;
+    esac
+    ;;
+  *) { { echo "$as_me:$LINENO: error: Invalid value for --with-included-regex: $with_included_regex" >&5
+echo "$as_me: error: Invalid value for --with-included-regex: $with_included_regex" >&2;}
+   { (exit 1); exit 1; }; }
+    ;;
+  esac
+
+  if test $ac_use_included_regex = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define _REGEX_LARGE_OFFSETS 1
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define re_syntax_options rpl_re_syntax_options
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define re_set_syntax rpl_re_set_syntax
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define re_compile_pattern rpl_re_compile_pattern
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define re_compile_fastmap rpl_re_compile_fastmap
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define re_search rpl_re_search
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define re_search_2 rpl_re_search_2
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define re_match rpl_re_match
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define re_match_2 rpl_re_match_2
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define re_set_registers rpl_re_set_registers
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define re_comp rpl_re_comp
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define re_exec rpl_re_exec
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define regcomp rpl_regcomp
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define regexec rpl_regexec
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define regerror rpl_regerror
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define regfree rpl_regfree
+_ACEOF
+
+    gl_LIBOBJS="$gl_LIBOBJS regex.$ac_objext"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  { echo "$as_me:$LINENO: checking whether isblank is declared" >&5
+echo $ECHO_N "checking whether isblank is declared... $ECHO_C" >&6; }
+if test "${ac_cv_have_decl_isblank+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ctype.h>
+
+int
+main ()
+{
+#ifndef isblank
+  (void) isblank;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_have_decl_isblank=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_have_decl_isblank=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_isblank" >&5
+echo "${ECHO_T}$ac_cv_have_decl_isblank" >&6; }
+if test $ac_cv_have_decl_isblank = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ISBLANK 1
+_ACEOF
+
+
+else
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ISBLANK 0
+_ACEOF
+
+
+fi
+
+
+
+  fi
+
+
+ { echo "$as_me:$LINENO: checking whether rename is broken" >&5
+echo $ECHO_N "checking whether rename is broken... $ECHO_C" >&6; }
+if test "${gl_cv_func_rename_trailing_slash_bug+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+    rm -rf conftest.d1 conftest.d2
+    mkdir conftest.d1 ||
+      { { echo "$as_me:$LINENO: error: cannot create temporary directory" >&5
+echo "$as_me: error: cannot create temporary directory" >&2;}
+   { (exit 1); exit 1; }; }
+    if test "$cross_compiling" = yes; then
+        gl_cv_func_rename_trailing_slash_bug=yes
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#       include <stdio.h>
+#       include <stdlib.h>
+        int
+        main ()
+        {
+          exit (rename ("conftest.d1/", "conftest.d2") ? 1 : 0);
+        }
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  gl_cv_func_rename_trailing_slash_bug=no
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+gl_cv_func_rename_trailing_slash_bug=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+      rm -rf conftest.d1 conftest.d2
+
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_func_rename_trailing_slash_bug" >&5
+echo "${ECHO_T}$gl_cv_func_rename_trailing_slash_bug" >&6; }
+  if test $gl_cv_func_rename_trailing_slash_bug = yes; then
+    gl_LIBOBJS="$gl_LIBOBJS rename.$ac_objext"
+
+cat >>confdefs.h <<\_ACEOF
+#define rename rpl_rename
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define RENAME_TRAILING_SLASH_BUG 1
+_ACEOF
+
+    :
+  fi
+
+
+
+for ac_func in rpmatch
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+else
+  gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+fi
+done
+
+  if test $ac_cv_func_rpmatch = no; then
+    :
+  fi
+
+
+  gl_LIBOBJS="$gl_LIBOBJS safe-read.$ac_objext"
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS safe-write.$ac_objext"
+
+
+
+
+
+
+
+
+  { echo "$as_me:$LINENO: checking for ssize_t" >&5
+echo $ECHO_N "checking for ssize_t... $ECHO_C" >&6; }
+if test "${gt_cv_ssize_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+int
+main ()
+{
+int x = sizeof (ssize_t *) + sizeof (ssize_t);
+        return !x;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  gt_cv_ssize_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	gt_cv_ssize_t=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $gt_cv_ssize_t" >&5
+echo "${ECHO_T}$gt_cv_ssize_t" >&6; }
+  if test $gt_cv_ssize_t = no; then
+
+cat >>confdefs.h <<\_ACEOF
+#define ssize_t int
+_ACEOF
+
+  fi
+
+
+  { echo "$as_me:$LINENO: checking for va_copy" >&5
+echo $ECHO_N "checking for va_copy... $ECHO_C" >&6; }
+  if test "${gl_cv_func_va_copy+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdarg.h>
+int
+main ()
+{
+
+#ifndef va_copy
+void (*func) (va_list, va_list) = va_copy;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  gl_cv_func_va_copy=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	gl_cv_func_va_copy=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+  { echo "$as_me:$LINENO: result: $gl_cv_func_va_copy" >&5
+echo "${ECHO_T}$gl_cv_func_va_copy" >&6; }
+  if test $gl_cv_func_va_copy = no; then
+    # Provide a substitute, either __va_copy or as a simple assignment.
+    if test "${gl_cv_func___va_copy+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdarg.h>
+int
+main ()
+{
+
+#ifndef __va_copy
+error, bail out
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  gl_cv_func___va_copy=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	gl_cv_func___va_copy=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+    if test $gl_cv_func___va_copy = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define va_copy __va_copy
+_ACEOF
+
+    else
+
+
+
+cat >>confdefs.h <<\_ACEOF
+#define va_copy gl_va_copy
+_ACEOF
+
+    fi
+  fi
+
+
+
+
+  # Define two additional variables used in the Makefile substitution.
+
+  if test "$ac_cv_header_stdbool_h" = yes; then
+    STDBOOL_H=''
+  else
+    STDBOOL_H='stdbool.h'
+  fi
+
+
+  if test "$ac_cv_type__Bool" = yes; then
+    HAVE__BOOL=1
+  else
+    HAVE__BOOL=0
+  fi
+
+
+
+
+
+  if test $ac_cv_type_long_long_int = yes; then
+    HAVE_LONG_LONG_INT=1
+  else
+    HAVE_LONG_LONG_INT=0
+  fi
+
+
+  if test $ac_cv_type_unsigned_long_long_int = yes; then
+    HAVE_UNSIGNED_LONG_LONG_INT=1
+  else
+    HAVE_UNSIGNED_LONG_LONG_INT=0
+  fi
+
+
+      if test $ac_cv_header_inttypes_h = yes; then
+    HAVE_INTTYPES_H=1
+  else
+    HAVE_INTTYPES_H=0
+  fi
+
+
+      if test $ac_cv_header_sys_types_h = yes; then
+    HAVE_SYS_TYPES_H=1
+  else
+    HAVE_SYS_TYPES_H=0
+  fi
+
+
+    if test $ac_cv_header_stdint_h = yes; then
+      { echo "$as_me:$LINENO: checking absolute name of <stdint.h>" >&5
+echo $ECHO_N "checking absolute name of <stdint.h>... $ECHO_C" >&6; }
+if test "${gl_cv_absolute_stdint_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+
+
+    if test $ac_cv_header_stdint_h = yes; then
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdint.h>
+_ACEOF
+      gl_cv_absolute_stdint_h=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+sed -n '\#/stdint.h#{s#.*"\(.*/stdint.h\)".*#\1#;s#^/[^/]#//&#;p;q;}'`
+    fi
+
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_absolute_stdint_h" >&5
+echo "${ECHO_T}$gl_cv_absolute_stdint_h" >&6; }
+cat >>confdefs.h <<_ACEOF
+#define ABSOLUTE_STDINT_H "$gl_cv_absolute_stdint_h"
+_ACEOF
+
+
+    ABSOLUTE_STDINT_H=\"$gl_cv_absolute_stdint_h\"
+    HAVE_STDINT_H=1
+  else
+    ABSOLUTE_STDINT_H=\"no/such/file/stdint.h\"
+    HAVE_STDINT_H=0
+  fi
+
+
+
+          if test $ac_cv_header_stdint_h = yes; then
+    { echo "$as_me:$LINENO: checking whether stdint.h conforms to C99" >&5
+echo $ECHO_N "checking whether stdint.h conforms to C99... $ECHO_C" >&6; }
+if test "${gl_cv_header_working_stdint_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  gl_cv_header_working_stdint_h=no
+       cat >conftest.$ac_ext <<_ACEOF
+
+         /* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #include <stdio.h>
+  #include <time.h>
+  #include <wchar.h>
+
+
+#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
+#define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */
+#include ABSOLUTE_STDINT_H
+#ifdef INT8_MAX
+int8_t a1 = INT8_MAX;
+int8_t a1min = INT8_MIN;
+#endif
+#ifdef INT16_MAX
+int16_t a2 = INT16_MAX;
+int16_t a2min = INT16_MIN;
+#endif
+#ifdef INT32_MAX
+int32_t a3 = INT32_MAX;
+int32_t a3min = INT32_MIN;
+#endif
+#ifdef INT64_MAX
+int64_t a4 = INT64_MAX;
+int64_t a4min = INT64_MIN;
+#endif
+#ifdef UINT8_MAX
+uint8_t b1 = UINT8_MAX;
+#else
+typedef int b1[(unsigned char) -1 != 255 ? 1 : -1];
+#endif
+#ifdef UINT16_MAX
+uint16_t b2 = UINT16_MAX;
+#endif
+#ifdef UINT32_MAX
+uint32_t b3 = UINT32_MAX;
+#endif
+#ifdef UINT64_MAX
+uint64_t b4 = UINT64_MAX;
+#endif
+int_least8_t c1 = INT8_C (0x7f);
+int_least8_t c1max = INT_LEAST8_MAX;
+int_least8_t c1min = INT_LEAST8_MIN;
+int_least16_t c2 = INT16_C (0x7fff);
+int_least16_t c2max = INT_LEAST16_MAX;
+int_least16_t c2min = INT_LEAST16_MIN;
+int_least32_t c3 = INT32_C (0x7fffffff);
+int_least32_t c3max = INT_LEAST32_MAX;
+int_least32_t c3min = INT_LEAST32_MIN;
+int_least64_t c4 = INT64_C (0x7fffffffffffffff);
+int_least64_t c4max = INT_LEAST64_MAX;
+int_least64_t c4min = INT_LEAST64_MIN;
+uint_least8_t d1 = UINT8_C (0xff);
+uint_least8_t d1max = UINT_LEAST8_MAX;
+uint_least16_t d2 = UINT16_C (0xffff);
+uint_least16_t d2max = UINT_LEAST16_MAX;
+uint_least32_t d3 = UINT32_C (0xffffffff);
+uint_least32_t d3max = UINT_LEAST32_MAX;
+uint_least64_t d4 = UINT64_C (0xffffffffffffffff);
+uint_least64_t d4max = UINT_LEAST64_MAX;
+int_fast8_t e1 = INT_FAST8_MAX;
+int_fast8_t e1min = INT_FAST8_MIN;
+int_fast16_t e2 = INT_FAST16_MAX;
+int_fast16_t e2min = INT_FAST16_MIN;
+int_fast32_t e3 = INT_FAST32_MAX;
+int_fast32_t e3min = INT_FAST32_MIN;
+int_fast64_t e4 = INT_FAST64_MAX;
+int_fast64_t e4min = INT_FAST64_MIN;
+uint_fast8_t f1 = UINT_FAST8_MAX;
+uint_fast16_t f2 = UINT_FAST16_MAX;
+uint_fast32_t f3 = UINT_FAST32_MAX;
+uint_fast64_t f4 = UINT_FAST64_MAX;
+#ifdef INTPTR_MAX
+intptr_t g = INTPTR_MAX;
+intptr_t gmin = INTPTR_MIN;
+#endif
+#ifdef UINTPTR_MAX
+uintptr_t h = UINTPTR_MAX;
+#endif
+intmax_t i = INTMAX_MAX;
+uintmax_t j = UINTMAX_MAX;
+struct s {
+  int check_PTRDIFF: PTRDIFF_MIN < (ptrdiff_t) 0 && (ptrdiff_t) 0 < PTRDIFF_MAX ? 1 : -1;
+  int check_SIG_ATOMIC: SIG_ATOMIC_MIN <= (sig_atomic_t) 0 && (sig_atomic_t) 0 < SIG_ATOMIC_MAX ? 1 : -1;
+  int check_SIZE: (size_t) 0 < SIZE_MAX ? 1 : -1;
+  int check_WCHAR: WCHAR_MIN <= (wchar_t) 0 && (wchar_t) 0 < WCHAR_MAX ? 1 : -1;
+  int check_WINT: WINT_MIN <= (wint_t) 0 && (wint_t) 0 < WINT_MAX ? 1 : -1;
+
+  /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others.  */
+  int check_UINT8_C:
+        (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1;
+  int check_UINT16_C:
+        (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1;
+
+  /* Detect bugs in OpenBSD 3.9 stdint.h.  */
+#ifdef UINT8_MAX
+  int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1;
+#endif
+#ifdef UINT16_MAX
+  int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1;
+#endif
+#ifdef UINT32_MAX
+  int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1;
+#endif
+#ifdef UINT64_MAX
+  int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1;
+#endif
+  int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1;
+  int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1;
+  int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1;
+  int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1;
+  int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1;
+  int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1;
+  int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1;
+  int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1;
+  int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1;
+  int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1;
+  int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1;
+};
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  gl_cv_header_working_stdint_h=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_header_working_stdint_h" >&5
+echo "${ECHO_T}$gl_cv_header_working_stdint_h" >&6; }
+  fi
+  if test "$gl_cv_header_working_stdint_h" = yes; then
+    STDINT_H=
+  else
+
+
+for ac_header in sys/inttypes.h sys/bitypes.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    ( cat <<\_ASBOX
+## --------------------------------- ##
+## Report this to bug-parted@gnu.org ##
+## --------------------------------- ##
+_ASBOX
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+    if test $ac_cv_header_sys_inttypes_h = yes; then
+      HAVE_SYS_INTTYPES_H=1
+    else
+      HAVE_SYS_INTTYPES_H=0
+    fi
+
+    if test $ac_cv_header_sys_bitypes_h = yes; then
+      HAVE_SYS_BITYPES_H=1
+    else
+      HAVE_SYS_BITYPES_H=0
+    fi
+
+
+
+
+
+
+
+
+
+
+  for gltype in ptrdiff_t sig_atomic_t size_t wchar_t wint_t ; do
+    { echo "$as_me:$LINENO: checking for bit size of $gltype" >&5
+echo $ECHO_N "checking for bit size of $gltype... $ECHO_C" >&6; }
+if { as_var=gl_cv_bitsizeof_${gltype}; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$cross_compiling" = yes; then
+  # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #include <stdio.h>
+  #include <time.h>
+  #include <wchar.h>
+
+#include <limits.h>
+int
+main ()
+{
+static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #include <stdio.h>
+  #include <time.h>
+  #include <wchar.h>
+
+#include <limits.h>
+int
+main ()
+{
+static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_hi=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_lo=`expr $ac_mid + 1`
+			if test $ac_lo -le $ac_mid; then
+			  ac_lo= ac_hi=
+			  break
+			fi
+			ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #include <stdio.h>
+  #include <time.h>
+  #include <wchar.h>
+
+#include <limits.h>
+int
+main ()
+{
+static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #include <stdio.h>
+  #include <time.h>
+  #include <wchar.h>
+
+#include <limits.h>
+int
+main ()
+{
+static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_lo=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_hi=`expr '(' $ac_mid ')' - 1`
+			if test $ac_mid -le $ac_hi; then
+			  ac_lo= ac_hi=
+			  break
+			fi
+			ac_mid=`expr 2 '*' $ac_mid`
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_lo= ac_hi=
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #include <stdio.h>
+  #include <time.h>
+  #include <wchar.h>
+
+#include <limits.h>
+int
+main ()
+{
+static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_hi=$ac_mid
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) result=$ac_lo;;
+'') result=unknown ;;
+esac
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #include <stdio.h>
+  #include <time.h>
+  #include <wchar.h>
+
+#include <limits.h>
+static long int longval () { return sizeof ($gltype) * CHAR_BIT; }
+static unsigned long int ulongval () { return sizeof ($gltype) * CHAR_BIT; }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    return 1;
+  if ((sizeof ($gltype) * CHAR_BIT) < 0)
+    {
+      long int i = longval ();
+      if (i != (sizeof ($gltype) * CHAR_BIT))
+	return 1;
+      fprintf (f, "%ld\n", i);
+    }
+  else
+    {
+      unsigned long int i = ulongval ();
+      if (i != (sizeof ($gltype) * CHAR_BIT))
+	return 1;
+      fprintf (f, "%lu\n", i);
+    }
+  return ferror (f) || fclose (f) != 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  result=`cat conftest.val`
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+result=unknown
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.val
+       eval gl_cv_bitsizeof_${gltype}=\$result
+
+fi
+ac_res=`eval echo '${'gl_cv_bitsizeof_${gltype}'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+    eval result=\$gl_cv_bitsizeof_${gltype}
+    if test $result = unknown; then
+                                                result=0
+    fi
+    GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    cat >>confdefs.h <<_ACEOF
+#define BITSIZEOF_${GLTYPE} $result
+_ACEOF
+
+    eval BITSIZEOF_${GLTYPE}=\$result
+  done
+
+
+
+
+
+
+
+  for gltype in sig_atomic_t wchar_t wint_t ; do
+    { echo "$as_me:$LINENO: checking whether $gltype is signed" >&5
+echo $ECHO_N "checking whether $gltype is signed... $ECHO_C" >&6; }
+if { as_var=gl_cv_type_${gltype}_signed; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #include <stdio.h>
+  #include <time.h>
+  #include <wchar.h>
+
+            int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  result=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	result=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+       eval gl_cv_type_${gltype}_signed=\$result
+
+fi
+ac_res=`eval echo '${'gl_cv_type_${gltype}_signed'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+    eval result=\$gl_cv_type_${gltype}_signed
+    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    if test "$result" = yes; then
+      cat >>confdefs.h <<_ACEOF
+#define HAVE_SIGNED_${GLTYPE} 1
+_ACEOF
+
+      eval HAVE_SIGNED_${GLTYPE}=1
+    else
+      eval HAVE_SIGNED_${GLTYPE}=0
+    fi
+  done
+
+
+  gl_cv_type_ptrdiff_t_signed=yes
+  gl_cv_type_size_t_signed=no
+
+
+
+
+
+
+
+  for gltype in ptrdiff_t sig_atomic_t size_t wchar_t wint_t ; do
+    { echo "$as_me:$LINENO: checking for $gltype integer literal suffix" >&5
+echo $ECHO_N "checking for $gltype integer literal suffix... $ECHO_C" >&6; }
+if { as_var=gl_cv_type_${gltype}_suffix; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval gl_cv_type_${gltype}_suffix=no
+       eval result=\$gl_cv_type_${gltype}_signed
+       if test "$result" = yes; then
+         glsufu=
+       else
+         glsufu=u
+       fi
+       for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do
+         case $glsuf in
+           '')  gltype1='int';;
+           l)	gltype1='long int';;
+           ll)	gltype1='long long int';;
+           i64)	gltype1='__int64';;
+           u)	gltype1='unsigned int';;
+           ul)	gltype1='unsigned long int';;
+           ull)	gltype1='unsigned long long int';;
+           ui64)gltype1='unsigned __int64';;
+         esac
+         cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #include <stdio.h>
+  #include <time.h>
+  #include <wchar.h>
+
+              extern $gltype foo;
+              extern $gltype1 foo;
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  eval gl_cv_type_${gltype}_suffix=\$glsuf
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+         eval result=\$gl_cv_type_${gltype}_suffix
+         test "$result" != no && break
+       done
+fi
+ac_res=`eval echo '${'gl_cv_type_${gltype}_suffix'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    eval result=\$gl_cv_type_${gltype}_suffix
+    test "$result" = no && result=
+    eval ${GLTYPE}_SUFFIX=\$result
+    cat >>confdefs.h <<_ACEOF
+#define ${GLTYPE}_SUFFIX $result
+_ACEOF
+
+  done
+
+
+
+    STDINT_H=stdint.h
+  fi
+
+
+
+
+    { echo "$as_me:$LINENO: checking absolute name of <stdlib.h>" >&5
+echo $ECHO_N "checking absolute name of <stdlib.h>... $ECHO_C" >&6; }
+if test "${gl_cv_absolute_stdlib_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+
+
+    if test $ac_cv_header_stdlib_h = yes; then
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+_ACEOF
+      gl_cv_absolute_stdlib_h=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+sed -n '\#/stdlib.h#{s#.*"\(.*/stdlib.h\)".*#\1#;s#^/[^/]#//&#;p;q;}'`
+    fi
+
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_absolute_stdlib_h" >&5
+echo "${ECHO_T}$gl_cv_absolute_stdlib_h" >&6; }
+cat >>confdefs.h <<_ACEOF
+#define ABSOLUTE_STDLIB_H "$gl_cv_absolute_stdlib_h"
+_ACEOF
+
+
+  ABSOLUTE_STDLIB_H=\"$gl_cv_absolute_stdlib_h\"
+
+
+
+
+for ac_func in strcspn
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+else
+  gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+fi
+done
+
+  if test $ac_cv_func_strcspn = no; then
+    :
+  fi
+
+
+
+
+
+
+
+
+
+
+
+
+  if test $ac_cv_have_decl_strndup = no; then
+    HAVE_DECL_STRNDUP=0
+  fi
+
+  # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'.
+  { echo "$as_me:$LINENO: checking for working strndup" >&5
+echo $ECHO_N "checking for working strndup... $ECHO_C" >&6; }
+if test "${gl_cv_func_strndup+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$cross_compiling" = yes; then
+  { echo "$as_me:$LINENO: checking for strndup" >&5
+echo $ECHO_N "checking for strndup... $ECHO_C" >&6; }
+if test "${ac_cv_func_strndup+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define strndup to an innocuous variant, in case <limits.h> declares strndup.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define strndup innocuous_strndup
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char strndup (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef strndup
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char strndup ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_strndup || defined __stub___strndup
+choke me
+#endif
+
+int
+main ()
+{
+return strndup ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_func_strndup=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_func_strndup=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_func_strndup" >&5
+echo "${ECHO_T}$ac_cv_func_strndup" >&6; }
+if test $ac_cv_func_strndup = yes; then
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#ifdef _AIX
+               too risky
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "too risky" >/dev/null 2>&1; then
+  gl_cv_func_strndup=no
+else
+  gl_cv_func_strndup=yes
+fi
+rm -f conftest*
+
+else
+  gl_cv_func_strndup=no
+fi
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+
+       /* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <string.h>
+		 	#include <stdlib.h>
+int
+main ()
+{
+
+#ifndef HAVE_DECL_STRNDUP
+  extern char *strndup (const char *, size_t);
+#endif
+  char *s;
+  s = strndup ("some longer string", 15);
+  free (s);
+  s = strndup ("shorter string", 13);
+  return s[13] != '\0';
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  gl_cv_func_strndup=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+gl_cv_func_strndup=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_func_strndup" >&5
+echo "${ECHO_T}$gl_cv_func_strndup" >&6; }
+  if test $gl_cv_func_strndup = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_STRNDUP 1
+_ACEOF
+
+  else
+    HAVE_STRNDUP=0
+    gl_LIBOBJS="$gl_LIBOBJS strndup.$ac_objext"
+    :
+  fi
+
+
+
+  GNULIB_STRNDUP=1
+
+
+
+
+
+
+
+
+
+  if test $ac_cv_have_decl_strnlen = no; then
+    HAVE_DECL_STRNLEN=0
+  fi
+
+  { echo "$as_me:$LINENO: checking for working strnlen" >&5
+echo $ECHO_N "checking for working strnlen... $ECHO_C" >&6; }
+if test "${ac_cv_func_strnlen_working+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_func_strnlen_working=no
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+
+#define S "foobar"
+#define S_LEN (sizeof S - 1)
+
+  /* At least one implementation is buggy: that of AIX 4.3 would
+     give strnlen (S, 1) == 3.  */
+
+  int i;
+  for (i = 0; i < S_LEN + 1; ++i)
+    {
+      int expected = i <= S_LEN ? i : S_LEN;
+      if (strnlen (S, i) != expected)
+	return 1;
+    }
+  return 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_strnlen_working=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_func_strnlen_working=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_func_strnlen_working" >&5
+echo "${ECHO_T}$ac_cv_func_strnlen_working" >&6; }
+test $ac_cv_func_strnlen_working = no && gl_LIBOBJS="$gl_LIBOBJS strnlen.$ac_objext"
+
+  if test $ac_cv_func_strnlen_working = no; then
+    # This is necessary because automake-1.6.1 doens't understand
+    # that the above use of AC_FUNC_STRNLEN means we may have to use
+    # lib/strnlen.c.
+    #AC_LIBOBJ(strnlen)
+
+cat >>confdefs.h <<\_ACEOF
+#define strnlen rpl_strnlen
+_ACEOF
+
+    :
+  fi
+
+
+
+  GNULIB_STRNLEN=1
+
+
+  { echo "$as_me:$LINENO: checking for working strtod" >&5
+echo $ECHO_N "checking for working strtod... $ECHO_C" >&6; }
+if test "${ac_cv_func_strtod+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_func_strtod=no
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+$ac_includes_default
+#ifndef strtod
+double strtod ();
+#endif
+int
+main()
+{
+  {
+    /* Some versions of Linux strtod mis-parse strings with leading '+'.  */
+    char *string = " +69";
+    char *term;
+    double value;
+    value = strtod (string, &term);
+    if (value != 69 || term != (string + 4))
+      return 1;
+  }
+
+  {
+    /* Under Solaris 2.4, strtod returns the wrong value for the
+       terminating character under some conditions.  */
+    char *string = "NaN";
+    char *term;
+    strtod (string, &term);
+    if (term != string && *(term - 1) == 0)
+      return 1;
+  }
+  return 0;
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_strtod=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_func_strtod=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_func_strtod" >&5
+echo "${ECHO_T}$ac_cv_func_strtod" >&6; }
+if test $ac_cv_func_strtod = no; then
+  gl_LIBOBJS="$gl_LIBOBJS strtod.$ac_objext"
+{ echo "$as_me:$LINENO: checking for pow" >&5
+echo $ECHO_N "checking for pow... $ECHO_C" >&6; }
+if test "${ac_cv_func_pow+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define pow to an innocuous variant, in case <limits.h> declares pow.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define pow innocuous_pow
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char pow (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef pow
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pow ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_pow || defined __stub___pow
+choke me
+#endif
+
+int
+main ()
+{
+return pow ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_func_pow=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_func_pow=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_func_pow" >&5
+echo "${ECHO_T}$ac_cv_func_pow" >&6; }
+
+if test $ac_cv_func_pow = no; then
+  { echo "$as_me:$LINENO: checking for pow in -lm" >&5
+echo $ECHO_N "checking for pow in -lm... $ECHO_C" >&6; }
+if test "${ac_cv_lib_m_pow+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pow ();
+int
+main ()
+{
+return pow ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_m_pow=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_m_pow=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_m_pow" >&5
+echo "${ECHO_T}$ac_cv_lib_m_pow" >&6; }
+if test $ac_cv_lib_m_pow = yes; then
+  POW_LIB=-lm
+else
+  { echo "$as_me:$LINENO: WARNING: cannot find library containing definition of pow" >&5
+echo "$as_me: WARNING: cannot find library containing definition of pow" >&2;}
+fi
+
+fi
+
+fi
+
+    if test $ac_cv_func_strtod = no; then
+
+cat >>confdefs.h <<\_ACEOF
+#define strtod rpl_strtod
+_ACEOF
+
+    :
+  fi
+
+
+
+for ac_func in strtol
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+else
+  gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+fi
+done
+
+
+
+
+
+
+
+
+
+
+
+  if test $ac_cv_header_unistd_h = yes; then
+    HAVE_UNISTD_H=1
+      { echo "$as_me:$LINENO: checking absolute name of <unistd.h>" >&5
+echo $ECHO_N "checking absolute name of <unistd.h>... $ECHO_C" >&6; }
+if test "${gl_cv_absolute_unistd_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+
+
+    if test $ac_cv_header_unistd_h = yes; then
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <unistd.h>
+_ACEOF
+      gl_cv_absolute_unistd_h=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+sed -n '\#/unistd.h#{s#.*"\(.*/unistd.h\)".*#\1#;s#^/[^/]#//&#;p;q;}'`
+    fi
+
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_absolute_unistd_h" >&5
+echo "${ECHO_T}$gl_cv_absolute_unistd_h" >&6; }
+cat >>confdefs.h <<_ACEOF
+#define ABSOLUTE_UNISTD_H "$gl_cv_absolute_unistd_h"
+_ACEOF
+
+
+    ABSOLUTE_UNISTD_H=\"$gl_cv_absolute_unistd_h\"
+  else
+    HAVE_UNISTD_H=0
+  fi
+
+
+
+
+
+  if test $ac_cv_func_utime_null = no; then
+    gl_LIBOBJS="$gl_LIBOBJS utime.$ac_objext"
+
+cat >>confdefs.h <<\_ACEOF
+#define utime rpl_utime
+_ACEOF
+
+
+
+
+
+
+
+
+
+  { echo "$as_me:$LINENO: checking whether utimes accepts a null argument" >&5
+echo $ECHO_N "checking whether utimes accepts a null argument... $ECHO_C" >&6; }
+if test "${ac_cv_func_utimes_null+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  rm -f conftest.data; > conftest.data
+if test "$cross_compiling" = yes; then
+  ac_cv_func_utimes_null=no
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* In case stat has been defined to rpl_stat, undef it here.  */
+#undef stat
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+int
+main () {
+struct stat s, t;
+return ! (stat ("conftest.data", &s) == 0
+	  && utimes ("conftest.data", 0) == 0
+	  && stat ("conftest.data", &t) == 0
+	  && t.st_mtime >= s.st_mtime
+	  && t.st_mtime - s.st_mtime < 120));
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_utimes_null=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_func_utimes_null=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+rm -f core core.* *.core
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_func_utimes_null" >&5
+echo "${ECHO_T}$ac_cv_func_utimes_null" >&6; }
+
+    if test $ac_cv_func_utimes_null = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_UTIMES_NULL 1
+_ACEOF
+
+    fi
+
+
+
+  fi
+
+
+  { echo "$as_me:$LINENO: checking whether <wchar.h> is standalone" >&5
+echo $ECHO_N "checking whether <wchar.h> is standalone... $ECHO_C" >&6; }
+if test "${gl_cv_header_wchar_h_standalone+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#include <wchar.h>
+wchar_t w;
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  gl_cv_header_wchar_h_standalone=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	gl_cv_header_wchar_h_standalone=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_header_wchar_h_standalone" >&5
+echo "${ECHO_T}$gl_cv_header_wchar_h_standalone" >&6; }
+  if test $gl_cv_header_wchar_h_standalone = yes; then
+    WCHAR_H=
+  else
+      { echo "$as_me:$LINENO: checking absolute name of <wchar.h>" >&5
+echo $ECHO_N "checking absolute name of <wchar.h>... $ECHO_C" >&6; }
+if test "${gl_cv_absolute_wchar_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+
+
+    if test $ac_cv_header_wchar_h = yes; then
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <wchar.h>
+_ACEOF
+      gl_cv_absolute_wchar_h=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+sed -n '\#/wchar.h#{s#.*"\(.*/wchar.h\)".*#\1#;s#^/[^/]#//&#;p;q;}'`
+    fi
+
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_absolute_wchar_h" >&5
+echo "${ECHO_T}$gl_cv_absolute_wchar_h" >&6; }
+cat >>confdefs.h <<_ACEOF
+#define ABSOLUTE_WCHAR_H "$gl_cv_absolute_wchar_h"
+_ACEOF
+
+
+    ABSOLUTE_WCHAR_H=\"$gl_cv_absolute_wchar_h\"
+    WCHAR_H=wchar.h
+  fi
+
+
+
+
+
+
+
+
+
+
+  if test $ac_cv_func_iswcntrl = yes; then
+    HAVE_ISWCNTRL=1
+  else
+    HAVE_ISWCNTRL=0
+  fi
+
+
+
+
+
+
+
+
+
+
+  if test $gt_cv_c_wint_t = yes; then
+    HAVE_WINT_T=1
+  else
+    HAVE_WINT_T=0
+  fi
+
+
+  WCTYPE_H=wctype.h
+  if test $ac_cv_header_wctype_h = yes; then
+    if test $ac_cv_func_iswcntrl = yes; then
+      WCTYPE_H=
+    fi
+              { echo "$as_me:$LINENO: checking absolute name of <wctype.h>" >&5
+echo $ECHO_N "checking absolute name of <wctype.h>... $ECHO_C" >&6; }
+if test "${gl_cv_absolute_wctype_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+
+
+    if test $ac_cv_header_wctype_h = yes; then
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <wctype.h>
+_ACEOF
+      gl_cv_absolute_wctype_h=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+sed -n '\#/wctype.h#{s#.*"\(.*/wctype.h\)".*#\1#;s#^/[^/]#//&#;p;q;}'`
+    fi
+
+fi
+{ echo "$as_me:$LINENO: result: $gl_cv_absolute_wctype_h" >&5
+echo "${ECHO_T}$gl_cv_absolute_wctype_h" >&6; }
+cat >>confdefs.h <<_ACEOF
+#define ABSOLUTE_WCTYPE_H "$gl_cv_absolute_wctype_h"
+_ACEOF
+
+
+    ABSOLUTE_WCTYPE_H=\"$gl_cv_absolute_wctype_h\"
+    HAVE_WCTYPE_H=1
+  else
+    ABSOLUTE_WCTYPE_H=\"no/such/file/wctype.h\"
+    HAVE_WCTYPE_H=0
+  fi
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS xmalloc.$ac_objext"
+
+
+
+  :
+
+
+  :
+
+
+
+
+  :
+
+
+
+
+
+
+
+
+{ echo "$as_me:$LINENO: checking for off_t" >&5
+echo $ECHO_N "checking for off_t... $ECHO_C" >&6; }
+if test "${ac_cv_type_off_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+	#include <stdio.h>
+	#include <sys/types.h>
+	#include <unistd.h>
+
+
+typedef off_t ac__type_new_;
+int
+main ()
+{
+if ((ac__type_new_ *) 0)
+  return 0;
+if (sizeof (ac__type_new_))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_type_off_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_type_off_t=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5
+echo "${ECHO_T}$ac_cv_type_off_t" >&6; }
+
+# 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.
+{ echo "$as_me:$LINENO: checking size of off_t" >&5
+echo $ECHO_N "checking size of off_t... $ECHO_C" >&6; }
+if test "${ac_cv_sizeof_off_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$cross_compiling" = yes; then
+  # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+	#include <stdio.h>
+	#include <sys/types.h>
+	#include <unistd.h>
+
+
+   typedef off_t ac__type_sizeof_;
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+	#include <stdio.h>
+	#include <sys/types.h>
+	#include <unistd.h>
+
+
+   typedef off_t ac__type_sizeof_;
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_hi=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_lo=`expr $ac_mid + 1`
+			if test $ac_lo -le $ac_mid; then
+			  ac_lo= ac_hi=
+			  break
+			fi
+			ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+	#include <stdio.h>
+	#include <sys/types.h>
+	#include <unistd.h>
+
+
+   typedef off_t ac__type_sizeof_;
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+	#include <stdio.h>
+	#include <sys/types.h>
+	#include <unistd.h>
+
+
+   typedef off_t ac__type_sizeof_;
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_lo=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_hi=`expr '(' $ac_mid ')' - 1`
+			if test $ac_mid -le $ac_hi; then
+			  ac_lo= ac_hi=
+			  break
+			fi
+			ac_mid=`expr 2 '*' $ac_mid`
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_lo= ac_hi=
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+	#include <stdio.h>
+	#include <sys/types.h>
+	#include <unistd.h>
+
+
+   typedef off_t ac__type_sizeof_;
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_hi=$ac_mid
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_off_t=$ac_lo;;
+'') if test "$ac_cv_type_off_t" = yes; then
+     { { echo "$as_me:$LINENO: error: cannot compute sizeof (off_t)
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (off_t)
+See \`config.log' for more details." >&2;}
+   { (exit 77); exit 77; }; }
+   else
+     ac_cv_sizeof_off_t=0
+   fi ;;
+esac
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+	#include <stdio.h>
+	#include <sys/types.h>
+	#include <unistd.h>
+
+
+   typedef off_t ac__type_sizeof_;
+static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); }
+static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    return 1;
+  if (((long int) (sizeof (ac__type_sizeof_))) < 0)
+    {
+      long int i = longval ();
+      if (i != ((long int) (sizeof (ac__type_sizeof_))))
+	return 1;
+      fprintf (f, "%ld\n", i);
+    }
+  else
+    {
+      unsigned long int i = ulongval ();
+      if (i != ((long int) (sizeof (ac__type_sizeof_))))
+	return 1;
+      fprintf (f, "%lu\n", i);
+    }
+  return ferror (f) || fclose (f) != 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sizeof_off_t=`cat conftest.val`
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+if test "$ac_cv_type_off_t" = yes; then
+     { { echo "$as_me:$LINENO: error: cannot compute sizeof (off_t)
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (off_t)
+See \`config.log' for more details." >&2;}
+   { (exit 77); exit 77; }; }
+   else
+     ac_cv_sizeof_off_t=0
+   fi
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.val
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_sizeof_off_t" >&5
+echo "${ECHO_T}$ac_cv_sizeof_off_t" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_OFF_T $ac_cv_sizeof_off_t
+_ACEOF
+
+
+
+# Check whether --enable-shared was given.
+if test "${enable_shared+set}" = set; then
+  enableval=$enable_shared; p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_shared=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  enable_shared=yes
+fi
+
+
+if test "$OS" = linux -a $ac_cv_sizeof_off_t -lt 8; then
+					{ echo "$as_me:$LINENO: WARNING: off_t is less than 8 bytes.  Using llseek syscall" >&5
+echo "$as_me: WARNING: off_t is less than 8 bytes.  Using llseek syscall" >&2;}
+	# Check whether --enable-shared was given.
+if test "${enable_shared+set}" = set; then
+  enableval=$enable_shared; p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_shared=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  enable_shared=no
+fi
+
+
+
+fi
+# Check whether --enable-static was given.
+if test "${enable_static+set}" = set; then
+  enableval=$enable_static; p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_static=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  enable_static=yes
+fi
+
+
+# Check whether --enable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then
+  enableval=$enable_fast_install; p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_fast_install=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  enable_fast_install=yes
+fi
+
+
+{ echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
+echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; }
+if test "${lt_cv_path_SED+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for lt_ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+      fi
+    done
+  done
+done
+IFS=$as_save_IFS
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+  test ! -f $lt_ac_sed && continue
+  cat /dev/null > conftest.in
+  lt_ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+  # Check for GNU sed and select it if it is found.
+  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+    lt_cv_path_SED=$lt_ac_sed
+    break
+  fi
+  while true; do
+    cat conftest.in conftest.in >conftest.tmp
+    mv conftest.tmp conftest.in
+    cp conftest.in conftest.nl
+    echo >>conftest.nl
+    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+    cmp -s conftest.out conftest.nl || break
+    # 10000 chars as input seems more than enough
+    test $lt_ac_count -gt 10 && break
+    lt_ac_count=`expr $lt_ac_count + 1`
+    if test $lt_ac_count -gt $lt_ac_max; then
+      lt_ac_max=$lt_ac_count
+      lt_cv_path_SED=$lt_ac_sed
+    fi
+  done
+done
+
+fi
+
+SED=$lt_cv_path_SED
+
+{ echo "$as_me:$LINENO: result: $SED" >&5
+echo "${ECHO_T}$SED" >&6; }
+
+
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else
+  with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  { echo "$as_me:$LINENO: checking for ld used by $CC" >&5
+echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; }
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [\\/]* | ?:[\\/]*)
+      re_direlt='/[^/][^/]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  { echo "$as_me:$LINENO: checking for GNU ld" >&5
+echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; }
+else
+  { echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; }
+fi
+if test "${lt_cv_path_LD+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  { echo "$as_me:$LINENO: result: $LD" >&5
+echo "${ECHO_T}$LD" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
+echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
+   { (exit 1); exit 1; }; }
+{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; }
+if test "${lt_cv_prog_gnu_ld+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac
+fi
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+{ echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
+echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6; }
+if test "${lt_cv_ld_reload_flag+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_ld_reload_flag='-r'
+fi
+{ echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
+echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6; }
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+  darwin*)
+    if test "$GCC" = yes; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+    else
+      reload_cmds='$LD$reload_flag -o $output$reload_objs'
+    fi
+    ;;
+esac
+
+{ echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
+echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6; }
+if test "${lt_cv_path_NM+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_nm_to_check="${ac_tool_prefix}nm"
+  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+    lt_nm_to_check="$lt_nm_to_check nm"
+  fi
+  for lt_tmp_nm in $lt_nm_to_check; do
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+      IFS="$lt_save_ifs"
+      test -z "$ac_dir" && ac_dir=.
+      tmp_nm="$ac_dir/$lt_tmp_nm"
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+	# Check to see if the nm accepts a BSD-compat flag.
+	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
+	#   nm: unknown option "B" ignored
+	# Tru64's nm complains that /dev/null is an invalid object file
+	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+	*/dev/null* | *'Invalid file or object type'*)
+	  lt_cv_path_NM="$tmp_nm -B"
+	  break
+	  ;;
+	*)
+	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	  */dev/null*)
+	    lt_cv_path_NM="$tmp_nm -p"
+	    break
+	    ;;
+	  *)
+	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	    continue # so that we can try to find one that supports BSD flags
+	    ;;
+	  esac
+	  ;;
+	esac
+      fi
+    done
+    IFS="$lt_save_ifs"
+  done
+  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
+fi
+fi
+{ echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
+echo "${ECHO_T}$lt_cv_path_NM" >&6; }
+NM="$lt_cv_path_NM"
+
+{ echo "$as_me:$LINENO: checking whether ln -s works" >&5
+echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+  { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no, using $LN_S" >&5
+echo "${ECHO_T}no, using $LN_S" >&6; }
+fi
+
+{ echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5
+echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6; }
+if test "${lt_cv_deplibs_check_method+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix4* | aix5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi[45]*)
+  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin*)
+  # func_win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='func_win32_libid'
+  ;;
+
+mingw* | pw32*)
+  # Base MSYS/MinGW do not provide the 'file' command needed by
+  # func_win32_libid shell function, so use a weaker test based on 'objdump'.
+  lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+  lt_cv_file_magic_cmd='$OBJDUMP -f'
+  ;;
+
+darwin* | rhapsody*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | kfreebsd*-gnu | dragonfly*)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case $host_cpu in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+interix3*)
+  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+  lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $LD in
+  *-32|*"-32 ") libmagic=32-bit;;
+  *-n32|*"-n32 ") libmagic=N32;;
+  *-64|*"-64 ") libmagic=64-bit;;
+  *) libmagic=never-match;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+netbsd*)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+nto-qnx*)
+  lt_cv_deplibs_check_method=unknown
+  ;;
+
+openbsd*)
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv4 | sysv4.3*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  pc)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+
+fi
+{ echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
+echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6; }
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+# Check whether --enable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then
+  enableval=$enable_libtool_lock;
+fi
+
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *ELF-32*)
+      HPUX_IA64_MODE="32"
+      ;;
+    *ELF-64*)
+      HPUX_IA64_MODE="64"
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '#line 17567 "configure"' > conftest.$ac_ext
+  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+   if test "$lt_cv_prog_gnu_ld" = yes; then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -melf32bsmip"
+      ;;
+    *N32*)
+      LD="${LD-ld} -melf32bmipn32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -melf64bmip"
+      ;;
+    esac
+   else
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -32"
+      ;;
+    *N32*)
+      LD="${LD-ld} -n32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -64"
+      ;;
+    esac
+   fi
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+    case `/usr/bin/file conftest.o` in
+    *32-bit*)
+      case $host in
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_i386"
+          ;;
+        ppc64-*linux*|powerpc64-*linux*)
+          LD="${LD-ld} -m elf32ppclinux"
+          ;;
+        s390x-*linux*)
+          LD="${LD-ld} -m elf_s390"
+          ;;
+        sparc64-*linux*)
+          LD="${LD-ld} -m elf32_sparc"
+          ;;
+      esac
+      ;;
+    *64-bit*)
+      case $host in
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        ppc*-*linux*|powerpc*-*linux*)
+          LD="${LD-ld} -m elf64ppc"
+          ;;
+        s390*-*linux*)
+          LD="${LD-ld} -m elf64_s390"
+          ;;
+        sparc*-*linux*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  { echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
+echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6; }
+if test "${lt_cv_cc_needs_belf+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+     cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  lt_cv_cc_needs_belf=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	lt_cv_cc_needs_belf=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+     ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+{ echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
+echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; }
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
+  fi
+  ;;
+sparc*-*solaris*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+    case `/usr/bin/file conftest.o` in
+    *64-bit*)
+      case $lt_cv_prog_gnu_ld in
+      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      *)    LD="${LD-ld} -64" ;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+
+esac
+
+need_locks="$enable_libtool_lock"
+
+
+
+for ac_header in dlfcn.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    ( cat <<\_ASBOX
+## --------------------------------- ##
+## Report this to bug-parted@gnu.org ##
+## --------------------------------- ##
+_ASBOX
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -z "$CXX"; then
+  if test -n "$CCC"; then
+    CXX=$CCC
+  else
+    if test -n "$ac_tool_prefix"; then
+  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CXX"; then
+  ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+  { echo "$as_me:$LINENO: result: $CXX" >&5
+echo "${ECHO_T}$CXX" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+    test -n "$CXX" && break
+  done
+fi
+if test -z "$CXX"; then
+  ac_ct_CXX=$CXX
+  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CXX"; then
+  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_prog_ac_ct_CXX="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+  { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
+echo "${ECHO_T}$ac_ct_CXX" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CXX" && break
+done
+
+  if test "x$ac_ct_CXX" = x; then
+    CXX="g++"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    CXX=$ac_ct_CXX
+  fi
+fi
+
+  fi
+fi
+# Provide some information about the compiler.
+echo "$as_me:$LINENO: checking for C++ compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (ac_try="$ac_compiler --version >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler --version >&5") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (ac_try="$ac_compiler -v >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler -v >&5") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (ac_try="$ac_compiler -V >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler -V >&5") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+
+{ echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; }
+if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_compiler_gnu=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_compiler_gnu=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; }
+GXX=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+{ echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
+echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; }
+if test "${ac_cv_prog_cxx_g+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
+   ac_cxx_werror_flag=yes
+   ac_cv_prog_cxx_g=no
+   CXXFLAGS="-g"
+   cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cxx_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	CXXFLAGS=""
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+	 CXXFLAGS="-g"
+	 cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cxx_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6; }
+if test "$ac_test_CXXFLAGS" = set; then
+  CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+  if test "$GXX" = yes; then
+    CXXFLAGS="-g -O2"
+  else
+    CXXFLAGS="-g"
+  fi
+else
+  if test "$GXX" = yes; then
+    CXXFLAGS="-O2"
+  else
+    CXXFLAGS=
+  fi
+fi
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+depcc="$CXX"  am_compiler_list=
+
+{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; }
+if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_CXX_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+      # Solaris 8's {/usr,}/bin/sh.
+      touch sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    case $depmode in
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    none) break ;;
+    esac
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.
+    if depmode=$depmode \
+       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CXX_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CXX_dependencies_compiler_type=none
+fi
+
+fi
+{ echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5
+echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; }
+CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
+
+ if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
+  am__fastdepCXX_TRUE=
+  am__fastdepCXX_FALSE='#'
+else
+  am__fastdepCXX_TRUE='#'
+  am__fastdepCXX_FALSE=
+fi
+
+
+
+
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+    (test "X$CXX" != "Xg++"))) ; then
+  ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+{ echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
+echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6; }
+if test -z "$CXXCPP"; then
+  if test "${ac_cv_prog_CXXCPP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+      # Double quotes because CXXCPP needs to be expanded
+    for CXXCPP in "$CXX -E" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  break
+fi
+
+    done
+    ac_cv_prog_CXXCPP=$CXXCPP
+
+fi
+  CXXCPP=$ac_cv_prog_CXXCPP
+else
+  ac_cv_prog_CXXCPP=$CXXCPP
+fi
+{ echo "$as_me:$LINENO: result: $CXXCPP" >&5
+echo "${ECHO_T}$CXXCPP" >&6; }
+ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  :
+else
+  { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+fi
+
+
+ac_ext=f
+ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
+ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_f77_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_F77+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$F77"; then
+  ac_cv_prog_F77="$F77" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_prog_F77="$ac_tool_prefix$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+F77=$ac_cv_prog_F77
+if test -n "$F77"; then
+  { echo "$as_me:$LINENO: result: $F77" >&5
+echo "${ECHO_T}$F77" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+    test -n "$F77" && break
+  done
+fi
+if test -z "$F77"; then
+  ac_ct_F77=$F77
+  for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_ac_ct_F77+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_F77"; then
+  ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_prog_ac_ct_F77="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_F77=$ac_cv_prog_ac_ct_F77
+if test -n "$ac_ct_F77"; then
+  { echo "$as_me:$LINENO: result: $ac_ct_F77" >&5
+echo "${ECHO_T}$ac_ct_F77" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+  test -n "$ac_ct_F77" && break
+done
+
+  if test "x$ac_ct_F77" = x; then
+    F77=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    F77=$ac_ct_F77
+  fi
+fi
+
+
+# Provide some information about the compiler.
+echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (ac_try="$ac_compiler --version >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler --version >&5") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (ac_try="$ac_compiler -v >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler -v >&5") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (ac_try="$ac_compiler -V >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler -V >&5") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+rm -f a.out
+
+# If we don't use `.F' as extension, the preprocessor is not run on the
+# input file.  (Note that this only needs to work for GNU compilers.)
+ac_save_ext=$ac_ext
+ac_ext=F
+{ echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6; }
+if test "${ac_cv_f77_compiler_gnu+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+      program main
+#ifndef __GNUC__
+       choke me
+#endif
+
+      end
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_f77_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_compiler_gnu=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_compiler_gnu=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_f77_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6; }
+ac_ext=$ac_save_ext
+ac_test_FFLAGS=${FFLAGS+set}
+ac_save_FFLAGS=$FFLAGS
+FFLAGS=
+{ echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5
+echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6; }
+if test "${ac_cv_prog_f77_g+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  FFLAGS=-g
+cat >conftest.$ac_ext <<_ACEOF
+      program main
+
+      end
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_f77_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_f77_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_prog_f77_g=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5
+echo "${ECHO_T}$ac_cv_prog_f77_g" >&6; }
+if test "$ac_test_FFLAGS" = set; then
+  FFLAGS=$ac_save_FFLAGS
+elif test $ac_cv_prog_f77_g = yes; then
+  if test "x$ac_cv_f77_compiler_gnu" = xyes; then
+    FFLAGS="-g -O2"
+  else
+    FFLAGS="-g"
+  fi
+else
+  if test "x$ac_cv_f77_compiler_gnu" = xyes; then
+    FFLAGS="-O2"
+  else
+    FFLAGS=
+  fi
+fi
+
+G77=`test $ac_compiler_gnu = yes && echo yes`
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
+
+# find the maximum length of command line arguments
+{ echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
+echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; }
+if test "${lt_cv_sys_max_cmd_len+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+    i=0
+  teststring="ABCD"
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  amigaos*)
+    # On AmigaOS with pdksh, this test takes hours, literally.
+    # So we just punt and use a minimum line length of 8192.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+    # This has been around since 386BSD, at least.  Likely further.
+    if test -x /sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+    elif test -x /usr/sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+    else
+      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
+    fi
+    # And add a safety zone
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    ;;
+
+  interix*)
+    # We know the value 262144 and hardcode it with a safety zone (like BSD)
+    lt_cv_sys_max_cmd_len=196608
+    ;;
+
+  osf*)
+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+    # nice to cause kernel panics so lets avoid the loop below.
+    # First set a reasonable default.
+    lt_cv_sys_max_cmd_len=16384
+    #
+    if test -x /sbin/sysconfig; then
+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+      esac
+    fi
+    ;;
+  sco3.2v5*)
+    lt_cv_sys_max_cmd_len=102400
+    ;;
+  sysv5* | sco5v6* | sysv4.2uw2*)
+    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+    if test -n "$kargmax"; then
+      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ 	]//'`
+    else
+      lt_cv_sys_max_cmd_len=32768
+    fi
+    ;;
+  *)
+    # If test is not a shell built-in, we'll probably end up computing a
+    # maximum length that is only half of the actual maximum length, but
+    # we can't tell.
+    SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+    while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \
+	       = "XX$teststring") >/dev/null 2>&1 &&
+	    new_result=`expr "X$teststring" : ".*" 2>&1` &&
+	    lt_cv_sys_max_cmd_len=$new_result &&
+	    test $i != 17 # 1/2 MB should be enough
+    do
+      i=`expr $i + 1`
+      teststring=$teststring$teststring
+    done
+    teststring=
+    # Add a significant safety factor because C++ compilers can tack on massive
+    # amounts of additional arguments before passing them to the linker.
+    # It appears as though 1/2 is a usable value.
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    ;;
+  esac
+
+fi
+
+if test -n $lt_cv_sys_max_cmd_len ; then
+  { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
+echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; }
+else
+  { echo "$as_me:$LINENO: result: none" >&5
+echo "${ECHO_T}none" >&6; }
+fi
+
+
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+{ echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
+echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; }
+if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Transform an extracted symbol line into a proper C declaration
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[BCDT]'
+  ;;
+cygwin* | mingw* | pw32*)
+  symcode='[ABCDGISTW]'
+  ;;
+hpux*) # Its linker distinguishes data from code symbols
+  if test "$host_cpu" = ia64; then
+    symcode='[ABCDEGRST]'
+  fi
+  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+  ;;
+linux*)
+  if test "$host_cpu" = ia64; then
+    symcode='[ABCDGIRSTW]'
+    lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+    lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+  fi
+  ;;
+irix* | nonstopux*)
+  symcode='[BCDEGRST]'
+  ;;
+osf*)
+  symcode='[BCDEGQRST]'
+  ;;
+solaris*)
+  symcode='[BDRT]'
+  ;;
+sco3.2v5*)
+  symcode='[DT]'
+  ;;
+sysv4.2uw2*)
+  symcode='[DT]'
+  ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+  symcode='[ABDT]'
+  ;;
+sysv4)
+  symcode='[DFNSTU]'
+  ;;
+esac
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[ABCDGIRSTW]' ;;
+esac
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+  symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+  # Write the raw and C identifiers.
+  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ 	]\($symcode$symcode*\)[ 	][ 	]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
+  (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+	mv -f "$nlist"T "$nlist"
+      else
+	rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if grep ' nm_test_var$' "$nlist" >/dev/null; then
+	if grep ' nm_test_func$' "$nlist" >/dev/null; then
+	  cat <<EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+	  # Now generate the symbol file.
+	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
+
+	  cat <<EOF >> conftest.$ac_ext
+#if defined (__STDC__) && __STDC__
+# define lt_ptr_t void *
+#else
+# define lt_ptr_t char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+  const char *name;
+  lt_ptr_t address;
+}
+lt_preloaded_symbols[] =
+{
+EOF
+	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
+	  cat <<\EOF >> conftest.$ac_ext
+  {0, (lt_ptr_t) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+	  # Now try linking the two files.
+	  mv conftest.$ac_objext conftstm.$ac_objext
+	  lt_save_LIBS="$LIBS"
+	  lt_save_CFLAGS="$CFLAGS"
+	  LIBS="conftstm.$ac_objext"
+	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+	  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest${ac_exeext}; then
+	    pipe_works=yes
+	  fi
+	  LIBS="$lt_save_LIBS"
+	  CFLAGS="$lt_save_CFLAGS"
+	else
+	  echo "cannot find nm_test_func in $nlist" >&5
+	fi
+      else
+	echo "cannot find nm_test_var in $nlist" >&5
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+    fi
+  else
+    echo "$progname: failed program was:" >&5
+    cat conftest.$ac_ext >&5
+  fi
+  rm -f conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test "$pipe_works" = yes; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  { echo "$as_me:$LINENO: result: failed" >&5
+echo "${ECHO_T}failed" >&6; }
+else
+  { echo "$as_me:$LINENO: result: ok" >&5
+echo "${ECHO_T}ok" >&6; }
+fi
+
+{ echo "$as_me:$LINENO: checking for objdir" >&5
+echo $ECHO_N "checking for objdir... $ECHO_C" >&6; }
+if test "${lt_cv_objdir+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+{ echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
+echo "${ECHO_T}$lt_cv_objdir" >&6; }
+objdir=$lt_cv_objdir
+
+
+
+
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e 1s/^X//'
+sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Constants:
+rm="rm -f"
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+ltmain="$ac_aux_dir/ltmain.sh"
+ofile="$default_ofile"
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_AR+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$AR"; then
+  ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_prog_AR="${ac_tool_prefix}ar"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+  { echo "$as_me:$LINENO: result: $AR" >&5
+echo "${ECHO_T}$AR" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+  ac_ct_AR=$AR
+  # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_AR"; then
+  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_prog_ac_ct_AR="ar"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+  { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
+echo "${ECHO_T}$ac_ct_AR" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+  if test "x$ac_ct_AR" = x; then
+    AR="false"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    AR=$ac_ct_AR
+  fi
+else
+  AR="$ac_cv_prog_AR"
+fi
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_RANLIB+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+  { echo "$as_me:$LINENO: result: $RANLIB" >&5
+echo "${ECHO_T}$RANLIB" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+  ac_ct_RANLIB=$RANLIB
+  # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_RANLIB"; then
+  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_prog_ac_ct_RANLIB="ranlib"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+  { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+echo "${ECHO_T}$ac_ct_RANLIB" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+  if test "x$ac_ct_RANLIB" = x; then
+    RANLIB=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    RANLIB=$ac_ct_RANLIB
+  fi
+else
+  RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_STRIP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+  { echo "$as_me:$LINENO: result: $STRIP" >&5
+echo "${ECHO_T}$STRIP" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+  ac_ct_STRIP=$STRIP
+  # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_STRIP"; then
+  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_prog_ac_ct_STRIP="strip"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+  { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+echo "${ECHO_T}$ac_ct_STRIP" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+  if test "x$ac_ct_STRIP" = x; then
+    STRIP=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    STRIP=$ac_ct_STRIP
+  fi
+else
+  STRIP="$ac_cv_prog_STRIP"
+fi
+
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$AS" && AS=as
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$LD" && LD=ld
+test -z "$LN_S" && LN_S="ln -s"
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+test -z "$NM" && NM=nm
+test -z "$SED" && SED=sed
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$RANLIB" && RANLIB=:
+test -z "$STRIP" && STRIP=:
+test -z "$ac_objext" && ac_objext=o
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  openbsd*)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    ;;
+  *)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+# Only perform the check for file, if the check method requires it
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    { echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
+echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6; }
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $MAGIC_CMD in
+[\\/*] |  ?:[\\/]*)
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/${ac_tool_prefix}file; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+echo "${ECHO_T}$MAGIC_CMD" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    { echo "$as_me:$LINENO: checking for file" >&5
+echo $ECHO_N "checking for file... $ECHO_C" >&6; }
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $MAGIC_CMD in
+[\\/*] |  ?:[\\/]*)
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/file; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/file"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+echo "${ECHO_T}$MAGIC_CMD" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+  else
+    MAGIC_CMD=:
+  fi
+fi
+
+  fi
+  ;;
+esac
+
+enable_dlopen=no
+enable_win32_dll=no
+
+# Check whether --enable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then
+  enableval=$enable_libtool_lock;
+fi
+
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+
+# Check whether --with-pic was given.
+if test "${with_pic+set}" = set; then
+  withval=$with_pic; pic_mode="$withval"
+else
+  pic_mode=default
+fi
+
+test -z "$pic_mode" && pic_mode=default
+
+# Use C for the default configuration in the libtool script
+tagname=
+lt_save_CC="$CC"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}\n'
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
+
+lt_prog_compiler_no_builtin_flag=
+
+if test "$GCC" = yes; then
+  lt_prog_compiler_no_builtin_flag=' -fno-builtin'
+
+
+{ echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; }
+if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_rtti_exceptions=no
+  ac_outfile=conftest.$ac_objext
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="-fno-rtti -fno-exceptions"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:19824: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:19828: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_rtti_exceptions=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+    lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+    :
+fi
+
+fi
+
+lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+
+{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
+
+  if test "$GCC" = yes; then
+    lt_prog_compiler_wl='-Wl,'
+    lt_prog_compiler_static='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+      ;;
+
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic='-DDLL_EXPORT'
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic='-fno-common'
+      ;;
+
+    interix3*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      lt_prog_compiler_can_build_shared=no
+      enable_shared=no
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic=-Kconform_pic
+      fi
+      ;;
+
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic='-fPIC'
+	;;
+      esac
+      ;;
+
+    *)
+      lt_prog_compiler_pic='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      lt_prog_compiler_wl='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static='-Bstatic'
+      else
+	lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+      darwin*)
+        # PIC is the default on this platform
+        # Common symbols not allowed in MH_DYLIB files
+       case $cc_basename in
+         xlc*)
+         lt_prog_compiler_pic='-qnocommon'
+         lt_prog_compiler_wl='-Wl,'
+         ;;
+       esac
+       ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic='-DDLL_EXPORT'
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      lt_prog_compiler_wl='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      lt_prog_compiler_static='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      lt_prog_compiler_wl='-Wl,'
+      # PIC (with -KPIC) is the default.
+      lt_prog_compiler_static='-non_shared'
+      ;;
+
+    newsos6)
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    linux*)
+      case $cc_basename in
+      icc* | ecc*)
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='-KPIC'
+	lt_prog_compiler_static='-static'
+        ;;
+      pgcc* | pgf77* | pgf90* | pgf95*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='-fpic'
+	lt_prog_compiler_static='-Bstatic'
+        ;;
+      ccc*)
+        lt_prog_compiler_wl='-Wl,'
+        # All Alpha code is PIC.
+        lt_prog_compiler_static='-non_shared'
+        ;;
+      esac
+      ;;
+
+    osf3* | osf4* | osf5*)
+      lt_prog_compiler_wl='-Wl,'
+      # All OSF/1 code is PIC.
+      lt_prog_compiler_static='-non_shared'
+      ;;
+
+    solaris*)
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95*)
+	lt_prog_compiler_wl='-Qoption ld ';;
+      *)
+	lt_prog_compiler_wl='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      lt_prog_compiler_wl='-Qoption ld '
+      lt_prog_compiler_pic='-PIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	lt_prog_compiler_pic='-Kconform_pic'
+	lt_prog_compiler_static='-Bstatic'
+      fi
+      ;;
+
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    unicos*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_can_build_shared=no
+      ;;
+
+    uts4*)
+      lt_prog_compiler_pic='-pic'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    *)
+      lt_prog_compiler_can_build_shared=no
+      ;;
+    esac
+  fi
+
+{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic" >&6; }
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+
+{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; }
+if test "${lt_prog_compiler_pic_works+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_pic_works=no
+  ac_outfile=conftest.$ac_objext
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:20092: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:20096: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_prog_compiler_pic_works=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6; }
+
+if test x"$lt_prog_compiler_pic_works" = xyes; then
+    case $lt_prog_compiler_pic in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+     esac
+else
+    lt_prog_compiler_pic=
+     lt_prog_compiler_can_build_shared=no
+fi
+
+fi
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic=
+    ;;
+  *)
+    lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+    ;;
+esac
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
+{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
+if test "${lt_prog_compiler_static_works+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_static_works=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+   printf "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_prog_compiler_static_works=yes
+       fi
+     else
+       lt_prog_compiler_static_works=yes
+     fi
+   fi
+   $rm conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5
+echo "${ECHO_T}$lt_prog_compiler_static_works" >&6; }
+
+if test x"$lt_prog_compiler_static_works" = xyes; then
+    :
+else
+    lt_prog_compiler_static=
+fi
+
+
+{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
+if test "${lt_cv_prog_compiler_c_o+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_c_o=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:20196: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:20200: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o=yes
+     fi
+   fi
+   chmod u+w . 2>&5
+   $rm conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+   $rm out/* && rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+
+fi
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; }
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  { echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6; }
+  if test "$hard_links" = no; then
+    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+
+{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
+
+  runpath_var=
+  allow_undefined_flag=
+  enable_shared_with_static_runtimes=no
+  archive_cmds=
+  archive_expsym_cmds=
+  old_archive_From_new_cmds=
+  old_archive_from_expsyms_cmds=
+  export_dynamic_flag_spec=
+  whole_archive_flag_spec=
+  thread_safe_flag_spec=
+  hardcode_libdir_flag_spec=
+  hardcode_libdir_flag_spec_ld=
+  hardcode_libdir_separator=
+  hardcode_direct=no
+  hardcode_minus_L=no
+  hardcode_shlibpath_var=unsupported
+  link_all_deplibs=unknown
+  hardcode_automatic=no
+  module_cmds=
+  module_expsym_cmds=
+  always_export_symbols=no
+  export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  include_expsyms=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  extract_expsyms_cmds=
+  # Just being paranoid about ensuring that cc_basename is set.
+  for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+  case $host_os in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  ld_shlibs=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
+    export_dynamic_flag_spec='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+	whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      else
+  	whole_archive_flag_spec=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>/dev/null` in
+      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix3* | aix4* | aix5*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	ld_shlibs=no
+	cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+
+      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can't use
+      # them.
+      ld_shlibs=no
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	allow_undefined_flag=unsupported
+	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+      # as there is no search path for DLLs.
+      hardcode_libdir_flag_spec='-L$libdir'
+      allow_undefined_flag=unsupported
+      always_export_symbols=no
+      enable_shared_with_static_runtimes=yes
+      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    interix3*)
+      hardcode_direct=no
+      hardcode_shlibpath_var=no
+      hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+      export_dynamic_flag_spec='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    linux*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	tmp_addflag=
+	case $cc_basename,$host_cpu in
+	pgcc*)				# Portland Group C compiler
+	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
+	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)		# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	esac
+	archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+	if test $supports_anon_versioning = yes; then
+	  archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~
+  cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+  $echo "local: *; };" >> $output_objdir/$libname.ver~
+	  $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	fi
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+	ld_shlibs=no
+	cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+	ld_shlibs=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	    hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+	    archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
+	    archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
+	  else
+	    ld_shlibs=no
+	  fi
+	;;
+      esac
+      ;;
+
+    sunos4*)
+      archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+    esac
+
+    if test "$ld_shlibs" = no; then
+      runpath_var=
+      hardcode_libdir_flag_spec=
+      export_dynamic_flag_spec=
+      whole_archive_flag_spec=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      allow_undefined_flag=unsupported
+      always_export_symbols=yes
+      archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L=yes
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	hardcode_direct=unsupported
+      fi
+      ;;
+
+    aix4* | aix5*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+	  export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	else
+	  export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# need to do runtime linking.
+	case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+	  for ld_flag in $LDFLAGS; do
+  	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+  	    aix_use_runtimelinking=yes
+  	    break
+  	  fi
+	  done
+	  ;;
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      archive_cmds=''
+      hardcode_direct=yes
+      hardcode_libdir_separator=':'
+      link_all_deplibs=yes
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[012]|aix4.[012].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" && \
+  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	  then
+  	  # We have reworked collect2
+  	  hardcode_direct=yes
+	  else
+  	  # We have old collect2
+  	  hardcode_direct=unsupported
+  	  # It fails to find uninstalled libraries when the uninstalled
+  	  # path is not listed in the libpath.  Setting hardcode_minus_L
+  	  # to unsupported forces relinking
+  	  hardcode_minus_L=yes
+  	  hardcode_libdir_flag_spec='-L$libdir'
+  	  hardcode_libdir_separator=
+	  fi
+	  ;;
+	esac
+	shared_flag='-shared'
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag="$shared_flag "'${wl}-G'
+	fi
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+  	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='${wl}-G'
+	  else
+	    shared_flag='${wl}-bM:SRE'
+	  fi
+	fi
+      fi
+
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      always_export_symbols=yes
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	allow_undefined_flag='-berok'
+       # Determine the default libpath from the value encoded in an empty executable.
+       cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+       hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+	archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+       else
+	if test "$host_cpu" = ia64; then
+	  hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+	  allow_undefined_flag="-z nodefs"
+	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an empty executable.
+	 cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  no_undefined_flag=' ${wl}-bernotok'
+	  allow_undefined_flag=' ${wl}-berok'
+	  # Exported symbols can be pulled into shared objects from archives
+	  whole_archive_flag_spec='$convenience'
+	  archive_cmds_need_lc=yes
+	  # This is similar to how AIX traditionally builds its shared libraries.
+	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      # see comment about different semantics on the GNU ld section
+      ld_shlibs=no
+      ;;
+
+    bsdi[45]*)
+      export_dynamic_flag_spec=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec=' '
+      allow_undefined_flag=unsupported
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext_cmds=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      old_archive_From_new_cmds='true'
+      # FIXME: Should let the user specify the lib program.
+      old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs'
+      fix_srcfile_path='`cygpath -w "$srcfile"`'
+      enable_shared_with_static_runtimes=yes
+      ;;
+
+    darwin* | rhapsody*)
+      case $host_os in
+        rhapsody* | darwin1.[012])
+         allow_undefined_flag='${wl}-undefined ${wl}suppress'
+         ;;
+       *) # Darwin 1.3 on
+         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+           allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+         else
+           case ${MACOSX_DEPLOYMENT_TARGET} in
+             10.[012])
+               allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+               ;;
+             10.*)
+               allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup'
+               ;;
+           esac
+         fi
+         ;;
+      esac
+      archive_cmds_need_lc=no
+      hardcode_direct=no
+      hardcode_automatic=yes
+      hardcode_shlibpath_var=unsupported
+      whole_archive_flag_spec=''
+      link_all_deplibs=yes
+    if test "$GCC" = yes ; then
+    	output_verbose_link_cmd='echo'
+        archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+      module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+      archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      module_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    else
+      case $cc_basename in
+        xlc*)
+         output_verbose_link_cmd='echo'
+         archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+         module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+         archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          module_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          ;;
+       *)
+         ld_shlibs=no
+          ;;
+      esac
+    fi
+      ;;
+
+    dgux*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_shlibpath_var=no
+      ;;
+
+    freebsd1*)
+      ld_shlibs=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | kfreebsd*-gnu | dragonfly*)
+      archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator=:
+      hardcode_direct=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      hardcode_minus_L=yes
+      export_dynamic_flag_spec='${wl}-E'
+      ;;
+
+    hpux10*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator=:
+
+	hardcode_direct=yes
+	export_dynamic_flag_spec='${wl}-E'
+
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	hardcode_minus_L=yes
+      fi
+      ;;
+
+    hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator=:
+
+	case $host_cpu in
+	hppa*64*|ia64*)
+	  hardcode_libdir_flag_spec_ld='+b $libdir'
+	  hardcode_direct=no
+	  hardcode_shlibpath_var=no
+	  ;;
+	*)
+	  hardcode_direct=yes
+	  export_dynamic_flag_spec='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  hardcode_minus_L=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_ld='-rpath $libdir'
+      fi
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      link_all_deplibs=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    newsos6)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct=yes
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      hardcode_shlibpath_var=no
+      ;;
+
+    openbsd*)
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+	export_dynamic_flag_spec='${wl}-E'
+      else
+       case $host_os in
+	 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+	   archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	   hardcode_libdir_flag_spec='-R$libdir'
+	   ;;
+	 *)
+	   archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	   hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+	   ;;
+       esac
+      fi
+      ;;
+
+    os2*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      allow_undefined_flag=unsupported
+      archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	allow_undefined_flag=' -expect_unresolved \*'
+	archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      else
+	allow_undefined_flag=' -expect_unresolved \*'
+	archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	hardcode_libdir_flag_spec='-rpath $libdir'
+      fi
+      hardcode_libdir_separator=:
+      ;;
+
+    solaris*)
+      no_undefined_flag=' -z text'
+      if test "$GCC" = yes; then
+	wlarc='${wl}'
+	archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+      else
+	wlarc=''
+	archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      fi
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_shlibpath_var=no
+      case $host_os in
+      solaris2.[0-5] | solaris2.[0-5].*) ;;
+      *)
+ 	# The compiler driver will combine linker options so we
+ 	# cannot just pass the convience library names through
+ 	# without $wl, iff we do not link with $LD.
+ 	# Luckily, gcc supports the same syntax we need for Sun Studio.
+ 	# Supported since Solaris 2.6 (maybe 2.5.1?)
+ 	case $wlarc in
+ 	'')
+ 	  whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
+ 	*)
+ 	  whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+ 	esac ;;
+      esac
+      link_all_deplibs=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  reload_cmds='$CC -r -o $output$reload_objs'
+	  hardcode_direct=no
+        ;;
+	motorola)
+	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var=no
+      ;;
+
+    sysv4.3*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var=no
+      export_dynamic_flag_spec='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	hardcode_shlibpath_var=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	ld_shlibs=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*)
+      no_undefined_flag='${wl}-z,text'
+      archive_cmds_need_lc=no
+      hardcode_shlibpath_var=no
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      no_undefined_flag='${wl}-z,text'
+      allow_undefined_flag='${wl}-z,nodefs'
+      archive_cmds_need_lc=no
+      hardcode_shlibpath_var=no
+      hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+      hardcode_libdir_separator=':'
+      link_all_deplibs=yes
+      export_dynamic_flag_spec='${wl}-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_shlibpath_var=no
+      ;;
+
+    *)
+      ld_shlibs=no
+      ;;
+    esac
+  fi
+
+{ echo "$as_me:$LINENO: result: $ld_shlibs" >&5
+echo "${ECHO_T}$ld_shlibs" >&6; }
+test "$ld_shlibs" = no && can_build_shared=no
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $archive_cmds in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
+      $rm conftest*
+      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$lt_prog_compiler_wl
+	pic_flag=$lt_prog_compiler_pic
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$allow_undefined_flag
+        allow_undefined_flag=
+        if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+  (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+        then
+	  archive_cmds_need_lc=no
+        else
+	  archive_cmds_need_lc=yes
+        fi
+        allow_undefined_flag=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
+echo "${ECHO_T}$archive_cmds_need_lc" >&6; }
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+if test "$GCC" = yes; then
+  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+  else
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+  fi
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix4* | aix5*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[45]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+  if test "$GCC" = yes; then
+    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+  else
+    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+  fi
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+kfreebsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[123]*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  freebsd*) # from 4.6 on
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext_cmds='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+interix3*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # find out which ABI we are using
+  libsuff=
+  case "$host_cpu" in
+  x86_64*|s390x*|powerpc64*)
+    echo '#line 21661 "configure"' > conftest.$ac_ext
+    if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+      case `/usr/bin/file conftest.$ac_objext` in
+      *64-bit*)
+        libsuff=64
+        sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+        ;;
+      esac
+    fi
+    rm -rf conftest*
+    ;;
+  esac
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/^	 *//;s/#.*//;/^[^\/]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+knetbsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+    *)                         need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[89] | openbsd2.[89].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+    shlibpath_overrides_runpath=no
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    shlibpath_overrides_runpath=yes
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6; }
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" || \
+   test -n "$runpath_var" || \
+   test "X$hardcode_automatic" = "Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$hardcode_direct" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no &&
+     test "$hardcode_minus_L" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action=unsupported
+fi
+{ echo "$as_me:$LINENO: result: $hardcode_action" >&5
+echo "${ECHO_T}$hardcode_action" >&6; }
+
+if test "$hardcode_action" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+
+striplib=
+old_striplib=
+{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; }
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+   darwin*)
+       if test -n "$STRIP" ; then
+         striplib="$STRIP -x"
+         { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+       else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+       ;;
+   *)
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+    ;;
+  esac
+fi
+
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+   ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+   ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_dl_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_dl_dlopen=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
+if test $ac_cv_lib_dl_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+
+fi
+
+   ;;
+
+  *)
+    { echo "$as_me:$LINENO: checking for shl_load" >&5
+echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; }
+if test "${ac_cv_func_shl_load+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define shl_load innocuous_shl_load
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char shl_load (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef shl_load
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_shl_load || defined __stub___shl_load
+choke me
+#endif
+
+int
+main ()
+{
+return shl_load ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_func_shl_load=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_func_shl_load=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
+echo "${ECHO_T}$ac_cv_func_shl_load" >&6; }
+if test $ac_cv_func_shl_load = yes; then
+  lt_cv_dlopen="shl_load"
+else
+  { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; }
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_dld_shl_load=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_dld_shl_load=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; }
+if test $ac_cv_lib_dld_shl_load = yes; then
+  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
+else
+  { echo "$as_me:$LINENO: checking for dlopen" >&5
+echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; }
+if test "${ac_cv_func_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define dlopen innocuous_dlopen
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char dlopen (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef dlopen
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_dlopen || defined __stub___dlopen
+choke me
+#endif
+
+int
+main ()
+{
+return dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_func_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_func_dlopen=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
+echo "${ECHO_T}$ac_cv_func_dlopen" >&6; }
+if test $ac_cv_func_dlopen = yes; then
+  lt_cv_dlopen="dlopen"
+else
+  { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_dl_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_dl_dlopen=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
+if test $ac_cv_lib_dl_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+  { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
+echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; }
+if test "${ac_cv_lib_svld_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_svld_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_svld_dlopen=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; }
+if test $ac_cv_lib_svld_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+  { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
+echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; }
+if test "${ac_cv_lib_dld_dld_link+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dld_link ();
+int
+main ()
+{
+return dld_link ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_dld_dld_link=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_dld_dld_link=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; }
+if test $ac_cv_lib_dld_dld_link = yes; then
+  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
+echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; }
+if test "${lt_cv_dlopen_self+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  	  if test "$cross_compiling" = yes; then :
+  lt_cv_dlopen_self=cross
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+#line 22525 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+    exit (status);
+}
+EOF
+  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) >&5 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self=no
+  fi
+fi
+rm -fr conftest*
+
+
+fi
+{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self" >&6; }
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+      { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
+echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; }
+if test "${lt_cv_dlopen_self_static+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  	  if test "$cross_compiling" = yes; then :
+  lt_cv_dlopen_self_static=cross
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+#line 22625 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+    exit (status);
+}
+EOF
+  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) >&5 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self_static=no
+  fi
+fi
+rm -fr conftest*
+
+
+fi
+{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; }
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+
+
+# Report which library types will actually be built
+{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; }
+{ echo "$as_me:$LINENO: result: $can_build_shared" >&5
+echo "${ECHO_T}$can_build_shared" >&6; }
+
+{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; }
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case $host_os in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+
+aix4* | aix5*)
+  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+    test "$enable_shared" = yes && enable_static=no
+  fi
+    ;;
+esac
+{ echo "$as_me:$LINENO: result: $enable_shared" >&5
+echo "${ECHO_T}$enable_shared" >&6; }
+
+{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5
+echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; }
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+{ echo "$as_me:$LINENO: result: $enable_static" >&5
+echo "${ECHO_T}$enable_static" >&6; }
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler \
+    CC \
+    LD \
+    lt_prog_compiler_wl \
+    lt_prog_compiler_pic \
+    lt_prog_compiler_static \
+    lt_prog_compiler_no_builtin_flag \
+    export_dynamic_flag_spec \
+    thread_safe_flag_spec \
+    whole_archive_flag_spec \
+    enable_shared_with_static_runtimes \
+    old_archive_cmds \
+    old_archive_from_new_cmds \
+    predep_objects \
+    postdep_objects \
+    predeps \
+    postdeps \
+    compiler_lib_search_path \
+    archive_cmds \
+    archive_expsym_cmds \
+    postinstall_cmds \
+    postuninstall_cmds \
+    old_archive_from_expsyms_cmds \
+    allow_undefined_flag \
+    no_undefined_flag \
+    export_symbols_cmds \
+    hardcode_libdir_flag_spec \
+    hardcode_libdir_flag_spec_ld \
+    hardcode_libdir_separator \
+    hardcode_automatic \
+    module_cmds \
+    module_expsym_cmds \
+    lt_cv_prog_compiler_c_o \
+    exclude_expsyms \
+    include_expsyms; do
+
+    case $var in
+    old_archive_cmds | \
+    old_archive_from_new_cmds | \
+    archive_cmds | \
+    archive_expsym_cmds | \
+    module_cmds | \
+    module_expsym_cmds | \
+    old_archive_from_expsyms_cmds | \
+    export_symbols_cmds | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
+
+cfgfile="${ofile}T"
+  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+  $rm -f "$cfgfile"
+  { echo "$as_me:$LINENO: creating $ofile" >&5
+echo "$as_me: creating $ofile" >&6;}
+
+  cat <<__EOF__ >> "$cfgfile"
+#! $SHELL
+
+# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+#
+# This file is part of GNU Libtool:
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# 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.
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="$SED -e 1s/^X//"
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# The names of the tagged configurations supported by this script.
+available_tags=
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
+# A language-specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# ### END LIBTOOL CONFIG
+
+__EOF__
+
+
+  case $host_os in
+  aix3*)
+    cat <<\EOF >> "$cfgfile"
+
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+EOF
+    ;;
+  esac
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
+
+  mv -f "$cfgfile" "$ofile" || \
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+
+# Check whether --with-tags was given.
+if test "${with_tags+set}" = set; then
+  withval=$with_tags; tagnames="$withval"
+fi
+
+
+if test -f "$ltmain" && test -n "$tagnames"; then
+  if test ! -f "${ofile}"; then
+    { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5
+echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;}
+  fi
+
+  if test -z "$LTCC"; then
+    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
+    if test -z "$LTCC"; then
+      { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5
+echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;}
+    else
+      { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5
+echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;}
+    fi
+  fi
+  if test -z "$LTCFLAGS"; then
+    eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`"
+  fi
+
+  # Extract list of available tagged configurations in $ofile.
+  # Note that this assumes the entire list is on one line.
+  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
+
+  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+  for tagname in $tagnames; do
+    IFS="$lt_save_ifs"
+    # Check whether tagname contains only valid characters
+    case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in
+    "") ;;
+    *)  { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5
+echo "$as_me: error: invalid tag name: $tagname" >&2;}
+   { (exit 1); exit 1; }; }
+	;;
+    esac
+
+    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
+    then
+      { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5
+echo "$as_me: error: tag name \"$tagname\" already exists" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+
+    # Update the list of available tags.
+    if test -n "$tagname"; then
+      echo appending configuration tag \"$tagname\" to $ofile
+
+      case $tagname in
+      CXX)
+	if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+	    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+	    (test "X$CXX" != "Xg++"))) ; then
+	  ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+
+
+
+archive_cmds_need_lc_CXX=no
+allow_undefined_flag_CXX=
+always_export_symbols_CXX=no
+archive_expsym_cmds_CXX=
+export_dynamic_flag_spec_CXX=
+hardcode_direct_CXX=no
+hardcode_libdir_flag_spec_CXX=
+hardcode_libdir_flag_spec_ld_CXX=
+hardcode_libdir_separator_CXX=
+hardcode_minus_L_CXX=no
+hardcode_shlibpath_var_CXX=unsupported
+hardcode_automatic_CXX=no
+module_cmds_CXX=
+module_expsym_cmds_CXX=
+link_all_deplibs_CXX=unknown
+old_archive_cmds_CXX=$old_archive_cmds
+no_undefined_flag_CXX=
+whole_archive_flag_spec_CXX=
+enable_shared_with_static_runtimes_CXX=no
+
+# Dependencies to place before and after the object being linked:
+predep_objects_CXX=
+postdep_objects_CXX=
+predeps_CXX=
+postdeps_CXX=
+compiler_lib_search_path_CXX=
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+objext_CXX=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_LD=$LD
+lt_save_GCC=$GCC
+GCC=$GXX
+lt_save_with_gnu_ld=$with_gnu_ld
+lt_save_path_LD=$lt_cv_path_LD
+if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+else
+  $as_unset lt_cv_prog_gnu_ld
+fi
+if test -n "${lt_cv_path_LDCXX+set}"; then
+  lt_cv_path_LD=$lt_cv_path_LDCXX
+else
+  $as_unset lt_cv_path_LD
+fi
+test -z "${LDCXX+set}" || LD=$LDCXX
+CC=${CXX-"c++"}
+compiler=$CC
+compiler_CXX=$CC
+for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+# We don't want -fno-exception wen compiling C++ code, so set the
+# no_builtin_flag separately
+if test "$GXX" = yes; then
+  lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
+else
+  lt_prog_compiler_no_builtin_flag_CXX=
+fi
+
+if test "$GXX" = yes; then
+  # Set up default GNU C++ configuration
+
+
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else
+  with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  { echo "$as_me:$LINENO: checking for ld used by $CC" >&5
+echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; }
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [\\/]* | ?:[\\/]*)
+      re_direlt='/[^/][^/]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  { echo "$as_me:$LINENO: checking for GNU ld" >&5
+echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; }
+else
+  { echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; }
+fi
+if test "${lt_cv_path_LD+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  { echo "$as_me:$LINENO: result: $LD" >&5
+echo "${ECHO_T}$LD" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
+echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
+   { (exit 1); exit 1; }; }
+{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; }
+if test "${lt_cv_prog_gnu_ld+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac
+fi
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+  # Check if GNU C++ uses GNU ld as the underlying linker, since the
+  # archiving commands below assume that GNU ld is being used.
+  if test "$with_gnu_ld" = yes; then
+    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+    archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+    hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
+    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+    #     investigate it a little bit more. (MM)
+    wlarc='${wl}'
+
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
+	grep 'no-whole-archive' > /dev/null; then
+      whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      whole_archive_flag_spec_CXX=
+    fi
+  else
+    with_gnu_ld=no
+    wlarc=
+
+    # A generic and very simple default shared library creation
+    # command for GNU C++ for the case where it uses the native
+    # linker, instead of GNU ld.  If possible, this setting should
+    # overridden to take advantage of the native linker features on
+    # the platform it is being used on.
+    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+  fi
+
+  # Commands to make compiler produce verbose output that lists
+  # what "hidden" libraries, object files and flags are used when
+  # linking a shared library.
+  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+else
+  GXX=no
+  with_gnu_ld=no
+  wlarc=
+fi
+
+# PORTME: fill in a description of your system's C++ link characteristics
+{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
+ld_shlibs_CXX=yes
+case $host_os in
+  aix3*)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+  aix4* | aix5*)
+    if test "$host_cpu" = ia64; then
+      # On IA64, the linker does run time linking by default, so we don't
+      # have to do anything special.
+      aix_use_runtimelinking=no
+      exp_sym_flag='-Bexport'
+      no_entry_flag=""
+    else
+      aix_use_runtimelinking=no
+
+      # Test if we are trying to use run time linking or normal
+      # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+      # need to do runtime linking.
+      case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+	for ld_flag in $LDFLAGS; do
+	  case $ld_flag in
+	  *-brtl*)
+	    aix_use_runtimelinking=yes
+	    break
+	    ;;
+	  esac
+	done
+	;;
+      esac
+
+      exp_sym_flag='-bexport'
+      no_entry_flag='-bnoentry'
+    fi
+
+    # When large executables or shared objects are built, AIX ld can
+    # have problems creating the table of contents.  If linking a library
+    # or program results in "error TOC overflow" add -mminimal-toc to
+    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+    archive_cmds_CXX=''
+    hardcode_direct_CXX=yes
+    hardcode_libdir_separator_CXX=':'
+    link_all_deplibs_CXX=yes
+
+    if test "$GXX" = yes; then
+      case $host_os in aix4.[012]|aix4.[012].*)
+      # We only want to do this on AIX 4.2 and lower, the check
+      # below for broken collect2 doesn't work under 4.3+
+	collect2name=`${CC} -print-prog-name=collect2`
+	if test -f "$collect2name" && \
+	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	then
+	  # We have reworked collect2
+	  hardcode_direct_CXX=yes
+	else
+	  # We have old collect2
+	  hardcode_direct_CXX=unsupported
+	  # It fails to find uninstalled libraries when the uninstalled
+	  # path is not listed in the libpath.  Setting hardcode_minus_L
+	  # to unsupported forces relinking
+	  hardcode_minus_L_CXX=yes
+	  hardcode_libdir_flag_spec_CXX='-L$libdir'
+	  hardcode_libdir_separator_CXX=
+	fi
+	;;
+      esac
+      shared_flag='-shared'
+      if test "$aix_use_runtimelinking" = yes; then
+	shared_flag="$shared_flag "'${wl}-G'
+      fi
+    else
+      # not using gcc
+      if test "$host_cpu" = ia64; then
+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	# chokes on -Wl,-G. The following line is correct:
+	shared_flag='-G'
+      else
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag='${wl}-G'
+	else
+	  shared_flag='${wl}-bM:SRE'
+	fi
+      fi
+    fi
+
+    # It seems that -bexpall does not export symbols beginning with
+    # underscore (_), so it is better to generate a list of symbols to export.
+    always_export_symbols_CXX=yes
+    if test "$aix_use_runtimelinking" = yes; then
+      # Warning - without using the other runtime loading flags (-brtl),
+      # -berok will link without error, but may produce a broken library.
+      allow_undefined_flag_CXX='-berok'
+      # Determine the default libpath from the value encoded in an empty executable.
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+      hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+      archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+     else
+      if test "$host_cpu" = ia64; then
+	hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
+	allow_undefined_flag_CXX="-z nodefs"
+	archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+      else
+	# Determine the default libpath from the value encoded in an empty executable.
+	cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+	hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+	# Warning - without using the other run time loading flags,
+	# -berok will link without error, but may produce a broken library.
+	no_undefined_flag_CXX=' ${wl}-bernotok'
+	allow_undefined_flag_CXX=' ${wl}-berok'
+	# Exported symbols can be pulled into shared objects from archives
+	whole_archive_flag_spec_CXX='$convenience'
+	archive_cmds_need_lc_CXX=yes
+	# This is similar to how AIX traditionally builds its shared libraries.
+	archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+      fi
+    fi
+    ;;
+
+  beos*)
+    if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+      allow_undefined_flag_CXX=unsupported
+      # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+      # support --undefined.  This deserves some investigation.  FIXME
+      archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+    else
+      ld_shlibs_CXX=no
+    fi
+    ;;
+
+  chorus*)
+    case $cc_basename in
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+
+  cygwin* | mingw* | pw32*)
+    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
+    # as there is no search path for DLLs.
+    hardcode_libdir_flag_spec_CXX='-L$libdir'
+    allow_undefined_flag_CXX=unsupported
+    always_export_symbols_CXX=no
+    enable_shared_with_static_runtimes_CXX=yes
+
+    if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+      archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      # If the export-symbols file already is a .def file (1st line
+      # is EXPORTS), use it as is; otherwise, prepend...
+      archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	cp $export_symbols $output_objdir/$soname.def;
+      else
+	echo EXPORTS > $output_objdir/$soname.def;
+	cat $export_symbols >> $output_objdir/$soname.def;
+      fi~
+      $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+    else
+      ld_shlibs_CXX=no
+    fi
+  ;;
+      darwin* | rhapsody*)
+        case $host_os in
+        rhapsody* | darwin1.[012])
+         allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress'
+         ;;
+       *) # Darwin 1.3 on
+         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+           allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+         else
+           case ${MACOSX_DEPLOYMENT_TARGET} in
+             10.[012])
+               allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+               ;;
+             10.*)
+               allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup'
+               ;;
+           esac
+         fi
+         ;;
+        esac
+      archive_cmds_need_lc_CXX=no
+      hardcode_direct_CXX=no
+      hardcode_automatic_CXX=yes
+      hardcode_shlibpath_var_CXX=unsupported
+      whole_archive_flag_spec_CXX=''
+      link_all_deplibs_CXX=yes
+
+    if test "$GXX" = yes ; then
+      lt_int_apple_cc_single_mod=no
+      output_verbose_link_cmd='echo'
+      if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then
+       lt_int_apple_cc_single_mod=yes
+      fi
+      if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+       archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+      else
+          archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+        fi
+        module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+        # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+          if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+            archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          else
+            archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          fi
+            module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      else
+      case $cc_basename in
+        xlc*)
+         output_verbose_link_cmd='echo'
+          archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+          module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+          archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          ;;
+       *)
+         ld_shlibs_CXX=no
+          ;;
+      esac
+      fi
+        ;;
+
+  dgux*)
+    case $cc_basename in
+      ec++*)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      ghcx*)
+	# Green Hills C++ Compiler
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+  freebsd[12]*)
+    # C++ shared libraries reported to be fairly broken before switch to ELF
+    ld_shlibs_CXX=no
+    ;;
+  freebsd-elf*)
+    archive_cmds_need_lc_CXX=no
+    ;;
+  freebsd* | kfreebsd*-gnu | dragonfly*)
+    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+    # conventions
+    ld_shlibs_CXX=yes
+    ;;
+  gnu*)
+    ;;
+  hpux9*)
+    hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+    hardcode_libdir_separator_CXX=:
+    export_dynamic_flag_spec_CXX='${wl}-E'
+    hardcode_direct_CXX=yes
+    hardcode_minus_L_CXX=yes # Not in the search PATH,
+				# but as the default
+				# location of the library.
+
+    case $cc_basename in
+    CC*)
+      # FIXME: insert proper C++ library support
+      ld_shlibs_CXX=no
+      ;;
+    aCC*)
+      archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      # Commands to make compiler produce verbose output that lists
+      # what "hidden" libraries, object files and flags are used when
+      # linking a shared library.
+      #
+      # There doesn't appear to be a way to prevent this compiler from
+      # explicitly linking system object files so we need to strip them
+      # from the output so that they don't get included in the library
+      # dependencies.
+      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+      ;;
+    *)
+      if test "$GXX" = yes; then
+        archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+        # FIXME: insert proper C++ library support
+        ld_shlibs_CXX=no
+      fi
+      ;;
+    esac
+    ;;
+  hpux10*|hpux11*)
+    if test $with_gnu_ld = no; then
+      hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator_CXX=:
+
+      case $host_cpu in
+      hppa*64*|ia64*)
+	hardcode_libdir_flag_spec_ld_CXX='+b $libdir'
+        ;;
+      *)
+	export_dynamic_flag_spec_CXX='${wl}-E'
+        ;;
+      esac
+    fi
+    case $host_cpu in
+    hppa*64*|ia64*)
+      hardcode_direct_CXX=no
+      hardcode_shlibpath_var_CXX=no
+      ;;
+    *)
+      hardcode_direct_CXX=yes
+      hardcode_minus_L_CXX=yes # Not in the search PATH,
+					      # but as the default
+					      # location of the library.
+      ;;
+    esac
+
+    case $cc_basename in
+      CC*)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      aCC*)
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	esac
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test $with_gnu_ld = no; then
+	    case $host_cpu in
+	    hppa*64*)
+	      archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    ia64*)
+	      archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    *)
+	      archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    esac
+	  fi
+	else
+	  # FIXME: insert proper C++ library support
+	  ld_shlibs_CXX=no
+	fi
+	;;
+    esac
+    ;;
+  interix3*)
+    hardcode_direct_CXX=no
+    hardcode_shlibpath_var_CXX=no
+    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+    export_dynamic_flag_spec_CXX='${wl}-E'
+    # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+    # Instead, shared libraries are loaded at an image base (0x10000000 by
+    # default) and relocated if they conflict, which is a slow very memory
+    # consuming and fragmenting process.  To avoid this, we pick a random,
+    # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+    # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+    archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+    archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+    ;;
+  irix5* | irix6*)
+    case $cc_basename in
+      CC*)
+	# SGI C++
+	archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+	# Archives containing C++ object files must be created using
+	# "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+	# necessary to make sure instantiated templates are included
+	# in the archive.
+	old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test "$with_gnu_ld" = no; then
+	    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	  else
+	    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
+	  fi
+	fi
+	link_all_deplibs_CXX=yes
+	;;
+    esac
+    hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+    hardcode_libdir_separator_CXX=:
+    ;;
+  linux*)
+    case $cc_basename in
+      KCC*)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+	archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+	hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir'
+	export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+
+	# Archives containing C++ object files must be created using
+	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
+	;;
+      icpc*)
+	# Intel C++
+	with_gnu_ld=yes
+	# version 8.0 and above of icpc choke on multiply defined symbols
+	# if we add $predep_objects and $postdep_objects, however 7.1 and
+	# earlier do not add the objects themselves.
+	case `$CC -V 2>&1` in
+	*"Version 7."*)
+  	  archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+  	  archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	  ;;
+	*)  # Version 8.0 or newer
+	  tmp_idyn=
+	  case $host_cpu in
+	    ia64*) tmp_idyn=' -i_dynamic';;
+	  esac
+  	  archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	  archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	  ;;
+	esac
+	archive_cmds_need_lc_CXX=no
+	hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+	export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+	whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	;;
+      pgCC*)
+        # Portland Group C++ compiler
+	archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+  	archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+
+	hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
+	export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+	whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+        ;;
+      cxx*)
+	# Compaq C++
+	archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+	runpath_var=LD_RUN_PATH
+	hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+	hardcode_libdir_separator_CXX=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+    esac
+    ;;
+  lynxos*)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+  m88k*)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+  mvs*)
+    case $cc_basename in
+      cxx*)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+  netbsd*)
+    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+      archive_cmds_CXX='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+      wlarc=
+      hardcode_libdir_flag_spec_CXX='-R$libdir'
+      hardcode_direct_CXX=yes
+      hardcode_shlibpath_var_CXX=no
+    fi
+    # Workaround some broken pre-1.5 toolchains
+    output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+    ;;
+  openbsd2*)
+    # C++ shared libraries are fairly broken
+    ld_shlibs_CXX=no
+    ;;
+  openbsd*)
+    hardcode_direct_CXX=yes
+    hardcode_shlibpath_var_CXX=no
+    archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+    if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+      archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+      export_dynamic_flag_spec_CXX='${wl}-E'
+      whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    fi
+    output_verbose_link_cmd='echo'
+    ;;
+  osf3*)
+    case $cc_basename in
+      KCC*)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+	hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+	hardcode_libdir_separator_CXX=:
+
+	# Archives containing C++ object files must be created using
+	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
+
+	;;
+      RCC*)
+	# Rational C++ 2.4.1
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      cxx*)
+	allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+	hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+	hardcode_libdir_separator_CXX=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+	  archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+
+	  hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+	  hardcode_libdir_separator_CXX=:
+
+	  # Commands to make compiler produce verbose output that lists
+	  # what "hidden" libraries, object files and flags are used when
+	  # linking a shared library.
+	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+	else
+	  # FIXME: insert proper C++ library support
+	  ld_shlibs_CXX=no
+	fi
+	;;
+    esac
+    ;;
+  osf4* | osf5*)
+    case $cc_basename in
+      KCC*)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+	hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+	hardcode_libdir_separator_CXX=:
+
+	# Archives containing C++ object files must be created using
+	# the KAI C++ compiler.
+	old_archive_cmds_CXX='$CC -o $oldlib $oldobjs'
+	;;
+      RCC*)
+	# Rational C++ 2.4.1
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      cxx*)
+	allow_undefined_flag_CXX=' -expect_unresolved \*'
+	archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+	  echo "-hidden">> $lib.exp~
+	  $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp  `test -n "$verstring" && echo -set_version	$verstring` -update_registry ${output_objdir}/so_locations -o $lib~
+	  $rm $lib.exp'
+
+	hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+	hardcode_libdir_separator_CXX=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+	 archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+
+	  hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+	  hardcode_libdir_separator_CXX=:
+
+	  # Commands to make compiler produce verbose output that lists
+	  # what "hidden" libraries, object files and flags are used when
+	  # linking a shared library.
+	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+	else
+	  # FIXME: insert proper C++ library support
+	  ld_shlibs_CXX=no
+	fi
+	;;
+    esac
+    ;;
+  psos*)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+  sunos4*)
+    case $cc_basename in
+      CC*)
+	# Sun C++ 4.x
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      lcc*)
+	# Lucid
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+  solaris*)
+    case $cc_basename in
+      CC*)
+	# Sun C++ 4.2, 5.x and Centerline C++
+        archive_cmds_need_lc_CXX=yes
+	no_undefined_flag_CXX=' -zdefs'
+	archive_cmds_CXX='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	$CC -G${allow_undefined_flag}  ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	hardcode_libdir_flag_spec_CXX='-R$libdir'
+	hardcode_shlibpath_var_CXX=no
+	case $host_os in
+	  solaris2.[0-5] | solaris2.[0-5].*) ;;
+	  *)
+	    # The C++ compiler is used as linker so we must use $wl
+	    # flag to pass the commands to the underlying system
+	    # linker. We must also pass each convience library through
+	    # to the system linker between allextract/defaultextract.
+	    # The C++ compiler will combine linker options so we
+	    # cannot just pass the convience library names through
+	    # without $wl.
+	    # Supported since Solaris 2.6 (maybe 2.5.1?)
+	    whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract'
+	    ;;
+	esac
+	link_all_deplibs_CXX=yes
+
+	output_verbose_link_cmd='echo'
+
+	# Archives containing C++ object files must be created using
+	# "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	# necessary to make sure instantiated templates are included
+	# in the archive.
+	old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
+	;;
+      gcx*)
+	# Green Hills C++ Compiler
+	archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+	# The C++ compiler must be used to create the archive.
+	old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+	;;
+      *)
+	# GNU C++ compiler with Solaris linker
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
+	  if $CC --version | grep -v '^2\.7' > /dev/null; then
+	    archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	    archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+	  else
+	    # g++ 2.7 appears to require `-G' NOT `-shared' on this
+	    # platform.
+	    archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	    archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+	  fi
+
+	  hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
+	fi
+	;;
+    esac
+    ;;
+  sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+    no_undefined_flag_CXX='${wl}-z,text'
+    archive_cmds_need_lc_CXX=no
+    hardcode_shlibpath_var_CXX=no
+    runpath_var='LD_RUN_PATH'
+
+    case $cc_basename in
+      CC*)
+	archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+      *)
+	archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+    esac
+    ;;
+  sysv5* | sco3.2v5* | sco5v6*)
+    # Note: We can NOT use -z defs as we might desire, because we do not
+    # link with -lc, and that would cause any symbols used from libc to
+    # always be unresolved, which means just about no library would
+    # ever link correctly.  If we're not using GNU ld we use -z text
+    # though, which does catch some bad symbols but isn't as heavy-handed
+    # as -z defs.
+    # For security reasons, it is highly recommended that you always
+    # use absolute paths for naming shared libraries, and exclude the
+    # DT_RUNPATH tag from executables and libraries.  But doing so
+    # requires that you compile everything twice, which is a pain.
+    # So that behaviour is only enabled if SCOABSPATH is set to a
+    # non-empty value in the environment.  Most likely only useful for
+    # creating official distributions of packages.
+    # This is a hack until libtool officially supports absolute path
+    # names for shared libraries.
+    no_undefined_flag_CXX='${wl}-z,text'
+    allow_undefined_flag_CXX='${wl}-z,nodefs'
+    archive_cmds_need_lc_CXX=no
+    hardcode_shlibpath_var_CXX=no
+    hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+    hardcode_libdir_separator_CXX=':'
+    link_all_deplibs_CXX=yes
+    export_dynamic_flag_spec_CXX='${wl}-Bexport'
+    runpath_var='LD_RUN_PATH'
+
+    case $cc_basename in
+      CC*)
+	archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+      *)
+	archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+    esac
+    ;;
+  tandem*)
+    case $cc_basename in
+      NCC*)
+	# NonStop-UX NCC 3.20
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+  vxworks*)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+  *)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+esac
+{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
+echo "${ECHO_T}$ld_shlibs_CXX" >&6; }
+test "$ld_shlibs_CXX" = no && can_build_shared=no
+
+GCC_CXX="$GXX"
+LD_CXX="$LD"
+
+
+cat > conftest.$ac_ext <<EOF
+class Foo
+{
+public:
+  Foo (void) { a = 0; }
+private:
+  int a;
+};
+EOF
+
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # Parse the compiler output and extract the necessary
+  # objects, libraries and library flags.
+
+  # Sentinel used to keep track of whether or not we are before
+  # the conftest object file.
+  pre_test_object_deps_done=no
+
+  # The `*' in the case matches for architectures that use `case' in
+  # $output_verbose_cmd can trigger glob expansion during the loop
+  # eval without this substitution.
+  output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"`
+
+  for p in `eval $output_verbose_link_cmd`; do
+    case $p in
+
+    -L* | -R* | -l*)
+       # Some compilers place space between "-{L,R}" and the path.
+       # Remove the space.
+       if test $p = "-L" \
+	  || test $p = "-R"; then
+	 prev=$p
+	 continue
+       else
+	 prev=
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 case $p in
+	 -L* | -R*)
+	   # Internal compiler library paths should come after those
+	   # provided the user.  The postdeps already come after the
+	   # user supplied libs so there is no need to process them.
+	   if test -z "$compiler_lib_search_path_CXX"; then
+	     compiler_lib_search_path_CXX="${prev}${p}"
+	   else
+	     compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
+	   fi
+	   ;;
+	 # The "-l" case would never come before the object being
+	 # linked, so don't bother handling this case.
+	 esac
+       else
+	 if test -z "$postdeps_CXX"; then
+	   postdeps_CXX="${prev}${p}"
+	 else
+	   postdeps_CXX="${postdeps_CXX} ${prev}${p}"
+	 fi
+       fi
+       ;;
+
+    *.$objext)
+       # This assumes that the test object file only shows up
+       # once in the compiler output.
+       if test "$p" = "conftest.$objext"; then
+	 pre_test_object_deps_done=yes
+	 continue
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 if test -z "$predep_objects_CXX"; then
+	   predep_objects_CXX="$p"
+	 else
+	   predep_objects_CXX="$predep_objects_CXX $p"
+	 fi
+       else
+	 if test -z "$postdep_objects_CXX"; then
+	   postdep_objects_CXX="$p"
+	 else
+	   postdep_objects_CXX="$postdep_objects_CXX $p"
+	 fi
+       fi
+       ;;
+
+    *) ;; # Ignore the rest.
+
+    esac
+  done
+
+  # Clean up.
+  rm -f a.out a.exe
+else
+  echo "libtool.m4: error: problem compiling CXX test program"
+fi
+
+$rm -f confest.$objext
+
+# PORTME: override above test on systems where it is broken
+case $host_os in
+interix3*)
+  # Interix 3.5 installs completely hosed .la files for C++, so rather than
+  # hack all around it, let's just trust "g++" to DTRT.
+  predep_objects_CXX=
+  postdep_objects_CXX=
+  postdeps_CXX=
+  ;;
+
+solaris*)
+  case $cc_basename in
+  CC*)
+    # Adding this requires a known-good setup of shared libraries for
+    # Sun compiler versions before 5.6, else PIC objects from an old
+    # archive will be linked into the output, leading to subtle bugs.
+    postdeps_CXX='-lCstd -lCrun'
+    ;;
+  esac
+  ;;
+esac
+
+
+case " $postdeps_CXX " in
+*" -lc "*) archive_cmds_need_lc_CXX=no ;;
+esac
+
+lt_prog_compiler_wl_CXX=
+lt_prog_compiler_pic_CXX=
+lt_prog_compiler_static_CXX=
+
+{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
+
+  # C++ specific cases for pic, static, wl, etc.
+  if test "$GXX" = yes; then
+    lt_prog_compiler_wl_CXX='-Wl,'
+    lt_prog_compiler_static_CXX='-static'
+
+    case $host_os in
+    aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_CXX='-Bstatic'
+      fi
+      ;;
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
+      ;;
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+    mingw* | os2* | pw32*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+      ;;
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic_CXX='-fno-common'
+      ;;
+    *djgpp*)
+      # DJGPP does not support shared libraries at all
+      lt_prog_compiler_pic_CXX=
+      ;;
+    interix3*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic_CXX=-Kconform_pic
+      fi
+      ;;
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	;;
+      *)
+	lt_prog_compiler_pic_CXX='-fPIC'
+	;;
+      esac
+      ;;
+    *)
+      lt_prog_compiler_pic_CXX='-fPIC'
+      ;;
+    esac
+  else
+    case $host_os in
+      aix4* | aix5*)
+	# All AIX code is PIC.
+	if test "$host_cpu" = ia64; then
+	  # AIX 5 now supports IA64 processor
+	  lt_prog_compiler_static_CXX='-Bstatic'
+	else
+	  lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
+	fi
+	;;
+      chorus*)
+	case $cc_basename in
+	cxch68*)
+	  # Green Hills C++ Compiler
+	  # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+	  ;;
+	esac
+	;;
+       darwin*)
+         # PIC is the default on this platform
+         # Common symbols not allowed in MH_DYLIB files
+         case $cc_basename in
+           xlc*)
+           lt_prog_compiler_pic_CXX='-qnocommon'
+           lt_prog_compiler_wl_CXX='-Wl,'
+           ;;
+         esac
+       ;;
+      dgux*)
+	case $cc_basename in
+	  ec++*)
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    ;;
+	  ghcx*)
+	    # Green Hills C++ Compiler
+	    lt_prog_compiler_pic_CXX='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      freebsd* | kfreebsd*-gnu | dragonfly*)
+	# FreeBSD uses GNU C++
+	;;
+      hpux9* | hpux10* | hpux11*)
+	case $cc_basename in
+	  CC*)
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
+	    if test "$host_cpu" != ia64; then
+	      lt_prog_compiler_pic_CXX='+Z'
+	    fi
+	    ;;
+	  aCC*)
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
+	    case $host_cpu in
+	    hppa*64*|ia64*)
+	      # +Z the default
+	      ;;
+	    *)
+	      lt_prog_compiler_pic_CXX='+Z'
+	      ;;
+	    esac
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      interix*)
+	# This is c89, which is MS Visual C++ (no shared libs)
+	# Anyone wants to do a port?
+	;;
+      irix5* | irix6* | nonstopux*)
+	case $cc_basename in
+	  CC*)
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_static_CXX='-non_shared'
+	    # CC pic flag -KPIC is the default.
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      linux*)
+	case $cc_basename in
+	  KCC*)
+	    # KAI C++ Compiler
+	    lt_prog_compiler_wl_CXX='--backend -Wl,'
+	    lt_prog_compiler_pic_CXX='-fPIC'
+	    ;;
+	  icpc* | ecpc*)
+	    # Intel C++
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    lt_prog_compiler_static_CXX='-static'
+	    ;;
+	  pgCC*)
+	    # Portland Group C++ compiler.
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_pic_CXX='-fpic'
+	    lt_prog_compiler_static_CXX='-Bstatic'
+	    ;;
+	  cxx*)
+	    # Compaq C++
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    lt_prog_compiler_pic_CXX=
+	    lt_prog_compiler_static_CXX='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      lynxos*)
+	;;
+      m88k*)
+	;;
+      mvs*)
+	case $cc_basename in
+	  cxx*)
+	    lt_prog_compiler_pic_CXX='-W c,exportall'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      netbsd*)
+	;;
+      osf3* | osf4* | osf5*)
+	case $cc_basename in
+	  KCC*)
+	    lt_prog_compiler_wl_CXX='--backend -Wl,'
+	    ;;
+	  RCC*)
+	    # Rational C++ 2.4.1
+	    lt_prog_compiler_pic_CXX='-pic'
+	    ;;
+	  cxx*)
+	    # Digital/Compaq C++
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    lt_prog_compiler_pic_CXX=
+	    lt_prog_compiler_static_CXX='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      psos*)
+	;;
+      solaris*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    lt_prog_compiler_static_CXX='-Bstatic'
+	    lt_prog_compiler_wl_CXX='-Qoption ld '
+	    ;;
+	  gcx*)
+	    # Green Hills C++ Compiler
+	    lt_prog_compiler_pic_CXX='-PIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sunos4*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.x
+	    lt_prog_compiler_pic_CXX='-pic'
+	    lt_prog_compiler_static_CXX='-Bstatic'
+	    ;;
+	  lcc*)
+	    # Lucid
+	    lt_prog_compiler_pic_CXX='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      tandem*)
+	case $cc_basename in
+	  NCC*)
+	    # NonStop-UX NCC 3.20
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+	case $cc_basename in
+	  CC*)
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    lt_prog_compiler_static_CXX='-Bstatic'
+	    ;;
+	esac
+	;;
+      vxworks*)
+	;;
+      *)
+	lt_prog_compiler_can_build_shared_CXX=no
+	;;
+    esac
+  fi
+
+{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6; }
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_CXX"; then
+
+{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6; }
+if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_pic_works_CXX=no
+  ac_outfile=conftest.$ac_objext
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:24961: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:24965: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_prog_compiler_pic_works_CXX=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6; }
+
+if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then
+    case $lt_prog_compiler_pic_CXX in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
+     esac
+else
+    lt_prog_compiler_pic_CXX=
+     lt_prog_compiler_can_build_shared_CXX=no
+fi
+
+fi
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic_CXX=
+    ;;
+  *)
+    lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
+    ;;
+esac
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
+{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
+if test "${lt_prog_compiler_static_works_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_static_works_CXX=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+   printf "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_prog_compiler_static_works_CXX=yes
+       fi
+     else
+       lt_prog_compiler_static_works_CXX=yes
+     fi
+   fi
+   $rm conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5
+echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6; }
+
+if test x"$lt_prog_compiler_static_works_CXX" = xyes; then
+    :
+else
+    lt_prog_compiler_static_CXX=
+fi
+
+
+{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
+if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_c_o_CXX=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:25065: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:25069: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o_CXX=yes
+     fi
+   fi
+   chmod u+w . 2>&5
+   $rm conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+   $rm out/* && rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+
+fi
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6; }
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  { echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6; }
+  if test "$hard_links" = no; then
+    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+
+{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
+
+  export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  case $host_os in
+  aix4* | aix5*)
+    # If we're using GNU nm, then we don't want the "-C" option.
+    # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+      export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+    else
+      export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+    fi
+    ;;
+  pw32*)
+    export_symbols_cmds_CXX="$ltdll_cmds"
+  ;;
+  cygwin* | mingw*)
+    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  *)
+    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  esac
+
+{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
+echo "${ECHO_T}$ld_shlibs_CXX" >&6; }
+test "$ld_shlibs_CXX" = no && can_build_shared=no
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_CXX" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc_CXX=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $archive_cmds_CXX in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
+      $rm conftest*
+      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$lt_prog_compiler_wl_CXX
+	pic_flag=$lt_prog_compiler_pic_CXX
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
+        allow_undefined_flag_CXX=
+        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+  (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+        then
+	  archive_cmds_need_lc_CXX=no
+        else
+	  archive_cmds_need_lc_CXX=yes
+        fi
+        allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5
+echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6; }
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+if test "$GCC" = yes; then
+  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+  else
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+  fi
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix4* | aix5*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[45]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+  if test "$GCC" = yes; then
+    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+  else
+    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+  fi
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+kfreebsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[123]*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  freebsd*) # from 4.6 on
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext_cmds='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+interix3*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # find out which ABI we are using
+  libsuff=
+  case "$host_cpu" in
+  x86_64*|s390x*|powerpc64*)
+    echo '#line 25601 "configure"' > conftest.$ac_ext
+    if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+      case `/usr/bin/file conftest.$ac_objext` in
+      *64-bit*)
+        libsuff=64
+        sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+        ;;
+      esac
+    fi
+    rm -rf conftest*
+    ;;
+  esac
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/^	 *//;s/#.*//;/^[^\/]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+knetbsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+    *)                         need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[89] | openbsd2.[89].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+    shlibpath_overrides_runpath=no
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    shlibpath_overrides_runpath=yes
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6; }
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
+hardcode_action_CXX=
+if test -n "$hardcode_libdir_flag_spec_CXX" || \
+   test -n "$runpath_var_CXX" || \
+   test "X$hardcode_automatic_CXX" = "Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$hardcode_direct_CXX" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
+     test "$hardcode_minus_L_CXX" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action_CXX=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action_CXX=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action_CXX=unsupported
+fi
+{ echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5
+echo "${ECHO_T}$hardcode_action_CXX" >&6; }
+
+if test "$hardcode_action_CXX" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler_CXX \
+    CC_CXX \
+    LD_CXX \
+    lt_prog_compiler_wl_CXX \
+    lt_prog_compiler_pic_CXX \
+    lt_prog_compiler_static_CXX \
+    lt_prog_compiler_no_builtin_flag_CXX \
+    export_dynamic_flag_spec_CXX \
+    thread_safe_flag_spec_CXX \
+    whole_archive_flag_spec_CXX \
+    enable_shared_with_static_runtimes_CXX \
+    old_archive_cmds_CXX \
+    old_archive_from_new_cmds_CXX \
+    predep_objects_CXX \
+    postdep_objects_CXX \
+    predeps_CXX \
+    postdeps_CXX \
+    compiler_lib_search_path_CXX \
+    archive_cmds_CXX \
+    archive_expsym_cmds_CXX \
+    postinstall_cmds_CXX \
+    postuninstall_cmds_CXX \
+    old_archive_from_expsyms_cmds_CXX \
+    allow_undefined_flag_CXX \
+    no_undefined_flag_CXX \
+    export_symbols_cmds_CXX \
+    hardcode_libdir_flag_spec_CXX \
+    hardcode_libdir_flag_spec_ld_CXX \
+    hardcode_libdir_separator_CXX \
+    hardcode_automatic_CXX \
+    module_cmds_CXX \
+    module_expsym_cmds_CXX \
+    lt_cv_prog_compiler_c_o_CXX \
+    exclude_expsyms_CXX \
+    include_expsyms_CXX; do
+
+    case $var in
+    old_archive_cmds_CXX | \
+    old_archive_from_new_cmds_CXX | \
+    archive_cmds_CXX | \
+    archive_expsym_cmds_CXX | \
+    module_cmds_CXX | \
+    module_expsym_cmds_CXX | \
+    old_archive_from_expsyms_cmds_CXX | \
+    export_symbols_cmds_CXX | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
+
+cfgfile="$ofile"
+
+  cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_CXX
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
+# A language-specific compiler.
+CC=$lt_compiler_CXX
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_CXX
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_CXX
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_CXX
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_CXX
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_CXX
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_CXX
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_CXX
+archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_CXX
+module_expsym_cmds=$lt_module_expsym_cmds_CXX
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_CXX
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_CXX
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_CXX
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_CXX
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_CXX
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_CXX
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_CXX
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_CXX
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_CXX
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_CXX
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_CXX
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path_CXX"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_CXX
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_CXX
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_CXX
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_CXX
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC=$lt_save_CC
+LDCXX=$LD
+LD=$lt_save_LD
+GCC=$lt_save_GCC
+with_gnu_ldcxx=$with_gnu_ld
+with_gnu_ld=$lt_save_with_gnu_ld
+lt_cv_path_LDCXX=$lt_cv_path_LD
+lt_cv_path_LD=$lt_save_path_LD
+lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+
+	else
+	  tagname=""
+	fi
+	;;
+
+      F77)
+	if test -n "$F77" && test "X$F77" != "Xno"; then
+
+ac_ext=f
+ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
+ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_f77_compiler_gnu
+
+
+archive_cmds_need_lc_F77=no
+allow_undefined_flag_F77=
+always_export_symbols_F77=no
+archive_expsym_cmds_F77=
+export_dynamic_flag_spec_F77=
+hardcode_direct_F77=no
+hardcode_libdir_flag_spec_F77=
+hardcode_libdir_flag_spec_ld_F77=
+hardcode_libdir_separator_F77=
+hardcode_minus_L_F77=no
+hardcode_automatic_F77=no
+module_cmds_F77=
+module_expsym_cmds_F77=
+link_all_deplibs_F77=unknown
+old_archive_cmds_F77=$old_archive_cmds
+no_undefined_flag_F77=
+whole_archive_flag_spec_F77=
+enable_shared_with_static_runtimes_F77=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+objext_F77=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="      subroutine t\n      return\n      end\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="      program t\n      end\n"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${F77-"f77"}
+compiler=$CC
+compiler_F77=$CC
+for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; }
+{ echo "$as_me:$LINENO: result: $can_build_shared" >&5
+echo "${ECHO_T}$can_build_shared" >&6; }
+
+{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; }
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case $host_os in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+aix4* | aix5*)
+  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+    test "$enable_shared" = yes && enable_static=no
+  fi
+  ;;
+esac
+{ echo "$as_me:$LINENO: result: $enable_shared" >&5
+echo "${ECHO_T}$enable_shared" >&6; }
+
+{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5
+echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; }
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+{ echo "$as_me:$LINENO: result: $enable_static" >&5
+echo "${ECHO_T}$enable_static" >&6; }
+
+GCC_F77="$G77"
+LD_F77="$LD"
+
+lt_prog_compiler_wl_F77=
+lt_prog_compiler_pic_F77=
+lt_prog_compiler_static_F77=
+
+{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
+
+  if test "$GCC" = yes; then
+    lt_prog_compiler_wl_F77='-Wl,'
+    lt_prog_compiler_static_F77='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_F77='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
+      ;;
+
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic_F77='-DDLL_EXPORT'
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic_F77='-fno-common'
+      ;;
+
+    interix3*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      lt_prog_compiler_can_build_shared_F77=no
+      enable_shared=no
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic_F77=-Kconform_pic
+      fi
+      ;;
+
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic_F77='-fPIC'
+	;;
+      esac
+      ;;
+
+    *)
+      lt_prog_compiler_pic_F77='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_F77='-Bstatic'
+      else
+	lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+      darwin*)
+        # PIC is the default on this platform
+        # Common symbols not allowed in MH_DYLIB files
+       case $cc_basename in
+         xlc*)
+         lt_prog_compiler_pic_F77='-qnocommon'
+         lt_prog_compiler_wl_F77='-Wl,'
+         ;;
+       esac
+       ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic_F77='-DDLL_EXPORT'
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic_F77='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      lt_prog_compiler_static_F77='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      # PIC (with -KPIC) is the default.
+      lt_prog_compiler_static_F77='-non_shared'
+      ;;
+
+    newsos6)
+      lt_prog_compiler_pic_F77='-KPIC'
+      lt_prog_compiler_static_F77='-Bstatic'
+      ;;
+
+    linux*)
+      case $cc_basename in
+      icc* | ecc*)
+	lt_prog_compiler_wl_F77='-Wl,'
+	lt_prog_compiler_pic_F77='-KPIC'
+	lt_prog_compiler_static_F77='-static'
+        ;;
+      pgcc* | pgf77* | pgf90* | pgf95*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	lt_prog_compiler_wl_F77='-Wl,'
+	lt_prog_compiler_pic_F77='-fpic'
+	lt_prog_compiler_static_F77='-Bstatic'
+        ;;
+      ccc*)
+        lt_prog_compiler_wl_F77='-Wl,'
+        # All Alpha code is PIC.
+        lt_prog_compiler_static_F77='-non_shared'
+        ;;
+      esac
+      ;;
+
+    osf3* | osf4* | osf5*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      # All OSF/1 code is PIC.
+      lt_prog_compiler_static_F77='-non_shared'
+      ;;
+
+    solaris*)
+      lt_prog_compiler_pic_F77='-KPIC'
+      lt_prog_compiler_static_F77='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95*)
+	lt_prog_compiler_wl_F77='-Qoption ld ';;
+      *)
+	lt_prog_compiler_wl_F77='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      lt_prog_compiler_wl_F77='-Qoption ld '
+      lt_prog_compiler_pic_F77='-PIC'
+      lt_prog_compiler_static_F77='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      lt_prog_compiler_pic_F77='-KPIC'
+      lt_prog_compiler_static_F77='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	lt_prog_compiler_pic_F77='-Kconform_pic'
+	lt_prog_compiler_static_F77='-Bstatic'
+      fi
+      ;;
+
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      lt_prog_compiler_pic_F77='-KPIC'
+      lt_prog_compiler_static_F77='-Bstatic'
+      ;;
+
+    unicos*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      lt_prog_compiler_can_build_shared_F77=no
+      ;;
+
+    uts4*)
+      lt_prog_compiler_pic_F77='-pic'
+      lt_prog_compiler_static_F77='-Bstatic'
+      ;;
+
+    *)
+      lt_prog_compiler_can_build_shared_F77=no
+      ;;
+    esac
+  fi
+
+{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6; }
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_F77"; then
+
+{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6; }
+if test "${lt_prog_compiler_pic_works_F77+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_pic_works_F77=no
+  ac_outfile=conftest.$ac_objext
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic_F77"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:26656: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:26660: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_prog_compiler_pic_works_F77=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6; }
+
+if test x"$lt_prog_compiler_pic_works_F77" = xyes; then
+    case $lt_prog_compiler_pic_F77 in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;;
+     esac
+else
+    lt_prog_compiler_pic_F77=
+     lt_prog_compiler_can_build_shared_F77=no
+fi
+
+fi
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic_F77=
+    ;;
+  *)
+    lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77"
+    ;;
+esac
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\"
+{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
+if test "${lt_prog_compiler_static_works_F77+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_static_works_F77=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+   printf "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_prog_compiler_static_works_F77=yes
+       fi
+     else
+       lt_prog_compiler_static_works_F77=yes
+     fi
+   fi
+   $rm conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5
+echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6; }
+
+if test x"$lt_prog_compiler_static_works_F77" = xyes; then
+    :
+else
+    lt_prog_compiler_static_F77=
+fi
+
+
+{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
+if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_c_o_F77=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:26760: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:26764: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o_F77=yes
+     fi
+   fi
+   chmod u+w . 2>&5
+   $rm conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+   $rm out/* && rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+
+fi
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6; }
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  { echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6; }
+  if test "$hard_links" = no; then
+    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+
+{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
+
+  runpath_var=
+  allow_undefined_flag_F77=
+  enable_shared_with_static_runtimes_F77=no
+  archive_cmds_F77=
+  archive_expsym_cmds_F77=
+  old_archive_From_new_cmds_F77=
+  old_archive_from_expsyms_cmds_F77=
+  export_dynamic_flag_spec_F77=
+  whole_archive_flag_spec_F77=
+  thread_safe_flag_spec_F77=
+  hardcode_libdir_flag_spec_F77=
+  hardcode_libdir_flag_spec_ld_F77=
+  hardcode_libdir_separator_F77=
+  hardcode_direct_F77=no
+  hardcode_minus_L_F77=no
+  hardcode_shlibpath_var_F77=unsupported
+  link_all_deplibs_F77=unknown
+  hardcode_automatic_F77=no
+  module_cmds_F77=
+  module_expsym_cmds_F77=
+  always_export_symbols_F77=no
+  export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  include_expsyms_F77=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_"
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  extract_expsyms_cmds=
+  # Just being paranoid about ensuring that cc_basename is set.
+  for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+  case $host_os in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  ld_shlibs_F77=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir'
+    export_dynamic_flag_spec_F77='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+	whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      else
+  	whole_archive_flag_spec_F77=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>/dev/null` in
+      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix3* | aix4* | aix5*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	ld_shlibs_F77=no
+	cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_minus_L_F77=yes
+
+      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can't use
+      # them.
+      ld_shlibs_F77=no
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	allow_undefined_flag_F77=unsupported
+	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	ld_shlibs_F77=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless,
+      # as there is no search path for DLLs.
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      allow_undefined_flag_F77=unsupported
+      always_export_symbols_F77=no
+      enable_shared_with_static_runtimes_F77=yes
+      export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+	ld_shlibs_F77=no
+      fi
+      ;;
+
+    interix3*)
+      hardcode_direct_F77=no
+      hardcode_shlibpath_var_F77=no
+      hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+      export_dynamic_flag_spec_F77='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    linux*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	tmp_addflag=
+	case $cc_basename,$host_cpu in
+	pgcc*)				# Portland Group C compiler
+	  whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
+	  whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)		# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	esac
+	archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+	if test $supports_anon_versioning = yes; then
+	  archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~
+  cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+  $echo "local: *; };" >> $output_objdir/$libname.ver~
+	  $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	fi
+      else
+	ld_shlibs_F77=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+	ld_shlibs_F77=no
+	cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs_F77=no
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+	ld_shlibs_F77=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	    hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+	    archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
+	    archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
+	  else
+	    ld_shlibs_F77=no
+	  fi
+	;;
+      esac
+      ;;
+
+    sunos4*)
+      archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      hardcode_direct_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs_F77=no
+      fi
+      ;;
+    esac
+
+    if test "$ld_shlibs_F77" = no; then
+      runpath_var=
+      hardcode_libdir_flag_spec_F77=
+      export_dynamic_flag_spec_F77=
+      whole_archive_flag_spec_F77=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      allow_undefined_flag_F77=unsupported
+      always_export_symbols_F77=yes
+      archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L_F77=yes
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	hardcode_direct_F77=unsupported
+      fi
+      ;;
+
+    aix4* | aix5*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+	  export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	else
+	  export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# need to do runtime linking.
+	case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+	  for ld_flag in $LDFLAGS; do
+  	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+  	    aix_use_runtimelinking=yes
+  	    break
+  	  fi
+	  done
+	  ;;
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      archive_cmds_F77=''
+      hardcode_direct_F77=yes
+      hardcode_libdir_separator_F77=':'
+      link_all_deplibs_F77=yes
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[012]|aix4.[012].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" && \
+  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	  then
+  	  # We have reworked collect2
+  	  hardcode_direct_F77=yes
+	  else
+  	  # We have old collect2
+  	  hardcode_direct_F77=unsupported
+  	  # It fails to find uninstalled libraries when the uninstalled
+  	  # path is not listed in the libpath.  Setting hardcode_minus_L
+  	  # to unsupported forces relinking
+  	  hardcode_minus_L_F77=yes
+  	  hardcode_libdir_flag_spec_F77='-L$libdir'
+  	  hardcode_libdir_separator_F77=
+	  fi
+	  ;;
+	esac
+	shared_flag='-shared'
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag="$shared_flag "'${wl}-G'
+	fi
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+  	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='${wl}-G'
+	  else
+	    shared_flag='${wl}-bM:SRE'
+	  fi
+	fi
+      fi
+
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      always_export_symbols_F77=yes
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	allow_undefined_flag_F77='-berok'
+       # Determine the default libpath from the value encoded in an empty executable.
+       cat >conftest.$ac_ext <<_ACEOF
+      program main
+
+      end
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_f77_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+       hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
+	archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+       else
+	if test "$host_cpu" = ia64; then
+	  hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib'
+	  allow_undefined_flag_F77="-z nodefs"
+	  archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an empty executable.
+	 cat >conftest.$ac_ext <<_ACEOF
+      program main
+
+      end
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_f77_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+	 hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  no_undefined_flag_F77=' ${wl}-bernotok'
+	  allow_undefined_flag_F77=' ${wl}-berok'
+	  # Exported symbols can be pulled into shared objects from archives
+	  whole_archive_flag_spec_F77='$convenience'
+	  archive_cmds_need_lc_F77=yes
+	  # This is similar to how AIX traditionally builds its shared libraries.
+	  archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_minus_L_F77=yes
+      # see comment about different semantics on the GNU ld section
+      ld_shlibs_F77=no
+      ;;
+
+    bsdi[45]*)
+      export_dynamic_flag_spec_F77=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec_F77=' '
+      allow_undefined_flag_F77=unsupported
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext_cmds=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      old_archive_From_new_cmds_F77='true'
+      # FIXME: Should let the user specify the lib program.
+      old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs'
+      fix_srcfile_path_F77='`cygpath -w "$srcfile"`'
+      enable_shared_with_static_runtimes_F77=yes
+      ;;
+
+    darwin* | rhapsody*)
+      case $host_os in
+        rhapsody* | darwin1.[012])
+         allow_undefined_flag_F77='${wl}-undefined ${wl}suppress'
+         ;;
+       *) # Darwin 1.3 on
+         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+           allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+         else
+           case ${MACOSX_DEPLOYMENT_TARGET} in
+             10.[012])
+               allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+               ;;
+             10.*)
+               allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup'
+               ;;
+           esac
+         fi
+         ;;
+      esac
+      archive_cmds_need_lc_F77=no
+      hardcode_direct_F77=no
+      hardcode_automatic_F77=yes
+      hardcode_shlibpath_var_F77=unsupported
+      whole_archive_flag_spec_F77=''
+      link_all_deplibs_F77=yes
+    if test "$GCC" = yes ; then
+    	output_verbose_link_cmd='echo'
+        archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+      module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+      archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    else
+      case $cc_basename in
+        xlc*)
+         output_verbose_link_cmd='echo'
+         archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+         module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+         archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          ;;
+       *)
+         ld_shlibs_F77=no
+          ;;
+      esac
+    fi
+      ;;
+
+    dgux*)
+      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    freebsd1*)
+      ld_shlibs_F77=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      hardcode_libdir_flag_spec_F77='-R$libdir'
+      hardcode_direct_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_F77=yes
+      hardcode_minus_L_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | kfreebsd*-gnu | dragonfly*)
+      archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      hardcode_libdir_flag_spec_F77='-R$libdir'
+      hardcode_direct_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator_F77=:
+      hardcode_direct_F77=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      hardcode_minus_L_F77=yes
+      export_dynamic_flag_spec_F77='${wl}-E'
+      ;;
+
+    hpux10*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator_F77=:
+
+	hardcode_direct_F77=yes
+	export_dynamic_flag_spec_F77='${wl}-E'
+
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	hardcode_minus_L_F77=yes
+      fi
+      ;;
+
+    hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator_F77=:
+
+	case $host_cpu in
+	hppa*64*|ia64*)
+	  hardcode_libdir_flag_spec_ld_F77='+b $libdir'
+	  hardcode_direct_F77=no
+	  hardcode_shlibpath_var_F77=no
+	  ;;
+	*)
+	  hardcode_direct_F77=yes
+	  export_dynamic_flag_spec_F77='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  hardcode_minus_L_F77=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_ld_F77='-rpath $libdir'
+      fi
+      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_F77=:
+      link_all_deplibs_F77=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      hardcode_libdir_flag_spec_F77='-R$libdir'
+      hardcode_direct_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    newsos6)
+      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_F77=yes
+      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_F77=:
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    openbsd*)
+      hardcode_direct_F77=yes
+      hardcode_shlibpath_var_F77=no
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+	export_dynamic_flag_spec_F77='${wl}-E'
+      else
+       case $host_os in
+	 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+	   archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	   hardcode_libdir_flag_spec_F77='-R$libdir'
+	   ;;
+	 *)
+	   archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	   hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+	   ;;
+       esac
+      fi
+      ;;
+
+    os2*)
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_minus_L_F77=yes
+      allow_undefined_flag_F77=unsupported
+      archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	allow_undefined_flag_F77=' -expect_unresolved \*'
+	archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_F77=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+      else
+	allow_undefined_flag_F77=' -expect_unresolved \*'
+	archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	hardcode_libdir_flag_spec_F77='-rpath $libdir'
+      fi
+      hardcode_libdir_separator_F77=:
+      ;;
+
+    solaris*)
+      no_undefined_flag_F77=' -z text'
+      if test "$GCC" = yes; then
+	wlarc='${wl}'
+	archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+      else
+	wlarc=''
+	archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      fi
+      hardcode_libdir_flag_spec_F77='-R$libdir'
+      hardcode_shlibpath_var_F77=no
+      case $host_os in
+      solaris2.[0-5] | solaris2.[0-5].*) ;;
+      *)
+ 	# The compiler driver will combine linker options so we
+ 	# cannot just pass the convience library names through
+ 	# without $wl, iff we do not link with $LD.
+ 	# Luckily, gcc supports the same syntax we need for Sun Studio.
+ 	# Supported since Solaris 2.6 (maybe 2.5.1?)
+ 	case $wlarc in
+ 	'')
+ 	  whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;;
+ 	*)
+ 	  whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+ 	esac ;;
+      esac
+      link_all_deplibs_F77=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_direct_F77=yes
+      hardcode_minus_L_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct_F77=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  reload_cmds_F77='$CC -r -o $output$reload_objs'
+	  hardcode_direct_F77=no
+        ;;
+	motorola)
+	  archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    sysv4.3*)
+      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var_F77=no
+      export_dynamic_flag_spec_F77='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	hardcode_shlibpath_var_F77=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	ld_shlibs_F77=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*)
+      no_undefined_flag_F77='${wl}-z,text'
+      archive_cmds_need_lc_F77=no
+      hardcode_shlibpath_var_F77=no
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      no_undefined_flag_F77='${wl}-z,text'
+      allow_undefined_flag_F77='${wl}-z,nodefs'
+      archive_cmds_need_lc_F77=no
+      hardcode_shlibpath_var_F77=no
+      hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+      hardcode_libdir_separator_F77=':'
+      link_all_deplibs_F77=yes
+      export_dynamic_flag_spec_F77='${wl}-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    *)
+      ld_shlibs_F77=no
+      ;;
+    esac
+  fi
+
+{ echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5
+echo "${ECHO_T}$ld_shlibs_F77" >&6; }
+test "$ld_shlibs_F77" = no && can_build_shared=no
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_F77" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc_F77=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $archive_cmds_F77 in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
+      $rm conftest*
+      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$lt_prog_compiler_wl_F77
+	pic_flag=$lt_prog_compiler_pic_F77
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$allow_undefined_flag_F77
+        allow_undefined_flag_F77=
+        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+  (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+        then
+	  archive_cmds_need_lc_F77=no
+        else
+	  archive_cmds_need_lc_F77=yes
+        fi
+        allow_undefined_flag_F77=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5
+echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6; }
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+if test "$GCC" = yes; then
+  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+  else
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+  fi
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix4* | aix5*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[45]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+  if test "$GCC" = yes; then
+    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+  else
+    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+  fi
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+kfreebsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[123]*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  freebsd*) # from 4.6 on
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext_cmds='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+interix3*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # find out which ABI we are using
+  libsuff=
+  case "$host_cpu" in
+  x86_64*|s390x*|powerpc64*)
+    echo '#line 28205 "configure"' > conftest.$ac_ext
+    if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+      case `/usr/bin/file conftest.$ac_objext` in
+      *64-bit*)
+        libsuff=64
+        sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+        ;;
+      esac
+    fi
+    rm -rf conftest*
+    ;;
+  esac
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/^	 *//;s/#.*//;/^[^\/]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+knetbsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+    *)                         need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[89] | openbsd2.[89].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+    shlibpath_overrides_runpath=no
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    shlibpath_overrides_runpath=yes
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6; }
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
+hardcode_action_F77=
+if test -n "$hardcode_libdir_flag_spec_F77" || \
+   test -n "$runpath_var_F77" || \
+   test "X$hardcode_automatic_F77" = "Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$hardcode_direct_F77" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no &&
+     test "$hardcode_minus_L_F77" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action_F77=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action_F77=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action_F77=unsupported
+fi
+{ echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5
+echo "${ECHO_T}$hardcode_action_F77" >&6; }
+
+if test "$hardcode_action_F77" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler_F77 \
+    CC_F77 \
+    LD_F77 \
+    lt_prog_compiler_wl_F77 \
+    lt_prog_compiler_pic_F77 \
+    lt_prog_compiler_static_F77 \
+    lt_prog_compiler_no_builtin_flag_F77 \
+    export_dynamic_flag_spec_F77 \
+    thread_safe_flag_spec_F77 \
+    whole_archive_flag_spec_F77 \
+    enable_shared_with_static_runtimes_F77 \
+    old_archive_cmds_F77 \
+    old_archive_from_new_cmds_F77 \
+    predep_objects_F77 \
+    postdep_objects_F77 \
+    predeps_F77 \
+    postdeps_F77 \
+    compiler_lib_search_path_F77 \
+    archive_cmds_F77 \
+    archive_expsym_cmds_F77 \
+    postinstall_cmds_F77 \
+    postuninstall_cmds_F77 \
+    old_archive_from_expsyms_cmds_F77 \
+    allow_undefined_flag_F77 \
+    no_undefined_flag_F77 \
+    export_symbols_cmds_F77 \
+    hardcode_libdir_flag_spec_F77 \
+    hardcode_libdir_flag_spec_ld_F77 \
+    hardcode_libdir_separator_F77 \
+    hardcode_automatic_F77 \
+    module_cmds_F77 \
+    module_expsym_cmds_F77 \
+    lt_cv_prog_compiler_c_o_F77 \
+    exclude_expsyms_F77 \
+    include_expsyms_F77; do
+
+    case $var in
+    old_archive_cmds_F77 | \
+    old_archive_from_new_cmds_F77 | \
+    archive_cmds_F77 | \
+    archive_expsym_cmds_F77 | \
+    module_cmds_F77 | \
+    module_expsym_cmds_F77 | \
+    old_archive_from_expsyms_cmds_F77 | \
+    export_symbols_cmds_F77 | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
+
+cfgfile="$ofile"
+
+  cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_F77
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
+# A language-specific compiler.
+CC=$lt_compiler_F77
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_F77
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_F77
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_F77
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_F77
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_F77
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_F77
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_F77
+archive_expsym_cmds=$lt_archive_expsym_cmds_F77
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_F77
+module_expsym_cmds=$lt_module_expsym_cmds_F77
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_F77
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_F77
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_F77
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_F77
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_F77
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_F77
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_F77
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_F77
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_F77
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_F77
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_F77
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_F77
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_F77
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path_F77"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_F77
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_F77
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_F77
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_F77
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+	else
+	  tagname=""
+	fi
+	;;
+
+      GCJ)
+	if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
+
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+objext_GCJ=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${GCJ-"gcj"}
+compiler=$CC
+compiler_GCJ=$CC
+for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+archive_cmds_need_lc_GCJ=no
+
+old_archive_cmds_GCJ=$old_archive_cmds
+
+
+lt_prog_compiler_no_builtin_flag_GCJ=
+
+if test "$GCC" = yes; then
+  lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin'
+
+
+{ echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; }
+if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_rtti_exceptions=no
+  ac_outfile=conftest.$ac_objext
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="-fno-rtti -fno-exceptions"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:28979: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:28983: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_rtti_exceptions=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+    lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions"
+else
+    :
+fi
+
+fi
+
+lt_prog_compiler_wl_GCJ=
+lt_prog_compiler_pic_GCJ=
+lt_prog_compiler_static_GCJ=
+
+{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
+
+  if test "$GCC" = yes; then
+    lt_prog_compiler_wl_GCJ='-Wl,'
+    lt_prog_compiler_static_GCJ='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_GCJ='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
+      ;;
+
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic_GCJ='-fno-common'
+      ;;
+
+    interix3*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      lt_prog_compiler_can_build_shared_GCJ=no
+      enable_shared=no
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic_GCJ=-Kconform_pic
+      fi
+      ;;
+
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic_GCJ='-fPIC'
+	;;
+      esac
+      ;;
+
+    *)
+      lt_prog_compiler_pic_GCJ='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_GCJ='-Bstatic'
+      else
+	lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+      darwin*)
+        # PIC is the default on this platform
+        # Common symbols not allowed in MH_DYLIB files
+       case $cc_basename in
+         xlc*)
+         lt_prog_compiler_pic_GCJ='-qnocommon'
+         lt_prog_compiler_wl_GCJ='-Wl,'
+         ;;
+       esac
+       ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic_GCJ='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      # PIC (with -KPIC) is the default.
+      lt_prog_compiler_static_GCJ='-non_shared'
+      ;;
+
+    newsos6)
+      lt_prog_compiler_pic_GCJ='-KPIC'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      ;;
+
+    linux*)
+      case $cc_basename in
+      icc* | ecc*)
+	lt_prog_compiler_wl_GCJ='-Wl,'
+	lt_prog_compiler_pic_GCJ='-KPIC'
+	lt_prog_compiler_static_GCJ='-static'
+        ;;
+      pgcc* | pgf77* | pgf90* | pgf95*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	lt_prog_compiler_wl_GCJ='-Wl,'
+	lt_prog_compiler_pic_GCJ='-fpic'
+	lt_prog_compiler_static_GCJ='-Bstatic'
+        ;;
+      ccc*)
+        lt_prog_compiler_wl_GCJ='-Wl,'
+        # All Alpha code is PIC.
+        lt_prog_compiler_static_GCJ='-non_shared'
+        ;;
+      esac
+      ;;
+
+    osf3* | osf4* | osf5*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      # All OSF/1 code is PIC.
+      lt_prog_compiler_static_GCJ='-non_shared'
+      ;;
+
+    solaris*)
+      lt_prog_compiler_pic_GCJ='-KPIC'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95*)
+	lt_prog_compiler_wl_GCJ='-Qoption ld ';;
+      *)
+	lt_prog_compiler_wl_GCJ='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      lt_prog_compiler_wl_GCJ='-Qoption ld '
+      lt_prog_compiler_pic_GCJ='-PIC'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      lt_prog_compiler_pic_GCJ='-KPIC'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	lt_prog_compiler_pic_GCJ='-Kconform_pic'
+	lt_prog_compiler_static_GCJ='-Bstatic'
+      fi
+      ;;
+
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      lt_prog_compiler_pic_GCJ='-KPIC'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      ;;
+
+    unicos*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      lt_prog_compiler_can_build_shared_GCJ=no
+      ;;
+
+    uts4*)
+      lt_prog_compiler_pic_GCJ='-pic'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      ;;
+
+    *)
+      lt_prog_compiler_can_build_shared_GCJ=no
+      ;;
+    esac
+  fi
+
+{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6; }
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_GCJ"; then
+
+{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6; }
+if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_pic_works_GCJ=no
+  ac_outfile=conftest.$ac_objext
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic_GCJ"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:29247: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:29251: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_prog_compiler_pic_works_GCJ=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6; }
+
+if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then
+    case $lt_prog_compiler_pic_GCJ in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;;
+     esac
+else
+    lt_prog_compiler_pic_GCJ=
+     lt_prog_compiler_can_build_shared_GCJ=no
+fi
+
+fi
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic_GCJ=
+    ;;
+  *)
+    lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ"
+    ;;
+esac
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\"
+{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
+if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_static_works_GCJ=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+   printf "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_prog_compiler_static_works_GCJ=yes
+       fi
+     else
+       lt_prog_compiler_static_works_GCJ=yes
+     fi
+   fi
+   $rm conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5
+echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6; }
+
+if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then
+    :
+else
+    lt_prog_compiler_static_GCJ=
+fi
+
+
+{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
+if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_c_o_GCJ=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:29351: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:29355: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o_GCJ=yes
+     fi
+   fi
+   chmod u+w . 2>&5
+   $rm conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+   $rm out/* && rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+
+fi
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6; }
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  { echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6; }
+  if test "$hard_links" = no; then
+    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+
+{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
+
+  runpath_var=
+  allow_undefined_flag_GCJ=
+  enable_shared_with_static_runtimes_GCJ=no
+  archive_cmds_GCJ=
+  archive_expsym_cmds_GCJ=
+  old_archive_From_new_cmds_GCJ=
+  old_archive_from_expsyms_cmds_GCJ=
+  export_dynamic_flag_spec_GCJ=
+  whole_archive_flag_spec_GCJ=
+  thread_safe_flag_spec_GCJ=
+  hardcode_libdir_flag_spec_GCJ=
+  hardcode_libdir_flag_spec_ld_GCJ=
+  hardcode_libdir_separator_GCJ=
+  hardcode_direct_GCJ=no
+  hardcode_minus_L_GCJ=no
+  hardcode_shlibpath_var_GCJ=unsupported
+  link_all_deplibs_GCJ=unknown
+  hardcode_automatic_GCJ=no
+  module_cmds_GCJ=
+  module_expsym_cmds_GCJ=
+  always_export_symbols_GCJ=no
+  export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  include_expsyms_GCJ=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_"
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  extract_expsyms_cmds=
+  # Just being paranoid about ensuring that cc_basename is set.
+  for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+  case $host_os in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  ld_shlibs_GCJ=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir'
+    export_dynamic_flag_spec_GCJ='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+	whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      else
+  	whole_archive_flag_spec_GCJ=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>/dev/null` in
+      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix3* | aix4* | aix5*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	ld_shlibs_GCJ=no
+	cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_minus_L_GCJ=yes
+
+      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can't use
+      # them.
+      ld_shlibs_GCJ=no
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	allow_undefined_flag_GCJ=unsupported
+	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	ld_shlibs_GCJ=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless,
+      # as there is no search path for DLLs.
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      allow_undefined_flag_GCJ=unsupported
+      always_export_symbols_GCJ=no
+      enable_shared_with_static_runtimes_GCJ=yes
+      export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+	ld_shlibs_GCJ=no
+      fi
+      ;;
+
+    interix3*)
+      hardcode_direct_GCJ=no
+      hardcode_shlibpath_var_GCJ=no
+      hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+      export_dynamic_flag_spec_GCJ='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    linux*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	tmp_addflag=
+	case $cc_basename,$host_cpu in
+	pgcc*)				# Portland Group C compiler
+	  whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
+	  whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)		# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	esac
+	archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+	if test $supports_anon_versioning = yes; then
+	  archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~
+  cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+  $echo "local: *; };" >> $output_objdir/$libname.ver~
+	  $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	fi
+      else
+	ld_shlibs_GCJ=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+	ld_shlibs_GCJ=no
+	cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs_GCJ=no
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+	ld_shlibs_GCJ=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	    hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+	    archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
+	    archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
+	  else
+	    ld_shlibs_GCJ=no
+	  fi
+	;;
+      esac
+      ;;
+
+    sunos4*)
+      archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      hardcode_direct_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs_GCJ=no
+      fi
+      ;;
+    esac
+
+    if test "$ld_shlibs_GCJ" = no; then
+      runpath_var=
+      hardcode_libdir_flag_spec_GCJ=
+      export_dynamic_flag_spec_GCJ=
+      whole_archive_flag_spec_GCJ=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      allow_undefined_flag_GCJ=unsupported
+      always_export_symbols_GCJ=yes
+      archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L_GCJ=yes
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	hardcode_direct_GCJ=unsupported
+      fi
+      ;;
+
+    aix4* | aix5*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+	  export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	else
+	  export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# need to do runtime linking.
+	case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+	  for ld_flag in $LDFLAGS; do
+  	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+  	    aix_use_runtimelinking=yes
+  	    break
+  	  fi
+	  done
+	  ;;
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      archive_cmds_GCJ=''
+      hardcode_direct_GCJ=yes
+      hardcode_libdir_separator_GCJ=':'
+      link_all_deplibs_GCJ=yes
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[012]|aix4.[012].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" && \
+  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	  then
+  	  # We have reworked collect2
+  	  hardcode_direct_GCJ=yes
+	  else
+  	  # We have old collect2
+  	  hardcode_direct_GCJ=unsupported
+  	  # It fails to find uninstalled libraries when the uninstalled
+  	  # path is not listed in the libpath.  Setting hardcode_minus_L
+  	  # to unsupported forces relinking
+  	  hardcode_minus_L_GCJ=yes
+  	  hardcode_libdir_flag_spec_GCJ='-L$libdir'
+  	  hardcode_libdir_separator_GCJ=
+	  fi
+	  ;;
+	esac
+	shared_flag='-shared'
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag="$shared_flag "'${wl}-G'
+	fi
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+  	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='${wl}-G'
+	  else
+	    shared_flag='${wl}-bM:SRE'
+	  fi
+	fi
+      fi
+
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      always_export_symbols_GCJ=yes
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	allow_undefined_flag_GCJ='-berok'
+       # Determine the default libpath from the value encoded in an empty executable.
+       cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+       hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
+	archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+       else
+	if test "$host_cpu" = ia64; then
+	  hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib'
+	  allow_undefined_flag_GCJ="-z nodefs"
+	  archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an empty executable.
+	 cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+	 hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  no_undefined_flag_GCJ=' ${wl}-bernotok'
+	  allow_undefined_flag_GCJ=' ${wl}-berok'
+	  # Exported symbols can be pulled into shared objects from archives
+	  whole_archive_flag_spec_GCJ='$convenience'
+	  archive_cmds_need_lc_GCJ=yes
+	  # This is similar to how AIX traditionally builds its shared libraries.
+	  archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_minus_L_GCJ=yes
+      # see comment about different semantics on the GNU ld section
+      ld_shlibs_GCJ=no
+      ;;
+
+    bsdi[45]*)
+      export_dynamic_flag_spec_GCJ=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec_GCJ=' '
+      allow_undefined_flag_GCJ=unsupported
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext_cmds=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      old_archive_From_new_cmds_GCJ='true'
+      # FIXME: Should let the user specify the lib program.
+      old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs'
+      fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`'
+      enable_shared_with_static_runtimes_GCJ=yes
+      ;;
+
+    darwin* | rhapsody*)
+      case $host_os in
+        rhapsody* | darwin1.[012])
+         allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress'
+         ;;
+       *) # Darwin 1.3 on
+         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+           allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+         else
+           case ${MACOSX_DEPLOYMENT_TARGET} in
+             10.[012])
+               allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+               ;;
+             10.*)
+               allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup'
+               ;;
+           esac
+         fi
+         ;;
+      esac
+      archive_cmds_need_lc_GCJ=no
+      hardcode_direct_GCJ=no
+      hardcode_automatic_GCJ=yes
+      hardcode_shlibpath_var_GCJ=unsupported
+      whole_archive_flag_spec_GCJ=''
+      link_all_deplibs_GCJ=yes
+    if test "$GCC" = yes ; then
+    	output_verbose_link_cmd='echo'
+        archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+      module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+      archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    else
+      case $cc_basename in
+        xlc*)
+         output_verbose_link_cmd='echo'
+         archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+         module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+         archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          ;;
+       *)
+         ld_shlibs_GCJ=no
+          ;;
+      esac
+    fi
+      ;;
+
+    dgux*)
+      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    freebsd1*)
+      ld_shlibs_GCJ=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      hardcode_libdir_flag_spec_GCJ='-R$libdir'
+      hardcode_direct_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_GCJ=yes
+      hardcode_minus_L_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | kfreebsd*-gnu | dragonfly*)
+      archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      hardcode_libdir_flag_spec_GCJ='-R$libdir'
+      hardcode_direct_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator_GCJ=:
+      hardcode_direct_GCJ=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      hardcode_minus_L_GCJ=yes
+      export_dynamic_flag_spec_GCJ='${wl}-E'
+      ;;
+
+    hpux10*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator_GCJ=:
+
+	hardcode_direct_GCJ=yes
+	export_dynamic_flag_spec_GCJ='${wl}-E'
+
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	hardcode_minus_L_GCJ=yes
+      fi
+      ;;
+
+    hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator_GCJ=:
+
+	case $host_cpu in
+	hppa*64*|ia64*)
+	  hardcode_libdir_flag_spec_ld_GCJ='+b $libdir'
+	  hardcode_direct_GCJ=no
+	  hardcode_shlibpath_var_GCJ=no
+	  ;;
+	*)
+	  hardcode_direct_GCJ=yes
+	  export_dynamic_flag_spec_GCJ='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  hardcode_minus_L_GCJ=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir'
+      fi
+      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_GCJ=:
+      link_all_deplibs_GCJ=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      hardcode_libdir_flag_spec_GCJ='-R$libdir'
+      hardcode_direct_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    newsos6)
+      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_GCJ=yes
+      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_GCJ=:
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    openbsd*)
+      hardcode_direct_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+	export_dynamic_flag_spec_GCJ='${wl}-E'
+      else
+       case $host_os in
+	 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+	   archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	   hardcode_libdir_flag_spec_GCJ='-R$libdir'
+	   ;;
+	 *)
+	   archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	   hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+	   ;;
+       esac
+      fi
+      ;;
+
+    os2*)
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_minus_L_GCJ=yes
+      allow_undefined_flag_GCJ=unsupported
+      archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	allow_undefined_flag_GCJ=' -expect_unresolved \*'
+	archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_GCJ=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+      else
+	allow_undefined_flag_GCJ=' -expect_unresolved \*'
+	archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	hardcode_libdir_flag_spec_GCJ='-rpath $libdir'
+      fi
+      hardcode_libdir_separator_GCJ=:
+      ;;
+
+    solaris*)
+      no_undefined_flag_GCJ=' -z text'
+      if test "$GCC" = yes; then
+	wlarc='${wl}'
+	archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+      else
+	wlarc=''
+	archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      fi
+      hardcode_libdir_flag_spec_GCJ='-R$libdir'
+      hardcode_shlibpath_var_GCJ=no
+      case $host_os in
+      solaris2.[0-5] | solaris2.[0-5].*) ;;
+      *)
+ 	# The compiler driver will combine linker options so we
+ 	# cannot just pass the convience library names through
+ 	# without $wl, iff we do not link with $LD.
+ 	# Luckily, gcc supports the same syntax we need for Sun Studio.
+ 	# Supported since Solaris 2.6 (maybe 2.5.1?)
+ 	case $wlarc in
+ 	'')
+ 	  whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;;
+ 	*)
+ 	  whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+ 	esac ;;
+      esac
+      link_all_deplibs_GCJ=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_direct_GCJ=yes
+      hardcode_minus_L_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct_GCJ=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  reload_cmds_GCJ='$CC -r -o $output$reload_objs'
+	  hardcode_direct_GCJ=no
+        ;;
+	motorola)
+	  archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    sysv4.3*)
+      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var_GCJ=no
+      export_dynamic_flag_spec_GCJ='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	hardcode_shlibpath_var_GCJ=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	ld_shlibs_GCJ=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*)
+      no_undefined_flag_GCJ='${wl}-z,text'
+      archive_cmds_need_lc_GCJ=no
+      hardcode_shlibpath_var_GCJ=no
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      no_undefined_flag_GCJ='${wl}-z,text'
+      allow_undefined_flag_GCJ='${wl}-z,nodefs'
+      archive_cmds_need_lc_GCJ=no
+      hardcode_shlibpath_var_GCJ=no
+      hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+      hardcode_libdir_separator_GCJ=':'
+      link_all_deplibs_GCJ=yes
+      export_dynamic_flag_spec_GCJ='${wl}-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    *)
+      ld_shlibs_GCJ=no
+      ;;
+    esac
+  fi
+
+{ echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5
+echo "${ECHO_T}$ld_shlibs_GCJ" >&6; }
+test "$ld_shlibs_GCJ" = no && can_build_shared=no
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_GCJ" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc_GCJ=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $archive_cmds_GCJ in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
+      $rm conftest*
+      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$lt_prog_compiler_wl_GCJ
+	pic_flag=$lt_prog_compiler_pic_GCJ
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ
+        allow_undefined_flag_GCJ=
+        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+  (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+        then
+	  archive_cmds_need_lc_GCJ=no
+        else
+	  archive_cmds_need_lc_GCJ=yes
+        fi
+        allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5
+echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6; }
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+if test "$GCC" = yes; then
+  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+  else
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+  fi
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix4* | aix5*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[45]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+  if test "$GCC" = yes; then
+    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+  else
+    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+  fi
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+kfreebsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[123]*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  freebsd*) # from 4.6 on
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext_cmds='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+interix3*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # find out which ABI we are using
+  libsuff=
+  case "$host_cpu" in
+  x86_64*|s390x*|powerpc64*)
+    echo '#line 30816 "configure"' > conftest.$ac_ext
+    if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+      case `/usr/bin/file conftest.$ac_objext` in
+      *64-bit*)
+        libsuff=64
+        sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+        ;;
+      esac
+    fi
+    rm -rf conftest*
+    ;;
+  esac
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/^	 *//;s/#.*//;/^[^\/]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+knetbsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+    *)                         need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[89] | openbsd2.[89].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+    shlibpath_overrides_runpath=no
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    shlibpath_overrides_runpath=yes
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6; }
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
+hardcode_action_GCJ=
+if test -n "$hardcode_libdir_flag_spec_GCJ" || \
+   test -n "$runpath_var_GCJ" || \
+   test "X$hardcode_automatic_GCJ" = "Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$hardcode_direct_GCJ" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no &&
+     test "$hardcode_minus_L_GCJ" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action_GCJ=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action_GCJ=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action_GCJ=unsupported
+fi
+{ echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5
+echo "${ECHO_T}$hardcode_action_GCJ" >&6; }
+
+if test "$hardcode_action_GCJ" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler_GCJ \
+    CC_GCJ \
+    LD_GCJ \
+    lt_prog_compiler_wl_GCJ \
+    lt_prog_compiler_pic_GCJ \
+    lt_prog_compiler_static_GCJ \
+    lt_prog_compiler_no_builtin_flag_GCJ \
+    export_dynamic_flag_spec_GCJ \
+    thread_safe_flag_spec_GCJ \
+    whole_archive_flag_spec_GCJ \
+    enable_shared_with_static_runtimes_GCJ \
+    old_archive_cmds_GCJ \
+    old_archive_from_new_cmds_GCJ \
+    predep_objects_GCJ \
+    postdep_objects_GCJ \
+    predeps_GCJ \
+    postdeps_GCJ \
+    compiler_lib_search_path_GCJ \
+    archive_cmds_GCJ \
+    archive_expsym_cmds_GCJ \
+    postinstall_cmds_GCJ \
+    postuninstall_cmds_GCJ \
+    old_archive_from_expsyms_cmds_GCJ \
+    allow_undefined_flag_GCJ \
+    no_undefined_flag_GCJ \
+    export_symbols_cmds_GCJ \
+    hardcode_libdir_flag_spec_GCJ \
+    hardcode_libdir_flag_spec_ld_GCJ \
+    hardcode_libdir_separator_GCJ \
+    hardcode_automatic_GCJ \
+    module_cmds_GCJ \
+    module_expsym_cmds_GCJ \
+    lt_cv_prog_compiler_c_o_GCJ \
+    exclude_expsyms_GCJ \
+    include_expsyms_GCJ; do
+
+    case $var in
+    old_archive_cmds_GCJ | \
+    old_archive_from_new_cmds_GCJ | \
+    archive_cmds_GCJ | \
+    archive_expsym_cmds_GCJ | \
+    module_cmds_GCJ | \
+    module_expsym_cmds_GCJ | \
+    old_archive_from_expsyms_cmds_GCJ | \
+    export_symbols_cmds_GCJ | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
+
+cfgfile="$ofile"
+
+  cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_GCJ
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
+# A language-specific compiler.
+CC=$lt_compiler_GCJ
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_GCJ
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_GCJ
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_GCJ
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_GCJ
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_GCJ
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_GCJ
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_GCJ
+archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_GCJ
+module_expsym_cmds=$lt_module_expsym_cmds_GCJ
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_GCJ
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_GCJ
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_GCJ
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_GCJ
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_GCJ
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_GCJ
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_GCJ
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_GCJ
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_GCJ
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_GCJ
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_GCJ
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path_GCJ"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_GCJ
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_GCJ
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_GCJ
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_GCJ
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+	else
+	  tagname=""
+	fi
+	;;
+
+      RC)
+
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+objext_RC=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${RC-"windres"}
+compiler=$CC
+compiler_RC=$CC
+for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+lt_cv_prog_compiler_c_o_RC=yes
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler_RC \
+    CC_RC \
+    LD_RC \
+    lt_prog_compiler_wl_RC \
+    lt_prog_compiler_pic_RC \
+    lt_prog_compiler_static_RC \
+    lt_prog_compiler_no_builtin_flag_RC \
+    export_dynamic_flag_spec_RC \
+    thread_safe_flag_spec_RC \
+    whole_archive_flag_spec_RC \
+    enable_shared_with_static_runtimes_RC \
+    old_archive_cmds_RC \
+    old_archive_from_new_cmds_RC \
+    predep_objects_RC \
+    postdep_objects_RC \
+    predeps_RC \
+    postdeps_RC \
+    compiler_lib_search_path_RC \
+    archive_cmds_RC \
+    archive_expsym_cmds_RC \
+    postinstall_cmds_RC \
+    postuninstall_cmds_RC \
+    old_archive_from_expsyms_cmds_RC \
+    allow_undefined_flag_RC \
+    no_undefined_flag_RC \
+    export_symbols_cmds_RC \
+    hardcode_libdir_flag_spec_RC \
+    hardcode_libdir_flag_spec_ld_RC \
+    hardcode_libdir_separator_RC \
+    hardcode_automatic_RC \
+    module_cmds_RC \
+    module_expsym_cmds_RC \
+    lt_cv_prog_compiler_c_o_RC \
+    exclude_expsyms_RC \
+    include_expsyms_RC; do
+
+    case $var in
+    old_archive_cmds_RC | \
+    old_archive_from_new_cmds_RC | \
+    archive_cmds_RC | \
+    archive_expsym_cmds_RC | \
+    module_cmds_RC | \
+    module_expsym_cmds_RC | \
+    old_archive_from_expsyms_cmds_RC | \
+    export_symbols_cmds_RC | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
+
+cfgfile="$ofile"
+
+  cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_RC
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
+# A language-specific compiler.
+CC=$lt_compiler_RC
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_RC
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_RC
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_RC
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_RC
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_RC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_RC
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_RC
+archive_expsym_cmds=$lt_archive_expsym_cmds_RC
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_RC
+module_expsym_cmds=$lt_module_expsym_cmds_RC
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_RC
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_RC
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_RC
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_RC
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_RC
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_RC
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_RC
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_RC
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_RC
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_RC
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_RC
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_RC
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_RC
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path_RC"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_RC
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_RC
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_RC
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_RC
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+	;;
+
+      *)
+	{ { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5
+echo "$as_me: error: Unsupported tag name: $tagname" >&2;}
+   { (exit 1); exit 1; }; }
+	;;
+      esac
+
+      # Append the new tag name to the list of available tags.
+      if test -n "$tagname" ; then
+      available_tags="$available_tags $tagname"
+    fi
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  # Now substitute the updated list of available tags.
+  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
+    mv "${ofile}T" "$ofile"
+    chmod +x "$ofile"
+  else
+    rm -f "${ofile}T"
+    { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5
+echo "$as_me: error: unable to update list of available tagged configurations." >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+fi
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+# Prevent multiple expansion
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  { echo "$as_me:$LINENO: checking whether NLS is requested" >&5
+echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6; }
+    # Check whether --enable-nls was given.
+if test "${enable_nls+set}" = set; then
+  enableval=$enable_nls; USE_NLS=$enableval
+else
+  USE_NLS=yes
+fi
+
+  { echo "$as_me:$LINENO: result: $USE_NLS" >&5
+echo "${ECHO_T}$USE_NLS" >&6; }
+
+
+
+
+
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+  ac_executable_p="test -x"
+else
+  ac_executable_p="test -f"
+fi
+rm -f conf$$.file
+
+# Extract the first word of "msgfmt", so it can be a program name with args.
+set dummy msgfmt; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_path_MSGFMT+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case "$MSGFMT" in
+  [\\/]* | ?:[\\/]*)
+    ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+    ;;
+  *)
+    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH; do
+      IFS="$ac_save_IFS"
+      test -z "$ac_dir" && ac_dir=.
+      for ac_exec_ext in '' $ac_executable_extensions; do
+        if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+          echo "$as_me: trying $ac_dir/$ac_word..." >&5
+          if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 &&
+     (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+            ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext"
+            break 2
+          fi
+        fi
+      done
+    done
+    IFS="$ac_save_IFS"
+  test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":"
+    ;;
+esac
+fi
+MSGFMT="$ac_cv_path_MSGFMT"
+if test "$MSGFMT" != ":"; then
+  { echo "$as_me:$LINENO: result: $MSGFMT" >&5
+echo "${ECHO_T}$MSGFMT" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+  # Extract the first word of "gmsgfmt", so it can be a program name with args.
+set dummy gmsgfmt; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_path_GMSGFMT+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $GMSGFMT in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+  ;;
+esac
+fi
+GMSGFMT=$ac_cv_path_GMSGFMT
+if test -n "$GMSGFMT"; then
+  { echo "$as_me:$LINENO: result: $GMSGFMT" >&5
+echo "${ECHO_T}$GMSGFMT" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+
+    case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+    '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;;
+    *) MSGFMT_015=$MSGFMT ;;
+  esac
+
+  case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+    '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;;
+    *) GMSGFMT_015=$GMSGFMT ;;
+  esac
+
+
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+  ac_executable_p="test -x"
+else
+  ac_executable_p="test -f"
+fi
+rm -f conf$$.file
+
+# Extract the first word of "xgettext", so it can be a program name with args.
+set dummy xgettext; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_path_XGETTEXT+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case "$XGETTEXT" in
+  [\\/]* | ?:[\\/]*)
+    ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+    ;;
+  *)
+    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH; do
+      IFS="$ac_save_IFS"
+      test -z "$ac_dir" && ac_dir=.
+      for ac_exec_ext in '' $ac_executable_extensions; do
+        if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+          echo "$as_me: trying $ac_dir/$ac_word..." >&5
+          if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 &&
+     (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+            ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext"
+            break 2
+          fi
+        fi
+      done
+    done
+    IFS="$ac_save_IFS"
+  test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+    ;;
+esac
+fi
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test "$XGETTEXT" != ":"; then
+  { echo "$as_me:$LINENO: result: $XGETTEXT" >&5
+echo "${ECHO_T}$XGETTEXT" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+    rm -f messages.po
+
+    case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+    '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;;
+    *) XGETTEXT_015=$XGETTEXT ;;
+  esac
+
+
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+  ac_executable_p="test -x"
+else
+  ac_executable_p="test -f"
+fi
+rm -f conf$$.file
+
+# Extract the first word of "msgmerge", so it can be a program name with args.
+set dummy msgmerge; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_path_MSGMERGE+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case "$MSGMERGE" in
+  [\\/]* | ?:[\\/]*)
+    ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path.
+    ;;
+  *)
+    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH; do
+      IFS="$ac_save_IFS"
+      test -z "$ac_dir" && ac_dir=.
+      for ac_exec_ext in '' $ac_executable_extensions; do
+        if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+          echo "$as_me: trying $ac_dir/$ac_word..." >&5
+          if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then
+            ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext"
+            break 2
+          fi
+        fi
+      done
+    done
+    IFS="$ac_save_IFS"
+  test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":"
+    ;;
+esac
+fi
+MSGMERGE="$ac_cv_path_MSGMERGE"
+if test "$MSGMERGE" != ":"; then
+  { echo "$as_me:$LINENO: result: $MSGMERGE" >&5
+echo "${ECHO_T}$MSGMERGE" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+        test -n "$localedir" || localedir='${datadir}/locale'
+
+
+  ac_config_commands="$ac_config_commands po-directories"
+
+
+
+      if test "X$prefix" = "XNONE"; then
+    acl_final_prefix="$ac_default_prefix"
+  else
+    acl_final_prefix="$prefix"
+  fi
+  if test "X$exec_prefix" = "XNONE"; then
+    acl_final_exec_prefix='${prefix}'
+  else
+    acl_final_exec_prefix="$exec_prefix"
+  fi
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+  prefix="$acl_save_prefix"
+
+
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else
+  with_gnu_ld=no
+fi
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  { echo "$as_me:$LINENO: checking for ld used by GCC" >&5
+echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6; }
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [\\/]* | [A-Za-z]:[\\/]*)
+      re_direlt='/[^/][^/]*/\.\./'
+      # Canonicalize the path of ld
+      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  { echo "$as_me:$LINENO: checking for GNU ld" >&5
+echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; }
+else
+  { echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; }
+fi
+if test "${acl_cv_path_LD+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -z "$LD"; then
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      acl_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some GNU ld's only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break ;;
+      *)
+	test "$with_gnu_ld" != yes && break ;;
+      esac
+    fi
+  done
+  IFS="$ac_save_ifs"
+else
+  acl_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$acl_cv_path_LD"
+if test -n "$LD"; then
+  { echo "$as_me:$LINENO: result: $LD" >&5
+echo "${ECHO_T}$LD" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
+echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
+   { (exit 1); exit 1; }; }
+{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; }
+if test "${acl_cv_prog_gnu_ld+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  acl_cv_prog_gnu_ld=yes ;;
+*)
+  acl_cv_prog_gnu_ld=no ;;
+esac
+fi
+{ echo "$as_me:$LINENO: result: $acl_cv_prog_gnu_ld" >&5
+echo "${ECHO_T}$acl_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$acl_cv_prog_gnu_ld
+
+
+
+
+                                                { echo "$as_me:$LINENO: checking for shared library run path origin" >&5
+echo $ECHO_N "checking for shared library run path origin... $ECHO_C" >&6; }
+if test "${acl_cv_rpath+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+    . ./conftest.sh
+    rm -f ./conftest.sh
+    acl_cv_rpath=done
+
+fi
+{ echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5
+echo "${ECHO_T}$acl_cv_rpath" >&6; }
+  wl="$acl_cv_wl"
+  acl_libext="$acl_cv_libext"
+  acl_shlibext="$acl_cv_shlibext"
+  acl_libname_spec="$acl_cv_libname_spec"
+  acl_library_names_spec="$acl_cv_library_names_spec"
+  acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+  acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+  acl_hardcode_direct="$acl_cv_hardcode_direct"
+  acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
+    # Check whether --enable-rpath was given.
+if test "${enable_rpath+set}" = set; then
+  enableval=$enable_rpath; :
+else
+  enable_rpath=yes
+fi
+
+
+
+                  acl_libdirstem=lib
+  searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
+  if test -n "$searchpath"; then
+    acl_save_IFS="${IFS= 	}"; IFS=":"
+    for searchdir in $searchpath; do
+      if test -d "$searchdir"; then
+        case "$searchdir" in
+          */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
+          *) searchdir=`cd "$searchdir" && pwd`
+             case "$searchdir" in
+               */lib64 ) acl_libdirstem=lib64 ;;
+             esac ;;
+        esac
+      fi
+    done
+    IFS="$acl_save_IFS"
+  fi
+
+
+
+
+
+
+
+
+
+    use_additional=yes
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+
+    eval additional_includedir=\"$includedir\"
+    eval additional_libdir=\"$libdir\"
+
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+
+# Check whether --with-libiconv-prefix was given.
+if test "${with_libiconv_prefix+set}" = set; then
+  withval=$with_libiconv_prefix;
+    if test "X$withval" = "Xno"; then
+      use_additional=no
+    else
+      if test "X$withval" = "X"; then
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+
+          eval additional_includedir=\"$includedir\"
+          eval additional_libdir=\"$libdir\"
+
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+      else
+        additional_includedir="$withval/include"
+        additional_libdir="$withval/$acl_libdirstem"
+      fi
+    fi
+
+fi
+
+      LIBICONV=
+  LTLIBICONV=
+  INCICONV=
+  LIBICONV_PREFIX=
+  rpathdirs=
+  ltrpathdirs=
+  names_already_handled=
+  names_next_round='iconv '
+  while test -n "$names_next_round"; do
+    names_this_round="$names_next_round"
+    names_next_round=
+    for name in $names_this_round; do
+      already_handled=
+      for n in $names_already_handled; do
+        if test "$n" = "$name"; then
+          already_handled=yes
+          break
+        fi
+      done
+      if test -z "$already_handled"; then
+        names_already_handled="$names_already_handled $name"
+                        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+        eval value=\"\$HAVE_LIB$uppername\"
+        if test -n "$value"; then
+          if test "$value" = yes; then
+            eval value=\"\$LIB$uppername\"
+            test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value"
+            eval value=\"\$LTLIB$uppername\"
+            test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value"
+          else
+                                    :
+          fi
+        else
+                              found_dir=
+          found_la=
+          found_so=
+          found_a=
+          eval libname=\"$acl_libname_spec\"    # typically: libname=lib$name
+          if test -n "$acl_shlibext"; then
+            shrext=".$acl_shlibext"             # typically: shrext=.so
+          else
+            shrext=
+          fi
+          if test $use_additional = yes; then
+            dir="$additional_libdir"
+                                    if test -n "$acl_shlibext"; then
+              if test -f "$dir/$libname$shrext"; then
+                found_dir="$dir"
+                found_so="$dir/$libname$shrext"
+              else
+                if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+                  ver=`(cd "$dir" && \
+                        for f in "$libname$shrext".*; do echo "$f"; done \
+                        | sed -e "s,^$libname$shrext\\\\.,," \
+                        | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+                        | sed 1q ) 2>/dev/null`
+                  if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+                    found_dir="$dir"
+                    found_so="$dir/$libname$shrext.$ver"
+                  fi
+                else
+                  eval library_names=\"$acl_library_names_spec\"
+                  for f in $library_names; do
+                    if test -f "$dir/$f"; then
+                      found_dir="$dir"
+                      found_so="$dir/$f"
+                      break
+                    fi
+                  done
+                fi
+              fi
+            fi
+                        if test "X$found_dir" = "X"; then
+              if test -f "$dir/$libname.$acl_libext"; then
+                found_dir="$dir"
+                found_a="$dir/$libname.$acl_libext"
+              fi
+            fi
+            if test "X$found_dir" != "X"; then
+              if test -f "$dir/$libname.la"; then
+                found_la="$dir/$libname.la"
+              fi
+            fi
+          fi
+          if test "X$found_dir" = "X"; then
+            for x in $LDFLAGS $LTLIBICONV; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+              case "$x" in
+                -L*)
+                  dir=`echo "X$x" | sed -e 's/^X-L//'`
+                                    if test -n "$acl_shlibext"; then
+                    if test -f "$dir/$libname$shrext"; then
+                      found_dir="$dir"
+                      found_so="$dir/$libname$shrext"
+                    else
+                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+                        ver=`(cd "$dir" && \
+                              for f in "$libname$shrext".*; do echo "$f"; done \
+                              | sed -e "s,^$libname$shrext\\\\.,," \
+                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+                              | sed 1q ) 2>/dev/null`
+                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+                          found_dir="$dir"
+                          found_so="$dir/$libname$shrext.$ver"
+                        fi
+                      else
+                        eval library_names=\"$acl_library_names_spec\"
+                        for f in $library_names; do
+                          if test -f "$dir/$f"; then
+                            found_dir="$dir"
+                            found_so="$dir/$f"
+                            break
+                          fi
+                        done
+                      fi
+                    fi
+                  fi
+                                    if test "X$found_dir" = "X"; then
+                    if test -f "$dir/$libname.$acl_libext"; then
+                      found_dir="$dir"
+                      found_a="$dir/$libname.$acl_libext"
+                    fi
+                  fi
+                  if test "X$found_dir" != "X"; then
+                    if test -f "$dir/$libname.la"; then
+                      found_la="$dir/$libname.la"
+                    fi
+                  fi
+                  ;;
+              esac
+              if test "X$found_dir" != "X"; then
+                break
+              fi
+            done
+          fi
+          if test "X$found_dir" != "X"; then
+                        LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name"
+            if test "X$found_so" != "X"; then
+                                                        if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then
+                                LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+              else
+                                                                                haveit=
+                for x in $ltrpathdirs; do
+                  if test "X$x" = "X$found_dir"; then
+                    haveit=yes
+                    break
+                  fi
+                done
+                if test -z "$haveit"; then
+                  ltrpathdirs="$ltrpathdirs $found_dir"
+                fi
+                                if test "$acl_hardcode_direct" = yes; then
+                                                      LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+                else
+                  if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+                                                            LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+                                                            haveit=
+                    for x in $rpathdirs; do
+                      if test "X$x" = "X$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      rpathdirs="$rpathdirs $found_dir"
+                    fi
+                  else
+                                                                                haveit=
+                    for x in $LDFLAGS $LIBICONV; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+                      if test "X$x" = "X-L$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir"
+                    fi
+                    if test "$acl_hardcode_minus_L" != no; then
+                                                                                        LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+                    else
+                                                                                                                                                                                LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
+                    fi
+                  fi
+                fi
+              fi
+            else
+              if test "X$found_a" != "X"; then
+                                LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a"
+              else
+                                                LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name"
+              fi
+            fi
+                        additional_includedir=
+            case "$found_dir" in
+              */$acl_libdirstem | */$acl_libdirstem/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
+                LIBICONV_PREFIX="$basedir"
+                additional_includedir="$basedir/include"
+                ;;
+            esac
+            if test "X$additional_includedir" != "X"; then
+                                                                                                                if test "X$additional_includedir" != "X/usr/include"; then
+                haveit=
+                if test "X$additional_includedir" = "X/usr/local/include"; then
+                  if test -n "$GCC"; then
+                    case $host_os in
+                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                    esac
+                  fi
+                fi
+                if test -z "$haveit"; then
+                  for x in $CPPFLAGS $INCICONV; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+                    if test "X$x" = "X-I$additional_includedir"; then
+                      haveit=yes
+                      break
+                    fi
+                  done
+                  if test -z "$haveit"; then
+                    if test -d "$additional_includedir"; then
+                                            INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir"
+                    fi
+                  fi
+                fi
+              fi
+            fi
+                        if test -n "$found_la"; then
+                                                        save_libdir="$libdir"
+              case "$found_la" in
+                */* | *\\*) . "$found_la" ;;
+                *) . "./$found_la" ;;
+              esac
+              libdir="$save_libdir"
+                            for dep in $dependency_libs; do
+                case "$dep" in
+                  -L*)
+                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+                                                                                                                                                                if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
+                      haveit=
+                      if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
+                        if test -n "$GCC"; then
+                          case $host_os in
+                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                          esac
+                        fi
+                      fi
+                      if test -z "$haveit"; then
+                        haveit=
+                        for x in $LDFLAGS $LIBICONV; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                                                        LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir"
+                          fi
+                        fi
+                        haveit=
+                        for x in $LDFLAGS $LTLIBICONV; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                                                        LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir"
+                          fi
+                        fi
+                      fi
+                    fi
+                    ;;
+                  -R*)
+                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
+                    if test "$enable_rpath" != no; then
+                                                                  haveit=
+                      for x in $rpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        rpathdirs="$rpathdirs $dir"
+                      fi
+                                                                  haveit=
+                      for x in $ltrpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        ltrpathdirs="$ltrpathdirs $dir"
+                      fi
+                    fi
+                    ;;
+                  -l*)
+                                        names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+                    ;;
+                  *.la)
+                                                                                names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+                    ;;
+                  *)
+                                        LIBICONV="${LIBICONV}${LIBICONV:+ }$dep"
+                    LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep"
+                    ;;
+                esac
+              done
+            fi
+          else
+                                                            LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
+            LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name"
+          fi
+        fi
+      fi
+    done
+  done
+  if test "X$rpathdirs" != "X"; then
+    if test -n "$acl_hardcode_libdir_separator"; then
+                        alldirs=
+      for found_dir in $rpathdirs; do
+        alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
+      done
+            acl_save_libdir="$libdir"
+      libdir="$alldirs"
+      eval flag=\"$acl_hardcode_libdir_flag_spec\"
+      libdir="$acl_save_libdir"
+      LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
+    else
+            for found_dir in $rpathdirs; do
+        acl_save_libdir="$libdir"
+        libdir="$found_dir"
+        eval flag=\"$acl_hardcode_libdir_flag_spec\"
+        libdir="$acl_save_libdir"
+        LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
+      done
+    fi
+  fi
+  if test "X$ltrpathdirs" != "X"; then
+            for found_dir in $ltrpathdirs; do
+      LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir"
+    done
+  fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    { echo "$as_me:$LINENO: checking for CFPreferencesCopyAppValue" >&5
+echo $ECHO_N "checking for CFPreferencesCopyAppValue... $ECHO_C" >&6; }
+if test "${gt_cv_func_CFPreferencesCopyAppValue+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  gt_save_LIBS="$LIBS"
+     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+     cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <CoreFoundation/CFPreferences.h>
+int
+main ()
+{
+CFPreferencesCopyAppValue(NULL, NULL)
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  gt_cv_func_CFPreferencesCopyAppValue=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	gt_cv_func_CFPreferencesCopyAppValue=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+     LIBS="$gt_save_LIBS"
+fi
+{ echo "$as_me:$LINENO: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5
+echo "${ECHO_T}$gt_cv_func_CFPreferencesCopyAppValue" >&6; }
+  if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_CFPREFERENCESCOPYAPPVALUE 1
+_ACEOF
+
+  fi
+    { echo "$as_me:$LINENO: checking for CFLocaleCopyCurrent" >&5
+echo $ECHO_N "checking for CFLocaleCopyCurrent... $ECHO_C" >&6; }
+if test "${gt_cv_func_CFLocaleCopyCurrent+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  gt_save_LIBS="$LIBS"
+     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+     cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <CoreFoundation/CFLocale.h>
+int
+main ()
+{
+CFLocaleCopyCurrent();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  gt_cv_func_CFLocaleCopyCurrent=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	gt_cv_func_CFLocaleCopyCurrent=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+     LIBS="$gt_save_LIBS"
+fi
+{ echo "$as_me:$LINENO: result: $gt_cv_func_CFLocaleCopyCurrent" >&5
+echo "${ECHO_T}$gt_cv_func_CFLocaleCopyCurrent" >&6; }
+  if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_CFLOCALECOPYCURRENT 1
+_ACEOF
+
+  fi
+  INTL_MACOSX_LIBS=
+  if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+    INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
+  fi
+
+
+
+
+
+
+  LIBINTL=
+  LTLIBINTL=
+  POSUB=
+
+    case " $gt_needs " in
+    *" need-formatstring-macros "*) gt_api_version=3 ;;
+    *" need-ngettext "*) gt_api_version=2 ;;
+    *) gt_api_version=1 ;;
+  esac
+  gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc"
+  gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl"
+
+    if test "$USE_NLS" = "yes"; then
+    gt_use_preinstalled_gnugettext=no
+
+
+        if test $gt_api_version -ge 3; then
+          gt_revision_test_code='
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+'
+        else
+          gt_revision_test_code=
+        fi
+        if test $gt_api_version -ge 2; then
+          gt_expression_test_code=' + * ngettext ("", "", 0)'
+        else
+          gt_expression_test_code=
+        fi
+
+        { echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5
+echo $ECHO_N "checking for GNU gettext in libc... $ECHO_C" >&6; }
+if { as_var=$gt_func_gnugettext_libc; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern int *_nl_domain_bindings;
+int
+main ()
+{
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$gt_func_gnugettext_libc=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$gt_func_gnugettext_libc=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$gt_func_gnugettext_libc'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
+
+
+
+
+
+          am_save_CPPFLAGS="$CPPFLAGS"
+
+  for element in $INCICONV; do
+    haveit=
+    for x in $CPPFLAGS; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+      if test "X$x" = "X$element"; then
+        haveit=yes
+        break
+      fi
+    done
+    if test -z "$haveit"; then
+      CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+    fi
+  done
+
+
+  { echo "$as_me:$LINENO: checking for iconv" >&5
+echo $ECHO_N "checking for iconv... $ECHO_C" >&6; }
+if test "${am_cv_func_iconv+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+    am_cv_func_iconv="no, consider installing GNU libiconv"
+    am_cv_lib_iconv=no
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <iconv.h>
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+       iconv(cd,NULL,NULL,NULL,NULL);
+       iconv_close(cd);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  am_cv_func_iconv=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+    if test "$am_cv_func_iconv" != yes; then
+      am_save_LIBS="$LIBS"
+      LIBS="$LIBS $LIBICONV"
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <iconv.h>
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+         iconv(cd,NULL,NULL,NULL,NULL);
+         iconv_close(cd);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  am_cv_lib_iconv=yes
+        am_cv_func_iconv=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+      LIBS="$am_save_LIBS"
+    fi
+
+fi
+{ echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5
+echo "${ECHO_T}$am_cv_func_iconv" >&6; }
+  if test "$am_cv_func_iconv" = yes; then
+    { echo "$as_me:$LINENO: checking for working iconv" >&5
+echo $ECHO_N "checking for working iconv... $ECHO_C" >&6; }
+if test "${am_cv_func_iconv_works+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+            am_save_LIBS="$LIBS"
+      if test $am_cv_lib_iconv = yes; then
+        LIBS="$LIBS $LIBICONV"
+      fi
+      if test "$cross_compiling" = yes; then
+  case "$host_os" in
+           aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+           *)            am_cv_func_iconv_works="guessing yes" ;;
+         esac
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <iconv.h>
+#include <string.h>
+int main ()
+{
+  /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
+     returns.  */
+  {
+    iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
+    if (cd_utf8_to_88591 != (iconv_t)(-1))
+      {
+        static const char input[] = "\342\202\254"; /* EURO SIGN */
+        char buf[10];
+        const char *inptr = input;
+        size_t inbytesleft = strlen (input);
+        char *outptr = buf;
+        size_t outbytesleft = sizeof (buf);
+        size_t res = iconv (cd_utf8_to_88591,
+                            (char **) &inptr, &inbytesleft,
+                            &outptr, &outbytesleft);
+        if (res == 0)
+          return 1;
+      }
+  }
+#if 0 /* This bug could be worked around by the caller.  */
+  /* Test against HP-UX 11.11 bug: Positive return value instead of 0.  */
+  {
+    iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
+    if (cd_88591_to_utf8 != (iconv_t)(-1))
+      {
+        static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+        char buf[50];
+        const char *inptr = input;
+        size_t inbytesleft = strlen (input);
+        char *outptr = buf;
+        size_t outbytesleft = sizeof (buf);
+        size_t res = iconv (cd_88591_to_utf8,
+                            (char **) &inptr, &inbytesleft,
+                            &outptr, &outbytesleft);
+        if ((int)res > 0)
+          return 1;
+      }
+  }
+#endif
+  /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
+     provided.  */
+  if (/* Try standardized names.  */
+      iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
+      /* Try IRIX, OSF/1 names.  */
+      && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
+      /* Try AIX names.  */
+      && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
+      /* Try HP-UX names.  */
+      && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  am_cv_func_iconv_works=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+am_cv_func_iconv_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+      LIBS="$am_save_LIBS"
+
+fi
+{ echo "$as_me:$LINENO: result: $am_cv_func_iconv_works" >&5
+echo "${ECHO_T}$am_cv_func_iconv_works" >&6; }
+    case "$am_cv_func_iconv_works" in
+      *no) am_func_iconv=no am_cv_lib_iconv=no ;;
+      *)   am_func_iconv=yes ;;
+    esac
+  else
+    am_func_iconv=no am_cv_lib_iconv=no
+  fi
+  if test "$am_func_iconv" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_ICONV 1
+_ACEOF
+
+  fi
+  if test "$am_cv_lib_iconv" = yes; then
+    { echo "$as_me:$LINENO: checking how to link with libiconv" >&5
+echo $ECHO_N "checking how to link with libiconv... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: $LIBICONV" >&5
+echo "${ECHO_T}$LIBICONV" >&6; }
+  else
+            CPPFLAGS="$am_save_CPPFLAGS"
+    LIBICONV=
+    LTLIBICONV=
+  fi
+
+
+
+
+
+
+
+
+    use_additional=yes
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+
+    eval additional_includedir=\"$includedir\"
+    eval additional_libdir=\"$libdir\"
+
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+
+# Check whether --with-libintl-prefix was given.
+if test "${with_libintl_prefix+set}" = set; then
+  withval=$with_libintl_prefix;
+    if test "X$withval" = "Xno"; then
+      use_additional=no
+    else
+      if test "X$withval" = "X"; then
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+
+          eval additional_includedir=\"$includedir\"
+          eval additional_libdir=\"$libdir\"
+
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+      else
+        additional_includedir="$withval/include"
+        additional_libdir="$withval/$acl_libdirstem"
+      fi
+    fi
+
+fi
+
+      LIBINTL=
+  LTLIBINTL=
+  INCINTL=
+  LIBINTL_PREFIX=
+  rpathdirs=
+  ltrpathdirs=
+  names_already_handled=
+  names_next_round='intl '
+  while test -n "$names_next_round"; do
+    names_this_round="$names_next_round"
+    names_next_round=
+    for name in $names_this_round; do
+      already_handled=
+      for n in $names_already_handled; do
+        if test "$n" = "$name"; then
+          already_handled=yes
+          break
+        fi
+      done
+      if test -z "$already_handled"; then
+        names_already_handled="$names_already_handled $name"
+                        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+        eval value=\"\$HAVE_LIB$uppername\"
+        if test -n "$value"; then
+          if test "$value" = yes; then
+            eval value=\"\$LIB$uppername\"
+            test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value"
+            eval value=\"\$LTLIB$uppername\"
+            test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value"
+          else
+                                    :
+          fi
+        else
+                              found_dir=
+          found_la=
+          found_so=
+          found_a=
+          eval libname=\"$acl_libname_spec\"    # typically: libname=lib$name
+          if test -n "$acl_shlibext"; then
+            shrext=".$acl_shlibext"             # typically: shrext=.so
+          else
+            shrext=
+          fi
+          if test $use_additional = yes; then
+            dir="$additional_libdir"
+                                    if test -n "$acl_shlibext"; then
+              if test -f "$dir/$libname$shrext"; then
+                found_dir="$dir"
+                found_so="$dir/$libname$shrext"
+              else
+                if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+                  ver=`(cd "$dir" && \
+                        for f in "$libname$shrext".*; do echo "$f"; done \
+                        | sed -e "s,^$libname$shrext\\\\.,," \
+                        | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+                        | sed 1q ) 2>/dev/null`
+                  if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+                    found_dir="$dir"
+                    found_so="$dir/$libname$shrext.$ver"
+                  fi
+                else
+                  eval library_names=\"$acl_library_names_spec\"
+                  for f in $library_names; do
+                    if test -f "$dir/$f"; then
+                      found_dir="$dir"
+                      found_so="$dir/$f"
+                      break
+                    fi
+                  done
+                fi
+              fi
+            fi
+                        if test "X$found_dir" = "X"; then
+              if test -f "$dir/$libname.$acl_libext"; then
+                found_dir="$dir"
+                found_a="$dir/$libname.$acl_libext"
+              fi
+            fi
+            if test "X$found_dir" != "X"; then
+              if test -f "$dir/$libname.la"; then
+                found_la="$dir/$libname.la"
+              fi
+            fi
+          fi
+          if test "X$found_dir" = "X"; then
+            for x in $LDFLAGS $LTLIBINTL; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+              case "$x" in
+                -L*)
+                  dir=`echo "X$x" | sed -e 's/^X-L//'`
+                                    if test -n "$acl_shlibext"; then
+                    if test -f "$dir/$libname$shrext"; then
+                      found_dir="$dir"
+                      found_so="$dir/$libname$shrext"
+                    else
+                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+                        ver=`(cd "$dir" && \
+                              for f in "$libname$shrext".*; do echo "$f"; done \
+                              | sed -e "s,^$libname$shrext\\\\.,," \
+                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+                              | sed 1q ) 2>/dev/null`
+                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+                          found_dir="$dir"
+                          found_so="$dir/$libname$shrext.$ver"
+                        fi
+                      else
+                        eval library_names=\"$acl_library_names_spec\"
+                        for f in $library_names; do
+                          if test -f "$dir/$f"; then
+                            found_dir="$dir"
+                            found_so="$dir/$f"
+                            break
+                          fi
+                        done
+                      fi
+                    fi
+                  fi
+                                    if test "X$found_dir" = "X"; then
+                    if test -f "$dir/$libname.$acl_libext"; then
+                      found_dir="$dir"
+                      found_a="$dir/$libname.$acl_libext"
+                    fi
+                  fi
+                  if test "X$found_dir" != "X"; then
+                    if test -f "$dir/$libname.la"; then
+                      found_la="$dir/$libname.la"
+                    fi
+                  fi
+                  ;;
+              esac
+              if test "X$found_dir" != "X"; then
+                break
+              fi
+            done
+          fi
+          if test "X$found_dir" != "X"; then
+                        LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name"
+            if test "X$found_so" != "X"; then
+                                                        if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then
+                                LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+              else
+                                                                                haveit=
+                for x in $ltrpathdirs; do
+                  if test "X$x" = "X$found_dir"; then
+                    haveit=yes
+                    break
+                  fi
+                done
+                if test -z "$haveit"; then
+                  ltrpathdirs="$ltrpathdirs $found_dir"
+                fi
+                                if test "$acl_hardcode_direct" = yes; then
+                                                      LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+                else
+                  if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+                                                            LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+                                                            haveit=
+                    for x in $rpathdirs; do
+                      if test "X$x" = "X$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      rpathdirs="$rpathdirs $found_dir"
+                    fi
+                  else
+                                                                                haveit=
+                    for x in $LDFLAGS $LIBINTL; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+                      if test "X$x" = "X-L$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir"
+                    fi
+                    if test "$acl_hardcode_minus_L" != no; then
+                                                                                        LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+                    else
+                                                                                                                                                                                LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
+                    fi
+                  fi
+                fi
+              fi
+            else
+              if test "X$found_a" != "X"; then
+                                LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a"
+              else
+                                                LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name"
+              fi
+            fi
+                        additional_includedir=
+            case "$found_dir" in
+              */$acl_libdirstem | */$acl_libdirstem/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
+                LIBINTL_PREFIX="$basedir"
+                additional_includedir="$basedir/include"
+                ;;
+            esac
+            if test "X$additional_includedir" != "X"; then
+                                                                                                                if test "X$additional_includedir" != "X/usr/include"; then
+                haveit=
+                if test "X$additional_includedir" = "X/usr/local/include"; then
+                  if test -n "$GCC"; then
+                    case $host_os in
+                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                    esac
+                  fi
+                fi
+                if test -z "$haveit"; then
+                  for x in $CPPFLAGS $INCINTL; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+                    if test "X$x" = "X-I$additional_includedir"; then
+                      haveit=yes
+                      break
+                    fi
+                  done
+                  if test -z "$haveit"; then
+                    if test -d "$additional_includedir"; then
+                                            INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir"
+                    fi
+                  fi
+                fi
+              fi
+            fi
+                        if test -n "$found_la"; then
+                                                        save_libdir="$libdir"
+              case "$found_la" in
+                */* | *\\*) . "$found_la" ;;
+                *) . "./$found_la" ;;
+              esac
+              libdir="$save_libdir"
+                            for dep in $dependency_libs; do
+                case "$dep" in
+                  -L*)
+                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+                                                                                                                                                                if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
+                      haveit=
+                      if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
+                        if test -n "$GCC"; then
+                          case $host_os in
+                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                          esac
+                        fi
+                      fi
+                      if test -z "$haveit"; then
+                        haveit=
+                        for x in $LDFLAGS $LIBINTL; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                                                        LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir"
+                          fi
+                        fi
+                        haveit=
+                        for x in $LDFLAGS $LTLIBINTL; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                                                        LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir"
+                          fi
+                        fi
+                      fi
+                    fi
+                    ;;
+                  -R*)
+                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
+                    if test "$enable_rpath" != no; then
+                                                                  haveit=
+                      for x in $rpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        rpathdirs="$rpathdirs $dir"
+                      fi
+                                                                  haveit=
+                      for x in $ltrpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        ltrpathdirs="$ltrpathdirs $dir"
+                      fi
+                    fi
+                    ;;
+                  -l*)
+                                        names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+                    ;;
+                  *.la)
+                                                                                names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+                    ;;
+                  *)
+                                        LIBINTL="${LIBINTL}${LIBINTL:+ }$dep"
+                    LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep"
+                    ;;
+                esac
+              done
+            fi
+          else
+                                                            LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
+            LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name"
+          fi
+        fi
+      fi
+    done
+  done
+  if test "X$rpathdirs" != "X"; then
+    if test -n "$acl_hardcode_libdir_separator"; then
+                        alldirs=
+      for found_dir in $rpathdirs; do
+        alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
+      done
+            acl_save_libdir="$libdir"
+      libdir="$alldirs"
+      eval flag=\"$acl_hardcode_libdir_flag_spec\"
+      libdir="$acl_save_libdir"
+      LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
+    else
+            for found_dir in $rpathdirs; do
+        acl_save_libdir="$libdir"
+        libdir="$found_dir"
+        eval flag=\"$acl_hardcode_libdir_flag_spec\"
+        libdir="$acl_save_libdir"
+        LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
+      done
+    fi
+  fi
+  if test "X$ltrpathdirs" != "X"; then
+            for found_dir in $ltrpathdirs; do
+      LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir"
+    done
+  fi
+
+          { echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5
+echo $ECHO_N "checking for GNU gettext in libintl... $ECHO_C" >&6; }
+if { as_var=$gt_func_gnugettext_libintl; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  gt_save_CPPFLAGS="$CPPFLAGS"
+            CPPFLAGS="$CPPFLAGS $INCINTL"
+            gt_save_LIBS="$LIBS"
+            LIBS="$LIBS $LIBINTL"
+                        cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);
+int
+main ()
+{
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$gt_func_gnugettext_libintl=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$gt_func_gnugettext_libintl=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+                        if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
+              LIBS="$LIBS $LIBICONV"
+              cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);
+int
+main ()
+{
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  LIBINTL="$LIBINTL $LIBICONV"
+                LTLIBINTL="$LTLIBINTL $LTLIBICONV"
+                eval "$gt_func_gnugettext_libintl=yes"
+
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+            fi
+            CPPFLAGS="$gt_save_CPPFLAGS"
+            LIBS="$gt_save_LIBS"
+fi
+ac_res=`eval echo '${'$gt_func_gnugettext_libintl'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+        fi
+
+                                        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
+           || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \
+                && test "$PACKAGE" != gettext-runtime \
+                && test "$PACKAGE" != gettext-tools; }; then
+          gt_use_preinstalled_gnugettext=yes
+        else
+                    LIBINTL=
+          LTLIBINTL=
+          INCINTL=
+        fi
+
+
+
+    if test -n "$INTL_MACOSX_LIBS"; then
+      if test "$gt_use_preinstalled_gnugettext" = "yes" \
+         || test "$nls_cv_use_gnu_gettext" = "yes"; then
+                LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
+        LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
+      fi
+    fi
+
+    if test "$gt_use_preinstalled_gnugettext" = "yes" \
+       || test "$nls_cv_use_gnu_gettext" = "yes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define ENABLE_NLS 1
+_ACEOF
+
+    else
+      USE_NLS=no
+    fi
+  fi
+
+  { echo "$as_me:$LINENO: checking whether to use NLS" >&5
+echo $ECHO_N "checking whether to use NLS... $ECHO_C" >&6; }
+  { echo "$as_me:$LINENO: result: $USE_NLS" >&5
+echo "${ECHO_T}$USE_NLS" >&6; }
+  if test "$USE_NLS" = "yes"; then
+    { echo "$as_me:$LINENO: checking where the gettext function comes from" >&5
+echo $ECHO_N "checking where the gettext function comes from... $ECHO_C" >&6; }
+    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+      if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
+        gt_source="external libintl"
+      else
+        gt_source="libc"
+      fi
+    else
+      gt_source="included intl directory"
+    fi
+    { echo "$as_me:$LINENO: result: $gt_source" >&5
+echo "${ECHO_T}$gt_source" >&6; }
+  fi
+
+  if test "$USE_NLS" = "yes"; then
+
+    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+      if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
+        { echo "$as_me:$LINENO: checking how to link with libintl" >&5
+echo $ECHO_N "checking how to link with libintl... $ECHO_C" >&6; }
+        { echo "$as_me:$LINENO: result: $LIBINTL" >&5
+echo "${ECHO_T}$LIBINTL" >&6; }
+
+  for element in $INCINTL; do
+    haveit=
+    for x in $CPPFLAGS; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+      if test "X$x" = "X$element"; then
+        haveit=yes
+        break
+      fi
+    done
+    if test -z "$haveit"; then
+      CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+    fi
+  done
+
+      fi
+
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_GETTEXT 1
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_DCGETTEXT 1
+_ACEOF
+
+    fi
+
+        POSUB=po
+  fi
+
+
+
+    INTLLIBS="$LIBINTL"
+
+
+
+
+
+
+if test "$USE_INCLUDED_LIBINTL" = "yes"; then
+	{ { echo "$as_me:$LINENO: error: GNU Parted requires gettext to be installed for compilation -
+if native language support is desired.  Either disable native language support
+with:
+	$ ./configure --disable-nls
+Or install gettext.  GNU gettext is available from
+	http://ftp.gnu.org/gnu/gettext
+" >&5
+echo "$as_me: error: GNU Parted requires gettext to be installed for compilation -
+if native language support is desired.  Either disable native language support
+with:
+	$ ./configure --disable-nls
+Or install gettext.  GNU gettext is available from
+	http://ftp.gnu.org/gnu/gettext
+" >&2;}
+   { (exit 1); exit 1; }; }
+	exit
+fi
+
+DL_LIBS=""
+if test "$enable_dynamic_loading" = yes; then
+	{ echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_dl_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_dl_dlopen=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
+if test $ac_cv_lib_dl_dlopen = yes; then
+  DL_LIBS="-ldl"
+		PARTED_LIBS="$PARTED_LIBS -ldl"
+
+cat >>confdefs.h <<\_ACEOF
+#define DYNAMIC_LOADING 1
+_ACEOF
+
+else
+  { { echo "$as_me:$LINENO: error: -ldl not found!  Try using --disable-dynamic-loading
+		" >&5
+echo "$as_me: error: -ldl not found!  Try using --disable-dynamic-loading
+		" >&2;}
+   { (exit 1); exit 1; }; }
+		exit
+
+fi
+
+fi
+
+
+UUID_LIBS=""
+{ echo "$as_me:$LINENO: checking for uuid_generate in -luuid" >&5
+echo $ECHO_N "checking for uuid_generate in -luuid... $ECHO_C" >&6; }
+if test "${ac_cv_lib_uuid_uuid_generate+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-luuid  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char uuid_generate ();
+int
+main ()
+{
+return uuid_generate ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_uuid_uuid_generate=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_uuid_uuid_generate=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_uuid_uuid_generate" >&5
+echo "${ECHO_T}$ac_cv_lib_uuid_uuid_generate" >&6; }
+if test $ac_cv_lib_uuid_uuid_generate = yes; then
+  UUID_LIBS="-luuid"
+else
+  { { echo "$as_me:$LINENO: error: GNU Parted requires libuuid - a part of the e2fsprogs package (but
+sometimes distributed separately in uuid-devel or similar)
+This can probably be found on your distribution's CD or FTP site or at:
+         http://web.mit.edu/tytso/www/linux/e2fsprogs.html
+Note: if you are using precompiled packages you will also need the development
+package as well (which may be called e2fsprogs-devel or something similar).
+If you compile e2fsprogs yourself then you need to do 'make install' and
+'make install-libs'.
+	" >&5
+echo "$as_me: error: GNU Parted requires libuuid - a part of the e2fsprogs package (but
+sometimes distributed separately in uuid-devel or similar)
+This can probably be found on your distribution's CD or FTP site or at:
+         http://web.mit.edu/tytso/www/linux/e2fsprogs.html
+Note: if you are using precompiled packages you will also need the development
+package as well (which may be called e2fsprogs-devel or something similar).
+If you compile e2fsprogs yourself then you need to do 'make install' and
+'make install-libs'.
+	" >&2;}
+   { (exit 1); exit 1; }; }
+	exit
+
+fi
+
+
+
+DM_LIBS=""
+if test "$enable_device_mapper" = yes; then
+	{ echo "$as_me:$LINENO: checking for dm_task_create in -ldevmapper" >&5
+echo $ECHO_N "checking for dm_task_create in -ldevmapper... $ECHO_C" >&6; }
+if test "${ac_cv_lib_devmapper_dm_task_create+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldevmapper  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dm_task_create ();
+int
+main ()
+{
+return dm_task_create ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_devmapper_dm_task_create=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_devmapper_dm_task_create=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_devmapper_dm_task_create" >&5
+echo "${ECHO_T}$ac_cv_lib_devmapper_dm_task_create" >&6; }
+if test $ac_cv_lib_devmapper_dm_task_create = yes; then
+  DM_LIBS="-ldevmapper"
+else
+  { { echo "$as_me:$LINENO: error: libdevmapper not found!  Try using --disable-device-mapper
+		" >&5
+echo "$as_me: error: libdevmapper not found!  Try using --disable-device-mapper
+		" >&2;}
+   { (exit 1); exit 1; }; }
+		exit
+
+fi
+
+fi
+
+
+SELINUX_LIBS=""
+if test "$enable_selinux" = yes; then
+	SELINUX_LIBS="-lselinux -lsepol"
+fi
+
+
+REISER_LIBS=""
+if test "$enable_dynamic_loading" = no -a "$enable_discover_only" = no; then
+	OLD_LIBS="$LIBS"
+	{ echo "$as_me:$LINENO: checking for dal_equals in -ldal" >&5
+echo $ECHO_N "checking for dal_equals in -ldal... $ECHO_C" >&6; }
+if test "${ac_cv_lib_dal_dal_equals+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldal  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dal_equals ();
+int
+main ()
+{
+return dal_equals ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_dal_dal_equals=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_dal_dal_equals=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_dal_dal_equals" >&5
+echo "${ECHO_T}$ac_cv_lib_dal_dal_equals" >&6; }
+if test $ac_cv_lib_dal_dal_equals = yes; then
+  LIBS="-ldal"
+		{ echo "$as_me:$LINENO: checking for reiserfs_fs_probe in -lreiserfs" >&5
+echo $ECHO_N "checking for reiserfs_fs_probe in -lreiserfs... $ECHO_C" >&6; }
+if test "${ac_cv_lib_reiserfs_reiserfs_fs_probe+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lreiserfs  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char reiserfs_fs_probe ();
+int
+main ()
+{
+return reiserfs_fs_probe ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_reiserfs_reiserfs_fs_probe=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_reiserfs_reiserfs_fs_probe=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_reiserfs_reiserfs_fs_probe" >&5
+echo "${ECHO_T}$ac_cv_lib_reiserfs_reiserfs_fs_probe" >&6; }
+if test $ac_cv_lib_reiserfs_reiserfs_fs_probe = yes; then
+  REISER_LIBS="-ldal -lreiserfs"
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIBREISERFS 1
+_ACEOF
+
+
+fi
+
+		{ echo "$as_me:$LINENO: checking for reiserfs_fs_check in -lreiserfs" >&5
+echo $ECHO_N "checking for reiserfs_fs_check in -lreiserfs... $ECHO_C" >&6; }
+if test "${ac_cv_lib_reiserfs_reiserfs_fs_check+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lreiserfs  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char reiserfs_fs_check ();
+int
+main ()
+{
+return reiserfs_fs_check ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_reiserfs_reiserfs_fs_check=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_reiserfs_reiserfs_fs_check=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_reiserfs_reiserfs_fs_check" >&5
+echo "${ECHO_T}$ac_cv_lib_reiserfs_reiserfs_fs_check" >&6; }
+if test $ac_cv_lib_reiserfs_reiserfs_fs_check = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_REISERFS_FS_CHECK 1
+_ACEOF
+
+
+fi
+
+
+fi
+
+	LIBS="$OLD_LIBS"
+fi
+
+
+if test "$with_readline" = yes; then
+	OLD_LIBS="$LIBS"
+	LIBS=""
+	{ echo "$as_me:$LINENO: checking for library containing tgetent" >&5
+echo $ECHO_N "checking for library containing tgetent... $ECHO_C" >&6; }
+if test "${ac_cv_search_tgetent+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char tgetent ();
+int
+main ()
+{
+return tgetent ();
+  ;
+  return 0;
+}
+_ACEOF
+for ac_lib in '' tinfo ncurses curses termcap termlib; do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+  fi
+  rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_search_tgetent=$ac_res
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext
+  if test "${ac_cv_search_tgetent+set}" = set; then
+  break
+fi
+done
+if test "${ac_cv_search_tgetent+set}" = set; then
+  :
+else
+  ac_cv_search_tgetent=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_search_tgetent" >&5
+echo "${ECHO_T}$ac_cv_search_tgetent" >&6; }
+ac_res=$ac_cv_search_tgetent
+if test "$ac_res" != no; then
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+  PARTED_LIBS="$PARTED_LIBS $LIBS"
+else
+  { { echo "$as_me:$LINENO: error: termcap could not be found which is required for the
+--with-readline option (which is enabled by default).  Either disable readline
+support with --without-readline or download and install termcap from:
+	ftp.gnu.org/gnu/termcap
+Note: if you are using precompiled packages you will also need the development
+  package as well (which may be called termcap-devel or something similar).
+Note: (n)curses also seems to work as a substitute for termcap.  This was
+  not found either - but you could try installing that as well.
+" >&5
+echo "$as_me: error: termcap could not be found which is required for the
+--with-readline option (which is enabled by default).  Either disable readline
+support with --without-readline or download and install termcap from:
+	ftp.gnu.org/gnu/termcap
+Note: if you are using precompiled packages you will also need the development
+  package as well (which may be called termcap-devel or something similar).
+Note: (n)curses also seems to work as a substitute for termcap.  This was
+  not found either - but you could try installing that as well.
+" >&2;}
+   { (exit 1); exit 1; }; }
+	exit
+
+fi
+
+	LIBS="$OLD_LIBS"
+fi
+
+if test "$with_readline" = yes; then
+	OLD_LIBS="$LIBS"
+	LIBS="$LIBS $PARTED_LIBS"
+	{ echo "$as_me:$LINENO: checking for readline in -lreadline" >&5
+echo $ECHO_N "checking for readline in -lreadline... $ECHO_C" >&6; }
+if test "${ac_cv_lib_readline_readline+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lreadline $PARTED_LIBS
+	 $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char readline ();
+int
+main ()
+{
+return readline ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_readline_readline=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_readline_readline=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_readline_readline" >&5
+echo "${ECHO_T}$ac_cv_lib_readline_readline" >&6; }
+if test $ac_cv_lib_readline_readline = yes; then
+  PARTED_LIBS="-lreadline $PARTED_LIBS"
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIBREADLINE 1
+_ACEOF
+
+else
+  { { echo "$as_me:$LINENO: error: GNU Readline could not be found which is required for the
+--with-readline (which is enabled by default).  Either disable readline support with
+--without-readline or downloaded and install it from:
+        ftp.gnu.org/gnu/readline
+Note: if you are using precompiled packages you will also need the development
+package as well (which may be called readline-devel or something similar).
+" >&5
+echo "$as_me: error: GNU Readline could not be found which is required for the
+--with-readline (which is enabled by default).  Either disable readline support with
+--without-readline or downloaded and install it from:
+        ftp.gnu.org/gnu/readline
+Note: if you are using precompiled packages you will also need the development
+package as well (which may be called readline-devel or something similar).
+" >&2;}
+   { (exit 1); exit 1; }; }
+		exit
+fi
+
+ 	LIBS="$OLD_LIBS"
+fi
+
+
+
+
+if test "$OS" = gnu; then
+	{ echo "$as_me:$LINENO: checking for vm_deallocate in -lshouldbeinlibc" >&5
+echo $ECHO_N "checking for vm_deallocate in -lshouldbeinlibc... $ECHO_C" >&6; }
+if test "${ac_cv_lib_shouldbeinlibc_vm_deallocate+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lshouldbeinlibc  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char vm_deallocate ();
+int
+main ()
+{
+return vm_deallocate ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_shouldbeinlibc_vm_deallocate=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_shouldbeinlibc_vm_deallocate=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_shouldbeinlibc_vm_deallocate" >&5
+echo "${ECHO_T}$ac_cv_lib_shouldbeinlibc_vm_deallocate" >&6; }
+if test $ac_cv_lib_shouldbeinlibc_vm_deallocate = yes; then
+  OS_LIBS="$OS_LIBS -lshouldbeinlibc"
+else
+  { { echo "$as_me:$LINENO: error: GNU Parted requires libshouldbeinlibc when running on
+GNU/Hurd systems.  It is a standard part of a GNU/Hurd system.
+		" >&5
+echo "$as_me: error: GNU Parted requires libshouldbeinlibc when running on
+GNU/Hurd systems.  It is a standard part of a GNU/Hurd system.
+		" >&2;}
+   { (exit 1); exit 1; }; }
+		exit
+
+fi
+
+
+	OLD_LIBS="$LIBS"
+	LIBS=
+
+
+{ echo "$as_me:$LINENO: checking for ped_device_read in -lparted" >&5
+echo $ECHO_N "checking for ped_device_read in -lparted... $ECHO_C" >&6; }
+if test "${ac_cv_lib_parted_ped_device_read+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lparted  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ped_device_read ();
+int
+main ()
+{
+return ped_device_read ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_parted_ped_device_read=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_parted_ped_device_read=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_parted_ped_device_read" >&5
+echo "${ECHO_T}$ac_cv_lib_parted_ped_device_read" >&6; }
+if test $ac_cv_lib_parted_ped_device_read = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBPARTED 1
+_ACEOF
+
+  LIBS="-lparted $LIBS"
+
+fi
+
+
+	{ echo "$as_me:$LINENO: checking for store_open in -lstore" >&5
+echo $ECHO_N "checking for store_open in -lstore... $ECHO_C" >&6; }
+if test "${ac_cv_lib_store_store_open+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lstore $OS_LIBS $UUID_LIBS $DM_LIBS $LIBS
+	 $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char store_open ();
+int
+main ()
+{
+return store_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_store_store_open=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_store_store_open=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_store_store_open" >&5
+echo "${ECHO_T}$ac_cv_lib_store_store_open" >&6; }
+if test $ac_cv_lib_store_store_open = yes; then
+  OS_LIBS="$OS_LIBS -lstore"
+else
+  { { echo "$as_me:$LINENO: error: GNU Parted requires libstore when running on GNU/Hurd
+systems.  It is a standard part of a GNU/Hurd system.
+		" >&5
+echo "$as_me: error: GNU Parted requires libstore when running on GNU/Hurd
+systems.  It is a standard part of a GNU/Hurd system.
+		" >&2;}
+   { (exit 1); exit 1; }; }
+		exit
+fi
+
+	LIBS="$OLD_LIBS"
+fi
+
+
+if test "$OS" = beos; then
+			OS_LIBS="$OS_LIBS -lsocket"
+fi
+
+
+
+
+
+
+if test "${ac_cv_header_uuid_uuid_h+set}" = set; then
+  { echo "$as_me:$LINENO: checking for uuid/uuid.h" >&5
+echo $ECHO_N "checking for uuid/uuid.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_uuid_uuid_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_uuid_uuid_h" >&5
+echo "${ECHO_T}$ac_cv_header_uuid_uuid_h" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking uuid/uuid.h usability" >&5
+echo $ECHO_N "checking uuid/uuid.h usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <uuid/uuid.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking uuid/uuid.h presence" >&5
+echo $ECHO_N "checking uuid/uuid.h presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <uuid/uuid.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: uuid/uuid.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: uuid/uuid.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: uuid/uuid.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: uuid/uuid.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: uuid/uuid.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: uuid/uuid.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: uuid/uuid.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: uuid/uuid.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: uuid/uuid.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: uuid/uuid.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: uuid/uuid.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: uuid/uuid.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: uuid/uuid.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: uuid/uuid.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: uuid/uuid.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: uuid/uuid.h: in the future, the compiler will take precedence" >&2;}
+    ( cat <<\_ASBOX
+## --------------------------------- ##
+## Report this to bug-parted@gnu.org ##
+## --------------------------------- ##
+_ASBOX
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for uuid/uuid.h" >&5
+echo $ECHO_N "checking for uuid/uuid.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_uuid_uuid_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_header_uuid_uuid_h=$ac_header_preproc
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_uuid_uuid_h" >&5
+echo "${ECHO_T}$ac_cv_header_uuid_uuid_h" >&6; }
+
+fi
+if test $ac_cv_header_uuid_uuid_h = yes; then
+  :
+else
+  { { echo "$as_me:$LINENO: error: GNU Parted requires libuuid - a part of the e2fsprogs package.
+You seem to have the library installed but not the headers.  These are usually
+found in a corresponding development package (usually called e2fsprogs-devel).
+If you can't find one try:
+        http://web.mit.edu/tytso/www/linux/e2fsprogs.html
+" >&5
+echo "$as_me: error: GNU Parted requires libuuid - a part of the e2fsprogs package.
+You seem to have the library installed but not the headers.  These are usually
+found in a corresponding development package (usually called e2fsprogs-devel).
+If you can't find one try:
+        http://web.mit.edu/tytso/www/linux/e2fsprogs.html
+" >&2;}
+   { (exit 1); exit 1; }; }
+	exit
+
+fi
+
+
+
+
+for ac_header in getopt.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    ( cat <<\_ASBOX
+## --------------------------------- ##
+## Report this to bug-parted@gnu.org ##
+## --------------------------------- ##
+_ASBOX
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+if test "$OS" = linux; then
+	if test "${ac_cv_header_linux_unistd_h+set}" = set; then
+  { echo "$as_me:$LINENO: checking for linux/unistd.h" >&5
+echo $ECHO_N "checking for linux/unistd.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_linux_unistd_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_linux_unistd_h" >&5
+echo "${ECHO_T}$ac_cv_header_linux_unistd_h" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking linux/unistd.h usability" >&5
+echo $ECHO_N "checking linux/unistd.h usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <linux/unistd.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking linux/unistd.h presence" >&5
+echo $ECHO_N "checking linux/unistd.h presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <linux/unistd.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: linux/unistd.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: linux/unistd.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: linux/unistd.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: linux/unistd.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: linux/unistd.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: linux/unistd.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: linux/unistd.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: linux/unistd.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: linux/unistd.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: linux/unistd.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: linux/unistd.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: linux/unistd.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: linux/unistd.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: linux/unistd.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: linux/unistd.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: linux/unistd.h: in the future, the compiler will take precedence" >&2;}
+    ( cat <<\_ASBOX
+## --------------------------------- ##
+## Report this to bug-parted@gnu.org ##
+## --------------------------------- ##
+_ASBOX
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for linux/unistd.h" >&5
+echo $ECHO_N "checking for linux/unistd.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_linux_unistd_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_header_linux_unistd_h=$ac_header_preproc
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_linux_unistd_h" >&5
+echo "${ECHO_T}$ac_cv_header_linux_unistd_h" >&6; }
+
+fi
+
+
+fi
+
+if test "$with_readline" = yes; then
+
+
+for ac_header in readline/readline.h readline/history.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    ( cat <<\_ASBOX
+## --------------------------------- ##
+## Report this to bug-parted@gnu.org ##
+## --------------------------------- ##
+_ASBOX
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+else
+  { { echo "$as_me:$LINENO: error: The headers for GNU Readline could not be found which
+are required for the --with-readline option.  You seem to have the GNU readline
+library installed but not the headers.  These are usually found in a
+corresponding development package (usually called readline-devel).  If you can't
+find one try:
+        ftp.gnu.org/gnu/readline
+Alternatively you can disable readline support with --without-readline
+" >&5
+echo "$as_me: error: The headers for GNU Readline could not be found which
+are required for the --with-readline option.  You seem to have the GNU readline
+library installed but not the headers.  These are usually found in a
+corresponding development package (usually called readline-devel).  If you can't
+find one try:
+        ftp.gnu.org/gnu/readline
+Alternatively you can disable readline support with --without-readline
+" >&2;}
+   { (exit 1); exit 1; }; }
+	exit
+
+fi
+
+done
+
+fi
+
+
+for ac_header in termcap.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    ( cat <<\_ASBOX
+## --------------------------------- ##
+## Report this to bug-parted@gnu.org ##
+## --------------------------------- ##
+_ASBOX
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+if test "$USE_NLS" = yes; then
+
+for ac_header in wctype.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    ( cat <<\_ASBOX
+## --------------------------------- ##
+## Report this to bug-parted@gnu.org ##
+## --------------------------------- ##
+_ASBOX
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+else
+  { { echo "$as_me:$LINENO: error: One or more of the header files that are required for
+native language support (wctype.h) could not be found.  Either get a newer
+version of GNU libc and its headers - which can be obtained from:
+	ftp.gnu.org/gnu/glibc
+Or disable native language support with the --disable-nls option
+" >&5
+echo "$as_me: error: One or more of the header files that are required for
+native language support (wctype.h) could not be found.  Either get a newer
+version of GNU libc and its headers - which can be obtained from:
+	ftp.gnu.org/gnu/glibc
+Or disable native language support with the --disable-nls option
+" >&2;}
+   { (exit 1); exit 1; }; }
+	exit
+
+fi
+
+done
+
+fi
+
+if test "${ac_cv_header_execinfo_h+set}" = set; then
+  { echo "$as_me:$LINENO: checking for execinfo.h" >&5
+echo $ECHO_N "checking for execinfo.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_execinfo_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_execinfo_h" >&5
+echo "${ECHO_T}$ac_cv_header_execinfo_h" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking execinfo.h usability" >&5
+echo $ECHO_N "checking execinfo.h usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <execinfo.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking execinfo.h presence" >&5
+echo $ECHO_N "checking execinfo.h presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <execinfo.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: execinfo.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: execinfo.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: execinfo.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: execinfo.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: execinfo.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: execinfo.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: execinfo.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: execinfo.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: execinfo.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: execinfo.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: execinfo.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: execinfo.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: execinfo.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: execinfo.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: execinfo.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: execinfo.h: in the future, the compiler will take precedence" >&2;}
+    ( cat <<\_ASBOX
+## --------------------------------- ##
+## Report this to bug-parted@gnu.org ##
+## --------------------------------- ##
+_ASBOX
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for execinfo.h" >&5
+echo $ECHO_N "checking for execinfo.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_execinfo_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_header_execinfo_h=$ac_header_preproc
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_execinfo_h" >&5
+echo "${ECHO_T}$ac_cv_header_execinfo_h" >&6; }
+
+fi
+if test $ac_cv_header_execinfo_h = yes; then
+
+	{ echo "$as_me:$LINENO: checking for backtrace in -lc" >&5
+echo $ECHO_N "checking for backtrace in -lc... $ECHO_C" >&6; }
+if test "${ac_cv_lib_c_backtrace+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lc  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char backtrace ();
+int
+main ()
+{
+return backtrace ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_c_backtrace=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_c_backtrace=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_c_backtrace" >&5
+echo "${ECHO_T}$ac_cv_lib_c_backtrace" >&6; }
+if test $ac_cv_lib_c_backtrace = yes; then
+
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_BACKTRACE 1
+_ACEOF
+
+		LDFLAGS="$LDFLAGS -rdynamic"
+
+fi
+
+
+fi
+
+
+
+cat >conftest.$ac_ext <<_ACEOF
+
+	/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+	#if defined __s390__ || defined __s390x__
+	#  message s390 defined
+	#endif
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  compile_for_s390="no"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	compile_for_s390="yes"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test "$compile_for_s390" = "yes"; then
+  COMPILE_FOR_S390_TRUE=
+  COMPILE_FOR_S390_FALSE='#'
+else
+  COMPILE_FOR_S390_TRUE='#'
+  COMPILE_FOR_S390_FALSE=
+fi
+
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+	if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+  { echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
+echo "${ECHO_T}$PKG_CONFIG" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  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
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5
+echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+	_pkg_min_version=0.9.0
+	{ echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5
+echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6; }
+	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+		{ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+	else
+		{ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+		PKG_CONFIG=""
+	fi
+
+fi
+
+pkg_failed=no
+{ echo "$as_me:$LINENO: checking for CHECK" >&5
+echo $ECHO_N "checking for CHECK... $ECHO_C" >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$CHECK_CFLAGS"; then
+        pkg_cv_CHECK_CFLAGS="$CHECK_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.3\"") >&5
+  ($PKG_CONFIG --exists --print-errors "check >= 0.9.3") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  pkg_cv_CHECK_CFLAGS=`$PKG_CONFIG --cflags "check >= 0.9.3" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$CHECK_LIBS"; then
+        pkg_cv_CHECK_LIBS="$CHECK_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.3\"") >&5
+  ($PKG_CONFIG --exists --print-errors "check >= 0.9.3") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  pkg_cv_CHECK_LIBS=`$PKG_CONFIG --libs "check >= 0.9.3" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        CHECK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "check >= 0.9.3"`
+        else
+	        CHECK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "check >= 0.9.3"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$CHECK_PKG_ERRORS" >&5
+
+	{ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+                have_check=no
+elif test $pkg_failed = untried; then
+	have_check=no
+else
+	CHECK_CFLAGS=$pkg_cv_CHECK_CFLAGS
+	CHECK_LIBS=$pkg_cv_CHECK_LIBS
+        { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+	have_check=yes
+fi
+if test "$have_scintilla" != "yes"; then
+    { echo "$as_me:$LINENO: result: Unable to locate check version 0.9.3 or higher: not building" >&5
+echo "${ECHO_T}Unable to locate check version 0.9.3 or higher: not building" >&6; }
+fi
+ if test "$have_check" = yes; then
+  HAVE_CHECK_TRUE=
+  HAVE_CHECK_FALSE='#'
+else
+  HAVE_CHECK_TRUE='#'
+  HAVE_CHECK_FALSE=
+fi
+
+
+
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else
+  with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  { echo "$as_me:$LINENO: checking for ld used by $CC" >&5
+echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; }
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [\\/]* | ?:[\\/]*)
+      re_direlt='/[^/][^/]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  { echo "$as_me:$LINENO: checking for GNU ld" >&5
+echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; }
+else
+  { echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; }
+fi
+if test "${lt_cv_path_LD+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  { echo "$as_me:$LINENO: result: $LD" >&5
+echo "${ECHO_T}$LD" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
+echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
+   { (exit 1); exit 1; }; }
+{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; }
+if test "${lt_cv_prog_gnu_ld+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac
+fi
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+{ echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
+echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6; }
+if test "${ac_cv_c_bigendian+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # See if sys/param.h defines the BYTE_ORDER macro.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <sys/param.h>
+
+int
+main ()
+{
+#if  ! (defined BYTE_ORDER && defined BIG_ENDIAN && defined LITTLE_ENDIAN \
+	&& BYTE_ORDER && BIG_ENDIAN && LITTLE_ENDIAN)
+ bogus endian macros
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  # It does; now see whether it defined to BIG_ENDIAN or not.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <sys/param.h>
+
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+ not big endian
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_c_bigendian=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_c_bigendian=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	# It does not; compile a test program.
+if test "$cross_compiling" = yes; then
+  # try to guess the endianness by grepping values into an object file
+  ac_cv_c_bigendian=unknown
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; }
+short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; }
+int
+main ()
+{
+ _ascii (); _ebcdic ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then
+  ac_cv_c_bigendian=yes
+fi
+if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+  if test "$ac_cv_c_bigendian" = unknown; then
+    ac_cv_c_bigendian=no
+  else
+    # finding both strings is unlikely to happen, but who knows?
+    ac_cv_c_bigendian=unknown
+  fi
+fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+
+  /* Are we little or big endian?  From Harbison&Steele.  */
+  union
+  {
+    long int l;
+    char c[sizeof (long int)];
+  } u;
+  u.l = 1;
+  return u.c[sizeof (long int) - 1] == 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_c_bigendian=no
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_c_bigendian=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5
+echo "${ECHO_T}$ac_cv_c_bigendian" >&6; }
+case $ac_cv_c_bigendian in
+  yes)
+
+cat >>confdefs.h <<\_ACEOF
+#define WORDS_BIGENDIAN 1
+_ACEOF
+ ;;
+  no)
+     ;;
+  *)
+    { { echo "$as_me:$LINENO: error: unknown endianness
+presetting ac_cv_c_bigendian=no (or yes) will help" >&5
+echo "$as_me: error: unknown endianness
+presetting ac_cv_c_bigendian=no (or yes) will help" >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+
+{ echo "$as_me:$LINENO: checking for inline" >&5
+echo $ECHO_N "checking for inline... $ECHO_C" >&6; }
+if test "${ac_cv_c_inline+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifndef __cplusplus
+typedef int foo_t;
+static $ac_kw foo_t static_foo () {return 0; }
+$ac_kw foo_t foo () {return 0; }
+#endif
+
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_c_inline=$ac_kw
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  test "$ac_cv_c_inline" != no && break
+done
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5
+echo "${ECHO_T}$ac_cv_c_inline" >&6; }
+
+
+case $ac_cv_c_inline in
+  inline | yes) ;;
+  *)
+    case $ac_cv_c_inline in
+      no) ac_val=;;
+      *) ac_val=$ac_cv_c_inline;;
+    esac
+    cat >>confdefs.h <<_ACEOF
+#ifndef __cplusplus
+#define inline $ac_val
+#endif
+_ACEOF
+    ;;
+esac
+
+{ echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
+echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6; }
+if test "${ac_cv_c_const+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+/* FIXME: Include the comments suggested by Paul. */
+#ifndef __cplusplus
+  /* Ultrix mips cc rejects this.  */
+  typedef int charset[2];
+  const charset cs;
+  /* SunOS 4.1.1 cc rejects this.  */
+  char const *const *pcpcc;
+  char **ppc;
+  /* NEC SVR4.0.2 mips cc rejects this.  */
+  struct point {int x, y;};
+  static struct point const zero = {0,0};
+  /* AIX XL C 1.02.0.0 rejects this.
+     It does not let you subtract one const X* pointer from another in
+     an arm of an if-expression whose if-part is not a constant
+     expression */
+  const char *g = "string";
+  pcpcc = &g + (g ? g-g : 0);
+  /* HPUX 7.0 cc rejects these. */
+  ++pcpcc;
+  ppc = (char**) pcpcc;
+  pcpcc = (char const *const *) ppc;
+  { /* SCO 3.2v4 cc rejects this.  */
+    char *t;
+    char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+    *t++ = 0;
+    if (s) return 0;
+  }
+  { /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
+    int x[] = {25, 17};
+    const int *foo = &x[0];
+    ++foo;
+  }
+  { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+    typedef const int *iptr;
+    iptr p = 0;
+    ++p;
+  }
+  { /* AIX XL C 1.02.0.0 rejects this 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;
+  }
+  { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+    const int foo = 10;
+    if (!foo) return 0;
+  }
+  return !cs[0] && !zero.x;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_c_const=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_c_const=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
+echo "${ECHO_T}$ac_cv_c_const" >&6; }
+if test $ac_cv_c_const = no; then
+
+cat >>confdefs.h <<\_ACEOF
+#define const
+_ACEOF
+
+fi
+
+{ echo "$as_me:$LINENO: checking for C/C++ restrict keyword" >&5
+echo $ECHO_N "checking for C/C++ restrict keyword... $ECHO_C" >&6; }
+if test "${ac_cv_c_restrict+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_c_restrict=no
+   # Try the official restrict keyword, then gcc's __restrict, and
+   # the less common variants.
+   for ac_kw in restrict __restrict __restrict__ _Restrict; do
+     cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+typedef int * int_ptr;
+        int foo (int_ptr $ac_kw ip) {
+        return ip[0];
+       }
+int
+main ()
+{
+int s[1];
+        int * $ac_kw t = s;
+        t[0] = 0;
+        return foo(t)
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_c_restrict=$ac_kw
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+     test "$ac_cv_c_restrict" != no && break
+   done
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_c_restrict" >&5
+echo "${ECHO_T}$ac_cv_c_restrict" >&6; }
+ case $ac_cv_c_restrict in
+   restrict) ;;
+   no)
+cat >>confdefs.h <<\_ACEOF
+#define restrict
+_ACEOF
+ ;;
+   *)  cat >>confdefs.h <<_ACEOF
+#define restrict $ac_cv_c_restrict
+_ACEOF
+ ;;
+ esac
+
+
+
+
+for ac_func in sigaction
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+for ac_func in getuid
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+if test "$with_readline" = yes; then
+	OLD_LIBS="$LIBS"
+	LIBS="$LIBS $PARTED_LIBS -lreadline"
+
+for ac_func in rl_completion_matches
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+	LIBS="$OLD_LIBS"
+fi
+
+
+for ac_func in canonicalize_file_name
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+# CFLAGS="$CFLAGS -W -Wall -Wno-unused -Wno-switch -Wno-format"
+
+if test "$enable_Werror" = yes; then
+	CFLAGS="$CFLAGS -Werror"
+fi
+
+DATE=$(date '+%d %b %Y %H:%M')
+USER=$(whoami)
+HOST=$(hostname)
+BUILDINFO="$USER@$HOST, $DATE"
+
+
+ac_config_files="$ac_config_files Makefile lib/Makefile include/Makefile include/parted/Makefile libparted/Makefile libparted/labels/Makefile libparted/fs/Makefile libparted/fs/amiga/Makefile libparted/fs/ext2/Makefile libparted/fs/fat/Makefile libparted/fs/hfs/Makefile libparted/fs/jfs/Makefile libparted/fs/linux_swap/Makefile libparted/fs/ntfs/Makefile libparted/fs/reiserfs/Makefile libparted/fs/ufs/Makefile libparted/fs/xfs/Makefile libparted/tests/Makefile libparted.pc parted/Makefile partprobe/Makefile doc/Makefile doc/C/Makefile doc/pt_BR/Makefile debug/Makefile debug/clearfat/Makefile debug/test/Makefile tests/Makefile po/Makefile.in"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
+echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      *) $as_unset $ac_var ;;
+      esac ;;
+    esac
+  done
+
+  (set) 2>&1 |
+    case $as_nl`(ac_space=' '; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      # `set' does not quote correctly, so add quotes (double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      sed -n \
+	"s/'/'\\\\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;; #(
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+) |
+  sed '
+     /^ac_cv_env_/b end
+     t clear
+     :clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     :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" &&
+      { echo "$as_me:$LINENO: updating cache $cache_file" >&5
+echo "$as_me: updating cache $cache_file" >&6;}
+    cat confcache >$cache_file
+  else
+    { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
+echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+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$//'
+  ac_i=`echo "$ac_i" | sed "$ac_script"`
+  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
+  #    will be set to the directory where LIBOBJS objects are built.
+  ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"GL_COND_LIBTOOL\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"GL_COND_LIBTOOL\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+test "X$DEFS" = X-DHAVE_CONFIG_H && DEFS=
+
+    gl_libobjs=
+    gl_ltlibobjs=
+    if test -n "$gl_LIBOBJS"; then
+      # Remove the extension.
+      sed_drop_objext='s/\.o$//;s/\.obj$//'
+      for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed "$sed_drop_objext" | sort | uniq`; do
+        gl_libobjs="$gl_libobjs $i.$ac_objext"
+        gl_ltlibobjs="$gl_ltlibobjs $i.lo"
+      done
+    fi
+    gl_LIBOBJS=$gl_libobjs
+
+    gl_LTLIBOBJS=$gl_ltlibobjs
+
+
+if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${COMPILE_FOR_S390_TRUE}" && test -z "${COMPILE_FOR_S390_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"COMPILE_FOR_S390\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"COMPILE_FOR_S390\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${HAVE_CHECK_TRUE}" && test -z "${HAVE_CHECK_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"HAVE_CHECK\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"HAVE_CHECK\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+: ${CONFIG_STATUS=./config.status}
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
+fi
+
+
+
+
+# PATH needs CR
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+as_nl='
+'
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+case $0 in
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  { (exit 1); exit 1; }
+fi
+
+# Work around bugs in pre-3.0 UWIN ksh.
+for as_var in ENV MAIL MAILPATH
+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+  LC_TELEPHONE LC_TIME
+do
+  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+    eval $as_var=C; export $as_var
+  else
+    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+  fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# CDPATH.
+$as_unset CDPATH
+
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line after each line using $LINENO; the second 'sed'
+  # does the real work.  The second script uses 'N' to pair each
+  # line-number line with the line containing $LINENO, and appends
+  # trailing '-' during substitution so that $LINENO is not a special
+  # case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # scripts with optimization help from Paolo Bonzini.  Blame Lee
+  # E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
+    sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
+      N
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      t loop
+      s/-\n.*//
+    ' >$as_me.lineno &&
+  chmod +x "$as_me.lineno" ||
+    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+   { (exit 1); exit 1; }; }
+
+  # 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).
+  . "./$as_me.lineno"
+  # Exit status is that of the last command.
+  exit
+}
+
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in
+-n*)
+  case `echo 'x\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  *)   ECHO_C='\c';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir
+fi
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s='ln -s'
+  # ... 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'.
+  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+    as_ln_s='cp -p'
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  test -d ./-p && rmdir ./-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
+
+# 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'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+
+# Save the log message, to keep $[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by GNU parted $as_me 1.8.7, which was
+generated by GNU Autoconf 2.61.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTIONS] [FILE]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number and configuration settings, then exit
+  -q, --quiet      do not print progress messages
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+  --file=FILE[:TEMPLATE]
+		   instantiate the configuration file FILE
+  --header=FILE[:TEMPLATE]
+		   instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <bug-autoconf@gnu.org>."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+ac_cs_version="\\
+GNU parted config.status 1.8.7
+configured by $0, generated by GNU Autoconf 2.61,
+  with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright (C) 2006 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+# If no file are specified by the user, then we need to provide default
+# value.  By we need to know if files were specified by the user.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=*)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+    ac_shift=:
+    ;;
+  *)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
+    ;;
+  esac
+
+  case $ac_option in
+  # Handling of the options.
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
+  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+    echo "$ac_cs_version"; exit ;;
+  --debug | --debu | --deb | --de | --d | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    $ac_shift
+    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    $ac_shift
+    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
+    ac_need_defaults=false;;
+  --he | --h)
+    # Conflict between --help and --header
+    { echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2
+   { (exit 1); exit 1; }; };;
+  --help | --hel | -h )
+    echo "$ac_cs_usage"; exit ;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
+
+  # This is an error.
+  -*) { echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2
+   { (exit 1); exit 1; }; } ;;
+
+  *) ac_config_targets="$ac_config_targets $1"
+     ac_need_defaults=false ;;
+
+  esac
+  shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+if \$ac_cs_recheck; then
+  echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+  CONFIG_SHELL=$SHELL
+  export CONFIG_SHELL
+  exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+  echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+# Capture the value of obsolete ALL_LINGUAS because we need it to compute
+    # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
+    # from automake < 1.5.
+    eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
+    # Capture the value of LINGUAS because we need it to compute CATALOGS.
+    LINGUAS="${LINGUAS-%UNSET%}"
+
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+  case $ac_config_target in
+    "lib/config.h") CONFIG_HEADERS="$CONFIG_HEADERS lib/config.h:lib/config.h.in" ;;
+    "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+    "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;;
+    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+    "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
+    "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
+    "include/parted/Makefile") CONFIG_FILES="$CONFIG_FILES include/parted/Makefile" ;;
+    "libparted/Makefile") CONFIG_FILES="$CONFIG_FILES libparted/Makefile" ;;
+    "libparted/labels/Makefile") CONFIG_FILES="$CONFIG_FILES libparted/labels/Makefile" ;;
+    "libparted/fs/Makefile") CONFIG_FILES="$CONFIG_FILES libparted/fs/Makefile" ;;
+    "libparted/fs/amiga/Makefile") CONFIG_FILES="$CONFIG_FILES libparted/fs/amiga/Makefile" ;;
+    "libparted/fs/ext2/Makefile") CONFIG_FILES="$CONFIG_FILES libparted/fs/ext2/Makefile" ;;
+    "libparted/fs/fat/Makefile") CONFIG_FILES="$CONFIG_FILES libparted/fs/fat/Makefile" ;;
+    "libparted/fs/hfs/Makefile") CONFIG_FILES="$CONFIG_FILES libparted/fs/hfs/Makefile" ;;
+    "libparted/fs/jfs/Makefile") CONFIG_FILES="$CONFIG_FILES libparted/fs/jfs/Makefile" ;;
+    "libparted/fs/linux_swap/Makefile") CONFIG_FILES="$CONFIG_FILES libparted/fs/linux_swap/Makefile" ;;
+    "libparted/fs/ntfs/Makefile") CONFIG_FILES="$CONFIG_FILES libparted/fs/ntfs/Makefile" ;;
+    "libparted/fs/reiserfs/Makefile") CONFIG_FILES="$CONFIG_FILES libparted/fs/reiserfs/Makefile" ;;
+    "libparted/fs/ufs/Makefile") CONFIG_FILES="$CONFIG_FILES libparted/fs/ufs/Makefile" ;;
+    "libparted/fs/xfs/Makefile") CONFIG_FILES="$CONFIG_FILES libparted/fs/xfs/Makefile" ;;
+    "libparted/tests/Makefile") CONFIG_FILES="$CONFIG_FILES libparted/tests/Makefile" ;;
+    "libparted.pc") CONFIG_FILES="$CONFIG_FILES libparted.pc" ;;
+    "parted/Makefile") CONFIG_FILES="$CONFIG_FILES parted/Makefile" ;;
+    "partprobe/Makefile") CONFIG_FILES="$CONFIG_FILES partprobe/Makefile" ;;
+    "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
+    "doc/C/Makefile") CONFIG_FILES="$CONFIG_FILES doc/C/Makefile" ;;
+    "doc/pt_BR/Makefile") CONFIG_FILES="$CONFIG_FILES doc/pt_BR/Makefile" ;;
+    "debug/Makefile") CONFIG_FILES="$CONFIG_FILES debug/Makefile" ;;
+    "debug/clearfat/Makefile") CONFIG_FILES="$CONFIG_FILES debug/clearfat/Makefile" ;;
+    "debug/test/Makefile") CONFIG_FILES="$CONFIG_FILES debug/test/Makefile" ;;
+    "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
+    "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
+
+  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+  tmp=
+  trap 'exit_status=$?
+  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+' 0
+  trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+  test -n "$tmp" && test -d "$tmp"
+}  ||
+{
+  tmp=./conf$$-$RANDOM
+  (umask 077 && mkdir "$tmp")
+} ||
+{
+   echo "$me: cannot create a temporary directory in ." >&2
+   { (exit 1); exit 1; }
+}
+
+#
+# Set up the sed scripts for CONFIG_FILES section.
+#
+
+# No need to generate the scripts if there are no CONFIG_FILES.
+# This happens for instance when ./config.status config.h
+if test -n "$CONFIG_FILES"; then
+
+_ACEOF
+
+
+
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  cat >conf$$subs.sed <<_ACEOF
+SHELL!$SHELL$ac_delim
+PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim
+PACKAGE_NAME!$PACKAGE_NAME$ac_delim
+PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim
+PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim
+PACKAGE_STRING!$PACKAGE_STRING$ac_delim
+PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim
+exec_prefix!$exec_prefix$ac_delim
+prefix!$prefix$ac_delim
+program_transform_name!$program_transform_name$ac_delim
+bindir!$bindir$ac_delim
+sbindir!$sbindir$ac_delim
+libexecdir!$libexecdir$ac_delim
+datarootdir!$datarootdir$ac_delim
+datadir!$datadir$ac_delim
+sysconfdir!$sysconfdir$ac_delim
+sharedstatedir!$sharedstatedir$ac_delim
+localstatedir!$localstatedir$ac_delim
+includedir!$includedir$ac_delim
+oldincludedir!$oldincludedir$ac_delim
+docdir!$docdir$ac_delim
+infodir!$infodir$ac_delim
+htmldir!$htmldir$ac_delim
+dvidir!$dvidir$ac_delim
+pdfdir!$pdfdir$ac_delim
+psdir!$psdir$ac_delim
+libdir!$libdir$ac_delim
+localedir!$localedir$ac_delim
+mandir!$mandir$ac_delim
+DEFS!$DEFS$ac_delim
+ECHO_C!$ECHO_C$ac_delim
+ECHO_N!$ECHO_N$ac_delim
+ECHO_T!$ECHO_T$ac_delim
+LIBS!$LIBS$ac_delim
+build_alias!$build_alias$ac_delim
+host_alias!$host_alias$ac_delim
+target_alias!$target_alias$ac_delim
+LT_RELEASE!$LT_RELEASE$ac_delim
+LT_CURRENT!$LT_CURRENT$ac_delim
+LT_REVISION!$LT_REVISION$ac_delim
+LT_AGE!$LT_AGE$ac_delim
+INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
+INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
+INSTALL_DATA!$INSTALL_DATA$ac_delim
+am__isrc!$am__isrc$ac_delim
+CYGPATH_W!$CYGPATH_W$ac_delim
+PACKAGE!$PACKAGE$ac_delim
+VERSION!$VERSION$ac_delim
+ACLOCAL!$ACLOCAL$ac_delim
+AUTOCONF!$AUTOCONF$ac_delim
+AUTOMAKE!$AUTOMAKE$ac_delim
+AUTOHEADER!$AUTOHEADER$ac_delim
+MAKEINFO!$MAKEINFO$ac_delim
+install_sh!$install_sh$ac_delim
+STRIP!$STRIP$ac_delim
+INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim
+mkdir_p!$mkdir_p$ac_delim
+AWK!$AWK$ac_delim
+SET_MAKE!$SET_MAKE$ac_delim
+am__leading_dot!$am__leading_dot$ac_delim
+AMTAR!$AMTAR$ac_delim
+am__tar!$am__tar$ac_delim
+am__untar!$am__untar$ac_delim
+build!$build$ac_delim
+build_cpu!$build_cpu$ac_delim
+build_vendor!$build_vendor$ac_delim
+build_os!$build_os$ac_delim
+host!$host$ac_delim
+host_cpu!$host_cpu$ac_delim
+host_vendor!$host_vendor$ac_delim
+host_os!$host_os$ac_delim
+OS!$OS$ac_delim
+PARTEDLDFLAGS!$PARTEDLDFLAGS$ac_delim
+CC!$CC$ac_delim
+CFLAGS!$CFLAGS$ac_delim
+LDFLAGS!$LDFLAGS$ac_delim
+CPPFLAGS!$CPPFLAGS$ac_delim
+ac_ct_CC!$ac_ct_CC$ac_delim
+EXEEXT!$EXEEXT$ac_delim
+OBJEXT!$OBJEXT$ac_delim
+DEPDIR!$DEPDIR$ac_delim
+am__include!$am__include$ac_delim
+am__quote!$am__quote$ac_delim
+AMDEP_TRUE!$AMDEP_TRUE$ac_delim
+AMDEP_FALSE!$AMDEP_FALSE$ac_delim
+AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim
+CCDEPMODE!$CCDEPMODE$ac_delim
+am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim
+am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim
+CPP!$CPP$ac_delim
+GREP!$GREP$ac_delim
+EGREP!$EGREP$ac_delim
+RANLIB!$RANLIB$ac_delim
+GL_COND_LIBTOOL_TRUE!$GL_COND_LIBTOOL_TRUE$ac_delim
+GL_COND_LIBTOOL_FALSE!$GL_COND_LIBTOOL_FALSE$ac_delim
+LTALLOCA!$LTALLOCA$ac_delim
+ALLOCA!$ALLOCA$ac_delim
+_ACEOF
+
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
+    break
+  elif $ac_last_try; then
+    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+
+ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
+if test -n "$ac_eof"; then
+  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
+  ac_eof=`expr $ac_eof + 1`
+fi
+
+cat >>$CONFIG_STATUS <<_ACEOF
+cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+_ACEOF
+sed '
+s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
+s/^/s,@/; s/!/@,|#_!!_#|/
+:n
+t n
+s/'"$ac_delim"'$/,g/; t
+s/$/\\/; p
+N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
+' >>$CONFIG_STATUS <conf$$subs.sed
+rm -f conf$$subs.sed
+cat >>$CONFIG_STATUS <<_ACEOF
+CEOF$ac_eof
+_ACEOF
+
+
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  cat >conf$$subs.sed <<_ACEOF
+ALLOCA_H!$ALLOCA_H$ac_delim
+GETOPT_H!$GETOPT_H$ac_delim
+LIBINTL!$LIBINTL$ac_delim
+LTLIBINTL!$LTLIBINTL$ac_delim
+HAVE_LONG_LONG_INT!$HAVE_LONG_LONG_INT$ac_delim
+HAVE_UNSIGNED_LONG_LONG_INT!$HAVE_UNSIGNED_LONG_LONG_INT$ac_delim
+HAVE_INTTYPES_H!$HAVE_INTTYPES_H$ac_delim
+HAVE_SYS_TYPES_H!$HAVE_SYS_TYPES_H$ac_delim
+ABSOLUTE_STDINT_H!$ABSOLUTE_STDINT_H$ac_delim
+HAVE_STDINT_H!$HAVE_STDINT_H$ac_delim
+HAVE_SYS_INTTYPES_H!$HAVE_SYS_INTTYPES_H$ac_delim
+HAVE_SYS_BITYPES_H!$HAVE_SYS_BITYPES_H$ac_delim
+BITSIZEOF_PTRDIFF_T!$BITSIZEOF_PTRDIFF_T$ac_delim
+BITSIZEOF_SIG_ATOMIC_T!$BITSIZEOF_SIG_ATOMIC_T$ac_delim
+BITSIZEOF_SIZE_T!$BITSIZEOF_SIZE_T$ac_delim
+BITSIZEOF_WCHAR_T!$BITSIZEOF_WCHAR_T$ac_delim
+BITSIZEOF_WINT_T!$BITSIZEOF_WINT_T$ac_delim
+HAVE_SIGNED_SIG_ATOMIC_T!$HAVE_SIGNED_SIG_ATOMIC_T$ac_delim
+HAVE_SIGNED_WCHAR_T!$HAVE_SIGNED_WCHAR_T$ac_delim
+HAVE_SIGNED_WINT_T!$HAVE_SIGNED_WINT_T$ac_delim
+PTRDIFF_T_SUFFIX!$PTRDIFF_T_SUFFIX$ac_delim
+SIG_ATOMIC_T_SUFFIX!$SIG_ATOMIC_T_SUFFIX$ac_delim
+SIZE_T_SUFFIX!$SIZE_T_SUFFIX$ac_delim
+WCHAR_T_SUFFIX!$WCHAR_T_SUFFIX$ac_delim
+WINT_T_SUFFIX!$WINT_T_SUFFIX$ac_delim
+STDINT_H!$STDINT_H$ac_delim
+PRI_MACROS_BROKEN!$PRI_MACROS_BROKEN$ac_delim
+GNULIB_IMAXABS!$GNULIB_IMAXABS$ac_delim
+GNULIB_IMAXDIV!$GNULIB_IMAXDIV$ac_delim
+GNULIB_STRTOIMAX!$GNULIB_STRTOIMAX$ac_delim
+GNULIB_STRTOUMAX!$GNULIB_STRTOUMAX$ac_delim
+HAVE_DECL_IMAXABS!$HAVE_DECL_IMAXABS$ac_delim
+HAVE_DECL_IMAXDIV!$HAVE_DECL_IMAXDIV$ac_delim
+HAVE_DECL_STRTOIMAX!$HAVE_DECL_STRTOIMAX$ac_delim
+HAVE_DECL_STRTOUMAX!$HAVE_DECL_STRTOUMAX$ac_delim
+ABSOLUTE_INTTYPES_H!$ABSOLUTE_INTTYPES_H$ac_delim
+PRIPTR_PREFIX!$PRIPTR_PREFIX$ac_delim
+INTTYPES_H!$INTTYPES_H$ac_delim
+GLIBC21!$GLIBC21$ac_delim
+STDBOOL_H!$STDBOOL_H$ac_delim
+HAVE__BOOL!$HAVE__BOOL$ac_delim
+GNULIB_GETSUBOPT!$GNULIB_GETSUBOPT$ac_delim
+GNULIB_MKDTEMP!$GNULIB_MKDTEMP$ac_delim
+GNULIB_MKSTEMP!$GNULIB_MKSTEMP$ac_delim
+HAVE_GETSUBOPT!$HAVE_GETSUBOPT$ac_delim
+HAVE_MKDTEMP!$HAVE_MKDTEMP$ac_delim
+REPLACE_MKSTEMP!$REPLACE_MKSTEMP$ac_delim
+ABSOLUTE_STDLIB_H!$ABSOLUTE_STDLIB_H$ac_delim
+GNULIB_MEMMEM!$GNULIB_MEMMEM$ac_delim
+GNULIB_MEMPCPY!$GNULIB_MEMPCPY$ac_delim
+GNULIB_MEMRCHR!$GNULIB_MEMRCHR$ac_delim
+GNULIB_STPCPY!$GNULIB_STPCPY$ac_delim
+GNULIB_STPNCPY!$GNULIB_STPNCPY$ac_delim
+GNULIB_STRCHRNUL!$GNULIB_STRCHRNUL$ac_delim
+GNULIB_STRDUP!$GNULIB_STRDUP$ac_delim
+GNULIB_STRNDUP!$GNULIB_STRNDUP$ac_delim
+GNULIB_STRNLEN!$GNULIB_STRNLEN$ac_delim
+GNULIB_STRPBRK!$GNULIB_STRPBRK$ac_delim
+GNULIB_STRSEP!$GNULIB_STRSEP$ac_delim
+GNULIB_STRCASESTR!$GNULIB_STRCASESTR$ac_delim
+GNULIB_STRTOK_R!$GNULIB_STRTOK_R$ac_delim
+GNULIB_MBSLEN!$GNULIB_MBSLEN$ac_delim
+GNULIB_MBSCHR!$GNULIB_MBSCHR$ac_delim
+GNULIB_MBSRCHR!$GNULIB_MBSRCHR$ac_delim
+GNULIB_MBSSTR!$GNULIB_MBSSTR$ac_delim
+GNULIB_MBSCASECMP!$GNULIB_MBSCASECMP$ac_delim
+GNULIB_MBSNCASECMP!$GNULIB_MBSNCASECMP$ac_delim
+GNULIB_MBSPCASECMP!$GNULIB_MBSPCASECMP$ac_delim
+GNULIB_MBSCASESTR!$GNULIB_MBSCASESTR$ac_delim
+GNULIB_MBSCSPN!$GNULIB_MBSCSPN$ac_delim
+GNULIB_MBSPBRK!$GNULIB_MBSPBRK$ac_delim
+GNULIB_MBSSPN!$GNULIB_MBSSPN$ac_delim
+GNULIB_MBSSEP!$GNULIB_MBSSEP$ac_delim
+GNULIB_MBSTOK_R!$GNULIB_MBSTOK_R$ac_delim
+HAVE_DECL_MEMMEM!$HAVE_DECL_MEMMEM$ac_delim
+HAVE_MEMPCPY!$HAVE_MEMPCPY$ac_delim
+HAVE_DECL_MEMRCHR!$HAVE_DECL_MEMRCHR$ac_delim
+HAVE_STPCPY!$HAVE_STPCPY$ac_delim
+HAVE_STPNCPY!$HAVE_STPNCPY$ac_delim
+HAVE_STRCASECMP!$HAVE_STRCASECMP$ac_delim
+HAVE_DECL_STRNCASECMP!$HAVE_DECL_STRNCASECMP$ac_delim
+HAVE_STRCHRNUL!$HAVE_STRCHRNUL$ac_delim
+HAVE_DECL_STRDUP!$HAVE_DECL_STRDUP$ac_delim
+HAVE_STRNDUP!$HAVE_STRNDUP$ac_delim
+HAVE_DECL_STRNDUP!$HAVE_DECL_STRNDUP$ac_delim
+HAVE_DECL_STRNLEN!$HAVE_DECL_STRNLEN$ac_delim
+HAVE_STRPBRK!$HAVE_STRPBRK$ac_delim
+HAVE_STRSEP!$HAVE_STRSEP$ac_delim
+HAVE_STRCASESTR!$HAVE_STRCASESTR$ac_delim
+HAVE_DECL_STRTOK_R!$HAVE_DECL_STRTOK_R$ac_delim
+ABSOLUTE_STRING_H!$ABSOLUTE_STRING_H$ac_delim
+POW_LIB!$POW_LIB$ac_delim
+GNULIB_CHOWN!$GNULIB_CHOWN$ac_delim
+GNULIB_DUP2!$GNULIB_DUP2$ac_delim
+GNULIB_FCHDIR!$GNULIB_FCHDIR$ac_delim
+GNULIB_FTRUNCATE!$GNULIB_FTRUNCATE$ac_delim
+GNULIB_GETCWD!$GNULIB_GETCWD$ac_delim
+_ACEOF
+
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
+    break
+  elif $ac_last_try; then
+    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+
+ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
+if test -n "$ac_eof"; then
+  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
+  ac_eof=`expr $ac_eof + 1`
+fi
+
+cat >>$CONFIG_STATUS <<_ACEOF
+cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+_ACEOF
+sed '
+s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
+s/^/s,@/; s/!/@,|#_!!_#|/
+:n
+t n
+s/'"$ac_delim"'$/,g/; t
+s/$/\\/; p
+N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
+' >>$CONFIG_STATUS <conf$$subs.sed
+rm -f conf$$subs.sed
+cat >>$CONFIG_STATUS <<_ACEOF
+CEOF$ac_eof
+_ACEOF
+
+
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  cat >conf$$subs.sed <<_ACEOF
+GNULIB_GETLOGIN_R!$GNULIB_GETLOGIN_R$ac_delim
+GNULIB_READLINK!$GNULIB_READLINK$ac_delim
+GNULIB_SLEEP!$GNULIB_SLEEP$ac_delim
+HAVE_DUP2!$HAVE_DUP2$ac_delim
+HAVE_FTRUNCATE!$HAVE_FTRUNCATE$ac_delim
+HAVE_READLINK!$HAVE_READLINK$ac_delim
+HAVE_SLEEP!$HAVE_SLEEP$ac_delim
+HAVE_DECL_GETLOGIN_R!$HAVE_DECL_GETLOGIN_R$ac_delim
+REPLACE_CHOWN!$REPLACE_CHOWN$ac_delim
+REPLACE_FCHDIR!$REPLACE_FCHDIR$ac_delim
+REPLACE_GETCWD!$REPLACE_GETCWD$ac_delim
+HAVE_UNISTD_H!$HAVE_UNISTD_H$ac_delim
+ABSOLUTE_UNISTD_H!$ABSOLUTE_UNISTD_H$ac_delim
+ABSOLUTE_WCHAR_H!$ABSOLUTE_WCHAR_H$ac_delim
+WCHAR_H!$WCHAR_H$ac_delim
+HAVE_ISWCNTRL!$HAVE_ISWCNTRL$ac_delim
+HAVE_WINT_T!$HAVE_WINT_T$ac_delim
+ABSOLUTE_WCTYPE_H!$ABSOLUTE_WCTYPE_H$ac_delim
+HAVE_WCTYPE_H!$HAVE_WCTYPE_H$ac_delim
+WCTYPE_H!$WCTYPE_H$ac_delim
+SED!$SED$ac_delim
+LN_S!$LN_S$ac_delim
+ECHO!$ECHO$ac_delim
+AR!$AR$ac_delim
+CXX!$CXX$ac_delim
+CXXFLAGS!$CXXFLAGS$ac_delim
+ac_ct_CXX!$ac_ct_CXX$ac_delim
+CXXDEPMODE!$CXXDEPMODE$ac_delim
+am__fastdepCXX_TRUE!$am__fastdepCXX_TRUE$ac_delim
+am__fastdepCXX_FALSE!$am__fastdepCXX_FALSE$ac_delim
+CXXCPP!$CXXCPP$ac_delim
+F77!$F77$ac_delim
+FFLAGS!$FFLAGS$ac_delim
+ac_ct_F77!$ac_ct_F77$ac_delim
+LIBTOOL!$LIBTOOL$ac_delim
+USE_NLS!$USE_NLS$ac_delim
+MSGFMT!$MSGFMT$ac_delim
+GMSGFMT!$GMSGFMT$ac_delim
+MSGFMT_015!$MSGFMT_015$ac_delim
+GMSGFMT_015!$GMSGFMT_015$ac_delim
+XGETTEXT!$XGETTEXT$ac_delim
+XGETTEXT_015!$XGETTEXT_015$ac_delim
+MSGMERGE!$MSGMERGE$ac_delim
+INTL_MACOSX_LIBS!$INTL_MACOSX_LIBS$ac_delim
+LIBICONV!$LIBICONV$ac_delim
+LTLIBICONV!$LTLIBICONV$ac_delim
+INTLLIBS!$INTLLIBS$ac_delim
+POSUB!$POSUB$ac_delim
+DL_LIBS!$DL_LIBS$ac_delim
+UUID_LIBS!$UUID_LIBS$ac_delim
+DM_LIBS!$DM_LIBS$ac_delim
+SELINUX_LIBS!$SELINUX_LIBS$ac_delim
+REISER_LIBS!$REISER_LIBS$ac_delim
+PARTED_LIBS!$PARTED_LIBS$ac_delim
+OS_LIBS!$OS_LIBS$ac_delim
+INTLINCS!$INTLINCS$ac_delim
+COMPILE_FOR_S390_TRUE!$COMPILE_FOR_S390_TRUE$ac_delim
+COMPILE_FOR_S390_FALSE!$COMPILE_FOR_S390_FALSE$ac_delim
+PKG_CONFIG!$PKG_CONFIG$ac_delim
+CHECK_CFLAGS!$CHECK_CFLAGS$ac_delim
+CHECK_LIBS!$CHECK_LIBS$ac_delim
+HAVE_CHECK_TRUE!$HAVE_CHECK_TRUE$ac_delim
+HAVE_CHECK_FALSE!$HAVE_CHECK_FALSE$ac_delim
+BUILDINFO!$BUILDINFO$ac_delim
+LIBOBJS!$LIBOBJS$ac_delim
+LTLIBOBJS!$LTLIBOBJS$ac_delim
+gl_LIBOBJS!$gl_LIBOBJS$ac_delim
+gl_LTLIBOBJS!$gl_LTLIBOBJS$ac_delim
+_ACEOF
+
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 68; then
+    break
+  elif $ac_last_try; then
+    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+
+ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
+if test -n "$ac_eof"; then
+  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
+  ac_eof=`expr $ac_eof + 1`
+fi
+
+cat >>$CONFIG_STATUS <<_ACEOF
+cat >"\$tmp/subs-3.sed" <<\CEOF$ac_eof
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end
+_ACEOF
+sed '
+s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
+s/^/s,@/; s/!/@,|#_!!_#|/
+:n
+t n
+s/'"$ac_delim"'$/,g/; t
+s/$/\\/; p
+N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
+' >>$CONFIG_STATUS <conf$$subs.sed
+rm -f conf$$subs.sed
+cat >>$CONFIG_STATUS <<_ACEOF
+:end
+s/|#_!!_#|//g
+CEOF$ac_eof
+_ACEOF
+
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ 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/
+s/:*$//
+s/^[^=]*=[	 ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+fi # test -n "$CONFIG_FILES"
+
+
+for ac_tag in  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS
+do
+  case $ac_tag in
+  :[FHLC]) ac_mode=$ac_tag; continue;;
+  esac
+  case $ac_mode$ac_tag in
+  :[FHL]*:*);;
+  :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5
+echo "$as_me: error: Invalid tag $ac_tag." >&2;}
+   { (exit 1); exit 1; }; };;
+  :[FH]-) ac_tag=-:-;;
+  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+  esac
+  ac_save_IFS=$IFS
+  IFS=:
+  set x $ac_tag
+  IFS=$ac_save_IFS
+  shift
+  ac_file=$1
+  shift
+
+  case $ac_mode in
+  :L) ac_source=$1;;
+  :[FH])
+    ac_file_inputs=
+    for ac_f
+    do
+      case $ac_f in
+      -) ac_f="$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 `:'.
+	 test -f "$ac_f" ||
+	   case $ac_f in
+	   [\\/$]*) false;;
+	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+	   esac ||
+	   { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
+echo "$as_me: error: cannot find input file: $ac_f" >&2;}
+   { (exit 1); exit 1; }; };;
+      esac
+      ac_file_inputs="$ac_file_inputs $ac_f"
+    done
+
+    # Let's still pretend it is `configure' which instantiates (i.e., don't
+    # use $as_me), people would be surprised to read:
+    #    /* config.h.  Generated by config.status.  */
+    configure_input="Generated from "`IFS=:
+	  echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure."
+    if test x"$ac_file" != x-; then
+      configure_input="$ac_file.  $configure_input"
+      { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+    fi
+
+    case $ac_tag in
+    *:-:* | *:-) cat >"$tmp/stdin";;
+    esac
+    ;;
+  esac
+
+  ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  { as_dir="$ac_dir"
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
+echo "$as_me: error: cannot create directory $as_dir" >&2;}
+   { (exit 1); exit 1; }; }; }
+  ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+  case $ac_mode in
+  :F)
+  #
+  # CONFIG_FILE
+  #
+
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+  esac
+  ac_MKDIR_P=$MKDIR_P
+  case $MKDIR_P in
+  [\\/$]* | ?:[\\/]* ) ;;
+  */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+  esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+
+case `sed -n '/datarootdir/ {
+  p
+  q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p
+' $ac_file_inputs` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+  { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+  ac_datarootdir_hack='
+  s&@datadir@&$datadir&g
+  s&@docdir@&$docdir&g
+  s&@infodir@&$infodir&g
+  s&@localedir@&$localedir&g
+  s&@mandir@&$mandir&g
+    s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF
+  sed "$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s&@configure_input@&$configure_input&;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" | sed -f "$tmp/subs-3.sed" >$tmp/out
+
+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"; } &&
+  { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined." >&5
+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;}
+
+  rm -f "$tmp/stdin"
+  case $ac_file in
+  -) cat "$tmp/out"; rm -f "$tmp/out";;
+  *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;;
+  esac
+ ;;
+  :H)
+  #
+  # CONFIG_HEADER
+  #
+_ACEOF
+
+# Transform confdefs.h into a sed script `conftest.defines', that
+# substitutes the proper values into config.h.in to produce config.h.
+rm -f conftest.defines conftest.tail
+# First, append a space to every undef/define line, to ease matching.
+echo 's/$/ /' >conftest.defines
+# Then, protect against being on the right side of a sed subst, or in
+# an unquoted here document, in config.status.  If some macros were
+# called several times there might be several #defines for the same
+# symbol, which is useless.  But do not sort them, since the last
+# AC_DEFINE must be honored.
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where
+# NAME is the cpp macro being defined, VALUE is the value it is being given.
+# PARAMS is the parameter list in the macro definition--in most cases, it's
+# just an empty string.
+ac_dA='s,^\\([	 #]*\\)[^	 ]*\\([	 ]*'
+ac_dB='\\)[	 (].*,\\1define\\2'
+ac_dC=' '
+ac_dD=' ,'
+
+uniq confdefs.h |
+  sed -n '
+	t rset
+	:rset
+	s/^[	 ]*#[	 ]*define[	 ][	 ]*//
+	t ok
+	d
+	:ok
+	s/[\\&,]/\\&/g
+	s/^\('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p
+	s/^\('"$ac_word_re"'\)[	 ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p
+  ' >>conftest.defines
+
+# Remove the space that was appended to ease matching.
+# Then replace #undef with comments.  This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+# (The regexp can be short, since the line contains either #define or #undef.)
+echo 's/ $//
+s,^[	 #]*u.*,/* & */,' >>conftest.defines
+
+# Break up conftest.defines:
+ac_max_sed_lines=50
+
+# First sed command is:	 sed -f defines.sed $ac_file_inputs >"$tmp/out1"
+# Second one is:	 sed -f defines.sed "$tmp/out1" >"$tmp/out2"
+# Third one will be:	 sed -f defines.sed "$tmp/out2" >"$tmp/out1"
+# et cetera.
+ac_in='$ac_file_inputs'
+ac_out='"$tmp/out1"'
+ac_nxt='"$tmp/out2"'
+
+while :
+do
+  # Write a here document:
+    cat >>$CONFIG_STATUS <<_ACEOF
+    # First, check the format of the line:
+    cat >"\$tmp/defines.sed" <<\\CEOF
+/^[	 ]*#[	 ]*undef[	 ][	 ]*$ac_word_re[	 ]*\$/b def
+/^[	 ]*#[	 ]*define[	 ][	 ]*$ac_word_re[(	 ]/b def
+b
+:def
+_ACEOF
+  sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS
+  echo 'CEOF
+    sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS
+  ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in
+  sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail
+  grep . conftest.tail >/dev/null || break
+  rm -f conftest.defines
+  mv conftest.tail conftest.defines
+done
+rm -f conftest.defines conftest.tail
+
+echo "ac_result=$ac_in" >>$CONFIG_STATUS
+cat >>$CONFIG_STATUS <<\_ACEOF
+  if test x"$ac_file" != x-; then
+    echo "/* $configure_input  */" >"$tmp/config.h"
+    cat "$ac_result" >>"$tmp/config.h"
+    if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then
+      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+echo "$as_me: $ac_file is unchanged" >&6;}
+    else
+      rm -f $ac_file
+      mv "$tmp/config.h" $ac_file
+    fi
+  else
+    echo "/* $configure_input  */"
+    cat "$ac_result"
+  fi
+  rm -f "$tmp/out12"
+# Compute $ac_file's index in $config_headers.
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+  case $_am_header in
+    $ac_file | $ac_file:* )
+      break ;;
+    * )
+      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+  esac
+done
+echo "timestamp for $ac_file" >`$as_dirname -- $ac_file ||
+$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X$ac_file : 'X\(//\)[^/]' \| \
+	 X$ac_file : 'X\(//\)$' \| \
+	 X$ac_file : 'X\(/\)' \| . 2>/dev/null ||
+echo X$ac_file |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
+
+  :C)  { echo "$as_me:$LINENO: executing $ac_file commands" >&5
+echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+  esac
+
+
+  case $ac_file$ac_mode in
+    "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
+  # Strip MF so we end up with the name of the file.
+  mf=`echo "$mf" | sed -e 's/:.*$//'`
+  # Check whether this is an Automake generated Makefile or not.
+  # We used to match only the files named `Makefile.in', but
+  # some people rename them; so instead we look at the file content.
+  # Grep'ing the first line is not enough: some people post-process
+  # each Makefile.in and add a new line on top of each file to say so.
+  # Grep'ing the whole file is not good either: AIX grep has a line
+  # limit of 2048, but all sed's we know have understand at least 4000.
+  if sed 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then
+    dirpart=`$as_dirname -- "$mf" ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$mf" : 'X\(//\)[^/]' \| \
+	 X"$mf" : 'X\(//\)$' \| \
+	 X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
+echo X"$mf" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  else
+    continue
+  fi
+  # Extract the definition of DEPDIR, am__include, and am__quote
+  # from the Makefile without running `make'.
+  DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+  test -z "$DEPDIR" && continue
+  am__include=`sed -n 's/^am__include = //p' < "$mf"`
+  test -z "am__include" && continue
+  am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+  # When using ansi2knr, U may be empty or an underscore; expand it
+  U=`sed -n 's/^U = //p' < "$mf"`
+  # Find all dependency output files, they are included files with
+  # $(DEPDIR) in their names.  We invoke sed twice because it is the
+  # simplest approach to changing $(DEPDIR) to its actual value in the
+  # expansion.
+  for file in `sed -n "
+    s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+    # Make sure the directory exists.
+    test -f "$dirpart/$file" && continue
+    fdir=`$as_dirname -- "$file" ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$file" : 'X\(//\)[^/]' \| \
+	 X"$file" : 'X\(//\)$' \| \
+	 X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+echo X"$file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+    { as_dir=$dirpart/$fdir
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
+echo "$as_me: error: cannot create directory $as_dir" >&2;}
+   { (exit 1); exit 1; }; }; }
+    # echo "creating $dirpart/$file"
+    echo '# dummy' > "$dirpart/$file"
+  done
+done
+ ;;
+    "po-directories":C)
+    for ac_file in $CONFIG_FILES; do
+      # Support "outfile[:infile[:infile...]]"
+      case "$ac_file" in
+        *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+      esac
+      # PO directories have a Makefile.in generated from Makefile.in.in.
+      case "$ac_file" in */Makefile.in)
+        # Adjust a relative srcdir.
+        ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+        ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+        ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+        # In autoconf-2.13 it is called $ac_given_srcdir.
+        # In autoconf-2.50 it is called $srcdir.
+        test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+        case "$ac_given_srcdir" in
+          .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+          /*) top_srcdir="$ac_given_srcdir" ;;
+          *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
+        esac
+        # Treat a directory as a PO directory if and only if it has a
+        # POTFILES.in file. This allows packages to have multiple PO
+        # directories under different names or in different locations.
+        if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
+          rm -f "$ac_dir/POTFILES"
+          test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
+          cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ 	]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
+          POMAKEFILEDEPS="POTFILES.in"
+          # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
+          # on $ac_dir but don't depend on user-specified configuration
+          # parameters.
+          if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+            # The LINGUAS file contains the set of available languages.
+            if test -n "$OBSOLETE_ALL_LINGUAS"; then
+              test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+            fi
+            ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+            # Hide the ALL_LINGUAS assigment from automake < 1.5.
+            eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+            POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+          else
+            # The set of available languages was given in configure.in.
+            # Hide the ALL_LINGUAS assigment from automake < 1.5.
+            eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
+          fi
+          # Compute POFILES
+          # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+          # Compute UPDATEPOFILES
+          # as      $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+          # Compute DUMMYPOFILES
+          # as      $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+          # Compute GMOFILES
+          # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+          case "$ac_given_srcdir" in
+            .) srcdirpre= ;;
+            *) srcdirpre='$(srcdir)/' ;;
+          esac
+          POFILES=
+          UPDATEPOFILES=
+          DUMMYPOFILES=
+          GMOFILES=
+          for lang in $ALL_LINGUAS; do
+            POFILES="$POFILES $srcdirpre$lang.po"
+            UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+            DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+            GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+          done
+          # CATALOGS depends on both $ac_dir and the user's LINGUAS
+          # environment variable.
+          INST_LINGUAS=
+          if test -n "$ALL_LINGUAS"; then
+            for presentlang in $ALL_LINGUAS; do
+              useit=no
+              if test "%UNSET%" != "$LINGUAS"; then
+                desiredlanguages="$LINGUAS"
+              else
+                desiredlanguages="$ALL_LINGUAS"
+              fi
+              for desiredlang in $desiredlanguages; do
+                # Use the presentlang catalog if desiredlang is
+                #   a. equal to presentlang, or
+                #   b. a variant of presentlang (because in this case,
+                #      presentlang can be used as a fallback for messages
+                #      which are not translated in the desiredlang catalog).
+                case "$desiredlang" in
+                  "$presentlang"*) useit=yes;;
+                esac
+              done
+              if test $useit = yes; then
+                INST_LINGUAS="$INST_LINGUAS $presentlang"
+              fi
+            done
+          fi
+          CATALOGS=
+          if test -n "$INST_LINGUAS"; then
+            for lang in $INST_LINGUAS; do
+              CATALOGS="$CATALOGS $lang.gmo"
+            done
+          fi
+          test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
+          sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
+          for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
+            if test -f "$f"; then
+              case "$f" in
+                *.orig | *.bak | *~) ;;
+                *) cat "$f" >> "$ac_dir/Makefile" ;;
+              esac
+            fi
+          done
+        fi
+        ;;
+      esac
+    done ;;
+
+  esac
+done # for ac_tag
+
+
+{ (exit 0); exit 0; }
+_ACEOF
+chmod +x $CONFIG_STATUS
+ac_clean_files=$ac_clean_files_save
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  ac_config_status_args=
+  test "$silent" = yes &&
+    ac_config_status_args="$ac_config_status_args --quiet"
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+  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 || { (exit 1); exit 1; }
+fi
+
+
+echo
+echo Type \'make\' to compile parted.
diff --git a/parted-1.8.7/configure.ac b/parted-1.8.7/configure.ac
new file mode 100644
index 0000000..bc08cc5
--- /dev/null
+++ b/parted-1.8.7/configure.ac
@@ -0,0 +1,525 @@
+dnl GNU Parted - a library and front end for manipulation hard disk partitions
+dnl Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005, 2006, 2007
+dnl Free Software Foundation, Inc.
+dnl
+dnl This file may be modified and/or distributed without restriction.
+
+AC_PREREQ(2.61)
+AC_INIT([GNU parted],[1.8.7],[bug-parted@gnu.org])
+
+AC_CONFIG_SRCDIR(include/parted/parted.h)
+
+AC_CONFIG_HEADERS([lib/config.h:lib/config.h.in])
+AC_CONFIG_AUX_DIR(build-aux)
+
+dnl Versioning
+dnl Shamelessly pulled straight from glib's configure.in ...
+dnl Making releases:
+dnl    PED_MICRO_VERSION += 1;
+dnl    PED_INTERFACE_AGE += 1;
+dnl    PED_BINARY_AGE += 1;
+dnl if any functions have been added, set PED_INTERFACE_AGE to 0.
+dnl if backwards compatibility has been broken (eg. functions removed,
+dnl function signatures changed),
+dnl set PED_BINARY_AGE _and_ PED_INTERFACE_AGE to 0.
+PED_MAJOR_VERSION=1
+PED_MINOR_VERSION=8
+PED_MICRO_VERSION=7
+PED_INTERFACE_AGE=0
+PED_BINARY_AGE=0
+PED_VERSION_SUFFIX=
+PED_VERSION=$PED_MAJOR_VERSION.$PED_MINOR_VERSION.$PED_MICRO_VERSION$PED_VERSION_SUFFIX
+
+LT_RELEASE=$PED_MAJOR_VERSION.$PED_MINOR_VERSION
+LT_CURRENT=`expr $PED_MICRO_VERSION - $PED_INTERFACE_AGE`
+LT_REVISION=$PED_INTERFACE_AGE
+LT_AGE=`expr $PED_BINARY_AGE - $PED_INTERFACE_AGE`
+AC_SUBST(LT_RELEASE)
+AC_SUBST(LT_CURRENT)
+AC_SUBST(LT_REVISION)
+AC_SUBST(LT_AGE)
+
+# Ensure that the PED_*-specified version is the same as the literal
+# in the AC_INIT line, above.
+test $PACKAGE_VERSION = $PED_VERSION ||
+  AC_MSG_ERROR(configure.ac: version mismatch: $PACKAGE_VERSION != $PED_VERSION)
+
+AM_INIT_AUTOMAKE([1.10 dist-bzip2])
+
+AC_CANONICAL_HOST
+case "$host_os" in
+	linux*) OS=linux ;;
+	gnu*)	OS=gnu ;;
+	beos*)	OS=beos ;;
+	*)	AC_MSG_ERROR([Unknown or unsupported OS "$host_os".  Only "linux", "gnu" and "beos" are supported in this version of GNU Parted.]) ;;
+esac
+AC_SUBST(OS)
+
+dnl Command-line options
+AC_ARG_WITH(readline,
+	[  --with-readline         support fancy command line editing], ,
+	with_readline=yes
+)
+
+AC_ARG_ENABLE(mtrace,
+	[  --enable-mtrace         enable malloc() debugging], ,
+	enable_mtrace=no
+)
+if test "$enable_mtrace" = yes; then
+	AC_DEFINE(ENABLE_MTRACE, 1, [Mtrace malloc() debugging])
+fi
+
+AC_ARG_ENABLE(device-mapper,
+	[  --enable-device-mapper  enable device mapper support [default=no]], ,
+	enable_device_mapper=no
+)
+if test "$enable_device_mapper" = yes; then
+	AC_DEFINE(ENABLE_DEVICE_MAPPER, 1, [device mapper (libdevmapper) support])
+fi
+
+AC_ARG_ENABLE(selinux,
+	[  --enable-selinux        enable SELinux support [default=no]], ,
+	enable_selinux=no
+)
+
+AC_ARG_ENABLE(discover-only,
+	[  --enable-discover-only  support only reading/probing [default=no]], ,
+	enable_discover_only=no
+)
+if test "$enable_discover_only" = yes; then
+	AC_DEFINE(DISCOVER_ONLY, 1, [Probing functionality only])
+fi
+
+PARTED_LIBS=""
+AC_ARG_ENABLE(dynamic-loading,
+[  --enable-dynamic-loading  support dynamic fs libraries [default=yes]], ,
+	if test "$enable_discover_only" = yes; then
+		enable_dynamic_loading=no
+	else
+		enable_dynamic_loading=yes
+	fi
+)
+if test "$enable_discover_only" = yes -a "$enable_dynamic_loading" = yes; then
+	AC_MSG_ERROR(
+[You can't use --enable-dynamic-loading and --disable-discover-only together]
+	)
+fi
+
+AC_ARG_ENABLE(fs,
+	[  --enable-fs             include filesystem support [default=yes]], ,
+	enable_fs=yes
+)
+if test "$enable_fs" = yes; then
+	AC_DEFINE(ENABLE_FS, 1,
+		  [Include file system support.  i.e. libparted/fs_...])
+fi
+
+AC_ARG_ENABLE(debug,
+	[  --enable-debug          compile in assertions [default=yes]], ,
+	enable_debug=yes
+)
+
+if test "$enable_debug" = yes; then
+	AC_DEFINE(DEBUG, 1, [Enable assertions, etc.])
+fi
+
+AC_ARG_ENABLE(read-only,
+	[  --enable-read-only      disable writing (for debugging) [default=no]]
+	, ,
+	enable_read_only=no
+)
+if test "$enable_read_only" = yes; then
+	AC_DEFINE(READ_ONLY, 1, [Disable all writing code])
+fi
+
+PARTEDLDFLAGS=
+AC_SUBST(PARTEDLDFLAGS)
+
+AC_ARG_ENABLE(pc98,
+	[  --enable-pc98          build with pc98 support [default=yes]], ,
+	enable_pc98=yes
+)
+if test "$enable_pc98" = yes; then
+	AC_DEFINE(ENABLE_PC98, 1,
+		  [Include PC98 partition tables.  (Sometimes excluded to avoid
+		   collisions with msdos partition tables])
+fi
+
+AC_ARG_ENABLE(Werror,
+	[  --enable-Werror         build with gcc -Werror [default=yes]], ,
+	enable_Werror=yes
+)
+
+AC_ARG_ENABLE(hfs-extract-fs,
+	[  --enable-hfs-extract-fs Extract special HFS files for debugging [default=no]], ,
+	enable_hfs_extract_fs=no
+)
+if test "$enable_hfs_extract_fs" = yes; then
+       AC_DEFINE(HFS_EXTRACT_FS, 1,
+                 [Extract low level special HFS(+) files for debugging purposes
+                  when using the "check" command (NOT FOR PACKAGING)])
+fi
+
+dnl make libc threadsafe (not required for us, but useful other users of
+dnl libparted)
+AM_CPPFLAGS="$AM_CPPFLAGS -D_REENTRANT"
+
+dnl Check for programs.
+AC_ISC_POSIX
+AC_PROG_CC
+AC_PROG_GCC_TRADITIONAL
+AM_PROG_CC_C_O
+
+gl_EARLY
+
+dnl This test must come as early as possible after the compiler configuration
+dnl tests, because the choice of the file model can (in principle) affect
+dnl whether functions and headers are available, whether they work, etc.
+AC_SYS_LARGEFILE
+
+gl_INIT
+
+AC_CHECK_SIZEOF(off_t, 64, [
+	#include <stdio.h>
+	#include <sys/types.h>
+	#include <unistd.h>
+])
+
+AM_ENABLE_SHARED
+if test "$OS" = linux -a $ac_cv_sizeof_off_t -lt 8; then
+	dnl Need to disable shared libraries, to get llseek() to work.  Long
+	dnl story.  The short story is: lseek() isn't in glibc, so a syscall
+	dnl must be made.  syscalls can't be made from within shared libraries,
+	dnl because of a bug (?) in gcc.
+	AC_MSG_WARN(
+off_t is less than 8 bytes.  Using llseek syscall, and disabling shared
+libraries.)
+	AM_DISABLE_SHARED
+fi
+AM_PROG_LIBTOOL
+
+AM_GNU_GETTEXT_VERSION([0.15])
+AM_GNU_GETTEXT([external])
+if test "$USE_INCLUDED_LIBINTL" = "yes"; then
+	AC_MSG_ERROR(
+GNU Parted requires gettext to be installed for compilation -
+if native language support is desired.  Either disable native language support
+with:
+	$ ./configure --disable-nls
+Or install gettext.  GNU gettext is available from
+	http://ftp.gnu.org/gnu/gettext
+)
+	exit
+fi
+
+dnl Check for libdl, if we are doing dynamic loading
+DL_LIBS=""
+if test "$enable_dynamic_loading" = yes; then
+	AC_CHECK_LIB(dl, dlopen,
+		DL_LIBS="-ldl"
+		PARTED_LIBS="$PARTED_LIBS -ldl"
+		AC_DEFINE(DYNAMIC_LOADING, 1, [Lazy linking to fs libs]),
+		AC_MSG_ERROR(
+			[-ldl not found!  Try using --disable-dynamic-loading]
+		)
+		exit
+	)
+fi
+AC_SUBST(DL_LIBS)
+
+dnl Check for libuuid
+UUID_LIBS=""
+AC_CHECK_LIB(uuid, uuid_generate, UUID_LIBS="-luuid",
+	AC_MSG_ERROR(
+GNU Parted requires libuuid - a part of the e2fsprogs package (but
+sometimes distributed separately in uuid-devel or similar)
+This can probably be found on your distribution's CD or FTP site or at:
+         http://web.mit.edu/tytso/www/linux/e2fsprogs.html
+Note: if you are using precompiled packages you will also need the development
+package as well (which may be called e2fsprogs-devel or something similar).
+If you compile e2fsprogs yourself then you need to do 'make install' and
+'make install-libs'.
+	)
+	exit
+)
+AC_SUBST(UUID_LIBS)
+
+dnl Check for libdevmapper
+DM_LIBS=""
+if test "$enable_device_mapper" = yes; then
+	AC_CHECK_LIB(devmapper, dm_task_create,
+		DM_LIBS="-ldevmapper",
+		AC_MSG_ERROR(
+			[libdevmapper not found!  Try using --disable-device-mapper]
+		)
+		exit
+	)
+fi
+AC_SUBST(DM_LIBS)
+
+dnl Check for SELinux
+SELINUX_LIBS=""
+if test "$enable_selinux" = yes; then
+	SELINUX_LIBS="-lselinux -lsepol"
+fi
+AC_SUBST(SELINUX_LIBS)
+
+dnl Check for libreiserfs
+REISER_LIBS=""
+if test "$enable_dynamic_loading" = no -a "$enable_discover_only" = no; then
+	OLD_LIBS="$LIBS"
+	AC_CHECK_LIB(dal, dal_equals,
+		LIBS="-ldal"
+		AC_CHECK_LIB(reiserfs, reiserfs_fs_probe,
+			REISER_LIBS="-ldal -lreiserfs"
+			AC_DEFINE(HAVE_LIBREISERFS, 1, [Have libreiserfs])
+		)
+		AC_CHECK_LIB(reiserfs, reiserfs_fs_check,
+			AC_DEFINE(HAVE_REISERFS_FS_CHECK, 1, [Have reiserfs_fs_check()])
+		)
+	)
+	LIBS="$OLD_LIBS"
+fi
+AC_SUBST(REISER_LIBS)
+
+dnl Check for termcap
+if test "$with_readline" = yes; then
+	OLD_LIBS="$LIBS"
+	LIBS=""
+	AC_SEARCH_LIBS(tgetent, tinfo ncurses curses termcap termlib,
+		PARTED_LIBS="$PARTED_LIBS $LIBS",
+		AC_MSG_ERROR(
+termcap could not be found which is required for the
+--with-readline option (which is enabled by default).  Either disable readline
+support with --without-readline or download and install termcap from:
+	ftp.gnu.org/gnu/termcap
+Note: if you are using precompiled packages you will also need the development
+  package as well (which may be called termcap-devel or something similar).
+Note: (n)curses also seems to work as a substitute for termcap.  This was
+  not found either - but you could try installing that as well.
+)
+	exit
+	)
+	LIBS="$OLD_LIBS"
+fi
+
+dnl Check for readline
+dnl NOTE: We need to remove the gl_cv_ignore_unused_libraries flag if we
+dnl detected one earlier.  libreadline on some platforms (e.g., RHEL and
+dnl Fedora) is left with 
+if test "$with_readline" = yes; then
+	OLD_LIBS="$LIBS"
+	LIBS="$LIBS $PARTED_LIBS"
+	AC_CHECK_LIB(readline, readline,
+		PARTED_LIBS="-lreadline $PARTED_LIBS"
+		AC_DEFINE(HAVE_LIBREADLINE, 1, [have readline]),
+		AC_MSG_ERROR(
+GNU Readline could not be found which is required for the
+--with-readline (which is enabled by default).  Either disable readline support with
+--without-readline or downloaded and install it from:
+        ftp.gnu.org/gnu/readline
+Note: if you are using precompiled packages you will also need the development
+package as well (which may be called readline-devel or something similar).
+)
+		exit,
+		$PARTED_LIBS
+	)
+ 	LIBS="$OLD_LIBS"
+fi
+
+AC_SUBST(PARTED_LIBS)
+
+dnl Check for OS specific libraries
+
+dnl GNU/Hurd:
+if test "$OS" = gnu; then
+dnl libshouldbeinlibc
+	AC_CHECK_LIB(shouldbeinlibc, vm_deallocate,
+		OS_LIBS="$OS_LIBS -lshouldbeinlibc",
+		AC_MSG_ERROR(
+GNU Parted requires libshouldbeinlibc when running on
+GNU/Hurd systems.  It is a standard part of a GNU/Hurd system.
+		)
+		exit
+	)
+
+dnl libstore may depend on libparted being present.
+dnl Aren't circular dependencies wonderful?
+	OLD_LIBS="$LIBS"
+	LIBS=
+
+	AC_CHECK_LIB(parted, ped_device_read)
+
+dnl libstore
+	AC_CHECK_LIB(store, store_open,
+		OS_LIBS="$OS_LIBS -lstore",
+		AC_MSG_ERROR(
+GNU Parted requires libstore when running on GNU/Hurd
+systems.  It is a standard part of a GNU/Hurd system.
+		)
+		exit,
+		$OS_LIBS $UUID_LIBS $DM_LIBS $LIBS
+	)
+	LIBS="$OLD_LIBS"
+fi
+
+dnl BeOS/ZETA/Haiku:
+
+if test "$OS" = beos; then
+	dnl Include the socket library, as it is a depedency of libuuid
+	dnl and so also of us (due to socket() call in libuuid)
+	OS_LIBS="$OS_LIBS -lsocket"
+fi
+
+AC_SUBST(OS_LIBS)
+
+dnl One day, gettext might support libtool...
+dnl if test "$USE_INCLUDED_LIBINTL" = "yes"; then
+dnl	INTLINCS='-I$(top_srcdir)/intl'
+dnl fi
+AC_SUBST(INTLINCS)
+
+
+dnl Checks for header files.
+AC_CHECK_HEADER(uuid/uuid.h, ,
+	AC_MSG_ERROR(
+GNU Parted requires libuuid - a part of the e2fsprogs package.
+You seem to have the library installed but not the headers.  These are usually
+found in a corresponding development package (usually called e2fsprogs-devel).
+If you can't find one try:
+        http://web.mit.edu/tytso/www/linux/e2fsprogs.html
+)
+	exit
+)
+
+AC_CHECK_HEADERS(getopt.h)
+
+dnl required for libparted/llseek.c  (TODO: make linux-x86 only)
+if test "$OS" = linux; then
+	AC_CHECK_HEADER(linux/unistd.h)
+fi
+
+if test "$with_readline" = yes; then
+	AC_CHECK_HEADERS(readline/readline.h readline/history.h, ,
+		AC_MSG_ERROR(
+The headers for GNU Readline could not be found which
+are required for the --with-readline option.  You seem to have the GNU readline
+library installed but not the headers.  These are usually found in a
+corresponding development package (usually called readline-devel).  If you can't
+find one try:
+        ftp.gnu.org/gnu/readline
+Alternatively you can disable readline support with --without-readline
+)
+	exit
+	)
+fi
+
+AC_CHECK_HEADERS(termcap.h)
+
+if test "$USE_NLS" = yes; then
+	AC_CHECK_HEADERS(wctype.h, ,
+		AC_MSG_ERROR(
+One or more of the header files that are required for
+native language support (wctype.h) could not be found.  Either get a newer
+version of GNU libc and its headers - which can be obtained from:
+	ftp.gnu.org/gnu/glibc
+Or disable native language support with the --disable-nls option
+)
+	exit
+	)
+fi
+
+AC_CHECK_HEADER([execinfo.h], [
+	AC_CHECK_LIB(c, backtrace, [
+		AC_DEFINE(HAVE_BACKTRACE, 1, [Has backtrace support])
+		LDFLAGS="$LDFLAGS -rdynamic"
+	])
+])
+
+dnl Checks for #defines.
+AC_COMPILE_IFELSE([
+	AC_LANG_PROGRAM([[
+	#if defined __s390__ || defined __s390x__
+	#  message s390 defined
+	#endif
+	]])], [compile_for_s390="no"], [compile_for_s390="yes"])
+AM_CONDITIONAL([COMPILE_FOR_S390], [test "$compile_for_s390" = "yes"])
+
+dnl check for "check", unit testing library/header
+PKG_CHECK_MODULES([CHECK], [check >= 0.9.3], have_check=yes, have_check=no)
+if test "$have_scintilla" != "yes"; then
+    AC_MSG_RESULT([Unable to locate check version 0.9.3 or higher: not building])
+fi
+AM_CONDITIONAL([HAVE_CHECK], [test "$have_check" = yes])
+
+dnl Checks for typedefs, structures and compiler characteristics.
+AC_PROG_LD
+
+AC_C_BIGENDIAN
+AC_C_INLINE
+AC_C_CONST
+AC_C_RESTRICT
+
+
+dnl Checks for library functions.
+AC_CHECK_FUNCS(sigaction)
+AC_CHECK_FUNCS(getuid)
+
+dnl NOTE: We need to remove the gl_cv_ignore_unused_libraries flag if we
+dnl detected one earlier.  libreadline on some platforms (e.g., RHEL and
+dnl Fedora) is left with 
+if test "$with_readline" = yes; then
+	OLD_LIBS="$LIBS"
+	LIBS="$LIBS $PARTED_LIBS -lreadline"
+	AC_CHECK_FUNCS(rl_completion_matches)
+	LIBS="$OLD_LIBS"
+fi
+
+AC_CHECK_FUNCS(canonicalize_file_name)
+
+# CFLAGS="$CFLAGS -W -Wall -Wno-unused -Wno-switch -Wno-format"
+
+if test "$enable_Werror" = yes; then
+	CFLAGS="$CFLAGS -Werror"
+fi
+
+DATE=$(date '+%d %b %Y %H:%M')
+USER=$(whoami)
+HOST=$(hostname)
+BUILDINFO="$USER@$HOST, $DATE"
+AC_SUBST(BUILDINFO)
+
+AC_OUTPUT([
+Makefile
+lib/Makefile
+include/Makefile
+include/parted/Makefile
+libparted/Makefile
+libparted/labels/Makefile
+libparted/fs/Makefile
+libparted/fs/amiga/Makefile
+libparted/fs/ext2/Makefile
+libparted/fs/fat/Makefile
+libparted/fs/hfs/Makefile
+libparted/fs/jfs/Makefile
+libparted/fs/linux_swap/Makefile
+libparted/fs/ntfs/Makefile
+libparted/fs/reiserfs/Makefile
+libparted/fs/ufs/Makefile
+libparted/fs/xfs/Makefile
+libparted/tests/Makefile
+libparted.pc
+parted/Makefile
+partprobe/Makefile
+doc/Makefile
+doc/C/Makefile
+doc/pt_BR/Makefile
+debug/Makefile
+debug/clearfat/Makefile
+debug/test/Makefile
+tests/Makefile
+po/Makefile.in
+])
+
+echo
+echo Type \'make\' to compile parted.
diff --git a/parted-1.8.7/debug/Makefile.am b/parted-1.8.7/debug/Makefile.am
new file mode 100644
index 0000000..5a1e452
--- /dev/null
+++ b/parted-1.8.7/debug/Makefile.am
@@ -0,0 +1,3 @@
+SUBDIRS = clearfat test
+
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/parted-1.8.7/debug/Makefile.in b/parted-1.8.7/debug/Makefile.in
new file mode 100644
index 0000000..6222880
--- /dev/null
+++ b/parted-1.8.7/debug/Makefile.in
@@ -0,0 +1,671 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = debug
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+	html-recursive info-recursive install-data-recursive \
+	install-dvi-recursive install-exec-recursive \
+	install-html-recursive install-info-recursive \
+	install-pdf-recursive install-ps-recursive install-recursive \
+	installcheck-recursive installdirs-recursive pdf-recursive \
+	ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
+  distclean-recursive maintainer-clean-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = clearfat test
+MAINTAINERCLEANFILES = Makefile.in
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  debug/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  debug/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	rev=''; for subdir in $$list; do \
+	  if test "$$subdir" = "."; then :; else \
+	    rev="$$subdir $$rev"; \
+	  fi; \
+	done; \
+	rev="$$rev ."; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done && test -z "$$fail"
+tags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+ctags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+	  include_option=--etags-include; \
+	  empty_fix=.; \
+	else \
+	  include_option=--include; \
+	  empty_fix=; \
+	fi; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test ! -f $$subdir/TAGS || \
+	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	  fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d "$(distdir)/$$subdir" \
+	    || $(MKDIR_P) "$(distdir)/$$subdir" \
+	    || exit 1; \
+	    distdir=`$(am__cd) $(distdir) && pwd`; \
+	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+	    (cd $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$$top_distdir" \
+	        distdir="$$distdir/$$subdir" \
+		am__remove_distdir=: \
+		am__skip_length_check=: \
+	        distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-info: install-info-recursive
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-ps: install-ps-recursive
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+	install-strip
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+	all all-am check check-am clean clean-generic clean-libtool \
+	ctags ctags-recursive distclean distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs installdirs-am maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
+	uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/debug/clearfat/Makefile.am b/parted-1.8.7/debug/clearfat/Makefile.am
new file mode 100644
index 0000000..7409f45
--- /dev/null
+++ b/parted-1.8.7/debug/clearfat/Makefile.am
@@ -0,0 +1,15 @@
+noinst_PROGRAMS	= clearfat
+
+clearfat_SOURCES = clearfat.c
+
+clearfat_LDADD = \
+  $(top_builddir)/lib/libparted.la \
+  $(top_builddir)/libparted/libparted.la \
+  $(INTLLIBS) $(LIBS) \
+  $(PARTED_LIBS)
+
+partedincludedir	= -I$(top_srcdir)/lib -I$(top_srcdir)/include
+
+INCLUDES 		= $(partedincludedir) $(INTLINCS)
+
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/parted-1.8.7/debug/clearfat/Makefile.in b/parted-1.8.7/debug/clearfat/Makefile.in
new file mode 100644
index 0000000..1c84c38
--- /dev/null
+++ b/parted-1.8.7/debug/clearfat/Makefile.in
@@ -0,0 +1,632 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+noinst_PROGRAMS = clearfat$(EXEEXT)
+subdir = debug/clearfat
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES =
+PROGRAMS = $(noinst_PROGRAMS)
+am_clearfat_OBJECTS = clearfat.$(OBJEXT)
+clearfat_OBJECTS = $(am_clearfat_OBJECTS)
+am__DEPENDENCIES_1 =
+clearfat_DEPENDENCIES = $(top_builddir)/lib/libparted.la \
+	$(top_builddir)/libparted/libparted.la $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/lib@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(clearfat_SOURCES)
+DIST_SOURCES = $(clearfat_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+clearfat_SOURCES = clearfat.c
+clearfat_LDADD = \
+  $(top_builddir)/lib/libparted.la \
+  $(top_builddir)/libparted/libparted.la \
+  $(INTLLIBS) $(LIBS) \
+  $(PARTED_LIBS)
+
+partedincludedir = -I$(top_srcdir)/lib -I$(top_srcdir)/include
+INCLUDES = $(partedincludedir) $(INTLINCS)
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  debug/clearfat/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  debug/clearfat/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstPROGRAMS:
+	@list='$(noinst_PROGRAMS)'; for p in $$list; do \
+	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  echo " rm -f $$p $$f"; \
+	  rm -f $$p $$f ; \
+	done
+clearfat$(EXEEXT): $(clearfat_OBJECTS) $(clearfat_DEPENDENCIES) 
+	@rm -f clearfat$(EXEEXT)
+	$(LINK) $(clearfat_OBJECTS) $(clearfat_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clearfat.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/debug/clearfat/clearfat.c b/parted-1.8.7/debug/clearfat/clearfat.c
new file mode 100644
index 0000000..dd98024
--- /dev/null
+++ b/parted-1.8.7/debug/clearfat/clearfat.c
@@ -0,0 +1,346 @@
+/*
+    clear_fat - a tool to clear unused space (for testing purposes)
+    Copyright (C) 2000, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <getopt.h>
+#include "closeout.h"
+#include "configmake.h"
+#include "error.h"
+#include "long-options.h"
+
+#include "../../libparted/fs/fat/fat.h"
+
+#include <locale.h>
+
+/* Take care of NLS matters.  */
+
+#include "gettext.h"
+#if ! ENABLE_NLS
+# undef textdomain
+# define textdomain(Domainname) /* empty */
+# undef bindtextdomain
+# define bindtextdomain(Domainname, Dirname) /* empty */
+#endif
+
+#undef _
+#define _(msgid) gettext (msgid)
+
+#ifndef DISCOVER_ONLY
+
+/* The official name of this program (e.g., no `g' prefix).  */
+#define PROGRAM_NAME "clearfat"
+
+#define AUTHORS \
+  "<http://parted.alioth.debian.org/cgi-bin/trac.cgi/browser/AUTHORS>"
+
+/* The name this program was run with. */
+char *program_name;
+
+void
+usage (int status)
+{
+  if (status != EXIT_SUCCESS)
+    fprintf (stderr, _("Try `%s --help' for more information.\n"),
+	     program_name);
+  else
+    {
+      printf (_("\
+Usage: %s [OPTION]\n\
+  or:  %s DEVICE MINOR\n"), PROGRAM_NAME, PROGRAM_NAME);
+      fputs (_("\
+Clear unused space on a FAT partition (a GNU Parted testing tool).\n\
+\n\
+"), stdout);
+      fputs (_("      --help     display this help and exit\n"), stdout);
+      fputs (_("      --version  output version information and exit\n"),
+             stdout);
+      printf (_("\nReport bugs to <%s>.\n"), PACKAGE_BUGREPORT);
+    }
+  exit (status);
+}
+
+#define CLEAR_BUFFER_SIZE		(1024 * 1024)
+#define CLEAR_BUFFER_SECTORS		(CLEAR_BUFFER_SIZE/512)
+
+static char buffer [CLEAR_BUFFER_SIZE];
+
+/* generic clearing code ***************************************************/
+
+static int
+_clear_sectors (PedGeometry* geom, PedSector start, PedSector count)
+{
+	PedSector		pos;
+	PedSector		to_go = count;
+
+	for (pos = start;
+	     pos < start + count;
+	     pos += CLEAR_BUFFER_SECTORS, to_go -= CLEAR_BUFFER_SECTORS) {
+		if (!ped_geometry_write (geom, buffer, start,
+					 PED_MIN (CLEAR_BUFFER_SECTORS, to_go)))
+			return 0;
+	}
+
+	return 1;
+}
+
+static int
+_clear_sector_range (PedGeometry* geom, PedSector start, PedSector end)
+{
+	return _clear_sectors (geom, start, end - start + 1);
+}
+
+static int
+_clear_sector (PedGeometry* geom, PedSector sector)
+{
+	return _clear_sectors (geom, sector, 1);
+}
+
+static int
+_clear_partial_sector (PedGeometry* geom, PedSector sector,
+		       int offset, int count)
+{
+	if (!ped_geometry_read (geom, buffer, sector, 1))
+		goto error;
+	memset (buffer + offset, 0, count);
+	if (!ped_geometry_write (geom, buffer, sector, 1))
+		goto error;
+
+	memset (buffer, 0, 512);
+	return 1;
+
+error:
+	memset (buffer, 0, 512);
+	return 0;
+}
+
+static int
+_clear_partial_range (PedGeometry* geom, PedSector sector, int start, int end)
+{
+	return _clear_partial_sector (geom, sector, start, end - start + 1);
+}
+
+static int
+_clear_clusters (PedFileSystem* fs, FatCluster start, FatCluster count)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+	return _clear_sectors (fs->geom, fat_cluster_to_sector(fs, start),
+			       count * fs_info->cluster_sectors);
+}
+
+/* FAT code ******************************************************************/
+
+static void
+_clear_before_fat (PedFileSystem* fs)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+	PedSector	sector;
+
+	for (sector = 1; sector < fs_info->fat_offset; sector++) {
+		if (sector == fs_info->info_sector_offset)
+			continue;
+		if (sector == fs_info->boot_sector_backup_offset)
+			continue;
+		_clear_sector (fs->geom, sector);
+	}
+}
+
+static int
+_calc_fat_entry_offset (PedFileSystem* fs, FatCluster cluster)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+
+	switch (fs_info->fat_type) {
+                case FAT_TYPE_FAT12:
+                        PED_ASSERT (0, (void) 0);
+                        break;
+
+		case FAT_TYPE_FAT16:
+			return cluster * 2;
+
+		case FAT_TYPE_FAT32:
+			return cluster * 4;
+	}
+	return 0;
+}
+
+static void
+_clear_unused_fats (PedFileSystem* fs)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+	PedSector	table_start;
+	int		table_num;
+	int		last_active_offset;
+	PedSector	last_active_sector;
+	int		last_active_sector_offset;
+
+	last_active_offset
+		= _calc_fat_entry_offset (fs, fs_info->fat->cluster_count);
+	last_active_sector = last_active_offset / 512;
+	last_active_sector_offset = last_active_offset % 512 + 4;
+
+	for (table_num = 0; table_num < fs_info->fat_table_count; table_num++) {
+		table_start = fs_info->fat_offset
+			      + table_num * fs_info->fat_sectors;
+
+		if (last_active_sector_offset < 512) {
+			_clear_partial_range (
+				fs->geom,
+				table_start + last_active_sector,
+				last_active_sector_offset,
+				512);
+		}
+
+		if (last_active_sector < fs_info->fat_sectors - 2) {
+			_clear_sector_range (
+				fs->geom,
+				table_start + last_active_sector + 1,
+				table_start + fs_info->fat_sectors - 1);
+		}
+	}
+}
+
+static int
+_clear_unused_clusters (PedFileSystem* fs)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+	FatCluster	cluster;
+	FatCluster	run_start = 0; /* shut gcc up! */
+	FatCluster	run_length = 0;
+
+	for (cluster = 2; cluster < fs_info->cluster_count + 2; cluster++) {
+		if (fat_table_is_available (fs_info->fat, cluster)) {
+			if (!run_length) {
+				run_start = cluster;
+				run_length = 1;
+			} else {
+				run_length++;
+			}
+		} else {
+			if (run_length)
+				_clear_clusters (fs, run_start, run_length);
+			run_length = 0;
+		}
+	}
+
+	if (run_length)
+		_clear_clusters (fs, run_start, run_length);
+
+	return 1;
+}
+
+static void
+_clear_unused_fat (PedFileSystem* fs)
+{
+	memset (buffer, 0, CLEAR_BUFFER_SIZE);
+
+	_clear_before_fat (fs);
+	_clear_unused_fats (fs);
+	_clear_unused_clusters (fs);
+}
+
+/* bureaucracy ***************************************************************/
+
+int
+main (int argc, char* argv[])
+{
+	PedDevice*		dev;
+	PedDisk*		disk;
+	PedPartition*		part;
+	PedFileSystem*		fs;
+
+        program_name = argv[0];
+        setlocale (LC_ALL, "");
+        bindtextdomain (PACKAGE, LOCALEDIR);
+        textdomain (PACKAGE);
+
+	atexit (close_stdout);
+
+	parse_long_options (argc, argv, PROGRAM_NAME, PACKAGE, VERSION,
+                            usage, AUTHORS, (char const *) NULL);
+	if (getopt_long (argc, argv, "", NULL, NULL) != -1)
+	  usage (EXIT_FAILURE);
+
+	if (argc - optind < 2)
+          {
+            error (0, 0, _("too few arguments"));
+            usage (EXIT_FAILURE);
+          }
+	if (2 < argc - optind)
+          {
+            error (0, 0, _("too many arguments"));
+            usage (EXIT_FAILURE);
+          }
+
+	dev = ped_device_get (argv [1]);
+	if (!dev)
+		goto error;
+	if (!ped_device_open (dev))
+		goto error;
+
+	disk = ped_disk_new (dev);
+	if (!disk)
+		goto error_close_dev;
+ 
+	part = ped_disk_get_partition (disk, atoi (argv[2]));
+	if (!part) {
+		printf ("Couldn't find partition `%s'\n", argv[2]);
+		goto error_destroy_disk;
+	}
+
+	fs = ped_file_system_open (&part->geom);
+	if (!fs)
+		goto error_destroy_disk;
+
+	if (strncmp (fs->type->name, "fat", 3)) {
+		printf ("Not a FAT file system!\n");
+		goto error_close_fs;
+	}
+
+	_clear_unused_fat (fs);
+
+	ped_file_system_close (fs);
+	ped_disk_destroy (disk);
+	ped_device_close (dev);
+	return 0;
+
+error_close_fs:
+	ped_file_system_close (fs);
+error_destroy_disk:
+	ped_disk_destroy (disk);
+error_close_dev:
+	ped_device_close (dev);
+error:
+	return 1;
+}
+
+#else /* DISCOVER_ONLY */
+
+/* hack! */
+int
+main()
+{
+	printf ("You must compile libparted with full read/write support\n");
+	return 1;
+}
+
+#endif /* DISCOVER_ONLY */
diff --git a/parted-1.8.7/debug/test/HOWTO b/parted-1.8.7/debug/test/HOWTO
new file mode 100644
index 0000000..e43aa0d
--- /dev/null
+++ b/parted-1.8.7/debug/test/HOWTO
@@ -0,0 +1,241 @@
+==============================================================================
+			PARTED REGRESSION TEST HOWTO
+==============================================================================
+
+	by Andrew Clausen
+
+	Copyright (C) 2002 Free Software Foundation, Inc.
+	This document may be distributed and/or modified
+	without restriction
+
+
+CONTENTS
+--------
+
+1	Introduction
+2	What you need
+3	Setting up testrc
+4	Running the tests
+
+5	How the tests work
+
+
+------------------------------------------------------------------------------
+1	INTRODUCTION
+------------------------------------------------------------------------------
+
+This document describes how to safely configure and run the GNU Parted
+regression tests.
+
+Regression tests are a set of "test cases" (or program inputs, whatever),
+that have a well defined "correct" and "broken".  The idea is to run
+regression tests after making changes, to check you didn't break anything.
+They are also useful for testing Parted in a new environment... perhaps
+you're computer has something peculiar that breaks it.
+
+Therefore, it's helpful for you to run Parted regression tests.
+
+
+------------------------------------------------------------------------------
+2	WHAT YOU NEED
+------------------------------------------------------------------------------
+
+You need:
+ * a spare hard drive (for GNU/Linux... haven't tried GNU/Hurd)
+   This is because only gendisk block devices can have partition tables.
+ * msdos partition table support in the kernel (for Linux).  (FIXME: can
+   use our shiny new partprobe!)
+ * file system support for ext2 and fat
+ * a reasonably standard GNU system, with diff(1), bash(1), e2fsck(8),
+   dosfsck(8), etc.
+ * parted, compiled in it's source directory.  i.e. ./configure && make
+ * a test data source, between 100 and 150 Mb, that contains all
+   lower-case filenames, and no symlinks.  It must have a significant
+   (i.e. at least 5%) amount of data in a subdirectory.
+	You can convert filenames to lowercase with:
+
+	cd /data-source
+	echo 'mv $1 $( echo $1 | tr A-Z a-z )' > tolower
+	chmod a+x tolower
+	find | grep [A-Z] | xargs -l1 ./tolower
+	rm tolower
+
+	(Hint: if you don't trust me, stick an "echo" before mv, and
+	it'll print out what it's going to do ;)
+
+
+------------------------------------------------------------------------------
+3	SETTING UP TESTRC
+------------------------------------------------------------------------------
+
+The testrc must be configured for your system.  The tests will refuse
+to run if you don't.  I'll work from top-to-bottom, describing how
+to fill in each value:
+
+
+3.1	TEST_HOST
+-----------------
+This field must match the output of hostname(1).  This is just a safety
+check, so you don't use the wrong testrc file, and destroy the wrong
+data ;)
+
+Example:
+	TEST_HOST=mirkwood
+
+3.2	TEST_PARTED_BASE
+------------------------
+This is the directory where you untarred and compiled parted:
+
+Example:
+	TEST_PARTED_BASE=~clausen/parted-1.4.20
+
+3.3	TEST_PARTED_COMMAND
+---------------------------
+You shouldn't need to change this.  It's just where to find parted.
+
+Example:
+	TEST_PARTED_COMMAND=$TEST_PARTED_BASE/parted/parted
+
+3.4	TEST_PARTED_CLEARFAT
+----------------------------
+You shouldn't need to change this.  It's just where to find clearfat,
+a special tool to help test Parted's fat code.  All it does is zero
+out unused (meta)data.  (There were cases in the past where stale
+metadata was making it appear that parted was working, when it wasn't)
+
+Example:
+	TEST_PARTED_CLEARFAT=$TEST_PARTED_BASE/debug/clearfat/clearfat
+
+3.5	TEST_DRIVE
+------------------
+The drive to be completely clobbered!  i.e. where testing will occur.
+Needless to say, I hope you don't have anything important there.
+Example:
+
+Example:
+	TEST_DRIVE=/dev/hdc
+
+3.6	TEST_DRIVE
+------------------
+The size of the disk, in megabytes, excluding the fractional part (decimal
+point).  You can get this from Parted's print output.  (Geometry of
+/dev/hdc is 0.0-*THIS IS IT*).
+
+Example:
+	TEST_DRIVE_SIZE=8063
+
+3.7	TEST_MOUNT_POINT
+------------------------
+A mount point that the tests can use, to mount $TEST_DRIVE.  Obviously, you
+need to create it with mkdir(1).
+
+Example:
+	TEST_MOUNT_POINT=/mnt/test
+
+3.8	TEST_DATA
+-----------------
+Where to get test data from.  See advice in section 2 for requirements
+on the test data.
+
+Example:
+	TEST_DATA=/var/www
+
+3.9	TEST_DATA_HOLE
+----------------------
+A directory inside $TEST_DATA, that will be deleted to create some
+fragmentation.  It should be at least 5% and at most 80% of the
+test data.
+
+Example:
+	TEST_DATA_HOLE=icons
+
+3.10	TEST_FS_USE_DISK_LABEL
+------------------------------
+Which disk label to use for testing file systems.  At the moment, only
+msdos is supported/tested, although most should work.
+
+Example:
+	TEST_FS_USE_DISK_LABEL=msdos
+
+3.11	QUIET_KERNEL
+--------------------
+Set to 1 if you want to shut up the kernel's annoying messages
+
+Example:
+	QUIET_KERNEL=1
+
+3.12	VERBOSE_LOGS
+--------------------
+Set to 1 if you want logging of everything, including successful tests.
+
+Example:
+	VERBOSE_LOGS=1
+
+3.13	MALLOC_TRACE
+--------------------
+Uncomment this if you want to do malloc() debugging with mtrace.
+TODO: document this.
+
+
+------------------------------------------------------------------------------
+4	RUNNING THE TESTS
+------------------------------------------------------------------------------
+
+4.1	Starting the tests
+--------------------------
+To run the tests, you must be root.  To run all tests, type:
+
+	./test
+
+To run a subset of tests, you can type part of the file name of
+those tests.  For example, to run all partition table tests, type:
+
+	./test disk
+
+Or the FAT tests:
+
+	./test fat
+
+4.2	Stopping the tests
+--------------------------
+If you want to interrupt the tests, the easiest way is:
+
+	(1) hit ctrl-z on the controlling virtual console / terminal
+	(2) run "ps", with no arguments
+	(3) run "kill -9 [PID]", where [PID] is the process id of
+	    "test"
+
+4.3	Examining the logs
+--------------------------
+In progress logs are written to test_out.  After each test completes,
+it's output (from test_out), among other things is appended to test_log
+
+To check if any tests failed, type:
+
+	grep failed test_log > /dev/null && echo FAILED || echo PASSED
+
+If some tests failed, check the logs to see what the problem is.  You
+may have set up the regression tests incorrectly.
+
+4.4	Sending bug reports
+---------------------------
+If you think it's a bug (or you're not sure), email us!
+
+	bug-parted@gnu.org
+
+Please attach the test_log.  Gzip it first ;)
+
+
+------------------------------------------------------------------------------
+5	HOW THE TESTS WORK
+------------------------------------------------------------------------------
+
+Parted has regression tests for all partition table formats, and for
+the ext2, fat and linuxswap.  The partition table tests are mainly
+"Create problem X and test that parted complains about it".  It
+doesn't compare output... only if parted reports error, and that it
+doesn't segfault.
+	The file system tests are mainly "do some operation on the
+file system, and check it's still got the same data", via diff(1).
+Also, it runs dosfsck(1) and e2fsck(1).
+
diff --git a/parted-1.8.7/debug/test/Makefile.am b/parted-1.8.7/debug/test/Makefile.am
new file mode 100644
index 0000000..ccb3e33
--- /dev/null
+++ b/parted-1.8.7/debug/test/Makefile.am
@@ -0,0 +1,19 @@
+noinst_SCRIPTS	= test			\
+		  test_disk_bsd		\
+		  test_disk_dos		\
+		  test_disk_dvh		\
+		  test_disk_gpt		\
+		  test_disk_pc98	\
+		  test_disk_mac		\
+		  test_disk_sun		\
+		  test_fs_ext2		\
+		  test_fs_fat		\
+		  test_fs_linux_swap	\
+		  test_fs_reiserfs	\
+		  build_leak_list
+
+EXTRA_DIST	= HOWTO testrc $(noinst_SCRIPTS)
+
+CLEANFILES	= test_log test_out
+
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/parted-1.8.7/debug/test/Makefile.in b/parted-1.8.7/debug/test/Makefile.in
new file mode 100644
index 0000000..fdaeb85
--- /dev/null
+++ b/parted-1.8.7/debug/test/Makefile.in
@@ -0,0 +1,530 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = debug/test
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES =
+SCRIPTS = $(noinst_SCRIPTS)
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+noinst_SCRIPTS = test			\
+		  test_disk_bsd		\
+		  test_disk_dos		\
+		  test_disk_dvh		\
+		  test_disk_gpt		\
+		  test_disk_pc98	\
+		  test_disk_mac		\
+		  test_disk_sun		\
+		  test_fs_ext2		\
+		  test_fs_fat		\
+		  test_fs_linux_swap	\
+		  test_fs_reiserfs	\
+		  build_leak_list
+
+EXTRA_DIST = HOWTO testrc $(noinst_SCRIPTS)
+CLEANFILES = test_log test_out
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  debug/test/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  debug/test/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(SCRIPTS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-dvi install-dvi-am \
+	install-exec install-exec-am install-html install-html-am \
+	install-info install-info-am install-man install-pdf \
+	install-pdf-am install-ps install-ps-am install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/debug/test/build_leak_list b/parted-1.8.7/debug/test/build_leak_list
new file mode 100755
index 0000000..f217eff
--- /dev/null
+++ b/parted-1.8.7/debug/test/build_leak_list
@@ -0,0 +1,12 @@
+#! /bin/sh
+
+if test "x$TEST_PARTED_BASE" = "x"; then
+	TEST_PARTED_BASE=~parted/parted-dev
+fi
+
+mtrace $TEST_PARTED_BASE/parted/.libs/parted $MALLOC_TRACE \
+	| grep libparted \
+	| sed 's/  at.*//' \
+	| sed 's/^\(0x[0-9a-f]\+\) \+\(0x[0-9a-f]\+\) */ {\1, \2},/' \
+	| less
+
diff --git a/parted-1.8.7/debug/test/test b/parted-1.8.7/debug/test/test
new file mode 100755
index 0000000..941d252
--- /dev/null
+++ b/parted-1.8.7/debug/test/test
@@ -0,0 +1,262 @@
+#! /bin/bash
+
+do_help()
+{
+	echo You need to fill out the testrc with your machine\'s details before
+	echo using this script.
+	exit;
+}
+
+do_test()
+{
+	test_prog=$1
+	test_name=`echo -n $test_prog | sed "s/test_//" | sed "s/_/ /" \
+		   | tr '[:lower:]' '[:upper:]'`
+
+	echo "-----------------------------------------------------------------"
+	echo "TESTING $test_name..."
+	echo "-----------------------------------------------------------------"
+
+	echo "-----------------------------------------------------------------"\
+		>> test_log
+	echo "TESTING $test_name..." >> test_log
+	echo "-----------------------------------------------------------------"\
+		>> test_log
+
+	if [ -e core* ]; then
+		rm core*
+	fi
+	./$test_prog
+	if [ -e test_out ]; then
+		echo > test_out
+	fi
+}
+
+do_tests()
+{
+	for walk in $TEST_LIST; do
+		if [ -x $walk ]; then
+			do_test $walk
+		fi
+	done
+}
+
+################################################
+# GLOBAL HELPER FUNCTIONS
+################################################
+
+ped_testing()
+{
+	echo -n "testing $1... "
+	echo -n "testing $1... " >> test_log
+}
+
+ped_testing_expect_fail()
+{
+	echo -n "testing for failure on $1... "
+	echo -n "testing for failure on $1... " >> test_log
+}
+
+ped_test_ok()
+{
+	echo "ok"
+	echo "ok" >> test_log
+
+	if [ "x$VERBOSE_LOGS" = "x1" ]; then
+		cat test_out >> test_log
+		echo >> test_log
+	fi
+
+	export OK_COUNT=$[ $OK_COUNT + 1 ]
+}
+
+ped_test_failed()
+{
+	echo "failed"
+	echo "failed" >> test_log
+
+	cat test_out >> test_log
+	echo >> test_log
+
+	export FAILED_COUNT=$[ $FAILED_COUNT + 1 ]
+
+	if [ -e core ]; then
+		echo core dumped, saving to core-$CORE_COUNTER\
+			>> test_log
+		echo >> test_log
+		mv core core-$CORE_COUNTER
+		export CORE_COUNTER=$[ $CORE_COUNTER + 1 ]
+	fi
+}
+
+check_leaks()
+{
+	if test "x$MALLOC_TRACE" != "x"; then
+		./build_leak_list > leaks
+		if test -s leaks; then
+			printf \
+'Found memory leaks: (add this list to dodgey_malloc_list in\n'\
+'libparted/libparted.c to debug them)\n' \
+				>> test_out
+			cat leaks >> test_out
+			return 0
+		fi
+		rm leaks
+	fi
+
+	return 1
+}
+
+ped_test_get_val()
+{
+	post_command=$2
+	if test "x$input" = "x"; then
+		input="Cancel"
+	fi
+	if test "x$post_command" = "x"; then
+		post_command="true"
+	fi
+
+	if test -e leaks; then
+		rm leaks
+	fi
+	if test "x$MALLOC_TRACE" != "x"; then
+		if test -e $MALLOC_TRACE; then
+			rm $MALLOC_TRACE
+		fi
+	fi
+
+	if $TEST_PARTED_COMMAND -s $TEST_DRIVE $1 2>&1 > test_out; then
+		if [ -e core ]; then
+			return 0
+		fi
+
+		if check_leaks; then
+			return 0
+		fi
+
+		if ( echo >> test_out ; ( eval $post_command ) 2>&1 >> test_out ); then
+			return 1
+		else
+			return 0
+		fi
+	else
+		return 0
+	fi
+}
+
+ped_test()
+{
+	ped_testing "$1"
+	if ped_test_get_val "$2" "$3"; then
+		ped_test_failed	
+		return 1
+	else
+		ped_test_ok
+		return 0
+	fi
+}
+
+ped_test_expect_fail()
+{
+	ped_testing_expect_fail "$1"
+	if ped_test_get_val "$2" "$3"; then
+
+	# we expect a CLEAN fail :-)
+		if [ -e core ]; then
+			ped_test_failed
+			return 1
+		fi
+		if check_leaks; then
+			ped_test_failed
+			return 1
+		fi
+
+		ped_test_ok
+		return 0
+	else
+		ped_test_failed
+		return 1
+	fi
+}
+
+################################################
+# the rest...
+################################################
+
+init_environment()
+{
+	if [ "x$UID" != "x0" ]; then
+		echo Warning: you should probably be running this as root.
+		echo
+	fi
+
+	. testrc
+	`cat testrc | grep "^[^#].*=" | sed "s/=.*//" | sed "s/^/export /" `
+
+	if [ "x$HOSTNAME" != "x$TEST_HOST" ]; then
+		do_help
+	fi
+
+	export OLD_KERNEL_PRINTK=`cat /proc/sys/kernel/printk`
+
+	if [ "x$QUIET_KERNEL" = "x1" ]; then
+		echo 1 1 1 1 > /proc/sys/kernel/printk
+	fi
+
+	renice 20 $$ > /dev/null
+
+	export CORE_COUNTER=1
+	export OK_COUNT=0
+	export FAILED_COUNT=0
+
+	export -f ped_testing
+	export -f ped_testing_expect_fail
+	export -f ped_test_ok
+	export -f ped_test_failed
+	export -f ped_test_get_val
+	export -f ped_test
+	export -f ped_test_expect_fail
+	export -f check_leaks
+}
+
+done_environment()
+{
+	echo $OLD_KERNEL_PRINTK > /proc/sys/kernel/printk
+}
+
+open_log()
+{
+	if [ -e test_log ]; then
+		echo -n > test_log;
+	fi
+}
+
+print_version()
+{
+	echo -n "Testing "
+	$TEST_PARTED_COMMAND --version
+	echo
+
+	echo -n "Testing " >> test_log
+	$TEST_PARTED_COMMAND --version >> test_log
+	echo >> test_log
+}
+
+main()
+{
+	init_environment
+	open_log
+	print_version
+	do_tests
+	done_environment
+}
+
+if [ "x$1" !=  "x" ]; then
+	export TEST_LIST="test_*$1*"
+else
+	export TEST_LIST="test_*"
+fi
+
+main
+
diff --git a/parted-1.8.7/debug/test/test_disk_bsd b/parted-1.8.7/debug/test/test_disk_bsd
new file mode 100755
index 0000000..3bcf0f0
--- /dev/null
+++ b/parted-1.8.7/debug/test/test_disk_bsd
@@ -0,0 +1,94 @@
+#! /bin/bash
+
+test_mklabel()
+{
+	ped_test "mklabel" "mklabel bsd"
+}
+
+test_mkpart()
+{
+	ped_test "mkpart" "mklabel bsd mkpart primary ext2 10 20"
+}
+
+test_mkpartfs()
+{
+	ped_test "mkpartfs" "mklabel bsd mkpartfs primary ext2 10 20"
+}
+
+test_rm()
+{
+	ped_test "rm" "mklabel bsd mkpart primary ext2 10 20 rm 1"
+}
+
+test_too_many_primary()
+{
+	ped_test_expect_fail "too many primary partitions" \
+		"mklabel bsd \
+		 mkpart primary ext2 10 20 \
+		 mkpart primary ext2 20 30 \
+		 mkpart primary ext2 30 40 \
+		 mkpart primary ext2 40 50 \
+		 mkpart primary ext2 50 60 \
+		 mkpart primary ext2 60 70 \
+		 mkpart primary ext2 70 80 \
+		 mkpart primary ext2 80 90 \
+		 mkpart primary ext2 90 100"
+}
+
+test_primary_overlap()
+{
+	ped_test "correction of partition overlapping"\
+		"mklabel bsd \
+		 mkpart primary ext2 0 100\
+		 mkpart primary ext2 50 150"
+}
+
+test_nonexistent_remove()
+{
+	ped_test_expect_fail "removal of non-existent partition"\
+		"mklabel bsd \
+		 rm 1"
+}
+
+test_create_extended()
+{
+	ped_test_expect_fail "creation of extended partition"\
+		"mklabel bsd \
+		 mkpart extended 0 100"
+}
+
+test_create_small()
+{
+	ped_test "create small partition"\
+		"mklabel bsd \
+		 mkpartfs primary ext2 1 2"
+}
+
+test_move()
+{
+	ped_test "move partition"\
+		"mklabel bsd \
+		 mkpartfs primary ext2 0 100 \
+		 mkpartfs primary ext2 101 200 \
+		 move 1 201 301"
+}
+
+main()
+{
+	if ! test_mklabel; then
+		exit 1
+	fi
+
+	test_mkpart
+	test_mkpartfs
+	test_rm
+	test_too_many_primary
+	test_primary_overlap
+	test_nonexistent_remove
+	test_create_extended
+	test_create_small
+	test_move
+}
+
+main
+
diff --git a/parted-1.8.7/debug/test/test_disk_dos b/parted-1.8.7/debug/test/test_disk_dos
new file mode 100755
index 0000000..08c5d7f
--- /dev/null
+++ b/parted-1.8.7/debug/test/test_disk_dos
@@ -0,0 +1,173 @@
+#! /bin/bash
+
+test_mklabel()
+{
+	ped_test "mklabel" "mklabel msdos"
+}
+
+test_mkpart()
+{
+	ped_test "mkpart" "mklabel msdos mkpart primary ext2 10 20"
+}
+
+test_create_extended_at_start()
+{
+	ped_test "creating an extended partition at the start of the disk"\
+		"mklabel msdos \
+		 mkpart extended 0 500"
+}
+
+
+test_mkpartfs()
+{
+	ped_test "mkpartfs" "mklabel msdos mkpartfs primary ext2 10 20"
+}
+
+test_rm()
+{
+	ped_test "rm" "mklabel msdos mkpart primary ext2 10 20 rm 1"
+}
+
+test_too_many_primary()
+{
+	ped_test_expect_fail "too many primary partitions" \
+		"mklabel msdos \
+		 mkpart primary ext2 10 20 \
+		 mkpart primary ext2 20 30 \
+		 mkpart primary ext2 30 40 \
+		 mkpart primary ext2 40 50 \
+		 mkpart primary ext2 50 60"
+}
+
+test_logical_without_extended()
+{
+	ped_test_expect_fail "logical partitions without extended partition"\
+		"mklabel msdos \
+		 mkpart logical ext2 10 20"
+}
+
+# Parted's constraint solver "corrects" this.  Hmmm... is this wise?
+test_logical_outside_extended()
+{
+	ped_test "correction of logical partitions outside extended partition"\
+		"mklabel msdos \
+		 mkpart extended 50 100\
+		 mkpart logical ext2 90 150"
+}
+
+test_shrink_extended_too_far()
+{
+	ped_test "correction of excessive extended partition shrink"\
+		"mklabel msdos \
+		 mkpart extended 50 150\
+		 mkpart logical ext2 90 110\
+		 resize 1 50 100"
+}
+
+test_shrink_extended()
+{
+	ped_test "extended partition shrink"\
+		"mklabel msdos \
+		 mkpart extended 50 150\
+		 mkpart logical ext2 90 110\
+		 resize 1 80 110"
+}
+
+test_many_logical()
+{
+	ped_test "many logical partitions"\
+		"mklabel msdos \
+		 mkpart extended 100 1000 \
+		 mkpart logical ext2 100 200 \
+		 mkpart logical ext2 200 300 \
+		 mkpart logical ext2 300 400 \
+		 mkpart logical ext2 400 500 \
+		 mkpart logical ext2 500 600 \
+		 mkpart logical ext2 600 700 \
+		 mkpart logical ext2 700 800"
+}
+
+test_primary_overlap()
+{
+	ped_test "correction of primary partition overlapping"\
+		"mklabel msdos \
+		 mkpart primary ext2 0 100\
+		 mkpart primary ext2 50 150"
+}
+
+test_extended_primary_overlap()
+{
+	ped_test "correction of primary with extended partition overlapping"\
+		"mklabel msdos \
+		 mkpart extended 1 100\
+		 mkpart primary ext2 50 150"
+}
+
+test_nonexistent_remove()
+{
+	ped_test_expect_fail "removal of non-existent partition"\
+		"mklabel msdos \
+		 rm 1"
+}
+
+test_create_small()
+{
+	ped_test "create small partition"\
+		"mklabel msdos \
+		 mkpartfs primary ext2 1 2"
+}
+
+test_move_primary()
+{
+	ped_test "move primary partition"\
+		"mklabel msdos \
+		 mkpartfs primary fat16 0 100 \
+		 mkpartfs primary fat16 100 200 \
+		 move 1 200 300"
+}
+
+test_move_logical()
+{
+	ped_test "move logical partition"\
+		"mklabel msdos \
+		 mkpart extended 0 500
+		 mkpartfs logical fat16 0 100 \
+		 mkpartfs logical fat16 100 200 \
+		 move 5 200 300"
+}
+
+test_create_end()
+{
+       ped_test "create partition at end-of-disk"\
+	       "mklabel msdos \
+		mkpartfs primary ext2 \
+		$[TEST_DRIVE_SIZE - 10] $[TEST_DRIVE_SIZE]"
+}
+
+main()
+{
+	if ! test_mklabel; then
+		exit 1
+	fi
+
+	test_mkpart
+	test_create_extended_at_start
+	test_mkpartfs
+	test_rm
+	test_too_many_primary
+	test_logical_without_extended
+	test_logical_outside_extended
+	test_shrink_extended_too_far
+	test_shrink_extended
+	test_many_logical
+	test_primary_overlap
+	test_extended_primary_overlap
+	test_nonexistent_remove
+	test_create_small
+	test_move_primary
+	test_move_logical
+	test_create_end
+}
+
+main
+
diff --git a/parted-1.8.7/debug/test/test_disk_dvh b/parted-1.8.7/debug/test/test_disk_dvh
new file mode 100755
index 0000000..29caf1f
--- /dev/null
+++ b/parted-1.8.7/debug/test/test_disk_dvh
@@ -0,0 +1,94 @@
+#! /bin/bash
+
+test_mklabel()
+{
+	ped_test "mklabel" "mklabel mips"
+}
+
+test_mkpart()
+{
+	ped_test "mkpart" "mklabel mips mkpart primary ext2 11 20"
+}
+
+test_mkpartfs()
+{
+	ped_test "mkpartfs" "mklabel mips mkpartfs primary ext2 11 20"
+}
+
+test_rm()
+{
+	ped_test "rm" "mklabel mips mkpart primary ext2 10 20 rm 2"
+}
+
+test_too_many_primary()
+{
+	ped_test_expect_fail "too many primary partitions" \
+		"mklabel mips \
+		 mkpart primary ext2 10 20 \
+		 mkpart primary ext2 20 30 \
+		 mkpart primary ext2 30 40 \
+		 mkpart primary ext2 40 50 \
+		 mkpart primary ext2 50 60 \
+		 mkpart primary ext2 60 70 \
+		 mkpart primary ext2 70 80 \
+		 mkpart primary ext2 80 90 \
+		 mkpart primary ext2 90 100 \
+		 mkpart primary ext2 100 110 \
+		 mkpart primary ext2 110 120 \
+		 mkpart primary ext2 120 130 \
+		 mkpart primary ext2 130 140 \
+		 mkpart primary ext2 140 150 \
+		 mkpart primary ext2 150 160 \
+		 mkpart primary ext2 160 170 \
+		 mkpart primary ext2 170 180"
+}
+
+test_primary_overlap()
+{
+	ped_test "correction of primary partition overlapping"\
+		"mklabel mips \
+		 mkpart primary ext2 1 100\
+		 mkpart primary ext2 50 150"
+}
+
+test_nonexistent_remove()
+{
+	ped_test_expect_fail "removal of non-existent partition"\
+		"mklabel mips \
+		 rm 2"
+}
+
+test_create_small()
+{
+	ped_test "create small partition"\
+		"mklabel mips \
+		 mkpartfs primary ext2 1 2"
+}
+
+test_move()
+{
+	ped_test "move partition"\
+		"mklabel mips \
+		 mkpartfs primary ext2 1 100 \
+		 mkpartfs primary ext2 101 200 \
+		 move 2 201 301"
+}
+
+main()
+{
+	if ! test_mklabel; then
+		exit 1
+	fi
+
+	test_mkpart
+	test_mkpartfs
+	test_rm
+	test_too_many_primary
+	test_primary_overlap
+	test_nonexistent_remove
+	test_create_small
+	test_move
+}
+
+main
+
diff --git a/parted-1.8.7/debug/test/test_disk_gpt b/parted-1.8.7/debug/test/test_disk_gpt
new file mode 100755
index 0000000..8e86f79
--- /dev/null
+++ b/parted-1.8.7/debug/test/test_disk_gpt
@@ -0,0 +1,78 @@
+#! /bin/bash
+
+test_mklabel()
+{
+	ped_test "mklabel" "mklabel gpt"
+}
+
+test_mkpart()
+{
+	ped_test "mkpart" "mklabel gpt mkpart primary ext2 10 20"
+}
+
+test_mkpartfs()
+{
+	ped_test "mkpartfs" "mklabel gpt mkpartfs primary ext2 10 20"
+}
+
+test_rm()
+{
+	ped_test "rm" "mklabel gpt mkpart primary ext2 10 20 rm 1"
+}
+
+test_primary_overlap()
+{
+	ped_test "correction of primary partition overlapping"\
+		"mklabel gpt \
+		 mkpart primary ext2 0 100\
+		 mkpart primary ext2 50 150"
+}
+
+test_nonexistent_remove()
+{
+	ped_test_expect_fail "removal of non-existent partition"\
+		"mklabel gpt \
+		 rm 1"
+}
+
+test_create_extended()
+{
+	ped_test_expect_fail "creation of extended partition"\
+		"mklabel gpt \
+		 mkpart extended 0 100"
+}
+
+test_create_small()
+{
+	ped_test "create small partition"\
+		"mklabel gpt \
+		 mkpartfs primary ext2 1 2"
+}
+
+test_move()
+{
+	ped_test "move partition"\
+		"mklabel gpt \
+		 mkpartfs primary ext2 0 100 \
+		 mkpartfs primary ext2 101 200 \
+		 move 1 201 301"
+}
+
+main()
+{
+	if ! test_mklabel; then
+		exit 1
+	fi
+
+	test_mkpart
+	test_mkpartfs
+	test_rm
+	test_primary_overlap
+	test_nonexistent_remove
+	test_create_extended
+	test_create_small
+	test_move
+}
+
+main
+
diff --git a/parted-1.8.7/debug/test/test_disk_mac b/parted-1.8.7/debug/test/test_disk_mac
new file mode 100755
index 0000000..1d0e894
--- /dev/null
+++ b/parted-1.8.7/debug/test/test_disk_mac
@@ -0,0 +1,78 @@
+#! /bin/bash
+
+test_mklabel()
+{
+	ped_test "mklabel" "mklabel mac"
+}
+
+test_mkpart()
+{
+	ped_test "mkpart" "mklabel mac mkpart primary ext2 10 20"
+}
+
+test_mkpartfs()
+{
+	ped_test "mkpartfs" "mklabel mac mkpartfs primary ext2 10 20"
+}
+
+test_rm()
+{
+	ped_test "rm" "mklabel mac mkpart primary ext2 10 20 rm 2"
+}
+
+test_primary_overlap()
+{
+	ped_test "correction of primary partition overlapping"\
+		"mklabel mac \
+		 mkpart primary ext2 0.01 100\
+		 mkpart primary ext2 50 150"
+}
+
+test_nonexistent_remove()
+{
+	ped_test_expect_fail "removal of non-existent partition"\
+		"mklabel mac \
+		 rm 2"
+}
+
+test_create_extended()
+{
+	ped_test_expect_fail "creation of extended partition"\
+		"mklabel mac \
+		 mkpart extended 0.01 100"
+}
+
+test_create_small()
+{
+	ped_test "create small partition"\
+		"mklabel mac \
+		 mkpartfs primary ext2 1 2"
+}
+
+test_move()
+{
+	ped_test "move partition"\
+		"mklabel mac \
+		 mkpartfs primary ext2 1 100 \
+		 mkpartfs primary ext2 101 200 \
+		 move 2 201 301"
+}
+
+main()
+{
+	if ! test_mklabel; then
+		exit 1
+	fi
+
+	test_mkpart
+	test_mkpartfs
+	test_rm
+	test_primary_overlap
+	test_nonexistent_remove
+	test_create_extended
+	test_create_small
+	test_move
+}
+
+main
+
diff --git a/parted-1.8.7/debug/test/test_disk_pc98 b/parted-1.8.7/debug/test/test_disk_pc98
new file mode 100755
index 0000000..748424e
--- /dev/null
+++ b/parted-1.8.7/debug/test/test_disk_pc98
@@ -0,0 +1,102 @@
+#! /bin/bash
+
+test_mklabel()
+{
+	ped_test "mklabel" "mklabel pc98"
+}
+
+test_mkpart()
+{
+	ped_test "mkpart" "mklabel pc98 mkpart primary ext2 10 20"
+}
+
+test_mkpartfs()
+{
+	ped_test "mkpartfs" "mklabel pc98 mkpartfs primary ext2 10 20"
+}
+
+test_rm()
+{
+	ped_test "rm" "mklabel pc98 mkpart primary ext2 10 20 rm 1"
+}
+
+test_too_many_primary()
+{
+	ped_test_expect_fail "too many primary partitions" \
+		"mklabel pc98 \
+		 mkpart primary ext2 10 20 \
+		 mkpart primary ext2 20 30 \
+		 mkpart primary ext2 30 40 \
+		 mkpart primary ext2 40 50 \
+		 mkpart primary ext2 50 60 \
+		 mkpart primary ext2 60 70 \
+		 mkpart primary ext2 70 80 \
+		 mkpart primary ext2 80 90 \
+		 mkpart primary ext2 90 100 \
+		 mkpart primary ext2 100 110 \
+		 mkpart primary ext2 110 120 \
+		 mkpart primary ext2 120 130 \
+		 mkpart primary ext2 130 140 \
+		 mkpart primary ext2 140 150 \
+		 mkpart primary ext2 150 160 \
+		 mkpart primary ext2 160 170 \
+		 mkpart primary ext2 170 180 "
+}
+
+test_primary_overlap()
+{
+	ped_test "correction of primary partition overlapping"\
+		"mklabel pc98 \
+		 mkpart primary ext2 0 100\
+		 mkpart primary ext2 50 150"
+}
+
+test_nonexistent_remove()
+{
+	ped_test_expect_fail "removal of non-existent partition"\
+		"mklabel pc98 \
+		 rm 1"
+}
+
+test_create_extended()
+{
+	ped_test_expect_fail "creation of extended partition"\
+		"mklabel pc98 \
+		 mkpart extended 0 100"
+}
+
+test_create_small()
+{
+	ped_test "create small partition"\
+		"mklabel pc98 \
+		 mkpartfs primary ext2 1 2"
+}
+
+test_move()
+{
+	ped_test "move partition"\
+		"mklabel pc98 \
+		 mkpartfs primary fat16 0 100 \
+		 mkpartfs primary fat16 100 200 \
+		 move 1 200 300"
+}
+
+main()
+{
+	if ! test_mklabel; then
+		exit 1
+	fi
+
+	test_mkpart
+	test_mkpartfs
+	test_rm
+	test_too_many_primary
+	test_primary_overlap
+	test_nonexistent_remove
+	test_create_extended
+	test_create_small
+	test_move
+}
+
+main
+
diff --git a/parted-1.8.7/debug/test/test_disk_sun b/parted-1.8.7/debug/test/test_disk_sun
new file mode 100755
index 0000000..b9d7e29
--- /dev/null
+++ b/parted-1.8.7/debug/test/test_disk_sun
@@ -0,0 +1,94 @@
+#! /bin/bash
+
+test_mklabel()
+{
+	ped_test "mklabel" "mklabel sun"
+}
+
+test_mkpart()
+{
+	ped_test "mkpart" "mklabel sun mkpart primary ext2 10 20"
+}
+
+test_mkpartfs()
+{
+	ped_test "mkpartfs" "mklabel sun mkpartfs primary ext2 10 20"
+}
+
+test_rm()
+{
+	ped_test "rm" "mklabel sun mkpart primary ext2 10 20 rm 1"
+}
+
+test_too_many_primary()
+{
+	ped_test_expect_fail "too many primary partitions" \
+		"mklabel sun \
+		 mkpart primary ext2 10 20 \
+		 mkpart primary ext2 20 30 \
+		 mkpart primary ext2 30 40 \
+		 mkpart primary ext2 40 50 \
+		 mkpart primary ext2 50 60 \
+		 mkpart primary ext2 60 70 \
+		 mkpart primary ext2 70 80 \
+		 mkpart primary ext2 80 90 \
+		 mkpart primary ext2 90 100"
+}
+
+test_primary_overlap()
+{
+	ped_test "correction primary partition overlapping"\
+		"mklabel sun \
+		 mkpart primary ext2 0 100\
+		 mkpart primary ext2 50 150"
+}
+
+test_nonexistent_remove()
+{
+	ped_test_expect_fail "removal of non-existent partition"\
+		"mklabel sun \
+		 rm 1"
+}
+
+test_create_extended()
+{
+	ped_test_expect_fail "creation of extended partition"\
+		"mklabel sun \
+		 mkpart extended 0 100"
+}
+
+test_create_small()
+{
+	ped_test "create small partition"\
+		"mklabel sun \
+		 mkpartfs primary ext2 1 2"
+}
+
+test_move()
+{
+	ped_test "move partition"\
+		"mklabel sun \
+		 mkpartfs primary ext2 0 100 \
+		 mkpartfs primary ext2 101 200 \
+		 move 1 201 301"
+}
+
+main()
+{
+	if ! test_mklabel; then
+		exit 1
+	fi
+
+	test_mkpart
+	test_mkpartfs
+	test_rm
+	test_too_many_primary
+	test_primary_overlap
+	test_nonexistent_remove
+	test_create_extended
+	test_create_small
+	test_move
+}
+
+main
+
diff --git a/parted-1.8.7/debug/test/test_fs_ext2 b/parted-1.8.7/debug/test/test_fs_ext2
new file mode 100755
index 0000000..9bb9141
--- /dev/null
+++ b/parted-1.8.7/debug/test/test_fs_ext2
@@ -0,0 +1,98 @@
+#! /bin/bash
+
+do_diff()
+{
+	mount "${TEST_DRIVE}1" $TEST_MOUNT_POINT -t ext2 > /dev/null
+
+	if diff -rq $1 $2 --exclude lost+found >> test_log; then
+		ped_test_ok
+	else
+		ped_test_failed
+	fi
+
+	umount $TEST_MOUNT_POINT 2>&1 > /dev/null
+}
+
+do_test_diff()
+{
+	ped_testing "$1"
+	if ped_test_get_val "$4" "$5" "$6"; then
+		ped_test_failed
+		return 1
+	fi
+	do_diff "$2" "$3"
+}
+
+test_mkpartfs()
+{
+	ped_test "mkpartfs 1 ext2 1 1"\
+		"mklabel $TEST_FS_USE_DISK_LABEL\
+		 mkpartfs 1 ext2 1 1\
+		 check 1"\
+		"/sbin/e2fsck -n -f ${TEST_DRIVE}1"
+
+	ped_test "mkpartfs"\
+		"mklabel $TEST_FS_USE_DISK_LABEL\
+		mkpartfs primary ext2 1 $DEFAULT_END\
+		check 1"\
+		"/sbin/e2fsck -n -f ${TEST_DRIVE}1"
+
+	ped_test "mkfs"\
+		"mkfs 1 ext2\
+		 check 1"\
+		"/sbin/e2fsck -n -f ${TEST_DRIVE}1"
+}
+
+prepare_resize_tests()
+{
+	part_num=1
+	part=$TEST_DRIVE$part_num
+
+	umount $TEST_MOUNT_POINT 2>&1 > /dev/null
+
+	mount $part $TEST_MOUNT_POINT -t ext2 \
+	&& cp $TEST_DATA/* $TEST_MOUNT_POINT -r
+	umount $TEST_MOUNT_POINT 2>&1 > /dev/null
+}
+
+test_resize_move_end_forward()
+{
+	do_test_diff "resize: move end forward"\
+		$TEST_DATA $TEST_MOUNT_POINT \
+		"resize 1 1 $[ $DEFAULT_END + 5 ] check 1"\
+		"/sbin/e2fsck -n -f ${TEST_DRIVE}1"
+}
+
+test_resize_move_end_forward_big()
+{
+	do_test_diff "resize: move end forward (big)"\
+		$TEST_DATA $TEST_MOUNT_POINT \
+		"resize 1 1 $[ $DEFAULT_END + 200 ] check 1"\
+		"/sbin/e2fsck -n -f ${TEST_DRIVE}1"
+}
+
+test_resize_move_end_backward()
+{
+	do_test_diff "resize: move end backward"\
+		$TEST_DATA $TEST_MOUNT_POINT \
+		"resize 1 1 $DEFAULT_END check 1"\
+		"/sbin/e2fsck -n -f ${TEST_DRIVE}1"
+}
+
+main()
+{
+	export DEFAULT_END=200
+
+	if ! test_mkpartfs; then
+		return 1
+	fi
+
+	prepare_resize_tests
+	test_resize_move_end_forward
+	test_resize_move_end_backward
+	test_resize_move_end_forward_big
+	test_resize_move_end_backward
+}
+
+main
+
diff --git a/parted-1.8.7/debug/test/test_fs_fat b/parted-1.8.7/debug/test/test_fs_fat
new file mode 100755
index 0000000..7a51e4e
--- /dev/null
+++ b/parted-1.8.7/debug/test/test_fs_fat
@@ -0,0 +1,181 @@
+#! /bin/bash
+
+do_diff()
+{
+	mount -t vfat ${TEST_DRIVE}1 $TEST_MOUNT_POINT > /dev/null
+
+	if diff -rq $1 $2 >> test_log; then
+		ped_test_ok
+	else
+		ped_test_failed
+	fi
+
+	umount $TEST_MOUNT_POINT 2>&1 > /dev/null
+}
+
+do_test_diff()
+{
+	ped_testing "$1"
+	if ped_test_get_val "$4" "$5" "$6" "$7"; then
+		ped_test_failed
+		return 1
+	fi
+	do_diff "$2" "$3"
+}
+
+test_mkpartfs()
+{
+	ped_test "mkpartfs fat16 minimum size"\
+		"mklabel $TEST_FS_USE_DISK_LABEL\
+		mkpartfs primary fat16 0 1\
+		check 1"\
+		"/sbin/dosfsck ${TEST_DRIVE}1"
+
+	ped_test "mkpartfs fat32 minimum size"\
+		"mklabel $TEST_FS_USE_DISK_LABEL\
+		mkpartfs primary fat32 0 1\
+		check 1"\
+		"/sbin/dosfsck ${TEST_DRIVE}1"
+
+	ped_test "mkpartfs"\
+		"mklabel $TEST_FS_USE_DISK_LABEL\
+		mkpartfs primary fat32 1 $DEFAULT_END\
+		check 1"\
+		"/sbin/dosfsck ${TEST_DRIVE}1"
+
+	ped_test "mkfs"\
+		"mkfs 1 fat32\
+		 check 1"\
+		"/sbin/dosfsck ${TEST_DRIVE}1"
+}
+
+prepare_resize_tests()
+{
+	part_num=1
+	part=$TEST_DRIVE$part_num
+	hole_parent=`echo $TEST_DATA_HOLE | sed -e "s/[-_.a-zA-Z0-9]+\///g"`
+
+	umount $TEST_MOUNT_POINT 2>&1 > /dev/null
+
+	mount $part $TEST_MOUNT_POINT -t vfat \
+	&& cp -r $TEST_DATA/* $TEST_MOUNT_POINT \
+	&& cp -r $TEST_DATA $TEST_MOUNT_POINT/tmp_copy \
+	&& rm -rf $TEST_MOUNT_POINT/$TEST_DATA_HOLE \
+	&& mv $TEST_MOUNT_POINT/tmp_copy/$TEST_DATA_HOLE \
+	      $TEST_MOUNT_POINT/$hole_parent \
+	&& rm -rf $TEST_MOUNT_POINT/tmp_copy
+	umount $TEST_MOUNT_POINT
+}
+
+clearfat()
+{
+	$TEST_PARTED_CLEARFAT $TEST_DRIVE $1
+}
+
+test_resize_move_start_forward()
+{
+# geometry beforehand:  1 to $DEFAULT_END
+	do_test_diff "resize: move start forward"\
+		$TEST_DATA $TEST_MOUNT_POINT \
+		"resize 1 5 $DEFAULT_END check 1"\
+		"/sbin/dosfsck ${TEST_DRIVE}1"
+	clearfat 1
+}
+
+test_resize_move_start_backward()
+{
+# geometry beforehand: 5 to $DEFAULT_END
+	do_test_diff "resize: move start backward"\
+		$TEST_DATA $TEST_MOUNT_POINT \
+		"resize 1 1 $DEFAULT_END check 1"\
+		"/sbin/dosfsck ${TEST_DRIVE}1"
+	clearfat 1
+}
+
+test_resize_move_end_forward()
+{
+# geometry beforehand: 1 to $DEFAULT_END
+	do_test_diff "resize: move end forward"\
+		$TEST_DATA $TEST_MOUNT_POINT \
+		"resize 1 1 $[ $DEFAULT_END + 5 ] check 1"\
+		"/sbin/dosfsck ${TEST_DRIVE}1"
+	clearfat 1
+}
+
+test_resize_move_end_backward()
+{
+# geometry beforehand:  1 to $[$DEFAULT_END + 5]
+	do_test_diff "resize: move end backward"\
+		$TEST_DATA $TEST_MOUNT_POINT \
+		"resize 1 1 $DEFAULT_END check 1"\
+		"/sbin/dosfsck ${TEST_DRIVE}1"
+	clearfat 1
+}
+
+test_convert_fat16_fat32_shrink_cluster()
+{
+# geometry beforehand:  1 to $DEFAULT_END
+	do_test_diff \
+	"resize: convert from FAT16 to FAT32, shrinking the cluster size"\
+		$TEST_DATA $TEST_MOUNT_POINT \
+		"resize 1 1 $FAT32_END check 1"\
+		"/sbin/dosfsck ${TEST_DRIVE}1"
+	clearfat 1
+}
+
+test_convert_fat32_fat16()
+{
+# geometry beforehand:  1 to $FAT16_SMALL_END
+	do_test_diff "resize: convert from FAT32 to FAT16"\
+		$TEST_DATA $TEST_MOUNT_POINT \
+		"resize 1 1 $FAT32_END check 1"\
+		"/sbin/dosfsck ${TEST_DRIVE}1"
+	clearfat 1
+}
+
+test_convert_fat16_fat32()
+{
+# geometry beforehand:  1 to $FAT32_END
+	do_test_diff "resize: convert from FAT16 to FAT32"\
+		$TEST_DATA $TEST_MOUNT_POINT \
+		"resize 1 1 $FAT16_SMALL_END check 1"\
+		"/sbin/dosfsck ${TEST_DRIVE}1"
+	clearfat 1
+}
+
+#test_convert_fat32_fat16_shrink_cluster()
+#{
+#}
+
+#test_fat16_shrink_cluster()
+#{
+#}
+
+#test_fat32_shrink_cluster()
+#{
+#}
+
+main()
+{
+	export DEFAULT_END=300
+	export FAT32_END=600
+	export FAT16_SMALL_END=200
+
+	if ! test_mkpartfs; then
+		return 1
+	fi
+
+	prepare_resize_tests
+	test_resize_move_start_forward
+	test_resize_move_start_backward
+	test_resize_move_end_forward
+	test_resize_move_end_backward
+
+#	prepare_resize_tests
+	test_convert_fat16_fat32_shrink_cluster
+	test_convert_fat32_fat16
+	test_convert_fat16_fat32
+}
+
+main
+
diff --git a/parted-1.8.7/debug/test/test_fs_linux_swap b/parted-1.8.7/debug/test/test_fs_linux_swap
new file mode 100755
index 0000000..2fb3028
--- /dev/null
+++ b/parted-1.8.7/debug/test/test_fs_linux_swap
@@ -0,0 +1,69 @@
+#! /bin/bash
+
+test_mkpartfs()
+{
+	ped_test "mkpartfs"\
+		"mklabel $TEST_FS_USE_DISK_LABEL\
+		mkpartfs primary linux-swap 1 $DEFAULT_END\
+		check 1"
+
+	ped_test "mkfs"\
+		"mkfs 1 linux-swap\
+		 check 1"
+}
+
+do_test_swap()
+{
+	ped_testing "$1"
+	if ped_test_get_val "$2" "$3"; then
+		ped_test_failed
+		return 1
+	fi
+	if /sbin/swapon "${TEST_DRIVE}1"; then
+		/sbin/swapoff "${TEST_DRIVE}1"
+		ped_test_ok
+	else
+		ped_test_failed
+	fi
+}
+
+test_resize_move_start_forward()
+{
+	do_test_swap "resize: move start forward"\
+		"resize 1 5 $DEFAULT_END check 1"
+}
+
+test_resize_move_start_backward()
+{
+	do_test_swap "resize: move start backward"\
+		"resize 1 1 $DEFAULT_END check 1"
+}
+
+test_resize_move_end_forward()
+{
+	do_test_swap "resize: move end forward"\
+		"resize 1 1 $[ $DEFAULT_END + 5 ] check 1"
+}
+
+test_resize_move_end_backward()
+{
+	do_test_swap "resize: move end backward"\
+		"resize 1 1 $DEFAULT_END check 1"
+}
+
+main()
+{
+	export DEFAULT_END=200
+
+	if ! test_mkpartfs; then
+		return 1
+	fi
+
+	test_resize_move_start_forward
+	test_resize_move_start_backward
+	test_resize_move_end_forward
+	test_resize_move_end_backward
+}
+
+main
+
diff --git a/parted-1.8.7/debug/test/test_fs_reiserfs b/parted-1.8.7/debug/test/test_fs_reiserfs
new file mode 100755
index 0000000..69a1e60
--- /dev/null
+++ b/parted-1.8.7/debug/test/test_fs_reiserfs
@@ -0,0 +1,98 @@
+#! /bin/bash
+
+do_diff()
+{
+	mount "${TEST_DRIVE}1" $TEST_MOUNT_POINT -t reiserfs > /dev/null
+
+	if diff -rq $1 $2 --exclude lost+found >> test_log; then
+		ped_test_ok
+	else
+		ped_test_failed
+	fi
+
+	umount $TEST_MOUNT_POINT 2>&1 > /dev/null
+}
+
+do_test_diff()
+{
+	ped_testing "$1"
+	if ped_test_get_val "$4" "$5" "$6"; then
+		ped_test_failed
+		return 1
+	fi
+	do_diff "$2" "$3"
+}
+
+test_mkpartfs()
+{
+	ped_test "mkpartfs primary reiserfs 1 1"\
+		"mklabel $TEST_FS_USE_DISK_LABEL\
+		 mkpartfs primary reiserfs 1 1\
+		 check 1"\
+		"echo Yes | /sbin/reiserfsck -q ${TEST_DRIVE}1 2>&1"
+
+	ped_test "mkpartfs"\
+		"mklabel $TEST_FS_USE_DISK_LABEL\
+		mkpartfs primary reiserfs 1 $DEFAULT_END\
+		check 1"\
+		"echo Yes | /sbin/reiserfsck -q ${TEST_DRIVE}1 2>&1"
+
+	ped_test "mkfs"\
+		"mkfs 1 reiserfs\
+		 check 1"\
+		"echo Yes | /sbin/reiserfsck -q ${TEST_DRIVE}1 2>&1"
+}
+
+prepare_resize_tests()
+{
+	part_num=1
+	part=$TEST_DRIVE$part_num
+
+	umount $TEST_MOUNT_POINT 2>&1 > /dev/null
+
+	mount $part $TEST_MOUNT_POINT -t reiserfs \
+	&& cp $TEST_DATA/* $TEST_MOUNT_POINT -r
+	umount $TEST_MOUNT_POINT 2>&1 > /dev/null
+}
+
+test_resize_move_end_forward()
+{
+	do_test_diff "resize: move end forward"\
+		$TEST_DATA $TEST_MOUNT_POINT \
+		"resize 1 1 $[ $DEFAULT_END + 5 ] check 1"\
+		"echo Yes | /sbin/reiserfsck -q ${TEST_DRIVE}1 2>&1"
+}
+
+test_resize_move_end_forward_big()
+{
+	do_test_diff "resize: move end forward (big)"\
+		$TEST_DATA $TEST_MOUNT_POINT \
+		"resize 1 1 $[ $DEFAULT_END + 200 ] check 1"\
+		"echo Yes | /sbin/reiserfsck -q ${TEST_DRIVE}1 2>&1"
+}
+
+test_resize_move_end_backward()
+{
+	do_test_diff "resize: move end backward"\
+		$TEST_DATA $TEST_MOUNT_POINT \
+		"resize 1 1 $DEFAULT_END check 1"\
+		"echo Yes | /sbin/reiserfsck -q ${TEST_DRIVE}1 2>&1"
+}
+
+main()
+{
+	export DEFAULT_END=200
+
+	if ! test_mkpartfs; then
+		return 1
+	fi
+
+	prepare_resize_tests
+	test_resize_move_end_forward
+	test_resize_move_end_backward
+	test_resize_move_end_forward_big
+	test_resize_move_end_backward
+}
+
+main
+
diff --git a/parted-1.8.7/debug/test/testrc b/parted-1.8.7/debug/test/testrc
new file mode 100644
index 0000000..c4dff00
--- /dev/null
+++ b/parted-1.8.7/debug/test/testrc
@@ -0,0 +1,41 @@
+# fill this in!  It'll refuse to run if you don't.  I don't want this
+# configuration used to clobber your machine :-)
+TEST_HOST=satisfactory
+
+# Parted distribution base
+# TEST_PARTED_BASE=../..
+TEST_PARTED_BASE=/home/parted/cvs/stable
+
+# where to find GNU parted
+TEST_PARTED_COMMAND=$TEST_PARTED_BASE/parted/parted
+
+# where to find clearfat
+TEST_PARTED_CLEARFAT=$TEST_PARTED_BASE/debug/clearfat/clearfat
+
+# the drive to be completely clobbered!
+TEST_DRIVE=/dev/hdb
+
+# The size of the disk, in megabytes
+TEST_DRIVE_SIZE=19092
+
+# where TEST_DRIVE gets mounted
+TEST_MOUNT_POINT=/mnt/test
+
+# where to get test data from.  Clear text is nice - easier to debug.
+TEST_DATA=/usr/src/kernel-source-2.4.20
+
+# data to delete and replace, to "fragment" the drive.
+TEST_DATA_HOLE=include
+
+# which disk label to use for testing file systems
+TEST_FS_USE_DISK_LABEL=msdos
+
+# set to 1 if you want to shut up the kernel's annoying messages
+QUIET_KERNEL=1
+
+# set to 1 if you want logging of everything, including successful tests
+VERBOSE_LOGS=1
+
+# set this if you want to do malloc() debugging with mtrace
+#MALLOC_TRACE=malloc-trace
+
diff --git a/parted-1.8.7/doc/API b/parted-1.8.7/doc/API
new file mode 100644
index 0000000..00ee0f4
--- /dev/null
+++ b/parted-1.8.7/doc/API
@@ -0,0 +1,288 @@
+===============================================================================
+                               GNU libparted API
+===============================================================================
+
+
+
+
+
+
+
+
+                <<< This file is deprecated and being converted
+                       to Doxygen in-line documentation.
+                  Until this is finished, both are incomplete
+                    but fully document the API together. >>>
+
+
+                            ( scroll down to read )
+
+
+
+
+
+      by Andrew Clausen <clausen@gnu.org>,
+         Leslie P. Polzer <polzer@gnu.org>
+
+      Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005, 2006, 2007
+      Free Software Foundation, Inc.
+
+      Permission is granted to copy, distribute and/or modify this document
+      under the terms of the GNU Free Documentation License, Version 1.1
+      or any later version published by the Free Software Foundation;
+      with the no Invariant Sections, with the no Front-Cover Texts, and
+      with no Back-Cover Texts.  A copy of the license is included in the
+      file, COPYING.DOC.
+
+
+CONTENTS
+--------
+
+1	Introduction
+2	Initialising libparted
+3	PedDevice
+4	PedDisk, PedDiskType
+5	PedGeometry
+6	PedPartition, PedPartitionType
+7	PedFileSystem, PedFileSystemType
+8	PedConstraint, PedAlignment
+9	PedTimer
+10	PedUnit
+11	Exceptions
+
+-------------------------------------------------------------------------------
+1	INTRODUCTION
+-------------------------------------------------------------------------------
+
+GNU Parted is built on top of libparted, which does all of the real work.
+libparted provides an API capable of manipulating partition tables, and
+the filesystems on them.
+
+The main motivation for separating the back-end into a separate library was
+to encourage different GNU/Linux distributions to encorporate their own
+customized front-end into the install process.
+
+This documents the API -- not the implementation details of libparted.
+Documentation that is not relevant to programs using the API are marked with
+INTERNAL.  Apart from this file, a good place to look would be
+parted/parted.c, the front-end's source, and the TUTORIAL file (not finished
+yet!).
+
+This documentation isn't as complete as it should be.  Feel free to ask
+questions, either to me personally (clausen@gnu.org), or to the mailing list
+(bug-parted@gnu.org).
+
+1.1	TERMINOLOGY
+-------------------
+Some of the terminology is a bit weird, so you might want to read this.
+
+CONSTRAINT		a set of conditions that must be satisfied, for
+			a given GEOMETRY of a PARTITION.
+
+DEVICE			a storage device.
+
+DISK			a storage device, with a valid partition table.
+
+EXCEPTION		an event that needs attention.
+
+EXTENDED PARTITION	a PRIMARY PARTITION, that may contain LOGICAL
+			PARTITIONS instead of a file system.  There is at most
+			one extended partition.
+
+FILE SYSTEM		any data that resides on a partition.  For the purposes
+			for GNU Parted, this includes swap devices.
+
+GEOMETRY		a description of a continuous region on a disk.  eg,
+			partitions have a geometry.
+
+HIDDEN PARTITION	a partition that is hidden from MS operating systems.
+			Only FAT partitions may be hidden.
+
+LOGICAL PARTITION	like normal partitions, but they lie inside the
+			extended partition.
+
+PARTITION		a continuous region on a disk where a file system may
+			reside.
+
+PRIMARY PARTITION	a normal, vanilla, partition.
+
+PARTITION TABLE		also, DISK LABEL.  A description of where the
+			partitions lie, and information about those partitions.
+			For example, what type of file system resides on them.
+			The partition table is usually at the start of the
+			disk.
+
+TIMER			a progress meter.  It is an entity that keeps track
+			of time, and who to inform when something interesting
+			happens.
+
+1.2	DESIGN
+--------------
+libparted has a fairly object-oriented design.  The most important objects are:
+
+PedArchitecture		describes support for an "archicture", which is sort
+			of like "operating system", but could also be,
+			for example, another libparted environment, EVMS, etc.
+PedConstraint		a constraint on the geometry of a partition
+PedDevice		a storage device
+PedDisk			a device + partition table
+PedFileSystem		a filesystem, associated with a PedGeometry, NOT a
+			PedPartition.
+PedGeometry		a continious region on a device
+PedPartition		a partition (basically PedGeometry plus some attributes)
+PedTimer		a timer keeps track of progress and time
+
+All functions return 0 (or NULL) on failure and non-zero (or non-NULL) on
+success.  If a function fails, an exception is thrown.  This may be handled by
+either an exception handler, or the calling function (see the section on
+exceptions).
+
+All objects should be considered read-only; they should only be modified by
+calls to libparted's API.
+
+-------------------------------------------------------------------------------
+2	INITIALISING LIBPARTED
+-------------------------------------------------------------------------------
+
+Headers for libparted can be included with:
+
+#include <parted/parted.h>
+
+Parted automatically initialises itself via an __attribute__ ((constructor))
+function.
+
+However, you might want to set the exception handler with
+ped_exception_set_handler().  libparted does come with a default exception
+handler, if you're feeling lazy.
+
+Here's a minimal example:
+
+#include <parted/parted.h>
+
+int
+main()
+{
+	/* automatically initialized */
+	ped_exception_set_handler(exception_handler);	/* see section 7 */
+	return 0;
+	/* automatically cleaned up */
+}
+
+-----------------------------------------------------------------------------
+5	PEDGEOMETRY
+-----------------------------------------------------------------------------
+
+5.1	FIELDS
+--------------
+
+5.2	FUNCTIONS
+-----------------
+
+
+-----------------------------------------------------------------------------
+6	PEDPARTITION, PEDPARTITIONTYPE
+-----------------------------------------------------------------------------
+
+interface:		<parted/disk.h>
+implementation:		libparted/disk.c
+
+A PedPartition represents a partition (surprise!).  PedPartitions have weird
+relationships with PedDisks.  Hence, many functions for manipulating partitions
+will be called ped_disk_* - so have a look at the PedDisk documentation as well.
+
+Parted creates "imaginary" free space and metadata partitions.  You can't
+do any operations on these partitions (like set_geometry, {set,get}_flag, etc.)
+Partitions that are not free space or metadata partitions are said to
+be "active" partitions.  You can use ped_partition_is_active() to check.
+
+6.1	FIELDS
+--------------
+
+
+6.2	FUNCTIONS
+-----------------
+
+
+-----------------------------------------------------------------------------
+7	PEDFILESYSTEM, PEDFILESYSTEMTYPE
+-----------------------------------------------------------------------------
+
+
+7.1	FIELDS
+--------------
+
+
+7.2	FUNCTIONS
+-----------------
+
+
+-----------------------------------------------------------------------------
+8	PEDCONSTRAINT, PEDALIGNMENT
+-----------------------------------------------------------------------------
+
+
+"Alignments" are restrictions on the location of a sector in the form of:
+
+	sector = offset + X * grain_size
+
+For example, logical partitions on msdos disk labels usually have a constraint
+with offset = 63 and grain_size = 16065 (Long story!).  An important
+(and non-obvious!) property of alignment restrictions is they are closed
+under intersection,  i.e. if you take two constraints, like (offset, grain_size)
+= (63, 16065) and (0, 4), then either:
+  * there are no valid solutions
+  * all solutions can be expressed in the form of (offset + X * grain_size)
+In the example, the intersection of the constraint is (16128, 64260).
+
+For more information on the maths, see the source -- there's a large comment
+containing proofs above ped_alignment_intersect() in libparted/natmath.c
+
+The restrictions on the location of the start and end are in the form of 
+PedGeometry objects -- continous regions in which the start and end must lie.
+Obviously, these restrictions are also closed under intersection.
+
+The other restriction -- the minimum size -- is also closed under intersection.
+(The intersection of 2 minimum size restrictions is the maximum of the
+2 values)
+
+FIXME: mention ped_alignment_any
+
+8.2	FUNCTIONS
+-----------------
+
+
+
+-----------------------------------------------------------------------------
+9	PEDTIMER
+-----------------------------------------------------------------------------
+
+9.1	FIELDS
+--------------
+
+typedef void PedTimerHandler (PedTimer* timer, void* context);
+
+
+9.2	FUNCTIONS
+-----------------
+
+
+-----------------------------------------------------------------------------
+10	PEDUNIT
+-----------------------------------------------------------------------------
+
+
+10.1	CONSTANTS
+-----------------
+
+10.2	FUNCTIONS
+-----------------
+
+
+-----------------------------------------------------------------------------
+11	EXCEPTIONS
+-----------------------------------------------------------------------------
+
+11.1	FIELDS
+--------------
+
+
diff --git a/parted-1.8.7/doc/C/Makefile.am b/parted-1.8.7/doc/C/Makefile.am
new file mode 100644
index 0000000..447eb74
--- /dev/null
+++ b/parted-1.8.7/doc/C/Makefile.am
@@ -0,0 +1,30 @@
+## Process this file with automake to produce Makefile.in
+
+dist_man_MANS = \
+	parted.8 \
+	partprobe.8
+
+man_MANS = $(dist_man_MANS)
+
+.PHONY: updatepo
+# Update the POT in srcdir
+# Make sure the update does not only consist in a new POT-Creation-Date
+# Don't do anything if $(srcdir) is read-only (i.e., for "make distcheck").
+updatepo:
+	cd $(srcdir); \
+	test -w . || exit 0; \
+	for name in $(dist_man_MANS); do \
+		echo $$name; \
+		cp po/$$name.pot po/$$name.new.pot; \
+		po4a-updatepo -f man -m $$name -p po/$$name.new.pot; \
+		diff -I '^\"POT-Creation-Date: ' po/$$name.pot po/$$name.new.pot 2>&1 > /dev/null; \
+		if [ $$? ]; then \
+			mv po/$$name.new.pot po/$$name.pot; \
+		else \
+			rm -f po/$$name.new.pot; \
+		fi; \
+	done
+
+dist-hook: updatepo
+
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/parted-1.8.7/doc/C/Makefile.in b/parted-1.8.7/doc/C/Makefile.in
new file mode 100644
index 0000000..305fe1a
--- /dev/null
+++ b/parted-1.8.7/doc/C/Makefile.in
@@ -0,0 +1,596 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = doc/C
+DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+man8dir = $(mandir)/man8
+am__installdirs = "$(DESTDIR)$(man8dir)"
+NROFF = nroff
+MANS = $(dist_man_MANS) $(man_MANS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+dist_man_MANS = \
+	parted.8 \
+	partprobe.8
+
+man_MANS = $(dist_man_MANS)
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  doc/C/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  doc/C/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+install-man8: $(man8_MANS) $(man_MANS)
+	@$(NORMAL_INSTALL)
+	test -z "$(man8dir)" || $(MKDIR_P) "$(DESTDIR)$(man8dir)"
+	@list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
+	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+	for i in $$l2; do \
+	  case "$$i" in \
+	    *.8*) list="$$list $$i" ;; \
+	  esac; \
+	done; \
+	for i in $$list; do \
+	  if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+	  else file=$$i; fi; \
+	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+	  case "$$ext" in \
+	    8*) ;; \
+	    *) ext='8' ;; \
+	  esac; \
+	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
+	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+	  echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \
+	  $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst"; \
+	done
+uninstall-man8:
+	@$(NORMAL_UNINSTALL)
+	@list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
+	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+	for i in $$l2; do \
+	  case "$$i" in \
+	    *.8*) list="$$list $$i" ;; \
+	  esac; \
+	done; \
+	for i in $$list; do \
+	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+	  case "$$ext" in \
+	    8*) ;; \
+	    *) ext='8' ;; \
+	  esac; \
+	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
+	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+	  echo " rm -f '$(DESTDIR)$(man8dir)/$$inst'"; \
+	  rm -f "$(DESTDIR)$(man8dir)/$$inst"; \
+	done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+	$(MAKE) $(AM_MAKEFLAGS) \
+	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
+	  dist-hook
+check-am: all-am
+check: check-am
+all-am: Makefile $(MANS)
+installdirs:
+	for dir in "$(DESTDIR)$(man8dir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-man
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man: install-man8
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-man
+
+uninstall-man: uninstall-man8
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	dist-hook distclean distclean-generic distclean-libtool \
+	distdir dvi dvi-am html html-am info info-am install \
+	install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-man8 install-pdf install-pdf-am install-ps \
+	install-ps-am install-strip installcheck installcheck-am \
+	installdirs maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am uninstall uninstall-am uninstall-man uninstall-man8
+
+
+.PHONY: updatepo
+# Update the POT in srcdir
+# Make sure the update does not only consist in a new POT-Creation-Date
+# Don't do anything if $(srcdir) is read-only (i.e., for "make distcheck").
+updatepo:
+	cd $(srcdir); \
+	test -w . || exit 0; \
+	for name in $(dist_man_MANS); do \
+		echo $$name; \
+		cp po/$$name.pot po/$$name.new.pot; \
+		po4a-updatepo -f man -m $$name -p po/$$name.new.pot; \
+		diff -I '^\"POT-Creation-Date: ' po/$$name.pot po/$$name.new.pot 2>&1 > /dev/null; \
+		if [ $$? ]; then \
+			mv po/$$name.new.pot po/$$name.pot; \
+		else \
+			rm -f po/$$name.new.pot; \
+		fi; \
+	done
+
+dist-hook: updatepo
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/doc/C/parted.8 b/parted-1.8.7/doc/C/parted.8
new file mode 100644
index 0000000..7040402
--- /dev/null
+++ b/parted-1.8.7/doc/C/parted.8
@@ -0,0 +1,139 @@
+.TH PARTED 8 "2007 March 29" parted "GNU Parted Manual"
+.SH NAME
+GNU Parted \- a partition manipulation program
+.SH SYNOPSIS
+.B parted
+[options] [device [command [options...]...]]
+.SH DESCRIPTION
+.B parted
+is a disk partitioning and partition resizing program.  It allows you to
+create, destroy, resize, move and copy ext2, ext3, linux-swap, FAT, FAT32, and reiserfs
+partitions.  It can create, resize, and move Macintosh HFS partitions, as well as detect jfs,
+ntfs, ufs, and xfs partitions.  It is useful for creating space for new operating systems,
+reorganising disk usage, and copying data to new hard disks.
+.PP
+This manual page documents \fBparted\fP briefly.  Complete documentation is
+distributed with the package in GNU Info format; see near the bottom.
+.SH OPTIONS
+.TP
+.B -h, --help
+displays a help message
+.TP
+.B -i, --interactive
+prompts for user intervention
+.TP
+.B -l, --list
+lists partition layout on all block devices
+.TP
+.B -m, --machine
+displays machine parseable output
+.TP
+.B -s, --script
+never prompts for user intervention
+.TP
+.B -v, --version
+displays the version
+.SH COMMANDS
+.TP
+.B [device]
+The block device to be used.  When none is given, \fBparted\fP will use the
+first block device it finds.
+.TP
+.B [command [options]]
+Specifies the command to be executed.  If no command is given,
+.BR parted
+will present a command prompt.  Possible commands are:
+.RS
+.TP
+.B check \fIpartition\fP
+Do a simple check on \fIpartition\fP.
+.TP
+.B cp \fI[source-device]\fP \fIsource\fP \fIdest\fP
+Copy the \fIsource\fP partition's filesystem on \fIsource-device\fP (or the
+current device if no other device was specified) to the \fIdest\fP partition
+on the current device.
+.TP
+.B help \fI[command]\fP
+Print general help, or help on \fIcommand\fP if specified.
+.TP
+.B mkfs \fIpartition\fP \fIfs-type\fP
+Make a filesystem \fIfs-type\fP on \fIpartition\fP. \fIfs-type\fP can be one
+of "fat16", "fat32", "ext2", "linux-swap", or "reiserfs".
+.TP
+.B mklabel \fIlabel-type\fP
+Create a new disklabel (partition table) of \fIlabel-type\fP.
+\fIlabel-type\fP should be one of "bsd", "dvh", "gpt", "loop", "mac", "msdos",
+"pc98", or "sun".
+.TP
+.B mkpart \fIpart-type\fP \fI[fs-type]\fP \fIstart\fP \fIend\fP
+Make a \fIpart-type\fP partition with filesystem \fIfs-type\fP (if specified),
+beginning at \fIstart\fP and ending at \fIend\fP (by default in megabytes).
+\fIfs-type\fP can be one of 
+"fat16", "fat32", "ext2", "HFS", "linux-swap", "NTFS", "reiserfs", or "ufs".
+\fIpart-type\fP should be one of "primary", "logical", or "extended".
+.TP
+.B mkpartfs \fIpart-type\fP \fIfs-type\fP \fIstart\fP \fIend\fP
+Make a \fIpart-type\fP partition with filesystem \fIfs-type\fP beginning at
+\fIstart\fP and ending at \fIend\fP (by default in megabytes).
+.TP
+.B move \fIpartition\fP \fIstart\fP \fIend\fP
+Move \fIpartition\fP so that it begins at \fIstart\fP and ends at \fIend\fP.
+Note: \fBmove\fP never changes the minor number.
+.TP
+.B name \fIpartition\fP \fIname\fP
+Set the name of \fIpartition\fP to \fIname\fP. This option works only on Mac,
+PC98, and GPT disklabels. The name can be placed in quotes, if necessary.
+.TP
+.B print
+Display the partition table.
+.TP
+.B quit
+Exit from \fBparted\fP.
+.TP
+.B rescue \fIstart\fP \fIend\fP
+Rescue a lost partition that was located somewhere between \fIstart\fP and
+\fIend\fP.  If a partition is found, \fBparted\fP will ask if you want to
+create an entry for it in the partition table.
+.TP
+.B resize \fIpartition\fP \fIstart\fP \fIend\fP
+Resize the filesystem on \fIpartition\fP so that it begins at \fIstart\fP and
+ends at \fIend\fP (by default in megabytes).
+.TP
+.B rm \fIpartition\fP
+Delete \fIpartition\fP.
+.TP
+.B select \fIdevice\fP
+Choose \fIdevice\fP as the current device to edit. \fIdevice\fP should usually
+be a Linux hard disk device, but it can be a partition, software raid device,
+or an LVM logical volume if necessary.
+.TP
+.B set \fIpartition\fP \fIflag\fP \fIstate\fP
+Change the state of the \fIflag\fP on \fIpartition\fP to \fIstate\fP.
+Supported flags are: "boot", "root", "swap", "hidden", "raid", "lvm", "lba",
+and "palo".
+\fIstate\fP should be either "on" or "off".
+.TP
+.B unit \fIunit\fP
+Set \fIunit\fP as the unit to use when displaying locations and sizes,
+and for interpreting those given by the user when not suffixed with an
+explicit unit.  \fIunit\fP can be one of "s" (sectors), "B" (bytes), "kB",
+"MB", "GB", "TB", "%" (percentage of device size), "cyl" (cylinders),
+"chs" (cylinders, heads, sectors), or "compact" (megabytes for input,
+and a human-friendly form for output).
+.TP
+.B version
+Display version information and a copyright message.
+.RE
+.SH REPORTING BUGS
+Report bugs to <bug-parted@gnu.org>
+.SH SEE ALSO
+.BR fdisk (8),
+.BR mkfs (8),
+The \fIparted\fP program is fully documented in the
+.BR info(1) 
+format
+.IR "GNU partitioning software"
+manual.
+.SH AUTHOR
+This manual page was written by Timshel Knoll <timshel@debian.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/parted-1.8.7/doc/C/partprobe.8 b/parted-1.8.7/doc/C/partprobe.8
new file mode 100644
index 0000000..7385feb
--- /dev/null
+++ b/parted-1.8.7/doc/C/partprobe.8
@@ -0,0 +1,54 @@
+.\"                                      Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH PARTPROBE 8 "March 18, 2002" parted "GNU Parted Manual"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh        disable hyphenation
+.\" .hy        enable hyphenation
+.\" .ad l      left justify
+.\" .ad b      justify to both left and right margins
+.\" .nf        disable filling
+.\" .fi        enable filling
+.\" .br        insert line break
+.\" .sp <n>    insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+partprobe \- inform the OS of partition table changes
+.SH SYNOPSIS
+.B partprobe
+.RI [ -d ]
+.RI [ -s ]
+.RI [ devices... ]
+.SH DESCRIPTION
+This manual page documents briefly the
+.B partprobe
+command.
+.PP
+.\" TeX users may be more comfortable with the \fB<whatever>\fP and
+.\" \fI<whatever>\fP escape sequences to invode bold face and italics, 
+.\" respectively.
+\fBpartprobe\fP is a program that informs the operating system kernel of
+partition table changes, by requesting that the operating system re-read
+the partition table.
+.SH OPTIONS
+This program uses short UNIX style options.
+.TP
+.B \-d
+Don't update the kernel.
+.TP
+.B \-s
+Show a summary of devices and their partitions.
+.TP
+.B \-h
+Show summary of options.
+.TP
+.B \-v
+Show version of program.
+.SH SEE ALSO
+.BR parted (8).
+.SH AUTHOR
+This manual page was written by Timshel Knoll <timshel@debian.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/parted-1.8.7/doc/FAT b/parted-1.8.7/doc/FAT
new file mode 100644
index 0000000..4752ca5
--- /dev/null
+++ b/parted-1.8.7/doc/FAT
@@ -0,0 +1,761 @@
+===============================================================================
+		GNU Parted FAT file system documentation
+===============================================================================
+
+      by Andrew Clausen <clausen@gnu.org>
+
+      Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+
+      Permission is granted to copy, distribute and/or modify this document
+      under the terms of the GNU Free Documentation License, Version 1.1
+      or any later version published by the Free Software Foundation;
+      with the no Invariant Sections, with the no Front-Cover Texts, and
+      with no Back-Cover Texts.  A copy of the license is included in the
+      file, COPYING.DOC.
+
+
+CONTENTS
+--------
+
+		PART I - THE FAT FILE SYSTEM
+
+1	Introduction
+
+2	Overview
+
+3	The Boot Sector
+3.1	Data Layout
+3.2	Descriptions of Fields
+3.3	Calculating the ignored fields
+3.4	DOS/Windows bootstrap process
+
+4	The Info Sector
+4.1	Data Layout
+4.2	Descriptions of Fields
+
+5	File Allocation Tables
+
+6	Directory tree
+6.1	Directory entries
+
+		PART II - GNU PARTED'S FAT IMPLEMENTATION
+
+7	Resizing "issues"
+
+8	Overview of GNU Parted's Strategy
+
+===============================================================================
+			PART I  -  THE FAT FILE SYSTEM
+===============================================================================
+
+-------------------------------------------------------------------------------
+1	INTRODUCTION
+-------------------------------------------------------------------------------
+
+This document describes the FAT filesystem, and GNU Parted's support for it.
+
+Unfortunately, there are no particularly good sources of information on the FAT
+filesystem.  The information here was deduced from the source code of about 10
+different programs, documentation from about 20 different sources and testing.
+There are many cases where documentation for FAT from various sources
+(including Microsoft) are misleading, or just plain wrong.  For us,
+documentation is correct if it matches the behaviour of Microsoft's
+implementation.
+
+
+-------------------------------------------------------------------------------
+2	OVERVIEW
+-------------------------------------------------------------------------------
+
+FAT is a filesystem that is mainly used by Microsoft DOS, Windows 95,
+Windows 98 and Windows 2000.  FAT also stands for File Allocation Table - a
+part of the FAT filesystem.
+
+FAT comes in three flavors: FAT12, FAT16 and FAT32.
+FAT12 is used on floppy disks, and REALLY old hard drives <32Mb.  FAT16 is
+typically used on small hard drives <500Mb, and is very inefficient for large
+hard drives.  FAT32 is used on hard drives >500Mb under Windows 95 OSR2 and
+later and Windows 2000.  These three flavors have important differences (not
+JUST an increase in the maximum possible number of clusters).  On FAT12 and
+FAT16 cluster size directly relates to the filesystem size: the number of
+clusters is always between 2041 and 4080 resp. 32761 and 65520.
+
+The FAT filesystem has these parts (on disk, in this order):
+  * a bootsector.  This contains all of the information about the filesystem
+- whether it's FAT12, FAT16 or FAT32, how big it is, etc.
+
+  * an information sector (FAT32 only).  This contains additional information
+that couldn't fit in the boot sector.
+
+  * file allocation tables (FATs).  There are usually two identical copies.
+This is used to store the sequence of clusters that make of files.  Essentially,
+if you want to know the number of the cluster that comes after cluster X
+in a file, you look up the number for X.  If X is a magic number, it means
+it's the end of the file.
+
+  * clusters.  The data inside files are stored in clusters.  Most directory
+information is stored in clusters (except the root directory in FAT12 and
+FAT16).   Clusters may be 1, 2, 4, 8, etc. sectors.  Clusters are numbered,
+counting from 2.
+
+  * directory tree.  The FAT filesystem has files and directories (no named
+pipes, links, or anything fancy like that), that are stored in clusters.  The
+root directory on FAT12 and FAT16 is stored separately.  In FAT32, the root
+directory is stored inside a normal cluster, just like everything else.
+
+
+-------------------------------------------------------------------------------
+3	THE BOOT SECTOR
+-------------------------------------------------------------------------------
+
+The boot sector contains all of the information about the filesystem
+- whether it's FAT12, FAT16 or FAT32, how big it is, etc.  It also contains
+the boot loader for the operating system, if there is an operating system
+on the file system.  It is always the first thing to appear in the filesystem
+- i.e. it's found at sector 0.
+
+A word of warning: while the values inside the boot sector will always be
+consistent with the file system, many of these values are not read by
+Microsoft's implementation - they are calculated independently.
+
+
+3.1	The Data Layout
+-------------------------------------------------------------------------------
+
+Taken from libparted/fs_fat/bootsector.h:
+
+struct __attribute__ ((packed)) _FatBootSector {
+        __u8    boot_jump[3];   /* 00: Boot strap short or near jump */
+        __u8    system_id[8];   /* 03: system name */
+        __u16   sector_size;    /* 0b: bytes per logical sector */
+        __u8    cluster_size;   /* 0d: sectors/cluster */
+        __u16   reserved;       /* 0e: reserved sectors */
+        __u8    fats;           /* 10: number of FATs */
+        __u16   dir_entries;    /* 11: number of root directory entries */
+        __u16   sectors;        /* 13: if 0, sector_count supersedes */
+        __u8    media;          /* 15: media code */
+        __u16   fat_length;     /* 16: sectors/FAT for FAT12/16 */
+        __u16   secs_track;     /* 18: sectors per track */
+        __u16   heads;          /* 1a: number of heads */
+        __u32   hidden;         /* 1c: hidden sectors (partition start) */
+        __u32   sector_count;   /* 20: no. of sectors (if sectors == 0) */
+
+        union __attribute__ ((packed)) {
+                /* FAT16 fields */
+                struct __attribute__ ((packed)) {
+                        __u8    drive_num;      /* 24: */
+                        __u8    empty_1;        /* 25: */
+                        __u8    ext_signature;  /* 26: always 0x29 */
+                        __u32   serial_number;  /* 27: */
+                        __u8    volume_name [11];       /* 2b: */
+                        __u8    fat_name [8];   /* 37: */
+                        __u8    boot_code[448]; /* 3f: Boot code (or message) */
+                } fat16;
+                /* FAT32 fields */
+                struct __attribute__ ((packed)) {
+                        __u32   fat_length;     /* 24: size of FAT in sectors */
+                        __u16   flags;          /* 28: bit8: fat mirroring, low4: active fat */
+                        __u16   version;        /* 2a: minor * 256 + major */
+                        __u32   root_dir_cluster;       /* 2c: */
+                        __u16   info_sector;    /* 30: */
+                        __u16   backup_sector;  /* 32: */
+                        __u8    empty_1 [12];   /* 34: */
+                        __u16   drive_num;      /* 40: */
+                        __u8    ext_signature;  /* 42: always 0x29 */
+                        __u32   serial_number;  /* 43: */
+                        __u8    volume_name [11];       /* 47: */
+                        __u8    fat_name [8];   /* 52: */
+                        __u8    boot_code[420]; /* 5a: Boot code (or message) */
+                } fat32;
+        } u;
+
+        __u16   boot_sign;      /* 1fe: always 0xAA55 */
+};
+
+
+3.2	Descriptions of Fields
+-------------------------------------------------------------------------------
+
+3.2.1	Fields common to FAT12, FAT16 and FAT32
+-----------------------------------------------
+        __u8    boot_jump[3];   /* 00: Boot strap short or near jump */
+This contains the Intel x86 instruction to "jump" to further down in the
+boot sector.  This is necessary, because on PC systems, the first sector of
+the disk is loaded and executed.  On hard disks of PC systems, the first
+sector of the disk is in fact the Master Boot Record - which contains the
+partition table.  The master boot record loads the first sector of the boot
+partition, so the end result is the same for floppy's and hard disks.
+
+
+	__u8    system_id[8];   /* 03: system name */
+This contains the name of the program or operatings system that created the
+file system.  For FAT32, it seems you must have "MSWIN4.1" here.
+If this is "MSDMF3.2" (afaik only the "MSDMF" is checked") the partition
+can't be written under Windows 9x, Windows NT and Windows 2000.  This is
+how Microsoft realizes read-only installation or distribution floppy disks.
+
+
+	__u16   sector_size;    /* 0b: bytes per logical sector */
+This is bizarre.  Sectors are always 512 bytes.  However, a "logical" sector
+is a hack that allows sectors to be bigger (a multiple of 512 bytes).  This
+is rarely used, and untested in GNU Parted at the moment.  (Side note: is
+it possible to use this to avoid requiring a cluster resize?)
+
+
+	__u8    cluster_size;   /* 0d: sectors/cluster */
+THIS IS IGNORED BY MICROSOFT'S IMPLEMENTATION OF FAT12 AND FAT16!  (See section
+3.3)   This contains the size of all clusters, given in sectors.  This value is
+"read-only".
+
+
+	__u16   reserved;       /* 0e: reserved sectors */
+The number of sectors before the file allocation tables begin.  i.e. The
+number of the first sector of the first file allocation table.
+
+
+	__u8    fats;           /* 10: number of FATs */
+The number of file allocation tables (usually 2).
+
+
+	__u16   dir_entries;    /* 11: number of root directory entries */
+The size of the root directory (FAT12 and FAT16 only), in "directory entries"
+(32 bytes).  The root directory is immediately after the FATs (FAT12 and
+FAT16 only).  The first cluster (i.e. cluster number 2) starts immediately
+after the root directory (or after the FATs for FAT32).
+
+
+	__u16   sectors;        /* 13: if 0, sector_count supersedes */
+THIS IS IGNORED BY MICROSOFT'S IMPLEMENTATION!  The total size of the file
+system.  If the file system is bigger than 65536 sectors, this is set to 0,
+and a 32 bit field is used instead.  Microsoft's implementation gets this
+values from hardware (for floppy disks), or the partition table (for hard
+disks), rather than reading it off disk.
+
+
+	__u8    media;          /* 15: media code */
+For hard disks, this should always be 0xf8.
+
+
+	__u16   fat_length;     /* 16: sectors/FAT for FAT12/16 */
+THIS IS IGNORED BY MICROSOFT'S IMPLEMENTATION!  (See section 3.3)  The size in
+sectors of each file allocation table (FAT12 and FAT16 only).  A 32-bit field
+is used for FAT32.  This value is "read-only".
+
+
+
+	__u16   secs_track;     /* 18: sectors per track */
+	__u16   heads;          /* 1a: number of heads */
+These should match the BIOS geometry.  The GNU Parted README file explains
+BIOS geometry.
+
+
+	__u32   hidden;         /* 1c: hidden sectors (partition start) */
+On a hard disk, this should be the number of sectors from the start of the
+head (in terms of BIOS geometry) to the start of the partition.  i.e. the
+S in the CHS partition start.
+
+
+	__u32   sector_count;   /* 20: no. of sectors (if sectors == 0) */
+The size of the file system in sectors (if sectors is 0).
+
+
+        __u16   boot_sign;      /* 1fe: always 0xAA55 */
+Boot sector signature.  Don't use this exclusively to detect FAT file systems!
+It's also the signature for partition table sectors (and it appears in the
+same place too!)  Idiots.
+
+3.2.2	Fields in FAT12 and FAT16
+---------------------------------
+
+        __u8    drive_num;      /* 24: */
+Always 0x80.
+
+
+        __u8    ext_signature;  /* 26: always 0x29 */
+Always 0x29.
+
+
+        __u32   serial_number;  /* 27: */
+Serial number: Used to detect media change on floppy disk and removable drives.
+
+
+        __u8    volume_name [11];       /* 2b: */
+The disk label.
+
+
+        __u8    fat_name [8];   /* 37: */
+"FAT12\0\0\0" or "FAT16\0\0\0".
+
+
+3.2.3	Fields in FAT32
+-----------------------
+
+        __u32   fat_length;     /* 24: size of FAT in sectors */
+The size in sectors of each file allocation table.
+
+
+        __u16   flags;          /* 28: bit8: fat mirroring, low4: active fat */
+No idea what these are.
+
+
+        __u16   version;        /* 2a: minor * 256 + major */
+Seems to be 0 (?)
+
+
+        __u32   root_dir_cluster;       /* 2c: */
+The number of the first cluster in the root directory.
+
+
+        __u16   info_sector;    /* 30: */
+The number of the information sector.
+
+
+        __u16   backup_sector;  /* 32: */
+The number of the backup of the boot sector (i.e. this sector).
+
+
+        __u16   drive_num;      /* 40: */
+Always 0x80.
+
+
+        __u8    ext_signature;  /* 42: always 0x29 */
+Always 0x29.
+
+
+        __u32   serial_number;  /* 43: */
+Serial number (for Echelon, or something)
+
+
+        __u8    volume_name [11];       /* 47: */
+The disk label.
+
+
+        __u8    fat_name [8];   /* 52: */
+"FAT32\0\0\0".
+
+
+3.3	Calculating the ignored fields
+-------------------------------------------------------------------------------
+The cluster_size and fat_length fields are ignored by Microsoft's
+implementation of FAT12 and FAT16, but NOT FAT32.  That is, they are written out
+correctly, but NOT READ IN.  (Note: if FAT32 file system is configured to
+have less than 65520 clusters, then Windows assumes it's FAT16)
+
+Since these values don't usually change unless you resize a filesystem, this
+causes no problems.  However, if you want to resize the filesystem, you have to
+calculate these values to what Microsoft calculates them to, from the size of
+the filesystem.  It took me 2 months to figure this out (I want to KILL
+somebody...)
+
+Here's the algorithm I came up with that seemed to match all my test data:
+(from libparted/fs_fat/calc.c)
+
+FatCluster
+fat_max_cluster_count (FatType fat_type) {
+        switch (fat_type) {
+                case FAT_TYPE_FAT12: return 0xff0;
+                case FAT_TYPE_FAT16: return 0xfff0;
+                case FAT_TYPE_FAT32: return 0x0ffffff0;
+        }
+        return 0;
+}
+
+FatCluster
+fat_min_cluster_count (FatType fat_type) {
+        switch (fat_type) {
+                case FAT_TYPE_FAT12:
+                case FAT_TYPE_FAT16:
+                        return fat_max_cluster_count (fat_type) / 2;
+
+                case FAT_TYPE_FAT32: return 0xfff0;
+        }
+        return 0;
+}
+
+static int
+calc_sizes (PedGeometry* geom, PedSector align, int cluster_size,
+            PedSector root_dir_sectors, FatCluster* out_cluster_count,
+            PedSector* out_fat_size, FatType fat_type)
+{
+        PedSector       data_fat_size;
+        PedSector       fat_sectors;
+        PedSector       cluster_sectors;
+        FatCluster      cluster_count;
+        int             i;
+
+        data_fat_size = geom->length - fat_min_reserved_sector_count (fat_type)
+                        - align;
+        if (fat_type == FAT_TYPE_FAT16)
+                data_fat_size -= root_dir_sectors;
+
+        fat_sectors = 0;
+        for (i = 0; i < 2; i++) {
+                if (fat_type == FAT_TYPE_FAT32)
+                        cluster_sectors = data_fat_size - fat_sectors;
+                else
+                        cluster_sectors = data_fat_size - 2 * fat_sectors;
+
+                cluster_count = cluster_sectors / (cluster_size / 512);
+                fat_sectors = div_round_up (cluster_count + 2,
+                                            entries_per_sector (fat_type));
+        }
+
+        cluster_sectors = data_fat_size - 2 * fat_sectors;
+        cluster_count = cluster_sectors / (cluster_size / 512);
+
+        if (cluster_count > fat_max_cluster_count (fat_type)
+            || cluster_count < fat_min_cluster_count (fat_type))
+                return 0;
+
+        *out_cluster_count = cluster_count;
+        *out_fat_size = fat_sectors;
+
+        return 1;
+}
+
+FIXME: this is the "trial and error" algorithm.  What happened to my simple,
+test one?
+
+If the implications of the above code aren't that clear, here are some of
+them:
+  * for FAT16, the minimum number of clusters is 32760.
+  * the cluster size is completely determined by the size of the file system,
+for FAT16.  That means, if a file system is to be resized, it is quite
+possible that the cluster size must be changed just to be compatible
+with Microsoft's implementation  (Linux, for example, doesn't calculate the
+numbers independently, so it would work fine.  So always test your code on
+Microsoft as well as Linux)
+
+
+3.4	DOS/Windows bootstrap process
+-------------------------------------------------------------------------------
+All of the information that follows is from me reverse-engineering different
+versions of Microsoft's boot sectors.  It's pretty weird code (as you can
+imagine...), so there might be mistakes here.
+	There are many different versions of the boot sector:
+* Windows 98/2000/ME FAT12/FAT16 (supports CHS and LBA)
+* Windows 98/2000/ME FAT32 (supports CHS and LBA)
+
+(1) The MBR, LILO, or whatever loads in the first sector of the FAT
+partition into 0000:7c00, and executes it.
+
+(2) The first sector of the FAT partition (the "boot sector") does:
+    (a) loads the Master Boot Record (sector 0 of the disk) using the
+    BIOS's CHS calls, and finds the boot partition.  If the boot partition
+    has the LBA flag marked, it writes 0xe to [bp+2] (0000:7c02).  The "read
+    sectors" function in the boot loader checks for 0xe here, and uses LBA if
+    it finds it, and CHS otherwise.
+
+    (b) If it is the FAT32 version of the boot sector, it loads sectors 1
+    through 3 of the partition (it finds this from the "hidden" field in the
+    FAT boot sector, that was loaded by the MBR/LILO) at address 0000:7e00, and
+    continues executing at 0000:8000.  Note: the FAT16 version doesn't require
+    any more sectors to be read (they crammed it all in!), and it goes
+    directly to step 3.
+
+(3) The code loads IO.SYS (starting at address 0000:0700), off the same
+partition, and executes it, beginning execution at 0070:0200.  (Note:
+According to the x86 real mode segmentation scheme, 0070:0200 refers to the
+same physical memory as 0000:0900)
+
+
+-------------------------------------------------------------------------------
+4	THE INFO SECTOR
+-------------------------------------------------------------------------------
+
+The info sector is used in FAT32 to store additional information about the
+file system.
+
+
+4.1	Data Layout
+-------------------------------------------------------------------------------
+
+struct __attribute__ ((packed)) _FatInfoSector {
+        __u32   signature_1;    /* should be 0x41615252 */
+        __u8    unused [480];
+        __u32   signature_2;    /* should be 0x61417272 */
+        __u32   free_clusters;
+        __u32   next_cluster;   /* most recently allocated cluster */
+        __u8    unused2 [0xe];
+        __u16   signature_3;    /* should be 0xaa55 */
+};
+
+
+4.2	Descriptions of Fields
+-------------------------------------------------------------------------------
+
+        __u32   signature_1;    /* should be 0x41615252 */
+Always 0x41615252  ("AaRR")
+
+
+        __u32   signature_2;    /* should be 0x61417272 */
+Always 0x61417272  ("aArr")
+
+
+        __u32   free_clusters;
+The number of free clusters.  This could be calculated by going through the
+FATs, but this is stored on shutdown to speed things up.
+
+
+        __u32   next_cluster;   /* most recently allocated cluster */
+This contains the number of the last cluster allocated.  This speeds up
+cluster allocation, because free clusters usually come in chunks, so you
+can scan right for free clusters in the FAT.
+
+
+        __u16   signature_3;    /* should be 0xaa55 */
+Always 0xaa55.
+
+
+-------------------------------------------------------------------------------
+5	FILE ALLOCATION TABLES
+-------------------------------------------------------------------------------
+
+File allocation table (FAT) is a strange name, come to think of it.  Perhaps it
+should be called cluster allocation table, or something (?).  Essentially,
+it is used to represent file chains (i.e. linked lists) for files and
+directories.  There are usually two FATs (one is a backup, and should be
+identical). 
+
+Anyway, a FAT is essentially an array.  In FAT12, each entry is 12 bits,
+FAT16 - 16 bits, FAT32 - 32 bits.  Hence the names.
+
+The first byte of each FAT must match the "media" field in the boot sector.
+The rest of the first 2 entries are filled with 0xff.
+
+All remaining entries - from 2 onwards - correspond to a cluster.  i.e.
+the second entry corresponds to cluster 2.  Clusters are numbered from 2 onwards
+(i.e. there is no cluster 1).
+
+The number in each entry gives the number of the cluster that occurs next in
+the file chain (linked list).  However, there are a few magic numbers:
+
+  * unused (0).  Indicates the cluster is unused.
+  * end of file (0xff0 for FAT12, 0xfff0 for FAT16, 0x0ffffff0 for FAT32).
+Indicates this is the last cluster in the file or directory.  Obviouslly for
+FAT32, the number of clusters must be < 0x0ffffff0.  So it should be called
+FAT28, perhaps...
+  * bad cluster (0xff7 for FAT12, 0xfff7 for FAT16, 0x0ffffff7 for FAT32).
+Indicates the disk is physically damaged where the cluster is stored.
+
+
+-------------------------------------------------------------------------------
+6	DIRECTORY TREE
+-------------------------------------------------------------------------------
+
+The directory tree is simple: there are files and directories.  Files and
+directories are stored in clusters (except the root directory on FAT12 and
+FAT16).  Directories are essentially special files that contain directory
+entries.
+
+In FAT12 and FAT16, the root directory is stored immediately after the FATs.
+In FAT32, the first cluster of the root directory is given in the FAT.  (To
+get the second cluster - if there is one - you just look up the FAT)
+
+
+6.1	Directory Entries
+------------------------------------------------------------------------------
+Directories are made up of directory entries, each of which represent a file,
+a directory or part of a file name (the VFAT extension - YUCK!!!).
+
+Each directory (except the root directory) contains a '.' (this directory) and
+'..' (parent directory) entry.
+
+6.1.1	Fields
+--------------
+
+From libparted/fs_fat/fat.h:
+
+struct __attribute__ ((packed)) _FatDirEntry {
+        __u8            name[8];
+        __u8            extension[3];
+        __u8            attributes;
+        __u8            is_upper_case_name;
+        __u8            creation_time_low;      /* milliseconds */
+        __u16           creation_time_high;
+        __u16           creation_date;
+        __u16           access_date;
+        __u16           first_cluster_high;     /* for FAT32 */
+        __u16           time;
+        __u16           date;
+        __u16           first_cluster;
+        __u32           length;
+};
+
+6.1.2	Field Descriptions
+--------------------------
+
+        __u8            name[8];
+The first part of the file name.  Eg, for a file called README.TXT, this is
+README.  Files with names longer than 8 characters use the VFAT extension (not
+described here).  When a file is deleted, the first character is set to 0xe5.
+If the first character is 0x0, then the entire directory entry is unused.
+
+
+        __u8            extension[3];
+The last part of the file name.  Eg, for a file called README.TXT, this is TXT.
+This explains all those .HTM files around the place...
+
+
+        __u8            attributes;
+If this is 0x0f, then this directory entry is a VFAT entry, and stores part
+of a file name.  Otherwise, it's treated as various bit fields:
+
+		0x1		read-only
+		0x2		hidden
+		0x4		system
+		0x8		volume label
+		0x10		directory
+		0x20		archived
+
+
+        __u8            is_upper_case_name;
+A Microsoft cludge: create a file with 8.3 name BUT containing small letters
+(like ReadMe.Txt) which is treated as an LFN (long file name) and occupies
+three directory entries.  Now when you rename this file to all uppercase
+README.TXT,- under Windows NT 4 the then superfluous LFN-VFAT entries are
+removed, resulting in a smaller directory, but under Windows 9x the LFN-VFAT
+entries are just upd- and this flag is set.  Executing DEFRAG on such entries
+MIGHT then remove the superfluous LFN-VFAT entries and shrink the directory.
+
+
+        __u8            creation_time_low;      /* milliseconds */
+        __u16           creation_time_high;
+        __u16           creation_date;
+Creation time and date.  Not used wih MS-DOS <7.0!
+
+
+        __u16           access_date;
+Last access date.  Not used wih MS-DOS <7.0!
+
+
+        __u16           first_cluster_high;     /* for FAT32 */
+High 32 bits of the first cluster in the file or directory (FAT32 only)
+
+
+        __u16           time;
+        __u16           date;
+?
+
+
+        __u16           first_cluster;
+Low 16 bits of first cluster.
+
+
+        __u32           length;
+Length of file in bytes.
+
+
+
+===============================================================================
+		PART II - GNU PARTED'S FAT IMPLEMENTATION
+===============================================================================
+
+-------------------------------------------------------------------------------
+7	RESIZING "ISSUES"
+-------------------------------------------------------------------------------
+
+To resize a FAT file system, a program must:
+  * copy all used clusters that lie outside of the new partition onto free
+space on that partition.  The directory tree and FATs must be updated to
+reflect this.
+  * grow or shrink the file allocation table(s) to the size corresponding
+to the size of the partition.
+  * convert between FAT16 and FAT32 if necessary.  This involves:
+    - changing the form of the root directory (FAT16 has it's before the
+      clusters whereas FAT32 stores it in normal clusters).
+    - creating space for the backup boot sector and info sector.
+    - updating the directory tree to use 32 bit first cluster entries.
+  * align the start of the clusters (using the "reserved" field in the
+boot sector), so that the clusters that are common to the old and new
+partition can be preserved.
+  * re-number clusters.  e.g. if you chop out some clusters from the beginning
+(i.e. move the start forward), then the first cluster (i.e. number 2) will
+be refer to a different cluster on the disk.  The directory tree and FATs must
+be updated to reflect this.
+  * create a new boot sector (and the info sector and backup boot sector for
+FAT32)
+
+
+-------------------------------------------------------------------------------
+8	OVERVIEW OF GNU PARTED'S STRATEGY
+-------------------------------------------------------------------------------
+
+GNU Parted copies all clusters that are not accessible from the new file system
+(either because it lies outside the file system, or file system meta-data must
+reside there instead) to an accessible place.
+
+Since all clusters must be renumbered (in most cases), the entire directory
+tree must be updated.  However converting the directory tree from one numbering
+system to another would break the file system if it was interrupted halfway
+through.  Instead, GNU Parted duplicates the directory tree (except the root
+directory for FAT16) along with clusters that need to be copied because they
+lie outside the new file system.  The directory tree is duplicated at the same
+time as inaccessible clusters are.  The relevant function,
+needs_duplicating() in libparted/fs_fat/clstdup.c is:
+
+	static int
+	needs_duplicating (FatOpContext* ctx, FatCluster cluster)
+	{
+		FatSpecific*    fs_info = FAT_SPECIFIC (ctx->old_fs);
+
+		return (fs_info->fat_flag_map [cluster] == FAT_FLAG_FILE
+			&& !fat_op_context_map_static_cluster (ctx, cluster))
+			|| fs_info->fat_flag_map [cluster]
+				== FAT_FLAG_DIRECTORY;
+	}
+
+
+
+A good overview of this implementation is in the fat_resize() function, in
+libparted/fs_fat/resize.c (slightly edited):
+
+	int
+	fat_resize (PedFileSystem* fs, PedGeometry* geom)
+	{
+		FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+		FatSpecific*	new_fs_info;
+		FatOpContext*	ctx;
+		PedFileSystem*	new_fs;
+
+		ctx = create_resize_context (fs, geom);
+		if (!ctx)
+			return 0;
+		new_fs = ctx->new_fs;
+		new_fs_info = FAT_SPECIFIC (new_fs);
+
+		if (!fat_duplicate_clusters (ctx))
+			return 0;
+		if (fs_info->fat_type == FAT_TYPE_FAT16
+				&& new_fs_info->fat_type == FAT_TYPE_FAT32) {
+			if (!alloc_root_dir (ctx))
+				return 0;
+		}
+		if (!fat_construct_new_fat (ctx))
+			return 0;
+		if (!fat_construct_dir_tree (ctx))
+			return 0;
+		if (!fat_table_write_all (new_fs_info->fat, new_fs))
+			return 0;
+
+		if (!fat_boot_sector_generate (&new_fs_info->boot_sector,
+					       new_fs))
+			return 0;
+		if (!fat_boot_sector_write (&new_fs_info->boot_sector, new_fs))
+			return 0;
+		if (new_fs_info->fat_type == FAT_TYPE_FAT32) {
+			if (!fat_info_sector_generate (
+					&new_fs_info->info_sector, new_fs))
+				return 0;
+			if (!fat_info_sector_write (&new_fs_info->info_sector,
+						    new_fs))
+				return 0;
+		}
+
+		if (!resize_context_assimilate (ctx))
+			return 0;
+
+		return 1;
+	}
+
+
diff --git a/parted-1.8.7/doc/Makefile.am b/parted-1.8.7/doc/Makefile.am
new file mode 100644
index 0000000..c2e35f5
--- /dev/null
+++ b/parted-1.8.7/doc/Makefile.am
@@ -0,0 +1,21 @@
+# C must be the first sub-directory because it contains the POT files.
+SUBDIRS = C pt_BR
+
+info_TEXINFOS = parted.texi
+MAKEINFO = makeinfo --no-split
+
+EXTRA_DIST = FAT		\
+			 USER.jp	\
+			 API		\
+			 fdl.texi	\
+			 parted-pt_BR.texi
+
+.PHONY: updatepo
+updatepo:
+	list='$(SUBDIRS)'; for dir in $$list; do \
+		$(MAKE) -C "$$dir" updatepo; \
+	done
+
+MAINTAINERCLEANFILES = Makefile.in \
+                       mdate-sh    \
+                       texinfo.tex
diff --git a/parted-1.8.7/doc/Makefile.in b/parted-1.8.7/doc/Makefile.in
new file mode 100644
index 0000000..b34fa20
--- /dev/null
+++ b/parted-1.8.7/doc/Makefile.in
@@ -0,0 +1,956 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = doc
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+	$(srcdir)/stamp-vti $(srcdir)/version.texi
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+INFO_DEPS = $(srcdir)/parted.info
+TEXINFO_TEX = $(top_srcdir)/build-aux/texinfo.tex
+am__TEXINFO_TEX_DIR = $(top_srcdir)/build-aux
+DVIS = parted.dvi
+PDFS = parted.pdf
+PSS = parted.ps
+HTMLS = parted.html
+TEXINFOS = parted.texi
+TEXI2DVI = texi2dvi
+TEXI2PDF = $(TEXI2DVI) --pdf --batch
+MAKEINFOHTML = $(MAKEINFO) --html
+AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS)
+DVIPS = dvips
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+	html-recursive info-recursive install-data-recursive \
+	install-dvi-recursive install-exec-recursive \
+	install-html-recursive install-info-recursive \
+	install-pdf-recursive install-ps-recursive install-recursive \
+	installcheck-recursive installdirs-recursive pdf-recursive \
+	ps-recursive uninstall-recursive
+am__installdirs = "$(DESTDIR)$(infodir)"
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
+  distclean-recursive maintainer-clean-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = makeinfo --no-split
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+
+# C must be the first sub-directory because it contains the POT files.
+SUBDIRS = C pt_BR
+info_TEXINFOS = parted.texi
+EXTRA_DIST = FAT		\
+			 USER.jp	\
+			 API		\
+			 fdl.texi	\
+			 parted-pt_BR.texi
+
+MAINTAINERCLEANFILES = Makefile.in \
+                       mdate-sh    \
+                       texinfo.tex
+
+all: all-recursive
+
+.SUFFIXES:
+.SUFFIXES: .dvi .html .info .pdf .ps .texi
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  doc/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  doc/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+.texi.info:
+	restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+	am__cwd=`pwd` && cd $(srcdir) && \
+	rm -rf $$backupdir && mkdir $$backupdir && \
+	if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
+	  for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
+	    if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
+	  done; \
+	else :; fi && \
+	cd "$$am__cwd"; \
+	if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+	 -o $@ $<; \
+	then \
+	  rc=0; \
+	  cd $(srcdir); \
+	else \
+	  rc=$$?; \
+	  cd $(srcdir) && \
+	  $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
+	fi; \
+	rm -rf $$backupdir; exit $$rc
+
+.texi.dvi:
+	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+	$(TEXI2DVI) $<
+
+.texi.pdf:
+	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+	$(TEXI2PDF) $<
+
+.texi.html:
+	rm -rf $(@:.html=.htp)
+	if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+	 -o $(@:.html=.htp) $<; \
+	then \
+	  rm -rf $@; \
+	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+	    mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
+	else \
+	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+	    rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
+	  exit 1; \
+	fi
+$(srcdir)/parted.info: parted.texi $(srcdir)/version.texi
+parted.dvi: parted.texi $(srcdir)/version.texi
+parted.pdf: parted.texi $(srcdir)/version.texi
+parted.html: parted.texi $(srcdir)/version.texi
+$(srcdir)/version.texi:  $(srcdir)/stamp-vti
+$(srcdir)/stamp-vti: parted.texi $(top_srcdir)/configure
+	@(dir=.; test -f ./parted.texi || dir=$(srcdir); \
+	set `$(SHELL) $(top_srcdir)/build-aux/mdate-sh $$dir/parted.texi`; \
+	echo "@set UPDATED $$1 $$2 $$3"; \
+	echo "@set UPDATED-MONTH $$2 $$3"; \
+	echo "@set EDITION $(VERSION)"; \
+	echo "@set VERSION $(VERSION)") > vti.tmp
+	@cmp -s vti.tmp $(srcdir)/version.texi \
+	  || (echo "Updating $(srcdir)/version.texi"; \
+	      cp vti.tmp $(srcdir)/version.texi)
+	-@rm -f vti.tmp
+	@cp $(srcdir)/version.texi $@
+
+mostlyclean-vti:
+	-rm -f vti.tmp
+
+maintainer-clean-vti:
+	-rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
+.dvi.ps:
+	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+	$(DVIPS) -o $@ $<
+
+uninstall-dvi-am:
+	@$(NORMAL_UNINSTALL)
+	@list='$(DVIS)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(dvidir)/$$f"; \
+	done
+
+uninstall-html-am:
+	@$(NORMAL_UNINSTALL)
+	@list='$(HTMLS)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \
+	  rm -rf "$(DESTDIR)$(htmldir)/$$f"; \
+	done
+
+uninstall-info-am:
+	@$(PRE_UNINSTALL)
+	@if test -d '$(DESTDIR)$(infodir)' && \
+	    (install-info --version && \
+	     install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+	  list='$(INFO_DEPS)'; \
+	  for file in $$list; do \
+	    relfile=`echo "$$file" | sed 's|^.*/||'`; \
+	    echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \
+	    install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \
+	  done; \
+	else :; fi
+	@$(NORMAL_UNINSTALL)
+	@list='$(INFO_DEPS)'; \
+	for file in $$list; do \
+	  relfile=`echo "$$file" | sed 's|^.*/||'`; \
+	  relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \
+	  (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \
+	     echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \
+	     rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \
+	   else :; fi); \
+	done
+
+uninstall-pdf-am:
+	@$(NORMAL_UNINSTALL)
+	@list='$(PDFS)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(pdfdir)/$$f"; \
+	done
+
+uninstall-ps-am:
+	@$(NORMAL_UNINSTALL)
+	@list='$(PSS)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(psdir)/$$f"; \
+	done
+
+dist-info: $(INFO_DEPS)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	list='$(INFO_DEPS)'; \
+	for base in $$list; do \
+	  case $$base in \
+	    $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \
+	  esac; \
+	  if test -f $$base; then d=.; else d=$(srcdir); fi; \
+	  base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \
+	  for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \
+	    if test -f $$file; then \
+	      relfile=`expr "$$file" : "$$d/\(.*\)"`; \
+	      test -f $(distdir)/$$relfile || \
+		cp -p $$file $(distdir)/$$relfile; \
+	    else :; fi; \
+	  done; \
+	done
+
+mostlyclean-aminfo:
+	-rm -rf parted.aux parted.cp parted.cps parted.fn parted.fns parted.ky \
+	  parted.kys parted.log parted.pg parted.pgs parted.tmp \
+	  parted.toc parted.tp parted.tps parted.vr parted.vrs \
+	  parted.dvi parted.pdf parted.ps parted.html
+
+maintainer-clean-aminfo:
+	@list='$(INFO_DEPS)'; for i in $$list; do \
+	  i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \
+	  echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \
+	  rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \
+	done
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	rev=''; for subdir in $$list; do \
+	  if test "$$subdir" = "."; then :; else \
+	    rev="$$subdir $$rev"; \
+	  fi; \
+	done; \
+	rev="$$rev ."; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done && test -z "$$fail"
+tags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+ctags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+	  include_option=--etags-include; \
+	  empty_fix=.; \
+	else \
+	  include_option=--include; \
+	  empty_fix=; \
+	fi; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test ! -f $$subdir/TAGS || \
+	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	  fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d "$(distdir)/$$subdir" \
+	    || $(MKDIR_P) "$(distdir)/$$subdir" \
+	    || exit 1; \
+	    distdir=`$(am__cd) $(distdir) && pwd`; \
+	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+	    (cd $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$$top_distdir" \
+	        distdir="$$distdir/$$subdir" \
+		am__remove_distdir=: \
+		am__skip_length_check=: \
+	        distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+	$(MAKE) $(AM_MAKEFLAGS) \
+	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
+	  dist-info
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(INFO_DEPS)
+installdirs: installdirs-recursive
+installdirs-am:
+	for dir in "$(DESTDIR)$(infodir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am: $(DVIS)
+
+html: html-recursive
+
+html-am: $(HTMLS)
+
+info: info-recursive
+
+info-am: $(INFO_DEPS)
+
+install-data-am: install-info-am
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am: $(DVIS)
+	@$(NORMAL_INSTALL)
+	test -z "$(dvidir)" || $(MKDIR_P) "$(DESTDIR)$(dvidir)"
+	@list='$(DVIS)'; for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  f=$(am__strip_dir) \
+	  echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(dvidir)/$$f'"; \
+	  $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(dvidir)/$$f"; \
+	done
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am: $(HTMLS)
+	@$(NORMAL_INSTALL)
+	test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)"
+	@list='$(HTMLS)'; for p in $$list; do \
+	  if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  f=$(am__strip_dir) \
+	  if test -d "$$d$$p"; then \
+	    echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \
+	    $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
+	    echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
+	    $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f"; \
+	  else \
+	    echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \
+	    $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \
+	  fi; \
+	done
+install-info: install-info-recursive
+
+install-info-am: $(INFO_DEPS)
+	@$(NORMAL_INSTALL)
+	test -z "$(infodir)" || $(MKDIR_P) "$(DESTDIR)$(infodir)"
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	list='$(INFO_DEPS)'; \
+	for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	  esac; \
+	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
+	  file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \
+	  for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \
+                       $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \
+	    if test -f $$ifile; then \
+	      relfile=`echo "$$ifile" | sed 's|^.*/||'`; \
+	      echo " $(INSTALL_DATA) '$$ifile' '$(DESTDIR)$(infodir)/$$relfile'"; \
+	      $(INSTALL_DATA) "$$ifile" "$(DESTDIR)$(infodir)/$$relfile"; \
+	    else : ; fi; \
+	  done; \
+	done
+	@$(POST_INSTALL)
+	@if (install-info --version && \
+	     install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+	  list='$(INFO_DEPS)'; \
+	  for file in $$list; do \
+	    relfile=`echo "$$file" | sed 's|^.*/||'`; \
+	    echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\
+	    install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\
+	  done; \
+	else : ; fi
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am: $(PDFS)
+	@$(NORMAL_INSTALL)
+	test -z "$(pdfdir)" || $(MKDIR_P) "$(DESTDIR)$(pdfdir)"
+	@list='$(PDFS)'; for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  f=$(am__strip_dir) \
+	  echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(pdfdir)/$$f'"; \
+	  $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pdfdir)/$$f"; \
+	done
+install-ps: install-ps-recursive
+
+install-ps-am: $(PSS)
+	@$(NORMAL_INSTALL)
+	test -z "$(psdir)" || $(MKDIR_P) "$(DESTDIR)$(psdir)"
+	@list='$(PSS)'; for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  f=$(am__strip_dir) \
+	  echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(psdir)/$$f'"; \
+	  $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(psdir)/$$f"; \
+	done
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-aminfo \
+	maintainer-clean-generic maintainer-clean-vti
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-aminfo mostlyclean-generic \
+	mostlyclean-libtool mostlyclean-vti
+
+pdf: pdf-recursive
+
+pdf-am: $(PDFS)
+
+ps: ps-recursive
+
+ps-am: $(PSS)
+
+uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \
+	uninstall-pdf-am uninstall-ps-am
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+	install-strip
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+	all all-am check check-am clean clean-generic clean-libtool \
+	ctags ctags-recursive dist-info distclean distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs installdirs-am maintainer-clean \
+	maintainer-clean-aminfo maintainer-clean-generic \
+	maintainer-clean-vti mostlyclean mostlyclean-aminfo \
+	mostlyclean-generic mostlyclean-libtool mostlyclean-vti pdf \
+	pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
+	uninstall-dvi-am uninstall-html-am uninstall-info-am \
+	uninstall-pdf-am uninstall-ps-am
+
+
+.PHONY: updatepo
+updatepo:
+	list='$(SUBDIRS)'; for dir in $$list; do \
+		$(MAKE) -C "$$dir" updatepo; \
+	done
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/doc/USER.jp b/parted-1.8.7/doc/USER.jp
new file mode 100644
index 0000000..162ac07
--- /dev/null
+++ b/parted-1.8.7/doc/USER.jp
@@ -0,0 +1,1788 @@
+==============================================================================
+			GNU Parted ÆüËܸìÈÇ
+==============================================================================
+
+      written by Andrew Clausen <clausen@gnu.org>
+      translated by Yoshinori K. Okuji <okuji@gnu.org>
+
+      Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+      Copyright (C) 2001 Yoshinori K. Okuji
+
+      Permission is granted to copy, distribute and/or modify this document
+      under the terms of the GNU Free Documentation License, Version 1.1
+      or any later version published by the Free Software Foundation;
+      with the no Invariant Sections, with the no Front-Cover Texts, and
+      with no Back-Cover Texts.  A copy of the license is included in the
+      file, COPYING.DOC.
+
+
+Ìܼ¡
+--------
+
+1	ƳÆþ
+2	Parted ¤Î»ÈÍÑ
+3	BIOS ¤È¥Õ¥¡¡¼¥à¥¦¥§¥¢
+4	¥Ö¡¼¥È¡¦¥í¡¼¥À
+5	¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à
+6	¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à
+7	LVM¡¢¥½¥Õ¥È¥¦¥§¥¢ RAID ¤È ľÀÜŪ¤Ê¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ø¤Î¥¢¥¯¥»¥¹
+8	¥Ç¥£¥¹¥¯¡¦¥¤¥á¡¼¥¸¥ó¥°
+9	¤µ¤é¤Ê¤ë¾ðÊó¤È´ØÏ¢¥½¥Õ¥È¥¦¥§¥¢
+
+
+1	ƳÆþ
+1.1	ɬÍפʥ½¥Õ¥È¥¦¥§¥¢
+1.2	¥µ¥Ý¡¼¥È¤µ¤ì¤ë¥×¥é¥Ã¥È¥Û¡¼¥à
+1.3	¥é¥¤¥»¥ó¥¹
+1.4	¥³¥ó¥Ñ¥¤¥ë
+1.5	GNU Parted ¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯
+
+2	Parted ¤Î»ÈÍÑ
+2.1	Parted ¤Î¼Â¹Ô
+2.2	¥ª¥×¥·¥ç¥ó
+2.3	¥³¥Þ¥ó¥É¤Î³µÍ×
+2.4	¥³¥Þ¥ó¥É¤Î¾ÜºÙ¤Ê²òÀâ
+2.5	¼ÂÎã
+
+3	BIOS ¤È¥Õ¥¡¡¼¥à¥¦¥§¥¢
+3.1	PC BIOS
+3.2	Macintosh OpenFirmware
+3.3	PC98 BIOS
+
+4	¥Ö¡¼¥È¡¦¥í¡¼¥À
+4.1	LILO (Linux Loader)
+4.2	GNU GRUB (GRand Unified Bootloader)
+4.3	MS DOS¡¢MS Windows 9x¡¢MS Windows ME
+4.4	MS Windows NT
+4.5	MS Windows 2000
+4.6	Quik
+4.7	Yaboot
+
+5	¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à
+5.1	GNU/Linux ¤È FreeBSD
+5.2	MS Windows ¤È OS/2
+5.3	MacOS
+
+6	¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à
+6.1	Ext2
+6.2	FAT16 ¤È FAT32
+6.3	Reiserfs
+
+7	LVM¡¢¥½¥Õ¥È¥¦¥§¥¢ RAID ¤È ľÀÜŪ¤Ê¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ø¤Î¥¢¥¯¥»¥¹
+7.1	¥½¥Õ¥È¥¦¥§¥¢ RAID ¤ä LVM ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎºîÀ®
+7.2	¥½¥Õ¥È¥¦¥§¥¢ RAID ¤ä LVM ÏÀÍý¥Ü¥ê¥å¡¼¥à¾å¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥àÁàºî
+
+8	¥Ç¥£¥¹¥¯¡¦¥¤¥á¡¼¥¸¥ó¥°
+
+9	¤µ¤é¤Ê¤ë¾ðÊó¤È´ØÏ¢¥½¥Õ¥È¥¦¥§¥¢
+
+
+------------------------------------------------------------------------------
+1	ƳÆþ
+------------------------------------------------------------------------------
+
+GNU Parted ¤Ï¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ä¤½¤Î¾å¤ËÃÛ¤«¤ì¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òºîÀ®¤·¤¿¤ê¡¢
+ÇË´þ¤·¤¿¤ê¡¢Â礭¤µ¤òÊѹ¹¤·¤¿¤ê¡¢¸¡ºº¤·¤¿¤ê¡¢Ê£À½¤¹¤ë¤¿¤á¤Î¥×¥í¥°¥é¥à¤Ç¤¹¡£
+
+¿·¤·¤¤¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤ÎÎΰè¤òºîÀ®¤·¤¿¤ê¡¢¥Ç¥£¥¹¥¯¤Î»ÈÍÑË¡¤ò
+ºÆÊÔÀ®¤·¤¿¤ê¡¢¥Ï¡¼¥É¡¦¥Ç¥£¥¹¥¯´Ö¤Ç¥Ç¡¼¥¿¤ò¥³¥Ô¡¼¤·¤¿¤ê¡¢¤¿¤¯¤µ¤ó¤Î
+¥³¥ó¥Ô¥å¡¼¥¿¤Ë·«¤êÊÖ¤·¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿´Ä¶­¤òÊ£À½¤¹¤ë¡Ö¥Ç¥£¥¹¥¯¡¦
+¥¤¥á¡¼¥¸¥ó¥°¡×¤ò¹Ô¤¦¤Î¤Ë¡¢¤³¤ì¤ÏÌò¤ËΩ¤Á¤Þ¤¹¡£
+
+¤³¤Î²òÀâ¤Ç¤Ï¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ä¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë´Ø¤¹¤ëÃ챤ò²¾Äꤷ¤Æ¤¤¤Þ¤¹¡£
+¤â¤·¤³¤ì¤é¤ò¤â¤Ã¤ÈÊÙ¶¯¤·¤¿¤±¤ì¤Ð¡¢Partition mini-HOWTO ¤òÆɤà¤ÈÎɤ¤¤Ç¤·¤ç¤¦¡£
+
+¤½¤ì¤Ï¤­¤Ã¤È¤¢¤Ê¤¿¤Î¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤«¡¢°Ê²¼¤«¤é
+ÍøÍѲÄǽ¤Ç¤¹:
+
+	http://www.linuxdoc.org/HOWTO/mini/Partition/index.html
+
+GNU Parted ¤Ï¥Ç¡¼¥¿¤Î»¼º¤Î²ÄǽÀ­¤òºÇ¾®¸Â¤Ëα¤á¤ë¤è¤¦¤ËÀ߷פµ¤ì¤Þ¤·¤¿¡£
+Î㤨¤Ð¡¢(ÅÅÎÏÉÔ­¤Î¤è¤¦¤Ê) ¾ã³²¤Î´Ö¤Ë¥Ç¡¼¥¿¤Î»¼º¤¬µ¯¤­¤ë¤Î¤òÈò¤±¤ë
+¤è¤¦¤ËÀ߷פµ¤ì¡¢Â¿¤¯¤Î°ÂÁ´¸¡ºº¤ò¹Ô¤¤¤Þ¤¹¡£¤·¤«¤·¡¢Parted ¤Ë¥Ð¥°¤¬¤¢¤ë
+¤«¤â¤·¤ì¤Ê¤¤¤Î¤Ç¡¢½ÅÍפʥե¡¥¤¥ë¤ò¥Ð¥Ã¥¯¥¢¥Ã¥×¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¹¡£
+
+GNU Parted ¤Î¥Û¡¼¥à¥Ú¡¼¥¸¤Ï www.gnu.org/software/parted ¤Ç¤¹¡£
+ftp.gnu.org/gnu/parted ¤«¤é¥À¥¦¥ó¥í¡¼¥É¤Ç¤­¤Þ¤¹¡£
+
+Parted ¤Î¥á¥¤¥ê¥ó¥°¡¦¥ê¥¹¥È¤Ï parted@gnu.org ¤Ç¤¹¡£¹ØÆɤ¹¤ë¤Ë¤Ï¡¢Âê̾¤Ë
+¡Ösubscribe¡×¤È½ñ¤¤¤Æ bug-parted-request@gnu.org ¤Ë¥á¡¼¥ë¤ò½Ð¤·¤Æ¤¯¤À¤µ¤¤¡£
+¹ØÆɤξðÊó¤ä¥¢¡¼¥«¥¤¥Ö¤Ï°Ê²¼¤«¤éÍøÍѲÄǽ¤Ç¤¹:
+
+	http://mail.gnu.org/mailman/listinfo/bug-parted
+
+¥Ð¥°¤ÎÊó¹ð¤ò bug-parted@gnu.org ¤ËÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤¡£¥Ð¥°Êó¹ð¤òÁ÷¤ë¤È¤­¡¢
+GNU Parted ¤Î¥Ð¡¼¥¸¥ç¥ó¤ò´Þ¤á¤Æ¤¯¤À¤µ¤¤¡£¤â¤·¤½¤Î¥Ð¥°¤¬¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡¦
+¥Æ¡¼¥Ö¥ë¤Ë´Ø·¸¤·¤Æ¤¤¤ë¤Ê¤é¡¢¼¡¤Î¥³¥Þ¥ó¥É¤«¤é¤Î½ÐÎϤòÆþ¤ì¤Æ¤¯¤À¤µ¤¤:
+
+	# fdisk /dev/hda -l
+	# fdisk /dev/hda
+	Command (m for help): p
+	Command (m for help): x
+	Extended command (m for help): p
+
+µ¤³Ú¤Ë¤³¤Î¥ê¥¹¥È¤Ë½õ¤±¤òµá¤á¤Æ¤¯¤À¤µ¤¤ - ¤Þ¤º¤¢¤Ê¤¿¤Î¼ÁÌ䤬¤³¤³¤ÇÅú¤¨¤é¤ì
+¤Æ¤¤¤Ê¤¤¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£¤â¤·²òÀ⤬ʬ¤«¤é¤Ê¤±¤ì¤Ð¡¢¤â¤Ã¤È¾å¼ê¤¯
+ÀâÌÀ¤Ç¤­¤ë¤è¤¦¡¢²æ¡¹¤Ë¶µ¤¨¤Æ¤¯¤À¤µ¤¤¡£°ìÈÌŪ¤Êů³Ø: ¤â¤·¤¢¤Ê¤¿¤¬½õ¤±¤ò
+µá¤á¤ëɬÍפ¬¤¢¤ë¤Ê¤é¡¢¤¢¤Ê¤¿ (¤ä¾¤Î¿Í¡¹) ¤¬½õ¤±¤òµá¤á¤ëɬÍפ¬¤Ê¤¤¤è¤¦¤Ë¡¢
+²¿¤«¤ò½¤Àµ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
+
+¤Þ¤¿¡¢²æ¡¹¤Ï¤¢¤Ê¤¿¤Î°Õ¸«¤ò¤È¤Æ¤âʹ¤­¤¿¤¯»×¤Ã¤Æ¤¤¤Þ¤¹ :-)
+
+
+1.1	ɬÍפʥ½¥Õ¥È¥¦¥§¥¢
+------------------------------------------------------------------------------
+  * e2fsprogs ¥Ñ¥Ã¥±¡¼¥¸¤Î°ìÉô¤Ç¤¢¤ë¡¢libuuid¡£¤â¤·¤³¤ì¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¤Ê¤é¡¢
+
+	http://web.mit.edu/tytso/www/linux/e2fsprogs.html
+
+    ¤«¤éÆþ¼ê¤Ç¤­¤Þ¤¹¡£
+
+¤â¤· Parted¡¢¤½¤·¤Æ e2fsprogs ¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤¿¤¤¤Ê¤é¡¢e2fsprogs ¤ò "make
+install" ¤È "make install-libs" ¤¹¤ëɬÍפ¬¤¢¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
+
+  * GNU Readline (Ǥ°Õ)¡¢
+
+	ftp://ftp.gnu.org/gnu/readline
+
+    ¤«¤éÆþ¼ê¤Ç¤­¤Þ¤¹¡£
+
+¤â¤· Parted ¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¤¤Æ¡¢readline ¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¤Ê¤é¡¢Parted ¤Î
+readline ¥µ¥Ý¡¼¥È¤ò ./configure ¤Ø¤Î --disable-readline ¥ª¥×¥·¥ç¥ó¤Ç̵¸ú
+¤Ë¤Ç¤­¤Þ¤¹¡£
+
+  * ¤â¤·¹ñºÝ²½¥µ¥Ý¡¼¥È¤¬Ë¾¤Þ¤ì¤ë¤Ê¤é¡¢¥³¥ó¥Ñ¥¤¥ëÍÑ¤Ë GNU gettext
+    (¤¢¤ë¤¤¤Ï¡¢¸ß´¹¥½¥Õ¥È¥¦¥§¥¢)¡£
+
+	ftp://ftp.gnu.org/gnu/gettext
+
+
+1.2	¥µ¥Ý¡¼¥È¤µ¤ì¤ë¥×¥é¥Ã¥È¥Û¡¼¥à
+------------------------------------------------------------------------------
+˾¤à¤é¤¯¤Ï¡¢¤³¤Î°ìÍ÷ɽ¤¬¤º¤Ã¤ÈÁýÂ礹¤ë¤³¤È¤ò¡£¤â¤·¤³¤ì¤é¤Î¥×¥é¥Ã¥È¥Û¡¼¥à
+¤Î°ì¤Ä¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¤Ê¤é (º£¤Î¤È¤³¤í¤Ï Linux!)¡¢¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤¬»È¤¨¤Þ¤¹
+(¥»¥¯¥·¥ç¥ó 1.5 ¤ò»²¾È)
+
+  * Linux >= 2.0.x, 2.2.x (Alpha¡¢x86 PC¡¢PC98¡¢Macintosh PowerPC¡¢Sun)
+
+
+Ãí°Õ: GNU libc 2.1 °Ê¾å¤¬É¬ÍפǤ¹¡£¤ª¤½¤é¤¯ --disable-nls ¥ª¥×¥·¥ç¥ó¤ò»ÈÍÑ
+¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¤â¤Ã¤È¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤òÍøÍѤǤ­¤Þ¤¹¡£ (Ãð: ¤³¤ÎɬÍ×À­¤ò¤â
+¤Ï¤äÀÚ¤êÍî¤È¤·¤¿¤È»×¤¤¤Þ¤¹¡£ ¤ä¤ë¤Ù¤­¤³¤È: libc 2.0 ¤¬Æ°¤¯¤«³Îǧ¤¹¤ë!)
+
+
+1.3	¥é¥¤¥»¥ó¥¹
+------------------------------------------------------------------------------
+GNU Parted ¤Ï¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¤Ç¤¢¤ê¡¢GNU General Public License
+¥Ð¡¼¥¸¥ç¥ó2¤¬Å¬ÍѤµ¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤Ï Parted ÇÛÉÛʪ¤È¤È¤â¤Ë¡¢COPYING
+¥Õ¥¡¥¤¥ë¤Ë´Þ¤á¤é¤ì¤Æ¤¤¤ë¤Ï¤º¤Ç¤¹¡£¤â¤·¤Ê¤±¤ì¤Ð¡¢
+Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+¤Ë¼ê»æ¤ò½ñ¤¤¤Æ¤¯¤À¤µ¤¤¡£
+
+Ãí¼á: libparted ¤Ï GNU Parted ¤Î°ìÉô¤È¹Í¤¨¤é¤ì¤Æ¤¤¤Þ¤¹¡£¤½¤ì¤Ï GNU General
+Public License ¤Ë¤è¤Ã¤ÆÊݸ¤ì¤Æ¤¤¤Þ¤¹¡£¤½¤ì¤Ï GNU Lesser General Public
+License (LGPL) ¤Î²¼¤Ç¤Ï¥ê¥ê¡¼¥¹¤µ¤ì¤Æ¡Ø¤¤¤Þ¤»¤ó¡Ù¡£
+
+
+1.4	¥³¥ó¥Ñ¥¤¥ë
+------------------------------------------------------------------------------
+GNU Parted ¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤¿¤±¤ì¤Ð¡¢Ä̾盧¤Î¤è¤¦¤Ë¤·¤Æ¹Ô¤ï¤ì¤Þ¤¹:
+
+	$ ./configure
+	$ make
+
+¤·¤«¤·¡¢./configure ¤ËÂФ·¤Æ¿ô¸Ä¤Î¥ª¥×¥·¥ç¥ó¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹:
+
+  --without-readline		readline ¤ò»ÈÍѤ·¤Þ¤»¤ó¡£¤³¤ì¤Ï¤¢¤Þ¤ê
+				¿¤¯¤Î¥é¥¤¥Ö¥é¥ê¤¬ÍøÍѤǤ­¤Ê¤¤¤è¤¦¤Ê¡¢
+				¶ÛµÞÍѥǥ£¥¹¥¯¤Ê¤É¤òºîÀ®¤¹¤ë¤Î¤ËÊØÍø¤Ç¤¹¡£
+
+  --disable-nls			Êì¹ñ¸ì¥µ¥Ý¡¼¥È¤ò¼è¤ê¾Ã¤·¤Þ¤¹¡£¤³¤ì¤Ï
+				glibc ¤Î¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤ä¶ÛµÞÍѥǥ£¥¹¥¯¤Ë
+                                Ŭ¤·¤¿¡¢µ¡Ç½¤òºï¸º¤·¤¿glibc ¤È°ì½ï¤Ë»ÈÍÑ
+                                ¤¹¤ë¤Î¤ËÊØÍø¤Ç¤¹¡£
+
+  --disable-shared		¶¦Í­¥é¥¤¥Ö¥é¥ê¤ò̵¸ú¤Ë¤·¤Þ¤¹¡£¤³¤ì¤Ï¤â¤·
+				¡Ö¤³¤ï¤µ¤ì¤¿¥ì¥¸¥¹¥¿ (spilled register)¡×
+				¤Ë´Ø¤¹¤ë¥³¥ó¥Ñ¥¤¥ë¡¦¥¨¥é¡¼¤ò¼õ¤±¼è¤Ã¤¿¤é¡¢
+				GNU libc ¤Î¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤È°ì½ï¤Ë»È¤¦¤¿¤á
+				¤ËɬÍפˤʤ뤫¤â¤·¤ì¤Þ¤»¤ó¡£¥Ö¡¼¥È/¶ÛµÞÍÑ
+				¥Ç¥£¥¹¥¯¤Ë¤âÍ­ÍѤǤ·¤ç¤¦¡£
+
+  --enable-all-static		´°Á´¤ËÀÅŪ¤Ê¥Ð¥¤¥Ê¥ê¤È¤·¤Æ¡¢Parted ¤Î¥Ð¥¤
+				¥Ê¥ê¤ò¹½ÃÛ¤·¤Þ¤¹¡£¤³¤ì¤Ï¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤Ë
+				ÊØÍø¤Ç¡¢¤È¤¤¤¦¤Î¤â¡¢¤¤¤«¤Ê¤ë¥é¥¤¥Ö¥é¥ê¤â
+				¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¾å¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëɬÍפ¬
+				¤Ê¤¤¤«¤é¤Ç¤¹ (¾¤Î¥×¥í¥°¥é¥à¤¬É¬ÍפȤ¹¤ë¤«
+				¤â¤·¤ì¤Ê¤¤¤±¤É...)¡£Ãí°Õ: strip(1) ¤âÁö¤é
+				¤»¤¿¤¤¤Ç¤·¤ç¤¦¡£
+
+
+1.5	GNU Parted ¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯
+------------------------------------------------------------------------------
+GNU/Linux ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¤¤Ê¤¤¥Þ¥·¥ó¤Ç Parted ¤ò¼Â¹Ô¤·¤¿¤¤¡¢¤¢¤ë¤¤¤Ï¡¢
+¥ë¡¼¥È¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ä¥Ö¡¼¥È¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎÂ礭¤µ¤òÊѹ¹¤·¤¿¤¤¤Ê¤é¡¢
+¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ë¤Ç¤·¤ç¤¦¡£
+
+¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤Î¥¤¥á¡¼¥¸¤Ï°Ê²¼¤«¤éÆþ¼ê²Äǽ¤Ç¤¹:
+
+	ftp://ftp.gnu.org/gnu/parted/bootdisk/partboot.img
+
+¼ÂºÝ¤Ë¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤òºîÀ®¤¹¤ë¤Ë¤Ï¡¢(GNU/Linux ¤Ç¤Ï) ¤³¤¦ÂǤÁ¹þ¤ó¤Ç
+¤¯¤À¤µ¤¤:
+
+	# dd if=partboot.img of=/dev/fd0 bs=1440k
+
+¤¢¤ë¤¤¤Ï¡¢DOS ¤Ç RAWRITE.EXE ¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡£
+
+ÉÔ±¿¤Ë¤â¡¢¤½¤Î¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤Ï¤¢¤Þ¤ê¹­ÈϰϤΥϡ¼¥É¥¦¥§¥¢¤ò¥µ¥Ý¡¼¥È¤·¤Æ
+¤¤¤Þ¤»¤ó¡£¤â¤·¤¢¤Ê¤¿¤Î¥Ï¡¼¥É¡¦¥Ç¥£¥¹¥¯¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤Ê¤é¡¢¼«Ê¬ÀìÍÑ
+¤Î¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤òºî¤ëɬÍפ¬¤¢¤ë¤Ç¤·¤ç¤¦¡£parted ¤Î¥Ð¥¤¥Ê¥ê¤ò parted ¤Î
+¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤«¤é¾¤Î¥Ç¥£¥¹¥¯¤Ø¥³¥Ô¡¼¤¹¤ë (ÊýË¡¤Ï°Ê²¼¤ÇÀâÌÀ) ¤³¤È¤¬¤Ç¤­
+¤Þ¤¹¤·¡¢Â¾¤Î¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤ò»î¤·¤¿¤ê¡¢¼«Ê¬ÀìÍѤΤâ¤Î¤òºî¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£
+¤¢¤Ä¤é¤¨¤Î parted ¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤òºî¤ë¤¿¤á¤Î¥·¥§¥ë¡¦¥¹¥¯¥ê¥×¥È¡¢mkparted
+¤¬ÊØÍø¤«¤â¤·¤ì¤Þ¤»¤ó¡£¤½¤ì¤Ï¤³¤³¤«¤éÆþ¼ê¤Ç¤­¤Þ¤¹:
+
+	ftp://ftp.tux.org/pub/people/kent-robotti/mkparted
+
+¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤«¤é¾¤Î¥Ç¥£¥¹¥¯¤Ø parted ¤ò¥³¥Ô¡¼¤¹¤ë¤Ë¤Ï:
+(1) Parted ¤Î¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤Çµ¯Æ°¤·¤Þ¤¹¡£
+(2) ¾¤Î (ext2 ¤Î) ¥Õ¥í¥Ã¥Ô¥£¡¦¥Ç¥£¥¹¥¯¤òÁÞÆþ¤·¤Þ¤¹¡£¤â¤·¤½¤ì¤¬¥Õ¥©¡¼¥Þ¥Ã¥È
+¤µ¤ì¤Æ¤¤¤Ê¤¤¤Ê¤é¡¢"parted /dev/fd0 mklabel loop mkfs 1 ext2" ¤Ç
+¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òºîÀ®¤Ç¤­¤Þ¤¹¡£
+(3) ¤½¤Î¥Õ¥í¥Ã¥Ô¥£¡¦¥Ç¥£¥¹¥¯¤ò¥Þ¥¦¥ó¥È¤·¤Þ¤¹¡£
+("mount -t ext2 /dev/fd0 /mnt/floppy")
+(4) /sbin/parted ¤ò¤½¤Î¥Õ¥í¥Ã¥Ô¥£¤Ë¥³¥Ô¡¼¤·¤Þ¤¹¡£
+("cp /sbin/parted /mnt/floppy")
+(5) /lib/* ¤ò¤½¤Î¥Õ¥í¥Ã¥Ô¥£¤Ë¥³¥Ô¡¼¤·¤Þ¤¹¡£ ("cp /lib/* /mnt/floppy)
+(6) ¤½¤Î¥Õ¥í¥Ã¥Ô¥£¤ò¥¢¥ó¥Þ¥¦¥ó¥È¤·¤Þ¤¹¡£ ("umount /mnt/floppy")
+(7) ¤¢¤Ê¤¿¤Î¥Ï¡¼¥É¡¦¥Ç¥£¥¹¥¯¤ò¥µ¥Ý¡¼¥È¡Ø¤·¤Æ¤¤¤ë¡Ù¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤ò¸«ÉÕ¤±
+¤Þ¤¹¡£ (¥Ò¥ó¥È: Â礭¤Ê¥ß¥é¡¼¡¦¥µ¥¤¥È¾å¤Ç¤µ¤Þ¤¶¤Þ¤Ê¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤«¤é
+¶ÛµÞÍѥǥ£¥¹¥¯¤òõ¤·¤Æ¤ß¤è¤¦¤È¤·¤Ê¤µ¤¤)
+(8) ¤¢¤Ê¤¿¤Î¶ÛµÞÍѥǥ£¥¹¥¯¤Çµ¯Æ°¤·¤Þ¤¹¡£ Parted ¤ò¥³¥Ô¡¼¤·¤¿¥Ç¥£¥¹¥¯¤ò
+¥Þ¥¦¥ó¥È¤·¤Þ¤¹¡£
+(9) Parted ¤ò¼Â¹Ô¤·¤Þ¤¹:
+	# cd /mnt/floppy
+	# LD_LIBRARY_PATH=. ./parted
+
+
+------------------------------------------------------------------------------
+2	Parted ¤Î»ÈÍÑ
+------------------------------------------------------------------------------
+¤¢¤¤¤Ë¤¯¡¢¥Ç¥£¥¹¥¯¤Îʬ³ä¤Ï´öʬº®¤ßÆþ¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤Ï¹Íθ¤ËÆþ¤ì¤ëɬÍפÎ
+¤¢¤ë¡¢¤¿¤¯¤µ¤ó¤Î°Û¤Ê¤Ã¤¿¥·¥¹¥Æ¥à´Ö¤Ç¤ÎÁê¸ßºîÍѤ¬¤¢¤ë¤«¤é¤Ç¤¹:
+
+  * BIOS ¤ä¥Õ¥¡¡¼¥à¥¦¥§¥¢ - ¥á¥â¥ê¤Î¥Á¥§¥Ã¥¯¤Ê¤É¤ò¹Ô¤¦¡¢¤¢¤Ê¤¿¤Î¥³¥ó¥Ô¥å¡¼¥¿
+Æâ¤Î ROM ¥Á¥Ã¥×¤ËÁȤ߹þ¤Þ¤ì¤¿¥×¥í¥°¥é¥à¡£¤³¤Î¥·¥¹¥Æ¥à¤Î¥×¥í¥°¥é¥à¤ò(ÍưפˤÏ)
+Êѹ¹¤Ç¤­¤Þ¤»¤ó¡£BIOS ¤ä¥Õ¥¡¡¼¥à¥¦¥§¥¢¡¦¥×¥í¥°¥é¥à¤ÎÎã: AmiBIOS¡¢Award¡¢
+Phoenix¡¢OpenFirmware¡£¤³¤ì¤é¤Î¥×¥í¥°¥é¥à¤Î¤¦¤Á¡¢°ì¤Ä¤À¤±¤ò»ý¤Ã¤Æ¤¤¤ë¤Ç¤·¤ç¤¦¡£
+
+  * ¥Ö¡¼¥È¡¦¥í¡¼¥À - »È¤¤¤¿¤¤¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤òÁªÂò¤¹¤ë¤³¤È¤ò
+²Äǽ¤Ë¤·¡¢¤½¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤ò¥í¡¼¥É¤¹¤ë¥×¥í¥°¥é¥à¡£Îã: LILO¡¢
+GRUB¡¢Yaboot¡¢Quik¡£ÆäËÊ£¿ô¤Î¼ïÎà¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤ò¥¤¥ó¥¹¥È¡¼¥ë
+¤·¤Æ¤¤¤ë¤Ê¤é¡¢Ê£¿ô¤Î¥Ö¡¼¥È¡¦¥í¡¼¥À¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó
+
+  * Parted ¤òÆ°ºî¤µ¤»¤ë¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à (ÅöºÂ¤Ï¡¢¤³¤ì¤Ï GNU/Linux
+¤Ë°ã¤¤¤¢¤ê¤Þ¤»¤ó)¡¢¤½¤·¤Æ¡¢¤¢¤Ê¤¿¤¬»ÈÍѤ¹¤ë¾¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¡£
+
+  * ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î¼ïÎà - ¥Ç¡¼¥¿¤¬¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë³ÊǼ¤µ¤ì¤ë¼êÃÊ¡£
+¤³¤ì¤é¤ÎÎã¤Ï: ext2¡¢fat¡¢hfs¡¢reiserfs¡£¤·¤Ð¤·¤Ð°Û¤Ê¤ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î
+¼ïÎà¤ò´Þ¤à¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò»ý¤Ã¤Æ¤¤¤ë¤Ç¤·¤ç¤¦¡£
+
+Parted ¤Ï¾åµ­¤Î¤¿¤¯¤µ¤ó¤ÎÁȤ߹ç¤ï¤»¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤ª¤ê¡¢¾­Íè¤Ï¤â¤Ã¤È¥µ¥Ý¡¼¥È
+¤¹¤ë¤Ç¤·¤ç¤¦¡£¤½¤ì¤æ¤¨¡¢3¾Ï¤¬ BIOS ¤Ë´Ø¤·¤Æ¡¢4¾Ï¤¬¥Ö¡¼¥È¡¦¥í¡¼¥À¤Ë¤Ä¤¤¤Æ¡¢
+5¾Ï¤¬¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤Ë¤Ä¤¤¤Æ¡¢¤½¤·¤Æ¡¢6¾Ï¤¬¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë
+¤Ä¤¤¤Æ½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£
+	¤³¤Î¾Ï¤Ï Parted ¤Î»ÈÍÑË¡¤òµ­½Ò¤·¤Æ¤ª¤ê¡¢¤³¤ì¤Ï¤É¤ó¤Ê¥·¥¹¥Æ¥à¤ò»È¤Ã
+¤Æ¤¤¤ë¤«¤Ë¤«¤«¤ï¤é¤º¡¢ÂçÂÎƱ¤¸¤Ç¤¹¡£¤³¤Î¾Ï¤òÆɤߡ¢¤½¤·¤Æ¡¢3¡¢4¡¢5¤È6¾Ï¡¢
+¤½¤ì¤¾¤ì¤òÆɤà¤Ù¤­¤Ç¤¹¡£¤·¤«¤·¡¢¤¢¤Ê¤¿¤Ë´Ø·¸¤¬¤¢¤ë¥»¥¯¥·¥ç¥ó¤À¤±¤òÆɤàɬÍ×
+¤¬¤¢¤ê¤Þ¤¹¡£Î㤨¤Ð¡¢¤â¤·¥Ö¡¼¥È¡¦¥í¡¼¥À¤È¤·¤Æ LILO ¤À¤±¤ò»È¤Ã¤Æ¤¤¤ë¤Ê¤é¡¢
+ƳÆþ¤È¡¢4¾Ï¤Î LILO ¤Ë´Ø¤¹¤ë¥»¥¯¥·¥ç¥ó¤À¤±¤òÆɤàɬÍפ¬¤¢¤ê¤Þ¤¹¡£
+
+
+2.1	Parted ¤Î¼Â¹Ô
+------------------------------------------------------------------------------
+
+Parted ¤ÏÆó¤Ä¤ÎÍͼ°¡¢¥³¥Þ¥ó¥É¡¦¥é¥¤¥ó¤ÈÂÐÏ÷¿¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£Parted ¤Ï¾ï¤Ë
+¤³¤Î¤è¤¦¤Ë³«»Ï¤µ¤ì¤ë¤Ù¤­¤Ç¤¹:
+
+	# parted DEVICE
+
+¤³¤³¤Ç¡¢DEVICE ¤ÏÊÔ½¸¤¹¤ë¥Ï¡¼¥É¡¦¥Ç¥£¥¹¥¯¡¦¥É¥é¥¤¥Ö¤Ç¤¹¡£(¤â¤·¤¢¤Ê¤¿¤¬ÂÕ¤±
+¤Æ¤¤¤ë¤Ê¤é¡¢Parted ¤Ï¤É¤Î¥Ç¥Ð¥¤¥¹¤ò˾¤ó¤Ç¤¤¤ë¤Î¤«¡¢¿ä¬¤·¤è¤¦¤È»î¤ß¤Þ¤¹¡£)
+
+¥³¥Þ¥ó¥É¡¦¥é¥¤¥ó¤Î¥â¡¼¥É¤Ç¤Ï¡¢¤³¤Î¸å¤Ë°ì¤Ä¤«¤½¤ì°Ê¾å¤Î¥³¥Þ¥ó¥É¤ò³¤±¤Þ¤¹¡£
+Îã:
+
+	# parted /dev/sda resize 1 52 104 mkfs 2 fat
+
+(--help ¤Î¤è¤¦¤Ê) ¥ª¥×¥·¥ç¥ó¤Ï¥³¥Þ¥ó¥É¡¦¥é¥¤¥ó¾å¤Ç¤Î¤ß»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
+
+ÂÐÏ÷¿¥â¡¼¥É¤Ç¤Ï¡¢¥³¥Þ¥ó¥É¤Ï°ìÅ٤˰ì¤Ä¤º¤Ä¥×¥í¥ó¥×¥È¤ËÆþÎϤµ¤ì¤Þ¤¹¡£Îã:
+
+	(parted) resize 1 52.0005 104.5
+	(parted) mkfs 2 fat
+
+Û£Ëæ¤Ç¤Ê¤¤¾Êά¤Ïµö¤µ¤ì¤Þ¤¹¡£Î㤨¤Ð¡¢¡Öprint¡×¤ÎÂå¤ï¤ê¤Ë¡Öp¡×¤ò¡¢¡Öresize¡×
+¤ÎÂå¤ï¤ê¤Ë¡Öre¡×¤òÂǤĤ³¤È¤¬¤Ç¤­¤Þ¤¹¡£¥³¥Þ¥ó¥É¤Ï±Ñ¸ì¤Ç¤â¡¢¤¢¤Ê¤¿¤ÎÊì¹ñ¸ì¤Ç¤â
+ÂǤÁ¹þ¤á¤Þ¤¹ (¤â¤·¤¢¤Ê¤¿¤Î¸À¸ì¤¬ËÝÌõ¤µ¤ì¤Æ¤¤¤ë¤Ê¤é)¡£¤³¤Î¤³¤È¤¬Û£Ë椵¤òÀ¸¤ß
+½Ð¤¹¤«¤â¤·¤ì¤Þ¤»¤ó¡£
+
+¤Þ¤¿¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î°ÌÃÖ¤ËÂбþ¤¹¤ë¿ô»ú¤Ë¾®¿ô°Ì¤ò»ØÄê¤Ç¤­¤ë¤³¤È¤ËÃí°Õ¤·¤Æ
+¤¯¤À¤µ¤¤ (¥á¥¬¥Ð¥¤¥Èñ°Ì¤Ç)¡£
+
+
+2.2	¥ª¥×¥·¥ç¥ó
+------------------------------------------------------------------------------
+-h, --help                    ¥Ø¥ë¥×¡¦¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Þ¤¹
+-i, --interactive             ɬÍפʾìÌ̤ǡ¢¥æ¡¼¥¶¤Î´³¾Ä¤òºÅÂ¥¤·¤Þ¤¹
+-s, --script                  ·è¤·¤Æ¥æ¡¼¥¶¤Î´³¾Ä¤òÂ¥¤·¤Þ¤»¤ó
+-v, --version                 ¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤·¤Þ¤¹
+
+
+2.3	¥³¥Þ¥ó¥É¤Î³µÍ×
+------------------------------------------------------------------------------
+check MINOR                   ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë´Êñ¤Ê¸¡ºº¤ò¹Ô¤¤¤Þ¤¹
+cp [FROM-DEVICE] FROM-MINOR TO-MINOR      ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¾¤Î¥Ñ¡¼¥Æ¥£
+                                          ¥·¥ç¥ó¤Ë¥³¥Ô¡¼¤·¤Þ¤¹
+help [COMMAND]                °ìÈÌŪ¤Ê¥Ø¥ë¥×¤«¡¢COMMAND ¤Ë´Ø¤¹¤ë¥Ø¥ë¥×¤ò
+                              ɽ¼¨¤·¤Þ¤¹
+mklabel LABEL-TYPE            ¿·¤·¤¤¥Ç¥£¥¹¥¯¡¦¥é¥Ù¥ë(¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡¦
+                              ¥Æ¡¼¥Ö¥ë)¤òºîÀ®¤·¤Þ¤¹
+mkfs MINOR FS-TYPE            ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó MINOR ¾å¤Ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à
+                              FS-TYPE ¤òºîÀ®¤·¤Þ¤¹
+mkpart PART-TYPE [FS-TYPE] START END      ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºîÀ®¤·¤Þ¤¹
+mkpartfs PART-TYPE FS-TYPE START END      ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤È°ì½ï¤Ë¥Ñ¡¼
+                                          ¥Æ¥£¥·¥ç¥ó¤òºîÀ®¤·¤Þ¤¹
+move MINOR START END          ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó MINOR ¤ò°ÜÆ°¤·¤Þ¤¹
+name MINOR NAME               ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó MINOR ¤ò NAME ¤È̾ÉÕ¤±¤Þ¤¹
+print                         ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡¦¥Æ¡¼¥Ö¥ë¤òɽ¼¨¤·¤Þ¤¹
+quit                          ¥×¥í¥°¥é¥à¤ò½ªÎ»¤·¤Þ¤¹
+resize MINOR START END        ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó MINOR ¾å¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î
+                              Â礭¤µ¤òÊѹ¹¤·¤Þ¤¹
+rm MINOR                      ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó MINOR ¤òºï½ü¤·¤Þ¤¹
+select DEVICE                 ÊÔ½¸¤¹¤ë¥Ç¥Ð¥¤¥¹¤òÁª¤Ó¤Þ¤¹
+set MINOR FLAG STATE          ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó MINOR ¾å¤Î¥Õ¥é¥°¤òÊѹ¹¤·¤Þ¤¹
+
+FLAG ¤Ï boot¡¢root¡¢swap¡¢hidden¡¢raid¡¢lvm¡¢lba ¤Î¤¦¤Á¤Î°ì¤Ä¤Ç¤¹¡£
+
+FS-TYPE ¤Ï ext2¡¢FAT¡¢hfs¡¢linux-swap¡¢ntfs¡¢reiserfs ¤Î¤¦¤Á¤Î°ì¤Ä¤Ç¤¹¡£
+
+LABEL-TYPE ¤Ï sun¡¢bsd¡¢mac¡¢loop¡¢pc98¡¢msdos¡¢gpt ¤Î¤¦¤Á¤Î°ì¤Ä¤Ç¤¹¡£
+
+MINOR ¤Ï Linux ¤Ë»È¤ï¤ì¤ë¥Ñ¡¼¥Æ¥£¥·¥ç¥óÈÖ¹æ¤Ç¤¹¡£
+
+PART-TYPE ¤Ï primary¡¢logical¡¢extended ¤Î¤¦¤Á¤Î°ì¤Ä¤Ç¤¹¡£
+´ðËÜ (primary) ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ïɸ½àŪ¤Ê¡¢³ÈÄ¥À­¤Î¤Ê¤¤¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ç¤¹¡£
+³ÈÄ¥ (extended) ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï¤¿¤À¾¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡¢Àµ³Î¤Ë¤ÏÏÀÍý
+(logical) ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡¢¤ò´Þ¤à¤À¤±¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ç¤¹¡£¤µ¤é¤Ë¤è¤êÀµ³Î
+¤Ë¤Ï¡¢³ÈÄ¥¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï¥Ç¥£¥¹¥¯¡¦¥É¥é¥¤¥Ö¤Î¤è¤¦¤Ë¹½ÃÛ¤µ¤ì¤Æ¤ª¤ê¡¢
+¡Ö´ðËܡץѡ¼¥Æ¥£¥·¥ç¥ó (ÏÀÍý¥Ñ¡¼¥Æ¥£¥·¥ç¥ó) ¤È¡¢Ç¤°Õ¤Ç¡¢Ê̤ΡֳÈÄ¥¡×
+¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òÊÝ»ý¤·¡¢¤½¤ì¤¬ºÆ¤ÓºÙʬ¤µ¤ì¤Æ ...
+ºÇÂç¤Ç¤â³ÈÄ¥¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï°ì¤Ä¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¯¤Æ¡¢°ì¤Ä¤Î´ðËÜ
+¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎÎΰè¤òÀê¤á¤Þ¤¹¡£¤â¤· msdos ¥Ç¥£¥¹¥¯¡¦¥é¥Ù¥ë¤ò»È¤Ã¤Æ
+¤¤¤Ê¤¤¤Ê¤é¡¢´ðËܥѡ¼¥Æ¥£¥·¥ç¥ó¤À¤±¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
+
+START ¤È END ¤Ï¥¼¥í¤«¤é»Ï¤Þ¤ë¡¢¥á¥¬¥Ð¥¤¥È¤Çɽ¤µ¤ì¤Þ¤¹¡£¾®¿ô¤ò»È¤Ã¤Æ¤â
+¹½¤¤¤Þ¤»¤ó (Îã: 1258.9)¡£
+
+
+2.4	¥³¥Þ¥ó¥É¤Î¾ÜºÙ¤Ê²òÀâ
+------------------------------------------------------------------------------
+
+2.4.1	check
+-------------
+	check MINOR                   ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë´Êñ¤Ê¸¡ºº¤ò¹Ô¤¤¤Þ¤¹
+
+check ¥³¥Þ¥ó¥É¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¥¨¥é¡¼¤¬¤¢¤ë¤«¤É¤¦¤«¤ò¸¡ºº¤·¤Þ¤¹¡£
+
+Îã:
+
+	(parted) check 1
+
+
+2.4.2	cp
+----------
+	cp [FROM-DEVICE] FROM-MINOR TO-MINOR      ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¾¤Î
+                                                  ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¥³¥Ô¡¼¤·¤Þ¤¹
+
+¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò¾¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¥³¥Ô¡¼¤·¡¢¤½¤ÎÌÜŪ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î
+¸µ¡¹¤¢¤Ã¤¿Ãæ¿È¤òºï½ü¤·¤Þ¤¹¡£ºÇ½é¤Î MINOR ÈÖ¹æ¤Ï¸µ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò»Ø¤·¡¢
+ÆóÈÖÌܤÏÌÜŪ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò»Ø¤·¤Þ¤¹¡£
+
+Ǥ°Õ¤Î¥Ñ¥é¥á¡¼¥¿¤È¤·¤Æ¡¢¥Ç¥Ð¥¤¥¹¤òÍ¿¤¨¤ë¤³¤È¤¬¤Ç¤­¡¢¤½¤ì¤ÏÌÜŪ¤Î
+¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬¤É¤Î¥Ç¥Ð¥¤¥¹¾å¤Ë¤¢¤ë¤«¤ò»ØÄꤷ¤Þ¤¹¡£
+
+¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à:
+  * ext2 (ÌÜŪ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬¸µ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤è¤ê¤âÂ礭¤¤¤È¤¤¤¦¾ò·ï¤Ç)
+  * FAT
+  * linux-swap	(ÌÜŪ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¤ª¤±¤ë mkfs ¤ÈÅù²Á)
+
+Îã:
+
+	(parted) cp /dev/hdb 2 3
+
+	/dev/hdb ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó2 (¤Ä¤Þ¤ê¡¢/dev/hdb2) ¤ò¡¢Parted ¤¬¥í¡¼¥É
+	¤¹¤ë¤È¤­¤Ë»È¤Ã¤¿¥Ç¥Ð¥¤¥¹¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó3¤Ë¥³¥Ô¡¼¤·¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó3
+	¤Î°ÊÁ°¤ÎÆâÍƤòÇ˲õ¤·¤Þ¤¹¡£
+
+
+2.4.3	help
+------------
+	help [COMMAND]                °ìÈÌŪ¤Ê¥Ø¥ë¥×¤«¡¢COMMAND ¤Ë´Ø¤¹¤ë
+				      ¥Ø¥ë¥×¤òɽ¼¨¤·¤Þ¤¹
+
+Îã:
+
+	(parted) help resize
+
+
+2.4.4	mklabel
+---------------
+	mklabel LABEL-TYPE            ¿·¤·¤¤¥Ç¥£¥¹¥¯¡¦¥é¥Ù¥ë(¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡¦
+				      ¥Æ¡¼¥Ö¥ë)¤òºîÀ®¤·¤Þ¤¹
+
+¿·¤·¤¤¥Ç¥£¥¹¥¯¡¦¥é¥Ù¥ë¤ò¡¢¥¿¥¤¥× LABEL-TYPE ¤ÇºîÀ®¤·¤Þ¤¹¡£¿·¤·¤¤¥Ç¥£¥¹¥¯¡¦
+¥é¥Ù¥ë¤Ï¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò°ì¤Ä¤â»ý¤Á¤Þ¤»¤ó¡£¤³¤Î¥³¥Þ¥ó¥É¤Ï (Ä̾ï¤Ï)¡¢µ»½ÑŪ¤Ë
+¸À¤Ã¤Æ¡¢¥Ç¡¼¥¿¤òÇ˲õ¤·¤Þ¤»¤ó¤¬¡¢´ðËÜŪ¤ËÍøÍÑÉÔǽ¤Ë¤·¤Æ¤·¤Þ¤¤¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó
+¤ò½¤Éü¤¹¤ë¤Ë¤Ï¡¢gpart (¥»¥¯¥·¥ç¥ó 9 ¤ò»²¾È) ¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤òÍøÍѤ¹¤ëɬÍ×
+¤¬¤¢¤ë¤Ç¤·¤ç¤¦¡£(»ä¤ÎÃΤë¸Â¤ê) gpart ¤Ï msdos ¥Ç¥£¥¹¥¯¡¦¥é¥Ù¥ë¤Ë¤À¤±»È¤¨¤Þ¤¹¡£
+²æ¡¹¤Î¤³¤Îµ¡Ç½¤ò Parted ¤Ë²Ã¤¨¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡¢¤¢¤ë¤¤¤Ï¡¢¤¹¤ë¤Ù¤­¤Ç¤·¤ç¤¦¡£
+
+Ãí¼á: ¤ß¤ó¤Ê¡¢¡Ö¥Ç¥£¥¹¥¯¡¦¥é¥Ù¥ë¡×¤Ë°ã¤¦¸ÀÍÕ¤ò»È¤¦¤è¤¦¤Ç¤¹ - °Ê²¼¤ÏÁ´¤ÆƱ¤¸
+¤â¤Î¤Ç¤¹: ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡¦¥Æ¡¼¥Ö¥ë¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡¦¥Þ¥Ã¥×¡£¤Þ¤¿¡¢x86 ¥Þ¥·¥ó
+¾å¤Î¥Þ¥¹¥¿¡¼¡¦¥Ö¡¼¥È¡¦¥ì¥³¡¼¥É¤Ï¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡¦¥Æ¡¼¥Ö¥ë¤ÈƱ¤¸¥»¥¯¥¿¤Ë¼ý¤á¤é
+¤ì¤Æ¤¤¤Þ¤¹ (Parted ¤ò»ÈÍѤ¹¤ë¤Î¤Ë¤³¤Î¤³¤È¤òÃΤëɬÍפϤ¢¤ê¤Þ¤»¤ó)¡£
+
+¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥Ç¥£¥¹¥¯¡¦¥é¥Ù¥ë:
+  * bsd
+  * loop (ľÀÜŪ¤Ê¥Ç¥£¥¹¥¯¡¦¥¢¥¯¥»¥¹)
+  * gpt
+  * mac
+  * msdos
+  * pc98
+  * sun
+
+Îã:
+
+	(parted) mklabel msdos
+
+
+2.4.5	mkfs
+------------
+	mkfs MINOR FS-TYPE            ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó MINOR ¾å¤Ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à
+				      FS-TYPE ¤òºîÀ®¤·¤Þ¤¹
+
+¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¾å¤Ë¿·¤·¤¤¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òºîÀ®¤·¡¢¤½¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë
+¸ºß¤¹¤ë¥Ç¡¼¥¿¤òÁ´¤ÆÇ˲õ¤·¤Þ¤¹¡£
+
+¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à:
+  * ext2
+  * FAT
+  * linux-swap
+
+Îã:
+
+	(parted) mkfs 2 fat
+
+
+2.4.6	mkpart
+--------------
+	mkpart PART-TYPE [FS-TYPE] START END      (¿·µ¬¤Î)¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò
+                                                  ºî¤é¤º¤Ë¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºî
+                                                  À®¤·¤Þ¤¹¡£¥Ç¡¼¥¿¡¦¥Ñ¡¼¥Æ¥£
+                                                  ¥·¥ç¥ó¤Ç¤Ï¡¢FS-TYPE ¤¬É¬Í×
+                                                  ¤È¤µ¤ì¤Þ¤¹
+
+¿·¤·¤¤¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òºîÀ®¡Ø¤»¤º¤Ë¡Ù¡¢¿·¤·¤¤¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºîÀ®¤·¤Þ¤¹¡£
+¤³¤ì¤Ï¶öÁ³¤Ëºï½ü¤·¤Æ¤·¤Þ¤Ã¤¿¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò²óÉü¤¹¤ë¤Î¤ËÌò¤ËΩ¤Á¤Þ¤¹¡£
+
+PART-TYPE ¤Ï¤³¤Î¤¦¤Á¤Î°ì¤Ä¤Ç¤¹: primary (´ðËÜ)¡¢extended (³ÈÄ¥)¡¢
+logical (ÏÀÍý)¡£extended ¤È logical ¤Ï msdos ¥Ç¥£¥¹¥¯¡¦¥é¥Ù¥ë¤ËÂФ·¤Æ¤Î¤ß
+»ÈÍѤ·¤Þ¤¹¡£
+
+¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à:
+  * ext2
+  * FAT
+  * HFS
+  * linux-swap
+  * NTFS
+  * reiserfs
+
+Îã:
+
+	(parted) mkpart logical ext2 0.0 692.1
+
+
+2.4.7	mkpartfs
+----------------
+	mkpartfs PART-TYPE FS-TYPE START END      ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤È°ì½ï¤Ë
+						  ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºîÀ®¤·¤Þ¤¹
+
+
+¿·¤·¤¤¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÉÕ¤­¤Ç¿·¤·¤¤¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºîÀ®¤·¤Þ¤¹¡£ºï½ü¤·¤Æ
+¤·¤Þ¤Ã¤¿¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò²óÉü¤µ¤»¤ë¤Î¤Ë¡¢¤³¤Î¥³¥Þ¥ó¥É¤ò»È¤ï¤Ê¤¤¤Ç¤¯¤À¤µ¤¤
+(Âå¤ï¤ê¤Ë mkpart ¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤)¡£
+
+PART-TYPE ¤Ï¤³¤Î¤¦¤Á¤Î°ì¤Ä¤Ç¤¹: primary (´ðËÜ)¡¢extended (³ÈÄ¥)¡¢
+logical (ÏÀÍý)¡£extended ¤È logical ¤Ï msdos ¥Ç¥£¥¹¥¯¡¦¥é¥Ù¥ë¤ËÂФ·¤Æ¤Î¤ß
+»ÈÍѤ·¤Þ¤¹¡£
+
+¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à:
+  * ext2
+  * FAT
+  * linux-swap
+
+Îã:
+
+	(parted) mkpartfs logical ext2 440 670
+
+
+2.4.8	move
+------------
+	move MINOR START [END]        ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó MINOR ¤ò°ÜÆ°¤·¤Þ¤¹
+
+¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò°ÜÆ°¤·¤Þ¤¹¡£ Ãí: move ¤Ï·è¤·¤Æ¥Þ¥¤¥Ê¡¼ÈÖ¹æ¤òÊѹ¹¤·¤Þ¤»¤ó¡£
+
+¤â¤· END ¤¬»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎÂ礭¤µ¤ÏƱ¤¸¤Þ¤Þ¤Ë¤Ê¤ê¤Þ¤¹¡£
+
+¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à:
+  * ext2 (ÌÜŪ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬¸µ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤è¤êÂ礭¤¤¤È¤¤¤¦¾ò·ï¤Ç)
+  * FAT
+  * linux-swap
+
+
+2.4.9	name
+------------
+	name MINOR NAME               ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó MINOR ¤ò NAME ¤È̾ÉÕ¤±
+				      ¤Þ¤¹
+
+¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë̾Á°¤òÉÕ¤±¤Þ¤¹ (Mac ¤È PC98 ¤À¤±)¡£ ̾Á°¤Ï¥¯¥¦¥©¡¼¥È¤Ç°Ï¤á
+¤Þ¤¹¡£ Îã:
+
+	(parted) name 2 'Secret Documents'
+
+
+2.4.10	print
+-------------
+	print                         ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡¦¥Æ¡¼¥Ö¥ë¤òɽ¼¨¤·¤Þ¤¹
+
+¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡¦¥Æ¡¼¥Ö¥ë¤òɽ¼¨¤·¤Þ¤¹¡£
+
+Îã:
+
+	(parted) print
+	Disk geometry for /dev/hda: 0.000-2445.679 megabytes
+	Disk label type: msdos
+	Minor    Start       End     Type      Filesystem  Flags
+	1          0.031    945.000  primary   FAT         boot, lba
+	2        945.000   2358.562  primary   ext2
+	3       2358.562   2445.187  primary   linux-swap
+
+
+2.4.11	resize
+--------------
+	resize MINOR START END        ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó MINOR ¾å¤Î¥Õ¥¡¥¤¥ë
+				      ¥·¥¹¥Æ¥à¤ÎÂ礭¤µ¤òÊѹ¹¤·¤Þ¤¹
+
+¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎÂ礭¤µ¤òÊѹ¹¤·¤Þ¤¹¡£ Ãí: resize ¤Ï·è¤·¤Æ¥Þ¥¤¥Ê¡¼ÈÖ¹æ¤òÊѹ¹
+¤·¤Þ¤»¤ó¡£ºÆ¤Ó¡¢Ãí: ¿·¤·¤¤³ÈÄ¥¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬´°Á´¤ËÁ´¤Æ¤ÎÏÀÍý¥Ñ¡¼¥Æ¥£¥·¥ç¥ó
+¤ò´Þ¤ó¤Ç¤¤¤ë¸Â¤ê¡¢³ÈÄ¥¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎÂ礭¤µ¤òÊѹ¹¤Ç¤­¤Þ¤¹¡£
+
+Parted ¤Ï¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬¡Ö¥Ç¥Õ¥é¥°¡×¤µ¤ì¤Æ¤¤¤ë¤³¤È¤òÍ׵ᤷ¤Ê¤¤¤³¤È¤Ë
+Ãí°Õ¤·¤Æ¤¯¤À¤µ¤¤ (ɬÍפʤ顢Parted ¤Ï°ÂÁ´¤Ë¥Ç¡¼¥¿¤ò°ÜÆ°¤Ç¤­¤Þ¤¹)¡£¥Ç¥Õ¥é¥°
+¤¹¤ë¤Î¤Ï»þ´Ö¤Î̵Â̤Ǥ¹¡£¼ÙË⤷¤Ê¤¤¤Ç!
+
+¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à:
+  * ext2 - À©¸Â: ¿·¤·¤¤ START ¤Ï¸Å¤¤ START ¤ÈƱ¤¸¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó
+  * FAT
+  * linux-swap
+
+Îã:
+
+	(parted) resize 3 200 850
+
+
+2.4.12	rm
+----------
+	rm MINOR                      ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó MINOR ¤òºï½ü¤·¤Þ¤¹
+
+¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò½üµî¤·¤Þ¤¹¡£¤â¤·¶öÁ³¤Ë¤³¤Î¥³¥Þ¥ó¥É¤Ç¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò
+ºï½ü¤·¤Æ¤·¤Þ¤Ã¤¿¤é¡¢¼è¤êÌ᤹¤¿¤á¤Ë mkpart ¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤ (mkpartfs ¤Ç¤Ï
+¡Ø¤¢¤ê¤Þ¤»¤ó¡Ù)¡£¤Þ¤¿¡¢Â»½ý¤ò¼õ¤±¤¿¥Ç¥£¥¹¥¯¡¦¥é¥Ù¥ë¤ò²óÉü¤µ¤»¤ë¤¿¤á¤Ë¡¢
+gpart ¥×¥í¥°¥é¥à¤ò»È¤¦¤³¤È¤â²Äǽ¤Ç¤¹ (6¾Ï¤ò»²¾È)¡£
+
+msdos ¥Ç¥£¥¹¥¯¡¦¥é¥Ù¥ë¤Î¤¿¤á¤ÎÃí°Õ: ¤â¤·ÏÀÍý¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºï½ü¤¹¤ì¤Ð¡¢
+¤è¤êÂ礭¤¤¥Þ¥¤¥Ê¡¼ÈÖ¹æ¤ÎÉÕ¤¤¤¿ÏÀÍý¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÏÁ´ÉôÈֹ椬ÉÕ¤±Ä¾¤µ¤ì¤ë
+¤Ç¤·¤ç¤¦¡£Î㤨¤Ð¡¢¤â¤· 6 ¤Î¥Þ¥¤¥Ê¡¼ÈÖ¹æ¤ÎÏÀÍý¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºï½ü¤¹¤ì¤Ð¡¢
+Èֹ椬 7¡¢8¡¢9 ¤À¤Ã¤¿ logical ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï¤½¤ì¤¾¤ì 6¡¢7¡¢8 ¤Ë¤Ê¤ê¤Þ¤¹¡£
+¤³¤Î¤³¤È¤Î¤¿¤á¤Ë¡¢/etc/fstab ¤ò¹¹¿·¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
+
+Îã:
+
+	(parted) rm 3
+
+
+2.4.13	select
+--------------
+	select DEVICE                 ÊÔ½¸¤¹¤ë¥Ç¥Ð¥¤¥¹¤òÁªÂò¤·¤Þ¤¹
+
+Parted ¤¬ÊÔ½¸¤¹¤ë¥Ç¥Ð¥¤¥¹¤òÁªÂò¤·¤Þ¤¹¡£¥Ç¥Ð¥¤¥¹¤ÏÄ̾ï Linux ¤Î¥Ï¡¼¥É¡¦¥Ç¥£
+¥¹¥¯¡¦¥Ç¥Ð¥¤¥¹¤«¡¢¤¢¤ë¤¤¤Ï¡¢¤â¤·¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ø¤ÎľÀÜ¥¢¥¯¥»¥¹¤¬Í׵ᤵ
+¤ì¤ë¤Ê¤é¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ä¡¢¥½¥Õ¥È¥¦¥§¥¢ RAID ¥Ç¥Ð¥¤¥¹¡¢LVM ÏÀÍý¥Ü¥ê¥å¡¼¥à
+¤Ç¤·¤ç¤¦¡£
+
+Îã:
+
+	(parted) select /dev/hdb
+
+
+2.4.14	set
+-----------
+	set MINOR FLAG STATE          ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó MINOR ¾å¤Î¥Õ¥é¥°¤ò
+				      Êѹ¹¤·¤Þ¤¹
+
+¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¾å¤Î¥Õ¥é¥°¤òÊѹ¹¤·¤Þ¤¹¡£¥Õ¥é¥°¤Ï¡Öon¡×¤«¡Öoff¡×¤Î¤É¤Á¤é¤«¤Ç
+¤¹¡£¤³¤ì¤é¤Î¥Õ¥é¥°¤Î°ìÉô¡¢¤¢¤ë¤¤¤Ï¡¢Á´Éô¤¬¡¢¤¢¤Ê¤¿¤¬»È¤Ã¤Æ¤¤¤ë¥Ç¥£¥¹¥¯¡¦¥é
+¥Ù¥ë¤Ë±þ¤¸¤Æ¡¢ÍøÍѤǤ­¤ë¤Ç¤·¤ç¤¦:
+  * boot (Mac¡¢MSDOS¡¢PC98) - ¤½¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤«¤éµ¯Æ°¤·¤¿¤±¤ì¤Ð¡¢Í­¸ú¤Ë
+¤µ¤ì¤ë¤Ù¤­¤Ç¤¹¡£¤½¤Î°ÕÌ£¤Ï¥Ç¥£¥¹¥¯¡¦¥é¥Ù¥ë´Ö¤Ç¤µ¤Þ¤¶¤Þ¤Ç¤¹¡£MSDOS ¥Ç¥£¥¹¥¯¡¦
+¥é¥Ù¥ë¤Ç¤Ï¡¢¤¿¤À°ì¤Ä¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤À¤±¤¬µ¯Æ°²Äǽ¤Ë¤Ê¤êÆÀ¤Þ¤¹¡£¤â¤·¥Ñ¡¼¥Æ¥£
+¥·¥ç¥ó¤Ë LILO ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¤¤ë¤Ê¤é¡¢¤½¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ïµ¯Æ°²Äǽ¤Ç¤Ê¤±
+¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£PC98 ¥Ç¥£¥¹¥¯¡¦¥é¥Ù¥ë¤Ç¤Ï¡¢Á´¤Æ¤Î ext2 ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬µ¯Æ°
+²Äǽ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó (¤³¤ì¤Ï Parted ¤Ë¶¯À©¤µ¤ì¤Þ¤¹)¡£
+  * lba (MSDOS) - MSDOS¡¢MS Windows 9x ¤ä MS Windows ME ¤ò´ðËܤȤ¹¤ë¥ª¥Ú¥ì¡¼
+¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤Ë¥ê¥Ë¥¢ (LBA) ¥â¡¼¥É¤ò»È¤¦¤è¤¦¤Ë»Ø¼¨¤¹¤ë¤¿¤á¤Ë¡¢¤³¤Î¥Õ¥é¥°
+¤ÏÍ­¸ú¤Ë¤Ç¤­¤Þ¤¹¡£
+  * root (Mac) - ¤½¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬ Linux ¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤ë¥ë¡¼¥È¡¦¥Ç¥Ð¥¤
+¥¹¤Ê¤é¡¢¤³¤Î¥Õ¥é¥°¤òÍ­¸ú¤Ë¤¹¤Ù¤­¤Ç¤¹¡£
+  * swap (Mac) - ¤½¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬ Linux ¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤ë¥¹¥ï¥Ã¥×¡¦¥Ç¥Ð
+¥¤¥¹¤Ê¤é¡¢¤³¤Î¥Õ¥é¥°¤òÍ­¸ú¤Ë¤¹¤Ù¤­¤Ç¤¹¡£
+  * hidden (MSDOS, PC98) - ¥Þ¥¤¥¯¥í¥½¥Õ¥È¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤«¤é
+¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò±£¤¹¤¿¤á¤Ë¡¢¤³¤Î¥Õ¥é¥°¤òÍ­¸ú¤Ë¤Ç¤­¤Þ¤¹¡£
+  * raid (MSDOS) - Linux ¤Ë¤½¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬¥½¥Õ¥È¥¦¥§¥¢ RAID ¥Ñ¡¼¥Æ¥£
+¥·¥ç¥ó¤Ç¤¢¤ë¤³¤È¤ò¶µ¤¨¤ë¤¿¤á¤Ë¡¢¤³¤Î¥Õ¥é¥°¤òÍ­¸ú¤Ç¤­¤Þ¤¹¡£
+  * LVM (MSDOS) - Linux ¤Ë¤½¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬ÊªÍý¥Ü¥ê¥å¡¼¥à¤Ç¤¢¤ë¤³¤È¤ò¶µ¤¨
+¤ë¤¿¤á¤Ë¡¢¤³¤Î¥Õ¥é¥°¤òÍ­¸ú¤Ë¤Ç¤­¤Þ¤¹¡£
+
+print ¥³¥Þ¥ó¥É¤Ï³Æ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ËÂФ·¤ÆÍ­¸ú¤Ë¤µ¤ì¤Æ¤¤¤ë¥Õ¥é¥°Á´¤Æ¤òɽ¼¨¤·
+¤Þ¤¹¡£
+
+Îã:
+
+	(parted) set 1 boot on
+
+
+2.4.15	quit
+------------
+	quit                          ¥×¥í¥°¥é¥à¤ò½ªÎ»¤·¤Þ¤¹
+
+Parted ¤ò½ªÎ»¤µ¤»¤Þ¤¹¡£Linux ¥«¡¼¥Í¥ë¤¬ Parted ¤¬¥Ç¥£¥¹¥¯¤ËÂФ·¤Æ¹Ô¤Ã¤¿
+Êѹ¹¤òÃΤë¤Î¤Ï¡¢Parted ¤¬½ªÎ»¤·¤¿¸å¤À¤±¤Ç¤¹¡£¤·¤«¤·¤Ê¤¬¤é¡¢¥³¥Þ¥ó¥É¤òÂǤÁ
+¹þ¤ó¤Ç°ú¤­µ¯¤³¤µ¤ì¤ëÊѹ¹¤Ï¡Ø¤ª¤½¤é¤¯¡Ù¡¢¥³¥Þ¥ó¥É¤òÂǤƤФ¹¤°¤µ¤Þ¥Ç¥£¥¹¥¯¤Ë
+È¿±Ç¤µ¤ì¤ë¤Ç¤·¤ç¤¦¡£¤Ç¤â¡¢Linux ¤Î¥­¥ã¥Ã¥·¥å¤ä¥Ç¥£¥¹¥¯¤Î¥Ï¡¼¥É¥¦¥§¥¢¡¦
+¥­¥ã¥Ã¥·¥å¤¬¤³¤ì¤òÃٱ䤵¤»¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
+
+
+2.5	¼ÂÎã
+------------------------------------------------------------------------------
+
+°Ê²¼¤ÎÎã¤Ç¡¢ºÇ¤â¤¢¤ê¤Õ¤ì¤¿¾õ¶·¤òÊñ´Þ¤¹¤ë¤è¤¦¤Ë»î¤ß¤Þ¤¹¡£Îã³°¤Ï¥Ç¥£¥¹¥¯¡¦
+¥¤¥á¡¼¥¸¥ó¥°¤Ç¡¢¤½¤ì¤Ï8¾Ï¤Ç°·¤ï¤ì¤Æ¤¤¤Þ¤¹¡£
+
+2.5.1	Îã 1
+-----------------
+
+¾õ¶·
+
+¤¢¤Ê¤¿¤Î¥Ç¥£¥¹¥¯¤Î³ä¤êÅö¤Æ¤¬¼¡¤Î¤è¤¦¤Ç¤¢¤ë¤È¹Í¤¨¤Æ¤¯¤À¤µ¤¤:
+
+	(parted) print
+	Disk geometry for /dev/hda: 0.000-1000.000 megabytes
+	Disk label type: msdos
+	Minor    Start       End     Type      Filesystem  Flags
+	1          0.063    500.000  primary   ext2
+	2        500.000    625.000  primary   linux-swap
+
+¤½¤Î¥Ç¥£¥¹¥¯¤ÎºÇ¸å¤Ë (¥Ñ¡¼¥Æ¥£¥·¥ç¥ó 2 ¤Î¸å¤Ë) 375 Mb ¤Î¶õ¤­Îΰ褬¤¢¤ê¤Þ¤¹¡£
+¥Ñ¡¼¥Æ¥£¥·¥ç¥ó 1 ¤Ï ext2 ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ò»ý¤Á¡¢¤½¤ì¤¬¥ë¡¼¥È¡¦¥Ç¥Ð¥¤¥¹¤Ç
+¤¹¡£¥Ñ¡¼¥Æ¥£¥·¥ç¥ó 2 ¤Ï¥¹¥ï¥Ã¥×¡¦¥Ç¥Ð¥¤¥¹¤Ç¤¹¡£
+
+¤½¤Î¥Ç¥£¥¹¥¯¤ÎºÇ¸å¤Î¶õ¤­Îΰè¤ò¥Ñ¡¼¥Æ¥£¥·¥ç¥ó 1 ¾å¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥àÍѤ˻È
+¤¤¤¿¤«¤Ã¤¿¤È¤·¤Þ¤¹¡£
+
+¼ê½ç¤Î¸«ËÜ
+
+(1) °Ê²¼¤ÎÃʳ¬¤Ç¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó 1 ¾å¤Î¥ë¡¼¥È¡¦¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤È¥Ñ¡¼¥Æ¥£
+¥·¥ç¥ó 2 ¾å¤Î¥¹¥ï¥Ã¥×¡¦¥Ç¥Ð¥¤¥¹¤ÎξÊý¤ò½¤Àµ¤·¤Þ¤¹¡£¤½¤ì¤æ¤¨¡¢¤É¤Á¤é¤Î¥Ñ¡¼
+¥Æ¥£¥·¥ç¥ó¤ò¤â»ÈÍѤ·¤Æ¤¤¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£Â¿Ê¬ Parted ¤Î¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤ò
+»ÈÍѤ¹¤ë¤Ù¤­¤Ç¤¹ (¥»¥¯¥·¥ç¥ó 1.5 ¤ò»²¾È)¡£¤½¤Î¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤«¤é¡¢Parted
+¤ò¼Â¹Ô¤·¤Þ¤¹:
+
+	# parted /dev/hda
+
+(2) ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó 2 (¥¹¥ï¥Ã¥×¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó) ¤ò½üµî¤·¤Þ¤¹¡£ÉáÄÌ¡¢¥Ç¡¼¥¿
+¤¬¾è¤Ã¤Æ¤¤¤ë¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºï½ü¤·¤¿¤¯¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¡£¤·¤«¤·¡¢¡Ö¥¹¥ï¥Ã¥×¡¦
+¥ª¥ó¡× (¥Þ¥¦¥ó¥È) ¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¤­¡¢¥¹¥ï¥Ã¥×¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï¥Ç¡¼¥¿¤ò´Þ¤ó
+¤Ç¤¤¤Þ¤»¤ó¤Î¤Ç¡¢¤½¤ì¤ò½üµî¤·¡¢Âå¤ï¤ê¤Î¥¹¥ï¥Ã¥×¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò¸å¤Çºî¤ë¤³¤È
+¤¬¤Ç¤­¤Þ¤¹¡£
+
+	(parted) rm 2
+
+(3) ¤½¤Î¥Ç¥£¥¹¥¯¤ÎºÇ¸å¤Ë¿·¤·¤¤¥¹¥ï¥Ã¥×¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºîÀ®¤·¤Þ¤¹:
+
+	(parted) mkpartfs primary linux-swap 875 999.9
+	(parted) print
+	Disk geometry for /dev/hda: 0.000-1000.000 megabytes
+	Disk label type: msdos
+	Minor    Start       End     Type      Filesystem  Flags
+	1          0.063    500.000  primary   ext2
+	2        875.000   1000.000  primary   linux-swap
+
+(4) ¶áÀܤ·¤¿¶õ¤­Îΰè¤Ë¸þ¤«¤Ã¤Æ¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó 1 ¤òÁýÂ礵¤»¤Þ¤¹:
+
+	(parted) resize 1 0.063 874.9
+
+½ª¤ï¤ê¤Þ¤·¤¿!
+
+	(parted) print
+	Disk geometry for /dev/hda: 0.000-1000.000 megabytes
+	Disk label type: msdos
+	Minor    Start       End     Type      Filesystem  Flags
+	1          0.063    874.999  primary   ext2
+	2        875.000   1000.000  primary   linux-swap
+
+
+2.5.2	Îã 2
+-----------------
+
+¾õ¶·
+
+¤¢¤Ê¤¿¤Î¥Ç¥£¥¹¥¯¤Î³ä¤ê°¸¤Æ¤¬¤³¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¹Í¤¨¤Æ¤¯¤À¤µ¤¤:
+
+	Disk geometry for /dev/hda: 0-8063.5 megabytes
+	Disk label type: msdos
+	Minor   Start     End    Type            Filesystem     Flags
+	1          0.0     23.5  primary         ext2           boot
+	2         23.5   8056.0  extended
+	5         23.6   3545.6  logical         ext2
+	6       3545.6   7067.7  logical         ext2
+	7       7067.7   7326.5  logical         ext2
+	8       7326.5   7585.4  logical         ext2
+	9       7585.4   7844.2  logical         linux-swap
+
+	Filesystem            Size  Used Avail Use% Mounted on
+	/dev/hda8             251M   31M  207M  13% /
+	/dev/hda1              23M  2.4M   19M  11% /boot
+	/dev/hda5             3.4G  577M  2.7G  18% /usr
+	/dev/hda6             3.4G  289M  2.9G   9% /home
+	/dev/hda7             251M   12M  226M   5% /var
+
+/home (/dev/hda6) ¤ÎÎΰè¤ò»È¤Ã¤Æ¡¢/var ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó (/dev/hda7) ¤ò 1GB ¤Ë
+Áý¤ä¤·¤¿¤«¤Ã¤¿¤È¤·¤Þ¤¹¡£
+
+Parted ¤Ç¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎÂ礭¤µ¤òÊѹ¹¤¹¤ë¤Î¤Ë¡¢resize ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹:
+
+	(parted) resize PARTITION_NUMBER NEW_START NEW_END
+
+NEW_START ¤Ï (¤¢¤¤¤Ë¤¯) ext2 ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ç¤Ï°ÊÁ°¤Î³«»ÏÅÀ¤ÈƱ¤¸¤Ç¤Ê¤±¤ì¤Ð
+¤Ê¤ê¤Þ¤»¤ó¡£¤À¤«¤é¡¢¤³¤Î¼ê³¤­¤Ï¤«¤Ê¤êÊ£»¨¤Ë¤Ê¤ê¤Þ¤¹¡£¤½¤ì¤Ï²Äǽ¤Ç¤Ï¤¢¤ê¤Þ¤¹
+¤¬ :-)
+
+Ãí: ¤â¤· (FAT ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ç¤Ç¤­¤ë¤è¤¦¤Ë) Parted ¤¬ ext2 ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î
+³«»ÏÅÀ¤Î°ÜÆ°¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤¿¤é¤Ê¤é¡¢¤½¤ì¤Ï¼è¤ë¤Ë­¤ê¤Ê¤«¤Ã¤¿¤Ç¤·¤ç¤¦:
+
+	(parted) resize 6 3545.6 6200
+	(parted) resize 7 6200 7326.5
+
+¼ê½ç¤Î¸«ËÜ:
+
+(1) /home ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó (/dev/hda6) ¤ò 500MB ½Ì¤á¤Þ¤¹:
+
+	# parted /dev/hda
+	(parted) resize 6 3545.6 6200
+
+(2) ¤½¤Î¾ì½ê¤Ë¿·¤·¤¤¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºîÀ®¤·¤Þ¤¹¡£¤³¤ì¤ÏºÇ½ªÅª¤Ë¤Ï /var ¤Ë
+¤Ê¤ë¤È¤³¤í¤Ç¤¹¡£¤³¤Î¿·¤·¤¤¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï 10 ¤ÈÈÖ¹æÉÕ¤±¤µ¤ì¤Þ¤¹¡£
+
+	(parted) mkpartfs logical ext2 6200 7067.7
+
+(3) °ÊÁ°¤Î /var ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó (/dev/hda7) ¤ò¿·¤·¤¤Êý (/dev/hda10) ¤Ø¥³¥Ô¡¼
+¤·¤Þ¤¹¡£
+
+	(parted) cp 7 10
+
+(4) °ÊÁ°¤Î /var ¤òºï½ü¤·¤Þ¤¹¡£
+
+        (parted) rm 7
+
+
+¤³¤Î»þÅÀ¤Ç¡¢Á´¤Æ¤Î 7 °Ê¹ß¤ÎÏÀÍý¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÏÈֹ椬ÊѤï¤Ã¤¿¤È¤³¤í¤Ç¤¹¡£
+¤À¤«¤é¡¢8¡¢9¡¢10 ¤Ï¤½¤ì¤¾¤ì 7¡¢8¡¢9 ¤Ë¤Ê¤ê¤Þ¤¹¡£
+
+¤³¤ÎÈÖ¹æ¤ÎºÆ³ä¤êÅö¤Æ¤Ï¡¢¤³¤Î¥Ç¥£¥¹¥¯¾å¤Î²¿¤é¤«¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬¥Þ¥¦¥ó¥È
+¤µ¤ì¤Æ¤¤¤ë´Ö¤Ë¤Ï¹Ô¤ï¤ì¤Þ¤»¤ó (¤³¤ì¤ÏºÆµ¯Æ°¤¹¤ë¤È¤­¤Ëµ¯¤­¤Þ¤¹)¡£¤½¤Î·Ù¹ð
+¥á¥Ã¥»¡¼¥¸¤¬¸ì¤Ã¤Æ¤¤¤ë¤Î¤Ï¤³¤Î¤³¤È¤Ç¤¹¡£¤À¤«¤é¡¢¤â¤·¤³¤Î¥á¥Ã¥»¡¼¥¸¤ò¼õ¤±
+¼è¤Ã¤¿¤Ê¤é¡¢Parted ¤Ë¤è¤Ã¤Æ±Æ¶Á¤òÍ¿¤¨¤é¤ì¤¿ (Parted ¤Ë¤è¤Ã¤ÆÂ礭¤µ¤¬Êѹ¹
+¤µ¤ì¤¿¤ê¡¢ºîÀ®¤µ¤ì¤¿¤ê¤·¤¿) ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¡¢ºÆµ¯Æ°°ÊÁ°¤Ë¥Þ¥¦¥ó¥È¤·¤è¤¦
+¤È»î¤ß¤Æ¤ÏÀäÂФ¤¤±¤Þ¤»¤ó¡£
+
+(5) (º£¤Ç¤Ï 9 ¤ÈÈÖ¹æÉÕ¤±¤é¤ì¤¿) ¿·¤·¤¤ /var ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎÂ礭¤µ¤ò¡¢
+°ÊÁ°¤Î /var ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òÄɲ乤뤳¤È¤Ç¡¢Êѹ¹¤·¤Þ¤¹:
+	(parted) resize 9 6200 7326.5
+	(parted) quit
+	Warning: The kernel was unable to re-read the partition table on
+	/dev/hda (Device or resource busy).  This means Linux knows nothing
+	about any modifications you made.  You should reboot your computer
+	before doing anything with /dev/hda.
+
+(6) ¥Ñ¡¼¥Æ¥£¥·¥ç¥óÈֹ椬Êѹ¹¤µ¤ì¤¿¤Î¤Ç¡¢/etc/fstab ¤ò¹¹¿·¤·¤Ê¤±¤ì¤Ð¤Ê¤ê
+¤Þ¤»¤ó¡£¥ë¡¼¥È¡¦¥Ç¥Ð¥¤¥¹¤Ï Parted ¤Ë¤è¤Ã¤Æ±Æ¶Á¤µ¤ì¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢¤³¤ì¤Ï
+ºÆµ¯Æ°¤¹¤ëÁ°¤Ë¹Ô¤¨¤Þ¤¹¡£(¤â¤· Parted ¤ò»È¤Ã¤Æ¥ë¡¼¥È¡¦¥Ç¥Ð¥¤¥¹¤Ë²¿¤«¤ò
+¤·¤¿¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤ò»È¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹)¡£
+
+¤â¤·º£¤Þ¤Ç¤Î /etc/fstab ¤¬¤³¤ó¤Ê´¶¤¸¤À¤Ã¤¿¤é:
+
+/dev/hda8               /                       ext2    defaults        1 1
+/dev/hda1               /boot                   ext2    defaults        1 2
+/dev/hda6  /home  ext2  grpquota,usrquota  0  2
+/dev/cdrom              /mnt/cdrom              iso9660 noauto,owner,ro 0 0
+/dev/hda5               /usr                    ext2    defaults        1 2
+/dev/hda7  /var  ext2  grpquota,usrquota  0  2
+/dev/fd0                /mnt/floppy             auto    noauto,owner    0 0
+none                    /proc                   proc    defaults        0 0
+none                    /dev/pts                devpts  gid=5,mode=620  0 0
+/dev/hda9               swap                    swap    defaults        0 0
+
+¿ô¹Ô¤òÊѹ¹¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹:
+  * /var ¤Ïº£¤Ç¤Ï /dev/hda9 ¤Ç¤¹ (¿·¤·¤¤¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¥³¥Ô¡¼¤·¤¿¤«¤é)
+  * /dev/hda8 (¥ë¡¼¥È¡¦¥Ç¥Ð¥¤¥¹) ¤Ï /dev/hda7 ¤ËÈֹ椬Êѹ¹¤µ¤ì¤Æ¤¤¤Þ¤¹
+  * /dev/hda9 (¥¹¥ï¥Ã¥×¡¦¥Ç¥Ð¥¤¥¹) ¤Ï /dev/hda8 ¤ËÈֹ椬Êѹ¹¤µ¤ì¤Æ¤¤¤Þ¤¹
+
+¿·¤·¤¤ /etc/fstab ¤Ï¤³¤ó¤Ê´¶¤¸¤Ç¤¹:
+
+/dev/hda7               /                       ext2    defaults        1 1
+/dev/hda1               /boot                   ext2    defaults        1 2
+/dev/hda6  /home  ext2  grpquota,usrquota  0  2
+/dev/cdrom              /mnt/cdrom              iso9660 noauto,owner,ro 0 0
+/dev/hda5               /usr                    ext2    defaults        1 2
+/dev/hda9  /var  ext2  grpquota,usrquota  0  2
+/dev/fd0                /mnt/floppy             auto    noauto,owner    0 0
+none                    /proc                   proc    defaults        0 0
+none                    /dev/pts                devpts  gid=5,mode=620  0 0
+/dev/hda8               swap                    swap    defaults        0 0
+
+(7) ºÆµ¯Æ°¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤ì¤Ç¤ª¤·¤Þ¤¤¡ª
+
+[ÌõÃí: ¤·¤«¤·¤³¤ì¤À¤È¡¢¸µ¡¹ /var ¤Î¤¢¤Ã¤¿¤È¤³¤í¤Ï̤»ÈÍѤΤޤ޻Ĥµ¤ì¤Æ¤·¤Þ¤¦
+¤Î¤Ç¡¢¤Á¤ç¤Ã¤È¤â¤Ã¤¿¤¤¤Ê¤¤µ¤¤¬¤¹¤ë... ¤¿¤Ã¤¿¤Î5%¤·¤«»È¤Ã¤Æ¤¤¤Ê¤¤¤ó¤À¤«¤é¡¢
+tar ¤Ç¸Ç¤á¤Æ¡¢/home ¤Ë¤Ç¤âÃÖ¤¤¤È¤¤¤Æ¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºî¤êľ¤·¤Æ¡¢tar
+¤ÇÉü¸µ¤·¤¿Êý¤¬Îɤ¤¤Î¤Ç¤Ï¡©]
+
+
+------------------------------------------------------------------------------
+3	BIOS ¤È¥Õ¥¡¡¼¥à¥¦¥§¥¢
+------------------------------------------------------------------------------
+¡ÖBIOS¡× (´ðËÜÆþ½ÐÎÏ¥·¥¹¥Æ¥à) ¤È¡Ö¥Õ¥¡¡¼¥à¥¦¥§¥¢¡×¤ÏƱ¤¸¤â¤Î¤ò°ÕÌ£¤·¤Þ¤¹¡£
+¤·¤«¤·¡¢PC ¤ä PC98 ¤Ë´ð¤Å¤¯¥³¥ó¥Ô¥å¡¼¥¿¤Ç¤Ï¡¢BIOS ¤È¤¤¤¦¸ÀÍÕ¤ÎÊý¤¬ÉáÄ̤Ǥ¹¡£
+Apple Macintosh ¤ä Sun ¤Î¥³¥ó¥Ô¥å¡¼¥¿¤Ç¤Ï¡¢¡Ö¥Õ¥¡¡¼¥à¥¦¥§¥¢¡×¤È¤¤¤¦¸ÀÍÕ¤ÎÊý
+¤¬ÉáÄ̤Ǥ¹¡£
+	BIOS ¤ä¥Õ¥¡¡¼¥à¥¦¥§¥¢¤Î¥×¥í¥°¥é¥à¤Ï¥³¥ó¥Ô¥å¡¼¥¿ÆâÉô¤Î ROM ¥Á¥Ã¥×¤Ë
+ÁȤ߹þ¤Þ¤ì¤Æ¤ª¤ê¡¢¥á¥â¥ê¤Î¸¡ºº¤Ê¤É¤ò¹Ô¤¤¤Þ¤¹¡£¤³¤Î¥×¥í¥°¥é¥à¤Ï (ÍưפˤÏ)
+Êѹ¹¤Ç¤­¤Þ¤»¤ó¡£º£Æü¤Î BIOS ¤Ï°ìÈÌŪ¤Ë 20 ǯÁ°¤Ë»È¤ï¤ì¤¿ BIOS ¤È¸ß´¹¤Ê¤Î¤Ç¡¢
+¤³¤ì¤é¤Î¥×¥í¥°¥é¥à¤Ï¸Å¤á¤«¤·¤¤À߷פǤ¢¤ë·¹¸þ¤¬¤¢¤ê¤Þ¤¹¡£²¿Ç¯¤Ë¤âÅϤäơ¢
+ȿľ´ÑŪ¤ÊÊýË¡¤Çµ¡Ç½¤¬Äɲ䵤ì¤Æ¤­¤Æ¤ª¤ê¡¢º£Æü¤Ç¤Ï¿¤¯¤Îº®Íð¤ò¤â¤¿¤é¤¹¡¢
+¤¢¤Þ¤ê¤ËÈÑ»¨¤Ê¥·¥¹¥Æ¥à¤ËƳ¤¤¤Æ¤·¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡£
+
+3.1	PC BIOS
+------------------------------------------------------------------------------
+¿ô¼ï¤ÎÉáµÚ¤·¤¿ PC BIOS ¤¬¤¢¤ê¤Þ¤¹: AmiBIOS¡¢Award¡¢Phoenix ¤ä¾¤Î¤â¤Î¤Ç¤¹¡£
+¤½¤ì¤é¤ÏÁ´¤Æ»÷¤¿¤è¤¦¤Ê¤ä¤êÊý¤ÇÆ°ºî¤·¤Þ¤¹¡£¤³¤ì¤é¤Î BIOS ¤Ï¤É¤ì¤â¥Ñ¡¼¥Æ¥£
+¥·¥ç¥ó¡¦¥Æ¡¼¥Ö¥ë¤òÍý²ò¤·¤¿¤ê¡¢ÃΤäƤ¤¤¿¤ê¤Ï¤·¤Þ¤»¤ó¡£¤½¤ì¤é¤Ï´ÖÀÜŪ¤Ë¥Ñ¡¼
+¥Æ¥£¥·¥ç¥Ë¥ó¥°¤Ë±Æ¶Á¤·¤Þ¤¹¡£
+	¤¢¤Ê¤¿¤Î¥³¥ó¥Ô¥å¡¼¥¿¤¬µ¯Æ°¤¹¤ë¤È¤­:
+(1) ¤³¤ì¤é¤Î BIOS ¤Ï¥Ï¡¼¥É¡¦¥Ç¥£¥¹¥¯¾å¤Î MBR (¥Þ¥¹¥¿¡¼¡¦¥Ö¡¼¥È¡¦¥ì¥³¡¼¥É)
+¤Ë¼ý¤á¤é¤ì¤¿¡¢¥Ö¡¼¥È¡¦¥í¡¼¥À¡¦¥×¥í¥°¥é¥à¤ÎºÇ½é¤Î¤ï¤º¤«¤ÊÉôʬ¤ò¥í¡¼¥É¤·¤Þ¤¹¡£
+(2) BIOS ¤Ï¤½¤Î¥Ö¡¼¥È¡¦¥í¡¼¥À¤ÎºÇ½é¤Î¤ï¤º¤«¤ÊÉôʬ¤ò¼Â¹Ô¤·¤Þ¤¹¡£
+(3) ¤½¤Î¥Ö¡¼¥È¡¦¥í¡¼¥À¡¦¥×¥í¥°¥é¥à¤Ï¤½¤ì¼«¿È¤Î»Ä¤ê¤ò¥í¡¼¥É¤¹¤ë¤Î¤Ë¡¢BIOS ¤ò
+»ÈÍѤ·¤Þ¤¹¡£
+(4) ¤½¤Î¥Ö¡¼¥È¡¦¥í¡¼¥À¤Ï¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à (¤¢¤ë¤¤¤Ï¡¢Â¾¤Î¥Ö¡¼¥È¡¦
+¥í¡¼¥À¡¢¤½¤Î¾ì¹ç¤Ï¥¹¥Æ¥Ã¥× 2 ¤ËºÆ¤ÓÌá¤ê¤Þ¤¹) ¤ò¥í¡¼¥É¤¹¤ë¤Î¤Ë¡¢BIOS ¤ò»ÈÍÑ
+¤·¤Þ¤¹¡£
+(5) ¤½¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤ÏÄ̾ï¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ø¤Î¥¢¥¯¥»¥¹¤ò
+¹Ô¤¦¤Î¤Ë¡¢BIOS ¤ò»ÈÍѤ·¤¿¤ê¡¢¤·¤Ê¤«¤Ã¤¿¤ê¤·¤Þ¤¹¡£ (Windows ¤ÏÉáÄ̹Ԥ¤¡¢Linux
+¤ä BSD ¤Ï¤·¤Þ¤»¤ó)
+
+	¥¹¥Æ¥Ã¥× (3) ¤«¤é (5) ¤Ï¡¢¥Ç¥£¥¹¥¯¤ËÏä·¤«¤±¤ë¤è¤¦¤ËÍ׵᤹¤ë¤Î¤Ë¡¢
+BIOS ¤ÈÄÌ¿®¤¹¤ë¥×¥í¥°¥é¥à¤ò´Þ¤ß¤Þ¤¹¡£BIOS ¤ËÏä·¤«¤±¤ë¤Î¤ËÆó¤Ä¤Î¤ä¤êÊý¤¬
+¤¢¤ê¤Þ¤¹: CHS (¥·¥ê¥ó¥À¡¢¥Ø¥Ã¥É¡¢¤½¤·¤Æ¡¢¥»¥¯¥¿) ¤ò»È¤Ã¤Æ¡¢¤¢¤ë¤¤¤Ï¡¢LBA
+(¥ê¥Ë¥¢¡¦¥Ö¥í¥Ã¥¯¡¦¥¢¥É¥ì¥Ã¥·¥ó¥°) ¤ò»È¤Ã¤Æ¡£¸Å¤á¤Î BIOS ¤Ï CHS ¤À¤±¤ò¥µ
+¥Ý¡¼¥È¤·¤Þ¤¹¡£CHS ¥µ¥Ý¡¼¥È¤Ï¾­Íè¾Ã¤¨µî¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢¿·¤·¤¤ BIOS ¤Ï
+ÉáÄÌ LBA ¤È CHS ¤ÎξÊý¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ (CHS ¤Ï³µ¤·¤Æ¤ª¤¾¤Þ¤·¤¤°äʪ¤Ç
+¤¢¤ë¤È¹Í¤¨¤é¤ì¤Æ¤¤¤Þ¤¹) (ÌõÃí: ¾Ã¤¨µî¤ë¤³¤È¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¡¢PC ¤¬¤¢¤ë¸Â¤ê)
+	¥Ö¡¼¥È¡¦¥í¡¼¥À¤Ë¤è¤Ã¤Æ¹Ô¤ï¤ì¤ë¡¢¥¹¥Æ¥Ã¥× (3) ¤È (4) ¤Ï¾ï¤ËƱ¤¸¥¢¥¯
+¥»¥¹¼êË¡¤ò»È¤¦¤Ç¤·¤ç¤¦ - ¾ï¤Ë LBA ¤«¡¢¾ï¤Ë CHS ¤Ç¡£Windows ¤Î¥Ö¡¼¥È¡¦¥í¡¼¥À
+¤Î¾ì¹ç¡¢¤³¤ì¤Ï Windows ¤Î¥Ö¡¼¥È¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¾å¤Î LBA ¥Õ¥é¥°¤Ë¤è¤Ã¤Æ·èÄê
+¤µ¤ì¤Þ¤¹¡£(¥Õ¥é¥°¤Ë´Ø¤¹¤ë¾ðÊó¤Ï¡¢2.4.14 ¤ò»²¾È)¡£ Linux ¤Î¾ì¹ç¡¢¤ª¤½¤é¤¯
+LILO ¤« GRUB ¤ò¥Ö¡¼¥È¡¦¥í¡¼¥À¤È¤·¤Æ»ÈÍѤ·¤Æ¤¤¤ë¤Ç¤·¤ç¤¦¡£ GRUB ¤ÏÍøÍѲÄǽ¤Ê
+¤é¡¢LBA ¤ò»È¤¤¡¢¤µ¤â¤Ê¤±¤ì¤Ð CHS ¤ò»È¤¤¤Þ¤¹¡£ LILO ¤Ï¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤È¤­¡¢
+ÁªÂò¤¹¤ë¤³¤È¤òÍ׵ᤷ¤Þ¤¹ (linear¡¢¤¢¤ë¤¤¤Ï lba32 ¥ª¥×¥·¥ç¥ó¤Ç)¡£
+	¥¹¥Æ¥Ã¥× (5) - ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤ÆÆþ½ÐÎϤ¬¹Ô¤ï¤ì¤ë -
+Windows ¤À¤±¤¬ BIOS ¤Ë¤è¤Ã¤ÆÆþ½ÐÎϤò¹Ô¤¤¤Þ¤¹¡£ [²æ¡¹¤Ï¤Þ¤À¤½¤ÎÌäÂê¤Ë¤Ä¤¤¤Æ
+½½Ê¬¤Ë¤Ïʬ¤«¤ê¤Þ¤»¤ó¤¬¡¢Windows ¤Ï CHS ¥â¡¼¥É¤Ç¤½¤ì¼«¿È¤ÎÌäÂê¤òÊú¤¨¤Æ¤¤¤ë
+¤è¤¦¤Ë¸«¤¨¤Þ¤¹¡£¿Í¡¹¤Ï Windows ¤¬¤½¤ì¼«¿È¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ê¤É¤òÂÌÌܤË
+¤¹¤ë¾ì¹ç¤Ë¤Ä¤¤¤Æ¶µ¤¨¤Æ¤¯¤ì¤Þ¤·¤¿¡£²æ¡¹¤Ë¤Ï¡¢²¿¤¬µ¯¤­¤Æ¤¤¤ë¤Î¤«¤òÃΤë¤Î¤¬ËÜÅö
+¤Ëº¤Æñ¤Ç¤¹¡£¤Ç¤­¤ë¤³¤È¤Ê¤é¡¢LBA ¤ò»È¤¦¤³¤È¤ò¶¯¤¯´«¤á¤Þ¤¹!]
+	¤À¤«¤é¡¢»°¤Ä¤Î¾õ¶·¤¬¤¢¤ê¤¨¡¢¤½¤ì¤é¤ÏÁ´¤Æ¤³¤³¤Ç¥«¥Ð¡¼¤µ¤ì¤Æ¤¤¤Þ¤¹:
+(1) CHS ¥â¡¼¥É¤ò»È¤Ã¤Æ¤¤¤Æ¡¢¤¢¤Ê¤¿¤Î BIOS ¤Ï CHS ¥â¡¼¥É¤À¤±¤ò¥µ¥Ý¡¼¥È¤·¤Æ
+¤¤¤Þ¤¹¡£
+(2) CHS ¥â¡¼¥É¤ò»È¤Ã¤Æ¤¤¤Æ¡¢¤¢¤Ê¤¿¤Î BIOS ¤Ï CHS ¤È LBA ¤ÎξÊý¤ò¥µ¥Ý¡¼¥È¤·
+¤Æ¤¤¤Þ¤¹¡£¤À¤«¤é¡¢CHS ¥â¡¼¥É¤«¤é LBA ¥â¡¼¥É¤Ø¡¢²Äǽ¤Ê¸Â¤êÁ᤯¡¢ÊÑ´¹¤·¤¿¤¤
+¤Ç¤¹¡£
+(3) LBA ¥â¡¼¥É¤ò¤¹¤Ç¤Ë»È¤Ã¤Æ¤¤¤Þ¤¹¡£
+
+3.1.1	CHS ¥â¡¼¥É¤Ç¤Î Parted ¤Î»ÈÍÑ
+----------------------------------
+Linux ¤ÏÄ̾ï BIOS ¤Î¥¸¥ª¥á¥È¥ê¤ò¼«Æ°Åª¤Ë¸¡½Ð¤·¤Þ¤¹¡£¤·¤«¤·¡¢¤È¤­¤É¤­´Ö°ã¤¤¤ò
+ÈȤ·¤Þ¤¹¡£¤³¤Î¾ì¹ç¡¢Linux ¤Ø¥Ñ¥é¥á¡¼¥¿¤òÅϤ¹¤³¤È¤Ë¤è¤Ã¤Æ¡¢¼«Ê¬¤Ç¶µ¤¨¤Æ¤¢¤²¤ë
+¤Ù¤­¤Ç¤¹¡£Î㤨¤Ð¡¢Linux ¤¬¥Ï¡¼¥É¡¦¥É¥é¥¤¥Ö /dev/hda ¤Ï¥¸¥ª¥á¥È¥ê 256/64/63
+¤ò»ý¤Ä¤È¹Í¤¨¡¢BIOS ¤ÎÀßÄê¥×¥í¥°¥é¥à¤Ï¤½¤Î¥¸¥ª¥á¥È¥ê¤Ï 512/32/63 ¤À¤È½ñ¤¤¤Æ¤¤
+¤ë¤Ê¤é¡¢¤³¤Î¥Ñ¥é¥á¡¼¥¿¤ò Linux ¤ËÅϤ¹¤ÈÎɤ¤¤Ç¤·¤ç¤¦:
+
+	hda=512,32,63
+
+¥Ñ¥é¥á¡¼¥¿¤Ï¡¢¤É¤ó¤Ê¥Ö¡¼¥È¡¦¥í¡¼¥À¤ò»È¤Ã¤Æ¤¤¤ë¤«¤Ë°Í¤ê¡¢°Û¤Ã¤¿ÊýË¡¤ÇÅϤµ¤ì
+¤Þ¤¹¡£¤ª¤½¤é¤¯ LILO ¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤Î¾ì¹ç¡¢¼¡¤Î¹Ô¤ò /etc/lilo.conf ¤ËÄɲÃ
+¤·¤Þ¤¹: (¤½¤·¤Æ¡¢¤½¤ÎÊѹ¹¤¬È¿±Ç¤µ¤ì¤ë¤è¤¦¤Ë¡¢/sbin/lilo ¤ò¼Â¹Ô¤·¡¢ºÆµ¯Æ°¤¹¤ë
+ɬÍפ¬¤¢¤ê¤Þ¤¹)
+
+	append="hda=512,32,63"
+
+Parted ¤ÏÉáÄÌ Linux ¤¬´Ö°ã¤Ã¤¿¥¸¥ª¥á¥È¥ê¤ò¸¡½Ð¤·¤¿¤«¤É¤¦¤«¤ò¸¡½Ð¤Ç¤­¤Þ¤¹¡£
+¤·¤«¤·¡¢¥Ç¥£¥¹¥¯¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬¤Ê¤¤¤È¡¢¤³¤ì¤Ï¤Ç¤­¤Þ¤»¤ó¡£¤³¤Î¾ì¹ç¡¢¼«Ê¬¤Ç
+¸¡ºº¤¹¤ë¤Ù¤­¤Ç¤¹¡£¤³¤ì¤ò¹Ô¤¦¤Î¤ÏÈó¾ï¤Ë½ÅÍפǤ¹¡£
+	¤È¤­¤É¤­¡¢Parted ¤Ï¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬¥·¥ê¥ó¥À¶­³¦¤Ë·¤Ã¤Æ¤¤¤Ê¤¤¤Èʸ¶ç
+¤ò¸À¤¦¤Ç¤·¤ç¤¦¡£Parted ¤Ï̵»ë¤¹¤ë¤¿¤á¤Î¥ª¥×¥·¥ç¥ó¤òÄ󶡤¹¤ë¤Ç¤·¤ç¤¦¡£¤â¤·
+̵»ë¤¹¤ë¤Ê¤é¡¢Parted ¤Ï¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡¦¥Æ¡¼¥Ö¥ë¤Ë¤¤¤¯¤Ä¤«¤Î·ÝÅö¤ò¹Ô¤¦¤Ç¤·¤ç¤¦¡£
+Linux ¤Ë¤Ï²¿¤ÎÌäÂê¤â¤Ê¤¤¤Ç¤·¤ç¤¦¡£DOS ¤ä Windows ¤Ï¡¢¤â¤· LBA ¥â¡¼¥É¤ò»È¤Ã¤Æ
+¤¤¤ë¤Ê¤é¡¢ÌäÂê¤Ê¤¤¤Ç¤·¤ç¤¦¡£¤â¤· DOS/Windows ¤¬ CHS ¥â¡¼¥É¤ò»È¤Ã¤Æ¤¤¤ë¤Ê¤é¡¢
+¤½¤Î¥Ö¡¼¥È¡¦¥í¡¼¥À¤òºÆ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ì¤Ð (¥»¥¯¥·¥ç¥ó 4.3 ¤ò»²¾È)¡¢¤É¤ó¤ÊÌäÂê
+¤â²ò·è¤¹¤ë¤Ï¤º¤Ç¤¹ - ¤Ç¤â¡¢LBA ¥â¡¼¥É¤Ø¤ÎÀڤ괹¤¨¤¬Ë¾¤Þ¤·¤¤¤Ç¤¹ (°Ê²¼¤Î¡¢
+3.1.2 ¤ò»²¾È)¡£
+	¥Ö¡¼¥È²áÄø¤Ë´Ø·¸¤¹¤ë¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï¡¢¤â¤· CHS ¥â¡¼¥É¤¬»È¤ï¤ì¤Æ¤¤¤ë
+¤Ê¤é¡¢¥·¥ê¥ó¥À 1024 ¤è¤êÁ°¤Ç½ª¤ï¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤¢¤ë¥Ñ¡¼¥Æ¥£¥·¥ç¥ó
+¤¬¥Ö¡¼¥È²áÄø¤Ë´Ø·¸¤·¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò·èÄꤹ¤ë¤Î¤Ë¡¢¥Ö¡¼¥È¡¦¥í¡¼¥À¤Ë´Ø¤¹¤ë¥»¥¯
+¥·¥ç¥ó¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£Åµ·¿Åª¤ÊÀßÄê¤Ï¡¢¾®¤µ¤Ê Linux ¤Î /boot ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡¢
+Windows ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡¢¤½¤·¤Æ¡¢Linux ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò»ý¤Ã¤Æ¤¤¤ë¤â¤Î¤Ç¤¹¡£
+
+3.1.2	CHS ¤«¤é LBA ¤Ø¤ÎÊÑ´¹
+----------------------------------
+Windows ¤Î¥Ö¡¼¥È¡¦¥í¡¼¥À¡¢µÚ¤Ó¡¢¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤Ë LBA ¥â¡¼¥É¤ò
+»È¤ï¤»¤ë¤Ë¤Ï¡¢Á´¤Æ¤Î FAT ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¾å¤Î LBA ¥Õ¥é¥°¤òΩ¤Æ¤ë¤À¤±¤Ç¤¹
+(¥»¥¯¥·¥ç¥ó 2.4.14 ¤ò»²¾È)¡£²¿¤âÌäÂê¤Ê¤¤¤Ï¤º¤Ç¤¹¡£¤â¤· Windows ¤òµ¯Æ°¤¹¤ë
+¤Î¤ËÌäÂ꤬¤¢¤ì¤Ð¡¢Windows ¤Î¥Ö¡¼¥È¡¦¥í¡¼¥À¤òºÆ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ
+ľ¤»¤Þ¤¹ (¥»¥¯¥·¥ç¥ó 4.3 ¤ò»²¾È)¡£
+	Linux ¤ÏÆþ½ÐÎÏ¤Ë BIOS ¤ò»È¤¤¤Þ¤»¤ó¡£¤·¤«¤·¡¢¥Ö¡¼¥È¡¦¥í¡¼¥À (LILO ¤ä
+GRUB) ¤Ï¤¹¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£¤â¤·²Äǽ¤Ê¤é¡¢GRUB ¤Ï¼«Æ°Åª¤Ë LBA ¤ò»È¤¤¤Þ¤¹¡£
+LILO ¤Ï¡Ölinear¡×¤ä¡Ölba32¡×¥ª¥×¥·¥ç¥ó¤òɬÍפȤ·¤Þ¤¹¡£¤À¤«¤é¡¢¤â¤· LILO ¤¬
+/etc/lilo.conf ¤òÊѹ¹¤·¡¢/sbin/lilo ¤ÇºÆ¥¤¥ó¥¹¥È¡¼¥ë (¥»¥¯¥·¥ç¥ó 4.1 ¤ò»²¾È)
+¤·¤¿¸å¤Ç¤âµ¯Æ°¤¹¤ë¤Ê¤é¡¢Á´Éô½ª¤ï¤Ã¤Æ¤Þ¤¹! (¤â¤·ÌäÂ꤬¤¢¤ì¤Ð¡¢¡Ölinear¡×¤ä
+¡Ölba32¡×¤òºï½ü¤·¡¢¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤«¤é LILO ¤òºÆ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢
+CHS ¤ËÌᤷ¤Æ¤¯¤À¤µ¤¤)
+
+º£¤ä LBA ¤ò»È¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢Æɤ߿ʤó¤Ç¤¯¤À¤µ¤¤...
+
+3.1.3	LBA ¥â¡¼¥É
+----------------
+LBA ¤Ï CHS ¤ÎÌäÂê¤ÎÁ´¤Æ¤ò²ò·è¤·¤Þ¤¹¡£¤·¤«¤·¡¢Linux ¤ä Parted ¤¬ LBA ¤ò»È¤Ã
+¤Æ¤¤¤ë¤³¤È¤ò¸«Ê¬¤±¤ë¡¢¿®Íê¤Ç¤­¤ëÊýË¡¤Ï¤Ê¤¤¤Î¤Ç¡¢Parted ¤Ï·¤Ã¤Æ¤¤¤Ê¤¤¥·¥ê¥ó¥À
+¤ä¡¢Ì·½â¤·¤¿ BIOS ¥¸¥ª¥á¥È¥ê¤Ë¤Ä¤¤¤Æ·Ù¹ð¤òÍ¿¤¨¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£¤â¤· LBA
+¥â¡¼¥É¤ò»È¤Ã¤Æ¤¤¤ë¤Ê¤é¡¢¤³¤ì¤é¤Î¥á¥Ã¥»¡¼¥¸¤Ï̵»ë¤·¤Æ¤«¤Þ¤¤¤Þ¤»¤ó¡£ (Parted
+¤Î¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Ç¤ÏÌäÂ꤬¤¢¤ê¤Þ¤·¤¿¤¬¡¢¤½¤ì¤é¤ÏÁ´¤Æ²ò·èºÑ¤ß¤Ç¤¹)
+
+¤â¤·¥Ç¥£¥¹¥¯¤¬ LBA ¥â¡¼¥É¤Ç¤¢¤ë¤Ê¤é¡¢Parted (¤ä¾¤Î¤Û¤È¤ó¤É¤Î¥×¥í¥°¥é¥à) ¤Ï
+CHS ¥¸¥ª¥á¥È¥ê¤Ï X/255/63 ¤Ç¤¢¤ë¤Èɽ¸½¤¹¤ë¤Ç¤·¤ç¤¦ - CHS ¤«¤é LBA ¤ËÀڤ괹¤¨
+¤¿¤Î¤Ç¤Ê¤±¤ì¤Ð¡£
+
+3.2	Macintosh OpenFirmware
+------------------------------------------------------------------------------
+PowerMac ¤Î OpenFirmware ¤Ë¤ÏÆó¤Ä¤Î¼çÍפʥС¼¥¸¥ç¥ó¤¬¤¢¤ê¤Þ¤¹ - ¡Ö¸Å¤¤À¤³¦¡×
+(old world) ¤Ç»È¤ï¤ì¤Æ¤¤¤ë¤â¤Î¤È¡¢¡Ö¿·¤·¤¤À¤³¦¡× (new world) ¤Î PowerMac ¤Ç
+¤Î¤â¤Î¤Ç¤¹¡£¤½¤ì¤é¤Ë¤Ï½ÅÂç¤Ê°ã¤¤¤¬¤¢¤ê¤Þ¤¹¡£¤·¤«¤·¡¢Î¾Êý¤È¤â¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡¦
+¥Æ¡¼¥Ö¥ë¤òÍý²ò¤·¤Þ¤¹¡£
+	ξÊý¤È¤â¡¢¥æ¡¼¥¶¤¬¸·Ì©¤Ë°ì¤Ä¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò¥Ö¡¼¥È¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó
+(¥Ö¡¼¥È¡¦¥í¡¼¥À¤Î¤¢¤ë¥Ñ¡¼¥Æ¥£¥·¥ç¥ó) ¤ËÁª¤Ö¤³¤È¤òÍ׵ᤷ¤Þ¤¹¡£¤·¤«¤·¡¢¤³¤ì¤ò
+¹Ô¤¦¤Î¤Ë¡¢¤½¤ì¤é¤Ï°ã¤Ã¤¿»ÅÁȤߤòÍѤ¤¤Þ¤¹¡£
+
+3.2.1	¸Å¤¤À¤³¦¤Î OpenFirmware
+------------------------------
+µ¯Æ°¤¹¤ë¤è¤¦¤ËÁª¤Ð¤ì¤¿¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï¡¢Quik ¤Î¤è¤¦¤Ê¡¢¤µ¤Þ¤¶¤Þ¤Ê¥Ö¡¼¥È¡¦
+¥í¡¼¥À¤Ë¤è¤Ã¤ÆÀßÄꤵ¤ì¤Þ¤¹¡£¤À¤«¤é¡¢¤¢¤Ê¤¿¤Ï²¿¤â¤·¤Ê¤¯¤ÆÎɤ¤¤Ï¤º¤Ç¤¹¡£²æ¡¹¤Ï
+¤³¤ì¤ËÂФ¹¤ë¥µ¥Ý¡¼¥È¤ò Parted ¤ËÄɲ乤ë¤Ç¤·¤ç¤¦¡¢¤â¤·Ã¯¤«½½Ê¬¤ËÁû¤¬¤·¤¯¶«¤ó
+¤À¤é...
+
+3.2.2	¿·¤·¤¤À¤³¦¤Î OpenFirmware
+------------------------------
+¿·¤·¤¤À¤³¦¤Î OpenFirmware ¤Ï¥Ö¡¼¥È¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬ HFS ¤Ç¤¢¤ê¡¢¥Ö¡¼¥È¡¦
+¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤È¤·¤Æ°õ¤¬ÉÕ¤±¤é¤ì¤Æ¤¤¤ë¤³¤È¤òɬÍפȤ·¤Þ¤¹¡£¥Ö¡¼¥È¡¦¥Ñ¡¼¥Æ¥£
+¥·¥ç¥ó¤È¤·¤Æ°õ¤òÉÕ¤±¤ë¤Î¤Ë¡¢°Û¤Ê¤ë»ÅÁȤߤò»È¤¤¤Þ¤¹¡£¤³¤ì¤Ï Parted ¤Î¡Öboot¡×
+¥Õ¥é¥°¤Ç´ÉÍý¤·¤Þ¤¹¡£Î㤨¤Ð:
+
+	(parted) set 2 boot on
+
+
+3.3	PC98 BIOS
+------------------------------------------------------------------------------
+PC98 BIOS ¤Ï¤¤¤¯¤Ä¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¤Ç¤â¡¢µ¯Æ°²Äǽ¤À¤È°õ¤òÉÕ¤±¤é¤ì¤ë¤è¤¦¤Ë
+¤·¤Æ¤¤¤Þ¤¹¡£Parted ¤Î¡Öboot¡×¥Õ¥é¥°¤Ç¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òµ¯Æ°²Äǽ¤À¤È°õ¤òÉÕ¤±
+¤¿¤ê¡¢³°¤·¤¿¤ê¤Ç¤­¤Þ¤¹¡£Î㤨¤Ð:
+
+	(parted) set 2 boot off
+
+
+------------------------------------------------------------------------------
+4	¥Ö¡¼¥È¡¦¥í¡¼¥À
+------------------------------------------------------------------------------
+¥Ö¡¼¥È¡¦¥í¡¼¥À¤Ï¡¢»È¤¤¤¿¤¤¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤òÁª¤ó¤À¤ê¡¢¤½¤Î¥ª¥Ú
+¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤ò¥í¡¼¥É¤¹¤ë¤³¤È¤ò²Äǽ¤Ë¤¹¤ë¥×¥í¥°¥é¥à¤Ç¤¹¡£Æäˡ¢
+¤â¤·Ê£¿ô¤Î¼ïÎà¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¤¤ë¤Ê¤é¡¢Ê£¿ô
+¤Î¥Ö¡¼¥È¡¦¥í¡¼¥À¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£¥Ö¡¼¥È¡¦¥í¡¼¥À¤Ë¤È¤Ã¤Æ¡¢
+¾¤Î¥Ö¡¼¥È¡¦¥í¡¼¥À¤ò¥í¡¼¥É¤Ç¤­¤ë¤Î¤ÏÅö¤¿¤êÁ°¤Î¤³¤È¤Ç¤¹¡£
+
+¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎÂ礭¤µ¤òÊѹ¹¤¹¤ë¤È¤­¡¢Â¿Î̤Υǡ¼¥¿¤¬°ÜÆ°¤µ¤»¤é¤ì¤Þ¤¹¡£Â¿¤¯¤Î
+¥Ö¡¼¥È¡¦¥í¡¼¥À¤Ï¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤òÍý²ò¤·¤Þ¤»¤ó¡£¤½¤ì¤é¤Ïñ¤ËɬÍפȤµ¤ì¤ë
+¥Ö¡¼¥È¡¦¥í¡¼¥À¤Î¾ðÊ󤬥ǥ£¥¹¥¯¾å¤Î¤É¤³¤Ë¤¢¤ë¤«¤òµ­²±¤·¤Æ¤¤¤ë¤À¤±¤Ç¤¹¡£¤â¤·
+¤³¤Î¾ðÊó¤¬Æ°¤«¤µ¤ì¤¿¤é¡¢¤½¤ì¤¬¤É¤³¤Ë°ÜÆ°¤µ¤»¤é¤ì¤¿¤«¶µ¤¨¤Æ¤¢¤²¤Ê¤±¤ì¤Ð¤Ê¤ê
+¤Þ¤»¤ó¡£¤³¤ì¤Ï¤½¤Î¥Ö¡¼¥È¡¦¥í¡¼¥À¤òºÆ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¹Ô¤ï¤ì¤Þ¤¹
+(¤Ä¤Þ¤ê¡¢¤½¤Î¥Ö¡¼¥È¡¦¥í¡¼¥À¤Î¥¤¥ó¥¹¥È¡¼¥é¡¦¥×¥í¥°¥é¥à¤òºÆ¤ÓÁö¤é¤»¤ë¡¢¤½¤ì¤Ï
+Ä̾亮¥§¥ë¤Çñ°ì¤Î¥³¥Þ¥ó¥É¤òȯ¹Ô¤¹¤ë¤³¤È¤òɬÍפȤ·¤Þ¤¹)¡£¤¢¤é¤æ¤ë¥Ö¡¼¥È¡¦
+¥í¡¼¥À¤¬¤³¤Î¤³¤È¤òɬÍפȤ¹¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
+
+4.1	LILO (Linux Loader)
+---------------------------
+LILO ¤Ï x86 ÍѤÎͭ̾¤Ê¥Ö¡¼¥È¡¦¥í¡¼¥À¤Ç¤¹¡£LILO ¤Î¥Ö¡¼¥È¡¦¥í¡¼¥À¤ÏÄ̾ï°Ê²¼¤Ç
+¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹:
+
+	# /sbin/lilo
+
+¤â¤·¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤ò»È¤Ã¤Æ¤¤¤ë¤Ê¤é¡¢Âå¤ï¤ê¤Ë¼¡¤ò¹Ô¤¦¤Ù¤­¤Ç¤¹: (¤³¤³¤Ç¡¢
+/dev/hda1 ¤Ï¤¢¤Ê¤¿¤Î¥ë¡¼¥È¡¦¥Ç¥Ð¥¤¥¹¤ÈÃÖ¤­´¹¤¨¤ë¤Ù¤­¤Ç¤¹)
+
+	# mount /dev/hda1 /mnt
+	# chroot /mnt /sbin/lilo
+	# umount /dev/hda1
+
+LILO ¤Î (¤½¤ì¤Û¤É¤Ç¤Ï¤Ê¤¤¤¬) ¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Ï LBA ¥â¡¼¥É¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ
+¤»¤ó (¥»¥¯¥·¥ç¥ó 3.1 ¤ò»²¾È)¡£LBA ¥â¡¼¥É¤Ï /etc/lilo.conf ¤Ç¡¢lba32 ¤ä
+linear ¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤ÆÍ­¸ú²½¤µ¤ì¤Þ¤¹ (¤â¤Ã¤È¾ðÊó¤òÆÀ¤ë¤Î¤Ë¡¢LILO ¤Î²òÀâ
+¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤)¡£
+	¤â¤· LBA ¥â¡¼¥É¤ò»È¤¦¤Ê¤é¡¢¤¢¤Ê¤¿¤Î BIOS ¤¬ LBA ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë
+¸Â¤ê¡¢²¿¤âÌäÂê¤Ê¤¤¤Ï¤º¤Ç¤¹¡£
+	¤â¤· CHS ¥â¡¼¥É¤ò»È¤¦¤Ê¤é¡¢/boot ¥Ç¥£¥ì¥¯¥È¥ê¤ò»ý¤Ä¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï
+¥·¥ê¥ó¥À 1024 Æâ¤Ë¼ý¤Þ¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤À¤«¤é¡¢¤â¤·Â礭¤Ê¥Ç¥£¥¹¥¯
+(¸À¤Ã¤Æ¤ß¤ì¤Ð¡¢8 ¥®¥¬Ä¶) ¤ò»ý¤Ã¤Æ¤¤¤ë¤Ê¤é¡¢¥Ç¥£¥¹¥¯¤Î½é¤áÊÕ¤ê¤Ë¡¢/boot ¥Ñ¡¼
+¥Æ¥£¥·¥ç¥ó¤ò»ý¤Ã¤Æ¤¤¤ë¤Ù¤­¤Ç¤¹¡£
+
+4.2	GNU GRUB (GRand Unified Bootloader)
+-------------------------------------------
+GRUB ¤Ï x86 ÍѤΡ¢Èæ³ÓŪ¿·¤·¤¤¥Ö¡¼¥È¡¦¥í¡¼¥À¤Ç¤¹¡£¤É¤¦¤ä¤Ã¤Æ GRUB ¤¬¥¤¥ó¥¹
+¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¤«¤Ë¤è¤Ã¤Æ¡¢¤½¤ì¤Ï¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤òÍý²ò¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤
+¤·¡¢Ã±¤Ëµ¯Æ°¥Õ¥¡¥¤¥ë¤¬¼ý¤á¤é¤ì¤Æ¤¤¤ë¤«¤ò³Ð¤¨¤Æ¤¤¤ë¤À¤±¤«¤â¤·¤ì¤Þ¤»¤ó¡£
+¡ÖStage 1.5¡×¤ò»È¤Ã¤Æ¤¤¤ë¤Ê¤é¡¢¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤òÍý²ò¤·¤Þ¤¹¡£¤â¤· Stage 1.5
+¤ò»È¤Ã¤Æ¤¤¤Ê¤¤¤«¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥óÈֹ椬ÊѤï¤Ã¤¿¤é¡¢Stage 2 ¤òºÆ¥¤¥ó¥¹¥È¡¼¥ë
+¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹ (GRUB ¤Î²òÀâ¤òÆɤó¤Ç¤¯¤À¤µ¤¤)¡£¤½¤¦¤Ç¤Ê¤¤¤Ê¤é¡¢²¿¤â¤·¤Ê
+¤¯¤Æ¹½¤¤¤Þ¤»¤ó¡£
+	GRUB ¤Ï LBA ¤¬ÍøÍѲÄǽ¤«¡¢¼«Æ°Åª¤Ë¸¡½Ð¤·¡¢¤â¤·ÍøÍѲÄǽ¤Ê¤é¡¢¤½¤ì¤ò
+»È¤¦¤Ç¤·¤ç¤¦ (LILO ¤Î¡Ölba32¡×¥ª¥×¥·¥ç¥ó¤ÈƱÅù)¡£
+
+4.3	MS DOS¡¢MS Windows 9x¡¢MS Windows ME
+--------------------------------------------
+DOS ¤È Windows ¤Ï¡¢¤â¤·¥Ö¡¼¥È¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î FAT ¤Î¼ïÎà (FAT16 ¤« FAT32)
+¤òÊѹ¹¤¹¤ì¤Ð¡¢¤½¤Î¥Ö¡¼¥È¡¦¥í¡¼¥À¤òºÆ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤òÍ׵ᤷ¤Þ¤¹¡£
+Parted ¤Ï¤³¤ì¤ò¹Ô¤ª¤¦¤È»î¤ß¤ëÁ°¤Ë·Ù¹ð¤¹¤ë¤Ç¤·¤ç¤¦¡£¤½¤Î¥Ö¡¼¥È¡¦¥í¡¼¥À¤òºÆ
+¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤¿¤á¤Ë¡¢¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤òºîÀ®¤¹¤ë¤«¡¢¥Ö¡¼¥È CDROM ¤ò»ÈÍÑ
+¤Ç¤­¤Þ¤¹¡£¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤ÎÊýË¡¤Ï Windows ME ¤Ç¤ÏƯ¤­¤Þ¤»¤ó¡£
+
+¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤ÎÊýË¡:  (DOS/Windows 9x)
+
+ (1) Windows ¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤ÎºîÀ®
+	* Windows ¤òµ¯Æ°¤·¤Þ¤¹¡£¡Ø¤³¤Î¤³¤È¤Ï Parted ¤ò»È¤¦Á°¤Ë¡¢¥Ö¡¼¥È¡¦
+¥Ç¥£¥¹¥¯¤òºî¤ë¤Ù¤­¤Ç¤¢¤ë¤È°ÕÌ£¤·¤Æ¤¤¤Þ¤¹¡£¡Ù
+	* Windows ¥¨¥¯¥¹¥×¥í¡¼¥é¤Î¥Õ¥í¥Ã¥Ô¥£¡¦¥É¥é¥¤¥Ö¤Ç±¦¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£
+	* ¡Ö¥Õ¥©¡¼¥Þ¥Ã¥È¡×¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£
+	* ¡Ö¥·¥¹¥Æ¥à¡¦¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼¤¹¤ë¡×¤Ë°õ¤òÉÕ¤±¤Þ¤¹¡£
+	* ¡Ö¥Õ¥©¡¼¥Þ¥Ã¥È¡×¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£
+	* C:\WINDOWS\COMMAND\SYS.COM ¤ò A:\ ¤Ë¥³¥Ô¡¼¤·¤Þ¤¹¡£Ãí: C:\WINDOWS
+	¤ÏÊ̤Î̾Á°¤ÇÆɤó¤Ç¤¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡¢C:\WIN98 ¤Î¤è¤¦¤Ê¡£
+ (2) µ¯Æ°¤¹¤ë¤È¤­¤Ë¥Õ¥í¥Ã¥Ô¥£¡¦¥É¥é¥¤¥Ö¤Ë¤½¤Î¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤ò»Ä¤·¤Æ¤ª¤¤¤Æ¡¢
+Windows ¤Î¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤«¤éµ¯Æ°¤·¤Þ¤¹¡£
+ (3) DOS ¥×¥í¥ó¥×¥È¤Ç¼¡¤òÂǤÁ¤Þ¤¹:
+	A:\>sys c:
+
+ÌõÃí: Ìõ¼Ô¤Ïµ×¤·¤¯ÆüËܸìÈÇ Windows ¤ò¿¨¤Ã¤¿¤³¤È¤¬¤Ê¤¤¤Î¤Ç¡¢Ìõ¸ì¤¬Åö¤Ã¤Æ¤Ê¤¤¤«
+¤â¤·¤ì¤Þ¤»¤ó¡£°ã¤Ã¤Æ¤¿¤é¡¢¶µ¤¨¤Æ¤¯¤À¤µ¤¤¡£
+
+CDROM ¤ÎÊýË¡:  (Windows 9x/ME)
+
+ (1) Windows ¤Î CDROM ¤òÁÞ¤·¡¢¤½¤ì¤«¤éµ¯Æ°¤·¤Þ¤¹¡£(¡ÖCDROM ¥µ¥Ý¡¼¥È¤Ê¤·¤Ç
+µ¯Æ°¡×¤òÁª¤Ó¤Þ¤¹)
+ (2) ¼¡¤Î¤è¤¦¤ËÂǤÁ¤Þ¤¹:
+	A:\>c:
+	C:\>cd \windows\command		(\win98\command ¤ä»÷¤¿¤è¤¦¤Ê¤â¤Î¤«¤â)
+	C:\WINDOWS\COMMAND>sys c:
+
+
+¤Þ¤¿¡¢DOS ¤ä Windows ¤Ï¿ô¸Ä¤ÎÀ©¸Â¤ò²¡¤·ÉÕ¤±¤Þ¤¹:
+
+  * ¥Ö¡¼¥È¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï¡Öboot¡×¥Õ¥é¥°¤ÇÁªÂò¤µ¤ì¤Æ¤¤¤ë¤Ù¤­¤Ç¤¹¡£¤¿¤Ã¤¿
+°ì¤Ä¤Î¥Ö¡¼¥È¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤À¤±¤¬ÁªÂò¤µ¤ìÆÀ¤Þ¤¹ (¤È¤­¤É¤­¡Ö¥¢¥¯¥Æ¥£¥Ö¡×
+(active) ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤È¸Æ¤Ð¤ì¤Þ¤¹)¡£Î㤨¤Ð¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó 3 ¤ò¥Ö¡¼¥È¡¦
+¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ËÀßÄꤹ¤ë¤Ë¤Ï¡¢¤³¤¦¤·¤Þ¤¹:
+
+	(parted) set 3 boot on
+
+  * MS DOS ¤ä MS Windows 9x/ME ¤ÏºÇ½é¤Î FAT ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤«¤é¤·¤«µ¯Æ°¤Ç¤­
+¤Þ¤»¤ó¡£¤¹¤Ê¤ï¤Á¡¢°ìÈÖ¾®¤µ¤¤¡Ø¥Þ¥¤¥Ê¡¼¡ÙÈÖ¹æ¤ò»ý¤Ä¡¢±£¤µ¤ì¤Æ¤¤¤Ê¤¤ FAT ¥Ñ¡¼
+¥Æ¥£¥·¥ç¥ó¤Ç¤¹¡£GRUB ¤ä LILO ¤Î¤è¤¦¤Ê¥Ö¡¼¥È¡¦¥í¡¼¥À (¤½¤·¤Æ¡¢¤¤¤¯¤Ä¤«¤Î BIOS)
+¤Ï¤³¤Î¿¶¤ëÉñ¤¤¤òÊѹ¹¤Ç¤­¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤...
+
+  * ¤â¤· (LBA ¥¢¥É¥ì¥Ã¥·¥ó¥°¤Ç¤Ï¤Ê¤¯) CHS ¥¢¥É¥ì¥Ã¥·¥ó¥°¤ò»È¤Ã¤Æ¤¤¤ë¤Ê¤é¡¢
+¥Ö¡¼¥È¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î³«»ÏÅÀ¤Ï¥·¥ê¥ó¥À 1024 ¤è¤ê¤â¾®¤µ¤¯¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
+¥Ö¡¼¥È¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¾å¤Î LBA ¥Õ¥é¥°¤òÍ­¸ú¤Ë¤·¤¿¤ê¡¢Ìµ¸ú¤Ë¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢
+MS DOS ¤Ë LBA ¥¢¥É¥ì¥Ã¥·¥ó¥°¤ò»È¤¦ (¤¢¤ë¤¤¤Ï¡¢»È¤ï¤Ê¤¤) ¤è¤¦¤Ë¶µ¤¨¤ë¤³¤È¤¬
+¤Ç¤­¤Þ¤¹¡£Î㤨¤Ð¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó 2 ¾å¤Î LBA ¥Õ¥é¥°¤òÍ­¸ú¤¹¤ë¤Ë¤Ï¡¢¤³¤¦¤·¤Þ¤¹:
+
+	(parted) set 2 lba on
+
+Ãí: LBA ¥¢¥É¥ì¥Ã¥·¥ó¥°¤Ï¡¢PC-DOS ¤ÎÁ´¤Æ¥Ð¡¼¥¸¥ç¥ó¤À¤±¤Ç¤Ê¤¯¡¢MS-DOS 6.22 ¤ä
+¤½¤ì°ÊÁ°¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£
+
+·Ù¹ð: ¤¤¤¯¤Ä¤«¤Î BIOS ¤Ç¤Ï¡¢BIOS ¤Ç¤âÍ­¸ú¤Ë¤·¤Ê¤¤¤È¡¢LBA ¥¢¥É¥ì¥Ã¥·¥ó¥°¤¬
+Í­¸ú¤Ë¤Ê¤é¤Ê¤¤¤Ç¤·¤ç¤¦¡£²¿¤é¤«¤ÎÍýͳ¤Ç¡¢Windows ¤¬¤³¤Î¥Õ¥é¥°¤òÊѹ¹¤·¤¿¸å¤Ë
+µ¯Æ°¤·¤Ê¤¤¤Ê¤é¡¢¤³¤ì¤¬¤ª¤½¤é¤¯¤½¤ÎÌäÂê¤Ç¤¹¡£
+
+  * ¡ÖËÜÅö¤Î¡×MS-DOS (¤Ä¤Þ¤ê¡¢¥Ð¡¼¥¸¥ç¥ó 6.22 ¤Þ¤Ç) ¤È MS-DOS 7.0 (¤Ä¤Þ¤ê¡¢
+Windows 95/95a) ¤Ï FAT32 ¤òÃΤê¤Þ¤»¤ó¡£¤½¤Î¤¿¤á¡¢¡ØºÇ½é¤Î¡Ù FAT ¥Ñ¡¼¥Æ¥£
+¥·¥ç¥ó¤¬ FAT32 ¤Î¤È¤­¡¢¤½¤ì¤é¤ò ¡ØÆóÈÖÌܤΡ٠FAT (¤â¤Á¤í¤ó¡¢FAT16 ¤Î¤ß)
+¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤«¤éµ¯Æ°¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£Î¾Êý¤È¤â´ðËܥѡ¼¥Æ¥£¥·¥ç¥ó¤Ç¤Ê¤±
+¤ì¤Ð¤Ê¤é¤º¡¢µ¯Æ°¤·¤¿¤¤Êý¤ò¥¢¥¯¥Æ¥£¥Ö¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ËÀßÄꤹ¤ëɬÍפ¬¤¢¤ë
+¤Ç¤·¤ç¤¦¡£
+
+4.4	MS Windows NT
+--------------------------------------
+Windows NT ¤Ï FAT32 ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òÆɤó¤À¤ê¡¢µ¯Æ°¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£
+¤½¤ì¤æ¤¨¡¢¤â¤· Windows NT ¤Ç»È¤¤¤¿¤¤¤Ê¤é¡¢FAT16 ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤«¤é FAT32
+¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ËÊѹ¹¤·¤Æ¤ÏÀäÂФ¤¤±¤Þ¤»¤ó¡£
+
+4.5	MS Windows 2000
+-----------------------
+Windows 2000 ¤Ï¡¢¥·¥¹¥Æ¥à¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î FAT ¤Î¼ïÎà (FAT16 ¤« FAT32)
+¤òÊѹ¹¤·¤¿¤é¡¢¤½¤Î¥Ö¡¼¥È¡¦¥í¡¼¥À¤òºÆ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤òÍ׵ᤷ¤Þ¤¹¡£Parted
+¤Ï¤³¤ì¤ò¹Ô¤ª¤¦¤È»î¤ß¤ëÁ°¤Ë·Ù¹ð¤¹¤ë¤Ç¤·¤ç¤¦¡£¤½¤Î¥Ö¡¼¥È¡¦¥í¡¼¥À¤òºÆ¥¤¥ó¥¹¥È¡¼
+¥ë¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤·¤Þ¤¹:
+ (1) Windows 2000 ¤Î CD ¤«¤éµ¯Æ°¤·¤Þ¤¹¡£
+ (2) ¥¤¥ó¥¹¥È¡¼¥ë¤Ë¼è¤ê¤«¤«¤ê¤¿¤¤¤«¤É¤¦¤«¤ò¿Ö¤¯¤Ç¤·¤ç¤¦¡£Enter ¤òÂǤÁ¤Þ¤¹¡£
+ (3) ¤½¤·¤Æ¡¢¿·¤·¤¤¥·¥¹¥Æ¥à¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¤¤¤«¡¢Â¸ºß¤¹¤ë¥·¥¹¥Æ¥à¤ò½¤Éü¤·
+¤¿¤¤¤«¤ò¿Ò¤Í¤ë¤Ç¤·¤ç¤¦¡£¸å¼Ô¤òÁª¤Ó¤Þ¤¹ (¡ÖR¡×¤ò²¡¤·¤Æ)¡£
+ (4) ¼«Æ°½¤Éü¤ò¹Ô¤¤¤¿¤¤¤«¡¢Éüµì¥³¥ó¥½¡¼¥ë (recovery console) ¤ò»È¤¤¤¿¤¤¤«¤ò
+¿Ö¤¯¤Ç¤·¤ç¤¦¡£Éüµì¥³¥ó¥½¡¼¥ë¤ò»È¤¦¤ÈÁªÂò¤·¤Þ¤¹¡£
+ (5) ¤½¤Î¥³¥ó¥½¡¼¥ë¤Ç¡¢¤³¤¦ÂǤÁ¤Þ¤¹:
+
+	C:\>fixboot
+
+NT/2000 ¤Î¥Ö¡¼¥È¡¦¥í¡¼¥À¤Ï¤Þ¤¿°Ê²¼¤òɬÍפȤ·¤Þ¤¹:
+  * ¡Ø´ðËÜ¡Ù FAT12¡¢FAT16¡¢¤¢¤ë¤¤¤Ï¡¢NTFS ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó (Windows 2000 ¤Ç¤Ï
+FAT32 ¤â²Äǽ)¡¢¤½¤ì¤Ï¡Ö¥·¥¹¥Æ¥à¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡×¤È¸Æ¤Ð¤ì¤Þ¤¹¤¬¡¢¤½¤ÎÃæ¤Ë¡¢
+¤½¤ì¼«¿È¤Î¥Ö¡¼¥È¡¦¥»¥¯¥¿¤Î¥³¡¼¥É¤¬¤¢¤ë¤³¤È¡£¤³¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï¡Öboot¡×
+¥Õ¥é¥°¤¬ Parted ¤ÇΩ¤Æ¤é¤ì¤Æ¤¤¤ë¤Ù¤­¤Ç¤¹¡£
+  * ¥Õ¥¡¥¤¥ë NTLDR¡¢BOOT.INI ¤È NTDETECT.COM ¤¬¥·¥¹¥Æ¥à¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥óÆâ¤Ë
+¤¢¤ë¤³¤È¡£BOOT.INI ¤Ï´ðËܥѡ¼¥Æ¥£¥·¥ç¥ó¤ÎʪÍý°ÌÃÖ¤ä¡Ö¥Ö¡¼¥È¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡×
+¤È¸Æ¤Ð¤ì¤ë¡¢Windows NT ¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿ÏÀÍý¥É¥é¥¤¥Ö¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÊÝ»ý
+¤·¤Þ¤¹¡£¥Ö¡¼¥È¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤È¥·¥¹¥Æ¥à¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï°ì¤Ä¤Î´ðËܥѡ¼¥Æ¥£
+¥·¥ç¥ó¤Ë°ì½ï¤ËÀßÃÖ¤·¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£
+  * Ǥ°Õ¤Ç¡¢¥Õ¥¡¥¤¥ë NTBOOTDD.SYS ¤¬¥·¥¹¥Æ¥à¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥óÆâ¤Ë¤¢¤ë¤³¤È¡¢
+¤½¤ì¤Ï¡¢¼«¿È¤Î BIOS ¤ò»ý¤¿¤Ê¤¤ (¤¢¤ë¤¤¤Ï¡¢¤½¤Î BIOS ¤¬Â礭¤Ê¥Ç¥£¥¹¥¯¤Ë¥¢¥¯
+¥»¥¹¤Ç¤­¤Ê¤¤) ¤È¤­¤Î¡¢SCSI ¤ä IDE ¥³¥ó¥È¥í¡¼¥é¤Î̾Á°¤òÊѤ¨¤é¤ì¤¿¥Ç¥£¥¹¥¯¡¦
+¥É¥é¥¤¥Ð¤Ç¤¹¡£
+  * MS Windows NT ¤Ç¤Ï¡¢¥·¥¹¥Æ¥à¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï¥·¥ê¥ó¥À 1024 °ÊÁ°¤Ç½ª¤ï¤ë
+¤Ù¤­¤Ç¡¢¥·¥ê¥ó¥À 1024 °ÊÁ°¤Ë³«»Ï¤·¡Ø¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡Ù¡£¤â¤·¥·¥ê¥ó¥À 1024
+°Ê¹ß¤Ç½ª¤ï¤ê¡¢µ¯Æ°¤ËɬÍפʥե¡¥¤¥ë¤¬¤³¤Î¶­³¦°Ê¹ß¤ËÆ°¤«¤µ¤ì¤¿¤é¡¢MS Windows
+NT ¤Ï¤â¤Ï¤ä³«»Ï¤·¤Ê¤¤¤Ç¤·¤ç¤¦!
+  * ¥Ö¡¼¥È¤È¥·¥¹¥Æ¥à¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎξÊý¤Ï¡¢¤½¤Î¾¤ÎÊѹ¹¤Ê¤·¤Ë¡¢Â礭¤µ¤ò
+Êѹ¹¤µ¤ì¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£
+  * ¤â¤·¥Ö¡¼¥È¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎÈÖ¹æ (¤Ä¤Þ¤ê¡¢¤½¤Î¡Ø¥Þ¥¤¥Ê¡¼¡ÙÈÖ¹æ) ¤¬Êѹ¹
+¤µ¤ì¤ì¤Ð¡¢BOOT.INIT ¤ò¹¹¿·¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
+
+4.6	Quik
+------------
+Quik ¤Ï¡ÖµìÀ¤³¦ (old world)¡×¤Î Macintosh PowerPC ÍѤΡ¢ÉáµÚ¤·¤¿¥Ö¡¼¥È¡¦
+¥í¡¼¥À¤Ç¤¹¡£¤â¤·ext2 ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎÂ礭¤µ¤òÊѤ¨¤¿¤é¡¢Quik ¤òºÆ¥¤¥ó¥¹¥È¡¼
+¥ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹:
+
+	# /sbin/quik
+
+4.7	Yaboot
+--------------
+Yaboot ¤Ï¡Ö¿·À¤³¦ (new world)¡×¤Î Macintosh PowerPC ÍѤΡ¢ÉáµÚ¤·¤¿¥Ö¡¼¥È¡¦
+¥í¡¼¥À¤Ç¤¹¡£(¡Ö¿·À¤³¦¡×¤Ï 1999 ¤«¤éÀ½Â¤¤µ¤ì¤Æ¤¤¤ë¡¢¿§¤ÎÉÕ¤¤¤¿ PowerPC ¤Ë
+°¤·¤Æ¤¤¤Þ¤¹)
+	Yaboot ¤Ï¡¢¾¯¤Ê¤¯¤È¤â 800k ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡¢¤½¤ì¼«¿È¤Îµ¯Æ°¥Ñ¡¼¥Æ¥£
+¥·¥ç¥ó¤òɬÍפȤ·¤Þ¤¹¡£¤À¤«¤é¡¢¤â¤· GNU/Linux ¤ò¿¿¤Ã¿·¤«¤é¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¤
+¤ë¤Ê¤é¡¢¤³¤Î¤è¤¦¤Ê¤³¤È¤ò¤¹¤ë¤Ç¤·¤ç¤¦:
+
+	(parted) mklabel mac
+	(parted) print
+	Disk geometry for /dev/sda: 0.000-6149.882 megabytes
+	Disk label type: mac
+	Minor    Start       End     Filesystem  Name                  Flags
+	1          0.000      0.031              Apple
+	(parted) mkpart primary hfs 0.032 1
+	(parted) print
+	Disk geometry for /dev/hdb: 0.000-6149.882 megabytes
+	Disk label type: mac
+	Minor    Start       End     Filesystem  Name                  Flags
+	1          0.000      0.031              Apple
+	2          0.031      1.000
+	(parted) set 2 boot on
+	(parted) print
+	Disk geometry for /dev/hdb: 0.000-6149.882 megabytes
+	Disk label type: mac
+	Minor    Start       End     Filesystem  Name                  Flags
+	1          0.000      0.031              Apple
+	2          0.031      1.000                                    boot
+
+	¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎÂ礭¤µ¤òÊѹ¹¤·¤¿¸å¤Ë Yaboot ¤òºÆ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë
+ɬÍפϤ¢¤ê¤Þ¤»¤ó¡£Yaboot ¤Ï ybin ¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡£
+
+
+------------------------------------------------------------------------------
+5	¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à
+------------------------------------------------------------------------------
+º£¤Î¤È¤³¤í¡¢Parted ¤Ï GNU/Linux ¤Î²¼¤Ç¤Î¤ßÆ°ºî¤·¤Þ¤¹¡£¤·¤«¤·¡¢Â¾¤Î¥ª¥Ú¥ì¡¼
+¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ»È¤ï¤ì¤Æ¤¤¤ë¡¢¤¢¤ë¤¤¤Ï¡¢¶¦Í­¤µ¤ì¤¿¥Ñ¡¼¥Æ¥£¥·¥ç¥ó
+¤ÎÂ礭¤µ¤òÊѹ¹¤¹¤ë¤Î¤ËÍøÍѤǤ­¤Þ¤¹¡£
+
+¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ÎÂ礭¤µ¤òÊѹ¹¤·¤¿¤¤¤È¤­¡¢¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò³Îǧ
+¤·¤Æ¤¯¤À¤µ¤¤¡£Parted ¤Ï¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎÂ礭¤µ¤òÊѹ¹¤Ç¤­¤Þ¤»¤ó
+(¤³¤ì¤Ï¾­ÍèÊѤï¤ë¤«¤â¤·¤ì¤Þ¤»¤ó...)
+
+¤â¤·¥ë¡¼¥È¤ä¥Ö¡¼¥È¡¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎÂ礭¤µ¤òÊѹ¹¤·¤¿¤¤¤Ê¤é¡¢¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯
+¤ò»È¤¦ (¥»¥¯¥·¥ç¥ó 1.5 ¤ò»²¾È) ¤«¡¢ext2resize ¥Ñ¥Ã¥±¡¼¥¸¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡¢
+Andreas Dilger ¤Î online ext2 resizer (¾Ü¤·¤¯¤Ï¡¢6¾Ï¤ò»²¾È) ¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡£
+
+¤â¤·¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬¤¢¤ë¥Ç¥£¥¹¥¯¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡¦¥Æ¡¼¥Ö¥ë¤ò
+½¤Àµ¤¹¤ë¤Ê¤é¡¢¤¹¤°¤ËºÆµ¯Æ°¤¹¤ë¤Ù¤­¤Ç¤¹¡£Linux ¤Ï¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡¦¥Æ¡¼¥Ö¥ë¤Ë
+²Ã¤¨¤¿Êѹ¹¤Ë¤Ä¤¤¤Æʬ¤«¤é¤Ê¤¤¤Ç¤·¤ç¤¦¡£ (¤³¤ì¤Ï¥«¡¼¥Í¥ë 2.4 ¤Ç¡¢¤½¤ì¤Î¥µ¥Ý¡¼
+¥È¤òÄɲ乤ë¤È¤­¤Ëľ¤µ¤ì¤ë¤Ç¤·¤ç¤¦)
+
+
+5.1	GNU/Linux ¤È FreeBSD
+------------------------------------------------------------------------------
+ξÊý¤Î¥·¥¹¥Æ¥à¤Ï¥Ç¥£¥¹¥¯¡¦¥é¥Ù¥ë¤Ë¤Ï¤«¤Ê¤ê½ÀÆð¤Ç¡¢¤¿¤¯¤µ¤ó¤Î°Û¤Ê¤ë¥Ç¥£¥¹¥¯¡¦
+¥é¥Ù¥ë¤Î¼ïÎà¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£
+	FreeBSD ¤Ï¡¢MSDOS ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡¦¥Æ¡¼¥Ö¥ë¤È¤Ï¸ß´¹À­¤Î¤Ê¤¤¡¢
+¥Ç¥£¥¹¥¯¡¦¥é¥Ù¥ë¡¦¥·¥¹¥Æ¥à¤È¡¢MSDOS ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡¦¥Æ¡¼¥Ö¥ë¤È¸ß´¹¤Ê¡¢
+¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡¦¥¹¥é¥¤¥¹¡¦¥·¥¹¥Æ¥à¤ò»ý¤Á¤Þ¤¹¡£Parted ¤Ï BSD ¥Ç¥£¥¹¥¯¡¦
+¥é¥Ù¥ë¡¦¥·¥¹¥Æ¥à¤À¤±¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£¤½¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡¦¥¹¥é¥¤¥¹¡¦¥·¥¹¥Æ¥à
+¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤³¤È¤Ï¤¢¤ê¤½¤¦¤Ë¤Ê¤¯¡¢¤Ê¤¼¤Ê¤é¡¢¤½¤Î°ÕÌ£ÏÀ¤Ï¤¤¤µ¤µ¤«´ñ̯¤Ç¡¢
+¡ÖÉáÄ̤Ρץѡ¼¥Æ¥£¥·¥ç¥ó¡¦¥Æ¡¼¥Ö¥ë¤¬¤ä¤ë¤è¤¦¤Ë¤ÏƯ¤«¤Ê¤¤¤«¤é¤Ç¤¹¡£
+
+
+5.2	MS Windows ¤È OS/2
+------------------------------------------------------------------------------
+MS Windows ¤È OS/2 ¤Ï msdos ¥Ç¥£¥¹¥¯¡¦¥é¥Ù¥ë¤À¤±¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£¤½¤ì¤æ
+¤¨¡¢¤â¤·¿·¤·¤¤¥Ç¥£¥¹¥¯¡¦¥é¥Ù¥ë¤òºîÀ®¤¹¤ë¤Ê¤é¡¢°Ê²¼¤ò»ÈÍѤ¹¤ë¤Ù¤­¤Ç¤¹:
+
+	(parted) mklabel msdos
+
+
+5.3	MacOS
+------------------------------------------------------------------------------
+MacOS (¤È OpenFirmware) ¤Ï mac ¥Ç¥£¥¹¥¯¡¦¥é¥Ù¥ë¤À¤±¤òÍý²ò¤·¤Þ¤¹¡£¤½¤ì¤æ¤¨¡¢
+¤â¤·¿·¤·¤¤¥Ç¥£¥¹¥¯¡¦¥é¥Ù¥ë¤òºîÀ®¤¹¤ë¤Ê¤é¡¢°Ê²¼¤ò»ÈÍѤ¹¤ë¤Ù¤­¤Ç¤¹:
+
+	(parted) mklabel mac
+
+Ãí: Mac ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡¦¥Þ¥Ã¥×¤Ç¤Ï¡¢¶õ¤­Îΰè¤Ï¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡¦¥Þ¥Ã¥×¤Î¹àÌÜ
+¤ò¤È¤Ã¤Æ¤·¤Þ¤¦ (¤½¤·¤Æ¡¢Linux ¤Ï 15 ¤òĶ¤¨¤ë¹àÌܤò»ý¤Ä¤³¤È¤ò¹¥¤Þ¤Ê¤¤) ¤Î¤Ç¡¢
+¶õ¤­Îΰè¤ò»Ä¤¹¤Î¤òÈò¤±¤ë¤Ù¤­¤Ç¤¹¡£Î㤨¤Ð¡¢¤â¤·°Ê²¼¤ò¹Ô¤¨¤Ð:
+
+	(parted) print
+	Disk geometry for /dev/sda: 0.000-6149.882 megabytes
+	Disk label type: mac
+	Minor    Start       End     Filesystem  Name                  Flags
+	1          0.000      0.031              Apple
+	2          0.031      1.000                                    boot
+	3          1.000   1000.000  ext2        root                  root
+	(parted) mkpartfs primary ext2 1001 2000
+	(parted) print
+	Disk geometry for /dev/sda: 0.000-6149.882 megabytes
+	Disk label type: mac
+	Minor    Start       End     Filesystem  Name                  Flags
+	1          0.000      0.031              Apple
+	2          0.031      1.000                                    boot
+	3          1.000   1000.000  ext2        root                  root
+	4       1001.000   2000.000  ext2
+
+¥Ñ¡¼¥Æ¥£¥·¥ç¥ó 3 ¤È 4 ¤Î´Ö¤Ë¡¢1 ¥á¥¬¥Ð¥¤¥È¤Î¶õ¤­Îΰ褬¤¢¤ê¤Þ¤¹¡£¥Ñ¡¼¥Æ¥£
+¥·¥ç¥ó¤ò 0.1M Î¥¤·¤ÆºîÀ®¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¤³¤ì¤òÈò¤±¤é¤ì¤Þ¤¹ (¤³¤Î¾ì¹ç¡¢
+Parted ¤Ï¼«Æ°Åª¤Ë¤½¤ì¤é¤ò°ì½ï¤Ë¡Ö²¡¤·¹þ¤ß¡×¤Þ¤¹)¡£¤À¤«¤é¡¢¾å¤ÎÎã¤Ç¤Ï¡¢ÊѤï¤ê
+¤Ë¼¡¤ò¹Ô¤¦¤Ù¤­¤Ç¤¹:
+
+	(parted) mkpartfs primary ext2 1000.1 2000
+	(parted) print
+	Disk geometry for /dev/sda: 0.000-6149.882 megabytes
+	Disk label type: mac
+	Minor    Start       End     Filesystem  Name                  Flags
+	1          0.000      0.031              Apple
+	2          0.031      1.000                                    boot
+	3          1.000   1000.000  ext2        root                  root
+	4       1000.000   2000.000  ext2
+
+
+------------------------------------------------------------------------------
+6	¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à
+------------------------------------------------------------------------------
+
+Parted ¤Ï°Ê²¼¤ÎÁàºî¤ËÂФ¹¤ë¥µ¥Ý¡¼¥È¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹:
+
+¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à	¸¡½Ð	ºîÀ®	Â礭¤µÊѹ¹	¥³¥Ô¡¼	ÅÀ¸¡
+ext2			*	*	*1		*2	*3
+ext3			*		*1		*2	*3
+fat			*	*	*4		*4	*
+hfs			*
+jfs			*
+linux-swap		*	*	*		*	*
+ntfs			*
+reiserfs		*
+ufs			*
+xfs			*
+
+Ãí:
+(1) ext2 ¤È ext3 ¤Ç¤Ï¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î³«»ÏÅÀ¤Ï¸ÇÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
+
+(2) ¥³¥Ô¡¼Àè¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï¡¢¥³¥Ô¡¼¸µ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤è¤êÂ礭¤¯ (¤¢¤ë¤¤¤Ï¡¢
+´°Á´¤ËƱ¤¸¥µ¥¤¥º) ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
+
+(3) ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬³«¤«¤ì¤ë¤È¤­¤Ë¡¢¸ÂÄꤵ¤ì¤¿ÅÀ¸¡¤¬¹Ô¤ï¤ì¤Þ¤¹¡£¤³¤ì¤¬
+º£¤Î¤È¤³¤íÍ£°ì¤ÎÅÀ¸¡¤Ç¤¹¡£¤â¤·¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë²¿¤é¤«¤Î¸í¤ê(¤½¤·¤Æ¡¢°ìÈÌ
+¤Ë¸í¤ê¤ÎÂçȾ) ¤¬¤¢¤ì¤Ð¡¢(resize ¤ò´Þ¤à) Á´¤Æ¤Î¥³¥Þ¥ó¥É¤Ï¤½¤Î¼ºÇÔ¤ò¾å¼ê¤¯½èÍý
+¤·¡¢¤½¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ï¼êÉÕ¤«¤º¤Î¤Þ¤Þ¤Ë¤Ê¤ê¤Þ¤¹¡£
+
+(4) fat ¤Ç¤Ï¡¢Â礭¤µ¤ÎÊѹ¹¤ä¥³¥Ô¡¼¤Î¸å¡¢¿·¤·¤¤¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎÂ礭¤µ¤Ï¥¯¥é
+¥¹¥¿¤ÎÂ礭¤µ¤ËÀ©¸Â¤µ¤ì¤Þ¤¹ (¼ç¤Ë FAT16 ¤Ë±Æ¶Á¤·¤Þ¤¹)¡£¤³¤ì¤Ï¤¢¤Ê¤¿¤¬¹Í¤¨¤ë
+¤è¤ê¤â°­¤¯¤Æ¡¢¤È¤¤¤¦¤Î¤â¡¢¥¯¥é¥¹¥¿¤ÎÂ礭¤µ¤òÁª¤Ö¤³¤È¤Ï¤Ç¤­¤Ê¤¤¤«¤é¤Ç¤¹
+(¤½¤ì¤Ï Windows ¤Î¥Ð¥°¤Ç¤¹¤¬¡¢¸ß´¹À­¤ÏÍߤ·¤¤¡¢¤½¤¦¤Ç¤¹¤è¤Í?)
+	¤À¤«¤é¡¢¼ÂºÝŪ¤Ë¤Ï¡¢(Parted ¤Ï¥¯¥é¥¹¥¿¤ÎÂ礭¤µ¤ò½Ì¾®¤Ç¤­¤ë¤Î¤Ç) ¥Ñ¡¼
+¥Æ¥£¥·¥ç¥ó¤ò¾ï¤Ë½Ì¾®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¤¬¡¢¤¢¤Ê¤¿¤¬Íߤ¹¤ëÂ礭¤µ¤Ë¡¢¥Ñ¡¼¥Æ¥£
+¥·¥ç¥ó¤òÁýÂ礵¤»¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£¤â¤· FAT32 ¤ò»È¤¦¤³¤È¤Ë²¿¤â
+ÌäÂ꤬¤Ê¤¤¤Ê¤é¡¢¾ï¤Ë¤¢¤Ê¤¿¤¬Íߤ¹¤ëÂ礭¤µ¤Ë¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òÁýÂ礵¤»¤é¤ì¤ë¤Ç
+¤·¤ç¤¦¡£
+	Í×Ìó: ¤¤¤Ä¤Ç¤â¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò½Ì¾®¤Ç¤­¤Þ¤¹¡£¤â¤·²¿¤é¤«¤ÎÍýͳ¤Ç FAT32
+¤ò»È¤¨¤Ê¤¤¤Ê¤é¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òÁýÂ礵¤»¤é¤ì¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£
+
+
+6.1	Ext2
+------------------------------------------------------------------------------
+Parted ¤Ï (¤Þ¤À) ext2 ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î¥³¥Ô¡¼¤òľÀܤϥµ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¡£
+¤·¤«¤·¤Ê¤¬¤é¡¢¤³¤ì¤ò°Ù¤¹¿ë¤²¤ëÊýË¡¤¬¾¯¤·¤À¤±¤¢¤ê¤Þ¤¹:
+  * Parted ¤Î mkfs ¥³¥Þ¥ó¥É (¤« mkfs.ext2) ¤ò»È¤¤¡¢¤½¤ì¤«¤é¥·¥§¥ë¤Ç
+°Ê²¼¤ò¼Â¹Ô¤·¤Þ¤¹:
+	ľ¤·¤Æ¤¯¤ì¡ª¡ª ¤³¤ì¤Ï¤¢¤Þ¤ê¾å¼ê¤¯¹Ô¤«¤Ê¤¤ - ¤Ç¤âÂçÄñ¤Î¿Í¤Ë¤ÏÂç¾æÉ×
+	¤Ê¤Ï¤º...
+
+	# mount -t ext2 /dev/hda2 /mnt/dst
+	# find /mnt/src -depth | cpio -pm /mnt/dst
+
+  * ¤â¤·Ê£À½¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬¸µ¤è¤ê¤âÂ礭¤¯¤Ê¤ë¤Ê¤é¡¢¤³¤¦¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹:
+¤Þ¤º¡¢¿·¤·¤¤ ext2 ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºîÀ®¤·¤Þ¤¹¡£¤½¤ì¤«¤é:
+
+	# dd if=/dev/src-device of=/dev/dst-device bs=1024 count=(OLD SIZE)
+	# parted /dev/hda resize 2 (START) (END)
+
+¤³¤³¤Ç¡¢(OLD SIZE) ¤Ï¸µ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò¥­¥í¥Ð¥¤¥È¤Çɽ¤·¤¿Â礭¤µ¤Ç¤¹¡£
+(START) ¤È (END) ¤ÏÊ£À½¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ËÂФ¹¤ë¡¢¿·¤·¤¤³«»ÏÅÀ¤È½ªÃ¼¤Ç¤¹¡£
+
+
+6.2	FAT16 ¤È FAT32
+------------------------------------------------------------------------------
+Parted ¤Ï (¤Þ¤À) FAT ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î¥¯¥é¥¹¥¿¤ÎÂ礭¤µ¤òÁýÂ礵¤»¤é¤ì¤Þ¤»
+¤ó¡£¤³¤Î¤³¤È¤Î¤¿¤á¤Ë¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎÂ礭¤µ¤ÎÊѹ¹¤ä¥³¥Ô¡¼¤ËÀ©¸Â¤¬Àߤ±¤é¤ì¤Þ
+¤¹¡£¤³¤ì¤Ï¤·¤Ð¤·¤ÐÁ´¤¯´ñ²ø¤Ç¡¢¤È¤¤¤¦¤Î¤â¡¢Parted ¤Ï FAT16 ¤È FAT32 ¤Î¥Õ¥¡¥¤
+¥ë¡¦¥·¥¹¥Æ¥à¤òÊÑ´¹¤Ç¤­¤ë¤«¤é¤Ç¡¢¥¯¥é¥¹¥¿¤ÎÂ礭¤µ¤¬¤É¤ì¤Û¤É¤Ë¤Ê¤êÆÀ¤ë¤«¤Ë¤Ä¤¤
+¤Æ¡¢°Û¤Ê¤ëÀ©¸Â¤¬¤¢¤ê¤Þ¤¹¡£
+
+Î㤨¤Ð¡¢¥¯¥é¥¹¥¿¤ÎÂ礭¤µ¤¬ 4k ¤Ç¤¢¤ë 100Mb ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬¤¢¤ë¤È¤·¤Æ¤ß¤Þ
+¤·¤ç¤¦¡£¤³¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò 400Mb ¤ËÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£¤Ê¤¼¤Ê¤é¡¢¤½
+¤Î¥¯¥é¥¹¥¿¤ÎÂ礭¤µ¤ò 16k ¤ËÊѹ¹¤¹¤ëɬÍפ¬¤¢¤ë¤«¤é¤Ç¤¹¡£¤·¤«¤·¡¢¤â¤· FAT32
+¤ò»È¤¨¤Ð¡¢¤½¤ì¤Ï 600Mb ¤ËÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£600Mb ¤Î FAT32 ¥Õ¥¡¥¤¥ë¡¦¥·
+¥¹¥Æ¥à¤ËÂФ·¤Æ¡¢µÕ¤âÀ®¤êΩ¤Á¤Þ¤¹¡£
+
+Ãí: ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ò¥³¥Ô¡¼¤·¤¿¤ê¡¢Â礭¤µ¤òÊѹ¹¤¹¤ë¤È¤­¡¢Parted ¤Ï (¤â¤·
+²Äǽ¤Ê¤é) FAT16 ¤È FAT32 ¤Î´Ö¤ÇÊÑ´¹¤·¤¿¤¤¤«¿Ò¤Í¤ë¤Ç¤·¤ç¤¦¡£¤½¤ì¤æ¤¨¡¢¤¢¤ë
+¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò (Â礭¤µ¤òÊѹ¹¤»¤º¤Ë) FAT32 ¤ËÊÑ´¹¤·¤¿¤¤¤À¤±¤Ê¤é¡¢¤½¤Î¥Ñ¡¼
+¥Æ¥£¥·¥ç¥ó¤òƱ¤¸Â礭¤µ¤ËÊѹ¹¤¹¤ë¤À¤±¤Ç¤Ç¤­¤Þ¤¹¡£
+
+6.2.1	MS DriveSpace ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó
+--------------------------------
+MS DriveSpace ¤Ï MS Windows 95 ¤ËÉÕ°¤·¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤Ç¡¢FAT ¥Õ¥¡¥¤¥ë¡¦
+¥·¥¹¥Æ¥à¤ò°µ½Ì¤¹¤ë¤Î¤Ë»ÈÍѤǤ­¤Þ¤¹¡£»ä¤Ï¤³¤ì¤Ï DoubleSpace ¤ÈƱ¤¸¤è¤¦¤ËÆ°ºî
+¤¹¤ë¤È¹Í¤¨¤Æ¤¤¤ë¤Î¤Ç¡¢¤³¤³¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¤³¤È¤Ï¤É¤ì¤Ç¤â DoubleSpace ¤Ë¤âÅö¤Æ
+¤Ï¤Þ¤ë¤Ï¤º¤Ç¤¹¡£
+
+¤³¤ì¤é¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎÂ礭¤µ¤òÊѹ¹¤·¤¿¤ê¥³¥Ô¡¼¤¹¤ë¤¿¤á¤Ë Parted ¤ò»ÈÍѤ¹¤ë
+¤³¤È¤Ï²Äǽ¤Ç¤¹¤¬¡¢2¡¢3¡¢Í¾Ê¬¤Ë¤ä¤é¤Ê¤¤¤È¤¤¤±¤Þ¤»¤ó...
+
+6.2.1.1	DriveSpace ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎÁýÂç
+--------------------------------------
+(1) ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò˾¤ß¤ÎÂ礭¤µ¤ËÁýÂ礵¤»¤ë¤Î¤Ë¡¢Parted ¤Î resize ¥³¥Þ¥ó¥É
+¤ò»È¤¤¤Þ¤¹¡£
+
+(2) ¶õ¤­Îΰè¤ò¥Û¥¹¥È¡¦¥É¥é¥¤¥Ö¤«¤é°µ½Ì¥É¥é¥¤¥Ö¤Ø°Ü¤¹¤¿¤á¤Ë¡¢MS DriveSpace
+¤ò»ÈÍѤ·¤Þ¤¹¡£
+
+6.2.1.2	DriveSpace ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î½Ì¾®
+----------------------------------------
+(1) °µ½Ì¥É¥é¥¤¥Ö¤«¤é¥Û¥¹¥È¡¦¥É¥é¥¤¥Ö¤Ø¶õ¤­Îΰè¤ò°Ü¤¹¤¿¤á¤Ë¡¢MS DriveSpace
+¤ò»ÈÍѤ·¤Þ¤¹¡£°Ü¤µ¤ì¤ë¶õ¤­Îΰè¤ÎÎ̤ϥѡ¼¥Æ¥£¥·¥ç¥ó¤ò½Ì¾®¤¹¤ë¡¢Ë¾¤ß¤ÎÎ̤È
+°ìÃפ·¤Þ¤¹¡£
+
+(2) ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò˾¤ß¤ÎÂ礭¤µ¤Ë½Ì¾®¤¹¤ë¤¿¤á¤Ë¡¢Parted ¤Î resize ¥³¥Þ¥ó¥É
+¤ò»ÈÍѤ·¤Þ¤¹¡£Ãí: Parted ¤Ï¤½¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò¤É¤ì¤À¤±½Ì¾®¤¹¤ë¤Î¤«¤¬Ê¬¤«¤ë
+¤è¤¦¡¢¤½¤Î¿ô»ú¤ò¾å¼ê¤¯ÊÖ¤·¤Æ¤Ï¤¯¤ì¤Þ¤»¤ó¡£¤³¤ì¤Ï¤ä¤ë¤Ù¤­¤³¤È¤Î¥ê¥¹¥È¤Ëµó¤²
+¤é¤ì¤Æ¤¤¤Þ¤¹¡£
+
+6.2.1.3	DriveSpace ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¥³¥Ô¡¼
+--------------------------------------
+¤â¤· DriveSpace ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò¤â¤Ã¤ÈÂ礭¤¤¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¥³¥Ô¡¼¤·¤¿¤¤¤Ê¤é¡¢
+˾¤ß¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎÂ礭¤µ¤òÊѤ¨¤ë¤Î¤Ç¤Ï¤Ê¤¯¥³¥Ô¡¼¤¹¤ë¤³¤È¤ò½ü¤¤¤Æ¡¢
+DriveSpace ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎÁýÂçÍѤÎÀâÌÀ¤Ë½¾¤Ã¤Æ¤¯¤À¤µ¤¤¡£¤½¤·¤Æ¡¢DriveSpace
+¤Ç¤Î¿·¤·¤¤¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò»È¤Ã¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£
+
+¤·¤«¤·¡¢¤â¤· DriveSpace ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò¤è¤ê¾®¤µ¤Ê¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¥³¥Ô¡¼
+¤·¤¿¤¤¤Ê¤é¡¢Êª»ö¤Ï¾¯¡¹Ê£»¨¤Ë¤Ê¤ê¤Þ¤¹:
+
+(1) °µ½Ì¥É¥é¥¤¥Ö¤«¤é¸»¤Ç¤¢¤ë¥Û¥¹¥È¡¦¥É¥é¥¤¥Ö¤Ë¶õ¤­Îΰè¤ò°Ü¤¹¤¿¤á¤Ë¡¢MS
+DriveSpace ¤ò»È¤¤¤Þ¤¹¡£°Ü¤µ¤ì¤ëÎΰè¤ÎÎ̤ϸµ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÈÊ£À½¥Ñ¡¼¥Æ¥£
+¥·¥ç¥ó¤Î˾¤ß¤ÎÂ礭¤µ¤Îº¹¤è¤ê¤âÂ礭¤¯¤¢¤ë¤Ù¤­¤Ç¤¹¡£
+
+(2) ¸µ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òÊ£À½¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ø¥³¥Ô¡¼¤¹¤ë¤¿¤á¡¢Parted ¤ò»È¤¤
+¤Þ¤¹¡£
+
+(3) ¸µ¤Î¥Û¥¹¥È¡¦¥É¥é¥¤¥Ö¤«¤é°µ½Ì¥É¥é¥¤¥Ö¤Ø¶õ¤­Îΰè¤òÌ᤹¤¿¤á¡¢MS DriveSpace
+¤ò»È¤¤¤Þ¤¹¡£
+
+(4) Ê£À½¥Û¥¹¥È¡¦¥É¥é¥¤¥Ö¤«¤é°µ½Ì¥É¥é¥¤¥Ö¤Ø¶õ¤­Îΰè¤òÌ᤹¤¿¤á¡¢MS DriveSpace
+¤ò»È¤¤¤Þ¤¹¡£
+
+6.3	Reiserfs
+------------------------------------------------------------------------------
+Parted ¤Ï reiserfs ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¡£¤·¤«¤·¡¢reiserfs ¤Ë¤Ï¤½¤ì¼«¿È¤Î
+Â礭¤µÊѹ¹¥Ä¡¼¥ë¡¢resize_reiserfs ¤¬ÉÕ¤¤¤Æ¤¤¤Þ¤¹¡£¤¿¤À¤¢¤Ê¤¿¤ÎÃΤ餻¤ë¤¿¤á
+¤À¤±¤Ë ;-)
+
+
+------------------------------------------------------------------------------
+7	LVM¡¢RAID ¤ÈľÀÜŪ¤Ê¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ø¤Î¥¢¥¯¥»¥¹
+------------------------------------------------------------------------------
+
+LVM (ÏÀÍý¥Ü¥ê¥å¡¼¥à¡¦¥Þ¥Í¡¼¥¸¥ã) ¤Ï¥Ñ¡¼¥Æ¥£¥·¥ç¥Ë¥ó¥°¤ÎÂåÂØ¥·¥¹¥Æ¥à¤Ç¤¹¡£¤½¤ì
+¤ÏÏÀÍý¥Ü¥ê¥å¡¼¥à (¤Ä¤Þ¤ê¡¢¡Ö²¾Áۥѡ¼¥Æ¥£¥·¥ç¥ó¡×) ¤¬¤¿¤¯¤µ¤ó¤ÎʪÍý¥Ü¥ê¥å¡¼¥à
+(¤Ä¤Þ¤ê¡¢¥Ï¡¼¥É¡¦¥Ç¥£¥¹¥¯¤ä¥Ñ¡¼¥Æ¥£¥·¥ç¥ó) ¤Ë¹­¤¬¤ë¤³¤È¤òµö¤·¤Þ¤¹¡£LVM ¤Ï
+Linux ¥Ð¡¼¥¸¥ç¥ó 2.4 ¤«¤½¤ì°Ê¹ß¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
+
+RAID (°Â²Á¤Ê¥Ç¥£¥¹¥¯¤Î¾éŤÊÇÛÎó) ¤Ï¤¿¤¯¤µ¤ó¤Î¥Ç¥£¥¹¥¯¤ä¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò°ì½ï
+¤Ë¡¢¡Ö²¾Áۥѡ¼¥Æ¥£¥·¥ç¥ó¡×¤È¤·¤Æ»È¤¦¤¿¤á¤Î¥·¥¹¥Æ¥à¤Ç¤¹¡£¥½¥Õ¥È¥¦¥§¥¢ RAID ¤ò
+ÍøÍѤ¹¤ë¤Î¤Ë¡¢¿ô¼ï¤Î°Û¤Ê¤ë¥â¡¼¥É¤¬¤¢¤ê¡¢ËܼÁŪ¤Ë¤Ï:
+  * À­Ç½¤ò¸þ¾å¤µ¤»¡¢Á´Îΰè¤òñ°ì¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¾å¤ÇÍøÍѤǤ­¤ë¤è¤¦¤Ë¤¹¤ë
+¤¿¤á¡¢Ê£¿ô¤Î (¾®¤µ¤Ê) ¥Ç¥£¥¹¥¯¤òñ°ì¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î¤¿¤á¤Ë»ÈÍÑ¡£
+  * ¿®ÍêÀ­¤ÈÀ­Ç½¤ò¸þ¾å¤µ¤»¤ë¤¿¤á¡¢¾ðÊó¤Î¾éĹ¤Ê¥³¥Ô¡¼¤ò¼ý¤á¤ë¤Î¤ËÊ£¿ô¤Î¥Ç¥£¥¹
+¥¯¤ò»ÈÍÑ¡£
+¥½¥Õ¥È¥¦¥§¥¢ RAID ¤Ï Linux ¥Ð¡¼¥¸¥ç¥ó 2.0 ¤«¤½¤ì°Ê¹ß¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
+
+¥Ï¡¼¥É¥¦¥§¥¢ RAID ¤Ï¤Õ¤Ä¤¦¤Ë Parted ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤¹ - ¤À¤«¤é¡¢¤â¤· (¥½¥Õ
+¥È¥¦¥§¥¢ RAID ¤ËÂФ·¤Æ) ¥Ï¡¼¥É¥¦¥§¥¢ RAID ¤ò»È¤Ã¤Æ¤¤¤ë¤Ê¤é¡¢¤³¤Î¥»¥¯¥·¥ç¥ó¤ò
+ÆɤàɬÍפϤ¢¤ê¤Þ¤»¤ó¡£
+
+LVM¡¢¥½¥Õ¥È¥¦¥§¥¢ RAID ¤ä¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï¤·¤Ð¤·¤ÐƱ»þ¤Ë»ÈÍѤµ¤ì¤Þ¤¹¤¬¡¢¤½¤ì¤é
+¤ÏÁ´¤ÆÆÈΩ¤Ë»È¤ï¤ìÆÀ¤Þ¤¹:
+  * LVM ¤È¥½¥Õ¥È¥¦¥§¥¢ RAID ¤Ï¤·¤Ð¤·¤Ð¡¢À¸¤Î¥Ï¡¼¥É¡¦¥Ç¥£¥¹¥¯¤Ç¤Ï¤Ê¤¯¡¢¥Ñ¡¼
+¥Æ¥£¥·¥ç¥ó¤«¤éÀ®¤êΩ¤Á¤Þ¤¹¡£
+  * !!! ľ¤·¤Æ¤¯¤ì (Ãí: LVM ¾å¤Ç»È¤ï¤ì¤¿ RAID ¤Ï¤Þ¤À Linux ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ
+¤¤¤Ê¤¤ (?))
+
+GNU Parted ¤Ï LVM ¤ä¥½¥Õ¥È¥¦¥§¥¢ RAID ¤ò´°Á´¤Ë¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¤¬¡¢¤½¤ì
+¤é¤Î¸Ä¡¹¤Î¥Ä¡¼¥ë¤ÈÁȤ߹ç¤ï¤»¤Æ»È¤¦¤È¤­¡¢¤½¤ì¤Ç¤â¤Ê¤ªÍ­ÍѤǤ¹¡£Parted ¤Ï°Ê²¼¤Î
+ºî¶È¤ËÌò¤ËΩ¤Á¤Þ¤¹:
+  * ¥½¥Õ¥È¥¦¥§¥¢ RAID ¤ä LVM ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎºîÀ®
+  * ÏÀÍý¥Ü¥ê¥å¡¼¥à (¤¢¤ë¤¤¤Ï¡¢¡Ö²¾Áۥѡ¼¥Æ¥£¥·¥ç¥ó¡×) ¾å¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à
+¤ÎºîÀ®¡¢Â礭¤µÊѹ¹¤ä¥³¥Ô¡¼
+
+
+7.1	RAID ¤ä LVM ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎºîÀ®
+-------------------------------------------------------------------------------
+
+RAID ¤ä LVM ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºîÀ®¤¹¤ë¤¿¤á¤Ë¡¢°Ê²¼¤ò¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó:
+(1) mkpart ¥³¥Þ¥ó¥É¤Ç¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºîÀ®¤·¤Þ¤¹¡£
+(2) ¤½¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¾å¤Î LVM ¤ä RAID ¥Õ¥é¥°¤òΩ¤Æ¤Þ¤¹¡£
+
+Î㤨¤Ð:
+
+	(parted) mkpart primary ext2 0 4000
+	(parted) set 1 lvm on
+
+Ãí: ¤½¤Î LVM ¤ä RAID ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï¤Þ¤À»ÈÍѽàÈ÷¤¬À°¤Ã¤Æ¤¤¤Ê¤¤¤Ç¤·¤ç¤¦¡£
+¤½¤ì¤Ç¤â¤ä¤Ï¤ê¡¢RAID ¤ËÂФ·¤Æ¤Ï mkraid(8) ¤ò¼Â¹Ô¤·¤¿¤ê¡¢ÊªÍý¥Ü¥ê¥å¡¼¥à¤ò½é´ü
+²½¤·¤¿¤ê¡¢ÏÀÍý¥°¥ë¡¼¥×¤òºîÀ®¤¹¤ë¤Ê¤É¤Î¤¿¤á¤Ë¡¢LVM ¥Ä¡¼¥ë¤ò»È¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
+
+
+7.2	¥½¥Õ¥È¥¦¥§¥¢ RAID ¤ä LVM ÏÀÍý¥Ü¥ê¥å¡¼¥à¾å¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥àÁàºî
+-------------------------------------------------------------------------------
+
+Parted ¤Ï RAID ¤ä LVM ¤òÍý²ò¤·¤Þ¤»¤ó¤¬¡¢RAID ¤ä LVM ÏÀÍý¥Ü¥ê¥å¡¼¥à¤òÁàºî¤¹¤ë
+¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤½¤ì¤Ï Linux ¤Î RAID ¤ä LVM ¤Î¥µ¥Ý¡¼¥È¤òÍøÍѤ·¤Þ¤¹¡£¤½¤ì¤æ¤¨¡¢
+¤¢¤Ê¤¿¤Î Linux ¥«¡¼¥Í¥ë¤¬ RAID ¤ä LVM ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¸Â¤ê¡¢¤³¤ì¤é¤Î
+ÊýË¡¤ò»È¤¨¤Þ¤¹¡£
+
+RAID ¤ä LVM ÏÀÍý¥Ü¥ê¥å¡¼¥à (¤¢¤ë¤¤¤Ï¡¢¤½¤ì¤¬½ÅÍפʤ顢À¸¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó) ¾å
+¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤òÁàºî¤¹¤ë¤¿¤á¤Ë¡¢ÏÀÍý¥Ü¥ê¥å¡¼¥à (¥Ñ¡¼¥Æ¥£¥·¥ç¥ó) ¥Ç¥Ð¥¤
+¥¹¤òÁª¤Ö¤³¤È¤Ë¤è¤Ã¤Æ¡¢parted ¤ò³«»Ï¤Ç¤­¤Þ¤¹¡£Î㤨¤Ð:
+
+	# parted /dev/md0
+
+¤³¤Î¾Ï¤Î»Ä¤ê¤Ç¤Ï¡¢¡Ö²¾ÁۥǥХ¤¥¹¡×¤Ï Parted ¤¬ÊÔ½¸¤·¤Æ¤¤¤ë¥Ç¥Ð¥¤¥¹¤ò»Ø¤¹¤Ç
+¤·¤ç¤¦ (¤¹¤°¾å¤ÎÎã¤Ç¤Ï: /dev/md0)¡£
+
+
+7.2.1	¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ÎºîÀ®
+------------------------------
+(1) loop ¥Ç¥£¥¹¥¯¡¦¥é¥Ù¥ë¤òºîÀ®¤·¤Þ¤¹¡£¤³¤ì¤Ïµ¶¤Î¥Ç¥£¥¹¥¯¡¦¥é¥Ù¥ë¤Ç¡¢
+Parted ¤Ë²¾ÁۥǥХ¤¥¹¤òñ°ì¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤È¤·¤Æ°·¤¦¤è¤¦¤Ë¶µ¤¨¤Þ¤¹¡£
+¤³¤Îµ¶¤Î¥Ç¥£¥¹¥¯¡¦¥é¥Ù¥ë¤Ç¤Ï¡¢¥¼¥í¡¢¤Þ¤¿¤Ï¡¢°ì¤Ä¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬¤¢¤ê¤Þ¤¹¡£
+
+	(parted) mklabel loop
+
+(2) Parted ¤Î mkpartfs ¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¡¢¤½¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤òºîÀ®¤·¤Þ¤¹¡£
+¤½¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î³«»ÏÅÀ¤ò¥¼¥í¤Ë¤¹¤ë¤Ù¤­¤Ç¤¹¡£¤½¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï²¾ÁÛ
+¥Ç¥Ð¥¤¥¹Æâ¤Î¤É¤³¤Ç½ª¤ï¤Ã¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£²¾ÁۥǥХ¤¥¹¤ÎÂ礭¤µ¤Ï print ¥³¥Þ
+¥ó¥É¤Ç¸«½Ð¤¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£Îã:
+
+	(parted) print
+	Disk geometry for /dev/md0: 0.000-47.065 megabytes
+	Disk label type: loop
+	Minor    Start       End     Filesystem  Flags
+	(parted) mkpartfs primary ext2 0 47.065
+	(parted) print
+	Disk geometry for /dev/md0: 0.000-47.065 megabytes
+	Disk label type: loop
+	Minor    Start       End     Filesystem  Flags
+	1          0.000     47.065  ext2
+
+7.2.2	¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ÎÂ礭¤µÊѹ¹
+------------------------------
+Ä̾²¾ÁۥǥХ¤¥¹¤ÎÂ礭¤µ¤òÊѹ¹¤¹¤ë¤Î¤ÈƱ¤¸»þ¤Ë¡¢¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ÎÂ礭¤µ
+¤òÊѹ¹¤·¤Þ¤¹¡£¤â¤·¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤È²¾ÁۥǥХ¤¥¹¤ÎÂ礭¤µ¤òÁýÂ礵¤»¤Æ¤¤¤ë
+¤Ê¤é¡¢¤Þ¤º¤½¤Î¥Ç¥Ð¥¤¥¹¤ò (RAID ¤ä LVM ¥Ä¡¼¥ë¤Ç) ÁýÂ礵¤»¤ë¤Ù¤­¤Ç¡¢¤½¤·¤Æ¤½¤Î
+¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤òÁýÂ礵¤»¤Þ¤¹¡£¤â¤·¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤È²¾ÁۥǥХ¤¥¹¤ò½Ì¾®
+¤·¤Æ¤¤¤ë¤Ê¤é¡¢¤Þ¤º¤½¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ò½Ì¾®¤µ¤»¡¢¤½¤·¤Æ¡¢¤½¤Î²¾ÁۥǥХ¤¥¹
+¤ò¸å¤Ç¹Ô¤¦¤Ù¤­¤Ç¤¹¡£
+
+Parted ¤Ç¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ÎÂ礭¤µ¤òÊѹ¹¤¹¤ë¤¿¤á¤Ë¡¢resize ¥³¥Þ¥ó¥É¤ò»È¤¤
+¤Þ¤¹¡£Î㤨¤Ð:
+
+	(parted) select /dev/md0
+	(parted) resize 1 0 20
+
+7.2.3	²¾ÁۥǥХ¤¥¹¤«¤é¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ø¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î¥³¥Ô¡¼
+------------------------------------------------------------------
+ñ¤Ë cp ¥³¥Þ¥ó¥É¤ò»È¤¤¤Þ¤¹¡£Î㤨¤Ð:
+
+	(parted) select /dev/hda
+	(parted) cp /dev/md0 1 3
+
+7.2.4	¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤«¤é²¾ÁۥǥХ¤¥¹¤Ø¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î¥³¥Ô¡¼
+-------------------------------------------------
+(1) ²¾ÁۥǥХ¤¥¹¾å¤Ë loop ¥Ç¥£¥¹¥¯¡¦¥é¥Ù¥ë¤òºîÀ®¤·¤Þ¤¹¡£Î㤨¤Ð:
+
+	(parted) select /dev/md0
+	(parted) mklabel loop
+
+(2) mkpartfs ¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¡¢²¾ÁۥǥХ¤¥¹¾å¤Ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤òºîÀ®¤·¤Þ¤¹¡£
+Î㤨¤Ð:
+
+	(parted) mkpartfs primary ext2 0 47.065
+
+(3) cp ¥³¥Þ¥ó¥É¤Ç¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò¥³¥Ô¡¼¤·¤Þ¤¹:
+
+	(parted) select /dev/hda
+	(parted) cp /dev/md0 3 1
+
+
+------------------------------------------------------------------------------
+8	¥Ç¥£¥¹¥¯¡¦¥¤¥á¡¼¥¸¥ó¥°
+------------------------------------------------------------------------------
+
+¥Ç¥£¥¹¥¯¡¦¥¤¥á¡¼¥¸¥ó¥°¤ÏÂà¶þ¤Ê Windows ¤Î¥¤¥ó¥¹¥È¡¼¥ëºî¶È¤ò²óÈò¤¹¤ë¤¿¤á¤Î
+¼êË¡¤Ç¤¹¡£Î㤨¤Ð¡¢¤â¤· Windows ¤È Office ¤ò 1000 ¥Þ¥·¥ó¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¤¤
+¤Ê¤é¡¢Â¿Ê¬ 1000 »þ´Ö¤ÎÌó 5 Çܤ°¤é¤¤¤«¤«¤ë¤Ç¤·¤ç¤¦¡£GNU/Linux ¤À¤È¡¢Red Hat
+¤Î kickstart ¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤¬¤¢¤ë¤Î¤Ç¡¢¤½¤ó¤Ê¤Ë¤Ò¤É¤¯¤Ï¤¢¤ê¤Þ¤»¤ó¡£
+¤½¤Î¥×¥í¥°¥é¥à¤Ï¾¤Î¥×¥í¥°¥é¥à¤Î¥¤¥ó¥¹¥È¡¼¥ë¤ä¡¢¼ÂºÝŪ¤Ë¤Ï¡¢¤¢¤Ê¤¿¤¬¤ä¤ë
+ɬÍפΤ¢¤ë¤³¤È¤ò²¿¤Ç¤â¼«Æ°²½¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤½¤Î¤¿¤á¡¢¥Ç¥£¥¹¥¯¡¦
+¥¤¥á¡¼¥¸¥ó¥°¤ÏËÜÅö¤Ë Windows ¥Þ¥·¥ó¤À¤±¤Î¤¿¤á¤Ë»È¤ï¤ì¤Æ¤¤¤Þ¤¹¡£ÌÀ¤é¤«¤Ë¡¢
+²æ¡¹¤Ï Windows (¤ä¡¢¤¤¤«¤Ê¤ë¼«Í³¤Ç¤Ê¤¤¥½¥Õ¥È¥¦¥§¥¢) ¤òÁ´¤¯»È¤ï¤Ê¤¤¤è¤¦¤Ë
+´«¤á¤Æ¤¤¤Þ¤¹¤¬¡¢¤Û¤È¤ó¤É¤ÎÁÈ¿¥¤Ç¤Ï¡¢Î¾Êý¤Î¥·¥¹¥Æ¥à¤¬ÍøÍѤǤ­¤ë¾õÂ֤ˤ¢¤ë
+°Ü¹Ô´ü¤ò·Ð¤ë¤³¤È¤Ê¤¯¡¢Windows ¤«¤é GNU/Linux (¤ä¾¤Î¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢)
+¤ËÀڤ괹¤¨¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¤³¤È¤òÍý²ò¤·¤Æ¤¤¤Þ¤¹¡£
+
+¥Ç¥£¥¹¥¯¡¦¥¤¥á¡¼¥¸¥ó¥°¤ò»È¤¨¤Ð¡¢¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤È CD ¤òÁÞ¤·¹þ¤ß¡¢¤½¤ì¤ò
+Èô¤Ð¤¹¤³¤È¤Ë¤è¤Ã¤Æ¡¢Windows ¤È Office ¤ò´Þ¤à¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¥Ç¥£¥¹¥¯¡¦¥¤
+¥á¡¼¥¸¤ò CD ¤Ë¾Æ¤­¡¢¤½¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òľÀÜÁ´¤Æ¤Î¥³¥ó¥Ô¥å¡¼¥¿¤Î¥Ï¡¼¥É¡¦
+¥Ç¥£¥¹¥¯¤Ë¥³¥Ô¡¼¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤·¤«¤· Windows ¤Î¥Ç¥£¥¹¥¯¾å¤Î¥Ñ¡¼¥Æ¥£
+¥·¥ç¥ó¤Ï¤ª¤½¤é¤¯¤â¤Ã¤ÈÂ礭¤¯¤Ê¤ë¤Ç¤·¤ç¤¦¤«¤é¡¢¤½¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï¤Þ¤¿Âç
+¤­¤µ¤òÊѹ¹¤µ¤ì¤Í¤Ð¤Ê¤é¤Ê¤¤¤Ç¤·¤ç¤¦¡£»ä¤Ï²¿¿Í¤â¤Î¿Í¡¹¤¬¤³¤Î½èÃÖ¤ò Linux ¤Î
+¥Ö¡¼¥È¡¦¥Õ¥í¥Ã¥Ô¥£¤È Parted ¤ò»È¤Ã¤Æ¤¦¤Þ¤¯¼«Æ°²½¤·¤¿¤Èʹ¤¤¤Æ¤¤¤Þ¤¹¡£¤½¤Î
+¥Õ¥í¥Ã¥Ô¥£¤ò CD ¾å¤Î¥Ö¡¼¥È¡¦¥¤¥á¡¼¥¸¤È¤·¤ÆÍøÍѤ¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢CDROM ¤À
+¤±¤ò»È¤¦¤³¤È¤â²Äǽ¤Ç¤¹¡£¤è¤ê¿¤¯¤Î¾ðÊó¤òÃΤ뤿¤á¤Ë CD writing HOWTO ¤òÆɤó
+¤Ç¤¯¤À¤µ¤¤¡£¤³¤¦¤·¤¿¤³¤ÈÁ´ÂΤòƯ¤«¤»¤ë¤¿¤á¤Ë¤ä¤é¤Ê¤¤¤È¤¤¤±¤Ê¤¤ÉԲĻ׵ĤÊ
+¤³¤È¤¬¾¯¤·¤¢¤ê¤Þ¤¹ (¤½¤ì¤é¤Ï¼¡¤Î°ÂÄê·ÏÎó¤Çľ¤µ¤ì¤ë¤Ç¤·¤ç¤¦)¡£¤¤¤º¤ì¤Ë¤»¤è¡¢
+°Ê²¼¤¬°ìÈÌŪ¤ÊÊýË¡¤Ç¤¹:
+
+(1) ˾¤ß¤ÎÀßÄê¤Ç¡¢¤¢¤ë¥Þ¥·¥ó¤Ë Windows ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£640 Mb °Ê¾å
+»È¤ï¤º¡¢´°Á´¤Ê Linux ¤Î¥¤¥ó¥¹¥È¡¼¥ë¤È CD ¤Î¥¤¥á¡¼¥¸Æó¤Äʬ¤Î¥³¥Ô¡¼ÍѤÎ
+1300 Mb ¤Î¤¿¤á¤Ë½½Ê¬¤Ê;ÃϤò»Ä¤¹¸Â¤ê¡¢¤½¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò¹¥¤­¤Ê¤À¤±Â礭¤¯
+¤·¤Æ¹½¤¤¤Þ¤»¤ó¡£
+
+(2) ¤½¤Î¥Þ¥·¥ó¤Ë Linux ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£
+
+(3) ¤½¤Î CD ¤Î¥¤¥á¡¼¥¸¤Î¤¿¤á¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òºî¤ê¤Þ¤¹ (Îã: /root/cdimage/)¡£
+
+(4) ¤½¤Î CD ¤Î¥¤¥á¡¼¥¸¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë 640 Mb ¤Î¥Ç¥£¥¹¥¯¡¦¥¤¥á¡¼¥¸¤Î¥Õ¥¡¥¤¥ë
+(Îã: /root/cdimage/diskimage) ¤òºîÀ®¤·¤Þ¤¹:
+
+        # dd if=/dev/zero of=/root/cdimage/diskimage bs=1M count=640 
+
+(5) Windows ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò¥Ç¥£¥¹¥¯¡¦¥¤¥á¡¼¥¸¤Ø¥³¥Ô¡¼¤¹¤ë¤¿¤á¡¢Parted ¤ò
+ÍøÍѤ·¤Þ¤¹:
+
+        # parted /root/cdimage/diskimage mklabel msdos mkpart primary fat 0 639
+	# parted /root/cdimage/diskimage cp /dev/hda 1 1
+
+(6) ¤½¤Î CD ¤Î¥¤¥á¡¼¥¸¤Î¥Ç¥£¥ì¥¯¥È¥ê¤«¤é CD ¥¤¥á¡¼¥¸¤òºîÀ®¤·¡¢¤½¤ì¤ò¤¢¤Ê¤¿
+¹¥¤ß¤Î CD ½ñ¤­¹þ¤ß¥Ä¡¼¥ë¤Ç CD ¤Ë¾Æ¤­¤Þ¤¹¡£
+
+(7) Êì¹ñ¸ì¥µ¥Ý¡¼¥È¤È readline ¥µ¥Ý¡¼¥È¤ò̵¸ú¤Ë¤·¤¿¡¢Parted ¤ÎÆÃÊ̤ʥС¼¥¸¥ç¥ó
+¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Þ¤¹ (¤¢¤ë¤¤¤Ï¡¢Freshmeat ¤«¤éÆÃÊÌ¤Ê RPM ¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Þ¤¹):
+
+        localhost:~/parted-1.0.0# ./configure --disable-nls
+        --without-readline --disable-shared; make 
+
+(8) Linux ¤Î¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯¤òºîÀ®¤·¤Þ¤¹ (Bootdisk HOWTO ¤ò»²¾È)¡£
+
+(9) ¤½¤Î¥Ö¡¼¥È¡¦¥Ç¥£¥¹¥¯ (¤«Êä½¼¤Î¥ë¡¼¥È¡¦¥Ç¥£¥¹¥¯) ¤Ë¾ÊάÈǤΠParted ¤ò
+ÃÖ¤­¤Þ¤¹¡£
+
+(10) °Ê²¼¤ò¹Ô¤¦¥·¥§¥ë¡¦¥¹¥¯¥ê¥×¥È¤ò½ñ¤­¤Þ¤¹:
+
+        mount /dev/cdrom /mnt/cdrom
+        parted --script /dev/hda mklabel msdos mkpartfs primary fat 0 SOME-SIZE
+	parted --script /dev/hda cp /mnt/cdrom/diskimage 1 1
+	parted --script /dev/hda set 1 boot on
+        /sbin/halt 
+
+(11) ¥¤¥ó¥¹¥È¡¼¥ë³«»Ï¡ª ¤½¤Î¥Õ¥í¥Ã¥Ô¥£¤È CD ¤ò³Æ¥³¥ó¥Ô¥å¡¼¥¿¤ËÁÞ¤·¹þ¤ß¡¢
+¤½¤ì¤ò²ó¤·¤Æ¤¤¤­¤Þ¤¹...
+
+ÌÀ¤é¤«¤Ë¡¢»ä¤Ï¤³¤ÎÊýË¡¤ò¤º¤Ã¤È´Êñ¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¤·¡¢¤½¤¦¤¹¤ë¤Ç¤·¤ç¤¦¡£
+²æ¡¹¤Ï¤³¤ì¤ò¹Ô¤¦¤Î¤Ë¾®·¿¤Î¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤òºî¤í¤¦¤È¹Í¤¨¤Æ¤¤¤ë¤È¤³¤í
+¤Ç¤¹¡£»ä¤Ë¤Ï¤½¤¦¤¤¤¦¤â¤Î¤ò´ÉÍý¤¹¤ë»þ´Ö¤¬¤¢¤ê¤Þ¤»¤ó¡¢Í­»Ö¤Ï¤¤¤Þ¤»¤ó¤«¡©
+
+
+------------------------------------------------------------------------------
+9	¤µ¤é¤Ê¤ë¾ðÊó¤È´ØÏ¢¥½¥Õ¥È¥¦¥§¥¢
+------------------------------------------------------------------------------
+
+¤â¤·¤â¤Ã¤È¤¿¤¯¤µ¤ó¤Î¾ðÊó¤òȯ¸«¤·¤¿¤é¡¢µ¤·Ú¤Ë parted@gnu.org ¤Ë¼ÁÌä¤òÁ÷¤Ã¤Æ
+¤¯¤À¤µ¤¤¡£(!) ¤Ï¤ª¤½¤é¤¯¤¢¤Ê¤¿¤Î¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¾ðÊó¤«
+¥½¥Õ¥È¥¦¥§¥¢¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£
+
+GNU Parted ÇÛÉÛʪÃæ¤Î¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï¤µ¤é¤Ê¤ë¾ðÊó¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹:
+  * ABOUT-NLS - Êì¹ñ¸ì¥µ¥Ý¡¼¥È¤Î»ÈÍÑ¤È Free Translation Project ¤Ë¤Ä¤¤¤Æ¤Î
+¾ðÊó
+  * API - libparted ¤Î API ¤Î²òÀâ
+  * AUTHORS - 郎²¿¤ò½ñ¤¤¤¿¤«
+  * BUGS - ̤²ò·è¤Î¥Ð¥°
+  * ChangeLog - GNU Parted ¤Ë¤Ê¤µ¤ì¤¿Êѹ¹¤ÎÍúÎò
+  * COPYING - GNU Parted ¤ÎÇÛÉÛ¾ò·ï¤Ç¤¢¤ë¡¢GNU General Public License
+  * COPYING.DOC - Parted ¤Î²òÀâ½ñ¤¬ÇÛÉÛ¤µ¤ì¤Æ¤è¤¤¾ò·ï¤Ç¤¢¤ë¡¢GNU Free
+Documentation Licence
+  * FAT - FAT ¤ÎÂ礭¤µÊѹ¹¥×¥í¥°¥é¥à¤ÎÆ°ºî¤Î»ÅÁȤ˴ؤ¹¤ë¾ðÊó (¥×¥í¥°¥é¥ÞÍÑ)
+  * INSTALL - GNU Parted ¤ä ¾¤Î¤Û¤È¤ó¤É¤Î¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¤Î¥³¥ó¥Ñ¥¤¥ëÊýË¡
+  * TODO - ¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡¢·×²èÃæ¤ÎÆÃħ
+
+°Ê²¼¤Î²òÀâ½ñ¤Ï GNU Parted ¤È¤Ï°ì½ï¤ËÇÛÉÛ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¤¬¡¢Ìò¤ËΩ¤Ä¤«¤â
+¤·¤ì¤Þ¤»¤ó¡£¤³¤ì¤é¤Î¤¦¤Á¡¢¤Û¤È¤ó¤É¤Ï¿ʬ¤¢¤Ê¤¿¤Î¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ë
+Æþ¤Ã¤Æ¤¤¤ë¤Ç¤·¤ç¤¦¡£Î㤨¤Ð¡¢Red Hat Linux ¤Ç¤Ï¡¢CD ¾å¤Î /doc/HOWTO ¤È
+/doc/FAQ ¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£
+
+[ÌõÃí: ¿¤¯¤Î LDP ¥É¥­¥å¥á¥ó¥È¤ÏÍ­»Ö¤Î¼ê¤Ë¤è¤êÆüËܸì¤ËËÝÌõ¤µ¤ì¤Æ¤ª¤ê¡¢JF
+¤Î¥Ú¡¼¥¸¤«¤é¥À¥¦¥ó¥í¡¼¥É¤Ç¤­¤Þ¤¹:
+	http://jf.linux.or.jp/
+°Ê²¼¤Ç¤Ï¥ª¥ê¥¸¥Ê¥ë¤ÎURL¤Î¤Þ¤Þ¤Ë¤·¤Æ¤ª¤­¤Þ¤¹¡£]
+
+  * Filesystems HOWTO   http://penguin.cz/~mhi/fs/
+  * Hard Disk Upgrade mini-HOWTO (!):   http://sunsite.unc.edu/LDP/HOWTO
+  * Large Disk HOWTO   http://www.win.tue.nl/~aeb/linux/Large-Disk.html
+  * LILO mini-HOWTO (!)   http://sunsite.unc.edu/LDP/HOWTO
+  * MILO HOWTO (!)   http://sunsite.unc.edu/LDP/HOWTO
+  * Linux+OS mini-HOWTOs (!): Linux+DOS+Win95+OS2, Linux+FreeBSD-mini-HOWTO,
+Linux+Win95, Linux+FreeBSD, Linux+NT-Loader.  ¤³¤ì¤é¤Ï°Ê²¼¤«¤éÆþ¼ê¤Ç¤­¤Þ¤¹:
+      http://sunsite.unc.edu/LDP/HOWTO
+  * Partition mini-HOWTO (!):
+      http://www.linuxdoc.org/HOWTO/mini/Partition/index.html
+  * Partition Table HOWTO
+      http://www.win.tue.nl/~aeb/partitions/partition_tables.html
+  * Partition Types list
+      http://www.win.tue.nl/~aeb/partitions/partition_types.html
+  * Software RAID HOWTO
+      http://linas.org/linux/Software-RAID/Software-RAID.html
+
+¤³¤³¤Ç¾¤Î´ØÏ¢¤·¤¿¥×¥í¥°¥é¥à¤òµó¤²¤Þ¤¹¡£¤³¤ì¤é¤Î°ìÉô¤âÍ­ÍѤʲòÀâ¤ò»ý¤Ã¤Æ
+¤¤¤Þ¤¹:
+  * Disk Drake.  www.linux-mandrake.com/diskdrake.  ¤³¤ì¤Ï Parted ¤Èµ¡Ç½Åª¤Ë
+Îà»÷¤·¤Æ¤¤¤Þ¤¹¡£Disk Drake ¤Î FAT ¥³¡¼¥É¤Ï²æ¡¹¤Î Parted ¤Î¥³¡¼¥É¤ò´ð¤Ë¤·¤Æ¤¤
+¤Þ¤¹¡£¤µ¤¢¡¢Disk Drake ¤¬¤É¤Î¤è¤¦¤Ë Parted ¤ËɤŨ¤¹¤ë¤«¸«¤Æ¤ß¤Þ¤·¤ç¤¦: (²æ¡¹
+ξ¼Ô¤¬Æ±°Õ¤·¤Æ¤¤¤Þ¤¹ :-) Disk Drake ¤Ï:
+
+	- »È¤¦¤Î¤¬¤â¤Ã¤È´Êñ¤Ç¡¢´Ö°ã¤¤¤òÈȤµ¤Ê¤¤¤è¤¦¤Ë¼é¤Ã¤Æ¤¯¤ì¤Þ¤¹
+	- ¤â¤Ã¤È´°À®Å٤ι⤤ÌäÂê²ò·è¼êË¡ (/etc/fstab¡¢lilo ¤Ê¤É¤ò½èÍý¤·¤Þ¤¹)
+	- FAT ¤Î¥µ¥Ý¡¼¥È¤Ï¤â¤Ã¤ÈÉϼå (FAT16¡¢FAT32 ´Ö¤ÇÊÑ´¹¤Ç¤­¤Ê¤¤¤·¡¢
+	  ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò¥³¥Ô¡¼¤Ç¤­¤Þ¤»¤ó)
+	- ext2 ¤Î¥µ¥Ý¡¼¥È¤Ï¤â¤Ã¤ÈÉϼå (º£¤Î¤È¤³¤í¤Ï)
+	- (µìÍè¤Î) DOS ¤ä Windows ¥·¥¹¥Æ¥à¤È¤Î¸ß´¹À­¤ò¤¢¤ó¤Þ¤ê¹Íθ¤·¤Æ¤Þ¤»¤ó
+	- Èó PC ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤Ï¥µ¥Ý¡¼¥È¤Ê¤·
+
+  * dosfsck
+  * e2fsck, resize2fs e2fsprogs (!)
+  	http://web.mit.edu/tytso/www/linux/e2fsprogs.html
+  * ext2resize - Parted ¤ÈƱ¤¸¥³¡¼¥É¤ò»È¤¤¤Þ¤¹¤¬¡¢¥¢¥ó¥Þ¥¦¥ó¥È¤òɬÍפȤ·¤Ê¤¤¡¢
+online ext2 resizer ¤Î¤è¤¦¤Ê¡¢Â¾¤Î¤¤¤¤¤â¤Î¤ò¤¤¤¯¤Ä¤«´Þ¤ó¤Ç¤¤¤Þ¤¹¡£
+	http://ext2resize.sourceforge.net
+  * fdisk (!)
+  * FIPS (!) (First Interactive Partition Splitter)
+      http://www.igd.fhg.de/~aschaefe/fips/
+  * GPart - ²õ¤ì¤¿¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡¦¥Æ¡¼¥Ö¥ë¤ò²óÉü¤µ¤»¤Þ¤¹¡£
+      http://www.stud.uni-hannover.de/user/76201/gpart
+  * GNU GRUB - GRand Unified Bootloader
+      http://www.gnu.org/software/grub/grub.html
+  * LILO (!) (LInux LOader)   ftp://tsx-11.mit.edu/pub/linux/packages/lilo/
+  * LVM   http://linux.msede.com/lvm
+  * mkdosfs (!)  (¤È¤­¤É¤­ mkfs.msdos ¤È¸Æ¤Ð¤ì¤Þ¤¹)
+  * mke2fs (!)  (¤È¤­¤É¤­ mkfs.ext2 ¤È¸Æ¤Ð¤ì¤Þ¤¹)
+  * mkfs (!)
+  * mkswap (!)
+  * quik (!)
+  * reiserfs: Ãí: reiserfs ¤ÎÂ礭¤µÊѹ¹¥Ä¡¼¥ë¤ÏÄ̾ï¤Î reiserfs ÇÛÉÛʪ¤Ë´Þ¤Þ
+¤ì¤Æ¤¤¤Þ¤¹¡£
+	http://devlinux.com/projects/reiserfs
+  * yaboot (!)  http://ppclinux.apple.com/~benh/
+
diff --git a/parted-1.8.7/doc/fdl.texi b/parted-1.8.7/doc/fdl.texi
new file mode 100644
index 0000000..faa0f3b
--- /dev/null
+++ b/parted-1.8.7/doc/fdl.texi
@@ -0,0 +1,403 @@
+
+@node GNU Free Documentation License
+@appendixsec GNU Free Documentation License
+
+@cindex FDL, GNU Free Documentation License
+@center Version 1.1, March 2000
+
+@display
+Copyright @copyright{} 2000 Free Software Foundation, Inc.
+51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+@end display
+
+@enumerate 0
+@item
+PREAMBLE
+
+The purpose of this License is to make a manual, textbook, or other
+written document @dfn{free} in the sense of freedom: to assure everyone
+the effective freedom to copy and redistribute it, with or without
+modifying it, either commercially or noncommercially.  Secondarily,
+this License preserves for the author and publisher a way to get
+credit for their work, while not being considered responsible for
+modifications made by others.
+
+This License is a kind of ``copyleft'', which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+
+@item
+APPLICABILITY AND DEFINITIONS
+
+This License applies to any manual or other work that contains a
+notice placed by the copyright holder saying it can be distributed
+under the terms of this License.  The ``Document'', below, refers to any
+such manual or work.  Any member of the public is a licensee, and is
+addressed as ``you''.
+
+A ``Modified Version'' of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+A ``Secondary Section'' is a named appendix or a front-matter section of
+the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall subject
+(or to related matters) and contains nothing that could fall directly
+within that overall subject.  (For example, if the Document is in part a
+textbook of mathematics, a Secondary Section may not explain any
+mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+
+The ``Invariant Sections'' are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.
+
+The ``Cover Texts'' are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.
+
+A ``Transparent'' copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, whose contents can be viewed and edited directly and
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup has been designed to thwart or discourage
+subsequent modification by readers is not Transparent.  A copy that is
+not ``Transparent'' is called ``Opaque''.
+
+Examples of suitable formats for Transparent copies include plain
+@sc{ascii} without markup, Texinfo input format, La@TeX{} input format,
+@acronym{SGML} or @acronym{XML} using a publicly available
+@acronym{DTD}, and standard-conforming simple @acronym{HTML} designed
+for human modification.  Opaque formats include PostScript,
+@acronym{PDF}, proprietary formats that can be read and edited only by
+proprietary word processors, @acronym{SGML} or @acronym{XML} for which
+the @acronym{DTD} and/or processing tools are not generally available,
+and the machine-generated @acronym{HTML} produced by some word
+processors for output purposes only.
+
+The ``Title Page'' means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, ``Title Page'' means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+
+@item
+VERBATIM COPYING
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+
+@item
+COPYING IN QUANTITY
+
+If you publish printed copies of the Document numbering more than 100,
+and the Document's license notice requires Cover Texts, you must enclose
+the copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a publicly-accessible computer-network location containing a complete
+Transparent copy of the Document, free of added material, which the
+general network-using public has access to download anonymously at no
+charge using public-standard network protocols.  If you use the latter
+option, you must take reasonably prudent steps, when you begin
+distribution of Opaque copies in quantity, to ensure that this
+Transparent copy will remain thus accessible at the stated location
+until at least one year after the last time you distribute an Opaque
+copy (directly or through your agents or retailers) of that edition to
+the public.
+
+It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+
+@item
+MODIFICATIONS
+
+You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+
+@enumerate A
+@item
+Use in the Title Page (and on the covers, if any) a title distinct
+from that of the Document, and from those of previous versions
+(which should, if there were any, be listed in the History section
+of the Document).  You may use the same title as a previous version
+if the original publisher of that version gives permission.
+
+@item
+List on the Title Page, as authors, one or more persons or entities
+responsible for authorship of the modifications in the Modified
+Version, together with at least five of the principal authors of the
+Document (all of its principal authors, if it has less than five).
+
+@item
+State on the Title page the name of the publisher of the
+Modified Version, as the publisher.
+
+@item
+Preserve all the copyright notices of the Document.
+
+@item
+Add an appropriate copyright notice for your modifications
+adjacent to the other copyright notices.
+
+@item
+Include, immediately after the copyright notices, a license notice
+giving the public permission to use the Modified Version under the
+terms of this License, in the form shown in the Addendum below.
+
+@item
+Preserve in that license notice the full lists of Invariant Sections
+and required Cover Texts given in the Document's license notice.
+
+@item
+Include an unaltered copy of this License.
+
+@item
+Preserve the section entitled ``History'', and its title, and add to
+it an item stating at least the title, year, new authors, and
+publisher of the Modified Version as given on the Title Page.  If
+there is no section entitled ``History'' in the Document, create one
+stating the title, year, authors, and publisher of the Document as
+given on its Title Page, then add an item describing the Modified
+Version as stated in the previous sentence.
+
+@item
+Preserve the network location, if any, given in the Document for
+public access to a Transparent copy of the Document, and likewise
+the network locations given in the Document for previous versions
+it was based on.  These may be placed in the ``History'' section.
+You may omit a network location for a work that was published at
+least four years before the Document itself, or if the original
+publisher of the version it refers to gives permission.
+
+@item
+In any section entitled ``Acknowledgments'' or ``Dedications'',
+preserve the section's title, and preserve in the section all the
+substance and tone of each of the contributor acknowledgments
+and/or dedications given therein.
+
+@item
+Preserve all the Invariant Sections of the Document,
+unaltered in their text and in their titles.  Section numbers
+or the equivalent are not considered part of the section titles.
+
+@item
+Delete any section entitled ``Endorsements''.  Such a section
+may not be included in the Modified Version.
+
+@item
+Do not retitle any existing section as ``Endorsements''
+or to conflict in title with any Invariant Section.
+@end enumerate
+
+If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version's license notice.
+These titles must be distinct from any other section titles.
+
+You may add a section entitled ``Endorsements'', provided it contains
+nothing but endorsements of your Modified Version by various
+parties---for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+
+You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+
+@item
+COMBINING DOCUMENTS
+
+You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice.
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+
+In the combination, you must combine any sections entitled ``History''
+in the various original documents, forming one section entitled
+``History''; likewise combine any sections entitled ``Acknowledgments'',
+and any sections entitled ``Dedications''.  You must delete all sections
+entitled ``Endorsements.''
+
+@item
+COLLECTIONS OF DOCUMENTS
+
+You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+
+You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+
+@item
+AGGREGATION WITH INDEPENDENT WORKS
+
+A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, does not as a whole count as a Modified Version
+of the Document, provided no compilation copyright is claimed for the
+compilation.  Such a compilation is called an ``aggregate'', and this
+License does not apply to the other self-contained works thus compiled
+with the Document, on account of their being thus compiled, if they
+are not themselves derivative works of the Document.
+
+If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one quarter
+of the entire aggregate, the Document's Cover Texts may be placed on
+covers that surround only the Document within the aggregate.
+Otherwise they must appear on covers around the whole aggregate.
+
+@item
+TRANSLATION
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License provided that you also include the
+original English version of this License.  In case of a disagreement
+between the translation and the original English version of this
+License, the original English version will prevail.
+
+@item
+TERMINATION
+
+You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License.  Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License.  However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+@item
+FUTURE REVISIONS OF THIS LICENSE
+
+The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.  See
+@uref{http://www.gnu.org/copyleft/}.
+
+Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License ``or any later version'' applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+@end enumerate
+
+@page
+@appendixsubsec ADDENDUM: How to use this License for your documents
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+
+@smallexample
+@group
+  Copyright (C)  @var{year}  @var{your name}.
+  Permission is granted to copy, distribute and/or modify this document
+  under the terms of the GNU Free Documentation License, Version 1.1
+  or any later version published by the Free Software Foundation;
+  with the Invariant Sections being @var{list their titles}, with the
+  Front-Cover Texts being @var{list}, and with the Back-Cover Texts being @var{list}.
+  A copy of the license is included in the section entitled ``GNU
+  Free Documentation License''.
+@end group
+@end smallexample
+
+If you have no Invariant Sections, write ``with no Invariant Sections''
+instead of saying which ones are invariant.  If you have no
+Front-Cover Texts, write ``no Front-Cover Texts'' instead of
+``Front-Cover Texts being @var{list}''; likewise for Back-Cover Texts.
+
+If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+
+@c Local Variables:
+@c ispell-local-pdict: "ispell-dict"
+@c End:
+
diff --git a/parted-1.8.7/doc/parted-pt_BR.texi b/parted-1.8.7/doc/parted-pt_BR.texi
new file mode 100644
index 0000000..bffabbb
--- /dev/null
+++ b/parted-1.8.7/doc/parted-pt_BR.texi
@@ -0,0 +1,2903 @@
+\input texinfo    @c -*-texinfo-*-
+@c %**start of header
+@setfilename parted-pt_BR.info
+@settitle Manual do Usuário do Parted
+@c %**end of header
+
+@c RMK: for definitions and discussion of my methods, skip to the end
+@c of the file, after  the "bye" directive.
+
+@include version.texi
+
+@paragraphindent 4
+
+@direntry
+* parted: (parted).                        software de particionamento GNU
+@c RMK: the following doesn't work.  'info --usage' is improperly documented.
+@c * Chamando o parted: (parted)Chamando o Parted.    Opções de linha de comando e comandos
+@end direntry
+
+@c RMK: texi: an info section describing the file is texinfo custom.
+@ifinfo
+This file documents the use of GNU Parted, a program for creating,
+resising, checking and copy partitions, and file systems on them.
+
+Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1 or
+any later version published by the Free Software Foundation; with the
+no Invariant Sections, with the no Front-Cover Texts, and with no
+Back-Cover Texts.  A copy of the license is included in the section
+entitled ``GNU Free Documentation License''.
+
+@end ifinfo
+
+@c RMK: texi : the titlepage section is texinfo custom.
+@titlepage
+@title Manual do GNU Parted
+@subtitle GNU Parted, versão @value{VERSION}, @value{UPDATED}
+@author Andrew Clausen @email{clausen@@gnu.org}
+@c FDL: Following section 4.B of the GNU Free Documentation License,
+@c I am required to list myself as an author of this work.
+@author Richard M. Kreuter @email{kreuter@@anduril.rutgers.edu}
+@author Bernardo João Torres da Silveira (Tradução Portuguesa) @email{bernardojts@@ig.com.br}
+
+@page
+@vskip 0pt plus 1filll
+
+Copyright @copyright{} 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.  A copy of the license is included in the section entitled ``GNU
+Free Documentation License''.
+@end titlepage
+
+@ifnottex
+@node Top
+@top TITLE
+
+@c RMK: added Top node describing this manual Should it be more verbose?
+This document describes the use of GNU Parted, a program for creating,
+destroying, resizing, checking and copying hard drive partitions, and
+the file systems on them.
+
+This document applies to @value{VERSION} of GNU Parted.  Its content is
+substantially similar to the user's manual included in the source
+distribution of GNU Parted @value{VERSION}.  That file was written by
+Andrew Clausen.
+@end ifnottex
+
+@c if we don't get menus (eg: HTML), use contents instead
+@shortcontents
+
+@menu
+* Instrodução::                 Overview
+* Usando o Parted::             Particionando um Disco Rígido
+* BIOSes e Firmwares::          Entre ligar e carregar
+* Carregadores de Boot::        Como o sistema operacional inicia
+* Sistemas Operacionais::       Sistemas Operacionais e sistemas de arquivo
+* Sistemas de Arquivo::         Sistemas de arquivo suportados, e seus truques
+* LVM e RAID::                  Volumes virtuais de disco
+* Espelhamento de Disco::       Clonando instalações
+* Software Relacionado::        Leitura posterior em tópicos relacionados
+* Copiando esse Manual::         Como fazer cópias desse manual
+* História::                     A história desse manual
+@ifnotplaintext
+* Índice::                       Índice de conceitos citados
+@end ifnotplaintext
+@end menu
+
+@node    Introdução
+@chapter Introdução
+
+@menu
+* Overview::                    GNU Parted e conhecimentos necessários
+* Software Necessário::         Dependências de software do GNU Parted
+* Plataformas Suportadas::      Aonde você pode usar o GNU Parted
+* Licença::                     O que você pode e o que não pode com o GNU Parted
+* Compilando::                  Como compilar o GNU Parted
+* Discos de boot do Parted::    Como usar o Parted em plataformas não suportadas
+@end menu
+
+@node Overview
+@section Overview do GNU Parted
+@cindex descrição do parted
+@cindex overview
+@cindex descrição do parted
+@cindex bugs, como relatar
+@cindex relatando bugs
+@cindex falando com os desenvolvedores
+
+O GNU Parted é um programa para criar, destruir, redimensionar,
+checar e copiar partições, e os sistemas de arquivos nelas.
+Ele é útil para criar espaço para novos sistemas operacionais,
+reorganizar o uso de disco, copiar dados entre discos rígidos, e
+``espelhamento de discos'' --- clonar instalações em muitos
+computadores.
+
+Esta documentação assume que você conhece partições e sistemas de
+arquivos. Se você pode querer aprender mais sobre eles, a Partition
+mini-HOWTO é leitura recomendada. Ela provavelmente vem com a sua
+distribuição, ou está disponível em
+
+@c FIXME: standards: howto labelled non-free by LDP
+@uref{http://www.linuxdoc.org/HOWTO/mini/Partition/index.html}
+
+O GNU Parted foi feito para minizar as chances de perdas de dados.
+Por exemplo, ele foi feito para evitar perda de dados durante
+interrupções (como falta de luz) e realiza muitas checagens de erro.
+Contudo podem existir bugs no Parted, então você deve fazer backup de
+arquivos importantes.
+
+A página do GNU Parted é @uref{www.gnu.org/software/parted}.  Ele pode
+ser baixado em @uref{ftp.gnu.org/gnu/parted}.
+
+A lista de e-mails do Parted é @email{parted@@gnu.org}.  Para se
+inscrever, escreve para @email{bug-parted-request@@gnu.org} com @samp{subscribe} no assunto.  Informações para inscrição e os arquivos estão disponíveis em:
+
+@uref{http://mail.gnu.org/mailman/listinfo/bug-parted}
+
+Por favor mande relatos de bugs para @email{bug-parted@@gnu.org}.
+Quando enviar relatos de bugs, por favor inclua a versão do GNU Parted.
+Se o bug é relativo a tabelas de partição, então por favor inclua a
+saída desses comandos:
+
+@example
+@group
+# @kbd{fdisk /dev/hda -l}
+# @kbd{fdisk /dev/hda}
+Command (m for help): @kbd{p}
+Command (m for help): @kbd{x}
+Extended command (m for help): @kbd{p}
+@end group
+@end example
+
+Sinta-se à vontade para pedir ajuda nessa lista --- somente confira se
+a sua pergunta não foi respondida aqui ainda.  Se você não entende a
+documentação, por favor nos diga, para que possamos explicar melhor.
+Nossa filosofia é: se você precisar pedir por ajuda, então algo precisa
+ser ajustado para que você (e outros) não precisem pedir por ajuda.
+
+Do mesmo modo, adoraríamos ouvir suas idéias :-)
+
+@node Software Necessário
+@section Software necessário para usar o Parted
+@cindex dependências de software
+@cindex software necessário
+@cindex libuuid
+@cindex e2fsprogs
+@cindex readline
+@cindex gettext
+
+O GNU Parted depende dos seguintes pacotes para compilar corretamente:
+
+@itemize @bullet
+
+@item libuuid, part of the e2fsprogs package.  Se você não tem, você
+pode pegá-la em:
+
+	@uref{http://web.mit.edu/tytso/www/linux/e2fsprogs.html}
+
+Se você quer compilar o Parted e a e2fsprogs, note que você vai
+predcisar fazer @kbd{make install} and @kbd{make install-libs} e2fsprogs.
+
+@item GNU Readline (opcional), disponível em
+
+	@uref{ftp://ftp.gnu.org/gnu/readline}
+
+Se você está compilando o Parted, e você não tem readline, você
+pode desabilitar o suporte do Parted a readline com o a opção
+@kbd{--disable-readline} para o @command{configure}.
+
+@item GNU gettext (ou software compatível) para compilação, se
+você dese suporte a internacionalização.
+
+	@uref{ftp://ftp.gnu.org/gnu/gettext}
+
+@item libreiserfs, se vocÊ quiser suporte a reiserfs:
+
+	@uref{http://reiserfs.linux.kiev.ua}
+
+Preste atenção que o parted vai automaticamente detectar a libreiserfs
+quando rodar, e vai habilitar o suporte a reiserfs.  A libreiserfs é
+nova e não foi muito testada ainda.
+
+@end itemize
+
+@node Plataformas Suportadas
+@section Platformas aonde o GNU Parted roda
+@cindex plataformas suportadas
+@cindex platformas, suportadas
+
+Esperamos que essa lista cresça bastante. Se você não tem uma dessas
+plataformas (Linux no momento!), então você precisar usar um disco de
+boot. @xref{Discos de boot do Parted, Usando os Discos de Boot do Parted}.
+
+@table @asis
+@item GNU/Linux
+Linux versões 2.0 para cima, no Alpha, PCs x86, PC98, Macintosh PowerPC, e Sun.
+
+@c RMK: veracidade: bem, *Eu* nunca ussei o parted num GNU/Hurd ... :)
+@item GNU/Hurd
+Suporte experimental.
+
+@end table
+
+A GNU libc 2.1 ou superior é necessária. Você provavelmente pode usar
+versões anteriores usando a opção @samp{--disable-nls}. 
+@xref{Compilando o GNU Parted}. (Nota: Eu acho que nós já tiramos essa
+necessidade.  Á fazer: checar se funciona na libc 2.0!)
+
+@node Licença
+@section Termos de distribuição para o GNU Parted
+@cindex termos da licença
+@cindex terms da distribuição
+@cindex gnu gpl
+@cindex gpl
+
+O GNU Parted é software livre, previsto pela GNU General Public
+Licese Version 2. Ela deve vir com a distribuição do Parted, no arquivo
+COPYING. Se não, escreva para a Free Software Foundation, Inc.,
+51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+
+Libparted é considerada parte do GNU Parted. Ela é prevista pela GNU
+General Public License. NÃO é lançada sobre a GNU Lesser General Public
+License (LGPL).
+
+@node Compilando
+@section Compilando o GNU Parted
+@cindex compilando o parted
+@cindex compilando o parted
+
+Se você quer compilar o GNU Parted, geralmente é feito com:
+
+@example
+@group
+$ @kbd{./configure}
+$ @kbd{make}
+@end group
+@end example
+
+Contudo há algumas opções para o @command{configure}:
+
+@table @code
+@item --without-readline		
+desliga o uso de readline. Isso é útil para fazer discos de boot,
+etc., onde poucas bibliotecas estão disponíveis.
+
+@item --disable-debug
+não inclui símbolos para debugar
+
+@item --disable-dynamic-loading
+desabilita o carregamento dinâmico de algumas biblioteas (somente
+reiserfs no momento, apesar de haver pretensões de expansão). Carregamento
+dinâmico é útil porque ele permite você reusar as bibliotecas compartilhadas
+do libparted mesmo quando você não sabe se algumas bibliotecas vão estar
+disponíveis. Isso tem um pequeno aumento (principalmente ligando com a
+libdl), então pode ser útil desabilitar isso em discos de boot se você
+não precisa de flexibilidade.
+
+@item --disable-fs
+desabilita o suporte a todos os sistemas de arquivo
+
+@item --disable-nls			
+desativa o suporte a língua nativa. Isso é útil par usar com versões
+antigas da glibc, ou uma versão reduzida da glibc boa para discos de
+boot.
+
+@item --disable-shared		
+desabilita o uso de bibliotecas compartilhadas. Ela pode ser necessária
+para uso com versões antigas da GNU libc, se você receber um erro sobre
+algum ``registrador cuspido''.  Também útil para discos de boot.
+
+@item --disable-Werror
+ignorar avisos na compilação
+
+@item --enable-all-static		
+compila o executável do Parted como um binário completamente estático
+Isto é conveniente para discos de boot, porque você não precisa instalar
+qualquer bibliotecas no disco de boot (contudo, alguns programas podem
+precisar delas@dots{}) Nota: você também vai precisar rodar o strip(1).
+
+@item --enable-discover-only
+suporta somente leitura/checagem
+
+@item --enable-mtrace
+habilita debugar os malloc()'s
+
+@item --enable-read-only
+desabilita escrita (para debugar)
+
+@end table
+
+@node Discos de Boot do Parted
+@section Usando um Disco de Boot do Parted
+@cindex disco de boot
+@cindex disquete de boot
+@cindex plataformas não-suportadas
+
+Se você quer rodar o Parted numa máquina sem o GNU/Linux instalado, ou
+voê quer redimensionar uma partição raíz ou de boot, você vai precisar
+usar um disco de boot.
+
+Uma imagem para um disco de boot está disponível em:
+
+@uref{ftp://ftp.gnu.org/gnu/parted/bootdisk/partboot.img}
+
+@c RMK: printing: added some wording here to make the paragraph look
+@c acceptable in print
+Para criar os discos de boot, a imagem de disco deve ser escrita para
+um disquete de boot. No GNU/Linux, isso pode ser feito com
+
+@example
+# @kbd{dd if=partboot.img of=/dev/fd0 bs=1440k}
+@end example
+
+@noindent Ou use o RAWRITE.EXE dentro do DOS.
+
+Infelizmente, o disco de boot não dá suporte a vários tipos de hardware.
+Se o seu disco rígido não é suportado, então você vai precisar fazer o
+seu próprio disco de boot. Você pode copiar o binário do parted do disco
+de boot do parted para outro disco, ou tentar outros discos de boot, ou
+fazer o seu próprio. Você pode achar o mkparted útil, que é um script
+shell para fazer seus próprios discos de boot do parted. Ele está
+disponível em:
+
+@uref{ftp://ftp.tux.org/pub/people/kent-robotti/mkparted}
+
+Para copiar o parted do disco de boot para outro disco:
+
+@enumerate
+@item Fazer o Boot de um disco de boot do Parted.
+
+@item Insira outro disquete de boot formatado em ext2. Se ele não está
+formatado, você pode criar um sistema de arquivo com, por exemplo:
+
+@example
+$ @kbd{parted /dev/fd0 mklabel loop mkpartfs primary ext2 0 1.4}
+@end example
+
+@item Monte o disquete, ex:
+
+@example
+$ @kbd{mount -t ext2 /dev/fd0 /mnt/floppy}
+@end example
+
+@item Copie o @file{/sbin/parted} para o disquete, ex:
+
+@example
+$ @kbd{cp /sbin/parted /mnt/floppy}
+@end example
+
+@item Copie @file{/lib/*} para o disquete, ex:
+
+@example
+$ @kbd{cp /lib/* /mnt/floppy}
+@end example
+
+@item Desmonte o disquete, ex:
+
+@example
+$ @kbd{umount /mnt/floppy}
+@end example
+
+@item Ache um disquete de boot que @emph{realmente} suporte o seu
+disco rígidos. (Dica: try looking for rescue disks from various
+distributions on big mirror sites)
+
+@item Tire o seu disquete de boot.  Monte o disquete aonde você copiou o Parted.
+
+@item Rode o Parted. Por exemplo,
+
+@example
+# @kbd{cd /mnt/floppy}
+# @kbd{LD_LIBRARY_PATH=. ./parted}
+@end example
+@end enumerate
+
+@node    Usando o Parted
+@chapter Usando o Parted
+@cindex comandos
+
+@menu
+* Particionando::                   Particionamento de disco no context
+* Rodando o Parted::                Particionamento com o Parted
+* Chamando o Parted::               Chamando o parted e suas opções
+* Explicação dos command::          Explicação completa dos comandos do parted
+* Exemplos::                        Sessões de exemplo do Parted
+@end menu
+
+@node Particionando
+@section Conceitos de Particionamento
+@cindex overview do particionamento
+
+Infelizmente, particionar o disco é mais complicado. Isto é porque
+exisstem interações entre muitos sistemas operacionais diferentes
+que precisam ser levadas em conta:
+
+@itemize @bullet
+@item
+A BIOS ou firmware - o programa que é colocado numa ROm dentro do seu
+computador, que faz checagem de memória, etc. Você não pode (facilmente)
+mudar os programas nesse sistema. Exemplos de BIOS ou programas firmware:
+AmiBIOS, Award, Phoenix, OpenFirmware. Você somente vai ter um desses
+programas.
+
+@item
+O carregador de boot - o programa que permite você selecionar qual
+sistema operacional que você quer usar, e carrega aquele sistema
+operacional. Exemplos: LILO, GRUB, Yaboot, Quik. Você pode ter mais de
+um carregador de boot instalado, especialmente se você tem mais de um
+tipo de sistema operacional instalado.
+
+@item
+O sistema operacional (nesse momento, este deve ser o GNU/Linux) que
+rode Parted e outros sistemas operacionais que você use.
+
+@item
+Os tipos de sistemas de arquivo - a maneira como os dados devem ser
+guardados nas partições. Exemplos deles são: ext2, fat32, hfs, reiserfs.
+Você freqüentemente ter partições de sistemas de arquivo diferente.
+@end itemize
+
+O Parted suporta muitas combinações de BIOS, carregadores de boot,
+sistemas operacionais, e sistemas de arquivo, e vai suportar mais
+ainda no futuro. Para melhor entender as regras de cada, por favor
+veja @ref{BIOSes and Firmware}, @ref{Boot Loaders}, 
+@ref{Sistemas operacionais}, e @ref{Sistemas de arquivo}.
+
+Este capítulo descreve como usar o Parted, que é sempre o mesmo, não
+importa que sistemas que você está usando. Você deve ler esse capítulo,
+então cada um dos capítulos sobre BIOS's, carregadores de boot, sistemas
+operacionais, e sistemas de arquivo. Contudo, você só precisa ler as
+seções que são relevantes pra você. Por exemplo, se você só usa o LILO
+como carregador de boot, você só precisar ler a introdução e 
+@ref{LILO, the section on LILO}.
+
+@node Rodando o Parted
+@section Usando o GNU Parted
+@cindex modos de uso
+
+O Parted tem dois modos: linha de comando e interativo. O Parted
+sempre deve começar com:
+
+@example
+# @kbd{parted @var{device}}
+@end example
+
+@noindent aonde @var{device} o dispositivo de disco rígido que você
+quer editar. (Se você é malandro, o Parted vai tentar adivinhar qual
+dispositivo você quer.)
+
+No modo de linha de comando, ele é seguido por um ou mais comandos.
+Por exemplo:
+
+@example
+# @kbd{parted /dev/sda resize 1 52 104 mkfs 2 fat16}
+@end example
+
+@noindent Opções (como @kbd{--help}) só podem ser especificadas na
+linha de comando.
+
+No modo interativo, os comandos são inseridos um de cada vez num prompt,
+e você modifica o disco imediatamente. Por exemplo:
+
+@example
+(parted) @kbd{resize 1 52.0005 104.5}
+(parted) @kbd{mkfs 2 fat16}
+@end example
+
+@c RMK MARK
+
+@noindent Abreviações não-ambíguas são permitidas. Por exemplo, você pode
+digitar ``p'' ao invés de ``print'', e ``re'' ao invés de ``resize''.
+Comandos podem ser digitados, tanto em inglês, ou em português. Isto
+pode criar ambiguidades.
+
+Também perceba que você pode specificar casas decimais nos números
+correspondentes (em megabytes). Números negativos são contados a partir
+do final do disco, com "-0" sendo o final do disco.
+
+Se você não der um paramêtro para um comando, o Parted vai perguntar para
+você. Por exemplo:
+
+@example
+(parted) @kbd{resize 1}
+Start? @kbd{0}
+End? @kbd{400}
+@end example
+
+O Parted sempre vai avisar você antes de fazer algo que é potencialmente
+perigoso, a não ser que algo seja algo obviamente perigoso (por exemplo:
+rm, mklabel, mkfs). Por exemplo, se você tenta diminuir ``muito'' uma
+partição (por exemplo, menos que o espaço disponível), o Parted vai
+automaticamente redimensionar para o mínimo que ele pode fazer sem perder
+dados. Se este mínimo é muito diferente do que você pediu, ele vai avisar
+que vai fazer uma coisa significantemente diferente do que você pediu.
+Por causa dos sistemas de particionamento terem restrições complicadas,
+o Parted geralmente vai fazer algo diferente do que você pediu (Por
+exemplo, criar um particionamento começando em 10.352, e não 10.4).
+
+@node Chamando o Parted
+@section Opções de Linha de Comando
+@cindex opções na chamada
+@cindex comandos, overview
+@cindex opções na chamada
+
+Quando chamado na linha de comando, o parted suporta a seguinte sintaxe:
+
+@example
+# @kbd{parted [@var{opção}] @var{dispositivo} [@var{comando} [@var{argumento}]]}
+@end example
+
+As seguintes opções e comandos estão disponíveis. Para explicações
+detalhadas do uso dos comandos do parted, veja @ref{Command explanations}.
+Opções começam com um hífen, e comandos não:
+
+Opções
+
+@table @samp
+@item -h
+@itemx --help
+mostra uma mensagem de ajuda
+
+@item -i
+@itemx --interactive
+quando necessário, pede ao usuário por intervenção
+
+@item -s
+@itemx --script
+nunca pede pela intervenção do usuário
+
+@item -v
+@itemx --version
+mostra a versão
+display the vesion
+@end table
+
+@node Explicação dos comandos
+@section Comandos de Sessão no Parted
+@cindex sintaxe dos comandos
+@cindex listagem detalhada dos comandos
+@cindex comandos, lista detalhada
+
+O GNU Parted nos dá os seguintes comandos:
+
+@menu
+* check::
+* cp::
+* help::
+* mklabel::
+* mkfs::
+* mkpart::
+* mkpartfs::
+* move::
+* name::
+* print::
+* quit::
+* rescue::
+* resize::
+* rm::
+* select::
+* set::
+@end menu
+
+@node check
+@subsection check
+@cindex check, descrição do comando
+@cindex descrição do comando, check
+
+@deffn Comando check @var{minor}
+
+Checa se o sistemas de arquivo na partição @var{minor}
+tem algum erro.
+
+Exemplo:
+
+@example
+(parted) @kbd{check 1}
+@end example
+
+Checa o sistema na partição 1.
+@end deffn
+
+@node cp
+@subsection cp
+@cindex cp, descrição do comando
+@cindex descrição do comando, cp
+
+@deffn Comando cp [@var{qual-dispositivo}] @var{from-minor} @var{to-minor}
+
+Copia o sistemas de arquivo na partição @var{from-minor} para a partição
+@var{to-minor}, apagando o conteúdo original da partição de destino.
+
+Um parâmetro opcional pode ser dado, @var{qual-dispositivo}, que
+especifica de qual dispositivo a partição de origem é.
+
+Sistemas de arquivo suportados
+@itemize
+@item ext2, ext3
+(desde que a partição de destino é maior que a partição de origem)
+
+@item fat16, fat32
+@item linux-swap	
+(equivalente ao mkswap na partição de destino)
+@item reiserfs (se a libreiserfs está instalada)
+
+@end itemize
+
+Exemplo:
+
+@example
+(parted) @kbd{cp /dev/hdb 2 3}
+@end example
+
+@c FIXME: this doesn't format right.
+
+Copia a partição 2 do @file{/dev/hdb} (por exemplo, @file{/dev/hdb2})
+para a partição em 3, no dispositivo aonde o Parted foi carregado,
+destruindo o conteúdo original da partição 3.
+@end deffn
+
+@node help
+@subsection help
+@cindex help, descrição do comando
+@cindex descrição do comando, help
+
+@deffn Comando help [@var{comando}]
+
+Mostra a ajuda geral, ou a ajuda no @var{comando}.
+
+Exemplo:
+
+@example
+(parted) @kbd{help resize}
+@end example
+
+Mostra a ajuda para o comando resize.
+@end deffn
+
+@node mklabel
+@subsection mklabel
+@cindex mklabel, descrição do comando
+@cindex descrição do comando, mkindex
+
+@deffn Comando mklabel @var{tipo-de-etiqueta}
+
+Cria uma nova etiqueta de disco, do tipo @var{tipo-de-etiqueta}. A nova
+etiqueta de disco não vai ter partições. Este comando (normalmente) não
+vai tecnicamente destruir seus dados, mas vai fazê-los inutilizáveis,
+e você vai precisar usar o comando rescue (@pxref{Softwares Relacionados})
+para recuperar qualquer partição. Gpart só trabalha com etiquetas de
+disco do msdos (AFAIK), mas é muito melhor que o parted para recuperar
+partições. O Parted funciona em todas as tabelas de partição.
+@footnote{Todo mundo parece ter diferentes palavras para ``etiqueta
+de disco'' --- todas essas palavras significam a mesma coisa: tabela
+de partições, mapa das partições. Também o Registro Mestre do Boot em
+máquinas x86 é guardado no mesmo setor das Tabelas de Partição (você
+não precisa saber disso para usar o Parted).}
+
+@var{tipo-de-etiqueta} deve ser de um desses tipos de tabelas de partição suportados:
+@itemize
+@item bsd
+@item loop (acesso bruto ao disco)
+@item gpt
+@item mac
+@item msdos
+@item pc98
+@item sun
+@end itemize
+
+Exemplo:
+
+@example
+(parted) @kbd{mklabel msdos}
+@end example
+
+Cria uma etiqueta de disco ao estilo msdos.
+@end deffn
+
+@node mkfs
+@subsection mkfs
+@cindex mkfs, descrição do comando
+@cindex descrição do comando, mkfs
+
+@deffn Command mkfs @var{minor} @var{tipo-de-sistema-de-arquivo}
+
+Faz um sistemas de arquivo @var{tipo-de-sistema-de-arquivo} na partição
+@var{minor}, destruindo todos os dados que residem naquela partição.
+
+Tipos de arquivo suportados:
+@itemize
+@item ext2
+@item mips
+@item fat16
+@item fat32
+@item linux-swap
+@item reiserfs (se a libreiserfs estiver instalada)
+@end itemize
+
+Exemplo:
+
+@example
+(parted) @kbd{mkfs 2 fat32}
+@end example
+
+Faz um sistemas de arquivo @var{fat32} na partição 2.
+@end deffn
+
+@node mkpart
+@subsection mkpart
+@cindex mkpart, descrição do comando
+@cindex descrição do comando, mkpart
+
+@deffn Comando mkpart @var{tipo-de-partição} [@var{tipo-de-sistemas-de-arquivo}] @var{começo} @var{fim}
+
+Cria uma nova partição, @emph{sem} criar um novo sistemas de arquivo
+na partição. Ela é útil para criar partições para sistemas de arquivo
+(ou LVM, etc.) que o Parted não suporta. Você pode especificar tipo
+de sistemas de arquivo, para definir o código de partição apropriado
+na tabela de partições para a nova partição. @var{tipo-de-sistemas-de-arquivo}
+é necessário para partições de dados (por exemplo, partições não-
+extendidas). @var{começo} e @var{fim} são a distância do começo do
+didco, isto é, a ``distância'' do começo do disco. 
+
+@var{tipo-de-partição} é uma dessas: primary (primária), extended
+(extendida), logical (lógica). Extendida e lógica somente são usadas
+para tabelas de partição do tipo msdos e mips.
+
+@var{tipo-de-sistemas-de-arquivo} deve ser um dos suportados:
+@itemize
+@item ext2
+@item fat32
+@item fat16
+@item HFS
+@item linux-swap
+@item NTFS
+@item reiserfs
+@item ufs
+@end itemize
+
+Exemplo:
+
+@example
+(parted) @kbd{mkpart logical 0.0 692.1}
+@end example
+
+Cria uma partição lógica que vai conter um sistemas de arquivo ext2.
+A partição vai começar no começo do disco, e finalizar em 692.1
+megabytes naquele disco.
+
+@end deffn
+
+@node mkpartfs
+@subsection mkpartfs
+@cindex mkpartfs, descrição do comando
+@cindex descrição do comando, mkpartfs
+
+@deffn Comando mkpartfs @var{tipo-de-partição} @var{tipo-de-sistemas-de-arquivos} @var{começo} @var{fim}
+
+Cria uma nova partição do tipo @var{tipo-de-partição} com um novo
+sistemas de arquivo do tipo @var{tipo-de-sistemas-de-arquivo} nele.
+a nova partição vai começar em @var{começo} megabytes, e tem fim em
+@var{fim} megabytes do começo do disco.
+Não use esse comando para recuperar uma partição (use mkpart ao invés
+disso).
+
+@var{tipo-de-partição} é uma dessas: primary (primária), extended
+(extendida), logical (lógica). Extendida e lógica são somente usadas
+por tabelas de partição do tipo msdos e mips.
+
+@var{tipo-de-sistemas-de-arquivo} deve ser um dos seguintes suportados:
+@itemize
+@item ext2
+@item fat32
+@item fat16
+@item linux-swap
+@item reiserfs (se a libreiserfs está instalada)
+@end itemize
+
+Exemplo:
+
+@example
+(parted) @kbd{mkpartfs logical ext2 440 670}
+@end example
+
+Cria uma partição lógica e coloca um sistemas de arquivo do tipo
+ext2, começando em 440 megabytes e finalizando em 670 megabytes
+do começo do disco.
+@end deffn
+
+@node move
+@subsection move
+@cindex move, descrição do comando
+@cindex descrição do comando, move
+
+@deffn Comando move @var{minor} @var{começo} [@var{fim}]
+
+Move a partição no disco, movendo seu começo para @var{começo}.
+Nota: mover nunca muda o número do minor.
+
+Se nenhum @var{fim} é dado, o tamanho da partição permanece o mesmo.
+
+Sistemas de arquivo suportados:
+@itemize
+@item ext2, ext3
+(desde que a partição de destino é maior que a partição de origem)
+@item fat32
+@item fat16
+@item linux-swap
+@item reiserfs (se a libreiserfs está instalada)
+@end itemize
+
+Exemplo:
+
+@example
+(parted) move 2 150
+@end example
+
+Move a partição com o minor número 2 para que ela comece 150 megabytes
+do início do disco.
+
+@end deffn
+
+@node name
+@subsection name
+@cindex name, descrição do comando
+@cindex descrição do comando, name
+
+@deffn Comando name @var{minor} @var{nome}
+
+Define um nome para a partição @var{minor} (Mac e PC98 somente). O
+nome poder ser colocado entre aspas.
+
+Exemplo:
+
+@example
+(parted) @kbd{name 2 'Secreto'}
+@end example
+
+Define o nome da partição 2 para `Secreto'.
+@end deffn
+
+@node print
+@subsection print
+@cindex print, descrição do comando
+@cindex descrição do comando, print
+
+@deffn Comando print
+
+Mostra a tabela de partições que o parted está editando.
+
+Exemplo:
+
+@example
+@group
+(parted) @kbd{print}
+Disk geometry for /dev/hda: 0.000-2445.679 megabytes
+Disk label type: msdos
+Minor    Start       End     Type      Filesystem  Flags
+1          0.031    945.000  primary   FAT         boot, lba
+2        945.000   2358.562  primary   ext2
+3       2358.562   2445.187  primary   linux-swap
+@end group
+@end example
+@end deffn
+
+@node quit
+@subsection quit
+@cindex quit, descrição do comando
+@cindex descrição do comando, quit
+
+@deffn Comando quit
+
+Sai do Parted.
+
+@c RMK: generality: the following will apply to any operating system on
+@c which parted will run, not only Linux-based ones.
+@c clausen: yeah... just that the way hurd and linux work are totally
+@c different, and it's actually very hard to speak in general.  Need to
+@c discuss this more
+É somente depois que o Parted sai que o kernel do Linux fica sabendo
+das mudanças que o Parted fez nos discos. Contudo, as mudanças causadas
+quando você digita um comando vai @emph{provavelmente} serem feitas para
+o disco imediatamente após digitar um comando. Mas, Linux é cache, e o
+cache do hardware do disco pode por uma demora nisso.
+@end deffn
+
+@node rescue
+@subsection rescue
+@cindex rescue, descrição do comando
+@cindex descrição do comando, rescue
+
+@deffn Comando rescue @var{começo} @var{fim}
+resgata partições perdidas entre @var{começo} e @var{fim}
+Procura entre @var{começo} e @var{fim} por assinaturas de sistemas de
+arquivo. Se alguma é encontrada, ele vai perguntar se você quer criar
+uma partição pra ele. Isto é útil quando você acidentalmente apagou uma
+partição com o comando rm do parted, por exemplo.
+
+Infelizmente não há uma barra de progresso, porque é difícil (uma
+possível correção!) para dizer quanto vai demorar. Se o Parted não acha
+nada, ele vai demorar muito tempo procurando (o que é um bug que deve
+ser corrigido). No entanto, no exemplo abaixo, a partição é
+instantaneamente recuperada.
+
+Exemplo:
+
+@example
+(parted) @kbd{print}
+@group
+Disk geometry for /dev/hdc: 0.000-8063.507 megabytes
+Disk label type: msdos
+Minor    Start       End     Type      Filesystem  Flags
+1          0.031   8056.032  primary   ext3
+@end group
+(parted) @kbd{rm}
+Partition number? 1
+(parted) @kbd{print}
+@group
+Disk geometry for /dev/hdc: 0.000-8063.507 megabytes
+Disk label type: msdos
+Minor    Start       End     Type      Filesystem  Flags
+@end group
+@end example
+
+AI! Nós deletamos a nossa partição ext3!!! Parted vem para nos salvar...
+
+@example
+(parted) @kbd{rescue}
+Start? 0.0005?
+End? 8063.5073?
+Information: A ext3 primary partition was found at 0.031Mb ->
+8056.030Mb.  Do you want to add it to the partition table?
+Yes/No/Cancel? @kbd{y}
+(parted) @kbd{print}
+@group
+Disk geometry for /dev/hdc: 0.000-8063.507 megabytes
+Disk label type: msdos
+Minor    Start       End     Type      Filesystem  Flags
+1          0.031   8056.032  primary   ext3
+@end group
+@end example
+
+Está de volta!  :)
+
+@end deffn
+
+@node resize
+@subsection resize
+@cindex resize, descrição do comando
+@cindex descrição do comando, resize
+
+@deffn Comando resize @var{minor} @var{começo} @var{fim}
+
+Redimensiona a partição com o número @var{minor}. A partição vai começar
+em @var{começo} do começo do disco, e terminar em @var{fim} do começo do
+disco. O resize nunca muda o número do minor. Partições extendidas podem
+ser redimensionadas, desde que a nova partição entendida contenha
+todas as partições lógicas.
+
+Note que o Parted não requer que um sistema seja ``desfragmentado''
+(Parted pode mover os dados seguramente se necessário). É uma perda
+de tempo desframentar. Não se preocupe!
+
+Sistemas de arquivo suportados:
+@itemize
+@item ext2, ext3 - restrição: o novo @var{começo} deve ser o mesmo do antigo @var{começo}.
+
+@item fat16, fat32
+
+@item linux-swap
+@item reiserfs (se a libreiserfs estiver instalada)
+@end itemize
+
+Exemplo:
+
+@example
+(parted) @kbd{resize 3 200 850}
+@end example
+
+Redimensiona a partição 3, para que ela começa em 200 megabytes
+e termine em 850 megabytes do começo do disco.
+@end deffn
+
+@node rm
+@subsection rm
+@cindex rm, descrição do comando
+@cindex descrição do comando, rm
+
+
+@deffn Comando rm @var{minor}
+
+Remove a partição com número @var{minor}. Se você acidentalmente apagar
+a partição com esse comando, use o mkpart (@emph{não} o mkpartfs) para
+recuperá-la. Você também pode usar o programa gpart (@pxref{Programas
+Relacionados}) para recuperar tabelas de partição danificadas.
+
+Nota para tabelas de partição do tipo msdos: se você apagar uma partição
+lógica, todas as partições lógicas com um número maior que essa vão ser
+apagados. Por exemplo, se você apagar uma partição lógica com um número
+minor 6, então as partições que eram número 7, 8 e 9 devem ser renumeradas
+para 6, 7 e 8 respectivamente. Isto significa que você deve atualizar a
+@file{/etc/fstab} em sistemas GNU/Linux.
+
+Exemplo:
+
+@example
+(parted) @kbd{rm 3}
+@end example
+
+Remove a partição 3.
+@end deffn
+
+@node select
+@subsection select
+@cindex select, descrição do comando
+@cindex descrição do comando, select
+
+@deffn Comando select @var{dispositivo}
+
+Seleciona o dispositivo, @var{dispositivo}, para o Parted editar. O
+dispositivo geralmente é um dispositivo de disco rígido do Linux, ou,
+se acesso direto a um arquivo é necessário --- uma partição, dispositivo
+RAID em software, ou um volume lógico LVM.
+
+Exemplo:
+
+@example
+(parted) @kbd{select /dev/hdb}
+@end example
+
+Seleciona @file{/dev/hdb} (o disco slave na primeira controladora ide
+no Linux) como um dispositivo para editar.
+@end deffn
+
+@node set
+@subsection set
+@cindex set, descrição do comando
+@cindex descrição do comando, set
+
+@deffn Comando set @var{minor} @var{sinalizador} @var{estado}
+
+Muda um sinalizador na partição de número @var{minor}. Um 
+sinalizador pode ser ``on'' ou ``off''. Algumas ou todas essas 
+flags estarão disponíveis, dependendo qual tabela de partições
+você está usando:
+
+@table @samp
+@item boot
+(Mac, MSDOS, PC98) - só deve ser habilitada se você quer fazer
+boot da partição. A semântica poder variar entre as tabelas de
+partição. Para tabelas de partição do MSDOS, somente uma partição
+pode ser carregável. Se você está instalando LILO numa partição
+(@pxref{LILO}), então aquela partição deve ser carregável. Para tabelas
+de partição do PC98, todas as partições ext2 devem ser carregáveis
+(Isto é reforçado pelo Parted).
+
+@item lba
+(MSDOS) - este sinalizador pode ser habilitado, para dizer ao MS DOS,
+o MS Windows 9x ao MS Windows ME e outros sistemas baseados neles
+para usar o modo Linear (LBA).
+
+@item root
+(Mac) - este sinalizador deve ser habilitado se a partição está na
+partição raiz a ser usada pelo Linux.
+
+@item swap
+(Mac) - este sinalizador deve ser habilitado se a partição é a swap
+que vai ser usada pelo Linux.
+
+@item hidden
+(MSDOS, PC98) - esta flag deve ser habilitada para esconder partições
+de sistemas operacionais Microsoft.
+
+@item raid
+(MSDOS) - este sinalizador pode ser habilitado para dizer ao Linux que
+essa partição é uma partição de software RAID @xref{LVM e RAID}.
+
+@item LVM
+(MSDOS) - este sinalizador pode ser habilitado para dizer à partição
+linux que a partição é um volume físico.
+
+@end table
+
+O comando print mostra todas os sinalizadores para cada partição.
+
+Exemplo:
+
+@example
+(parted) @kbd{set 1 boot on}
+@end example
+
+Define o sinalizador de @samp{boot} na partição 1.
+@end deffn
+
+@node Exexmplos
+@section Sessões de Exemplo do Parted
+@cindex sessões de exemplo do parted
+@cindex sessões de exemplo do parted
+
+Estes exemplos tenta cobrir a maior parte das circunstâncias, com a
+exceção de espelhamento de disco, que é discutido em @ref{Espelhamento
+de disco}.
+
+@menu
+* Aumentando uma partição usando espaço não-usado::
+* Redimensionando uma partição ext2 num disco cheio::
+@end menu
+
+@node Aumentando uma partição usando espaço inusado
+@subsection Exemplo: Aumentando uma partição para usar espaço inusado
+@cindex aumentando uma partição, exemplo
+@cindex exemplo, aumentando uma partição
+
+Suponhã que seu disco se pareça com isso:
+
+@example
+@group
+(parted) @kbd{print}
+Disk geometry for /dev/hda: 0.000-1000.000 megabytes
+Disk label type: msdos
+Minor    Start       End     Type      Filesystem  Flags
+1          0.063    500.000  primary   ext2
+2        500.000    625.000  primary   linux-swap
+@end group
+@end example
+
+@noindent Existem 375 Mb de espaço livre no final do disco (depois da
+partição 2). A Partição 1 tem um sistemas de arquivo ext2, que é o
+dispositivo riaz. A partição 2 é um dispositivo de swap.
+
+Suponha que você queira usar o espaço livre no final do disco para o
+sistemas de arquivo na partição 1. Você pode fazer o seguinte:
+
+@enumerate
+@item Estes passos vão modificar tanto o sistemas de arquivo raiz na
+partição 1, quanto o dispositivo de swap na partição 2. Portanto, você
+não deveria estar usando nenhuma das duas partições. Você provavelmente
+deve usar um disco de boot do Parted. @xref{Discos de boot do Parted}.
+Do disco de boot, rode o Parted:
+
+@example
+# @kbd{parted /dev/hda}
+@end example
+
+@item Remove a partição 2 (a partição de swap). Normalmente, você não
+ia querer apagar uma partição com dados nela. Mas, uma partição não
+contém dados enquanto não está montada, então você pode removê-la, e
+criar uma outra partição de swap no seu lugar.
+
+@example
+(parted) @kbd{rm 2}
+@end example
+
+@item Cria uma nova partição de swap no fim do disco:
+
+@example
+@group
+(parted) @kbd{mkpartfs primary linux-swap 875 999.9}
+(parted) @kbd{print}
+Disk geometry for /dev/hda: 0.000-1000.000 megabytes
+Disk label type: msdos
+Minor    Start       End     Type      Filesystem  Flags
+1          0.063    500.000  primary   ext2
+2        875.000   1000.000  primary   linux-swap
+@end group
+@end example
+
+@item Aumenta a partição 1 no espaço que está sobrando
+
+@example
+(parted) @kbd{resize 1 0.063 874.9}
+@end example
+
+Tudo feito!
+
+@example
+@group
+(parted) @kbd{print}
+Disk geometry for /dev/hda: 0.000-1000.000 megabytes
+Disk label type: msdos
+Minor    Start       End     Type      Filesystem  Flags
+1          0.063    874.999  primary   ext2
+2        875.000   1000.000  primary   linux-swap
+@end group
+@end example
+@end enumerate
+
+
+@node Redimensionando uma partição ext2 em um disco cheio
+@subsection Exemplo: Redimensionando uma partição ext2 num disco cheio
+@cindex redimensionando uma partição num disco cheio, exemplo
+@cindex exemplo, redimensionando uma partição num disco cheio
+
+Suponha que o seu disco se pareça com isso:
+
+@example
+@group
+(parted) @kbd{print}
+Disk geometry for /dev/hda: 0-8063.5 megabytes
+Disk label type: msdos
+Minor   Start     End    Type            Filesystem     Flags
+1          0.0     23.5  primary         ext2           boot
+2         23.5   8056.0  extended
+5         23.6   3545.6  logical         ext2
+6       3545.6   7067.7  logical         ext2
+7       7067.7   7326.5  logical         ext2
+8       7326.5   7585.4  logical         ext2
+9       7585.4   7844.2  logical         linux-swap
+@end group
+
+@group
+$ @kbd{df -h}
+Filesystem            Size  Used Avail Use% Mounted on
+/dev/hda8             251M   31M  207M  13% /
+/dev/hda1              23M  2.4M   19M  11% /boot
+/dev/hda5             3.4G  577M  2.7G  18% /usr
+/dev/hda6             3.4G  289M  2.9G   9% /home
+/dev/hda7             251M   12M  226M   5% /var
+@end group
+@end example
+
+Suponha que você queira aumentar a partição do @file{/var}
+@file{/dev/hda7}) para 1GB, usando algum espaço da partição
+do @file{/home} (@file{/dev/hda6}).
+
+Para redimensionar uma partição usando o Parted, você pode usar
+o comando resize:
+
+@example
+(parted) resize @var{numero-da-particao} @var{novo-começo} @var{novo-fim}
+@end example
+
+@noindent @var{novo começo} deve ser o mesmo que o antigo começo em
+partições ext2 (infelizmente). Então esse processo vai ficar mais
+complicado. @emph{É} possível, portanto. @footnote{Se o Parted suportasse
+mover o começo de partições ext2 (como ele faz com partições FAT), então
+seria muito mais simples:
+
+@example
+@group
+(parted) @kbd{resize 6 3545.6 6200}
+(parted) @kbd{resize 7 6200 7326.5}
+@end group
+@end example
+}
+
+@enumerate
+@item Diminuir a partição do @file{/home} (@file{/dev/hda6}) em 500MB:
+
+@example
+# @kbd{parted /dev/hda}
+(parted) @kbd{resize 6 3545.6 6200}
+@end example
+
+@item Cria uma nova partição no seu lugar. Ali é onde @file{/var} vai
+estar, eventualmente. Esta nova partição vai ser numerada como 10.
+
+@example
+(parted) @kbd{mkpartfs logical ext2 6200 7067.7}
+@end example
+
+@item Copia a antiga partição do @file{/var} (@file{/dev/hda7}) para
+a nova (@file{/dev/hda10}).
+
+@example
+(parted) @kbd{cp 7 10}
+@end example
+
+@item Apaga a antiga @file{/var}
+
+@example
+(parted) rm 7
+@end example
+
+Nesse momento: todas as partições lógicas com número maior que 7
+mudaram de número. Então 8, 9 e 10 viraram 7, 8 e 9 respectivamente.
+
+Esta renumeração não vai acontecer de verdade enquanto qualquer uma delas
+estiver montadas naquele disco (só vai acontecer quando você reiniciar).
+Isto é do que essa mensagem de aviso trata. Então você @emph{nunca} deve
+tentar montar um sistemas de arquivo tocado pelo Parted (redimensionado
+ou criado pelo Parted), antes de reiniciar se você receber essa mensagem.
+
+@item Redimensiona a nova partição do @file{/var} (agora numerada para 9),
+adicionando o espaço da antiga partição do @file{/var}:
+
+@example
+@group
+(parted) @kbd{resize 9 6200 7326.5}
+(parted) @kbd{quit}
+Warning: The kernel was unable to re-read the partition table on
+/dev/hda (Device or resource busy).  This means Linux knows nothing
+about any modifications you made.  You should reboot your computer
+before doing anything with /dev/hda.
+@end group
+@end example
+
+@item Pelos números das partições terem mudado, a @file{/etc/fstab} deve
+ser atualizada. Isto pode ser feito antes de reiniciar, porque a partição
+raiz não foi tocada pelo Parted. (Se você quer que o Parted faça algo com
+a partição raiz, você precisa usar o disco de boot).
+
+Se a antiga @file{/etc/fstab} se parece com isso:
+
+@example
+@group
+/dev/hda8      /            ext2    defaults        1 1
+/dev/hda1      /boot        ext2    defaults        1 2
+/dev/hda6      /home        ext2    grpquota,usrquota  0  2
+/dev/cdrom     /mnt/cdrom   iso9660 noauto,owner,ro 0 0
+/dev/hda5      /usr         ext2    defaults        1 2
+/dev/hda7      /var         ext2    grpquota,usrquota  0  2
+/dev/fd0       /mnt/floppy  auto    noauto,owner    0 0
+none           /proc        proc    defaults        0 0
+none           /dev/pts     devpts  gid=5,mode=620  0 0
+/dev/hda9      swap         swap    defaults        0 0
+@end group
+@end example
+
+Algumas linhas precisam ser alteradas:
+A few lines need to be changed:
+@itemize
+@item @file{/var} is now /dev/hda9 (because we copied it to a new
+partition)
+
+@item @file{/dev/hda8} (the root device) has been renumbered to
+@file{/dev/hda7}
+
+@item @file{/dev/hda9} (the swap device) has been renumbered to
+@file{/dev/hda8}
+@end itemize
+
+The new @file{/etc/fstab} looks like this:
+
+@example
+@group
+/dev/hda7      /            ext2    defaults        1 1
+/dev/hda1      /boot        ext2    defaults        1 2
+/dev/hda6      /home        ext2    grpquota,usrquota  0  2
+/dev/cdrom     /mnt/cdrom   iso9660 noauto,owner,ro 0 0
+/dev/hda5      /usr         ext2    defaults        1 2
+/dev/hda9      /var         ext2    grpquota,usrquota  0  2
+/dev/fd0       /mnt/floppy  auto    noauto,owner    0 0
+none           /proc        proc    defaults        0 0
+none           /dev/pts     devpts  gid=5,mode=620  0 0
+/dev/hda8      swap         swap    defaults        0 0
+@end group
+@end example
+
+@item Reboot.  That's it!
+@end enumerate
+
+@node    BIOSes and Firmware
+@chapter BIOSes and Firmware
+@cindex bios
+@cindex firmware
+
+``BIOS'' (Basic Input/Output System) and ``firmware'' mean the same
+thing.  However, on PC and PC98 based computers, the word BIOS is more
+common.  On Apple Macintosh and Sun computers, the word ``firmware'' is
+more common.  The BIOS or firmware program is built into a ROM chip
+inside your computer, that does memory checks, etc.  You can not
+(easily) change this program.  Since BIOSes today are generally
+compatible with BIOSes in use 20 years ago, these programs tend to have
+an antiquated design.  Features have been added in counter-intuitive
+ways over the years, leading to overly complicated systems that cause a
+lot of confusion today.
+
+@menu
+* PC BIOSes::                   The Legacy of IBM
+* Macintosh OpenFirmware::      Go Forth, Young Hacker!
+* PC98 BIOS::                   The BIOS of the PC98 computer
+* SGI / MIPS Firmware::         The firmware of SGI MIPS computers
+@end menu
+
+@node PC BIOSes
+@section The PC BIOS
+@cindex pc bios
+@cindex bios, pc
+
+There are a few popular PC BIOSes: AmiBIOS, Award, Phoenix, and others.
+They all work in a similar way.  None of these BIOSes understand or know
+about partition tables.  They affect partitioning indirectly.
+
+There are a few popular PC BIOSes: AmiBIOS, Award, Phoenix, and others.
+They all work in a similar way.  None of these BIOSes understand or know
+about partition tables.  They affect partitioning indirectly.
+
+outras. Elas todas trabalham de modo semelhante. Nenhma dessas BIOSs
+entende ou conhecem sobre tabelas de partição, mas elas a afetam
+indiretamente.
+
+O seguinte ocorre quando o seu computador é ligado:
+
+@enumerate
+@item Estas BIOSs carregam o primeiro bit do programa carregador de boot,
+guardado na MBR (Master Boot Record - Registro Mestre do Boot) no
+disco rígido.
+
+@item A BIOS execute o primeiro bit do carregador de boot, guardado na MBR
+(Master Boot Record - Registro Mestre do Boot) no disco rígido.
+
+@item O programa carregador de boot usa a BIOS para carregar o resto do
+próprio programa.
+
+@item O carregador de boot usa a BIOS para carregar o sistema operacional
+(ou quem sabe, outro carregador de boot, nesse caso, você vai para o passo
+2 de novo).
+
+@item O sistema operacional pode ou não usar a bios para acessar arquivos
+(o Windows geralmente usa, o Linux ou o BSd não).
+@end enumerate
+
+@c RMK: FIXME: learn how to refer to entries in the above list, so that
+@c the following paragraphs doesn't depend on the order details of the
+@c list.
+
+Os passos (3) a (5) involvem programas comunicando-se com a BIOS, para
+pedir para falar com os discos. Existem duas maneiras de se comunicar
+com a BIOS para fazer isso: usando CHS (Cylinders Heads and Sectors -
+Cilindros Trilhas e Setores) ou LBA (Linear Block Addressing -
+Endereçamento de Blocos Linear). BIOSs antigas somente vão suportar CHS.
+As novas BIOSs geralmente suportam tanto LBA quanto CHS, apesar do
+suporte a CHS ser interrompido no futuro. (o CHS é considerado um sistema
+legado horrível.)
+
+Passos (3) e (4), feitos pelo carregador deboot, sempre vão usar o mesmo
+método de acesso --- sempre LBA ou sempre CHS. No caso do carregador de
+boot do Windows, ele é determinado pelo indicador de LBA na partição de
+boot do Windows (@pxref{definida} para informações sobre indicadores).
+No caso do Linux, você provavelmente estará usando LILO ou GRUB como
+carregador de boot. O GRUB usa LBA se estiver disponível, e CHS se não.
+O LILO requer que você escolha quando você instala ele (com as opções
+"linear" ou "lba32").
+
+@c RMK: FIXME: find way to refer to above steps by @-command
+Passo (5) - E/S feita pelo sistema operacional - somente o Windows
+faz E/S pela BIOS. [Nós ainda não sabemos o suficiente sobre os
+problemas, mas parece que o Windows pode ter seus próprios problemas
+com o modo CHS. As pessoas nos disseram de vezes em que o Windows
+corrompe seu próprio sistemas de arquivo, etc. É realmente difícil
+para nós saber o que está acontecendo. Nós recomendamos fortemente
+que você use LBA, se você pode!]
+
+Então existem 3 possíveis situações, todas discutidas aqui:
+
+@enumerate
+@item Você está usando o modo CHS, e a sua BIOS só suporta o modo CHS.
+@item Você está usando o modo CHS, e a sua BIOS suporta tanto LBA quanto CHS.
+Então, você quer converter do modo CHS para LBA O Mais Rápido Possível
+@sc{tm}.
+@item Você já está usando o modo LBA.
+@end enumerate
+
+@menu
+* O Parted e o modo CHS::         Usando o Parted em BIOSs com modo CHS
+* Do modo CHS para LBA::          Convertendo a BIOS do modo CHS para LBA
+* O Parted e o modo LBA::         Usando o Parted com o modo LBA
+@end menu
+
+@node O Parted e o modo CHS
+@subsection Usando o Parted em BIOS do modo CHS
+@cindex bios de modo chs
+@cindex chs, bios com geometria de disco do modo
+
+O Linux normalmente detecta a geometria da BIOS automaticamente. Contudo,
+às vezes isso dá errado. Neste caso, você mesmo deve dizer ao Linux,
+passando um parâmetro para ele. Por exemplo, se o Linux pensa que o seu
+disco rígido @file{/dev/hda} tem a geometria 256/64/63, mas o programa
+de configuração da BIOS diz que a geometria é 512/32/63, então você deve
+passar esse parâmetro ao Linux:
+
+@example
+@kbd{hda=512,32,63}
+@end example
+
+Os parâmetros são passados de diversas maneiras, dependendo do carregador
+de boot que você está usando. Você provavelmente está usando o LILO. Neste
+caso, você adiciona a seguinte linha para o @file{/etc/lilo.conf}: (Você
+então precisa rodar o @command{/sbin/lilo}, e reiniciar para as mudanças
+terem efeito)
+
+@c RMK: FIXME: can't get the quotes right: texinfo double quotes ``'' don't
+@c work in example's, and keyboard double quotes "" don't look right in text.
+@example
+append="hda=512,32,63"
+@end example
+
+O Parted geralmente pode detectar se o Linux detectou a geometria incorreta.
+Contudo, ele não pode fazer isso se não existem partições no disco. Neste
+caso, você mesmo pode checar. É muito importante que você faça isso.
+
+Algumas vezes, o Parted vai reclamar que as partições não estão alinhadas
+aos limites dos cilindros. O Parted vai te dar a opção de ignorar. Se você
+ignorar, então o Parted via fazer alguns truques com a sua tabela de
+partições. No Linux não vai ter problemas. No DOS e no Windows não vão ter
+problemas se eles estão usando o modo LBA. Se o DOS/Windows está usando
+o modo CHS, então reinstalar o gerenciador de boot (@pxref{MS DOS
+MS Windows 9x MS Windows ME}) deve resolver qualquer problema - mas mudar
+pro modo LBA é preferível (veja @pxref{Do modo CHS para LBA}).
+
+Partições que estão envolvidas no processo de boot devem finalizar antes
+do cilindro 1024, se o modo CHS está sendo usado. Veja a seção sobre
+o processo de boot para determinar se a partição está envolvida no
+processo de boot. A configuração típica é ter uma pequena partição
+Linux para o @file{/boot}, uma partição Windows, e então a(s)
+partição(ões) Linux.
+
+@node Do modo CHS para o LBA
+@subsection Convertendo do modo CHS para o LBA
+@cindex chs para lba, converting de
+
+Para fazer com que o carregador de boot do Windows e o sistema
+operacional usarem o modo LBA, somente defina o indicador LBA em todas
+as partições FAT @ref{set}. Você não deve ter problemas. Se você
+tiver problemas carregando o Windows, então reinstalar o carregador
+de boot do Windows vai consertar isso @ref{MS DOS MS Windows 9x MS
+Windows ME}.
+
+O Linux não usa a BIOS para E/S. Contudo, o carregador de boot (LILO
+ou GRUB) pode. O GRUB automaticamente usa LBA, caso esteja disponível.
+O LILO exige a opção ``linear'' ou ``lba32''. Então, se o LILO ainda
+carrega após mudar o @file{/etc/lilo.conf} e rodar o @command{/sbin/lilo},
+então está tudo feito! @xref{LILO}. (Se você tiver problemas, reverta
+para CHS de volta, removendo a opção ``linear'' ou ``lba32'', e
+reinstalando o lilo do disco de boot.)
+
+Agora que você está usando LBA continue lendo@dots{}
+
+@node O Parted e o modo LBA
+@subsection Usando o Parted no modo LBA
+@cindex modo lba
+@cindex lba, geometria de disco do modo
+
+O modo LBA resolve todos os problemas do CHS. Contudo, não existe uma
+maneira confiável para o Linux ou o Parted saber que você está usando
+LBA, então o Parted pode te dar avisos sobre cilindros não alinhados,
+ou a geometria da BIOS ser inconsistente, etc. Você pode ignorar essas
+mensagens, se você está usando o modo LBA. (Versões antigas do Parted
+tinham problemas, mas todos foram resolvidos).
+
+Quando o seu disco está no modo LBA, o Parted (e a maioria dos outros
+programas) vai dizer que a sua geometria é X/255/63 - a menos que
+você tenha mudado do CHS para LBA.
+
+@node Macintosh OpenFirmware
+@section OpenFirmware do the Apple Macintosh
+@cindex open firmware, macintosh
+@cindex macintosh open firmware
+
+Existem duas versões do OpenFirmware do PowerMac - uma usada no
+``antigo mundo'' do PowerMac, e outra usada no ``novo mundo''. O
+``Novo mundo'' se refere aos PowerPCs coloridos feitos desde 1999.
+Eles tem diferenças significantes. Contudo, ambos entendem tabelas
+de partição.
+
+Ambas requerem que o usuário escolha exatamente uma partição para ser
+a partição de boot (a partição com o carregador de boot). Contudo,
+eles usam mecanismos diferentes para fazer isso.
+
+@menu
+* Velho Mundo::
+* Novo Mundo::
+@end menu
+
+@node Velho Mundo
+@subsection OpenFirware Macintosh do Velho Mundo
+@cindex firmware macintosh do velho mundo
+@cindex velho mundo, firmware macintosh do
+@cindex firmware macintosh do velho mundo
+
+A partição escolhida para dar boot é definida por vários carregadores
+de boot, como o Quik. Então, você não deve precisar fazer nada. Nós
+poderíamos adicionar suporte a isso no Parted, se alguém gritar muito
+alto@dots{}
+
+@node Novo Mundo
+@subsection OpenFirware Macintosh do Novo Mundo
+@cindex firware macintosh do velho mundo
+@cindex novo mundo, firwarem macintosh do
+@cindex firwarem macintosh do novo mundo
+
+@c RMK: completeness: do we have a description of HFS anywhere here?
+OpenFirmware do novo mundo requer que a partição que dá boot seja HFS
+e marcada como partição de boot. Ela usa um mecanismo diferente para
+ser marcada como a partição de boot. Isto é controlado com o indicador
+``boot'' no Parted. Por exemplo:
+
+@example
+(parted) @kbd{set 2 boot on}
+@end example
+
+@node BIOS dos PC98
+@section As BIOS dos PC98
+@cindex bios do pc98
+
+@c RMK: completeness : should we describe what machines are likely to
+@c have a PC 98 bios?
+@c RMK: illiteracy: the only pages I found for PC98 info were in Japanese,
+@c which I can't read :(
+A BIOS dos PC98 permitem a você marcar qualquer número de partição
+como bootável. Você pode desmarcar ou marcar uma partição como bootável
+com o indicador ``boot'' do Parted. Por exemplo:
+
+@example
+(parted) @kbd{set 2 boot off}
+@end example
+
+
+@node Firmwares dos SGI / MIPS
+@section Firmware dos SGI / MIPS
+@cindex firmware dos sgi
+@cindex firmware dos mips
+
+
+
+O firmware dos SGI / MIPS permite você fazer o boot de arquivos de
+boot especiais, que são gerenciados pela tabela de partições. No
+Parted, esses arquivos de boot são tratados como partições lógicas
+dentro das partições extendidas.
+
+Por exemplo:
+
+@example
+Disk label type: mips
+Minor    Start       End     Type      Filesystem  Name        Flags
+9          0.000      2.732  extended
+17         0.002      0.002  logical               sgilabel
+18         0.003      1.162  logical               symmon
+19         1.404      1.670  logical               sash
+1          2.732   8555.212  primary   xfs                     root
+2       8555.213   8682.270  primary                           swap
+@end example
+
+A Partição 9 é a partição extendida (um cabeçalho de volume, na terminologia
+dos SGI/MIPS) aonde o arquivo de boot pode ficar. As partições 17, 18 e 19
+são os arquivos de boot. Seus nomes podem ser manipulados com o comando name
+do Parted. A partição 1 e 2 são partições normais. Elas não podem ter nomes.
+
+Note que o Linux não vê os arquivos de boot como partições (talvez devesse?).
+Então o /dev/hda17 não existe no Linux. Você deve usar o dvhtool(8) para
+manipular arquivos de boot.
+
+@node    Carregadores de Boot
+@chapter Carregadores de Boot
+@cindex carregadores de boot
+
+O carregador de boot é o programa que permite que você selecione qual
+sistema operacional você quer usar, e carrega aquele sistema operacional.
+Você pode ter mais de um carregador de boot instalado, especialmente se
+você tem mais de um tipo de sistema operacional instalado. É comum para
+carregadores de boot poderem carregar outros carregadores de boot.
+
+Quando se redimensiona uma partição, muitos dados se movem. Muitos
+carregadores de boot não entendem o sistemas de arquivo. Eles só lembram
+aonde que as informações necessárias para o carregador de boot reside.
+Se esta informação é movida, deve-se dizer ao carregador de boot pra
+onde elas se moveram. Isto é feito reinstalando o carregador de boot
+(por exemplo, rodando novamente o programa instalador do carregador de
+boot, que normalmente envolve digitar um único comando na shell). Nem
+todos os carregadores de boot exigem isso.
+
+@menu
+* LILO::                                        O LInux LOader
+* GNU GRUB::                                    GNU GRand Unified Boot-loader
+* MS DOS MS Windows 9x MS Windows ME::          Software Legado da MS
+* MS Windows NT::                               Carregador do MS Windows NT
+* MS Windows 2000::                             Carregador do MS Windows 2000
+* Quik::                                        Quik
+* Yaboot::                                      Yaboot
+
+@end menu
+
+@node LILO
+@section LILO: um carregador de boot para o kernel do Linux
+@cindex lilo
+
+LILO é um carregador de boot popular para os x86. O carregador de
+boot do LILO é geralmente instalado com:
+
+@example
+# @kbd{/sbin/lilo}
+@end example
+
+Se você está usando um disco de boot, então você deve fazer isso:
+(aonde @file{/dev/hda1} deve ser substituído com a partição raiz)
+
+@example
+# @kbd{mount /dev/hda1 /mnt}
+# @kbd{chroot /mnt /sbin/lilo}
+# @kbd{umount /dev/hda1}
+@end example
+
+Versões antigas do LILO não suportam o modo LBA (@pxref{BIOSs de PC}).
+O modo LBA é habilitado com as opções lba32 ou linear, no @file{/etc/lilo.conf}
+(veja a documentação do LILO para maiores informações).
+
+Se você usa o modo LBA, você não deve ter problemas, contanto que a
+sua BIOS suporte LBA.
+
+Se você usa o modo CHS, então a partição com o diretório @file{/boot}
+deve acabar antes do cilindro 1024. Então, se você tem um disco grande
+(vamos dizer, com mais de 8 gigabytes), você deve ter um partição para
+o @file{/boot} próximo ao começo do disco.
+
+@node GNU GRUB
+@section GRUB: O GNU GRand Unified Bootloader
+@cindex grub
+
+GRUB é um carregador de boot relativamente novo, para x86. Dependendo
+de como o GRUB é instalado, ele pode entender o sistemas de arquivo,
+ou simplesmente lembrar aonde os arquivos de boot estão guardados. Ele
+entende o sistemas de arquivo se ele está usando ``Stage1.5''. Se ele
+não está usando Stage1.5, ou o número da partição muda, então você precisa
+reinstalar o Stage2 (por favor veja a documentação do GRUB). Do modo
+contrário, você não precisa fazer nada.
+
+O GRUB automaticamente detecta se LBA está disponível, e vai  usá-lo
+se ele está disponível (equivalente à opção ``lba32'' do LILO).
+
+@node MS DOS MS Windows 9x MS Windows ME
+@section Carregadores de Boot Legados dos Sistemas Operacionais Microsoft
+@cindex carregador de boot do win32
+@cindex carregador de boot legado dos sistemas operacinais microsoft
+
+O DOS e Windows requerem que você reinstale o carregador de boot se você
+mudar o tipo de FAT (FAT16 ou FAT32) da partição de boot. O Parted vai
+avisar você antes de fazer isso. Para reinstalar o carregador de boot,
+você pode tanto criar um disco de boot, ou usar o CDROM de boot. O
+método do disco de boot não funciona com o Windows ME.
+
+@itemize @minus
+@item MÉTODO DO DISCO DE BOOT  (DOS/Windows 9x)
+
+@enumerate
+
+@item Criar um disco de boot do Windows
+
+@itemize @bullet
+
+@item Carregue o Windows. @emph{Isto implica que você deve
+fazer um disco de boot antes de usar o parted}.
+
+@item Clique com o direito no drive de disquete no Windows Explorer.
+
+@item Clique em ``Formatar''.
+
+@item Selecione ``Copiar somente os arquivos de sistema''.
+
+@item Clique em ``Formatar''.
+
+@item Copie o C:\WINDOWS\COMMAND\SYS.COM para o A:\ Nota: você deve
+ter chamado o C:\WINDOWS de algo mais, como C:\WIN98.
+
+@end itemize
+
+@item Carregue o disco de boot do Windows, deixando o disco de boot no
+drive de disquete quando carregar. Você pode precisar dizer à sua BIOS
+para usar o disquete como boot.
+
+@item Digite o seguinte no prompt do DOS:
+
+@example
+A:\>@kbd{sys c:}
+@end example
+
+@end enumerate
+
+@item MÉTODO DO CDROM:  (Windows 9x/ME)
+
+@enumerate
+
+@item Insira o CDROM do Windows, e faça boot dele. (Selecione ``boot sem
+suporte a CDROM'').
+
+@item Digite:
+
+@example
+A:\>@kbd{c:}
+C:\>@kbd{cd \windows\command}    (pode ser \win98\command, ou similar)
+C:\WINDOWS\COMMAND>@kbd{sys c:}
+@end example
+
+Isto é tudo.
+
+@end enumerate
+@end itemize
+
+Além disso, o DOS e Windows impõe algumas restrições:
+
+@itemize @bullet
+
+@item A partição de boot deve ser selecionada com o indicador ``boot''.
+Somente uma partição podem ser selecionadas (algumas vezes chamadas de
+partições ``ativas''). Por exemplo, para definir a partição 3 como a
+partição de boot faça:
+
+@example
+(parted) @kbd{set 3 boot on}
+@end example
+
+@item O MS DOS e o MS Windows 9x/ME só podem fazer boot da primeira
+partição FAT. Isto é, a partição FAT com o menor número de partição,
+que não está oculta. Note que os carregadores de boot como o GRUB e o
+LILO (e algumas BIOSs) podem mudar esse comportamento@dots{}
+
+@item Se você está usando endereçamento CHS (ao invés de endereçamento
+LBA), então o início da partição de boot deve ser antes do cilindro 1024.
+Você pode dizer ao MS DOS para usar (ou não usar) o endereçamento LBA,
+habilitando ou desabilitando o indicador LBA na partição de boot. Por
+exemplo, habilitar o indicador LBA na partição 2, faça:
+
+@example
+(parted) @kbd{set 2 lba on}
+@end example
+
+Nota: o endereçamento LBA não é suportado pelo MS-DOS 6.22 ou inferior,
+bem como todas as versões do PC-DOS.
+
+Aviso: algumas BIOSs não vão habilitar o endereçamento LBA, ao menos
+que você habilite na BIOS também. Se, por alguma razão, o Windows não
+inicializar após mudar esse indicador, então este é provavelmente o
+problema.
+
+@item o MS-DOS ``real'' (por exemplo, versão 6.2 pra cima) e o MS-DOS
+7.0 (por exemplo, o Windows 95/98a) não conhecem FAT32. Então é possível
+inicializar eles da @emph{segunda partição fat} (somente FAT16, claro),
+quando @emph{a primeira partição fat} é FAT32. Ambas tem que ser partições
+primárias, então você provavelmente vai ter que definir qual você quer
+inicializar como partição ativa.
+
+@end itemize
+
+@node MS Windows NT
+@section O Carregador de Boot do Microsoft Windows NT
+@cindex carregador de boot do microsoft windows nt
+
+O Windows NT não pode ler ou inicializar de partições FAT32. Portanto,
+você não deve nunca converter partições FAT16 para FAT32, se você quer
+usá-las com o Windows NT.
+
+@node MS Windows 2000
+@section O Carregador de Boot do Microsoft Windows 2000
+@cindex carregador de boot do microsoft windows 2000
+
+O Windows 2000 requer que você reinstale o carregador de boot se você
+mudar o tipo de FAT (FAT16 ou FAT32) do sistemas de partições. O Parted
+vai avisar você antes de tentar fazer isso. Para reinstalar o carregador
+de boot, faça:
+
+@enumerate
+@item Faça boot do CD do Windows 2000.
+@item Ele vai perguntar se você quer continuar. Aperte Enter.
+@item Ele então vai perguntar se você quer instalar um novo sistema, ou
+Consertar um sistema pré-existente. Escolha a última (apertando ``R'').
+Ele vai perguntar se você quer reparar automaticamente, ou se você quer
+usar o console de recuperação. Escolha usar o console de recuperação.
+@item No console, digite:
+
+@example
+C:\>@kbd{fixboot}
+@end example
+
+O sistema deve inicializar com sucesso agora.
+@end enumerate
+
+O carregador de boot do NT/2000 também precisa:
+
+@itemize @bullet
+
+@item seu próprio código no setor de boot de uma partição PRIMÁRIA
+FAT12, FAT16 ou NTFS (FAT32 é possível com o Windows 2000), que é
+chamada de ``partição de sistema''. Esta partição deve ser marcada
+com o indicador de ``boot'' no Parted.
+
+@item os arquivos NTLDR, BOOT.INI e NTDETECT.COM dentro do sistema
+da partição. O BOOT.INI guarda toda a informação sobre a localização
+física da primeira partição ou de um drive lógico aonde o Windows NT
+foi instalado, chamado de ``partição de boot''. A partição de boot e
+a partição de sistema podem estar localizadas juntas numa partição
+primária.
+
+@c RMK: usage: ambiguous use of 'this': it refers to disk controller?
+@item opcionalmente, o arquivo NTBOOTDD.SYS dentro do sistemas de
+partições que é renomeado driver de disco para o seu controlador SCSI
+ou IDE, quando ele não tem BIOS própria (ou sua BIOS não acessa discos
+grandes).
+
+@item com o MS Windows NT, o sistemas de partições deve terminar antes
+do cilindro 1024 e @emph{deve} começar antes do cilindro 1024. Se ele
+termina antes do cilindro 1024 e os arquivos necessários para a
+inicialização são movidos depois dessa borda, o MS Windows NT não vai mais
+inicializar.
+@item ambos a partição de boot e de sistemas deve ser redimensionada, sem
+a necessidade de qualquer outra mudança.
+
+@item se o número da partição de boot muda (por exemplo, seu número
+de partição), então o BOOT.INI deve ser atualizado.
+
+@end itemize
+
+@node Quik
+@section Quik: um carregador de boot para PowerPCs Macintosh
+@cindex carregador de boot para macintoshs do velho mundo
+@cindex velho mundo, carregador de boot do macintosh do
+
+O Quik é um carregador de boot popular para PowerPCs Macintosh do
+``Velho Mundo''. Você precisa reinstalar o Quik se você redimensionar
+uma partição ext2, usando:
+
+@example
+# @kbd{/sbin/quik}
+@end example
+
+@node Yaboot
+@section Yaboot: um carregador de boot para PowerPCs Macintosh
+@cindex carregador de boot para macintoshs do velho mundo
+@cindex velho mundo, carregadores de boot para macintoshs do
+O Yaboot é um carregador de boot popular para Power PCs Macintosh
+do ``velho mundo''. (``Novo-mundo'' se refere aos PowerPCs coloridos
+fabricados desde 1999.)
+
+O Yaboot precisa de sua partição de boot que deve ser pelo menos 800k.
+Então, se você está instalando o GNU/Linux do zero, você faria algo
+como isso:
+
+@example
+(parted) @kbd{mklabel mac}
+@group
+(parted) @kbd{print}
+Disk geometry for /dev/sda: 0.000-6149.882 megabytes
+Disk label type: mac
+Minor    Start       End     Filesystem  Name          Flags
+1          0.000      0.031              Apple
+@end group
+(parted) @kbd{mkpart primary hfs 0.032 1}
+@group
+(parted) @kbd{print}
+Disk geometry for /dev/hdb: 0.000-6149.882 megabytes
+Disk label type: mac
+Minor    Start       End     Filesystem  Name          Flags
+1          0.000      0.031              Apple
+2          0.031      1.000
+@end group
+(parted) @kbd{set 2 boot on}
+@group
+(parted) @kbd{print}
+Disk geometry for /dev/hdb: 0.000-6149.882 megabytes
+Disk label type: mac
+Minor    Start       End     Filesystem  Name          Flags
+1          0.000      0.031              Apple
+2          0.031      1.000                            boot
+@end group
+@end example
+
+Você não precisa reinstalar o Yaboot depois de redimensionar uma partição.
+O Yaboot é instalado com o ybin @ref{Software Relacionado}.
+
+@node Sistemas Operacionais
+@chapter Sistemas Operacionais
+@cindex sistemas operacionais
+
+O Parted somente roda sob o GNU/Linux e o GNU/Hurd, no momento. Contudo,
+ele pode ser usado para redimensionar partições usadas por, ou
+compartilhadas com outros sistemas operacionais.
+
+Quando você quer redimensionar um sistemas de arquivo, certifique-se
+de que não está montado. O Parted não pode redimensionar partições
+montadas (isto pode mudar no futuro@dots{}).
+Se você modificar a tabela de partições num disco com um partição montada
+nela, você deve reiniciar imediatamente. O Linux não vai saber sobre as
+mudanças que você fez na tabela de partições. (Isto vai ser corrigido,
+com o kernel 2.4, e quando nós adicionarmos suporte a ele.)
+
+Se você quer redimensionar sua partição root ou de boot, use um disco
+de boot @xref{Discos de boot do Parted}, ou use o redimensionador
+online do Andreas Dilger, incluído no pacote ext2resize @ref{Ext2}.
+
+@menu
+* GNU/Linux e FreeBSD::     Suporte a tabelas de partição nesses sistemas livres
+* MS Windows and OS/2::     Suporte a tabelas de partição nesses sistemas
+* MacOS::                   As tabelas de partição suportadas pelo MacOS
+@end menu
+
+@node GNU/Linux e FreeBSD
+@section Tabelas de partição usadas pelo GNU/Linux e FreeBSD
+@cindex tabelas de partição do gnu/linux
+@cindex tabelas de partição do freebsd
+@cindex freebsd, tabelas de partição do
+@cindex linux, tabelas de partição do
+
+Ambos os sistemas GNU/Linux e FreeBSD são mais mais flexíveis quanto
+a tabelas de partição, suportando muitos tipos de tabelas de partição.
+
+@c RMK: padding: added notes about disklabel support for Linux kernel
+Por ser mais difícil para uma máquina usar discos rígidos com tabelas
+de partição normalmente usadas por outras arquiteturas, distribuições
+padrão do kernel do Linux somente suportam as tabelas de partição
+populares para a arquitetura para as quais foram compiladas. Por
+exemplo, um kernel do Linux padrão compilado para o PC provavelmente
+não vai ter suporte a tabelas de partição do Mac ou da Sun. Para acessar
+os sistemas de arquivo em discos com tabelas de partição não suportados,
+o kernel vai ter que ser recompilado.
+
+O FreeBSD tem um sistemas de tabelas de partições que é incompatível
+com as tabelas de partições do MSDOS. O Parted somente suporta o
+sistemas de tabelas de partição dos BSDs. É improvável que suporte
+o sistemas de partições em fatias, porque a semântica é muito estranha,
+e não trabalha como tabelas de partição ``normais''.
+
+@node O MS Windows e o OS/2
+@section Tabelas de partição de disco suportadas por sistemas Microsoft e o OS/2
+@cindex tabelas de partição legadas pela microsoft e a ibm
+@cindex microsoft e ibm, tabelas de partição legadas pela
+
+O MS Windows e o OS/2 somente suportam as tabelas de partição do MSDOS.
+Portanto, se você criar uma nova tabela de partições, você deve usar:
+
+@example
+(parted) @kbd{mklabel msdos}
+@end example
+
+@node MacOS
+@section Suporte a Tabelas de Partição no Sistema Operacional Macintosh
+@cindex tabelas de partição do macintosh
+@cindex macintosh, tabelas de partição do
+
+@c RMK: completeness: does Mac OS X understand non-mac disklabels?
+O MacOS (e o OpenFirmware) somente entende as tabelas de partição
+do mac. Portanto se você criar uma nova tabelas de partições,
+você deve usar:
+
+@example
+(parted) @kbd{mklabel mac}
+@end example
+
+Note que para tabelas de partição do Mac, você deve evitar deixar
+espaços livres em volta, porque as regiões de espaço livre deixam
+entradas na tabela de partições (e o Linux não gosta de ter mais de
+15 entradas). Por exemplo, se você fizer:
+
+@example
+@group
+(parted) @kbd{print}
+Disk geometry for /dev/sda: 0.000-6149.882 megabytes
+Disk label type: mac
+Minor    Start       End     Filesystem  Name          Flags
+1          0.000      0.031              Apple
+2          0.031      1.000                            boot
+3          1.000   1000.000  ext2        root          root
+@end group
+(parted) @kbd{ mkpartfs primary ext2 1001 2000}
+@group
+(parted) @kbd{print}
+Disk geometry for /dev/sda: 0.000-6149.882 megabytes
+Disk label type: mac
+Minor    Start       End     Filesystem  Name          Flags
+1          0.000      0.031              Apple
+2          0.031      1.000                            boot
+3          1.000   1000.000  ext2        root          root
+4       1001.000   2000.000  ext2
+@end group
+@end example
+
+Existe 1 megabyte de espaço livre entre as partições 3 e 4. Você pode
+evitar isso, criando partições de 0.1M (no caso, o Parted automaticamente
+``junta'' elas). Então, no exemplo acima, você deveria fazer isso ao invés:
+
+@example
+(parted) @kbd{mkpartfs primary ext2 1000.1 2000}
+@group
+(parted) @kbd{print}
+Disk geometry for /dev/sda: 0.000-6149.882 megabytes
+Disk label type: mac
+Minor    Start       End     Filesystem  Name          Flags
+1          0.000      0.031              Apple
+2          0.031      1.000                            boot
+3          1.000   1000.000  ext2        root          root
+4       1000.000   2000.000  ext2
+@end group
+@end example
+
+@node    Sistemas de Arquivo
+@chapter Sistemas de Arquivo suportados pelo Parted
+@cindex sistemas de arquivo
+
+@menu
+* Sistemas Suportados::      File systems operations supported by GNU Parted
+* Ext2::                     Sistemas ext2 do Linux no Parted
+* FAT16 and FAT32::          Sistemas Legados e o Parted da Microsoft e o Parted
+* Reiserfs::                 Sistema jornalístico Reiser e o Parted
+@end menu
+
+@node Sistemas de Arquivo Suportados
+@section Sistemas de Arquivo Suportados pelo GNU Parted
+@cindex sistemas de arquivo suportados
+@cindex sistemas de arquivo suportados
+
+O Parted tem suporte a essas operações:
+
+@c RMK: FIXME: can we put in nicer marks for "true", and note markers
+@c to associate notes below with entries in this table?
+
+@multitable {Filesystem} {detect} {create} {resize} {copy} {check}
+@item Sistema de Arquivo @tab detecta @tab cria @tab redimensiona @tab copia @tab checa
+@item ext2 @tab * @tab * @tab *1 @tab *2 @tab *3
+@item ext3 @tab	* @tab @tab *1 @tab *2 @tab *3
+@item fat16 @tab * @tab * @tab *4 @tab *4 @tab *
+@item fat32 @tab * @tab * @tab * @tab * @tab *
+@item hfs @tab * @tab @tab @tab @tab
+@item jfs @tab * @tab @tab @tab @tab
+@item linux-swap @tab * @tab * @tab * @tab * @tab *
+@item ntfs @tab * @tab @tab @tab @tab
+@item reiserfs @tab * @tab *5 @tab *1,5 @tab *5 @tab *3,5
+@item ufs @tab * @tab @tab @tab @tab
+@item xfs @tab * @tab @tab @tab @tab
+@end multitable
+
+@c RMK: note: the following is not an enumerated list, just a bunch of
+@c notes associated to entries in the above matrix.  That's bad.
+
+@noindent NOTAS:
+(1) O início da partição deve estar fixa para ext2, ext3 e reiserfs.
+
+(2) A partição que você copia deve ser maior (ou exatament o mesmo
+tamanho) da partição que você está copiando.
+
+(3) Checagem limitada é feita quando o sistemas de arquivo é aberto.
+Esta é a única checagem no momento. Todos os comandos (incluindo o
+resize) vão falhar graciosamente, deixando o sistemas de arquivo
+intacto, se não existir erros no sistemas de arquivo (e a vasta maioria
+de erros no geral).
+
+(4) O tamanho da nova partição, após redimensionar ou copiar, é restrito
+pelo tamanho de cluster para a fat (principalmente afeta FAT16). Isto
+é pior do que você pensa, porque você não chega a escolher o tamanho
+do cluster (isso é um bug no Windows, mas você quer compatibilidade,
+certo?).
+
+Então, em prática, você sempre pode diminuir sua partição (porque o
+Parted pode diminuir o tamanho do cluster), você não vai poder aumentar
+a partição pro tamanho que você quer. Se você não tiver problemas em
+usar FAT32, você sempre vai poder aumentar a partição pro tamanho
+que você quiser.
+
+Resumo: você sempre pode diminuir a sua partição. Se você não pode
+usar FAT32 por alguma razão, então você não vai poder aumentar sua
+partição.
+
+(5) O suporte a reiserfs é habilitado se você instalar libreiserfs,
+disponível em @uref{reiserfs.linux.kiev.ua}. (É provável que esteja
+disonível logo em www.namesys.com... nos diga se/quando isso acontecer!)
+
+@node Ext2
+@section O GNU Parted e o Second Extended Filesystem
+@cindex suporte a sistema de arquivo ext2
+@cindex suporte a sistemas second extended
+
+O Parted não suporta diretamente cópia de sistemas de arquivo ext2
+(ainda). Contudo, existem algumas maneiras de se conseguir isso:
+
+@itemize
+@item Use o comando mkfs (ou mkfs.ext2), e então rode na shell:
+
+ME CONSERTE!!! isto ainda não funciona muito bem - mas deve estar OK
+para a maioria das pessoas@dots{}
+
+@example
+# @kbd{mount -t ext2 /dev/hda2 /mnt/dst}
+# @kbd{find /mnt/src -depth | cpio -pm /mnt/dst}
+@end example
+
+@item Se você duplicar uma partição que será maior que o original,
+isto também pode ser feito: primeiro, crie uma nova partição ext2.
+Então:
+
+@example
+# @kbd{dd if=/dev/dsp-antigo of=/dev/dsp-novo bs=1024 count=@var{tam_ant}}
+# @kbd{parted /dev/hda resize 2 @var{início} @var{fim}}
+@end example
+
+@noindent aonde @var{tam_ant} é o tamanho da partição original em kilobytes.
+@var{início} e @var{fim} são o novo começo e fim para a partição duplicada.
+@end itemize
+
+@node FAT16 e FAT32
+@section Suporte a Sistemas de Arquivo da Microsoft
+@cindex suporte a sistemas de arquivo fat
+@cindex suporte a sistemas de arquivo legados da microsoft
+
+O Parted não pode aumentar o tamanho do cluster de sistemas de arquivo
+FAT (ainda). Isto põe restrições em redimensionar e copiar partições.
+Isto é geralmente bizarro, porque o Parted pode converter sistemas de
+arquivo entre FAT16 e FAT32, que tem restrições diferentes no que o
+tamanho do cluster pode ser.
+
+Por exemplo, vamos dizer que uma partição de 100Mb com um tamanho de
+cluster de 4k. Esta partição não pode ser redimensionados para 400Mb,
+porque o tamanho do cluster deveria ser mudado para 16k. Contudo, ele
+pode ser redimensionado para 600Mb se você usar FAT32. O contrário é
+verdade para sistemas de arquivo FAT32 de 600Mb.
+
+Note: quando você copia ou redimensiona um sistemas de arquivo, o Parted
+vai perguntar se você quer converter entre FAT16 e FAT32 (se isso for
+possível). Portanto, se você só quer converter um partição para FAT32
+(sem redimensionar), você só precisa redimensionar a partição para o
+mesmo tamanho.
+
+@menu
+* MS DriveSpace::                    Partições MS DriveSpace
+@end menu
+
+
+@node MS DriveSpace
+@subsection Partições MS DriveSpace
+@cindex partições drivespace
+
+O MS DriveSpace é um programa que vem com o MS Windows 95 que pdoe ser
+usado para comprimir sistemas de arquivo FAT. Eu acredito que ele
+funcione do mesmo jeito que o DoubleSpace, então tudo dito aqui pode
+ser aplicado no DoubleSpace também.
+
+É possível para o Parted redimensionar e copiar essas partições, mas
+você tem que fazer algumas coisas a mais@dots{}
+
+@menu
+* Aumentando uma partição DriveSpace::
+* Diminuindo um partição DriveSpace::
+* Copiando uma partição DriveSpace::
+@end menu
+
+
+@node Aumentando uma partição DriveSpace
+@subsection Aumentando uma partição DriveSpace
+@cindex partição drivespace, aumentando uma
+
+Para aumentar o tamanho de uma partição DriveSpace, faça o seguinte
+@enumerate
+@item Use o comando resize do Parted para aumentar a partição para o tamanho desejado.
+
+@item Use o MS DriveSpace para enviar o espaço livre do drive de origem
+para o drive comprimido.
+
+@end enumerate
+
+@node Diminuindo uma partição DriveSpace
+@subsubsection Diminuindo uma partição DriveSpace
+@cindex partição drivespace, diminuindo uma
+
+Para aumentar o tamanho de uma partição DriveSpace, faça o seguinte:
+
+@enumerate
+@item Use o MS DriveSpace para jogar o espaço livre do drive comprimido
+para o drive de origem. O número de espaço jogado corresponde ao
+montante que se deve diminuir a partição.
+
+@c RMK: usage: "Parted doesn't give good feedback on what the nubmers" huh?
+@item Use o comando resize do Parted para diminuir uma partição para o
+tamanho desejado. NOTA: O Parted não tem uma boa resposta com os números
+pelo qual se pede para uma partição diminuir. Isto está na lista de
+afazeres.
+
+@end enumerate
+
+@node Copiando uma partição DriveSpace
+@subsubsection Copiando uma partição DriveSpace
+@cindex partição drivespace, copiando uma
+
+Se você quer copiar uma partição DriveSpace para uma partição que é
+maior, então você pode seguir as instruções para aumentar uma partição
+DriveSpace, exceto se você copiar ao invés de redimensionar para a
+partição desejada, e ter certeza de que você usou a nova partição no
+DriveSpace.
+
+Contudo, se você quer copiar uma partição DriveSpace que é menor, as
+coisas ficam um pouco mais complicadas:
+
+@enumerate
+@item Use o MS DriveSpace para empurrar o espaço livre do disco
+comprimido para o drive de origem. O montante de disco empurrado deve ser
+mais que a diferença entre o disco de origem e o tamanho desejado de
+uma das partições duplicadas.
+
+@item Use o Parted para copiar a partição de destino para a partição
+duplicada.
+
+@item Use o MS DriveSpace para empurrar o espaço livre do disco de
+origem de volta para o disco comprimido.
+
+@item Use o MS DriveSpace para empurrar o espaço livre do drive duplicado
+de volta para o drive comprimido.
+@end enumerate
+
+
+@node Reiserfs
+@section Sistemas de Arquivo Jornalístico Reiserfs
+@cindex reiserfs
+
+O Parted suporta reiserfs se a libreiserfs está instalada. O Parted
+detecta isso ao rodar, e automaticamente ativa o suporte. Você pode
+baixar a libreiserfs em:
+
+	@uref{http://reiserfs.linux.kiev.ua}
+
+Note que a libreiserfs é software novo, e não foi largamente testado.
+
+
+@node    LVM e RAID
+@chapter LVM e RAID
+@cindex lvm e raid
+@cindex raid e lvm
+
+@menu
+* Visão geral da LVM e RAID::           Visão geral da LVM e RAID
+* Criando partições RAID ou LVM::       Configurando partições RAID e LVM
+* Manipulando um volume RAID ou LVM::   Operações em partições RAID ou LVM
+@end menu
+
+@node Visão geral do LVM e RAID
+@section Logical Volume Manager e Redundant Arrays of Inexpensive Disks
+@cindex lvm e raid, visão geral do
+@cindex lvw, visão geral
+@cindex raid, visão geral
+
+O LVM (Logical Volume Manager) é um sistema alternativo para
+particionamento. Ele permite volumes lógicos (por exemplo, ``partições
+virtuais'') a serem espalhadas em muitos volumes físicos (por exemplo,
+discos e/ou partições). O LVM é suportado no Linux versão 2.4 e
+superior.
+
+RAID (Redundant Array of Inexpensive Disks - Ordem Redundante de Discos
+Baratos) é um sistema para usar muitos discos e/ou partições juntas, como
+uma ``partição virtual''. Existem muito poucos modos de usar software
+RAID, e são essencialmente:
+
+@c RMK: if there are only two options, why not put them into a sentence?
+@itemize
+@item usar múltiplos (pequenos) discos par um único sistemas de arquivo,
+aumentar a performance e fazer todo o espaço disponível ser disponível
+num único sistemas de arquivo.
+@item usar múltiplos discos para guardar cópias redundantes de informação,
+para aumentar a confiança e performance.
+@end itemize
+RAID por software é suportado no Linux versão 2.0 e superior.
+
+@c RMK: usage: what does ``is supported normally by Parted'' mean?
+RAID por hardware é normalmente suportado pelo Parted - então você não
+precisa ler essa seção se você está usando RAID por hardware (o
+oposto para RAID por software).
+
+LVM, RAID por software e partições são comumente usadas simultaneamente,
+mas elas todas podem ser usadas independentemente. LVM e RAID por
+software são geralmente compostas de partições, mais do que discos
+rígidos.
+
+O GNU Parted não suporta LVM e RAID por software completamente,
+mas ele é ainda útil quando usado em combinação com suas ferramentas
+respectivas. O Parted é útil para essas tarefas:
+
+@itemize
+@item criar uma partição RAID ou LVM de software
+
+@item criando, redimensionando ou copiando um sistema de arquivo num
+volume lógico (ou ``partição lógica'')
+@end itemize
+
+@node Criando partições LVM ou RAID
+@section Criando partições LVM ou RAID
+@cindex criação de partições lvm
+@cindex criação de partições raid
+
+Para criar uma partição RAID ou LVM, você deve:
+@enumerate
+@item Criar uma partição com o comando mkpart
+@item Definir o indicador LVM ou RAID na partição.
+@end enumerate
+
+Por exemplo:
+
+@example
+(parted) @kbd{mkpart primary ext2 0 4000}
+(parted) @kbd{set 1 lvm on}
+@end example
+
+Nota: a partição LVM ou RAID não vai estar pronta para uso ainda. Você
+ainda precisa rodar o mkraid(8) para RAIDs, ou usar as ferramentas de
+LVM para inicializar o volume físico, e criar grupos lógicos, etc.
+
+@node Manipulando um volume RAID ou LVM
+@section Manipulando um Sistema de Arquivo num volume RAID ou LVM
+@cindex operação em partições raid
+@cindex operações em partições lvm
+
+O Parted pode manipular volumes lógicos RAID e LVM, mesmo não entendendo
+RAID ou LVM. Ele utiliza o suporte do Linux a RAID e LVM. Portanto, você
+somente pode usar esses métodos se o seu kernel do Linux suporta RAID
+e/ou LVM.
+
+Para manipular um sistema de arquivo num volume lógico RAID ou LVM (ou,
+uma partição sozinha, para esse intuito), você pode iniciar o parted
+selecionando o dispositivo do volume (partição) lógico. Por exemplo:
+
+@example
+# @kbd{parted /dev/md0}
+@end example
+
+Para o resto desse capítulo, ``dispositivo virtual'' vai se referir
+ao dispositivo que o Parted está editando (no nosso exemplo, @file{/dev/md0}).
+For the rest of this chapter, ``virtual device'' will refer to the
+device Parted is editting (in our example cases, @file{/dev/md0}).
+
+@menu
+* Criando um sistema de arquivo num dispositivo RAID ou LVM::
+* Redimensionando um sistema de arquivo::
+* Copiando um sistema de arquivo de um dispositivo virtual para uma partição::
+* Copiando um sistema de arquivo para um dispositivo virtual::
+@end menu
+
+@node Criando um Sistema de Arquivo num dispositivo RAID ou LVM
+@subsection Criando um Sistema de Arquivo num Dispositivo VIrtual LVM ou RAID
+@cindex lvm, criando um sistema de arquivo em
+@cindex raid, criando um sistema de arquivo em
+
+Para criar um sistema de arquivo num volume LVM, use os seguintes passos:
+
+@enumerate
+@item Crie uma tabelas de partição de loop. Este é uma tabela de partições
+falsa, que diz ao Parted para tratar o dispositivo virtual como um único
+sistema de arquivo. Com essa falsa tabela de partições, existe ou nenhuma
+ou uma partição.
+
+@example
+(parted) @kbd{mklabel loop}
+@end example
+
+@item Crie o sistema de arquivo, usando o comando mkpartfs do Parted.
+Você deve deixar o início do sistema de arquivo 0. A partição pode
+terminar em qualquer lugar dentro do dispositivo virtual. Você pode
+encontrar o tamanho do dispositivo virtual com o comando print. Por
+exemplo:
+
+@example
+(parted) @kbd{print}
+@group
+Disk geometry for /dev/md0: 0.000-47.065 megabytes
+Disk label type: loop
+Minor    Start       End     Filesystem  Flags
+@end group
+(parted) @kbd{mkpartfs primary ext2 0 47.065}
+(parted) @kbd{print}
+@group
+Disk geometry for /dev/md0: 0.000-47.065 megabytes
+Disk label type: loop
+Minor    Start       End     Filesystem  Flags
+1          0.000     47.065  ext2
+@end group
+@end example
+@end enumerate
+
+@node Redimensionando um sistemas de arquivo
+@subsection Redimensionando um Sistema de Arquivos num Dispositivo Virtual LVM ou RAID
+@cindex lvm, redimensionando um sistema de arquivo
+@cindex raid, redimensionando um sistema de arquivo
+
+Você geralmente redimensiona o sistema de arquivo ao mesmo tempo que
+você redimensiona o seu dispositivo virtual. Se você está aumentando
+o sistema de arquivo e o dispositivo virtual, você deve primeiro
+aumentar o dispositivo virtual (com as ferramentas RAID ou LVM), e então
+aumentar o sistema de arquivo. Se você está diminuindo o sistema de
+arquivo e o dispositivo virtual, você deve diminuir o sistema de arquivo
+primeiro, e então o dispositivo virtual.
+
+Para redimensionar o sistema de arquivo no Parted, use o comando resize.
+Por exemplo:
+
+@example
+(parted) @kbd{select /dev/md0}
+(parted) @kbd{resize 1 0 20}
+@end example
+
+@node Copiando um sistema de arquivo de um dispositivo virtual para uma partição
+@subsection Copiando um Sistema de Arquivo de um Dispositivo LVM ou RAID para uma partição
+@cindex lvm, copiando de um lvm para uma partição
+@cindex raid, copiando de um raid para uma partição
+
+Para copiar um sistema de arquivo de um dispositivo virtual LVM ou RAID,
+é só usar o comando cp. Por exemplo:
+
+(parted) @kbd{select /dev/hda}
+(parted) @kbd{cp /dev/md0 1 3}
+@node Copiando um sistema de arquivo para um dispositivo virtual
+@subsection Copiando um Sistema de Arquivo de um Dispositivo Virtual RAID ou LVM
+@cindex lvm, copiando de uma partição lvm para um volume
+@cindex raid, copiando de uma partição para um volume raid
+
+Para copiar o sistema de arquivo para um dispositivo virtual LVM ou RAID,
+use a seguinte receita:
+
+@enumerate
+@item Crie a tabela de partições de loop no dispositivo virtual. Por exemplo:
+
+@example
+(parted) @kbd{select /dev/md0}
+(parted) @kbd{mklabel loop}
+@end example
+
+@item Crie um sistema de arquivo no dispositivo virtual, com o comando
+mkpartfs. Por exemplo:
+
+@example
+(parted) @kbd{mkpartfs primary ext2 0 47.065}
+@end example
+
+@item Copie a partição com o comando cp:
+
+@example
+(parted) @kbd{select /dev/hda}
+(parted) @kbd{cp /dev/md0 3 1}
+@end example
+@end enumerate
+
+@node    Espelhamento de Discos
+@chapter Espelhamento de Discos
+@cindex espelhamento de discos
+
+Espelhamento de disco é o método para evitar o tedioso processo de
+instalação do Windows. Por exemplo, se você quer instalar o Windows e
+o Office em 1000 máquinas, vai levar provavelmente 5 vezes 1000 horas.
+As coisas não são tão ruins com o GNU/Linux, porque existem programas
+como o kickstart da Red Hat, que permite você automatizar a instalação
+de outros programas, ou praticamente qualquer coisa que você precise
+fazer. Portanto, o espelhamento de disco é somente usado para máquinas
+Windows (ou qualquer software não-livre) em geral, mas nós imaginamos
+que a maioria das organizações achariam impossível migrar do Windows
+para o GNU/Linux (ou qualquer outro software livre) sem um período de
+transição, aonde ambos os sistemas estão disponíveis.
+
+@c FIXME: standards: the CD-Writing howto is listed as non-free by LDP
+Com o espelhamento de disco, você pode torrar um CD com uma imagem de
+disco ou de uma partição contendo o Windows e o Office, e copiar a
+partição diretamente nos discos rígidos de todos os computadores,
+colocando um disco de boot e um CD, e deixando rolar. Mas a partição
+no disco Windows vai provavelmente ser maior, então a partição também
+vai ter de ser redimensionada. Eu já vi várias pessoas comentarem que
+elas gerenciaram esse processo usando discos de boot do Linux e o Parted.
+É possível usar o CDROM somente, usando o disquete de boot como a imagem
+de boot do CD. Leia a CD writing HOWTO para maiores informações. Existem
+algumas coisas peculiares que você tem que fazer pra coisa toda funcionar
+(que vai ser resolvida na próxima série estável do Parted). De qualquer
+modo, este é o processo geral:
+
+@enumerate
+@item Instale o Windows numa máquina, com a configuração que você
+quiser. Você pode ter uma partição do tamanho que quiser, contanto
+que não use mais de 640Mb, e deixe espaço para um instalação completa
+do Linux, e outros 1300Mb para duas cópias da imagem de disco.
+
+@item Instale o Linux na máquina.
+
+@item Faça um diretório para imagem do CD (exemplo: @file{/root/imagem})
+
+@item Crie um arquivo de imagem de disco (exemplo: @file{/root/imagem/disco})
+no diretório do CD:
+
+@example
+# @kbd{dd if=/dev/zero of=/root/imagem/disco bs=1M count=640}
+@end example
+
+@item Use o Parted para copiar a partição Windows para a imagem de disco:
+
+@example
+# @kbd{parted /root/cdimage/diskimage mklabel msdos}
+# @kbd{parted /root/cdimage/diskimage mkpart primary fat32 0 639}
+# @kbd{parted /root/cdimage/diskimage cp /dev/hda 1 1}
+@end example
+
+@item Crie uma imagem de CD do diretório da imagem de CD e torre esse
+CD com a sua ferramenta favorita de gravação.
+
+@item Compile uma versão especial do Parted sem suporte a língua
+nacional e suporte a readline (ou baixe a RPM especial da Freshmeat):
+
+@example
+localhost:~/parted-1.0.0# @kbd{./configure --disable-nls --without-readline --disable-shared; make}
+@end example
+
+@c FIXME: standards: LDP labelled the Bootdisk HOWTO non-free.
+@item Crie um disquete de boot do Linux (veja a Bootdisk HOWTO).
+
+@item Ponha a versão reduzida do Parted no disquete de boot (ou
+um disco raiz suplementar).
+
+@item Escreva um script shell para fazer o seguinte:
+
+@example
+@asis{mount /dev/cdrom /mnt/cdrom}
+@asis{parted --script /dev/hda mklabel msdos}
+@asis{parted --script /dev/hda mkpartfs primary fat 0 @var{algum-tamanho}}
+@asis{parted --script /dev/hda cp /mnt/cdrom/diskimage 1 1}
+@asis{parted --script /dev/hda set 1 boot on}
+@asis{/sbin/halt}
+@end example
+
+@var{algum-tamanho} é o tamanho que você quer que a primeira partição use.
+
+@item Inicie a instalação! Ponha o disquete + CD dentro de cada computador,
+e deixe rolar@dots{}
+@end enumerate
+
+Obviamente eu posso e vou fazer esse processo muito mais fácil. Nós
+estamos considerando fazer uma mini-distribuição para fazer isso.
+Eu não teria tempo para fazer isso --- algum voluntário?
+
+@node Software Relacionado
+@chapter Software Relacionado
+@cindex software relacionado
+@cindex leitura posterior
+@cindex documentação relacionada
+
+Se você quer procurar mais informações, sinta-se à vontade para enviar
+perguntas para @email{parted@@gnu.org}. (!) indica que a 
+informação/software está provavelmente incluída na sua distribuição.
+
+Estes arquivos na distribuição do Parted contém informações adicionais:
+
+@itemize @bullet
+
+@item ABOUT-NLS - informações sobre usar o Suporte a Língua Nativa, e o Projeto de Tradução Livre
+
+@item API - a documentação sobre a API da libparted
+
+@item AUTHORS - quem escreveu o que
+
+@item BUGS - erros não arrumados
+
+@item ChangeLog - mudanças feitas no Parted
+
+@item COPYING - a GNU General Public License, os termos pelos quais o GNU Parted pode ser distribuido
+
+@item COPYING.DOC - a GNU Free Documentation Licence, o termo pelo qual
+a documentação do Parted pode ser distribuída.
+
+@item FAT -- informações sobre como o redimensionador de FAT funciona (para programadores)
+
+@item INSTALL --- como compilar e instalar o Parted, e a maioria dos outros softwares livres
+
+@item TODO --- recursos planejados que ainda não foram implementados
+@end itemize
+
+Estes documentos não são distribuídos com o Parted, mas você pode achar
+eles úteis. A maioria deles provavelmente vai estar na sua distribuição.
+Por exemplo, no Red Hat Linux, olhe no cd dentro de @file{/doc/HOWTO} e
+@file{/doc/FAQ}.
+
+@itemize @bullet
+
+@c RMK: usefulness: available at the LDP -- should these urls be updated?
+@c RMK: standards: GPL'd documentation.
+@item Filesystems HOWTO   @uref{http://penguin.cz/~mhi/fs}
+
+@c RMK: usefulness: available at the LDP -- should these urls be updated?
+@c FIXME: standards: LDP labelled this non-free
+@item Hard Disk Upgrade mini-HOWTO (!):   @uref{http://sunsite.unc.edu/LDP/HOWTO}
+
+@c RMK: usefulness: available at the LDP -- should these urls be updated?
+@c FIXME: standards: LDP labelled this non-free
+@item Large Disk HOWTO   @uref{http://www.win.tue.nl/~aeb/linux/Large-Disk.html}
+
+@item LILO mini-HOWTO (!)   @uref{http://sunsite.unc.edu/LDP/HOWTO}
+
+@c RMK: usefulness: available at the LDP -- should these urls be updated?
+@item MILO HOWTO (!)   @uref{http://sunsite.unc.edu/LDP/HOWTO}
+
+@c FIXME: standards: in short, none of the following is free documenation
+@c FIXME: standards: Linux+DOS+Win95+OS2 labelled non-free by LDP
+@c FIXME: standards: Linux+FreeBSD-mini labelled non-free by LDP
+@c FIXME: reference: can't find a Linux+Win95, only Linux+Win95-mini
+@c FIXME: standards: Linux+Win95-mini labelled non-free by LDP
+@c FIXME: reference: can't find a Linux+FreeBSD, only Linux+FreeBSD-mini
+@c FIXME: reference: can't find a Linux+NT-Loader, only "NT OS Loader +
+@c Linux mini
+@c FIXME: standards: NT OS Loader + Linux mini labelled non-free by LDP
+@item Linux+OS mini-HOWTOs (!): Linux+DOS+Win95+OS2, Linux+FreeBSD-mini-HOWTO,
+Linux+Win95, Linux+FreeBSD, Linux+NT-Loader.  You can get these from: @uref{http://sunsite.unc.edu/LDP/HOWTO}
+
+@c FIXME: standards: Partition mini  labelled non-free by LDP
+@item Partition mini-HOWTO (!): @uref{http://www.linuxdoc.org/HOWTO/mini/Partition/index.html}
+
+@c RMK: standards: no clear distribution terms
+@item Partition Table HOWTO @uref{http://www.win.tue.nl/~aeb/partitions/partition_tables.html}
+
+@c FIXME: standards: no clear distribution terms
+@item Lista de Tipos de Partições @uref{http://www.win.tue.nl/~aeb/partitions/partition_types.html}
+
+@item Software RAID HOWTO @uref{http://linas.org/linux/Software-RAID/Software-RAID.html}
+
+@end itemize
+
+Outros programas relacionados estão listados aqui. Alguns deles também
+tem documentação útil:
+
+@itemize @bullet
+
+@item Disk Drake. Disponível em @uref{www.linux-mandrake.com/diskdrake}
+Ele é simular em funcionalidade ao Parted. O código de FAT no Disk Drake
+é baseado no nosso código do Parted. Aqui é como o Disk Drake se
+compara ao Parted: (que ambos concordamos :-) O Disk Drake é:
+
+@itemize @minus
+@item mais fácil de usar, te proteje de cometer enganos
+@item uma solução mais completa (lida com o @file{/etc/fstab}, lilo, etc.)
+@item menos suporte à FAT (não pode converter FAT16<->FAT32, não copia partições)
+@item menos suporte a ext2 (no momento)
+@item menos atenção à compatibilidade entre sistemas DOS/Windows (mais antigos)
+@item sem suporte a arquiteturas não-PC
+@end itemize
+
+@item dvhtool (para SGI/MIPS) (!)
+
+@c RMK: standards: unchecked
+@item dosfsck (!)
+
+@item e2fsck, resize2fs e2fsprogs (!) @uref{http://web.mit.edu/tytso/www/linux/e2fsprogs.html}
+
+@item ext2resize - usa o mesmo código do Parted, mas inclui algumas
+outras coisas também, como um redimensionar ext2 na hora, que não
+requer desmontagem. @uref{http://ext2resize.sourceforge.net}
+
+@item fdisk (!)
+
+@item FIPS (!) (First Interactive Partition Splitter - Primeiro Divisor de Partições Interativo) @uref{http://www.igd.fhg.de/~aschaefe/fips}
+
+@ RMK: standards: GPL'd
+@item GPart - recupera tabelas de partição quebradas. @uref{http://www.stud.uni-hannover.de/user/76201/gpart}
+
+@item GNU GRUB - GRand Unified Boot-loader @uref{http://www.gnu.org/software/grub/grub.html}
+
+@item LILO (!) (LInux LOader)  @uref{ftp://tsx-11.mit.edu/pub/linux/packages/lilo}
+
+@item LVM @uref{http://linux.msede.com/lvm}
+
+@c RMK: standards: is mkdosfs Free?
+@item mkdosfs (!)  (às vezes chamada de mkfs.msdos)
+
+@item mke2fs (!)  (às vezes chamada de mkfs.ext2)
+
+@item mkfs (!)
+
+@item mkswap (!)
+
+@item quik (!)
+
+@item reiserfs: NOTA: um redimensionador reiserfs é incluído com a
+distribuição reiserfs normal. @uref{http://devlinux.com/projects/reiserfs}
+Também, uma implementação independente da raiserfs userland (que o parted
+também utiliza) @uref{http://reiserfs.linux.kiev.ua}.  Ele pode ser adotado
+por outros usuários no futuro...
+
+@item yaboot (!)  @uref{http://penguinppc.org/bootloaders/yaboot/}
+
+@item ybin (!)  @uref{http://penguinppc.org/bootloaders/yaboot/}
+
+@end itemize
+
+@node Copiando Este Manual
+@appendix Copiando Este Manual
+
+@menu
+* GNU Free Documentation License::  Licença para copiar esse manual
+@end menu
+
+@include fdl.texi
+
+@c FDL: FDL 4.I suggests a HISTORY section be included in
+@c the documentation.  In this case it seems superfluous, but
+@c here's one, in case it is desired.  As far as I'm concerned,
+@c this node doesn't fit well into the structure of the document
+@c at present.
+@node História
+@appendix A história desse manual
+@cindex  a história desse manual
+
+Esse manual é baseado no arquivo, USER, incluído na versão 1.4.22.
+O código-fonte do GNU Parted está disponível em @uref{ftp.gnu.org/gnu/parted}.
+
+Formatação texinfo por Richard M. Kreuter, 2002.
+
+Este manual é distribuído sob a GNU Free Documentation License,
+versão 1.1 ou superior, à sua discrição, sem Seções Invariantes,
+sem Textos na Capa, e sem Textos na Contra-capa. @xref{Copiando
+este Manual}, para mais detalhes.
+
+@c FIXME: why doesn't this @ifnotplaintext work?!
+@c @ifnotplaintext
+@node Índice
+@unnumbered Índice
+@printindex cp
+@c @end ifnotplaintext
+
+@bye
+
+@ignore
+I've (that is, RMK) included (too much) commentary in this file.
+
+Lines of the form
+
+    FIXME:<category>:
+
+are bugs, and should be fixed.  The categories are sort of vague, but
+"standards" means that something doesnt't meet somebody's (probably
+I've tried to check the license for each program and documentation
+referenced, but have missed some.  As a rule, if a Howto or mini-Howto
+has been labelled as non-free by the LDP, then I've assumed it's also
+non-Free for GNU purposes.  I've also tried to note the free software
+and documentation, since omission of such notes lead me to recheck things
+I'd forgotten I'd check, etc.
+
+Many nodes give some detailed explanation of how to use parted along
+with a non-free operating system using non-free utilities that are part
+of that system.  This may be a violation of the GNU standards,
+node/section "References".  I've marked up the text anyhow, in case the
+content is deemed acceptable by decision makers, and hope that my
+contribution here doesn't sway decisions.
+
+For what it's worth, I've noted references to non-free software as
+"acceptable" in case the reference includes a description of what the
+software can't do (e.g., not suck, not harm mankind).  This idiosyncratic
+assessment of the permissibility of reference of non-free software is
+meant partly as a joke.
+
+Note: there is a free (GPL'd) DOS compatible operating system, FreeDOS,
+that I've tested and found to work pretty well, better in many respects
+that Micros~1's DOS.  Many of the tips and tricks described in the
+manual might work with or be needed for a FreeDOS based system.  In
+principle, one could rewrite the sections of this manual to make
+reference only to 'DOS-compatible' systems, and refer people to FreeDOS.
+
+I, for one, would be happy to refer people to FreeDOS, since it's a nice
+project that could play a valuable role among free operating systems
+(actually, it does: it's the DOS kernel for DOSEMU).  But would
+reworking references to MS DOS and its progeny to refer to FreeDOS just
+be a clever hack around the GNU standards?  I dunno...
+
+<Sigh>  Screed over.
+
+Notes on possible (unimplemented!) modifications:
+
+The output samples from parted's print command, fdisk's p command, etc.,
+might be made into tables (multi-column tables) to ensure spiffy formatting.
+
+I'd like to find a way to make *entry: see *synonym type references in
+the index, so, e.g., to refer people looking for Apple to Macintosh, and
+PowerPC to Macintosh, etc.  Probably texinfo does this already; I dunno.
+
+
+Notes on general fixes:
+
+RMK: usage: eg -> e.g.  ("e.g." is customarily spelled thus).
+
+RMK: usage: "its" is English possessive third person singular adjective
+(cf "sein/ihr", "son/sa/ses").  "it's" is a contraction of "it is",
+i.e., third person singular present active indicative of "to be" (cf
+"das ist", "il est").  I hope that description doesn't come off too
+snotty.  I've changed 'it's' to 'its' more times than noted above.
+
+RMK: usage (punctuation): in English, commas are only used to separate
+relative clauses when the information in the clause is deemed
+non-essential for identifying the referent of the noun on which the
+clause depends (German uses commas around every relative clause, by
+contrast).  So: "I have read the book that was assigned" doesn't have a
+comma because the clause 'that was assigned' is needed to identify which
+book is the object of 'read', whereas "I have read the book, which
+wasn't very good" implies that the fact that the book wasn't very good
+is extra information, not required for the identification of the book,
+e.g. its identity has already been established).
+
+@end ignore
+
diff --git a/parted-1.8.7/doc/parted.info b/parted-1.8.7/doc/parted.info
new file mode 100644
index 0000000..4fbee2e
--- /dev/null
+++ b/parted-1.8.7/doc/parted.info
Binary files differ
diff --git a/parted-1.8.7/doc/parted.texi b/parted-1.8.7/doc/parted.texi
new file mode 100644
index 0000000..6a317cf
--- /dev/null
+++ b/parted-1.8.7/doc/parted.texi
@@ -0,0 +1,1246 @@
+\input texinfo    @c -*-texinfo-*-
+@c %**start of header
+@setfilename parted.info
+@settitle Parted User's Manual
+@include version.texi
+@paragraphindent 2
+@c %**end of header
+
+@ifinfo
+This file documents the use of GNU Parted, a program for creating,
+resizing, checking and copy partitions and file systems on them.
+@end ifinfo
+
+@ifnottex @c texi2pdf don't understand copying and insertcopying ???
+@c modifications must also be done in the titlepage
+@copying
+Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+Free Software Foundation, Inc.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.  A copy of the license is included in the section entitled ``GNU
+Free Documentation License''.
+@end copying
+@c WTF does the info get the copying output and the plaintext output not ????
+@ifplaintext
+@insertcopying
+@end ifplaintext
+@end ifnottex
+
+@direntry
+* parted: (parted).                         GNU partitioning software
+@end direntry
+
+@titlepage
+@title GNU Parted User Manual
+@subtitle GNU Parted, version @value{VERSION}, @value{UPDATED}
+@author Andrew Clausen @email{clausen@@gnu.org}
+@author Richard M. Kreuter @email{kreuter@@anduril.rutgers.edu}
+@author Leslie Patrick Polzer @email{polzer@@gnu.org}
+
+
+@c @page
+@c @vskip 0pt plus 1filll
+
+@c modifications must also be done in the copying block
+Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.  A copy of the license is included in the section entitled ``GNU
+Free Documentation License''.
+@end titlepage
+
+@ifnottex
+@node Top
+@top GNU Parted User Manual
+
+@c WTF doesn't texi2html include the titlepage?
+@ifhtml
+@insertcopying 
+@end ifhtml
+
+This document describes the use of GNU Parted, a program for creating,
+destroying, resizing, checking and copying hard drive partitions, and
+the file systems on them.
+
+This document applies roughly to version @strong{@value{VERSION}} of GNU Parted.
+
+The original version was written by Andrew Clausen in text format.
+Richard M. Kreuter translated it into Texinfo format in 2002, to be heavily
+edited by Leslie P. Polzer in 2006.
+@end ifnottex
+
+@shortcontents
+
+@menu
+* Introduction::                Overview
+* Using Parted::                Partitioning a Hard Drive
+* Related information::         Further reading on related topics
+* Copying This Manual::         How to make copies of this manual
+* History::                     This manual's history
+@ifnotplaintext
+* Index::                       Index of referenced concepts
+@end ifnotplaintext
+@end menu
+
+@node    Introduction
+@chapter Introduction
+
+@menu
+* Overview::                    GNU Parted and prerequisite knowledge
+* Software Required::           GNU Parted's software dependencies
+* Supported Platforms::         Where you can use GNU Parted
+* License::                     What you may and may not do with GNU Parted
+* Compiling::                   How to build GNU Parted
+* Static binaries::             How to get and use a static version of GNU
+                                Parted
+@end menu
+
+@node Overview
+@section Overview of GNU Parted
+@cindex description of parted
+@cindex overview
+@cindex parted description
+@cindex bugs, reporting
+@cindex reporting bugs
+@cindex contacting developers
+
+GNU Parted is a program for creating, destroying, resizing, checking
+and copying partitions, and the file systems on them.
+
+This is useful for creating space for new operating systems, for
+reorganizing disk usage, for copying data between hard disks and for
+``disk imaging'' --- replicating an installation on another computer.
+
+This documentation is written with the assumption that the reader
+has some understanding of partitioning and file systems.  If you want to
+learn more about these, the upcoming GNU Storage Guide is recommended
+reading.
+
+GNU Parted was designed to minimize the chance of data loss.  For
+example, it was designed to avoid data loss during interruptions (like
+power failure) and performs many safety checks.  However, there could
+be bugs in GNU Parted, so you should back up your important files before
+running Parted.
+Also note that reiserfs support relies on libreiserfs, which does not
+fulfil the aforementioned requirement.  The same holds for any external
+tools like @kbd{ntfsresize}.
+
+The GNU Parted homepage is @uref{http://www.gnu.org/software/parted}.  The
+library and frontend themselves can be downloaded from
+@uref{ftp://ftp.gnu.org/gnu/parted}.
+You can also find a listing of mailing lists, notes for contributing and
+more useful information on the web site.
+
+Please send bug reports to @email{bug-parted@@gnu.org}.  When sending bug
+reports, please include the version of GNU Parted.
+Please include the output from these commands (for disk @file{/dev/hda}):
+
+@example
+@group
+# @kbd{parted /dev/hda print unit s print unit chs print}
+@end group
+@end example
+
+Feel free to ask for help on this list --- just check that your question
+isn't answered here first.  If you don't understand the documentation,
+please tell us, so we can explain it better.  General philosophy is:
+if you need to ask for help, then something needs to be fixed so you
+(and others) don't need to ask for help.
+
+Also, we'd love to hear your ideas :-)
+
+@node Software Required
+@section Software Required for the use of Parted
+@cindex software dependencies
+@cindex required software
+@cindex libuuid
+@cindex e2fsprogs
+@cindex readline
+@cindex gettext
+
+If you're installing or compiling Parted yourself, you'll need to
+have some other programs installed.  If you are compiling Parted,
+you will need both the normal and devel packages of these programs
+installed:
+
+@itemize @bullet
+
+@item libuuid, part of the e2fsprogs package.  If you don't have this,
+you can get it from:
+
+	@uref{http://web.mit.edu/tytso/www/linux/e2fsprogs.html}
+
+If you want to compile Parted and e2fsprogs, note that you will need to
+@kbd{make install} and @kbd{make install-libs} e2fsprogs.
+
+@item GNU Readline (optional), available from
+
+	@uref{ftp://ftp.gnu.org/gnu/readline}
+
+If you are compiling Parted, and you don't have readline, you can
+disable Parted's readline support with the @kbd{--disable-readline}
+option for @command{configure}.
+
+@item GNU gettext (or compatible software) for compilation, if
+internationalisation support is desired.
+
+	@uref{ftp://ftp.gnu.org/gnu/gettext}
+
+@item libreiserfs, if you want reiserfs support:
+
+	@uref{http://reiserfs.osdn.org.ua}
+
+Note that parted will automatically detect libreiserfs at runtime, and enable
+reiserfs support.  libreiserfs is new, and hasn't been widely tested yet.
+
+@end itemize
+
+@node Supported Platforms
+@section Platforms on which GNU Parted runs
+@cindex supported platforms
+@cindex platforms, supported
+
+Hopefully, this list will grow a lot.  If you do not have one of these
+platforms, then you can use a rescue disk and a static binary of GNU Parted.
+@xref{Static binaries}.
+
+@table @asis
+@item GNU/Linux
+Linux versions 2.0 and up, on Alpha, x86 PCs, PC98, Macintosh PowerPC, Sun hardware.
+
+@item GNU/Hurd
+@end table
+
+GNU libc 2.1 or higher is required.  You can probably use older versions
+by using the @samp{--disable-nls} option. @xref{Compiling, Building GNU
+Parted}. (Note: I think we have now dropped this requirement.  TODO:
+check if libc 2.0 works!)
+
+@node License
+@section Terms of distribution for GNU Parted
+@cindex license terms
+@cindex terms of distribution
+@cindex gnu gpl
+@cindex gpl
+
+GNU Parted is free software, covered by the GNU General Public License
+Version 2.  This should have been included with the Parted distribution,
+in the COPYING file.  If not, write to the Free Software Foundation,
+Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+
+Libparted is considered part of GNU Parted.  It is covered by the GNU
+General Public License.  It is NOT released under the GNU Lesser General
+Public License (LGPL).
+
+@node Compiling
+@section Building GNU Parted
+@cindex compiling parted
+@cindex building parted
+
+If you want to compile GNU Parted, this is generally done with:
+
+@example
+@group
+$ @kbd{./configure}
+$ @kbd{make}
+@end group
+@end example
+
+However, there are a few options for @command{configure}:
+
+@table @code
+@item --without-readline		
+turns off use of readline.  This is useful for making rescue disks,
+etc., where few libraries are available.
+
+@item --disable-debug
+don't include assertions
+
+@item --disable-dynamic-loading
+disables dynamic loading of some libraries (only libreiserfs for now,
+although we hope to expand this).  Dynamic loading is useful because it
+allows you to reuse libparted shared libraries even when you don't know
+if some libraries will be available.  It has a small overhead (mainly
+linking with libdl), so it may be useful to disable it on bootdisks if
+you don't need the flexibility.
+
+@item --disable-fs
+disable all file system support
+
+@item --disable-nls			
+turns off native language support.  This is useful for use with old
+versions of glibc, or a trimmed down version of glibc suitable for
+rescue disks.
+
+@item --disable-shared		
+turns off shared libraries.  This may be necessary for use with old
+versions of GNU libc, if you get a compile error about a ``spilled
+register''.  Also useful for boot/rescue disks.
+
+@item --disable-Werror
+ignore warning messages in compilation
+
+@item --enable-discover-only
+support only reading/probing (reduces size considerably)
+
+@item --enable-mtrace
+enable malloc() debugging
+
+@item --enable-read-only
+disable writing (for debugging)
+
+@end table
+
+@node Static binaries
+@section Using static binaries of GNU Parted
+@cindex static binary 
+@cindex unsupported platforms
+@cindex resizing root device
+
+@subsection Introduction
+If you want to run GNU Parted on a machine without GNU/Linux installed, or you
+want to resize a root or boot partition, you will need to use a boot disk.
+
+Special boot disk images for GNU Parted used to be available, but with the
+emergence of a plethora of rescue disks and Live CDs that all
+include GNU Parted this is no longer necessary.
+However, please note that these disks often ship with out-of-date
+versions of Parted.  To compensate for this a static binary
+of the latest GNU Parted version is available, which you can use thus:
+
+@c There should be instructions for CD and USB here.
+
+@subsection Creating the Parted disk
+@enumerate
+@item Boot your system 
+
+@item Download @file{parted-static-VERSION.tgz} from @uref{ftp://ftp.gnu.org/gnu/parted/static}
+@item Unpack the tarball, resulting in a file called ``parted.static".
+
+@item Insert a floppy.
+
+@item Do a low-level format on it (on GNU/Linux this can be achieved with
+      the tool ``fdformat" from the ``util-linux" package.
+      This is basically a sanity check because floppy disks often 
+      contain bad blocks.
+
+@item Create a file system. Example:
+
+@example
+$ @kbd{parted /dev/fd0 mklabel loop mkpartfs primary ext2 0 1.4}
+@end example
+
+@item Mount the floppy disk, e.g.,
+
+@example
+$ @kbd{mount -t ext2 /dev/fd0 /mnt/floppy}
+@end example
+
+@item Copy @file{parted.static} to the floppy, e.g.,
+
+@example
+$ @kbd{cp parted.static /mnt/floppy}
+@end example
+
+@item Unmount the floppy, e.g.,
+
+@example
+$ @kbd{umount /mnt/floppy}
+@end example
+@end enumerate
+
+@subsection Using the Parted disk
+@enumerate
+@item Choose a rescue disk that suits you. 
+
+@item Boot off your rescue disk.  Mount the disk you copied Parted onto.
+
+@item Run Parted.  For example,
+
+@example
+# @kbd{cd /mnt/floppy}
+# @kbd{./parted-static}
+@end example
+@end enumerate
+
+@node    Using Parted
+@chapter Using Parted
+@cindex commands
+
+@menu
+* Partitioning::                    Disk partitioning in context
+* Running Parted::                  Partitioning with Parted
+* Invoking Parted::                 Parted's invocation options and commands
+* Command explanations::            Full explanation of parted's commands
+@end menu
+
+@node Partitioning
+@section Introduction to Partitioning 
+@cindex partitioning overview
+
+Unfortunately, partitioning your disk is rather complicated.  This is
+because there are interactions between many different systems that need
+to be taken into consideration.
+
+This manual used to introduce the reader to these systems and their
+working.  This content has moved to the GNU Storage Guide.
+
+@node Running Parted
+@section Using GNU Parted
+@cindex modes of use
+
+Parted has two modes: command line and interactive.  Parted should
+always be started with:
+
+@example
+# @kbd{parted @var{device}}
+@end example
+
+@noindent where @var{device} is the hard disk device to edit.  (If you're
+lazy and omit the DEVICE argument, Parted will attempt to guess which
+device you want.)
+
+In command line mode, this is followed by one or more commands.  For
+example:
+
+@example
+# @kbd{parted /dev/sda resize 1 52Mb 104Mb mkfs 2 fat16}
+@end example
+
+@noindent Options (like @kbd{--help}) can only be specified on the
+command line.
+
+In interactive mode, commands are entered one at a time at a prompt, and
+modify the disk immediately.  For example:
+
+@example
+(parted) @kbd{resize 1 52.0005Mb 104.5Mb}
+(parted) @kbd{mkfs 2 fat16}
+@end example
+
+@noindent Unambiguous abbreviations are allowed.  For example, you can
+type ``p'' instead of ``print'', and ``resi'' instead of ``resize''.
+Commands can be typed either in English, or your native language (if
+your language has been translated).  This may create ambiguities.
+Commands are case-insensitive.
+
+Numbers indicating partition locations can be whole numbers or decimals.
+The suffix selects the unit, which may be one of those described in
+@ref{unit}, except CHS and compact.  If no suffix is given, then the default
+unit is assumed.  Negative numbers count back from the end of the disk,
+with ``-1s'' indicating the end of the disk.  Parted will compute sensible
+ranges for the locations you specify (e.g. a range of +/- 500 MB when you
+specify the location in ``G''). Use the sector unit ``s'' to specify exact
+locations.
+
+If you don't give a parameter to a command, Parted will prompt you for it.
+For example:
+
+@example
+(parted) @kbd{resize 1}
+Start? @kbd{0Gb}
+End? @kbd{40Gb}
+@end example
+
+Parted will always warn you before doing something that is potentially
+dangerous, unless the command is one of those that is inherently
+dangerous (viz., rm, mklabel and mkfs).  For example, if you attempt to
+shrink a partition ``too much'' (i.e., by more than the free space
+available), Parted will automatically reduce the shrinkage so that the
+partition is the smallest it can be without losing data.  If this size is
+significantly different from the size requested, Parted will warn you.
+Since many partitioning systems have complicated constraints, Parted will
+usually do something slightly different to what you asked.  (For example,
+create a partition starting at 10.352Mb, not 10.4Mb)
+If the calculated values differ too much, Parted will ask you for
+confirmation.
+
+@node Invoking Parted
+@section Command Line Options
+@cindex options at invocation
+@cindex commands, overview
+@cindex invocation options
+
+When invoked from the command line, Parted supports the following syntax:
+
+@example
+# @kbd{parted [@var{option}] @var{device} [@var{command} [@var{argument}]]}
+@end example
+
+Available options and commands follow.  For detailed explanations of the
+use of Parted commands, see @ref{Command explanations}. Options begin
+with a hyphen, commands do not:
+
+Options:
+
+@table @samp
+@item -h
+@itemx --help
+display a help message
+
+@item -i
+@itemx --interactive
+prompt for user intervention
+
+@item -s
+@itemx --script
+never prompt the user
+
+@item -v
+@itemx --version
+display the version
+@end table
+
+@node Command explanations
+@section Parted Session Commands
+@cindex command syntax
+@cindex detailed command listing
+@cindex commands, detailed listing
+
+GNU Parted provides the following commands:
+
+@menu
+* check::
+* cp::
+* help::
+* mklabel::
+* mkfs::
+* mkpart::
+* mkpartfs::
+* move::
+* name::
+* print::
+* quit::
+* rescue::
+* resize::
+* rm::
+* select::
+* set::
+* unit::
+@end menu
+
+@node check
+@subsection check
+@cindex check, command description
+@cindex command description, check
+
+@deffn Command check @var{number}
+
+Checks if the file system on partition @var{number} has
+any errors.
+
+Example:
+
+@example
+(parted) @kbd{check 1}
+@end example
+
+Check the file system on partition 1.
+@end deffn
+
+@node cp
+@subsection cp
+@cindex cp, command description
+@cindex command description, cp
+
+@deffn Command cp [@var{from-device}] @var{from-number} @var{to-number}
+
+Copies the file system on the partition @var{from-number} to partition
+@var{to-number}, deleting the original contents of the destination
+partition.
+
+An optional device parameter, @var{from-device} can be given, which
+specifies which device the source partition is on.
+
+Supported file systems:
+@itemize @bullet
+@item ext2, ext3
+(provided the destination partition is larger than the source partition)
+
+@item fat16, fat32
+@item linux-swap	
+(equivalent to mkswap on destination partition)
+@item reiserfs (if libreiserfs is installed)
+
+@end itemize
+
+Example:
+
+@example
+(parted) @kbd{cp /dev/hdb 2 3}
+@end example
+
+@c FIXME: this doesn't format right.
+Copy partition 2 of @file{/dev/hdb} (i.e., @file{/dev/hdb2}) to partition
+on 3, on the device Parted was loaded with, destroying the original
+contents of partition 3.
+@end deffn
+
+@node help
+@subsection help
+@cindex help, command description
+@cindex command description, help
+
+@deffn Command help [@var{command}]
+
+Prints general help, or help on @var{command}.
+
+Example:
+
+@example
+(parted) @kbd{help resize}
+@end example
+
+Print help for the resize command.
+@end deffn
+
+@node mklabel
+@subsection mklabel
+@cindex mklabel, command description
+@cindex command description, mkindex
+
+@deffn Command mklabel @var{label-type}
+
+Creates a new disk label, of type @var{label-type}.  The new disk label
+will have no partitions.  This command (normally) won't technically
+destroy your data, but it will make it basically unusable,
+and you will need to use the rescue command (@pxref{Related information})
+to recover any partitions.
+Parted works on all partition tables.  @footnote{Everyone seems to
+have a different word for ``disk label'' --- these are all the same
+thing: partition table, partition map.}
+
+@var{label-type} must be one of these supported disk labels:
+@itemize @bullet
+@item bsd
+@item loop (raw disk access)
+@item gpt
+@item mac
+@item msdos
+@item pc98
+@item sun
+@end itemize
+
+Example:
+
+@example
+(parted) @kbd{mklabel msdos}
+@end example
+
+Create an MS-DOS disk label.  This is still the most common disk label for
+PCs.
+@end deffn
+
+@node mkfs
+@subsection mkfs
+@cindex mkfs, command description
+@cindex command description, mkfs
+
+@deffn Command mkfs @var{number} @var{fs-type}
+
+Makes a file system @var{fs-type} on partition @var{number}, destroying
+all data that resides on that partition.
+
+Supported file systems:
+@itemize @bullet
+@item ext2
+@item fat16, fat32
+@item linux-swap
+@item reiserfs (if libreiserfs is installed)
+@end itemize
+
+Example:
+
+@example
+(parted) @kbd{mkfs 2 fat32}
+@end example
+
+Make a @var{fat32} file system on partition 2.
+@end deffn
+
+@node mkpart
+@subsection mkpart
+@cindex mkpart, command description
+@cindex command description, mkpart
+
+@deffn Command mkpart @var{part-type} [@var{fs-type}] @var{start} @var{end}
+
+Creates a new partition, @emph{without} creating a new file system on
+that partition.  This is useful for creating partitions for file systems
+(or LVM, etc.) that Parted doesn't support.  You may specify a file
+system type, to set the appropriate partition code in the partition
+table for the new partition.  @var{fs-type} is required for data
+partitions (i.e., non-extended partitions).  @var{start} and @var{end}
+are the offset from the beginning of the disk, that is, the ``distance''
+from the start of the disk.
+
+@var{part-type} is one of: primary, extended, logical.  Extended and
+logical are only used for msdos and dvh disk labels.
+
+@var{fs-type} must be on of these supported file systems:
+@itemize @bullet
+@item ext2
+@item fat16, fat32
+@item hfs, hfs+, hfsx
+@item linux-swap
+@item NTFS
+@item reiserfs
+@item ufs
+@end itemize
+
+Example:
+
+@example
+(parted) @kbd{mkpart logical 0.0 692.1}
+@end example
+
+Create a logical partition that will contain an ext2 file system.  The
+partition will start at the beginning of the disk, and end 692.1
+megabytes into the disk.
+
+@end deffn
+
+@node mkpartfs
+@subsection mkpartfs
+@cindex mkpartfs, command description
+@cindex command description, mkpartfs
+
+@deffn Command mkpartfs @var{part-type} @var{fs-type} @var{start} @var{end}
+
+Creates a new partition of type @var{part-type} with a new file system
+of type @var{fs-type} on it.  The new partition will start @var{start}
+megabytes, and end @var{end} megabytes from the beginning of the disk.
+Do not use this command to recover a deleted partition (use mkpart
+instead).
+
+@var{part-type} is one of: primary, extended, logical.  Extended and logical
+are only used for msdos and dvh disk labels.
+
+@var{fs-type} must be one of these supported file systems:
+@itemize @bullet
+@item ext2
+@item fat16, fat32
+@item linux-swap
+@item reiserfs (if libreiserfs is installed)
+@end itemize
+
+Example:
+
+@example
+(parted) @kbd{mkpartfs logical ext2 440 670}
+@end example
+
+Make a logical partition and write an ext2 file system, starting 440
+megabytes and ending 670 megabytes from the beginning of the disk.
+@end deffn
+
+@node move
+@subsection move
+@cindex move, command description
+@cindex command description, move
+
+@deffn Command move @var{number} @var{start} @var{end}
+
+Moves partition on the disk, by moving its beginning to @var{start}.
+You can't move a partition so that the old and new positions overlap.
+That is, you can only move partitions into free space.  If you want
+to resize a partition in-place, use @command{resize}.
+
+Move never changes the partition number.
+
+Supported file systems:
+@itemize @bullet
+@item ext2, ext3
+(provided the destination partition is larger than the source partition)
+
+@item fat16, fat32
+
+@item linux-swap
+
+@item reiserfs (if libreiserfs is installed)
+@end itemize
+
+Example:
+
+@example
+(parted) move 2 150M 500M
+@end example
+
+Move the partition numbered 2 so that it begins 150 megabytes from the start of
+the disk, and ends 500 megabytes from the start.
+
+@end deffn
+
+@node name
+@subsection name
+@cindex name, command description
+@cindex command description, name
+
+@deffn Command name @var{number} @var{name}
+
+Sets the name for the partition @var{number} (GPT, Mac, MIPS and PC98 only).
+The name can be placed in quotes.
+
+Example:
+
+@example
+(parted) @kbd{name 2 'Secret Documents'}
+@end example
+
+Set the name of partition 2 to `Secret Documents'.
+@end deffn
+
+@node print
+@subsection print
+@cindex print, command description
+@cindex command description, print
+
+@deffn Command print [@var{number}]
+
+Displays the partition table on the device parted is editing, or
+detailed information about a particular partition.
+
+Example:
+
+@example
+@group
+(parted) @kbd{print}
+Disk geometry for /dev/hda: 0.000-2445.679 megabytes
+Disk label type: msdos
+Minor    Start       End     Type      Filesystem  Flags
+1          0.031    945.000  primary   fat32       boot, lba
+2        945.000   2358.562  primary   ext2
+3       2358.562   2445.187  primary   linux-swap
+(parted) @kbd{print 1}
+Minor: 1
+Flags: boot, lba
+File System: fat32
+Size:            945.000Mb (0%)
+Minimum size:     84.361Mb (0%)
+Maximum size:   2445.679Mb (100%)
+@end group
+@end example
+@end deffn
+
+@node quit
+@subsection quit
+@cindex quit, command description
+@cindex command description, quit
+
+@deffn Command quit
+
+Quits Parted.
+
+@c RMK: generality: the following will apply to any operating system on
+@c which parted will run, not only Linux-based ones.
+@c clausen: yeah... just that the way hurd and linux work are totally
+@c different, and it's actually very hard to speak in general.  Need to
+@c discuss this more
+It is only after Parted exits that the Linux kernel knows about the changes
+Parted has made to the disks.  However, the changes caused by typing your
+commands will @emph{probably} be made to the disk immediately after typing a
+command.  However, the operating system's cache and the disk's hardware cache
+may delay this.
+@end deffn
+
+@node rescue
+@subsection rescue
+@cindex rescue, command description
+@cindex command description, rescue
+
+@deffn Command rescue @var{start} @var{end}
+Rescue a lost partition that used to be located approximately between
+@var{start} and @var{end}.  If such a partition is found, Parted will
+ask you if you want to create a partition for it.  This is useful if you
+accidently deleted a partition with parted's rm command, for example.
+
+Example:
+
+@example
+(parted) @kbd{print}
+@group
+Disk geometry for /dev/hdc: 0.000-8063.507 megabytes
+Disk label type: msdos
+Minor    Start       End     Type      Filesystem  Flags
+1          0.031   8056.032  primary   ext3
+@end group
+(parted) @kbd{rm}
+Partition number? 1
+(parted) @kbd{print}
+@group
+Disk geometry for /dev/hdc: 0.000-8063.507 megabytes
+Disk label type: msdos
+Minor    Start       End     Type      Filesystem  Flags
+@end group
+@end example
+
+OUCH!  We deleted our ext3 partition!!!  Parted comes to the rescue...
+
+@example
+(parted) @kbd{rescue}
+Start? 0
+End? 8056
+Information: A ext3 primary partition was found at 0.031MB ->
+8056.030MB.  Do you want to add it to the partition table?
+Yes/No/Cancel? @kbd{y}
+(parted) @kbd{print}
+@group
+Disk geometry for /dev/hdc: 0.000-8063.507 megabytes
+Disk label type: msdos
+Minor    Start       End     Type      Filesystem  Flags
+1          0.031   8056.032  primary   ext3
+@end group
+@end example
+
+It's back!  :)
+
+@end deffn
+
+@node resize
+@subsection resize
+@cindex resize, command description
+@cindex command description, resize
+
+@deffn Command resize @var{number} @var{start} @var{end}
+
+Resizes the partition with number @var{number}.  The partition will start
+@var{start} from the beginning of the disk, and end @var{end} from the
+beginning of the disk.  resize never changes the partition number.  Extended
+partitions can be resized only so long as the new extended partition
+completely contains all logical partitions.
+
+Note that Parted can manipulate partitions whether or not they have been
+defragmented, so you do not need to defragmenting the disk before
+using Parted.
+
+Supported file systems:
+@itemize @bullet
+@item ext2, ext3 -- restriction: the new @var{start} must be the same as
+the old @var{start}.
+@item fat16, fat32
+@item hfs, hfs+, hfsx -- restriction: the new @var{start} must be the same as
+the old @var{start} and the new @var{end} must be smaller than the old
+@var{end}.
+@item linux-swap
+@item reiserfs (if libreiserfs is installed)
+@end itemize
+
+Example:
+
+@example
+(parted) @kbd{resize 3 200M 850M}
+@end example
+
+Resize partition 3, so that it begins 200 megabytes and ends 850
+megabytes from the beginning of the disk.
+@end deffn
+
+@node rm
+@subsection rm
+@cindex rm, command description
+@cindex command description, rm
+
+
+@deffn Command rm @var{number}
+
+Removes the partition with number @var{number}.  If you accidently delete
+a partition with this command, use mkpart (@emph{not} mkpartfs) to
+recover it.  Also, you can use the gpart program (@pxref{Related information})
+to recover damaged disk labels.
+
+Note for msdos disk labels: if you delete a logical partition, all
+logical partitions with a larger partition number will be renumbered.  For
+example, if you delete a logical partition with a partition number of 6,
+then logical partitions that were number 7, 8 and 9 would be renumbered
+to 6, 7 and 8 respectively.  This means, for example, that you have to
+update @file{/etc/fstab} on GNU/Linux systems.
+
+Example:
+
+@example
+(parted) @kbd{rm 3}
+@end example
+
+Remove partition 3.
+@end deffn
+
+@node select
+@subsection select
+@cindex select, command description
+@cindex command description, select
+
+@deffn Command select @var{device}
+
+Selects the device, @var{device}, for Parted to edit.  The device can
+be a Linux hard disk device, a partition, a software RAID device or
+LVM logical volume.
+
+Example:
+
+@example
+(parted) @kbd{select /dev/hdb}
+@end example
+
+Select @file{/dev/hdb} (the slave device on the first ide controller on
+Linux) as the device to edit.
+@end deffn
+
+@node set
+@subsection set
+@cindex set, command description
+@cindex command description, set
+
+@deffn Command set @var{number} @var{flag} @var{state}
+
+Changes a flag on the partition with number @var{number}.  A flag can be
+either ``on'' or ``off''.  Some or all of these flags will be available,
+depending on what disk label you are using:
+
+@table @samp
+@item boot
+(Mac, MS-DOS, PC98) - should be enabled if you want to boot off the
+partition.  The semantics vary between disk labels.  For MS-DOS disk
+labels, only one partition can be bootable.  If you are installing LILO
+on a partition that partition must be bootable.
+For PC98 disk labels, all ext2 partitions must be bootable (this is
+enforced by Parted).
+
+@item lba
+(MS-DOS) - this flag can be enabled to tell MS DOS, MS Windows 9x and
+MS Windows ME based operating systems to use Linear (LBA) mode.
+
+@item root
+(Mac) - this flag should be enabled if the partition is the root device
+to be used by Linux.
+
+@item swap
+(Mac) - this flag should be enabled if the partition is the swap
+device to be used by Linux.
+
+@item hidden
+(MS-DOS, PC98) - this flag can be enabled to hide partitions from
+Microsoft operating systems.
+
+@item raid
+(MS-DOS) - this flag can be enabled to tell linux the partition is a
+software RAID partition. 
+
+@item LVM
+(MS-DOS) - this flag can be enabled to tell linux the partition is a
+physical volume.
+
+@item PALO
+(MS-DOS) - this flag can be enabled so that the partition can be used
+by the Linux/PA-RISC boot loader, palo.
+
+@item PREP
+(MS-DOS) - this flag can be enabled so that the partition can be used
+as a PReP boot partition on PowerPC PReP or IBM RS6K/CHRP hardware.
+
+@end table
+
+The print command displays all enabled flags for each partition.
+
+Example:
+
+@example
+(parted) @kbd{set 1 boot on}
+@end example
+
+Set the @samp{boot} flag on partition 1.
+@end deffn
+
+@node unit
+@subsection unit
+@cindex unit, command description
+@cindex command description, unit
+
+@deffn Command unit @var{unit}
+
+Selects the current default unit that Parted will use to display
+locations and capacities on the disk and to interpret those given
+by the user if they are not suffixed by an @var{unit}.
+
+@var{unit} may be one of:
+
+@table @samp
+@item s
+sector (n bytes depending on the sector size, often 512)
+
+@item B
+byte
+
+@item kB
+kilobyte (1000 bytes)
+
+@item MB
+megabyte (1000000 bytes)
+
+@item GB
+gigabyte (1000000000 bytes)
+
+@item TB
+terabyte (1000000000000 bytes)
+
+@item %
+percentage of the device (between 0 and 100)
+
+@item cyl
+cylinders (related to the BIOS CHS geometry)
+
+@item chs
+cylinders, heads, sectors addressing (related to the BIOS CHS geometry)
+
+@item compact
+This is a special unit that defaults to megabytes for input, and picks a
+unit that gives a compact human readable representation for output.
+@end table
+
+The default unit apply only for the output and when no unit is
+specified after an input number.  Input numbers can be followed by
+an unit (without any space or other character between them), in
+which case this unit apply instead of the default unit for this
+particular number, but CHS and cylinder units are not supported as
+a suffix.  If no suffix is given, then the default unit is assumed. 
+Parted will compute sensible ranges for the locations you specify
+(e.g. a range of +/- 500 MB when you specify the location in ``G'')
+and will select the nearest location in this range from the one you
+wrote that satisfies constraints from both the operation, the
+filesystem being worked on, the disk label, other partitions and so
+on.  Use the sector unit ``s'' to specify exact locations (if they
+do not satisfy all onstraints, Parted will ask you for the nearest 
+solution).  Note that negative numbers count back from the end of
+the disk, with ``-1s'' pointing to the end of the disk.  
+
+Example:
+
+@example
+@group
+(parted) unit compact                                                     
+(parted) print                                                            
+Disk geometry for /dev/hda: 0kB - 123GB
+Disk label type: msdos
+Number  Start   End     Size    Type      File system  Flags
+1       32kB    1078MB  1077MB  primary   reiserfs     boot
+2       1078MB  2155MB  1078MB  primary   linux-swap   
+3       2155MB  123GB   121GB   extended               
+5       2155MB  7452MB  5297MB  logical   reiserfs     
+@end group
+@group
+(parted) unit chs print                                                   
+Disk geometry for /dev/hda: 0,0,0 - 14946,225,62
+BIOS cylinder,head,sector geometry: 14946,255,63.  Each cylinder
+is 8225kB.
+Disk label type: msdos
+Number  Start       End         Type      File system  Flags
+1       0,1,0       130,254,62  primary   reiserfs     boot
+2       131,0,0     261,254,62  primary   linux-swap   
+3       262,0,0     14945,254,62 extended               
+5       262,2,0     905,254,62  logical   reiserfs     
+@end group
+@group
+(parted) unit mb print                                                    
+Disk geometry for /dev/hda: 0MB - 122942MB
+Disk label type: msdos
+Number  Start   End     Size    Type      File system  Flags
+1       0MB     1078MB  1077MB  primary   reiserfs     boot
+2       1078MB  2155MB  1078MB  primary   linux-swap   
+3       2155MB  122935MB 120780MB extended               
+5       2155MB  7452MB  5297MB  logical   reiserfs     
+@end group
+@end example
+
+@end deffn
+
+@node Related information
+@chapter Related information 
+@cindex further reading
+@cindex related documentation
+
+If you want to find out more information, please see the GNU Parted web site.
+
+These files in the Parted distribution contain further information:
+
+@itemize @bullet
+
+@item @kbd{ABOUT-NLS} - information about using Native Language Support, and the Free Translation Project.
+
+@item @kbd{AUTHORS} - who wrote what.
+
+@item @kbd{ChangeLog} - record of changes made to Parted.
+
+@item @kbd{COPYING} - the GNU General Public License, the terms under which GNU Parted may be distributed.
+
+@item @kbd{COPYING.DOC} - the GNU Free Documentation Licence, the term under
+which Parted's documentation may be distributed.
+
+@item @kbd{INSTALL} --- how to compile and install Parted, and most other free
+software
+
+@end itemize
+
+@node Copying This Manual
+@appendix Copying This Manual
+
+@menu
+* GNU Free Documentation License::  License for copying this manual
+@end menu
+
+@include fdl.texi
+
+@node History
+@appendix This manual's history
+@cindex  history of this manual
+
+This manual was based on the file @kbd{USER} included in GNU Parted version
+1.4.22 source distribution.  The GNU Parted source distribution is
+available at @uref{ftp.gnu.org/gnu/parted}.
+
+Initial Texinfo formatting by Richard M. Kreuter, 2002.
+
+Maintainance by Andrew Clausen from 2002 to 2005 and by Leslie P. Polzer
+from July 2005 onwards.
+
+This manual is distributed under the GNU Free Documentation License,
+version 1.1 or later, at your discretion, any later version published
+by the Free Software Foundation; with no Invariant Sections, with no
+Front-Cover Texts, and with no Back-Cover Texts.  @xref{Copying
+This Manual}, for details.
+
+@c FIXME: why doesn't this @ifnotplaintext work?!
+@c @ifnotplaintext
+@node Index
+@unnumbered Index
+@printindex cp
+@c @end ifnotplaintext
+
+@bye
+
+@ignore
+
+Notes by RMK:
+Notes on possible (unimplemented!) modifications:
+
+The output samples from parted's print command, fdisk's p command, etc.,
+might be made into tables (multi-column tables) to ensure spiffy formatting.
+
+I'd like to find a way to make *entry: see *synonym type references in
+the index, so, e.g., to refer people looking for Apple to Macintosh, and
+PowerPC to Macintosh, etc.  Probably texinfo does this already; I dunno.
+
+Notes by Leslie:
+
+TODO:
+     - add "version" command.
+     - read through and correct.
+     - role of FreeDOS?
+
+@end ignore
diff --git a/parted-1.8.7/doc/po4a.mk b/parted-1.8.7/doc/po4a.mk
new file mode 100644
index 0000000..24876ac
--- /dev/null
+++ b/parted-1.8.7/doc/po4a.mk
@@ -0,0 +1,91 @@
+#
+# You must set the $(lang) variable when you include this makefile.
+#
+# You can use the $(po4a_translate_options) variable to specify additional
+# options to po4a.
+# For example: po4a_translate_options=-L KOI8-R -A KOI8-R
+#
+#
+# This makefile deals with the manpages generated from POs with po4a, and
+# should be included in an automake Makefile.am.
+#
+# The po must be named:
+#   <man>.$(lang).po
+# If a man page require an addendum, you must name it:
+#   <man>.$(lang).po.addendum
+# Where <man> corresponds to a filename in the C directory (which contains
+# the English man pages).
+#
+# The POs suffix is $(lang).po to allow dl10n to detect the outdated POs.
+#
+#
+# If a man page cannot be generated (it is not sufficiently translated; the
+# threshold is 80%), it won't be distributed, and the build won't fail.
+#
+
+mandir = @mandir@/$(lang)
+
+# Inform automake that we want to install some man pages in section 1, 5
+# and 8.
+# We can't simply use:
+# dist_man_MANS = $(wildcard *.[1-9])
+# Because when Makefile.in is generated, dist_man_MANS is empty, and
+# automake do not generate the install-man targets.
+dist_man_MANS =
+
+# Override the automake's install-man target.
+# And set dist_man_MANS according to the pages that could be generated
+# when this target is called.
+install-man: dist_man_MANS = pt_BR-parted.8
+install-man: install-man1 install-man5 install-man8
+
+# For each .po, try to generate the man page
+all-local:
+	for po in `ls -1 $(srcdir)/*.$(lang).po 2>/dev/null`; do \
+		$(MAKE) $$(basename $${po%.$(lang).po}); \
+	done
+
+# Remove the man pages that were generated from a .po
+clean-local:
+	for po in `ls -1 $(srcdir)/*.$(lang).po 2>/dev/null`; do \
+		rm -f $$(basename $${po%.$(lang).po}); \
+	done
+
+.PHONY: updatepo
+# Update the PO in srcdir, according to the POT in C.
+# Based on the gettext po/Makefile.in.in
+updatepo:
+	tmpdir=`pwd`; \
+	cd $(srcdir); \
+	for po in *.$(lang).po; do \
+	  case "$$po" in '*'*) continue;; esac; \
+	  pot=../C/po/$${po%$(lang).po}pot; \
+	  echo "$(MSGMERGE) $$po $$pot -o $${po%po}new.po"; \
+	  if $(MSGMERGE) $$po $$pot -o $$tmpdir/$${po%po}new.po; then \
+	    if cmp $$po $$tmpdir/$${po%po}new.po >/dev/null 2>&1; then \
+	      rm -f $$tmpdir/$${po%po}new.po; \
+	    else \
+	      if mv -f $$tmpdir/$${po%po}new.po $$po; then \
+	        :; \
+	      else \
+	        echo "msgmerge for $$po failed: cannot move $$tmpdir/$${po%po}new.po to $$po" 1>&2; \
+	        exit 1; \
+	      fi; \
+	    fi; \
+	  else \
+	    echo "msgmerge for $$po failed!" 1>&2; \
+	    rm -f $$tmpdir/$${po%po}new.po; \
+	  fi; \
+	  msgfmt -o /dev/null --statistics $$po; \
+	done
+
+dist-hook: updatepo
+
+# Build the pages
+partprobe.8:
+	for locale in pt_BR ; do \
+		po4a-translate -f man -m $(srcdir)/../C/$@ -p $@.$$locale.po -l $@ $(po4a_translate_options) ; \
+		if [ -f $(srcdir)/$@.$$locale.po.addendum ]; then \
+			po4a-translate -f man -m $(srcdir)/../C/$@ -p $@.$$locale.po -l $@ -a $(srcdir)/$@.$$locale.po.addendum $(po4a_translate_options) ; \
+		fi ; \
+	done
diff --git a/parted-1.8.7/doc/pt_BR/Makefile.am b/parted-1.8.7/doc/pt_BR/Makefile.am
new file mode 100644
index 0000000..d478773
--- /dev/null
+++ b/parted-1.8.7/doc/pt_BR/Makefile.am
@@ -0,0 +1,7 @@
+## Process this file with automake to produce Makefile.in
+
+lang=pt_BR
+
+include ../po4a.mk
+
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/parted-1.8.7/doc/pt_BR/Makefile.in b/parted-1.8.7/doc/pt_BR/Makefile.in
new file mode 100644
index 0000000..786ae12
--- /dev/null
+++ b/parted-1.8.7/doc/pt_BR/Makefile.in
@@ -0,0 +1,605 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+#
+# You must set the $(lang) variable when you include this makefile.
+#
+# You can use the $(po4a_translate_options) variable to specify additional
+# options to po4a.
+# For example: po4a_translate_options=-L KOI8-R -A KOI8-R
+#
+#
+# This makefile deals with the manpages generated from POs with po4a, and
+# should be included in an automake Makefile.am.
+#
+# The po must be named:
+#   <man>.$(lang).po
+# If a man page require an addendum, you must name it:
+#   <man>.$(lang).po.addendum
+# Where <man> corresponds to a filename in the C directory (which contains
+# the English man pages).
+#
+# The POs suffix is $(lang).po to allow dl10n to detect the outdated POs.
+#
+#
+# If a man page cannot be generated (it is not sufficiently translated; the
+# threshold is 80%), it won't be distributed, and the build won't fail.
+#
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(dist_man_MANS) $(srcdir)/../po4a.mk \
+	$(srcdir)/Makefile.am $(srcdir)/Makefile.in
+subdir = doc/pt_BR
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@/$(lang)
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+lang = pt_BR
+
+# Inform automake that we want to install some man pages in section 1, 5
+# and 8.
+# We can't simply use:
+# dist_man_MANS = $(wildcard *.[1-9])
+# Because when Makefile.in is generated, dist_man_MANS is empty, and
+# automake do not generate the install-man targets.
+dist_man_MANS = 
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(srcdir)/../po4a.mk $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  doc/pt_BR/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  doc/pt_BR/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+	$(MAKE) $(AM_MAKEFLAGS) \
+	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
+	  dist-hook
+check-am: all-am
+check: check-am
+all-am: Makefile all-local
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-local mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am all-local check check-am clean clean-generic \
+	clean-libtool clean-local dist-hook distclean \
+	distclean-generic distclean-libtool distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+
+
+# Override the automake's install-man target.
+# And set dist_man_MANS according to the pages that could be generated
+# when this target is called.
+install-man: dist_man_MANS = pt_BR-parted.8
+install-man: install-man1 install-man5 install-man8
+
+# For each .po, try to generate the man page
+all-local:
+	for po in `ls -1 $(srcdir)/*.$(lang).po 2>/dev/null`; do \
+		$(MAKE) $$(basename $${po%.$(lang).po}); \
+	done
+
+# Remove the man pages that were generated from a .po
+clean-local:
+	for po in `ls -1 $(srcdir)/*.$(lang).po 2>/dev/null`; do \
+		rm -f $$(basename $${po%.$(lang).po}); \
+	done
+
+.PHONY: updatepo
+# Update the PO in srcdir, according to the POT in C.
+# Based on the gettext po/Makefile.in.in
+updatepo:
+	tmpdir=`pwd`; \
+	cd $(srcdir); \
+	for po in *.$(lang).po; do \
+	  case "$$po" in '*'*) continue;; esac; \
+	  pot=../C/po/$${po%$(lang).po}pot; \
+	  echo "$(MSGMERGE) $$po $$pot -o $${po%po}new.po"; \
+	  if $(MSGMERGE) $$po $$pot -o $$tmpdir/$${po%po}new.po; then \
+	    if cmp $$po $$tmpdir/$${po%po}new.po >/dev/null 2>&1; then \
+	      rm -f $$tmpdir/$${po%po}new.po; \
+	    else \
+	      if mv -f $$tmpdir/$${po%po}new.po $$po; then \
+	        :; \
+	      else \
+	        echo "msgmerge for $$po failed: cannot move $$tmpdir/$${po%po}new.po to $$po" 1>&2; \
+	        exit 1; \
+	      fi; \
+	    fi; \
+	  else \
+	    echo "msgmerge for $$po failed!" 1>&2; \
+	    rm -f $$tmpdir/$${po%po}new.po; \
+	  fi; \
+	  msgfmt -o /dev/null --statistics $$po; \
+	done
+
+dist-hook: updatepo
+
+# Build the pages
+partprobe.8:
+	for locale in pt_BR ; do \
+		po4a-translate -f man -m $(srcdir)/../C/$@ -p $@.$$locale.po -l $@ $(po4a_translate_options) ; \
+		if [ -f $(srcdir)/$@.$$locale.po.addendum ]; then \
+			po4a-translate -f man -m $(srcdir)/../C/$@ -p $@.$$locale.po -l $@ -a $(srcdir)/$@.$$locale.po.addendum $(po4a_translate_options) ; \
+		fi ; \
+	done
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/doc/stamp-vti b/parted-1.8.7/doc/stamp-vti
new file mode 100644
index 0000000..c37c249
--- /dev/null
+++ b/parted-1.8.7/doc/stamp-vti
@@ -0,0 +1,4 @@
+@set UPDATED 18 April 2007
+@set UPDATED-MONTH April 2007
+@set EDITION 1.8.7
+@set VERSION 1.8.7
diff --git a/parted-1.8.7/doc/version.texi b/parted-1.8.7/doc/version.texi
new file mode 100644
index 0000000..c37c249
--- /dev/null
+++ b/parted-1.8.7/doc/version.texi
@@ -0,0 +1,4 @@
+@set UPDATED 18 April 2007
+@set UPDATED-MONTH April 2007
+@set EDITION 1.8.7
+@set VERSION 1.8.7
diff --git a/parted-1.8.7/include/Makefile.am b/parted-1.8.7/include/Makefile.am
new file mode 100644
index 0000000..25715ce
--- /dev/null
+++ b/parted-1.8.7/include/Makefile.am
@@ -0,0 +1,3 @@
+SUBDIRS = parted
+
+MAINTAINERCLEANFILES = Makefile.in
\ No newline at end of file
diff --git a/parted-1.8.7/include/Makefile.in b/parted-1.8.7/include/Makefile.in
new file mode 100644
index 0000000..7ed1596
--- /dev/null
+++ b/parted-1.8.7/include/Makefile.in
@@ -0,0 +1,671 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = include
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+	html-recursive info-recursive install-data-recursive \
+	install-dvi-recursive install-exec-recursive \
+	install-html-recursive install-info-recursive \
+	install-pdf-recursive install-ps-recursive install-recursive \
+	installcheck-recursive installdirs-recursive pdf-recursive \
+	ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
+  distclean-recursive maintainer-clean-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = parted
+MAINTAINERCLEANFILES = Makefile.in
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  include/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  include/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	rev=''; for subdir in $$list; do \
+	  if test "$$subdir" = "."; then :; else \
+	    rev="$$subdir $$rev"; \
+	  fi; \
+	done; \
+	rev="$$rev ."; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done && test -z "$$fail"
+tags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+ctags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+	  include_option=--etags-include; \
+	  empty_fix=.; \
+	else \
+	  include_option=--include; \
+	  empty_fix=; \
+	fi; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test ! -f $$subdir/TAGS || \
+	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	  fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d "$(distdir)/$$subdir" \
+	    || $(MKDIR_P) "$(distdir)/$$subdir" \
+	    || exit 1; \
+	    distdir=`$(am__cd) $(distdir) && pwd`; \
+	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+	    (cd $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$$top_distdir" \
+	        distdir="$$distdir/$$subdir" \
+		am__remove_distdir=: \
+		am__skip_length_check=: \
+	        distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-info: install-info-recursive
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-ps: install-ps-recursive
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+	install-strip
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+	all all-am check check-am clean clean-generic clean-libtool \
+	ctags ctags-recursive distclean distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs installdirs-am maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
+	uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/include/parted/Makefile.am b/parted-1.8.7/include/parted/Makefile.am
new file mode 100644
index 0000000..dd0e1d4
--- /dev/null
+++ b/parted-1.8.7/include/parted/Makefile.am
@@ -0,0 +1,27 @@
+if COMPILE_FOR_S390
+S390_HDRS = fdasd.h vtoc.h
+else
+S390_HDRS =
+endif
+
+partedincludedir      =	$(includedir)/parted
+
+partedinclude_HEADERS = gnu.h		\
+			linux.h		\
+			constraint.h	\
+			debug.h		\
+			device.h	\
+			disk.h		\
+			exception.h	\
+			filesys.h	\
+			geom.h		\
+			natmath.h	\
+			timer.h		\
+			unit.h		\
+			parted.h        \
+			$(S390_HDRS)
+
+noinst_HEADERS	      = crc32.h		\
+			endian.h
+
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/parted-1.8.7/include/parted/Makefile.in b/parted-1.8.7/include/parted/Makefile.in
new file mode 100644
index 0000000..cbb6e05
--- /dev/null
+++ b/parted-1.8.7/include/parted/Makefile.in
@@ -0,0 +1,612 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = include/parted
+DIST_COMMON = $(am__partedinclude_HEADERS_DIST) $(noinst_HEADERS) \
+	$(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__partedinclude_HEADERS_DIST = gnu.h linux.h constraint.h debug.h \
+	device.h disk.h exception.h filesys.h geom.h natmath.h timer.h \
+	unit.h parted.h fdasd.h vtoc.h
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(partedincludedir)"
+partedincludeHEADERS_INSTALL = $(INSTALL_HEADER)
+HEADERS = $(noinst_HEADERS) $(partedinclude_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+@COMPILE_FOR_S390_FALSE@S390_HDRS = 
+@COMPILE_FOR_S390_TRUE@S390_HDRS = fdasd.h vtoc.h
+partedincludedir = $(includedir)/parted
+partedinclude_HEADERS = gnu.h		\
+			linux.h		\
+			constraint.h	\
+			debug.h		\
+			device.h	\
+			disk.h		\
+			exception.h	\
+			filesys.h	\
+			geom.h		\
+			natmath.h	\
+			timer.h		\
+			unit.h		\
+			parted.h        \
+			$(S390_HDRS)
+
+noinst_HEADERS = crc32.h		\
+			endian.h
+
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  include/parted/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  include/parted/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+install-partedincludeHEADERS: $(partedinclude_HEADERS)
+	@$(NORMAL_INSTALL)
+	test -z "$(partedincludedir)" || $(MKDIR_P) "$(DESTDIR)$(partedincludedir)"
+	@list='$(partedinclude_HEADERS)'; for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  f=$(am__strip_dir) \
+	  echo " $(partedincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(partedincludedir)/$$f'"; \
+	  $(partedincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(partedincludedir)/$$f"; \
+	done
+
+uninstall-partedincludeHEADERS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(partedinclude_HEADERS)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(partedincludedir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(partedincludedir)/$$f"; \
+	done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS)
+installdirs:
+	for dir in "$(DESTDIR)$(partedincludedir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-partedincludeHEADERS
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-partedincludeHEADERS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool ctags distclean distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-partedincludeHEADERS \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags uninstall uninstall-am uninstall-partedincludeHEADERS
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/include/parted/constraint.h b/parted-1.8.7/include/parted/constraint.h
new file mode 100644
index 0000000..529c8b3
--- /dev/null
+++ b/parted-1.8.7/include/parted/constraint.h
@@ -0,0 +1,97 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef PED_CONSTRAINT_H_INCLUDED
+#define PED_CONSTRAINT_H_INCLUDED
+
+typedef struct _PedConstraint	PedConstraint;
+
+#include <parted/device.h>
+#include <parted/natmath.h>
+
+struct _PedConstraint {
+	PedAlignment*	start_align;
+	PedAlignment*	end_align;
+	PedGeometry*	start_range;
+	PedGeometry*	end_range;
+	PedSector	min_size;
+	PedSector	max_size;
+};
+
+extern int
+ped_constraint_init (
+	PedConstraint* constraint,
+	const PedAlignment* start_align,
+	const PedAlignment* end_align,
+	const PedGeometry* start_range,
+	const PedGeometry* end_range,
+	PedSector min_size,
+	PedSector max_size);
+
+extern PedConstraint*
+ped_constraint_new (
+	const PedAlignment* start_align,
+	const PedAlignment* end_align,
+	const PedGeometry* start_range,
+	const PedGeometry* end_range,
+	PedSector min_size,
+	PedSector max_size);
+
+extern PedConstraint*
+ped_constraint_new_from_min_max (
+	const PedGeometry* min,
+	const PedGeometry* max);
+
+extern PedConstraint*
+ped_constraint_new_from_min (const PedGeometry* min);
+
+extern PedConstraint*
+ped_constraint_new_from_max (const PedGeometry* max);
+
+extern PedConstraint*
+ped_constraint_duplicate (const PedConstraint* constraint);
+
+extern void
+ped_constraint_done (PedConstraint* constraint);
+
+extern void
+ped_constraint_destroy (PedConstraint* constraint);
+
+extern PedConstraint*
+ped_constraint_intersect (const PedConstraint* a, const PedConstraint* b);
+
+extern PedGeometry*
+ped_constraint_solve_max (const PedConstraint* constraint);
+
+extern PedGeometry*
+ped_constraint_solve_nearest (
+	const PedConstraint* constraint, const PedGeometry* geom);
+
+extern int
+ped_constraint_is_solution (const PedConstraint* constraint,
+			    const PedGeometry* geom);
+
+extern PedConstraint*
+ped_constraint_any (const PedDevice* dev);
+
+extern PedConstraint*
+ped_constraint_exact (const PedGeometry* geom);
+
+#endif /* PED_CONSTRAINT_H_INCLUDED */
+
diff --git a/parted-1.8.7/include/parted/crc32.h b/parted-1.8.7/include/parted/crc32.h
new file mode 100644
index 0000000..271d773
--- /dev/null
+++ b/parted-1.8.7/include/parted/crc32.h
@@ -0,0 +1,35 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 1998-2000 Free Software Foundation, Inc.
+
+    crc32.h
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef _CRC32_H
+#define _CRC32_H
+
+#include <stdint.h>
+
+/*
+ * This computes a 32 bit CRC of the data in the buffer, and returns the CRC.
+ * The polynomial used is 0xedb88320.
+ */
+
+extern uint32_t __efi_crc32 (const void *buf, unsigned long len,
+			     uint32_t seed);
+
+#endif /* _CRC32_H */
diff --git a/parted-1.8.7/include/parted/debug.h b/parted-1.8.7/include/parted/debug.h
new file mode 100644
index 0000000..dfa7082
--- /dev/null
+++ b/parted-1.8.7/include/parted/debug.h
@@ -0,0 +1,92 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef PED_DEBUG_H_INCLUDED
+#define PED_DEBUG_H_INCLUDED
+
+#include <config.h>
+
+#include <stdarg.h>
+
+#ifdef DEBUG
+
+typedef void (PedDebugHandler) ( const int level, const char* file, int line,
+                                 const char* function, const char* msg );
+
+extern void ped_debug_set_handler (PedDebugHandler* handler);
+extern void ped_debug ( const int level, const char* file, int line,
+                        const char* function, const char* msg, ... );
+
+extern int ped_assert ( int cond, const char* cond_text,
+	                const char* file, int line, const char* function );
+
+#if defined(__GNUC__) && !defined(__JSFTRACE__)
+
+#define PED_DEBUG(level, ...) \
+        ped_debug ( level, __FILE__, __LINE__, __PRETTY_FUNCTION__, \
+                    __VA_ARGS__ );
+
+#define PED_ASSERT(cond, action)				\
+	do {							\
+	if (!ped_assert ( cond,			                \
+			  #cond,				\
+			  __FILE__,				\
+			  __LINE__,				\
+			  __PRETTY_FUNCTION__ ))		\
+	{							\
+		action;						\
+	}							\
+	} while (0)
+
+#else /* !__GNUC__ */
+
+/* function because variadic macros are C99 */
+static void PED_DEBUG (int level, ...)
+{
+        va_list         va_args;
+        
+        va_start (va_args, level);
+        ped_debug ( level, "unknown file", 0, "unknown function", va_args );
+        va_end (va_args);
+}
+        
+#define PED_ASSERT(cond, action)				\
+	do {							\
+	if (!ped_assert ( cond,                     		\
+			  #cond,				\
+			  "unknown",				\
+			  0,					\
+			  "unknown" )) 		        	\
+	{			 				\
+		action;						\
+	}							\
+	} while (0)
+
+#endif /* __GNUC__ */
+
+#else /* !DEBUG */
+
+#define PED_ASSERT(cond, action)	while (0) {}
+#define PED_DEBUG(level, ...)           while (0) {}
+
+
+#endif /* DEBUG */
+
+#endif /* PED_DEBUG_H_INCLUDED */
+
diff --git a/parted-1.8.7/include/parted/device.h b/parted-1.8.7/include/parted/device.h
new file mode 100644
index 0000000..aa96b59
--- /dev/null
+++ b/parted-1.8.7/include/parted/device.h
@@ -0,0 +1,151 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 1998 - 2001, 2005 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+/**
+ * \addtogroup PedDevice
+ * @{
+ */
+
+/** \file device.h */
+
+#ifndef PED_DEVICE_H_INCLUDED
+#define PED_DEVICE_H_INCLUDED
+
+#include <parted/timer.h>
+
+/** We can address 2^63 sectors */
+typedef long long PedSector;
+
+/** \deprecated Removal from API planned */
+typedef enum {
+        PED_DEVICE_UNKNOWN      = 0,
+        PED_DEVICE_SCSI         = 1,
+        PED_DEVICE_IDE          = 2,
+        PED_DEVICE_DAC960       = 3,
+        PED_DEVICE_CPQARRAY     = 4,
+        PED_DEVICE_FILE         = 5,
+        PED_DEVICE_ATARAID      = 6,
+        PED_DEVICE_I2O          = 7,
+        PED_DEVICE_UBD          = 8,
+        PED_DEVICE_DASD         = 9,
+        PED_DEVICE_VIODASD      = 10,
+        PED_DEVICE_SX8          = 11
+#ifdef ENABLE_DEVICE_MAPPER
+                                    ,
+        PED_DEVICE_DM           = 12
+#endif
+} PedDeviceType;
+
+typedef struct _PedDevice PedDevice;
+typedef struct _PedDeviceArchOps PedDeviceArchOps;
+typedef struct _PedCHSGeometry PedCHSGeometry;
+
+/**
+ * A cylinder-head-sector "old-style" geometry.
+ * 
+ * A device addressed in this way has C*H*S sectors.
+ */
+struct _PedCHSGeometry {
+        int             cylinders;
+        int             heads;
+        int             sectors;
+};
+
+/** A block device - for example, /dev/hda, not /dev/hda3 */
+struct _PedDevice {
+        PedDevice*      next;
+
+        char*           model;          /**< \brief description of hardware
+                                             (manufacturer, model) */
+        char*           path;           /**< device /dev entry */
+
+        PedDeviceType   type;           /**< SCSI, IDE, etc.
+                                             \deprecated \sa PedDeviceType */
+        long long       sector_size;            /**< logical sector size */
+        long long       phys_sector_size;       /**< physical sector size */
+        PedSector       length;                 /**< device length (LBA) */
+
+        int             open_count; /**< the number of times this device has
+                                         been opened with ped_device_open(). */
+        int             read_only;
+        int             external_mode;
+        int             dirty;
+        int             boot_dirty;
+
+        PedCHSGeometry  hw_geom;
+        PedCHSGeometry  bios_geom;
+        short           host, did;
+
+        void*           arch_specific;
+};
+
+/**
+ * List of functions implementing architecture-specific operations.
+ */
+struct _PedDeviceArchOps {
+        PedDevice* (*_new) (const char* path);
+        void (*destroy) (PedDevice* dev);
+        int (*is_busy) (PedDevice* dev);
+        int (*open) (PedDevice* dev);
+        int (*refresh_open) (PedDevice* dev);
+        int (*close) (PedDevice* dev);
+        int (*refresh_close) (PedDevice* dev);
+        int (*read) (const PedDevice* dev, void* buffer,
+                     PedSector start, PedSector count);
+        int (*write) (PedDevice* dev, const void* buffer,
+                      PedSector start, PedSector count);
+        int (*sync) (PedDevice* dev);
+        int (*sync_fast) (PedDevice* dev);
+        PedSector (*check) (PedDevice* dev, void* buffer,
+                            PedSector start, PedSector count);
+        void (*probe_all) ();
+};
+
+extern void ped_device_probe_all ();
+extern void ped_device_free_all ();
+
+extern PedDevice* ped_device_get (const char* name);
+extern PedDevice* ped_device_get_next (const PedDevice* dev);
+extern int ped_device_is_busy (PedDevice* dev);
+extern int ped_device_open (PedDevice* dev);
+extern int ped_device_close (PedDevice* dev);
+extern void ped_device_destroy (PedDevice* dev);
+extern void ped_device_cache_remove (PedDevice* dev);
+
+extern int ped_device_begin_external_access (PedDevice* dev);
+extern int ped_device_end_external_access (PedDevice* dev);
+
+extern int ped_device_read (const PedDevice* dev, void* buffer,
+                            PedSector start, PedSector count);
+extern int ped_device_write (PedDevice* dev, const void* buffer,
+                             PedSector start, PedSector count);
+extern int ped_device_sync (PedDevice* dev);
+extern int ped_device_sync_fast (PedDevice* dev);
+extern PedSector ped_device_check (PedDevice* dev, void* buffer,
+                                   PedSector start, PedSector count);
+extern PedConstraint* ped_device_get_constraint (PedDevice* dev);
+
+/* private stuff ;-) */
+
+extern void _ped_device_probe (const char* path);
+
+#endif /* PED_DEVICE_H_INCLUDED */
+
+/** @} */
+
diff --git a/parted-1.8.7/include/parted/disk.h b/parted-1.8.7/include/parted/disk.h
new file mode 100644
index 0000000..4dd81d9
--- /dev/null
+++ b/parted-1.8.7/include/parted/disk.h
@@ -0,0 +1,361 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 1999, 2000, 2001, 2002, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+/**
+ * \addtogroup PedDisk
+ * @{
+ */
+
+/** \file disk.h */
+
+#ifndef PED_DISK_H_INCLUDED
+#define PED_DISK_H_INCLUDED
+
+/**
+ * Partition types
+ */
+enum _PedPartitionType {
+        PED_PARTITION_NORMAL            = 0x00,
+        PED_PARTITION_LOGICAL           = 0x01,
+        PED_PARTITION_EXTENDED          = 0x02,
+        PED_PARTITION_FREESPACE         = 0x04,
+        PED_PARTITION_METADATA          = 0x08,
+        PED_PARTITION_PROTECTED         = 0x10
+};
+
+/**
+ * Partition flags.
+ */
+enum _PedPartitionFlag {
+        PED_PARTITION_BOOT=1,
+        PED_PARTITION_ROOT=2,
+        PED_PARTITION_SWAP=3,
+        PED_PARTITION_HIDDEN=4,
+        PED_PARTITION_RAID=5,
+        PED_PARTITION_LVM=6,
+        PED_PARTITION_LBA=7,
+        PED_PARTITION_HPSERVICE=8,
+        PED_PARTITION_PALO=9,
+        PED_PARTITION_PREP=10,
+        PED_PARTITION_MSFT_RESERVED=11
+};
+#define PED_PARTITION_FIRST_FLAG        PED_PARTITION_BOOT
+#define PED_PARTITION_LAST_FLAG         PED_PARTITION_MSFT_RESERVED
+
+enum _PedDiskTypeFeature {
+        PED_DISK_TYPE_EXTENDED=1,       /**< supports extended partitions */
+        PED_DISK_TYPE_PARTITION_NAME=2  /**< supports partition names */
+};
+#define PED_DISK_TYPE_FIRST_FEATURE    PED_DISK_TYPE_EXTENDED
+#define PED_DISK_TYPE_LAST_FEATURE     PED_DISK_TYPE_PARTITION_NAME
+
+struct _PedDisk;
+struct _PedPartition;
+struct _PedDiskOps;
+struct _PedDiskType;
+struct _PedDiskArchOps;
+
+typedef enum _PedPartitionType          PedPartitionType;
+typedef enum _PedPartitionFlag          PedPartitionFlag;
+typedef enum _PedDiskTypeFeature        PedDiskTypeFeature;
+typedef struct _PedDisk                 PedDisk;
+typedef struct _PedPartition            PedPartition;
+typedef const struct _PedDiskOps        PedDiskOps;
+typedef struct _PedDiskType             PedDiskType;
+typedef const struct _PedDiskArchOps    PedDiskArchOps;
+
+#include <parted/device.h>
+#include <parted/filesys.h>
+#include <parted/natmath.h>
+#include <parted/geom.h>
+
+/** @} */
+
+/**
+ * \addtogroup PedPartition
+ * 
+ * @{
+ */
+
+/** \file disk.h */
+
+/**
+ * PedPartition structure represents a partition.
+ */
+struct _PedPartition {
+        PedPartition*           prev;
+        PedPartition*           next;
+
+        /**< the partition table of the partition */
+        PedDisk*                disk;
+        PedGeometry             geom;	/**< geometry of the partition */
+
+        /**< the partition number:  In Linux, this is the
+             same as the minor number. No assumption
+             should be made about "num" and "type" 
+             - different disk labels have different rules. */
+
+        int                     num;
+        PedPartitionType        type;	/**< the type of partition: a bit field of
+					  	PED_PARTITION_LOGICAL, PED_PARTITION_EXTENDED,
+						PED_PARTITION_METADATA 
+						and PED_PARTITION_FREESPACE.  
+						Both the first two, and the last two are 
+						mutually exclusive.
+							An extended partition is a primary 
+						partition that may contain logical partitions.
+						There is at most one extended partition on 
+						a disk.
+							A logical partition is like a primary 
+						partition, except it's inside an extended 
+						partition. Internally, pseudo partitions are
+						allocated to represent free space, or disk
+						label meta-data.  These have the
+						PED_PARTITION_FREESPACE or
+						PED_PARTITION_METADATA bit set. */
+
+        /**< The type of file system on the partition. NULL if unknown. */
+        const PedFileSystemType* fs_type;
+
+        /**< Only used for an extended partition.  The list of logical
+             partitions (and free space and metadata within the extended
+             partition). */
+        PedPartition*           part_list;
+
+        void*                   disk_specific;
+};
+
+/** @} */
+
+/**
+ * \addtogroup PedDisk
+ * @{
+ */
+
+/**
+ * Represents a disk label (partition table).
+ */
+struct _PedDisk {
+        PedDevice*          dev;         /**< the device where the
+                                              partition table lies */
+        const PedDiskType*  type;        /**< type of disk label */
+        const int*          block_sizes; /**< block sizes supported
+                                              by this label */
+        PedPartition*       part_list;   /**< list of partitions. Access with
+                                              ped_disk_next_partition() */
+
+        void*               disk_specific;
+
+/* office use only ;-) */
+        int                 needs_clobber;      /**< clobber before write? */
+        int                 update_mode;        /**< mode without free/metadata
+                                                   partitions, for easier
+                                                   update */
+};
+
+struct _PedDiskOps {
+        /* disk label operations */
+        int (*probe) (const PedDevice *dev);
+        int (*clobber) (PedDevice* dev);
+        PedDisk* (*alloc) (const PedDevice* dev);
+        PedDisk* (*duplicate) (const PedDisk* disk);
+        void (*free) (PedDisk* disk);
+        int (*read) (PedDisk* disk);
+        int (*write) (const PedDisk* disk);
+        /** \todo add label guessing op here */
+        
+        /* partition operations */
+        PedPartition* (*partition_new) (
+                const PedDisk* disk,
+                PedPartitionType part_type,
+                const PedFileSystemType* fs_type,
+                PedSector start,
+                PedSector end);
+        PedPartition* (*partition_duplicate) (const PedPartition* part);
+        void (*partition_destroy) (PedPartition* part);
+        int (*partition_set_system) (PedPartition* part,
+                                     const PedFileSystemType* fs_type);
+        int (*partition_set_flag) (
+                PedPartition* part,
+                PedPartitionFlag flag,
+                int state);
+        int (*partition_get_flag) (
+                const PedPartition* part,
+                PedPartitionFlag flag);
+        int (*partition_is_flag_available) (
+                const PedPartition* part,
+                PedPartitionFlag flag);
+        void (*partition_set_name) (PedPartition* part, const char* name);
+        const char* (*partition_get_name) (const PedPartition* part);
+        int (*partition_align) (PedPartition* part,
+                                const PedConstraint* constraint);
+        int (*partition_enumerate) (PedPartition* part);
+
+        /* other */
+        int (*alloc_metadata) (PedDisk* disk);
+        int (*get_max_primary_partition_count) (const PedDisk* disk);
+};
+
+struct _PedDiskType {
+        PedDiskType*            next;
+        const char*             name; /**< the name of the partition table type.
+                                           \todo not very intuitive name */
+        PedDiskOps* const       ops;
+
+        PedDiskTypeFeature      features;   /**< bitmap of supported features */
+};
+
+/**
+ * Architecture-specific operations.  i.e. communication with kernel (or
+ * whatever) about changes, etc.
+ */
+struct _PedDiskArchOps {
+        char* (*partition_get_path) (const PedPartition* part);
+        int (*partition_is_busy) (const PedPartition* part);
+        int (*disk_commit) (PedDisk* disk);
+};
+
+extern void ped_disk_type_register (PedDiskType* type);
+extern void ped_disk_type_unregister (PedDiskType* type);
+
+/**
+ * Deprecated: use ped_disk_type_register.
+ */
+__attribute__ ((deprecated))
+extern void ped_register_disk_type (PedDiskType* type);
+
+/**
+ * Deprecated: use ped_disk_type_unregister.
+ */
+__attribute__ ((deprecated))
+extern void ped_unregister_disk_type (PedDiskType* type);
+
+extern PedDiskType* ped_disk_type_get_next (PedDiskType* type);
+extern PedDiskType* ped_disk_type_get (const char* name);
+extern int ped_disk_type_check_feature (const PedDiskType* disk_type,
+                                        PedDiskTypeFeature feature);
+
+extern PedDiskType* ped_disk_probe (PedDevice* dev);
+extern int ped_disk_clobber (PedDevice* dev);
+extern int ped_disk_clobber_exclude (PedDevice* dev,
+                                     const PedDiskType* exclude);
+extern PedDisk* ped_disk_new (PedDevice* dev);
+extern PedDisk* ped_disk_new_fresh (PedDevice* dev,
+                                    const PedDiskType* disk_type);
+extern PedDisk* ped_disk_duplicate (const PedDisk* old_disk);
+extern void ped_disk_destroy (PedDisk* disk);
+extern int ped_disk_commit (PedDisk* disk);
+extern int ped_disk_commit_to_dev (PedDisk* disk);
+extern int ped_disk_commit_to_os (PedDisk* disk);
+extern int ped_disk_check (const PedDisk* disk);
+extern void ped_disk_print (const PedDisk* disk);
+
+extern int ped_disk_get_primary_partition_count (const PedDisk* disk);
+extern int ped_disk_get_last_partition_num (const PedDisk* disk);
+extern int ped_disk_get_max_primary_partition_count (const PedDisk* disk);
+
+/** @} */
+
+/**
+ * \addtogroup PedPartition
+ * 
+ * @{
+ */
+
+extern PedPartition* ped_partition_new (const PedDisk* disk,
+                                        PedPartitionType type,
+                                        const PedFileSystemType* fs_type,
+                                        PedSector start,
+                                        PedSector end);
+extern void ped_partition_destroy (PedPartition* part);
+extern int ped_partition_is_active (const PedPartition* part);
+extern int ped_partition_set_flag (PedPartition* part, PedPartitionFlag flag,
+                                   int state);
+extern int ped_partition_get_flag (const PedPartition* part,
+                                   PedPartitionFlag flag);
+extern int ped_partition_is_flag_available (const PedPartition* part,
+                                            PedPartitionFlag flag);
+extern int ped_partition_set_system (PedPartition* part,
+                                     const PedFileSystemType* fs_type);
+extern int ped_partition_set_name (PedPartition* part, const char* name);
+extern const char* ped_partition_get_name (const PedPartition* part);
+extern int ped_partition_is_busy (const PedPartition* part);
+extern char* ped_partition_get_path (const PedPartition* part);
+
+extern const char* ped_partition_type_get_name (PedPartitionType part_type);
+extern const char* ped_partition_flag_get_name (PedPartitionFlag flag);
+extern PedPartitionFlag ped_partition_flag_get_by_name (const char* name);
+extern PedPartitionFlag ped_partition_flag_next (PedPartitionFlag flag);
+
+/** @} */
+
+/**
+ * \addtogroup PedDisk
+ * @{
+ */
+
+extern int ped_disk_add_partition (PedDisk* disk, PedPartition* part,
+                                   const PedConstraint* constraint);
+extern int ped_disk_remove_partition (PedDisk* disk, PedPartition* part);
+extern int ped_disk_delete_partition (PedDisk* disk, PedPartition* part);
+extern int ped_disk_delete_all (PedDisk* disk);
+extern int ped_disk_set_partition_geom (PedDisk* disk, PedPartition* part,
+                                        const PedConstraint* constraint,
+                                        PedSector start, PedSector end);
+extern int ped_disk_maximize_partition (PedDisk* disk, PedPartition* part,
+                                        const PedConstraint* constraint);
+extern PedGeometry* ped_disk_get_max_partition_geometry (PedDisk* disk,
+                PedPartition* part, const PedConstraint* constraint);
+extern int ped_disk_minimize_extended_partition (PedDisk* disk);
+
+extern PedPartition* ped_disk_next_partition (const PedDisk* disk,
+                                              const PedPartition* part);
+extern PedPartition* ped_disk_get_partition (const PedDisk* disk, int num);
+extern PedPartition* ped_disk_get_partition_by_sector (const PedDisk* disk,
+                                                       PedSector sect);
+extern PedPartition* ped_disk_extended_partition (const PedDisk* disk);
+
+/* internal functions */
+extern PedDisk* _ped_disk_alloc (const PedDevice* dev, const PedDiskType* type);
+extern void _ped_disk_free (PedDisk* disk);
+
+
+/** @} */
+
+/**
+ * \addtogroup PedPartition
+ *
+ * @{
+ */
+
+extern PedPartition* _ped_partition_alloc (const PedDisk* disk,
+                                           PedPartitionType type,
+                                           const PedFileSystemType* fs_type,
+                                           PedSector start,
+                                           PedSector end);
+extern void _ped_partition_free (PedPartition* part);
+
+extern int _ped_partition_attempt_align (
+                PedPartition* part, const PedConstraint* external,
+                PedConstraint* internal);
+
+#endif /* PED_DISK_H_INCLUDED */
+
+/** @} */
+
diff --git a/parted-1.8.7/include/parted/endian.h b/parted-1.8.7/include/parted/endian.h
new file mode 100644
index 0000000..c11b187
--- /dev/null
+++ b/parted-1.8.7/include/parted/endian.h
@@ -0,0 +1,87 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+/* should only be #included by files in libparted */
+
+#ifndef PED_ENDIAN_H_INCLUDED
+#define PED_ENDIAN_H_INCLUDED
+
+#include <config.h>
+#include <stdint.h>
+
+/* returns the n'th least significant byte */
+#define _GET_BYTE(x, n)		( ((x) >> (8 * (n))) & 0xff )
+
+#define _PED_SWAP16(x)		( (_GET_BYTE(x, 0) << 8)	\
+				+ (_GET_BYTE(x, 1) << 0) )
+
+#define _PED_SWAP32(x)		( (_GET_BYTE(x, 0) << 24)	\
+				+ (_GET_BYTE(x, 1) << 16)	\
+				+ (_GET_BYTE(x, 2) << 8)	\
+				+ (_GET_BYTE(x, 3) << 0) )
+
+#define _PED_SWAP64(x)		( (_GET_BYTE(x, 0) << 56)	\
+				+ (_GET_BYTE(x, 1) << 48)	\
+				+ (_GET_BYTE(x, 2) << 40)	\
+				+ (_GET_BYTE(x, 3) << 32)	\
+				+ (_GET_BYTE(x, 4) << 24)	\
+				+ (_GET_BYTE(x, 5) << 16)	\
+				+ (_GET_BYTE(x, 6) << 8)	\
+				+ (_GET_BYTE(x, 7) << 0) )
+
+#define PED_SWAP16(x)		((uint16_t) _PED_SWAP16( (uint16_t) (x) ))
+#define PED_SWAP32(x)		((uint32_t) _PED_SWAP32( (uint32_t) (x) ))
+#define PED_SWAP64(x)		((uint64_t) _PED_SWAP64( (uint64_t) (x) ))
+
+#ifdef WORDS_BIGENDIAN
+
+#define PED_CPU_TO_LE16(x)	PED_SWAP16(x)
+#define PED_CPU_TO_BE16(x)	(x)
+#define PED_CPU_TO_LE32(x)	PED_SWAP32(x)
+#define PED_CPU_TO_BE32(x)	(x)
+#define PED_CPU_TO_LE64(x)	PED_SWAP64(x)
+#define PED_CPU_TO_BE64(x)	(x)
+
+#define PED_LE16_TO_CPU(x)	PED_SWAP16(x)
+#define PED_BE16_TO_CPU(x)	(x)
+#define PED_LE32_TO_CPU(x)	PED_SWAP32(x)
+#define PED_BE32_TO_CPU(x)	(x)
+#define PED_LE64_TO_CPU(x)	PED_SWAP64(x)
+#define PED_BE64_TO_CPU(x)	(x)
+
+#else /* !WORDS_BIGENDIAN */
+
+#define PED_CPU_TO_LE16(x)	(x)
+#define PED_CPU_TO_BE16(x)	PED_SWAP16(x)
+#define PED_CPU_TO_LE32(x)	(x)
+#define PED_CPU_TO_BE32(x)	PED_SWAP32(x)
+#define PED_CPU_TO_LE64(x)	(x)
+#define PED_CPU_TO_BE64(x)	PED_SWAP64(x)
+
+#define PED_LE16_TO_CPU(x)	(x)
+#define PED_BE16_TO_CPU(x)	PED_SWAP16(x)
+#define PED_LE32_TO_CPU(x)	(x)
+#define PED_BE32_TO_CPU(x)	PED_SWAP32(x)
+#define PED_LE64_TO_CPU(x)	(x)
+#define PED_BE64_TO_CPU(x)	PED_SWAP64(x)
+
+#endif /* !WORDS_BIGENDIAN */
+
+#endif /* PED_ENDIAN_H_INCLUDED */
+
diff --git a/parted-1.8.7/include/parted/exception.h b/parted-1.8.7/include/parted/exception.h
new file mode 100644
index 0000000..9ecf504
--- /dev/null
+++ b/parted-1.8.7/include/parted/exception.h
@@ -0,0 +1,117 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+/**
+ * \addtogroup PedException
+ * @{
+ */
+
+/** \file exception.h */
+
+#ifndef PED_EXCEPTION_H_INCLUDED
+#define PED_EXCEPTION_H_INCLUDED
+
+typedef struct _PedException PedException;
+
+/**
+ * Exception type
+ */
+enum _PedExceptionType {
+	PED_EXCEPTION_INFORMATION=1,
+	PED_EXCEPTION_WARNING=2,
+	PED_EXCEPTION_ERROR=3,
+	PED_EXCEPTION_FATAL=4,
+	PED_EXCEPTION_BUG=5,
+	PED_EXCEPTION_NO_FEATURE=6,
+};
+typedef enum _PedExceptionType PedExceptionType;
+
+/**
+ * Option for resolving the exception
+ */
+enum _PedExceptionOption {
+	PED_EXCEPTION_UNHANDLED=0,
+	PED_EXCEPTION_FIX=1,
+	PED_EXCEPTION_YES=2,
+	PED_EXCEPTION_NO=4,
+	PED_EXCEPTION_OK=8,
+	PED_EXCEPTION_RETRY=16,
+	PED_EXCEPTION_IGNORE=32,
+	PED_EXCEPTION_CANCEL=64,
+};
+typedef enum _PedExceptionOption PedExceptionOption;
+#define PED_EXCEPTION_OK_CANCEL	    (PED_EXCEPTION_OK + PED_EXCEPTION_CANCEL)
+#define PED_EXCEPTION_YES_NO	    (PED_EXCEPTION_YES + PED_EXCEPTION_NO)
+#define PED_EXCEPTION_YES_NO_CANCEL (PED_EXCEPTION_YES_NO \
+				     + PED_EXCEPTION_CANCEL)
+#define PED_EXCEPTION_IGNORE_CANCEL (PED_EXCEPTION_IGNORE \
+				     + PED_EXCEPTION_CANCEL)
+#define PED_EXCEPTION_RETRY_CANCEL  (PED_EXCEPTION_RETRY + PED_EXCEPTION_CANCEL)
+#define PED_EXCEPTION_RETRY_IGNORE_CANCEL (PED_EXCEPTION_RETRY \
+					   + PED_EXCEPTION_IGNORE_CANCEL)
+#define PED_EXCEPTION_OPTION_FIRST PED_EXCEPTION_FIX
+#define PED_EXCEPTION_OPTION_LAST PED_EXCEPTION_CANCEL
+
+/**
+ * Structure with information about exception
+ */
+struct _PedException {
+	char*			message;	/**< text describing what the event was */
+	PedExceptionType	type;		/**< type of exception */
+	PedExceptionOption	options;	/**< ORed list of options that
+						   the exception handler can
+						   return (the ways an exception 
+						   can be resolved) */
+};
+
+typedef PedExceptionOption (PedExceptionHandler) (PedException* ex);
+
+extern int ped_exception;	/* set to true if there's an exception */
+
+extern char* ped_exception_get_type_string (PedExceptionType ex_type);
+extern char* ped_exception_get_option_string (PedExceptionOption ex_opt);
+
+extern void ped_exception_set_handler (PedExceptionHandler* handler);
+extern PedExceptionHandler *ped_exception_get_handler(void);
+
+extern PedExceptionOption ped_exception_default_handler (PedException* ex);
+
+extern PedExceptionOption	ped_exception_throw (PedExceptionType ex_type,
+						     PedExceptionOption ex_opt,
+						     const char* message,
+						     ...);
+/* rethrows an exception - i.e. calls the exception handler, (or returns a
+   code to return to pass up higher) */
+extern PedExceptionOption	ped_exception_rethrow ();
+
+/* frees an exception, indicating that the exception has been handled.
+   Calling an exception handler counts. */
+extern void			ped_exception_catch ();
+
+/* indicate that exceptions should not go to the exception handler, but passed
+   up to the calling function(s) */
+extern void			ped_exception_fetch_all ();
+
+/* indicate that exceptions should invoke the exception handler */
+extern void			ped_exception_leave_all ();
+
+#endif /* PED_EXCEPTION_H_INCLUDED */
+
+/** @} */
+
diff --git a/parted-1.8.7/include/parted/fdasd.h b/parted-1.8.7/include/parted/fdasd.h
new file mode 100644
index 0000000..f6b1e33
--- /dev/null
+++ b/parted-1.8.7/include/parted/fdasd.h
@@ -0,0 +1,231 @@
+/*
+ * File...........: s390-tools/fdasd/fdasd.h
+ * Author(s)......: Volker Sameske <sameske@de.ibm.com>
+ *                  Horst Hummel   <Horst.Hummel@de.ibm.com>
+ * Bugreports.to..: <Linux390@de.ibm.com>
+ * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 2001-2002
+ *
+ * History of changes (starts March 2001)
+ * version 1.01 - menu entry 's' to show mapping devnode - DS name
+ *         1.02 - DS names count now from 0001 instead from 0000
+ *         1.03 - volser checks: 'AA AAA' to 'AAAAA '
+ *              - removed dependency to kernel headers.
+ *         1.04 - added -p option
+ *         1.05 - new API policy, set it back to 0
+ */
+#ifndef FDASD_H
+#define FDASD_H
+
+#include <parted/vtoc.h>
+
+/*****************************************************************************
+ * SECTION: Definitions needed for DASD-API (see dasd.h)                     *
+ *****************************************************************************/
+
+#define DASD_IOCTL_LETTER 'D'
+
+#define DASD_PARTN_BITS 2
+
+#define PARTITION_LINUX_SWAP    0x82
+#define PARTITION_LINUX         0x83
+#define PARTITION_LINUX_EXT     0x85
+#define PARTITION_LINUX_LVM     0x8e
+#define PARTITION_LINUX_RAID    0xfd
+#define PARTITION_LINUX_LVM_OLD 0xfe
+
+#define PART_TYPE_NATIVE "NATIVE"
+#define PART_TYPE_SWAP   "SWAP  "
+#define PART_TYPE_RAID   "RAID  "
+#define PART_TYPE_LVM    "LVM   "
+
+#ifdef DEBUG_DASD
+#define PDEBUG           fprintf(stderr, "%s:%d:%s\n", \
+                         __FILE__,                              \
+                         __LINE__,                              \
+                         __PRETTY_FUNCTION__);
+#else
+#define PDEBUG
+#endif
+
+/* 
+ * struct dasd_information_t
+ * represents any data about the device, which is visible to userspace.
+ *  including foramt and featueres.
+ */
+typedef struct dasd_information_t {
+	unsigned int devno;           /* S/390 devno                         */
+	unsigned int real_devno;      /* for aliases                         */
+	unsigned int schid;           /* S/390 subchannel identifier         */
+	unsigned int cu_type  : 16;   /* from SenseID                        */
+	unsigned int cu_model :  8;   /* from SenseID                        */
+	unsigned int dev_type : 16;   /* from SenseID                        */
+	unsigned int dev_model : 8;   /* from SenseID                        */
+	unsigned int open_count; 
+	unsigned int req_queue_len; 
+	unsigned int chanq_len;       /* length of chanq                     */
+	char type[4];                 /* from discipline.name, 'none' for    */
+	                              /* unknown                             */
+	unsigned int status;          /* current device level                */
+	unsigned int label_block;     /* where to find the VOLSER            */
+	unsigned int FBA_layout;      /* fixed block size (like AIXVOL)      */
+	unsigned int characteristics_size;
+	unsigned int confdata_size;
+	char characteristics[64];     /* from read_device_characteristics    */
+	char configuration_data[256]; /* from read_configuration_data        */
+} dasd_information_t;
+
+/* 
+ * struct format_data_t
+ * represents all data necessary to format a dasd
+ */
+typedef struct format_data_t {
+	int start_unit; /* from track */
+	int stop_unit;  /* to track */
+	int blksize;    /* sectorsize */
+	int intensity;  
+} format_data_t;
+
+/*
+ * values to be used for format_data_t.intensity
+ * 0/8: normal format
+ * 1/9: also write record zero
+ * 3/11: also write home address
+ * 4/12: invalidate track
+ */
+#define DASD_FMT_INT_FMT_R0 1 /* write record zero */
+#define DASD_FMT_INT_FMT_HA 2 /* write home address, also set FMT_R0 ! */
+#define DASD_FMT_INT_INVAL  4 /* invalidate tracks */
+#define DASD_FMT_INT_COMPAT 8 /* use OS/390 compatible disk layout */
+
+
+/* Disable the volume (for Linux) */
+#define BIODASDDISABLE _IO(DASD_IOCTL_LETTER,0) 
+/* Enable the volume (for Linux) */
+#define BIODASDENABLE  _IO(DASD_IOCTL_LETTER,1)  
+
+/* retrieve API version number */
+#define DASDAPIVER     _IOR(DASD_IOCTL_LETTER,0,int)
+/* Get information on a dasd device (enhanced) */
+#define BIODASDINFO   _IOR(DASD_IOCTL_LETTER,1,dasd_information_t)
+
+
+/*****************************************************************************
+ * SECTION: Further IOCTL Definitions  (see fs.h)                            *
+ *****************************************************************************/
+/* re-read partition table */
+#define BLKRRPART  _IO(0x12,95)	
+/* get block device sector size */
+#define BLKSSZGET  _IO(0x12,104)
+
+/*****************************************************************************
+ * SECTION: Definition from hdreq.h                                          *
+ *****************************************************************************/
+
+struct fdasd_hd_geometry {
+      unsigned char heads;
+      unsigned char sectors;
+      unsigned short cylinders;
+      unsigned long start;
+};
+
+/* get device geometry */
+#define HDIO_GETGEO		0x0301	
+
+/*****************************************************************************
+ * SECTION: FDASD internal types                                             *
+ *****************************************************************************/
+
+#define DASD_MIN_API_VERSION 0
+
+#define DEFAULT_FDASD_CONF "/etc/fdasd.conf" /* default config file */
+
+#define PARTN_MASK ((1 << DASD_PARTN_BITS) - 1)
+#define USABLE_PARTITIONS ((1 << DASD_PARTN_BITS) - 1)
+
+#define FDASD_VERSION "1.05"
+#define FDASD_ERROR "fdasd error: "
+#define DEVICE "device"
+#define DISC   "disc"
+#define PART   "part"
+
+#define ALTERNATE_CYLINDERS_USED 0x10
+
+typedef struct partition_info {
+	u_int8_t used;
+	unsigned long start_trk;
+	unsigned long end_trk;
+	unsigned long len_trk;
+	unsigned long fspace_trk;
+	format1_label_t *f1; 
+	struct partition_info *next;
+	struct partition_info *prev;
+	u_int8_t type;
+} partition_info_t;
+
+typedef struct config_data {
+	unsigned long start;
+	unsigned long stop;
+} config_data_t;
+
+typedef struct fdasd_anchor {
+	int vlabel_changed;
+	int vtoc_changed;
+	int devname_specified;
+	int volid_specified;
+	int config_specified;
+	int auto_partition;
+	int print_table;
+	int big_disk;
+	int silent;
+	int verbose;
+	int devno;
+	int option_reuse;
+	int option_recreate;
+	int partno[USABLE_PARTITIONS];
+	u_int16_t dev_type;
+	unsigned int used_partitions;
+	unsigned long label_pos;
+	unsigned int  blksize;
+	unsigned long fspace_trk;
+	format4_label_t  *f4;
+	format5_label_t  *f5;
+	format7_label_t  *f7;
+	partition_info_t *first;
+	partition_info_t *last;
+	volume_label_t   *vlabel;
+	config_data_t confdata[USABLE_PARTITIONS];
+	struct fdasd_hd_geometry geo;
+} fdasd_anchor_t;
+
+enum offset {lower, upper};
+
+enum fdasd_failure {
+	unable_to_open_disk,
+	unable_to_seek_disk,
+	unable_to_read_disk,
+	read_only_disk,
+	unable_to_ioctl,
+	api_version_mismatch,
+	wrong_disk_type,
+	wrong_disk_format,
+	disk_in_use,
+	config_syntax_error,
+	vlabel_corrupted,
+	dsname_corrupted,
+	malloc_failed,
+	device_verification_failed
+};
+
+void fdasd_cleanup (fdasd_anchor_t *anchor);
+void fdasd_initialize_anchor (fdasd_anchor_t * anc);
+void fdasd_get_geometry (fdasd_anchor_t *anc, int fd);
+void fdasd_check_api_version (fdasd_anchor_t *anc, int fd);
+int fdasd_check_volume (fdasd_anchor_t *anc, int fd);
+int fdasd_write_labels (fdasd_anchor_t *anc, int fd);
+int fdasd_invalid_vtoc_pointer(fdasd_anchor_t *anc);
+void fdasd_recreate_vtoc(fdasd_anchor_t *anc);
+partition_info_t * fdasd_add_partition (fdasd_anchor_t *anc,
+                                        unsigned int start, unsigned int stop);
+int fdasd_prepare_labels (fdasd_anchor_t *anc, int fd) ;
+
+#endif /* FDASD_H */
diff --git a/parted-1.8.7/include/parted/filesys.h b/parted-1.8.7/include/parted/filesys.h
new file mode 100644
index 0000000..f7bc7cf
--- /dev/null
+++ b/parted-1.8.7/include/parted/filesys.h
@@ -0,0 +1,117 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+/**
+ * \addtogroup PedFileSystem
+ * @{
+ */
+
+/** \file filesys.h */
+
+#ifndef PED_FILESYS_H_INCLUDED
+#define PED_FILESYS_H_INCLUDED
+
+typedef struct _PedFileSystem		PedFileSystem;
+typedef struct _PedFileSystemType	PedFileSystemType;
+typedef const struct _PedFileSystemOps	PedFileSystemOps;
+
+#include <parted/geom.h>
+#include <parted/disk.h>
+#include <parted/exception.h>
+#include <parted/constraint.h>
+#include <parted/timer.h>
+#include <stdio.h>
+
+struct _PedFileSystemOps {
+	PedGeometry* (*probe) (PedGeometry* geom);
+	int (*clobber) (PedGeometry* geom);
+
+	PedFileSystem* (*open) (PedGeometry* geom);
+	PedFileSystem* (*create) (PedGeometry* geom, PedTimer* timer);
+	int (*close) (PedFileSystem* fs);
+	int (*check) (PedFileSystem* fs, PedTimer* timer);
+	PedFileSystem* (*copy) (const PedFileSystem* fs, PedGeometry* geom,
+				PedTimer* timer);
+	int (*resize) (PedFileSystem* fs, PedGeometry* geom, PedTimer* timer);
+
+	PedConstraint* (*get_create_constraint) (const PedDevice* dev);
+	PedConstraint* (*get_resize_constraint) (const PedFileSystem* fs);
+	PedConstraint* (*get_copy_constraint) (const PedFileSystem* fs,
+		       			       const PedDevice* dev);
+};
+
+/**
+ * Structure describing type of file system 
+ */
+struct _PedFileSystemType {
+	PedFileSystemType*	next;
+	const char* const	name;		/**< name of the file system type */
+        const int*              block_sizes;
+	PedFileSystemOps* const	ops;
+};
+
+
+/**
+ * Structure describing file system
+ */
+struct _PedFileSystem {
+	PedFileSystemType*	type;		/**< the file system type */
+	PedGeometry*		geom;		/**< where the file system actually is */
+	int			checked;	/**< 1 if the file system has been checked.
+						      0 otherwise. */
+
+	void*			type_specific;
+
+};
+
+extern void ped_file_system_type_register (PedFileSystemType* type);
+extern void ped_file_system_type_unregister (PedFileSystemType* type);
+
+extern PedFileSystemType* ped_file_system_type_get (const char* name);
+extern PedFileSystemType*
+ped_file_system_type_get_next (const PedFileSystemType* fs_type);
+
+extern PedFileSystemType* ped_file_system_probe (PedGeometry* geom);
+extern PedGeometry* ped_file_system_probe_specific (
+			const PedFileSystemType* fs_type,
+			PedGeometry* geom);
+extern int ped_file_system_clobber (PedGeometry* geom);
+
+extern PedFileSystem* ped_file_system_open (PedGeometry* geom);
+extern PedFileSystem* ped_file_system_create (PedGeometry* geom,
+					      const PedFileSystemType* type,
+					      PedTimer* timer);
+extern int ped_file_system_close (PedFileSystem* fs);
+extern int ped_file_system_check (PedFileSystem* fs, PedTimer* timer);
+extern PedFileSystem* ped_file_system_copy (PedFileSystem* fs,
+					    PedGeometry* geom,
+					    PedTimer* timer);
+extern int ped_file_system_resize (PedFileSystem* fs, PedGeometry* geom,
+				   PedTimer* timer);
+
+extern PedConstraint* ped_file_system_get_create_constraint (
+		const PedFileSystemType* fs_type, const PedDevice* dev);
+extern PedConstraint* ped_file_system_get_resize_constraint (
+		const PedFileSystem* fs);
+extern PedConstraint* ped_file_system_get_copy_constraint (
+		const PedFileSystem* fs, const PedDevice* dev);
+
+#endif /* PED_FILESYS_H_INCLUDED */
+
+/** @} */
diff --git a/parted-1.8.7/include/parted/geom.h b/parted-1.8.7/include/parted/geom.h
new file mode 100644
index 0000000..90dc5b2
--- /dev/null
+++ b/parted-1.8.7/include/parted/geom.h
@@ -0,0 +1,84 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 1998-2001, 2005 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+/**
+ * \addtogroup PedGeometry
+ * @{
+ */
+
+/** \file geom.h */
+
+#ifndef PED_GEOM_H_INCLUDED
+#define PED_GEOM_H_INCLUDED
+
+#include <parted/device.h>
+#include <parted/timer.h>
+
+typedef struct _PedGeometry	PedGeometry;
+
+/**
+ * Geometry of the partition
+ */
+struct _PedGeometry {
+	PedDevice*		dev;
+	PedSector		start;
+	PedSector		length;
+	PedSector		end;
+};
+
+extern int ped_geometry_init (PedGeometry* geom, const PedDevice* dev,
+			      PedSector start, PedSector length);
+extern PedGeometry* ped_geometry_new (const PedDevice* dev, PedSector start,
+				      PedSector length);
+extern PedGeometry* ped_geometry_duplicate (const PedGeometry* geom);
+extern PedGeometry* ped_geometry_intersect (const PedGeometry* a,
+	       				    const PedGeometry* b);
+extern void ped_geometry_destroy (PedGeometry* geom);
+extern int ped_geometry_set (PedGeometry* geom, PedSector start,
+			     PedSector length);
+extern int ped_geometry_set_start (PedGeometry* geom, PedSector start);
+extern int ped_geometry_set_end (PedGeometry* geom, PedSector end);
+extern int ped_geometry_test_overlap (const PedGeometry* a,
+	       			      const PedGeometry* b);
+extern int ped_geometry_test_inside (const PedGeometry* a,
+				     const PedGeometry* b);
+extern int ped_geometry_test_equal (const PedGeometry* a, const PedGeometry* b);
+extern int ped_geometry_test_sector_inside (const PedGeometry* geom,
+	       				    PedSector sect);
+
+extern int ped_geometry_read (const PedGeometry* geom, void* buffer,
+			      PedSector offset, PedSector count);
+extern int ped_geometry_write (PedGeometry* geom, const void* buffer,
+			       PedSector offset, PedSector count);
+extern PedSector ped_geometry_check (PedGeometry* geom, void* buffer,
+				     PedSector buffer_size, PedSector offset,
+				     PedSector granularity, PedSector count,
+				     PedTimer* timer);
+extern int ped_geometry_sync (PedGeometry* geom);
+extern int ped_geometry_sync_fast (PedGeometry* geom);
+
+/* returns -1 if "sector" is not within dest's space. */
+extern PedSector ped_geometry_map (const PedGeometry* dst,
+				   const PedGeometry* src,
+				   PedSector sector);
+
+#endif /* PED_GEOM_H_INCLUDED */
+
+/** @} */
+
diff --git a/parted-1.8.7/include/parted/gnu.h b/parted-1.8.7/include/parted/gnu.h
new file mode 100644
index 0000000..1cf412a
--- /dev/null
+++ b/parted-1.8.7/include/parted/gnu.h
@@ -0,0 +1,45 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2001 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef PED_GNU_H_INCLUDED
+#define PED_GNU_H_INCLUDED
+
+#include <parted/parted.h>
+
+#include <hurd/store.h>
+
+#define GNU_SPECIFIC(dev)	((GNUSpecific*) (dev)->arch_specific)
+
+typedef	struct _GNUSpecific	GNUSpecific;
+
+struct _GNUSpecific {
+	struct store*	store;
+	int consume;
+};
+
+extern PedArchitecture ped_gnu_arch;
+
+/* Initialize a PedDevice using SOURCE.  The SOURCE will NOT be destroyed;
+   the caller created it, it is the caller's responsilbility to free it
+   after it calls ped_device_destory.  SOURCE is not registered in Parted's
+   list of devices.  */
+PedDevice* ped_device_new_from_store (struct store *source);
+
+#endif /* PED_GNU_H_INCLUDED */
+
diff --git a/parted-1.8.7/include/parted/linux.h b/parted-1.8.7/include/parted/linux.h
new file mode 100644
index 0000000..90d92cf
--- /dev/null
+++ b/parted-1.8.7/include/parted/linux.h
@@ -0,0 +1,46 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2001 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef PED_LINUX_H_INCLUDED
+#define PED_LINUX_H_INCLUDED
+
+#include <parted/parted.h>
+#include <parted/device.h>
+
+#if defined __s390__ || defined __s390x__
+#  include <parted/fdasd.h>
+#endif
+
+#define LINUX_SPECIFIC(dev)	((LinuxSpecific*) (dev)->arch_specific)
+
+typedef	struct _LinuxSpecific	LinuxSpecific;
+
+struct _LinuxSpecific {
+	int	fd;
+#if defined(__s390__) || defined(__s390x__)
+	unsigned int real_sector_size;
+	/* IBM internal dasd structure (i guess ;), required. */
+	struct fdasd_anchor *anchor;
+#endif
+};
+
+extern PedArchitecture ped_linux_arch;
+
+#endif /* PED_LINUX_H_INCLUDED */
+
diff --git a/parted-1.8.7/include/parted/natmath.h b/parted-1.8.7/include/parted/natmath.h
new file mode 100644
index 0000000..75b32ad
--- /dev/null
+++ b/parted-1.8.7/include/parted/natmath.h
@@ -0,0 +1,101 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2000 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+/**
+ * \addtogroup PedAlignment
+ * @{
+ */
+
+/** \file natmath.h */
+
+#ifndef PED_NATMATH_H_INCLUDED
+#define PED_NATMATH_H_INCLUDED
+
+
+typedef struct _PedAlignment	PedAlignment;
+
+#include <parted/disk.h>
+
+#define PED_MIN(a, b)	( ((a)<(b)) ? (a) : (b) )
+#define PED_MAX(a, b)	( ((a)>(b)) ? (a) : (b) )
+
+/* this is weird (I'm still not sure I should be doing this!)
+ * 
+ * For the functions: new, destroy, duplicate and merge: the following values
+ * for align are valid:
+ * 	* align == NULL  (!)  		represents no solution
+ * 	* align->grain_size == 0	represents a single solution
+ * 					(align->offset)
+ * 	* align->grain_size > 0		represents a set of solutions
+ *
+ * These are invalid:
+ * 	* align->offset < 0		Note: this gets "normalized"
+ * 	* align->grain_size < 0
+ *
+ * For the align_* operations, there must be a solution.  i.e. align != NULL
+ * All solutions must be greater than zero.
+ */
+
+struct _PedAlignment {
+	PedSector	offset;
+	PedSector	grain_size;
+};
+
+extern PedSector ped_round_up_to (PedSector sector, PedSector grain_size);
+extern PedSector ped_round_down_to (PedSector sector, PedSector grain_size);
+extern PedSector ped_round_to_nearest (PedSector sector, PedSector grain_size);
+extern PedSector ped_greatest_common_divisor (PedSector a, PedSector b);
+
+extern int ped_alignment_init (PedAlignment* align, PedSector offset,
+			       PedSector grain_size);
+extern PedAlignment* ped_alignment_new (PedSector offset, PedSector grain_size);
+extern void ped_alignment_destroy (PedAlignment* align);
+extern PedAlignment* ped_alignment_duplicate (const PedAlignment* align);
+extern PedAlignment* ped_alignment_intersect (const PedAlignment* a,
+					      const PedAlignment* b);
+
+extern PedSector
+ped_alignment_align_up (const PedAlignment* align, const PedGeometry* geom,
+			PedSector sector);
+extern PedSector
+ped_alignment_align_down (const PedAlignment* align, const PedGeometry* geom,
+			  PedSector sector);
+extern PedSector
+ped_alignment_align_nearest (const PedAlignment* align, const PedGeometry* geom,
+			     PedSector sector);
+
+extern int
+ped_alignment_is_aligned (const PedAlignment* align, const PedGeometry* geom,
+			  PedSector sector);
+
+extern const PedAlignment* ped_alignment_any;
+extern const PedAlignment* ped_alignment_none;
+
+extern PedSector
+ped_div_round_up (PedSector numerator, PedSector divisor);
+
+extern PedSector
+ped_div_round_to_nearest (PedSector numerator, PedSector divisor);
+
+#endif /* PED_NATMATH_H_INCLUDED */
+
+/**
+ * @}
+ */
+
diff --git a/parted-1.8.7/include/parted/parted.h b/parted-1.8.7/include/parted/parted.h
new file mode 100644
index 0000000..ff40ede
--- /dev/null
+++ b/parted-1.8.7/include/parted/parted.h
@@ -0,0 +1,64 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef PARTED_H_INCLUDED
+#define PARTED_H_INCLUDED
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _PedArchitecture PedArchitecture;
+
+#include <parted/constraint.h>
+#include <parted/device.h>
+#include <parted/disk.h>
+#include <parted/exception.h>
+#include <parted/filesys.h>
+#include <parted/natmath.h>
+#include <parted/unit.h>
+
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+struct _PedArchitecture {
+	PedDiskArchOps*		disk_ops;
+	PedDeviceArchOps*	dev_ops;
+};
+
+extern const PedArchitecture*	ped_architecture;
+
+/* the architecture can't be changed if there are any PedDevice's.
+ * i.e. you should only be doing this if it's the FIRST thing you do...
+ */
+extern int ped_set_architecture (const PedArchitecture* arch);
+
+extern const char* ped_get_version ();
+
+extern void* ped_malloc (size_t size);
+extern void* ped_calloc (size_t size);
+extern int ped_realloc (void** ptr, size_t size);
+extern void ped_free (void* ptr);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* PARTED_H_INCLUDED */
diff --git a/parted-1.8.7/include/parted/timer.h b/parted-1.8.7/include/parted/timer.h
new file mode 100644
index 0000000..b3cbd10
--- /dev/null
+++ b/parted-1.8.7/include/parted/timer.h
@@ -0,0 +1,66 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+/**
+ * \addtogroup PedTimer
+ * @{
+ */
+
+/** \file timer.h */
+
+#ifndef PED_TIMER_H_INCLUDED
+#define PED_TIMER_H_INCLUDED
+
+#include <time.h>
+
+typedef struct _PedTimer PedTimer;
+
+typedef void PedTimerHandler (PedTimer* timer, void* context);
+
+/*
+ * Structure keeping track of progress and time
+ */
+struct _PedTimer {
+	float			frac;		/**< fraction of operation done */
+	time_t			start;		/**< time of start of op */
+	time_t			now;		/**< time of last update (now!) */
+	time_t			predicted_end;	/**< expected finish time */
+	const char*		state_name;	/**< eg: "copying data" */
+	PedTimerHandler*	handler;	/**< who to notify on updates */
+	void*			context;	/**< context to pass to handler */
+};
+
+extern PedTimer* ped_timer_new (PedTimerHandler* handler, void* context);
+extern void ped_timer_destroy (PedTimer* timer);
+
+/* a nested timer automatically notifies it's parent.  You should only
+ * create one when you are going to use it (not before)
+ */
+extern PedTimer* ped_timer_new_nested (PedTimer* parent, float nest_frac);
+extern void ped_timer_destroy_nested (PedTimer* timer);
+
+extern void ped_timer_touch (PedTimer* timer);
+extern void ped_timer_reset (PedTimer* timer);
+extern void ped_timer_update (PedTimer* timer, float new_frac);
+extern void ped_timer_set_state_name (PedTimer* timer, const char* state_name);
+
+#endif /* PED_TIMER_H_INCLUDED */
+
+
+/** @} */
diff --git a/parted-1.8.7/include/parted/unit.h b/parted-1.8.7/include/parted/unit.h
new file mode 100644
index 0000000..a7d3d41
--- /dev/null
+++ b/parted-1.8.7/include/parted/unit.h
@@ -0,0 +1,94 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2005, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+/**
+ * \addtogroup PedUnit
+ * @{
+ */
+
+/** \file unit.h */
+
+#ifndef PED_UNIT_H_INCLUDED
+#define PED_UNIT_H_INCLUDED
+
+#include <parted/device.h>
+
+#include <stdarg.h>
+#include <stdio.h>
+
+#define PED_SECTOR_SIZE_DEFAULT   512LL
+#define PED_KILOBYTE_SIZE 1000LL
+#define PED_MEGABYTE_SIZE 1000000LL
+#define PED_GIGABYTE_SIZE 1000000000LL
+#define PED_TERABYTE_SIZE 1000000000000LL
+#define PED_KIBIBYTE_SIZE 1024LL
+#define PED_MEBIBYTE_SIZE 1048576LL
+#define PED_GIBIBYTE_SIZE 1073741824LL
+#define PED_TEBIBYTE_SIZE 1099511627776LL
+
+/**
+ * Human-friendly unit for representation of a location within device
+ */
+typedef enum {
+	PED_UNIT_SECTOR,
+	PED_UNIT_BYTE,
+	PED_UNIT_KILOBYTE,
+	PED_UNIT_MEGABYTE,
+	PED_UNIT_GIGABYTE,
+	PED_UNIT_TERABYTE,
+	PED_UNIT_COMPACT,
+	PED_UNIT_CYLINDER,
+	PED_UNIT_CHS,
+	PED_UNIT_PERCENT,
+	PED_UNIT_KIBIBYTE,
+	PED_UNIT_MEBIBYTE,
+	PED_UNIT_GIBIBYTE,
+	PED_UNIT_TEBIBYTE
+} PedUnit;
+
+#define PED_UNIT_FIRST PED_UNIT_SECTOR
+#define PED_UNIT_LAST PED_UNIT_TEBIBYTE
+
+extern long long ped_unit_get_size (const PedDevice* dev, PedUnit unit);
+extern const char* ped_unit_get_name (PedUnit unit);
+extern PedUnit ped_unit_get_by_name (const char* unit_name);
+
+extern void ped_unit_set_default (PedUnit unit);
+extern PedUnit ped_unit_get_default ();
+
+extern char* ped_unit_format_byte (const PedDevice* dev, PedSector byte);
+extern char* ped_unit_format_custom_byte (const PedDevice* dev, PedSector byte,
+					  PedUnit unit);
+
+extern char* ped_unit_format (const PedDevice* dev, PedSector sector);
+extern char* ped_unit_format_custom (const PedDevice* dev, PedSector sector,
+				     PedUnit unit);
+
+extern int ped_unit_parse (const char* str, const PedDevice* dev,
+                           PedSector* sector,
+			   PedGeometry** range);
+extern int ped_unit_parse_custom (const char* str, const PedDevice* dev,
+				  PedUnit unit, PedSector* sector,
+				  PedGeometry** range);
+
+#endif /* PED_UNIT_H_INCLUDED */
+
+/** @} */
+
+
diff --git a/parted-1.8.7/include/parted/vtoc.h b/parted-1.8.7/include/parted/vtoc.h
new file mode 100644
index 0000000..3e79478
--- /dev/null
+++ b/parted-1.8.7/include/parted/vtoc.h
@@ -0,0 +1,283 @@
+/*
+ * File...........: s390-tools/dasdview/vtoc.h
+ * Author(s)......: Horst Hummel <horst.hummel@de.ibm.com>
+ * Bugreports.to..: <Linux390@de.ibm.com>
+ *
+ * This is a user-space copy of the kernel vtoc,h. 
+ * 
+ * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 2002
+ *
+ * History of changes (starts March 2002)
+ * 2002-03-12 initial
+ */
+
+#ifndef VTOC_H
+#define VTOC_H
+
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <errno.h>
+#include <ctype.h>
+#include <time.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+#include <sys/stat.h>
+#include <sys/ioctl.h>
+
+#define LINE_LENGTH 80
+#define VTOC_START_CC 0x0
+#define VTOC_START_HH 0x1
+#define FIRST_USABLE_CYL 1
+#define FIRST_USABLE_TRK 2
+
+#define DASD_3380_TYPE 13148
+#define DASD_3390_TYPE 13200
+#define DASD_9345_TYPE 37701
+
+#define DASD_3380_VALUE 0xbb60
+#define DASD_3390_VALUE 0xe5a2
+#define DASD_9345_VALUE 0xbc98
+
+#define VOLSER_LENGTH 6
+#define BIG_DISK_SIZE 0x10000
+
+#define VTOC_ERROR "VTOC error:"
+
+typedef struct ttr              ttr_t;
+typedef struct cchhb            cchhb_t;
+typedef struct cchh             cchh_t;
+typedef struct labeldate        labeldate_t;
+typedef struct volume_label     volume_label_t;
+typedef struct extent           extent_t;
+typedef struct dev_const        dev_const_t;
+typedef struct format1_label    format1_label_t;
+typedef struct format4_label    format4_label_t;
+typedef struct ds5ext           ds5ext_t;
+typedef struct format5_label    format5_label_t;
+typedef struct ds7ext           ds7ext_t;
+typedef struct format7_label    format7_label_t;
+
+struct __attribute__ ((packed)) ttr {
+        u_int16_t tt;
+        u_int8_t  r;
+};
+
+struct  __attribute__ ((packed)) cchhb {
+        u_int16_t cc;
+        u_int16_t hh;
+        u_int8_t b;
+};
+
+struct __attribute__ ((packed)) cchh {
+        u_int16_t cc;
+        u_int16_t hh;
+};
+
+struct __attribute__ ((packed)) labeldate {
+        u_int8_t  year;
+        u_int16_t day;
+};
+
+struct __attribute__ ((packed)) volume_label {
+	char volkey[4];         /* volume key = volume label                 */
+	char vollbl[4];	        /* volume label                              */
+	char volid[6];	        /* volume identifier                         */
+	u_int8_t security;	/* security byte                             */
+	cchhb_t vtoc;           /* VTOC address                              */
+	char res1[5];	        /* reserved                                  */
+	char cisize[4];	        /* CI-size for FBA,...                       */
+                                /* ...blanks for CKD                         */
+	char blkperci[4];       /* no of blocks per CI (FBA), blanks for CKD */
+	char labperci[4];       /* no of labels per CI (FBA), blanks for CKD */
+	char res2[4];	        /* reserved                                  */
+	char lvtoc[14];	        /* owner code for LVTOC                      */
+	char res3[29];	        /* reserved                                  */
+};
+
+struct __attribute__ ((packed)) extent {
+        u_int8_t  typeind;      /* extent type indicator */
+        u_int8_t  seqno;        /* extent sequence number */
+        cchh_t llimit;          /* starting point of this extent */
+        cchh_t ulimit;          /* ending point of this extent */
+};
+
+struct __attribute__ ((packed)) dev_const {
+        u_int16_t DS4DSCYL;     /* number of logical cyls */
+        u_int16_t DS4DSTRK;     /* number of tracks in a logical cylinder  */
+        u_int16_t DS4DEVTK;     /* device track length */
+        u_int8_t  DS4DEVI;      /* non-last keyed record overhead */
+        u_int8_t  DS4DEVL;      /* last keyed record overhead */
+        u_int8_t  DS4DEVK;      /* non-keyed record overhead differential */
+        u_int8_t  DS4DEVFG;     /* flag byte */
+        u_int16_t DS4DEVTL;     /* device tolerance */
+        u_int8_t  DS4DEVDT;     /* number of DSCB's per track */
+        u_int8_t  DS4DEVDB;     /* number of directory blocks per track */
+};
+
+struct __attribute__ ((packed)) format1_label {
+	char  DS1DSNAM[44];     /* data set name                           */
+	u_int8_t  DS1FMTID;     /* format identifier                       */
+	char  DS1DSSN[6];       /* data set serial number                  */
+	u_int16_t DS1VOLSQ;     /* volume sequence number                  */
+	labeldate_t DS1CREDT;   /* creation date: ydd                      */
+	labeldate_t DS1EXPDT;   /* expiration date                         */
+	u_int8_t  DS1NOEPV;     /* number of extents on volume             */
+	u_int8_t  DS1NOBDB;     /* no. of bytes used in last direction blk */
+	u_int8_t  DS1FLAG1;     /* flag 1                                  */
+	char  DS1SYSCD[13];     /* system code                             */
+	labeldate_t DS1REFD;    /* date last referenced                    */
+	u_int8_t  DS1SMSFG;     /* system managed storage indicators       */
+	u_int8_t  DS1SCXTF;     /* sec. space extension flag byte          */
+	u_int16_t DS1SCXTV;     /* secondary space extension value         */
+	u_int8_t  DS1DSRG1;     /* data set organisation byte 1            */
+	u_int8_t  DS1DSRG2;     /* data set organisation byte 2            */
+  	u_int8_t  DS1RECFM;     /* record format                           */
+	u_int8_t  DS1OPTCD;     /* option code                             */
+	u_int16_t DS1BLKL;      /* block length                            */
+	u_int16_t DS1LRECL;     /* record length                           */
+	u_int8_t  DS1KEYL;      /* key length                              */
+	u_int16_t DS1RKP;       /* relative key position                   */
+	u_int8_t  DS1DSIND;     /* data set indicators                     */
+	u_int8_t  DS1SCAL1;     /* secondary allocation flag byte          */
+  	char DS1SCAL3[3];       /* secondary allocation quantity           */
+	ttr_t DS1LSTAR;         /* last used track and block on track      */
+	u_int16_t DS1TRBAL;     /* space remaining on last used track      */
+	u_int16_t res1;         /* reserved                                */
+	extent_t DS1EXT1;       /* first extent description                */
+	extent_t DS1EXT2;       /* second extent description               */
+	extent_t DS1EXT3;       /* third extent description                */
+	cchhb_t DS1PTRDS;       /* possible pointer to f2 or f3 DSCB       */
+};
+
+struct __attribute__ ((packed)) format4_label {
+	char  DS4KEYCD[44];     /* key code for VTOC labels: 44 times 0x04 */
+	u_int8_t  DS4IDFMT;     /* format identifier                       */
+	cchhb_t DS4HPCHR;       /* highest address of a format 1 DSCB      */
+	u_int16_t DS4DSREC;     /* number of available DSCB's              */
+	cchh_t DS4HCCHH;        /* CCHH of next available alternate track  */
+	u_int16_t DS4NOATK;     /* number of remaining alternate tracks    */
+	u_int8_t  DS4VTOCI;     /* VTOC indicators                         */
+	u_int8_t  DS4NOEXT;     /* number of extents in VTOC               */
+	u_int8_t  DS4SMSFG;     /* system managed storage indicators       */
+	u_int8_t  DS4DEVAC;     /* number of alternate cylinders. 
+                                   Subtract from first two bytes of 
+                                   DS4DEVSZ to get number of usable
+	                           cylinders. can be zero. valid
+	                           only if DS4DEVAV on.                    */
+	dev_const_t DS4DEVCT;   /* device constants                        */
+	char DS4AMTIM[8];       /* VSAM time stamp                         */
+	char DS4AMCAT[3];       /* VSAM catalog indicator                  */
+	char DS4R2TIM[8];       /* VSAM volume/catalog match time stamp    */
+	char res1[5];           /* reserved                                */
+	char DS4F6PTR[5];       /* pointer to first format 6 DSCB          */
+	extent_t DS4VTOCE;      /* VTOC extent description                 */
+	char res2[10];          /* reserved                                */
+	u_int8_t DS4EFLVL;      /* extended free-space management level    */
+	cchhb_t DS4EFPTR;       /* pointer to extended free-space info     */
+	char res3[9];           /* reserved                                */
+};
+
+struct __attribute__ ((packed)) ds5ext {
+	u_int16_t t;            /* RTA of the first track of free extent   */
+	u_int16_t fc;           /* number of whole cylinders in free ext.  */
+	u_int8_t  ft;           /* number of remaining free tracks         */
+};
+
+struct __attribute__ ((packed)) format5_label {
+	char DS5KEYID[4];       /* key identifier                          */
+	ds5ext_t DS5AVEXT;      /* first available (free-space) extent.    */
+	ds5ext_t DS5EXTAV[7];   /* seven available extents                 */
+	u_int8_t DS5FMTID;      /* format identifier                       */
+	ds5ext_t DS5MAVET[18];  /* eighteen available extents              */
+	cchhb_t DS5PTRDS;       /* pointer to next format5 DSCB            */
+};
+
+struct __attribute__ ((packed)) ds7ext {
+	u_int32_t a;            /* starting RTA value                      */
+	u_int32_t b;            /* ending RTA value + 1                    */
+};
+
+struct __attribute__ ((packed)) format7_label {
+	char DS7KEYID[4];       /* key identifier                          */
+	ds7ext_t DS7EXTNT[5];   /* space for 5 extent descriptions         */
+	u_int8_t DS7FMTID;      /* format identifier                       */
+	ds7ext_t DS7ADEXT[11];  /* space for 11 extent descriptions        */
+	char res1[2];           /* reserved                                */
+	cchhb_t DS7PTRDS;       /* pointer to next FMT7 DSCB               */
+};
+
+char * vtoc_ebcdic_enc (char source[LINE_LENGTH], char target[LINE_LENGTH],
+                        int l);
+char * vtoc_ebcdic_dec (char source[LINE_LENGTH], char target[LINE_LENGTH],
+                        int l);
+void vtoc_set_extent (extent_t * ext, u_int8_t typeind, u_int8_t seqno,
+                      cchh_t * lower, cchh_t * upper);
+void vtoc_set_cchh (cchh_t * addr, u_int16_t cc, u_int16_t hh);
+void vtoc_set_cchhb (cchhb_t * addr, u_int16_t cc, u_int16_t hh, u_int8_t b);
+void vtoc_set_date (labeldate_t * d, u_int8_t year, u_int16_t day);
+
+void vtoc_volume_label_init (volume_label_t *vlabel);
+
+int vtoc_read_volume_label (int fd, unsigned long vlabel_start,
+                            volume_label_t * vlabel);
+
+int vtoc_write_volume_label (int fd, unsigned long vlabel_start,
+                             volume_label_t *vlabel);
+
+void vtoc_volume_label_set_volser (volume_label_t *vlabel, char *volser);
+
+char *vtoc_volume_label_get_volser (volume_label_t *vlabel, char *volser);
+
+void vtoc_volume_label_set_key (volume_label_t *vlabel, char *key);     
+
+void vtoc_volume_label_set_label (volume_label_t *vlabel, char *lbl);
+
+char *vtoc_volume_label_get_label (volume_label_t *vlabel, char *lbl);
+
+void vtoc_read_label (int fd, unsigned long position, format1_label_t *f1,
+                      format4_label_t *f4, format5_label_t *f5,
+                      format7_label_t *f7);
+
+void vtoc_write_label (int fd, unsigned long position, format1_label_t *f1,
+                       format4_label_t *f4, format5_label_t *f5,
+                       format7_label_t *f7);
+
+void vtoc_init_format1_label (char *volid, unsigned int blksize,
+                              extent_t *part_extent, format1_label_t *f1);
+
+void vtoc_init_format4_label (format4_label_t *f4lbl,
+                              unsigned int usable_partitions,
+                              unsigned int cylinders,
+                              unsigned int tracks,
+                              unsigned int blocks,
+                              unsigned int blksize,
+                              u_int16_t dev_type);
+
+void vtoc_update_format4_label (format4_label_t *f4, cchhb_t *highest_f1,
+                                u_int16_t unused_update);
+
+void vtoc_init_format5_label (format5_label_t *f5);
+
+void vtoc_update_format5_label_add (format5_label_t *f5, int verbose, int cyl,
+                                    int trk, u_int16_t a, u_int16_t b,
+                                    u_int8_t c);
+ 
+void vtoc_update_format5_label_del (format5_label_t *f5, int verbose, int cyl,
+                                    int trk, u_int16_t a, u_int16_t b, 
+                                    u_int8_t c);
+
+void vtoc_init_format7_label (format7_label_t *f7);
+
+void vtoc_update_format7_label_add (format7_label_t *f7, int verbose,
+                                    u_int32_t a, u_int32_t b);
+
+void vtoc_update_format7_label_del (format7_label_t *f7, int verbose,
+                                    u_int32_t a, u_int32_t b);
+
+void vtoc_set_freespace(format4_label_t *f4, format5_label_t *f5,
+                        format7_label_t *f7, char ch, int verbose,
+                        u_int32_t start, u_int32_t stop, int cyl, int trk);
+
+#endif /* VTOC_H */
diff --git a/parted-1.8.7/lib/Makefile.am b/parted-1.8.7/lib/Makefile.am
new file mode 100644
index 0000000..6635f70
--- /dev/null
+++ b/parted-1.8.7/lib/Makefile.am
@@ -0,0 +1 @@
+include gnulib.mk
diff --git a/parted-1.8.7/lib/Makefile.in b/parted-1.8.7/lib/Makefile.in
new file mode 100644
index 0000000..1c6d2a9
--- /dev/null
+++ b/parted-1.8.7/lib/Makefile.in
@@ -0,0 +1,1071 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Copyright (C) 2004-2007 Free Software Foundation, Inc.
+#
+# This file is free software, distributed under the terms of the GNU
+# General Public License.  As a special exception to the GNU General
+# Public License, this file may be distributed as part of a program
+# that contains a configuration script generated by Autoconf, under
+# the same distribution terms as the rest of that program.
+#
+# Generated by gnulib-tool.
+# Reproduce by: gnulib-tool --import --dir=. --local-dir=gl --lib=libparted --source-base=lib --m4-base=m4 --doc-base=doc --aux-dir=build-aux --avoid=lock --avoid=size_max --avoid=xsize --avoid=canonicalize-lgpl --libtool --macro-prefix=gl alloca announce-gen assert atexit calloc closeout config-h configmake fdl free gettext gnupload inttypes lib-ignore long-options malloc memchr memcmp memcpy memmove memset realloc rename rpmatch safe-read stdbool strcspn strtod strtol utime version-etc-fsf
+
+
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in $(srcdir)/config.h.in \
+	$(srcdir)/gnulib.mk alloca.c
+subdir = lib
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+am_libparted_la_OBJECTS = full-write.lo localcharset.lo version-etc.lo \
+	version-etc-fsf.lo xalloc-die.lo xstrndup.lo
+libparted_la_OBJECTS = $(am_libparted_la_OBJECTS)
+libparted_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(libparted_la_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(libparted_la_SOURCES) $(EXTRA_libparted_la_SOURCES)
+DIST_SOURCES = $(libparted_la_SOURCES) $(EXTRA_libparted_la_SOURCES)
+HEADERS = $(noinst_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@ $(POW_LIB)
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AUTOMAKE_OPTIONS = 1.5 gnits
+noinst_HEADERS = 
+noinst_LIBRARIES = 
+noinst_LTLIBRARIES = libparted.la
+EXTRA_DIST = alloca.c alloca_.h atexit.c calloc.c close-stream.c \
+	close-stream.h closeout.c closeout.h basename.c dirname.c \
+	dirname.h stripslash.c error.c error.h exitfail.c exitfail.h \
+	__fpending.c __fpending.h free.c getopt.c getopt1.c getopt_.h \
+	getopt_int.h inttypes_.h config.charset ref-add.sin \
+	ref-del.sin long-options.c long-options.h malloc.c memchr.c \
+	memcmp.c memcpy.c memmove.c memset.c quotearg.c quotearg.h \
+	realloc.c regcomp.c regex.c regex.h regex_internal.c \
+	regex_internal.h regexec.c rename.c rpmatch.c safe-read.c \
+	safe-read.h safe-write.c safe-write.h stdbool_.h stdint_.h \
+	stdlib_.h strcspn.c string_.h strndup.c strnlen.c strtod.c \
+	strtol.c unistd_.h utime.c wchar_.h wctype_.h xalloc.h \
+	xmalloc.c
+BUILT_SOURCES = $(ALLOCA_H) configmake.h $(GETOPT_H) $(INTTYPES_H) \
+	$(STDBOOL_H) $(STDINT_H) stdlib.h string.h unistd.h $(WCHAR_H) \
+	$(WCTYPE_H)
+SUFFIXES = .sed .sin
+MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t getopt.h \
+	getopt.h-t inttypes.h inttypes.h-t stdbool.h stdbool.h-t \
+	stdint.h stdint.h-t stdlib.h stdlib.h-t string.h string.h-t \
+	unistd.h unistd.h-t wchar.h wchar.h-t wctype.h wctype.h-t
+MOSTLYCLEANDIRS = 
+CLEANFILES = configmake.h configmake.h-t charset.alias ref-add.sed \
+	ref-del.sed
+DISTCLEANFILES = 
+MAINTAINERCLEANFILES = 
+AM_CPPFLAGS = 
+
+# This is for those projects which use "gettextize --intl" to put a source-code
+# copy of libintl into their package. In such projects, every Makefile.am needs
+# -I$(top_builddir)/intl, so that <libintl.h> can be found in this directory.
+# For the Makefile.ams in other directories it is the maintainer's
+# responsibility; for the one from gnulib we do it here.
+# This option has no effect when the user disables NLS (because then the intl
+# directory contains no libintl.h file) or when the project does not use
+# "gettextize --intl".
+#AM_CPPFLAGS += -I$(top_builddir)/intl
+libparted_la_SOURCES = full-write.h full-write.c gettext.h \
+	localcharset.h localcharset.c version-etc.h version-etc.c \
+	version-etc-fsf.c xalloc-die.c xstrndup.h xstrndup.c
+libparted_la_LIBADD = $(gl_LTLIBOBJS) @LTALLOCA@
+libparted_la_DEPENDENCIES = $(gl_LTLIBOBJS) @LTALLOCA@
+EXTRA_libparted_la_SOURCES = alloca.c atexit.c calloc.c close-stream.c \
+	closeout.c basename.c dirname.c stripslash.c error.c \
+	exitfail.c __fpending.c free.c getopt.c getopt1.c \
+	long-options.c malloc.c memchr.c memcmp.c memcpy.c memmove.c \
+	memset.c quotearg.c realloc.c regcomp.c regex.c \
+	regex_internal.c regexec.c rename.c rpmatch.c safe-read.c \
+	safe-write.c strcspn.c strndup.c strnlen.c strtod.c strtol.c \
+	utime.c xmalloc.c
+libparted_la_LDFLAGS = $(AM_LDFLAGS)
+LINK_WARNING_H = $(top_srcdir)/build-aux/link-warning.h
+charset_alias = $(DESTDIR)$(libdir)/charset.alias
+charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
+all: $(BUILT_SOURCES) config.h
+	$(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .sed .sin .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(srcdir)/gnulib.mk $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits  lib/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnits  lib/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+config.h: stamp-h1
+	@if test ! -f $@; then \
+	  rm -f stamp-h1; \
+	  $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
+	else :; fi
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+	@rm -f stamp-h1
+	cd $(top_builddir) && $(SHELL) ./config.status lib/config.h
+$(srcdir)/config.h.in:  $(am__configure_deps) 
+	cd $(top_srcdir) && $(AUTOHEADER)
+	rm -f stamp-h1
+	touch $@
+
+distclean-hdr:
+	-rm -f config.h stamp-h1
+
+clean-noinstLIBRARIES:
+	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libparted.la: $(libparted_la_OBJECTS) $(libparted_la_DEPENDENCIES) 
+	$(libparted_la_LINK)  $(libparted_la_OBJECTS) $(libparted_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/alloca.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/__fpending.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alloca.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atexit.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basename.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calloc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close-stream.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/closeout.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirname.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exitfail.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/free.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/full-write.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localcharset.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/long-options.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memchr.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memcmp.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memcpy.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memmove.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memset.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quotearg.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/realloc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regcomp.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex_internal.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regexec.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rename.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rpmatch.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/safe-read.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/safe-write.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strcspn.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stripslash.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strndup.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtod.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtol.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utime.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version-etc-fsf.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version-etc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xalloc-die.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrndup.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) config.h \
+		all-local
+installdirs:
+install: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+	-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
+	clean-noinstLTLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf $(DEPDIR) ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-hdr distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am: install-exec-local
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf $(DEPDIR) ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool mostlyclean-local
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-local
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am all-local check check-am clean \
+	clean-generic clean-libtool clean-noinstLIBRARIES \
+	clean-noinstLTLIBRARIES ctags distclean distclean-compile \
+	distclean-generic distclean-hdr distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-exec-local \
+	install-html install-html-am install-info install-info-am \
+	install-man install-pdf install-pdf-am install-ps \
+	install-ps-am install-strip installcheck installcheck-am \
+	installdirs maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool mostlyclean-local pdf pdf-am ps ps-am tags \
+	uninstall uninstall-am uninstall-local
+
+
+# We need the following in order to create <alloca.h> when the system
+# doesn't have one that works with the given compiler.
+alloca.h: alloca_.h
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  cat $(srcdir)/alloca_.h; \
+	} > $@-t
+	mv -f $@-t $@
+
+# Retrieve values of the variables through 'configure' followed by
+# 'make', not directly through 'configure', so that a user who
+# sets some of these variables consistently on the 'make' command
+# line gets correct results.
+#
+# One advantage of this approach, compared to the classical
+# approach of adding -DLIBDIR=\"$(libdir)\" etc. to AM_CPPFLAGS,
+# is that it protects against the use of undefined variables.
+# If, say, $(libdir) is not set in the Makefile, LIBDIR is not
+# defined by this module, and code using LIBDIR gives a
+# compilation error.
+#
+# Another advantage is that 'make' output is shorter.
+#
+# Listed in the same order as the GNU makefile conventions.
+# The Automake-defined pkg* macros are appended, in the order
+# listed in the Automake 1.10a+ documentation.
+configmake.h: Makefile
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  echo '#define PREFIX "$(prefix)"'; \
+	  echo '#define EXEC_PREFIX "$(exec_prefix)"'; \
+	  echo '#define BINDIR "$(bindir)"'; \
+	  echo '#define SBINDIR "$(sbindir)"'; \
+	  echo '#define LIBEXECDIR "$(libexecdir)"'; \
+	  echo '#define DATAROOTDIR "$(datarootdir)"'; \
+	  echo '#define DATADIR "$(datadir)"'; \
+	  echo '#define SYSCONFDIR "$(sysconfdir)"'; \
+	  echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \
+	  echo '#define LOCALSTATEDIR "$(localstatedir)"'; \
+	  echo '#define INCLUDEDIR "$(includedir)"'; \
+	  echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \
+	  echo '#define DOCDIR "$(docdir)"'; \
+	  echo '#define INFODIR "$(infodir)"'; \
+	  echo '#define HTMLDIR "$(htmldir)"'; \
+	  echo '#define DVIDIR "$(dvidir)"'; \
+	  echo '#define PDFDIR "$(pdfdir)"'; \
+	  echo '#define PSDIR "$(psdir)"'; \
+	  echo '#define LIBDIR "$(libdir)"'; \
+	  echo '#define LISPDIR "$(lispdir)"'; \
+	  echo '#define LOCALEDIR "$(localedir)"'; \
+	  echo '#define MANDIR "$(mandir)"'; \
+	  echo '#define MANEXT "$(manext)"'; \
+	  echo '#define PKGDATADIR "$(pkgdatadir)"'; \
+	  echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \
+	  echo '#define PKGLIBDIR "$(pkglibdir)"'; \
+	  echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \
+	} | sed '/""/d' > $@-t
+	mv $@-t $@
+
+# We need the following in order to create <getopt.h> when the system
+# doesn't have one that works with the given compiler.
+getopt.h: getopt_.h
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  cat $(srcdir)/getopt_.h; \
+	} > $@-t
+	mv -f $@-t $@
+
+# We need the following in order to create <inttypes.h> when the system
+# doesn't have one that works with the given compiler.
+inttypes.h: inttypes_.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  sed -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
+	      -e 's|@''ABSOLUTE_INTTYPES_H''@|$(ABSOLUTE_INTTYPES_H)|g' \
+	      -e 's/@''PRI_MACROS_BROKEN''@/$(PRI_MACROS_BROKEN)/g' \
+	      -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
+	      -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
+	      -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \
+	      -e 's/@''GNULIB_IMAXABS''@/$(GNULIB_IMAXABS)/g' \
+	      -e 's/@''GNULIB_IMAXDIV''@/$(GNULIB_IMAXDIV)/g' \
+	      -e 's/@''GNULIB_STRTOIMAX''@/$(GNULIB_STRTOIMAX)/g' \
+	      -e 's/@''GNULIB_STRTOUMAX''@/$(GNULIB_STRTOUMAX)/g' \
+	      -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \
+	      -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \
+	      -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \
+	      -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \
+	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+	      < $(srcdir)/inttypes_.h; \
+	} > $@-t
+	mv $@-t $@
+
+# We need the following in order to install a simple file in $(libdir)
+# which is shared with other installed packages. We use a list of referencing
+# packages so that "make uninstall" will remove the file if and only if it
+# is not used by another installed package.
+# On systems with glibc-2.1 or newer, the file is redundant, therefore we
+# avoid installing it.
+
+all-local: charset.alias ref-add.sed ref-del.sed
+install-exec-local: all-local
+	test $(GLIBC21) != no || $(mkinstalldirs) $(DESTDIR)$(libdir)
+	if test -f $(charset_alias); then \
+	  sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \
+	  $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
+	  rm -f $(charset_tmp) ; \
+	else \
+	  if test $(GLIBC21) = no; then \
+	    sed -f ref-add.sed charset.alias > $(charset_tmp) ; \
+	    $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
+	    rm -f $(charset_tmp) ; \
+	  fi ; \
+	fi
+
+uninstall-local: all-local
+	if test -f $(charset_alias); then \
+	  sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \
+	  if grep '^# Packages using this file: $$' $(charset_tmp) \
+	      > /dev/null; then \
+	    rm -f $(charset_alias); \
+	  else \
+	    $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \
+	  fi; \
+	  rm -f $(charset_tmp); \
+	fi
+
+charset.alias: config.charset
+	rm -f t-$@ $@
+	$(SHELL) $(srcdir)/config.charset '$(host)' > t-$@
+	mv t-$@ $@
+.sin.sed:
+	rm -f t-$@ $@
+	sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@
+	mv t-$@ $@
+
+# We need the following in order to create <stdbool.h> when the system
+# doesn't have one that works.
+stdbool.h: stdbool_.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool_.h; \
+	} > $@-t
+	mv $@-t $@
+
+# We need the following in order to create <stdint.h> when the system
+# doesn't have one that works with the given compiler.
+stdint.h: stdint_.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
+	      -e 's|@''ABSOLUTE_STDINT_H''@|$(ABSOLUTE_STDINT_H)|g' \
+	      -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \
+	      -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
+	      -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \
+	      -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \
+	      -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
+	      -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
+	      -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \
+	      -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \
+	      -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \
+	      -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \
+	      -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \
+	      -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \
+	      -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \
+	      -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \
+	      -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \
+	      -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \
+	      -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \
+	      -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \
+	      -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \
+	      < $(srcdir)/stdint_.h; \
+	} > $@-t
+	mv $@-t $@
+
+# We need the following in order to create <stdlib.h> when the system
+# doesn't have one that works with the given compiler.
+stdlib.h: stdlib_.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+	  sed -e 's|@''ABSOLUTE_STDLIB_H''@|$(ABSOLUTE_STDLIB_H)|g' \
+	      -e 's|@''GNULIB_GETSUBOPT''@|$(GNULIB_GETSUBOPT)|g' \
+	      -e 's|@''GNULIB_MKDTEMP''@|$(GNULIB_MKDTEMP)|g' \
+	      -e 's|@''GNULIB_MKSTEMP''@|$(GNULIB_MKSTEMP)|g' \
+	      -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
+	      -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \
+	      -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
+	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+	      < $(srcdir)/stdlib_.h; \
+	} > $@-t
+	mv $@-t $@
+
+# We need the following in order to create <string.h> when the system
+# doesn't have one that works with the given compiler.
+string.h: string_.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+	  sed -e 's|@''ABSOLUTE_STRING_H''@|$(ABSOLUTE_STRING_H)|g' \
+	      -e 's|@''GNULIB_MBSLEN''@|$(GNULIB_MBSLEN)|g' \
+	      -e 's|@''GNULIB_MBSCHR''@|$(GNULIB_MBSCHR)|g' \
+	      -e 's|@''GNULIB_MBSRCHR''@|$(GNULIB_MBSRCHR)|g' \
+	      -e 's|@''GNULIB_MBSSTR''@|$(GNULIB_MBSSTR)|g' \
+	      -e 's|@''GNULIB_MBSCASECMP''@|$(GNULIB_MBSCASECMP)|g' \
+	      -e 's|@''GNULIB_MBSNCASECMP''@|$(GNULIB_MBSNCASECMP)|g' \
+	      -e 's|@''GNULIB_MBSPCASECMP''@|$(GNULIB_MBSPCASECMP)|g' \
+	      -e 's|@''GNULIB_MBSCASESTR''@|$(GNULIB_MBSCASESTR)|g' \
+	      -e 's|@''GNULIB_MBSCSPN''@|$(GNULIB_MBSCSPN)|g' \
+	      -e 's|@''GNULIB_MBSPBRK''@|$(GNULIB_MBSPBRK)|g' \
+	      -e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \
+	      -e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \
+	      -e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \
+	      -e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \
+	      -e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \
+	      -e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \
+	      -e 's|@''GNULIB_STPCPY''@|$(GNULIB_STPCPY)|g' \
+	      -e 's|@''GNULIB_STPNCPY''@|$(GNULIB_STPNCPY)|g' \
+	      -e 's|@''GNULIB_STRCHRNUL''@|$(GNULIB_STRCHRNUL)|g' \
+	      -e 's|@''GNULIB_STRDUP''@|$(GNULIB_STRDUP)|g' \
+	      -e 's|@''GNULIB_STRNDUP''@|$(GNULIB_STRNDUP)|g' \
+	      -e 's|@''GNULIB_STRNLEN''@|$(GNULIB_STRNLEN)|g' \
+	      -e 's|@''GNULIB_STRPBRK''@|$(GNULIB_STRPBRK)|g' \
+	      -e 's|@''GNULIB_STRSEP''@|$(GNULIB_STRSEP)|g' \
+	      -e 's|@''GNULIB_STRCASESTR''@|$(GNULIB_STRCASESTR)|g' \
+	      -e 's|@''GNULIB_STRTOK_R''@|$(GNULIB_STRTOK_R)|g' \
+	      -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \
+	      -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \
+	      -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \
+	      -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \
+	      -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \
+	      -e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \
+	      -e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|g' \
+	      -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \
+	      -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \
+	      -e 's|@''HAVE_STRNDUP''@|$(HAVE_STRNDUP)|g' \
+	      -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \
+	      -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \
+	      -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \
+	      -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \
+	      -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \
+	      -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \
+	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+	      < $(srcdir)/string_.h; \
+	} > $@-t
+	mv $@-t $@
+
+# We need the following in order to create an empty placeholder for
+# <unistd.h> when the system doesn't have one.
+unistd.h: unistd_.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  sed -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
+	      -e 's|@''ABSOLUTE_UNISTD_H''@|$(ABSOLUTE_UNISTD_H)|g' \
+	      -e 's|@''GNULIB_CHOWN''@|$(GNULIB_CHOWN)|g' \
+	      -e 's|@''GNULIB_DUP2''@|$(GNULIB_DUP2)|g' \
+	      -e 's|@''GNULIB_FCHDIR''@|$(GNULIB_FCHDIR)|g' \
+	      -e 's|@''GNULIB_FTRUNCATE''@|$(GNULIB_FTRUNCATE)|g' \
+	      -e 's|@''GNULIB_GETCWD''@|$(GNULIB_GETCWD)|g' \
+	      -e 's|@''GNULIB_GETLOGIN_R''@|$(GNULIB_GETLOGIN_R)|g' \
+	      -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \
+	      -e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \
+	      -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
+	      -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \
+	      -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \
+	      -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \
+	      -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
+	      -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
+	      -e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \
+	      -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
+	      < $(srcdir)/unistd_.h; \
+	} > $@-t
+	mv $@-t $@
+
+# We need the following in order to create <wchar.h> when the system
+# version does not work standalone.
+wchar.h: wchar_.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  sed -e 's|@''ABSOLUTE_WCHAR_H''@|$(ABSOLUTE_WCHAR_H)|g' \
+	    < $(srcdir)/wchar_.h; \
+	} > $@-t
+	mv $@-t $@
+
+# We need the following in order to create <wctype.h> when the system
+# doesn't have one that works with the given compiler.
+wctype.h: wctype_.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  sed -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
+	      -e 's|@''ABSOLUTE_WCTYPE_H''@|$(ABSOLUTE_WCTYPE_H)|g' \
+	      -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \
+	      -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
+	      < $(srcdir)/wctype_.h; \
+	} > $@-t
+	mv $@-t $@
+
+mostlyclean-local: mostlyclean-generic
+	@for dir in '' $(MOSTLYCLEANDIRS); do \
+	  if test -n "$$dir" && test -d $$dir; then \
+	    echo "rmdir $$dir"; rmdir $$dir; \
+	  fi; \
+	done
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/lib/__fpending.c b/parted-1.8.7/lib/__fpending.c
new file mode 100644
index 0000000..221aee6
--- /dev/null
+++ b/parted-1.8.7/lib/__fpending.c
@@ -0,0 +1,30 @@
+/* __fpending.c -- return the number of pending output bytes on a stream
+   Copyright (C) 2000, 2004, 2006 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Written by Jim Meyering. */
+
+#include <config.h>
+
+#include "__fpending.h"
+
+/* Return the number of pending (aka buffered, unflushed)
+   bytes on the stream, FP, that is open for writing.  */
+size_t
+__fpending (FILE *fp)
+{
+  return PENDING_OUTPUT_N_BYTES;
+}
diff --git a/parted-1.8.7/lib/__fpending.h b/parted-1.8.7/lib/__fpending.h
new file mode 100644
index 0000000..8a8aabc
--- /dev/null
+++ b/parted-1.8.7/lib/__fpending.h
@@ -0,0 +1,34 @@
+/* Declare __fpending.
+
+   Copyright (C) 2000, 2003, 2005, 2006 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+   Written by Jim Meyering.  */
+
+#include <stddef.h>
+#include <stdio.h>
+
+#ifndef HAVE_DECL___FPENDING
+"this configure-time declaration test was not run"
+#endif
+
+#if HAVE_DECL___FPENDING
+# if HAVE_STDIO_EXT_H
+#  include <stdio_ext.h>
+# endif
+#else
+size_t __fpending (FILE *);
+#endif
diff --git a/parted-1.8.7/lib/alloca.c b/parted-1.8.7/lib/alloca.c
new file mode 100644
index 0000000..3a1f4e2
--- /dev/null
+++ b/parted-1.8.7/lib/alloca.c
@@ -0,0 +1,489 @@
+/* alloca.c -- allocate automatically reclaimed memory
+   (Mostly) portable public-domain implementation -- D A Gwyn
+
+   This implementation of the PWB library alloca function,
+   which is used to allocate space off the run-time stack so
+   that it is automatically reclaimed upon procedure exit,
+   was inspired by discussions with J. Q. Johnson of Cornell.
+   J.Otto Tennant <jot@cray.com> contributed the Cray support.
+
+   There are some preprocessor constants that can
+   be defined when compiling for your specific system, for
+   improved efficiency; however, the defaults should be okay.
+
+   The general concept of this implementation is to keep
+   track of all alloca-allocated blocks, and reclaim any
+   that are found to be deeper in the stack than the current
+   invocation.  This heuristic does not reclaim storage as
+   soon as it becomes invalid, but it will do so eventually.
+
+   As a special case, alloca(0) reclaims storage without
+   allocating any.  It is a good idea to use alloca(0) in
+   your main control loop, etc. to force garbage collection.  */
+
+#include <config.h>
+
+#include <alloca.h>
+
+#include <string.h>
+#include <stdlib.h>
+
+#ifdef emacs
+# include "lisp.h"
+# include "blockinput.h"
+# ifdef EMACS_FREE
+#  undef free
+#  define free EMACS_FREE
+# endif
+#else
+# define memory_full() abort ()
+#endif
+
+/* If compiling with GCC 2, this file's not needed.  */
+#if !defined (__GNUC__) || __GNUC__ < 2
+
+/* If someone has defined alloca as a macro,
+   there must be some other way alloca is supposed to work.  */
+# ifndef alloca
+
+#  ifdef emacs
+#   ifdef static
+/* actually, only want this if static is defined as ""
+   -- this is for usg, in which emacs must undefine static
+   in order to make unexec workable
+   */
+#    ifndef STACK_DIRECTION
+you
+lose
+-- must know STACK_DIRECTION at compile-time
+/* Using #error here is not wise since this file should work for
+   old and obscure compilers.  */
+#    endif /* STACK_DIRECTION undefined */
+#   endif /* static */
+#  endif /* emacs */
+
+/* If your stack is a linked list of frames, you have to
+   provide an "address metric" ADDRESS_FUNCTION macro.  */
+
+#  if defined (CRAY) && defined (CRAY_STACKSEG_END)
+long i00afunc ();
+#   define ADDRESS_FUNCTION(arg) (char *) i00afunc (&(arg))
+#  else
+#   define ADDRESS_FUNCTION(arg) &(arg)
+#  endif
+
+/* Define STACK_DIRECTION if you know the direction of stack
+   growth for your system; otherwise it will be automatically
+   deduced at run-time.
+
+   STACK_DIRECTION > 0 => grows toward higher addresses
+   STACK_DIRECTION < 0 => grows toward lower addresses
+   STACK_DIRECTION = 0 => direction of growth unknown  */
+
+#  ifndef STACK_DIRECTION
+#   define STACK_DIRECTION	0	/* Direction unknown.  */
+#  endif
+
+#  if STACK_DIRECTION != 0
+
+#   define STACK_DIR	STACK_DIRECTION	/* Known at compile-time.  */
+
+#  else /* STACK_DIRECTION == 0; need run-time code.  */
+
+static int stack_dir;		/* 1 or -1 once known.  */
+#   define STACK_DIR	stack_dir
+
+static void
+find_stack_direction (void)
+{
+  static char *addr = NULL;	/* Address of first `dummy', once known.  */
+  auto char dummy;		/* To get stack address.  */
+
+  if (addr == NULL)
+    {				/* Initial entry.  */
+      addr = ADDRESS_FUNCTION (dummy);
+
+      find_stack_direction ();	/* Recurse once.  */
+    }
+  else
+    {
+      /* Second entry.  */
+      if (ADDRESS_FUNCTION (dummy) > addr)
+	stack_dir = 1;		/* Stack grew upward.  */
+      else
+	stack_dir = -1;		/* Stack grew downward.  */
+    }
+}
+
+#  endif /* STACK_DIRECTION == 0 */
+
+/* An "alloca header" is used to:
+   (a) chain together all alloca'ed blocks;
+   (b) keep track of stack depth.
+
+   It is very important that sizeof(header) agree with malloc
+   alignment chunk size.  The following default should work okay.  */
+
+#  ifndef	ALIGN_SIZE
+#   define ALIGN_SIZE	sizeof(double)
+#  endif
+
+typedef union hdr
+{
+  char align[ALIGN_SIZE];	/* To force sizeof(header).  */
+  struct
+    {
+      union hdr *next;		/* For chaining headers.  */
+      char *deep;		/* For stack depth measure.  */
+    } h;
+} header;
+
+static header *last_alloca_header = NULL;	/* -> last alloca header.  */
+
+/* Return a pointer to at least SIZE bytes of storage,
+   which will be automatically reclaimed upon exit from
+   the procedure that called alloca.  Originally, this space
+   was supposed to be taken from the current stack frame of the
+   caller, but that method cannot be made to work for some
+   implementations of C, for example under Gould's UTX/32.  */
+
+void *
+alloca (size_t size)
+{
+  auto char probe;		/* Probes stack depth: */
+  register char *depth = ADDRESS_FUNCTION (probe);
+
+#  if STACK_DIRECTION == 0
+  if (STACK_DIR == 0)		/* Unknown growth direction.  */
+    find_stack_direction ();
+#  endif
+
+  /* Reclaim garbage, defined as all alloca'd storage that
+     was allocated from deeper in the stack than currently.  */
+
+  {
+    register header *hp;	/* Traverses linked list.  */
+
+#  ifdef emacs
+    BLOCK_INPUT;
+#  endif
+
+    for (hp = last_alloca_header; hp != NULL;)
+      if ((STACK_DIR > 0 && hp->h.deep > depth)
+	  || (STACK_DIR < 0 && hp->h.deep < depth))
+	{
+	  register header *np = hp->h.next;
+
+	  free (hp);		/* Collect garbage.  */
+
+	  hp = np;		/* -> next header.  */
+	}
+      else
+	break;			/* Rest are not deeper.  */
+
+    last_alloca_header = hp;	/* -> last valid storage.  */
+
+#  ifdef emacs
+    UNBLOCK_INPUT;
+#  endif
+  }
+
+  if (size == 0)
+    return NULL;		/* No allocation required.  */
+
+  /* Allocate combined header + user data storage.  */
+
+  {
+    /* Address of header.  */
+    register header *new;
+
+    size_t combined_size = sizeof (header) + size;
+    if (combined_size < sizeof (header))
+      memory_full ();
+
+    new = malloc (combined_size);
+
+    if (! new)
+      memory_full ();
+
+    new->h.next = last_alloca_header;
+    new->h.deep = depth;
+
+    last_alloca_header = new;
+
+    /* User storage begins just after header.  */
+
+    return (void *) (new + 1);
+  }
+}
+
+#  if defined (CRAY) && defined (CRAY_STACKSEG_END)
+
+#   ifdef DEBUG_I00AFUNC
+#    include <stdio.h>
+#   endif
+
+#   ifndef CRAY_STACK
+#    define CRAY_STACK
+#    ifndef CRAY2
+/* Stack structures for CRAY-1, CRAY X-MP, and CRAY Y-MP */
+struct stack_control_header
+  {
+    long shgrow:32;		/* Number of times stack has grown.  */
+    long shaseg:32;		/* Size of increments to stack.  */
+    long shhwm:32;		/* High water mark of stack.  */
+    long shsize:32;		/* Current size of stack (all segments).  */
+  };
+
+/* The stack segment linkage control information occurs at
+   the high-address end of a stack segment.  (The stack
+   grows from low addresses to high addresses.)  The initial
+   part of the stack segment linkage control information is
+   0200 (octal) words.  This provides for register storage
+   for the routine which overflows the stack.  */
+
+struct stack_segment_linkage
+  {
+    long ss[0200];		/* 0200 overflow words.  */
+    long sssize:32;		/* Number of words in this segment.  */
+    long ssbase:32;		/* Offset to stack base.  */
+    long:32;
+    long sspseg:32;		/* Offset to linkage control of previous
+				   segment of stack.  */
+    long:32;
+    long sstcpt:32;		/* Pointer to task common address block.  */
+    long sscsnm;		/* Private control structure number for
+				   microtasking.  */
+    long ssusr1;		/* Reserved for user.  */
+    long ssusr2;		/* Reserved for user.  */
+    long sstpid;		/* Process ID for pid based multi-tasking.  */
+    long ssgvup;		/* Pointer to multitasking thread giveup.  */
+    long sscray[7];		/* Reserved for Cray Research.  */
+    long ssa0;
+    long ssa1;
+    long ssa2;
+    long ssa3;
+    long ssa4;
+    long ssa5;
+    long ssa6;
+    long ssa7;
+    long sss0;
+    long sss1;
+    long sss2;
+    long sss3;
+    long sss4;
+    long sss5;
+    long sss6;
+    long sss7;
+  };
+
+#    else /* CRAY2 */
+/* The following structure defines the vector of words
+   returned by the STKSTAT library routine.  */
+struct stk_stat
+  {
+    long now;			/* Current total stack size.  */
+    long maxc;			/* Amount of contiguous space which would
+				   be required to satisfy the maximum
+				   stack demand to date.  */
+    long high_water;		/* Stack high-water mark.  */
+    long overflows;		/* Number of stack overflow ($STKOFEN) calls.  */
+    long hits;			/* Number of internal buffer hits.  */
+    long extends;		/* Number of block extensions.  */
+    long stko_mallocs;		/* Block allocations by $STKOFEN.  */
+    long underflows;		/* Number of stack underflow calls ($STKRETN).  */
+    long stko_free;		/* Number of deallocations by $STKRETN.  */
+    long stkm_free;		/* Number of deallocations by $STKMRET.  */
+    long segments;		/* Current number of stack segments.  */
+    long maxs;			/* Maximum number of stack segments so far.  */
+    long pad_size;		/* Stack pad size.  */
+    long current_address;	/* Current stack segment address.  */
+    long current_size;		/* Current stack segment size.  This
+				   number is actually corrupted by STKSTAT to
+				   include the fifteen word trailer area.  */
+    long initial_address;	/* Address of initial segment.  */
+    long initial_size;		/* Size of initial segment.  */
+  };
+
+/* The following structure describes the data structure which trails
+   any stack segment.  I think that the description in 'asdef' is
+   out of date.  I only describe the parts that I am sure about.  */
+
+struct stk_trailer
+  {
+    long this_address;		/* Address of this block.  */
+    long this_size;		/* Size of this block (does not include
+				   this trailer).  */
+    long unknown2;
+    long unknown3;
+    long link;			/* Address of trailer block of previous
+				   segment.  */
+    long unknown5;
+    long unknown6;
+    long unknown7;
+    long unknown8;
+    long unknown9;
+    long unknown10;
+    long unknown11;
+    long unknown12;
+    long unknown13;
+    long unknown14;
+  };
+
+#    endif /* CRAY2 */
+#   endif /* not CRAY_STACK */
+
+#   ifdef CRAY2
+/* Determine a "stack measure" for an arbitrary ADDRESS.
+   I doubt that "lint" will like this much.  */
+
+static long
+i00afunc (long *address)
+{
+  struct stk_stat status;
+  struct stk_trailer *trailer;
+  long *block, size;
+  long result = 0;
+
+  /* We want to iterate through all of the segments.  The first
+     step is to get the stack status structure.  We could do this
+     more quickly and more directly, perhaps, by referencing the
+     $LM00 common block, but I know that this works.  */
+
+  STKSTAT (&status);
+
+  /* Set up the iteration.  */
+
+  trailer = (struct stk_trailer *) (status.current_address
+				    + status.current_size
+				    - 15);
+
+  /* There must be at least one stack segment.  Therefore it is
+     a fatal error if "trailer" is null.  */
+
+  if (trailer == 0)
+    abort ();
+
+  /* Discard segments that do not contain our argument address.  */
+
+  while (trailer != 0)
+    {
+      block = (long *) trailer->this_address;
+      size = trailer->this_size;
+      if (block == 0 || size == 0)
+	abort ();
+      trailer = (struct stk_trailer *) trailer->link;
+      if ((block <= address) && (address < (block + size)))
+	break;
+    }
+
+  /* Set the result to the offset in this segment and add the sizes
+     of all predecessor segments.  */
+
+  result = address - block;
+
+  if (trailer == 0)
+    {
+      return result;
+    }
+
+  do
+    {
+      if (trailer->this_size <= 0)
+	abort ();
+      result += trailer->this_size;
+      trailer = (struct stk_trailer *) trailer->link;
+    }
+  while (trailer != 0);
+
+  /* We are done.  Note that if you present a bogus address (one
+     not in any segment), you will get a different number back, formed
+     from subtracting the address of the first block.  This is probably
+     not what you want.  */
+
+  return (result);
+}
+
+#   else /* not CRAY2 */
+/* Stack address function for a CRAY-1, CRAY X-MP, or CRAY Y-MP.
+   Determine the number of the cell within the stack,
+   given the address of the cell.  The purpose of this
+   routine is to linearize, in some sense, stack addresses
+   for alloca.  */
+
+static long
+i00afunc (long address)
+{
+  long stkl = 0;
+
+  long size, pseg, this_segment, stack;
+  long result = 0;
+
+  struct stack_segment_linkage *ssptr;
+
+  /* Register B67 contains the address of the end of the
+     current stack segment.  If you (as a subprogram) store
+     your registers on the stack and find that you are past
+     the contents of B67, you have overflowed the segment.
+
+     B67 also points to the stack segment linkage control
+     area, which is what we are really interested in.  */
+
+  stkl = CRAY_STACKSEG_END ();
+  ssptr = (struct stack_segment_linkage *) stkl;
+
+  /* If one subtracts 'size' from the end of the segment,
+     one has the address of the first word of the segment.
+
+     If this is not the first segment, 'pseg' will be
+     nonzero.  */
+
+  pseg = ssptr->sspseg;
+  size = ssptr->sssize;
+
+  this_segment = stkl - size;
+
+  /* It is possible that calling this routine itself caused
+     a stack overflow.  Discard stack segments which do not
+     contain the target address.  */
+
+  while (!(this_segment <= address && address <= stkl))
+    {
+#    ifdef DEBUG_I00AFUNC
+      fprintf (stderr, "%011o %011o %011o\n", this_segment, address, stkl);
+#    endif
+      if (pseg == 0)
+	break;
+      stkl = stkl - pseg;
+      ssptr = (struct stack_segment_linkage *) stkl;
+      size = ssptr->sssize;
+      pseg = ssptr->sspseg;
+      this_segment = stkl - size;
+    }
+
+  result = address - this_segment;
+
+  /* If you subtract pseg from the current end of the stack,
+     you get the address of the previous stack segment's end.
+     This seems a little convoluted to me, but I'll bet you save
+     a cycle somewhere.  */
+
+  while (pseg != 0)
+    {
+#    ifdef DEBUG_I00AFUNC
+      fprintf (stderr, "%011o %011o\n", pseg, size);
+#    endif
+      stkl = stkl - pseg;
+      ssptr = (struct stack_segment_linkage *) stkl;
+      size = ssptr->sssize;
+      pseg = ssptr->sspseg;
+      result += size;
+    }
+  return (result);
+}
+
+#   endif /* not CRAY2 */
+#  endif /* CRAY */
+
+# endif /* no alloca */
+#endif /* not GCC version 2 */
diff --git a/parted-1.8.7/lib/alloca_.h b/parted-1.8.7/lib/alloca_.h
new file mode 100644
index 0000000..af274b9
--- /dev/null
+++ b/parted-1.8.7/lib/alloca_.h
@@ -0,0 +1,54 @@
+/* Memory allocation on the stack.
+
+   Copyright (C) 1995, 1999, 2001-2004, 2006-2007 Free Software
+   Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published
+   by the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public
+   License along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+   USA.  */
+
+/* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H
+   means there is a real alloca function.  */
+#ifndef _GL_ALLOCA_H
+#define _GL_ALLOCA_H
+
+/* alloca (N) returns a pointer to N bytes of memory
+   allocated on the stack, which will last until the function returns.
+   Use of alloca should be avoided:
+     - inside arguments of function calls - undefined behaviour,
+     - in inline functions - the allocation may actually last until the
+       calling function returns,
+     - for huge N (say, N >= 65536) - you never know how large (or small)
+       the stack is, and when the stack cannot fulfill the memory allocation
+       request, the program just crashes.
+ */
+
+#ifndef alloca
+# ifdef __GNUC__
+#  define alloca __builtin_alloca
+# elif defined _AIX
+#  define alloca __alloca
+# elif defined _MSC_VER
+#  include <malloc.h>
+#  define alloca _alloca
+# else
+#  include <stddef.h>
+#  ifdef  __cplusplus
+extern "C"
+#  endif
+void *alloca (size_t);
+# endif
+#endif
+
+#endif /* _GL_ALLOCA_H */
diff --git a/parted-1.8.7/lib/atexit.c b/parted-1.8.7/lib/atexit.c
new file mode 100644
index 0000000..5ef33e5
--- /dev/null
+++ b/parted-1.8.7/lib/atexit.c
@@ -0,0 +1,13 @@
+/* Wrapper to implement ANSI C's atexit using SunOS's on_exit. */
+/* This function is in the public domain.  --Mike Stump. */
+
+#include <config.h>
+
+int
+atexit (void (*f) (void))
+{
+  /* If the system doesn't provide a definition for atexit, use on_exit
+     if the system provides that.  */
+  on_exit (f, 0);
+  return 0;
+}
diff --git a/parted-1.8.7/lib/basename.c b/parted-1.8.7/lib/basename.c
new file mode 100644
index 0000000..fbe17ff
--- /dev/null
+++ b/parted-1.8.7/lib/basename.c
@@ -0,0 +1,129 @@
+/* basename.c -- return the last element in a file name
+
+   Copyright (C) 1990, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006 Free
+   Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include <config.h>
+
+#include "dirname.h"
+
+#include <string.h>
+#include "xalloc.h"
+#include "xstrndup.h"
+
+/* Return the address of the last file name component of NAME.  If
+   NAME has no relative file name components because it is a file
+   system root, return the empty string.  */
+
+char *
+last_component (char const *name)
+{
+  char const *base = name + FILE_SYSTEM_PREFIX_LEN (name);
+  char const *p;
+  bool saw_slash = false;
+
+  while (ISSLASH (*base))
+    base++;
+
+  for (p = base; *p; p++)
+    {
+      if (ISSLASH (*p))
+	saw_slash = true;
+      else if (saw_slash)
+	{
+	  base = p;
+	  saw_slash = false;
+	}
+    }
+
+  return (char *) base;
+}
+
+
+/* In general, we can't use the builtin `basename' function if available,
+   since it has different meanings in different environments.
+   In some environments the builtin `basename' modifies its argument.
+
+   Return the last file name component of NAME, allocated with
+   xmalloc.  On systems with drive letters, a leading "./"
+   distinguishes relative names that would otherwise look like a drive
+   letter.  Unlike POSIX basename(), NAME cannot be NULL,
+   base_name("") returns "", and the first trailing slash is not
+   stripped.
+
+   If lstat (NAME) would succeed, then { chdir (dir_name (NAME));
+   lstat (base_name (NAME)); } will access the same file.  Likewise,
+   if the sequence { chdir (dir_name (NAME));
+   rename (base_name (NAME), "foo"); } succeeds, you have renamed NAME
+   to "foo" in the same directory NAME was in.  */
+
+char *
+base_name (char const *name)
+{
+  char const *base = last_component (name);
+  size_t length;
+
+  /* If there is no last component, then name is a file system root or the
+     empty string.  */
+  if (! *base)
+    return xstrndup (name, base_len (name));
+
+  /* Collapse a sequence of trailing slashes into one.  */
+  length = base_len (base);
+  if (ISSLASH (base[length]))
+    length++;
+
+  /* On systems with drive letters, `a/b:c' must return `./b:c' rather
+     than `b:c' to avoid confusion with a drive letter.  On systems
+     with pure POSIX semantics, this is not an issue.  */
+  if (FILE_SYSTEM_PREFIX_LEN (base))
+    {
+      char *p = xmalloc (length + 3);
+      p[0] = '.';
+      p[1] = '/';
+      memcpy (p + 2, base, length);
+      p[length + 2] = '\0';
+      return p;
+    }
+
+  /* Finally, copy the basename.  */
+  return xstrndup (base, length);
+}
+
+/* Return the length of the basename NAME.  Typically NAME is the
+   value returned by base_name or last_component.  Act like strlen
+   (NAME), except omit all trailing slashes.  */
+
+size_t
+base_len (char const *name)
+{
+  size_t len;
+  size_t prefix_len = FILE_SYSTEM_PREFIX_LEN (name);
+
+  for (len = strlen (name);  1 < len && ISSLASH (name[len - 1]);  len--)
+    continue;
+
+  if (DOUBLE_SLASH_IS_DISTINCT_ROOT && len == 1
+      && ISSLASH (name[0]) && ISSLASH (name[1]) && ! name[2])
+    return 2;
+
+  if (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE && prefix_len
+      && len == prefix_len && ISSLASH (name[prefix_len]))
+    return prefix_len + 1;
+
+  return len;
+}
diff --git a/parted-1.8.7/lib/calloc.c b/parted-1.8.7/lib/calloc.c
new file mode 100644
index 0000000..c8b1e1e
--- /dev/null
+++ b/parted-1.8.7/lib/calloc.c
@@ -0,0 +1,44 @@
+/* calloc() function that is glibc compatible.
+   This wrapper function is required at least on Tru64 UNIX 5.1.
+   Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* written by Jim Meyering */
+
+#include <config.h>
+#undef calloc
+
+#include <stdlib.h>
+
+/* Allocate and zero-fill an NxS-byte block of memory from the heap.
+   If N or S is zero, allocate and zero-fill a 1-byte block.  */
+
+void *
+rpl_calloc (size_t n, size_t s)
+{
+  size_t bytes;
+
+  if (n == 0 || s == 0)
+    return calloc (1, 1);
+
+  /* Defend against buggy calloc implementations that mishandle
+     size_t overflow.  */
+  bytes = n * s;
+  if (bytes / s != n)
+    return NULL;
+
+  return calloc (n, s);
+}
diff --git a/parted-1.8.7/lib/close-stream.c b/parted-1.8.7/lib/close-stream.c
new file mode 100644
index 0000000..72d0d68
--- /dev/null
+++ b/parted-1.8.7/lib/close-stream.c
@@ -0,0 +1,76 @@
+/* Close a stream, with nicer error checking than fclose's.
+
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2006 Free
+   Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include <config.h>
+
+#include "close-stream.h"
+
+#include <errno.h>
+#include <stdbool.h>
+
+#include "__fpending.h"
+
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
+
+/* Close STREAM.  Return 0 if successful, EOF (setting errno)
+   otherwise.  A failure might set errno to 0 if the error number
+   cannot be determined.
+
+   If a program writes *anything* to STREAM, that program should close
+   STREAM and make sure that it succeeds before exiting.  Otherwise,
+   suppose that you go to the extreme of checking the return status
+   of every function that does an explicit write to STREAM.  The last
+   printf can succeed in writing to the internal stream buffer, and yet
+   the fclose(STREAM) could still fail (due e.g., to a disk full error)
+   when it tries to write out that buffered data.  Thus, you would be
+   left with an incomplete output file and the offending program would
+   exit successfully.  Even calling fflush is not always sufficient,
+   since some file systems (NFS and CODA) buffer written/flushed data
+   until an actual close call.
+
+   Besides, it's wasteful to check the return value from every call
+   that writes to STREAM -- just let the internal stream state record
+   the failure.  That's what the ferror test is checking below.  */
+
+int
+close_stream (FILE *stream)
+{
+  bool some_pending = (__fpending (stream) != 0);
+  bool prev_fail = (ferror (stream) != 0);
+  bool fclose_fail = (fclose (stream) != 0);
+
+  /* Return an error indication if there was a previous failure or if
+     fclose failed, with one exception: ignore an fclose failure if
+     there was no previous error, no data remains to be flushed, and
+     fclose failed with EBADF.  That can happen when a program like cp
+     is invoked like this `cp a b >&-' (i.e., with standard output
+     closed) and doesn't generate any output (hence no previous error
+     and nothing to be flushed).  */
+
+  if (prev_fail || (fclose_fail && (some_pending || errno != EBADF)))
+    {
+      if (! fclose_fail)
+	errno = 0;
+      return EOF;
+    }
+
+  return 0;
+}
diff --git a/parted-1.8.7/lib/close-stream.h b/parted-1.8.7/lib/close-stream.h
new file mode 100644
index 0000000..be3d419
--- /dev/null
+++ b/parted-1.8.7/lib/close-stream.h
@@ -0,0 +1,2 @@
+#include <stdio.h>
+int close_stream (FILE *stream);
diff --git a/parted-1.8.7/lib/closeout.c b/parted-1.8.7/lib/closeout.c
new file mode 100644
index 0000000..830f16f
--- /dev/null
+++ b/parted-1.8.7/lib/closeout.c
@@ -0,0 +1,86 @@
+/* Close standard output and standard error, exiting with a diagnostic on error.
+
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2006 Free
+   Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include <config.h>
+
+#include "closeout.h"
+
+#include <errno.h>
+#include <stdio.h>
+#include <unistd.h>
+
+#include "gettext.h"
+#define _(msgid) gettext (msgid)
+
+#include "close-stream.h"
+#include "error.h"
+#include "exitfail.h"
+#include "quotearg.h"
+
+static const char *file_name;
+
+/* Set the file name to be reported in the event an error is detected
+   by close_stdout.  */
+void
+close_stdout_set_file_name (const char *file)
+{
+  file_name = file;
+}
+
+/* Close standard output.  On error, issue a diagnostic and _exit
+   with status 'exit_failure'.
+
+   Also close standard error.  On error, _exit with status 'exit_failure'.
+
+   Since close_stdout is commonly registered via 'atexit', POSIX
+   and the C standard both say that it should not call 'exit',
+   because the behavior is undefined if 'exit' is called more than
+   once.  So it calls '_exit' instead of 'exit'.  If close_stdout
+   is registered via atexit before other functions are registered,
+   the other functions can act before this _exit is invoked.
+
+   Applications that use close_stdout should flush any streams
+   other than stdout and stderr before exiting, since the call to
+   _exit will bypass other buffer flushing.  Applications should
+   be flushing and closing other streams anyway, to check for I/O
+   errors.  Also, applications should not use tmpfile, since _exit
+   can bypass the removal of these files.
+
+   It's important to detect such failures and exit nonzero because many
+   tools (most notably `make' and other build-management systems) depend
+   on being able to detect failure in other tools via their exit status.  */
+
+void
+close_stdout (void)
+{
+  if (close_stream (stdout) != 0)
+    {
+      char const *write_error = _("write error");
+      if (file_name)
+	error (0, errno, "%s: %s", quotearg_colon (file_name),
+	       write_error);
+      else
+	error (0, errno, "%s", write_error);
+
+      _exit (exit_failure);
+    }
+
+   if (close_stream (stderr) != 0)
+     _exit (exit_failure);
+}
diff --git a/parted-1.8.7/lib/closeout.h b/parted-1.8.7/lib/closeout.h
new file mode 100644
index 0000000..8bed23b
--- /dev/null
+++ b/parted-1.8.7/lib/closeout.h
@@ -0,0 +1,33 @@
+/* Close standard output and standard error.
+
+   Copyright (C) 1998, 2000, 2003, 2004, 2006 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef CLOSEOUT_H
+# define CLOSEOUT_H 1
+
+# ifdef __cplusplus
+extern "C" {
+# endif
+
+void close_stdout_set_file_name (const char *file);
+void close_stdout (void);
+
+# ifdef __cplusplus
+}
+# endif
+
+#endif
diff --git a/parted-1.8.7/lib/config.charset b/parted-1.8.7/lib/config.charset
new file mode 100755
index 0000000..148ea44
--- /dev/null
+++ b/parted-1.8.7/lib/config.charset
@@ -0,0 +1,639 @@
+#! /bin/sh
+# Output a system dependent table of character encoding aliases.
+#
+#   Copyright (C) 2000-2004, 2006 Free Software Foundation, Inc.
+#
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 2, or (at your option)
+#   any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License along
+#   with this program; if not, write to the Free Software Foundation,
+#   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# The table consists of lines of the form
+#    ALIAS  CANONICAL
+#
+# ALIAS is the (system dependent) result of "nl_langinfo (CODESET)".
+# ALIAS is compared in a case sensitive way.
+#
+# CANONICAL is the GNU canonical name for this character encoding.
+# It must be an encoding supported by libiconv. Support by GNU libc is
+# also desirable. CANONICAL is case insensitive. Usually an upper case
+# MIME charset name is preferred.
+# The current list of GNU canonical charset names is as follows.
+#
+#       name              MIME?             used by which systems
+#   ASCII, ANSI_X3.4-1968       glibc solaris freebsd netbsd darwin
+#   ISO-8859-1              Y   glibc aix hpux irix osf solaris freebsd netbsd darwin
+#   ISO-8859-2              Y   glibc aix hpux irix osf solaris freebsd netbsd darwin
+#   ISO-8859-3              Y   glibc solaris
+#   ISO-8859-4              Y   osf solaris freebsd netbsd darwin
+#   ISO-8859-5              Y   glibc aix hpux irix osf solaris freebsd netbsd darwin
+#   ISO-8859-6              Y   glibc aix hpux solaris
+#   ISO-8859-7              Y   glibc aix hpux irix osf solaris netbsd darwin
+#   ISO-8859-8              Y   glibc aix hpux osf solaris
+#   ISO-8859-9              Y   glibc aix hpux irix osf solaris darwin
+#   ISO-8859-13                 glibc netbsd darwin
+#   ISO-8859-14                 glibc
+#   ISO-8859-15                 glibc aix osf solaris freebsd darwin
+#   KOI8-R                  Y   glibc solaris freebsd netbsd darwin
+#   KOI8-U                  Y   glibc freebsd netbsd darwin
+#   KOI8-T                      glibc
+#   CP437                       dos
+#   CP775                       dos
+#   CP850                       aix osf dos
+#   CP852                       dos
+#   CP855                       dos
+#   CP856                       aix
+#   CP857                       dos
+#   CP861                       dos
+#   CP862                       dos
+#   CP864                       dos
+#   CP865                       dos
+#   CP866                       freebsd netbsd darwin dos
+#   CP869                       dos
+#   CP874                       woe32 dos
+#   CP922                       aix
+#   CP932                       aix woe32 dos
+#   CP943                       aix
+#   CP949                       osf woe32 dos
+#   CP950                       woe32 dos
+#   CP1046                      aix
+#   CP1124                      aix
+#   CP1125                      dos
+#   CP1129                      aix
+#   CP1250                      woe32
+#   CP1251                      glibc solaris netbsd darwin woe32
+#   CP1252                      aix woe32
+#   CP1253                      woe32
+#   CP1254                      woe32
+#   CP1255                      glibc woe32
+#   CP1256                      woe32
+#   CP1257                      woe32
+#   GB2312                  Y   glibc aix hpux irix solaris freebsd netbsd darwin
+#   EUC-JP                  Y   glibc aix hpux irix osf solaris freebsd netbsd darwin
+#   EUC-KR                  Y   glibc aix hpux irix osf solaris freebsd netbsd darwin
+#   EUC-TW                      glibc aix hpux irix osf solaris netbsd
+#   BIG5                    Y   glibc aix hpux osf solaris freebsd netbsd darwin
+#   BIG5-HKSCS                  glibc solaris
+#   GBK                         glibc aix osf solaris woe32 dos
+#   GB18030                     glibc solaris netbsd
+#   SHIFT_JIS               Y   hpux osf solaris freebsd netbsd darwin
+#   JOHAB                       glibc solaris woe32
+#   TIS-620                     glibc aix hpux osf solaris
+#   VISCII                  Y   glibc
+#   TCVN5712-1                  glibc
+#   GEORGIAN-PS                 glibc
+#   HP-ROMAN8                   hpux
+#   HP-ARABIC8                  hpux
+#   HP-GREEK8                   hpux
+#   HP-HEBREW8                  hpux
+#   HP-TURKISH8                 hpux
+#   HP-KANA8                    hpux
+#   DEC-KANJI                   osf
+#   DEC-HANYU                   osf
+#   UTF-8                   Y   glibc aix hpux osf solaris netbsd darwin
+#
+# Note: Names which are not marked as being a MIME name should not be used in
+# Internet protocols for information interchange (mail, news, etc.).
+#
+# Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications
+# must understand both names and treat them as equivalent.
+#
+# The first argument passed to this file is the canonical host specification,
+#    CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or
+#    CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+
+host="$1"
+os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'`
+echo "# This file contains a table of character encoding aliases,"
+echo "# suitable for operating system '${os}'."
+echo "# It was automatically generated from config.charset."
+# List of references, updated during installation:
+echo "# Packages using this file: "
+case "$os" in
+    linux-gnulibc1*)
+	# Linux libc5 doesn't have nl_langinfo(CODESET); therefore
+	# localcharset.c falls back to using the full locale name
+	# from the environment variables.
+	echo "C ASCII"
+	echo "POSIX ASCII"
+	for l in af af_ZA ca ca_ES da da_DK de de_AT de_BE de_CH de_DE de_LU \
+	         en en_AU en_BW en_CA en_DK en_GB en_IE en_NZ en_US en_ZA \
+	         en_ZW es es_AR es_BO es_CL es_CO es_DO es_EC es_ES es_GT \
+	         es_HN es_MX es_PA es_PE es_PY es_SV es_US es_UY es_VE et \
+	         et_EE eu eu_ES fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR \
+	         fr_LU ga ga_IE gl gl_ES id id_ID in in_ID is is_IS it it_CH \
+	         it_IT kl kl_GL nl nl_BE nl_NL no no_NO pt pt_BR pt_PT sv \
+	         sv_FI sv_SE; do
+	  echo "$l ISO-8859-1"
+	  echo "$l.iso-8859-1 ISO-8859-1"
+	  echo "$l.iso-8859-15 ISO-8859-15"
+	  echo "$l.iso-8859-15@euro ISO-8859-15"
+	  echo "$l@euro ISO-8859-15"
+	  echo "$l.cp-437 CP437"
+	  echo "$l.cp-850 CP850"
+	  echo "$l.cp-1252 CP1252"
+	  echo "$l.cp-1252@euro CP1252"
+	  #echo "$l.atari-st ATARI-ST" # not a commonly used encoding
+	  echo "$l.utf-8 UTF-8"
+	  echo "$l.utf-8@euro UTF-8"
+	done
+	for l in cs cs_CZ hr hr_HR hu hu_HU pl pl_PL ro ro_RO sk sk_SK sl \
+	         sl_SI sr sr_CS sr_YU; do
+	  echo "$l ISO-8859-2"
+	  echo "$l.iso-8859-2 ISO-8859-2"
+	  echo "$l.cp-852 CP852"
+	  echo "$l.cp-1250 CP1250"
+	  echo "$l.utf-8 UTF-8"
+	done
+	for l in mk mk_MK ru ru_RU; do
+	  echo "$l ISO-8859-5"
+	  echo "$l.iso-8859-5 ISO-8859-5"
+	  echo "$l.koi8-r KOI8-R"
+	  echo "$l.cp-866 CP866"
+	  echo "$l.cp-1251 CP1251"
+	  echo "$l.utf-8 UTF-8"
+	done
+	for l in ar ar_SA; do
+	  echo "$l ISO-8859-6"
+	  echo "$l.iso-8859-6 ISO-8859-6"
+	  echo "$l.cp-864 CP864"
+	  #echo "$l.cp-868 CP868" # not a commonly used encoding
+	  echo "$l.cp-1256 CP1256"
+	  echo "$l.utf-8 UTF-8"
+	done
+	for l in el el_GR gr gr_GR; do
+	  echo "$l ISO-8859-7"
+	  echo "$l.iso-8859-7 ISO-8859-7"
+	  echo "$l.cp-869 CP869"
+	  echo "$l.cp-1253 CP1253"
+	  echo "$l.cp-1253@euro CP1253"
+	  echo "$l.utf-8 UTF-8"
+	  echo "$l.utf-8@euro UTF-8"
+	done
+	for l in he he_IL iw iw_IL; do
+	  echo "$l ISO-8859-8"
+	  echo "$l.iso-8859-8 ISO-8859-8"
+	  echo "$l.cp-862 CP862"
+	  echo "$l.cp-1255 CP1255"
+	  echo "$l.utf-8 UTF-8"
+	done
+	for l in tr tr_TR; do
+	  echo "$l ISO-8859-9"
+	  echo "$l.iso-8859-9 ISO-8859-9"
+	  echo "$l.cp-857 CP857"
+	  echo "$l.cp-1254 CP1254"
+	  echo "$l.utf-8 UTF-8"
+	done
+	for l in lt lt_LT lv lv_LV; do
+	  #echo "$l BALTIC" # not a commonly used encoding, wrong encoding name
+	  echo "$l ISO-8859-13"
+	done
+	for l in ru_UA uk uk_UA; do
+	  echo "$l KOI8-U"
+	done
+	for l in zh zh_CN; do
+	  #echo "$l GB_2312-80" # not a commonly used encoding, wrong encoding name
+	  echo "$l GB2312"
+	done
+	for l in ja ja_JP ja_JP.EUC; do
+	  echo "$l EUC-JP"
+	done
+	for l in ko ko_KR; do
+	  echo "$l EUC-KR"
+	done
+	for l in th th_TH; do
+	  echo "$l TIS-620"
+	done
+	for l in fa fa_IR; do
+	  #echo "$l ISIRI-3342" # a broken encoding
+	  echo "$l.utf-8 UTF-8"
+	done
+	;;
+    linux* | *-gnu*)
+	# With glibc-2.1 or newer, we don't need any canonicalization,
+	# because glibc has iconv and both glibc and libiconv support all
+	# GNU canonical names directly. Therefore, the Makefile does not
+	# need to install the alias file at all.
+	# The following applies only to glibc-2.0.x and older libcs.
+	echo "ISO_646.IRV:1983 ASCII"
+	;;
+    aix*)
+	echo "ISO8859-1 ISO-8859-1"
+	echo "ISO8859-2 ISO-8859-2"
+	echo "ISO8859-5 ISO-8859-5"
+	echo "ISO8859-6 ISO-8859-6"
+	echo "ISO8859-7 ISO-8859-7"
+	echo "ISO8859-8 ISO-8859-8"
+	echo "ISO8859-9 ISO-8859-9"
+	echo "ISO8859-15 ISO-8859-15"
+	echo "IBM-850 CP850"
+	echo "IBM-856 CP856"
+	echo "IBM-921 ISO-8859-13"
+	echo "IBM-922 CP922"
+	echo "IBM-932 CP932"
+	echo "IBM-943 CP943"
+	echo "IBM-1046 CP1046"
+	echo "IBM-1124 CP1124"
+	echo "IBM-1129 CP1129"
+	echo "IBM-1252 CP1252"
+	echo "IBM-eucCN GB2312"
+	echo "IBM-eucJP EUC-JP"
+	echo "IBM-eucKR EUC-KR"
+	echo "IBM-eucTW EUC-TW"
+	echo "big5 BIG5"
+	echo "GBK GBK"
+	echo "TIS-620 TIS-620"
+	echo "UTF-8 UTF-8"
+	;;
+    hpux*)
+	echo "iso88591 ISO-8859-1"
+	echo "iso88592 ISO-8859-2"
+	echo "iso88595 ISO-8859-5"
+	echo "iso88596 ISO-8859-6"
+	echo "iso88597 ISO-8859-7"
+	echo "iso88598 ISO-8859-8"
+	echo "iso88599 ISO-8859-9"
+	echo "iso885915 ISO-8859-15"
+	echo "roman8 HP-ROMAN8"
+	echo "arabic8 HP-ARABIC8"
+	echo "greek8 HP-GREEK8"
+	echo "hebrew8 HP-HEBREW8"
+	echo "turkish8 HP-TURKISH8"
+	echo "kana8 HP-KANA8"
+	echo "tis620 TIS-620"
+	echo "big5 BIG5"
+	echo "eucJP EUC-JP"
+	echo "eucKR EUC-KR"
+	echo "eucTW EUC-TW"
+	echo "hp15CN GB2312"
+	#echo "ccdc ?" # what is this?
+	echo "SJIS SHIFT_JIS"
+	echo "utf8 UTF-8"
+	;;
+    irix*)
+	echo "ISO8859-1 ISO-8859-1"
+	echo "ISO8859-2 ISO-8859-2"
+	echo "ISO8859-5 ISO-8859-5"
+	echo "ISO8859-7 ISO-8859-7"
+	echo "ISO8859-9 ISO-8859-9"
+	echo "eucCN GB2312"
+	echo "eucJP EUC-JP"
+	echo "eucKR EUC-KR"
+	echo "eucTW EUC-TW"
+	;;
+    osf*)
+	echo "ISO8859-1 ISO-8859-1"
+	echo "ISO8859-2 ISO-8859-2"
+	echo "ISO8859-4 ISO-8859-4"
+	echo "ISO8859-5 ISO-8859-5"
+	echo "ISO8859-7 ISO-8859-7"
+	echo "ISO8859-8 ISO-8859-8"
+	echo "ISO8859-9 ISO-8859-9"
+	echo "ISO8859-15 ISO-8859-15"
+	echo "cp850 CP850"
+	echo "big5 BIG5"
+	echo "dechanyu DEC-HANYU"
+	echo "dechanzi GB2312"
+	echo "deckanji DEC-KANJI"
+	echo "deckorean EUC-KR"
+	echo "eucJP EUC-JP"
+	echo "eucKR EUC-KR"
+	echo "eucTW EUC-TW"
+	echo "GBK GBK"
+	echo "KSC5601 CP949"
+	echo "sdeckanji EUC-JP"
+	echo "SJIS SHIFT_JIS"
+	echo "TACTIS TIS-620"
+	echo "UTF-8 UTF-8"
+	;;
+    solaris*)
+	echo "646 ASCII"
+	echo "ISO8859-1 ISO-8859-1"
+	echo "ISO8859-2 ISO-8859-2"
+	echo "ISO8859-3 ISO-8859-3"
+	echo "ISO8859-4 ISO-8859-4"
+	echo "ISO8859-5 ISO-8859-5"
+	echo "ISO8859-6 ISO-8859-6"
+	echo "ISO8859-7 ISO-8859-7"
+	echo "ISO8859-8 ISO-8859-8"
+	echo "ISO8859-9 ISO-8859-9"
+	echo "ISO8859-15 ISO-8859-15"
+	echo "koi8-r KOI8-R"
+	echo "ansi-1251 CP1251"
+	echo "BIG5 BIG5"
+	echo "Big5-HKSCS BIG5-HKSCS"
+	echo "gb2312 GB2312"
+	echo "GBK GBK"
+	echo "GB18030 GB18030"
+	echo "cns11643 EUC-TW"
+	echo "5601 EUC-KR"
+	echo "ko_KR.johap92 JOHAB"
+	echo "eucJP EUC-JP"
+	echo "PCK SHIFT_JIS"
+	echo "TIS620.2533 TIS-620"
+	#echo "sun_eu_greek ?" # what is this?
+	echo "UTF-8 UTF-8"
+	;;
+    freebsd* | os2*)
+	# FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore
+	# localcharset.c falls back to using the full locale name
+	# from the environment variables.
+	# Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just
+	# reuse FreeBSD's locale data for OS/2.
+	echo "C ASCII"
+	echo "US-ASCII ASCII"
+	for l in la_LN lt_LN; do
+	  echo "$l.ASCII ASCII"
+	done
+	for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
+	         fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \
+	         lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do
+	  echo "$l.ISO_8859-1 ISO-8859-1"
+	  echo "$l.DIS_8859-15 ISO-8859-15"
+	done
+	for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do
+	  echo "$l.ISO_8859-2 ISO-8859-2"
+	done
+	for l in la_LN lt_LT; do
+	  echo "$l.ISO_8859-4 ISO-8859-4"
+	done
+	for l in ru_RU ru_SU; do
+	  echo "$l.KOI8-R KOI8-R"
+	  echo "$l.ISO_8859-5 ISO-8859-5"
+	  echo "$l.CP866 CP866"
+	done
+	echo "uk_UA.KOI8-U KOI8-U"
+	echo "zh_TW.BIG5 BIG5"
+	echo "zh_TW.Big5 BIG5"
+	echo "zh_CN.EUC GB2312"
+	echo "ja_JP.EUC EUC-JP"
+	echo "ja_JP.SJIS SHIFT_JIS"
+	echo "ja_JP.Shift_JIS SHIFT_JIS"
+	echo "ko_KR.EUC EUC-KR"
+	;;
+    netbsd*)
+	echo "646 ASCII"
+	echo "ISO8859-1 ISO-8859-1"
+	echo "ISO8859-2 ISO-8859-2"
+	echo "ISO8859-4 ISO-8859-4"
+	echo "ISO8859-5 ISO-8859-5"
+	echo "ISO8859-7 ISO-8859-7"
+	echo "ISO8859-13 ISO-8859-13"
+	echo "ISO8859-15 ISO-8859-15"
+	echo "eucCN GB2312"
+	echo "eucJP EUC-JP"
+	echo "eucKR EUC-KR"
+	echo "eucTW EUC-TW"
+	echo "BIG5 BIG5"
+	echo "SJIS SHIFT_JIS"
+	;;
+    darwin[56]*)
+	# Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore
+	# localcharset.c falls back to using the full locale name
+	# from the environment variables.
+	echo "C ASCII"
+	for l in en_AU en_CA en_GB en_US la_LN; do
+	  echo "$l.US-ASCII ASCII"
+	done
+	for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
+	         fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT nl_BE \
+	         nl_NL no_NO pt_PT sv_SE; do
+	  echo "$l ISO-8859-1"
+	  echo "$l.ISO8859-1 ISO-8859-1"
+	  echo "$l.ISO8859-15 ISO-8859-15"
+	done
+	for l in la_LN; do
+	  echo "$l.ISO8859-1 ISO-8859-1"
+	  echo "$l.ISO8859-15 ISO-8859-15"
+	done
+	for l in cs_CZ hr_HR hu_HU la_LN pl_PL sl_SI; do
+	  echo "$l.ISO8859-2 ISO-8859-2"
+	done
+	for l in la_LN lt_LT; do
+	  echo "$l.ISO8859-4 ISO-8859-4"
+	done
+	for l in ru_RU; do
+	  echo "$l.KOI8-R KOI8-R"
+	  echo "$l.ISO8859-5 ISO-8859-5"
+	  echo "$l.CP866 CP866"
+	done
+	for l in bg_BG; do
+	  echo "$l.CP1251 CP1251"
+	done
+	echo "uk_UA.KOI8-U KOI8-U"
+	echo "zh_TW.BIG5 BIG5"
+	echo "zh_TW.Big5 BIG5"
+	echo "zh_CN.EUC GB2312"
+	echo "ja_JP.EUC EUC-JP"
+	echo "ja_JP.SJIS SHIFT_JIS"
+	echo "ko_KR.EUC EUC-KR"
+	;;
+    darwin*)
+	# Darwin 7.5 has nl_langinfo(CODESET), but it is useless:
+	# - It returns the empty string when LANG is set to a locale of the
+	#   form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8
+	#   LC_CTYPE file.
+	# - The environment variables LANG, LC_CTYPE, LC_ALL are not set by
+	#   the system; nl_langinfo(CODESET) returns "US-ASCII" in this case.
+	# - The documentation says:
+	#     "... all code that calls BSD system routines should ensure
+	#      that the const *char parameters of these routines are in UTF-8
+	#      encoding. All BSD system functions expect their string
+	#      parameters to be in UTF-8 encoding and nothing else."
+	#   It also says
+	#     "An additional caveat is that string parameters for files,
+	#      paths, and other file-system entities must be in canonical
+	#      UTF-8. In a canonical UTF-8 Unicode string, all decomposable
+	#      characters are decomposed ..."
+	#   but this is not true: You can pass non-decomposed UTF-8 strings
+	#   to file system functions, and it is the OS which will convert
+	#   them to decomposed UTF-8 before accessing the file system.
+	# - The Apple Terminal application displays UTF-8 by default.
+	# - However, other applications are free to use different encodings:
+	#   - xterm uses ISO-8859-1 by default.
+	#   - TextEdit uses MacRoman by default.
+	# We prefer UTF-8 over decomposed UTF-8-MAC because one should
+	# minimize the use of decomposed Unicode. Unfortunately, through the
+	# Darwin file system, decomposed UTF-8 strings are leaked into user
+	# space nevertheless.
+	echo "* UTF-8"
+	;;
+    beos*)
+	# BeOS has a single locale, and it has UTF-8 encoding.
+	echo "* UTF-8"
+	;;
+    msdosdjgpp*)
+	# DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore
+	# localcharset.c falls back to using the full locale name
+	# from the environment variables.
+	echo "#"
+	echo "# The encodings given here may not all be correct."
+	echo "# If you find that the encoding given for your language and"
+	echo "# country is not the one your DOS machine actually uses, just"
+	echo "# correct it in this file, and send a mail to"
+	echo "# Juan Manuel Guerrero <juan.guerrero@gmx.de>"
+	echo "# and Bruno Haible <bruno@clisp.org>."
+	echo "#"
+	echo "C ASCII"
+	# ISO-8859-1 languages
+	echo "ca CP850"
+	echo "ca_ES CP850"
+	echo "da CP865"    # not CP850 ??
+	echo "da_DK CP865" # not CP850 ??
+	echo "de CP850"
+	echo "de_AT CP850"
+	echo "de_CH CP850"
+	echo "de_DE CP850"
+	echo "en CP850"
+	echo "en_AU CP850" # not CP437 ??
+	echo "en_CA CP850"
+	echo "en_GB CP850"
+	echo "en_NZ CP437"
+	echo "en_US CP437"
+	echo "en_ZA CP850" # not CP437 ??
+	echo "es CP850"
+	echo "es_AR CP850"
+	echo "es_BO CP850"
+	echo "es_CL CP850"
+	echo "es_CO CP850"
+	echo "es_CR CP850"
+	echo "es_CU CP850"
+	echo "es_DO CP850"
+	echo "es_EC CP850"
+	echo "es_ES CP850"
+	echo "es_GT CP850"
+	echo "es_HN CP850"
+	echo "es_MX CP850"
+	echo "es_NI CP850"
+	echo "es_PA CP850"
+	echo "es_PY CP850"
+	echo "es_PE CP850"
+	echo "es_SV CP850"
+	echo "es_UY CP850"
+	echo "es_VE CP850"
+	echo "et CP850"
+	echo "et_EE CP850"
+	echo "eu CP850"
+	echo "eu_ES CP850"
+	echo "fi CP850"
+	echo "fi_FI CP850"
+	echo "fr CP850"
+	echo "fr_BE CP850"
+	echo "fr_CA CP850"
+	echo "fr_CH CP850"
+	echo "fr_FR CP850"
+	echo "ga CP850"
+	echo "ga_IE CP850"
+	echo "gd CP850"
+	echo "gd_GB CP850"
+	echo "gl CP850"
+	echo "gl_ES CP850"
+	echo "id CP850"    # not CP437 ??
+	echo "id_ID CP850" # not CP437 ??
+	echo "is CP861"    # not CP850 ??
+	echo "is_IS CP861" # not CP850 ??
+	echo "it CP850"
+	echo "it_CH CP850"
+	echo "it_IT CP850"
+	echo "lt CP775"
+	echo "lt_LT CP775"
+	echo "lv CP775"
+	echo "lv_LV CP775"
+	echo "nb CP865"    # not CP850 ??
+	echo "nb_NO CP865" # not CP850 ??
+	echo "nl CP850"
+	echo "nl_BE CP850"
+	echo "nl_NL CP850"
+	echo "nn CP865"    # not CP850 ??
+	echo "nn_NO CP865" # not CP850 ??
+	echo "no CP865"    # not CP850 ??
+	echo "no_NO CP865" # not CP850 ??
+	echo "pt CP850"
+	echo "pt_BR CP850"
+	echo "pt_PT CP850"
+	echo "sv CP850"
+	echo "sv_SE CP850"
+	# ISO-8859-2 languages
+	echo "cs CP852"
+	echo "cs_CZ CP852"
+	echo "hr CP852"
+	echo "hr_HR CP852"
+	echo "hu CP852"
+	echo "hu_HU CP852"
+	echo "pl CP852"
+	echo "pl_PL CP852"
+	echo "ro CP852"
+	echo "ro_RO CP852"
+	echo "sk CP852"
+	echo "sk_SK CP852"
+	echo "sl CP852"
+	echo "sl_SI CP852"
+	echo "sq CP852"
+	echo "sq_AL CP852"
+	echo "sr CP852"    # CP852 or CP866 or CP855 ??
+	echo "sr_CS CP852" # CP852 or CP866 or CP855 ??
+	echo "sr_YU CP852" # CP852 or CP866 or CP855 ??
+	# ISO-8859-3 languages
+	echo "mt CP850"
+	echo "mt_MT CP850"
+	# ISO-8859-5 languages
+	echo "be CP866"
+	echo "be_BE CP866"
+	echo "bg CP866"    # not CP855 ??
+	echo "bg_BG CP866" # not CP855 ??
+	echo "mk CP866"    # not CP855 ??
+	echo "mk_MK CP866" # not CP855 ??
+	echo "ru CP866"
+	echo "ru_RU CP866"
+	echo "uk CP1125"
+	echo "uk_UA CP1125"
+	# ISO-8859-6 languages
+	echo "ar CP864"
+	echo "ar_AE CP864"
+	echo "ar_DZ CP864"
+	echo "ar_EG CP864"
+	echo "ar_IQ CP864"
+	echo "ar_IR CP864"
+	echo "ar_JO CP864"
+	echo "ar_KW CP864"
+	echo "ar_MA CP864"
+	echo "ar_OM CP864"
+	echo "ar_QA CP864"
+	echo "ar_SA CP864"
+	echo "ar_SY CP864"
+	# ISO-8859-7 languages
+	echo "el CP869"
+	echo "el_GR CP869"
+	# ISO-8859-8 languages
+	echo "he CP862"
+	echo "he_IL CP862"
+	# ISO-8859-9 languages
+	echo "tr CP857"
+	echo "tr_TR CP857"
+	# Japanese
+	echo "ja CP932"
+	echo "ja_JP CP932"
+	# Chinese
+	echo "zh_CN GBK"
+	echo "zh_TW CP950" # not CP938 ??
+	# Korean
+	echo "kr CP949"    # not CP934 ??
+	echo "kr_KR CP949" # not CP934 ??
+	# Thai
+	echo "th CP874"
+	echo "th_TH CP874"
+	# Other
+	echo "eo CP850"
+	echo "eo_EO CP850"
+	;;
+esac
diff --git a/parted-1.8.7/lib/config.h.in b/parted-1.8.7/lib/config.h.in
new file mode 100644
index 0000000..b222d24
--- /dev/null
+++ b/parted-1.8.7/lib/config.h.in
@@ -0,0 +1,604 @@
+/* lib/config.h.in.  Generated from configure.ac by autoheader.  */
+
+/* Define this to an absolute name of <inttypes.h>. */
+#undef ABSOLUTE_INTTYPES_H
+
+/* Define this to an absolute name of <stdint.h>. */
+#undef ABSOLUTE_STDINT_H
+
+/* Define this to an absolute name of <stdlib.h>. */
+#undef ABSOLUTE_STDLIB_H
+
+/* Define this to an absolute name of <string.h>. */
+#undef ABSOLUTE_STRING_H
+
+/* Define this to an absolute name of <unistd.h>. */
+#undef ABSOLUTE_UNISTD_H
+
+/* Define this to an absolute name of <wchar.h>. */
+#undef ABSOLUTE_WCHAR_H
+
+/* Define this to an absolute name of <wctype.h>. */
+#undef ABSOLUTE_WCTYPE_H
+
+/* Define to the number of bits in type 'ptrdiff_t'. */
+#undef BITSIZEOF_PTRDIFF_T
+
+/* Define to the number of bits in type 'sig_atomic_t'. */
+#undef BITSIZEOF_SIG_ATOMIC_T
+
+/* Define to the number of bits in type 'size_t'. */
+#undef BITSIZEOF_SIZE_T
+
+/* Define to the number of bits in type 'wchar_t'. */
+#undef BITSIZEOF_WCHAR_T
+
+/* Define to the number of bits in type 'wint_t'. */
+#undef BITSIZEOF_WINT_T
+
+/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
+   systems. This function is required for `alloca.c' support on those systems.
+   */
+#undef CRAY_STACKSEG_END
+
+/* Define to 1 if using `alloca.c'. */
+#undef C_ALLOCA
+
+/* Enable assertions, etc. */
+#undef DEBUG
+
+/* Probing functionality only */
+#undef DISCOVER_ONLY
+
+/* Define to 1 if // is a file system root distinct from /. */
+#undef DOUBLE_SLASH_IS_DISTINCT_ROOT
+
+/* Lazy linking to fs libs */
+#undef DYNAMIC_LOADING
+
+/* device mapper (libdevmapper) support */
+#undef ENABLE_DEVICE_MAPPER
+
+/* Include file system support. i.e. libparted/fs_... */
+#undef ENABLE_FS
+
+/* Mtrace malloc() debugging */
+#undef ENABLE_MTRACE
+
+/* Define to 1 if translation of program messages to the user's native
+   language is requested. */
+#undef ENABLE_NLS
+
+/* Include PC98 partition tables. (Sometimes excluded to avoid collisions with
+   msdos partition tables */
+#undef ENABLE_PC98
+
+/* Define on systems for which file names may have a so-called `drive letter'
+   prefix, define this to compute the length of that prefix, including the
+   colon. */
+#undef FILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX
+
+/* Define if the backslash character may also serve as a file name component
+   separator. */
+#undef FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR
+
+/* Define if a drive letter prefix denotes a relative path if it is not
+   followed by a file name component separator. */
+#undef FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE
+
+/* Define to 1 when using the gnulib module close-stream. */
+#undef GNULIB_CLOSE_STREAM
+
+/* Define to 1 if you have 'alloca' after including <alloca.h>, a header that
+   may be supplied by this distribution. */
+#undef HAVE_ALLOCA
+
+/* Define HAVE_ALLOCA_H for backward compatibility with older code that
+   includes <alloca.h> only if HAVE_ALLOCA_H is defined. */
+#undef HAVE_ALLOCA_H
+
+/* Define to 1 if you have the `atexit' function. */
+#undef HAVE_ATEXIT
+
+/* Has backtrace support */
+#undef HAVE_BACKTRACE
+
+/* Define to 1 if you have the <bp-sym.h> header file. */
+#undef HAVE_BP_SYM_H
+
+/* Define to 1 if your system has a GNU libc compatible `calloc' function, and
+   to 0 otherwise. */
+#undef HAVE_CALLOC
+
+/* Define to 1 if you have the `canonicalize_file_name' function. */
+#undef HAVE_CANONICALIZE_FILE_NAME
+
+/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
+   CoreFoundation framework. */
+#undef HAVE_CFLOCALECOPYCURRENT
+
+/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
+   the CoreFoundation framework. */
+#undef HAVE_CFPREFERENCESCOPYAPPVALUE
+
+/* Define if the GNU dcgettext() function is already present or preinstalled.
+   */
+#undef HAVE_DCGETTEXT
+
+/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you
+   don't. */
+#undef HAVE_DECL_GETC_UNLOCKED
+
+/* Define to 1 if you have the declaration of `getenv', and to 0 if you don't.
+   */
+#undef HAVE_DECL_GETENV
+
+/* Define to 1 if you have the declaration of `imaxabs', and to 0 if you
+   don't. */
+#undef HAVE_DECL_IMAXABS
+
+/* Define to 1 if you have the declaration of `imaxdiv', and to 0 if you
+   don't. */
+#undef HAVE_DECL_IMAXDIV
+
+/* Define to 1 if you have the declaration of `isblank', and to 0 if you
+   don't. */
+#undef HAVE_DECL_ISBLANK
+
+/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you
+   don't. */
+#undef HAVE_DECL_STRERROR_R
+
+/* Define to 1 if you have the declaration of `strndup', and to 0 if you
+   don't. */
+#undef HAVE_DECL_STRNDUP
+
+/* Define to 1 if you have the declaration of `strnlen', and to 0 if you
+   don't. */
+#undef HAVE_DECL_STRNLEN
+
+/* Define to 1 if you have the declaration of `strtoimax', and to 0 if you
+   don't. */
+#undef HAVE_DECL_STRTOIMAX
+
+/* Define to 1 if you have the declaration of `strtoumax', and to 0 if you
+   don't. */
+#undef HAVE_DECL_STRTOUMAX
+
+/* Define to 1 if you have the declaration of `__fpending', and to 0 if you
+   don't. */
+#undef HAVE_DECL___FPENDING
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define to 1 if you have the <getopt.h> header file. */
+#undef HAVE_GETOPT_H
+
+/* Define to 1 if you have the `getopt_long_only' function. */
+#undef HAVE_GETOPT_LONG_ONLY
+
+/* Define if the GNU gettext() function is already present or preinstalled. */
+#undef HAVE_GETTEXT
+
+/* Define to 1 if you have the `getuid' function. */
+#undef HAVE_GETUID
+
+/* Define if you have the iconv() function and it works. */
+#undef HAVE_ICONV
+
+/* Define to 1 if the compiler supports one of the keywords 'inline',
+   '__inline__', '__inline' and effectively inlines functions marked as such.
+   */
+#undef HAVE_INLINE
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the `iswcntrl' function. */
+#undef HAVE_ISWCNTRL
+
+/* Define to 1 if you have the `iswctype' function. */
+#undef HAVE_ISWCTYPE
+
+/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
+#undef HAVE_LANGINFO_CODESET
+
+/* Define to 1 if you have the `parted' library (-lparted). */
+#undef HAVE_LIBPARTED
+
+/* have readline */
+#undef HAVE_LIBREADLINE
+
+/* Have libreiserfs */
+#undef HAVE_LIBREISERFS
+
+/* Define to 1 if you have the <locale.h> header file. */
+#undef HAVE_LOCALE_H
+
+/* Define to 1 if the system has the type `long long int'. */
+#undef HAVE_LONG_LONG_INT
+
+/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
+   to 0 otherwise. */
+#undef HAVE_MALLOC
+
+/* Define to 1 if you have the `mbrtowc' function. */
+#undef HAVE_MBRTOWC
+
+/* Define to 1 if you have the `mbsinit' function. */
+#undef HAVE_MBSINIT
+
+/* Define to 1 if <wchar.h> declares mbstate_t. */
+#undef HAVE_MBSTATE_T
+
+/* Define to 1 if you have the `memchr' function. */
+#undef HAVE_MEMCHR
+
+/* Define to 1 if you have the `memcpy' function. */
+#undef HAVE_MEMCPY
+
+/* Define to 1 if you have the `memmove' function. */
+#undef HAVE_MEMMOVE
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the `memset' function. */
+#undef HAVE_MEMSET
+
+/* Define to 1 if you have the <readline/history.h> header file. */
+#undef HAVE_READLINE_HISTORY_H
+
+/* Define to 1 if you have the <readline/readline.h> header file. */
+#undef HAVE_READLINE_READLINE_H
+
+/* Define to 1 if your system has a GNU libc compatible `realloc' function,
+   and to 0 otherwise. */
+#undef HAVE_REALLOC
+
+/* Have reiserfs_fs_check() */
+#undef HAVE_REISERFS_FS_CHECK
+
+/* Define to 1 if you have the `rl_completion_matches' function. */
+#undef HAVE_RL_COMPLETION_MATCHES
+
+/* Define to 1 if you have the `rpmatch' function. */
+#undef HAVE_RPMATCH
+
+/* Define to 1 if you have the `sigaction' function. */
+#undef HAVE_SIGACTION
+
+/* Define to 1 if 'sig_atomic_t' is a signed integer type. */
+#undef HAVE_SIGNED_SIG_ATOMIC_T
+
+/* Define to 1 if 'wchar_t' is a signed integer type. */
+#undef HAVE_SIGNED_WCHAR_T
+
+/* Define to 1 if 'wint_t' is a signed integer type. */
+#undef HAVE_SIGNED_WINT_T
+
+/* Define to 1 if stdbool.h conforms to C99. */
+#undef HAVE_STDBOOL_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdio_ext.h> header file. */
+#undef HAVE_STDIO_EXT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the `strcspn' function. */
+#undef HAVE_STRCSPN
+
+/* Define to 1 if you have the `strerror_r' function. */
+#undef HAVE_STRERROR_R
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define if you have the strndup() function and it works. */
+#undef HAVE_STRNDUP
+
+/* Define to 1 if you have the `strtol' function. */
+#undef HAVE_STRTOL
+
+/* Define if struct utimbuf is declared -- usually in <utime.h>. Some systems
+   have utime.h but don't declare the struct anywhere. */
+#undef HAVE_STRUCT_UTIMBUF
+
+/* Define to 1 if you have the <sys/bitypes.h> header file. */
+#undef HAVE_SYS_BITYPES_H
+
+/* Define to 1 if you have the <sys/inttypes.h> header file. */
+#undef HAVE_SYS_INTTYPES_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#undef HAVE_SYS_TIME_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <termcap.h> header file. */
+#undef HAVE_TERMCAP_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to 1 if the system has the type `unsigned long long int'. */
+#undef HAVE_UNSIGNED_LONG_LONG_INT
+
+/* Define if utimes accepts a null argument */
+#undef HAVE_UTIMES_NULL
+
+/* Define to 1 if you have the <utime.h> header file. */
+#undef HAVE_UTIME_H
+
+/* Define to 1 if `utime(file, NULL)' sets file's timestamp to the present. */
+#undef HAVE_UTIME_NULL
+
+/* Define to 1 if you have the <wchar.h> header file. */
+#undef HAVE_WCHAR_H
+
+/* Define to 1 if you have the `wcrtomb' function. */
+#undef HAVE_WCRTOMB
+
+/* Define to 1 if you have the `wcscoll' function. */
+#undef HAVE_WCSCOLL
+
+/* Define to 1 if you have the <wctype.h> header file. */
+#undef HAVE_WCTYPE_H
+
+/* Define if you have the 'wint_t' type. */
+#undef HAVE_WINT_T
+
+/* Define to 1 if the system has the type `_Bool'. */
+#undef HAVE__BOOL
+
+/* Define to 1 if you have the `__fpending' function. */
+#undef HAVE___FPENDING
+
+/* Extract low level special HFS(+) files for debugging purposes when using
+   the "check" command (NOT FOR PACKAGING) */
+#undef HFS_EXTRACT_FS
+
+#if FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR
+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
+#else
+# define ISSLASH(C) ((C) == '/')
+#endif
+
+/* Define to 1 if assertions should be disabled. */
+#undef NDEBUG
+
+/* Define to 1 if your C compiler doesn't accept -c and -o together. */
+#undef NO_MINUS_C_MINUS_O
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* the number of pending output bytes on stream `fp' */
+#undef PENDING_OUTPUT_N_BYTES
+
+/* Define if <inttypes.h> exists and defines unusable PRI* macros. */
+#undef PRI_MACROS_BROKEN
+
+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+   'ptrdiff_t'. */
+#undef PTRDIFF_T_SUFFIX
+
+/* Disable all writing code */
+#undef READ_ONLY
+
+/* Define if rename does not work for source file names with a trailing slash,
+   like the one from SunOS 4.1.1_U1. */
+#undef RENAME_TRAILING_SLASH_BUG
+
+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+   'sig_atomic_t'. */
+#undef SIG_ATOMIC_T_SUFFIX
+
+/* The size of `off_t', as computed by sizeof. */
+#undef SIZEOF_OFF_T
+
+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+   'size_t'. */
+#undef SIZE_T_SUFFIX
+
+/* If using the C implementation of alloca, define if you know the
+   direction of stack growth for your system; otherwise it will be
+   automatically deduced at runtime.
+	STACK_DIRECTION > 0 => grows toward higher addresses
+	STACK_DIRECTION < 0 => grows toward lower addresses
+	STACK_DIRECTION = 0 => direction of growth unknown */
+#undef STACK_DIRECTION
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Define to 1 if strerror_r returns char *. */
+#undef STRERROR_R_CHAR_P
+
+/* Version number of package */
+#undef VERSION
+
+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+   'wchar_t'. */
+#undef WCHAR_T_SUFFIX
+
+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+   'wint_t'. */
+#undef WINT_T_SUFFIX
+
+/* Define to 1 if your processor stores words with the most significant byte
+   first (like Motorola and SPARC, unlike Intel and VAX). */
+#undef WORDS_BIGENDIAN
+
+/* Define to 1 if on AIX 3.
+   System headers sometimes define this.
+   We just want to avoid a redefinition error message.  */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
+#endif
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+#undef _FILE_OFFSET_BITS
+
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif
+
+/* Define for large files, on AIX-style hosts. */
+#undef _LARGE_FILES
+
+/* Define to 1 if on MINIX. */
+#undef _MINIX
+
+/* Define to 2 if the system does not provide POSIX.1 features except with
+   this defined. */
+#undef _POSIX_1_SOURCE
+
+/* Define to 1 if you need to in order for `stat' and other things to work. */
+#undef _POSIX_SOURCE
+
+/* Define if you want regoff_t to be at least as wide POSIX requires. */
+#undef _REGEX_LARGE_OFFSETS
+
+/* Enable extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# undef _POSIX_PTHREAD_SEMANTICS
+#endif
+#ifndef _TANDEM_SOURCE
+# undef _TANDEM_SOURCE
+#endif
+
+/* Define to rpl_ if the getopt replacement functions and variables should be
+   used. */
+#undef __GETOPT_PREFIX
+
+/* Define to rpl_calloc if the replacement function should be used. */
+#undef calloc
+
+/* Define to empty if `const' does not conform to ANSI C. */
+#undef const
+
+/* Define to rpl_free if the replacement function should be used. */
+#undef free
+
+/* A replacement for va_copy, if needed.  */
+#define gl_va_copy(a,b) ((a) = (b))
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+   calls it, or to nothing if 'inline' is not supported under any name.  */
+#ifndef __cplusplus
+#undef inline
+#endif
+
+/* Define to rpl_malloc if the replacement function should be used. */
+#undef malloc
+
+/* Define to a type if <wchar.h> does not define. */
+#undef mbstate_t
+
+/* Define to rpl_memcmp if the replacement function should be used. */
+#undef memcmp
+
+/* Define to rpl_re_comp if the replacement should be used. */
+#undef re_comp
+
+/* Define to rpl_re_compile_fastmap if the replacement should be used. */
+#undef re_compile_fastmap
+
+/* Define to rpl_re_compile_pattern if the replacement should be used. */
+#undef re_compile_pattern
+
+/* Define to rpl_re_exec if the replacement should be used. */
+#undef re_exec
+
+/* Define to rpl_re_match if the replacement should be used. */
+#undef re_match
+
+/* Define to rpl_re_match_2 if the replacement should be used. */
+#undef re_match_2
+
+/* Define to rpl_re_search if the replacement should be used. */
+#undef re_search
+
+/* Define to rpl_re_search_2 if the replacement should be used. */
+#undef re_search_2
+
+/* Define to rpl_re_set_registers if the replacement should be used. */
+#undef re_set_registers
+
+/* Define to rpl_re_set_syntax if the replacement should be used. */
+#undef re_set_syntax
+
+/* Define to rpl_re_syntax_options if the replacement should be used. */
+#undef re_syntax_options
+
+/* Define to rpl_realloc if the replacement function should be used. */
+#undef realloc
+
+/* Define to rpl_regcomp if the replacement should be used. */
+#undef regcomp
+
+/* Define to rpl_regerror if the replacement should be used. */
+#undef regerror
+
+/* Define to rpl_regexec if the replacement should be used. */
+#undef regexec
+
+/* Define to rpl_regfree if the replacement should be used. */
+#undef regfree
+
+/* Define to rpl_rename if the replacement function should be used. */
+#undef rename
+
+/* Define to equivalent of C99 restrict keyword, or to nothing if this is not
+   supported. Do not define if restrict is supported directly. */
+#undef restrict
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+#undef size_t
+
+/* Define as a signed type of the same size as size_t. */
+#undef ssize_t
+
+/* Define to rpl_strnlen if the replacement function should be used. */
+#undef strnlen
+
+/* Define to rpl_strtod if the replacement function should be used. */
+#undef strtod
+
+/* Define to rpl_utime if the replacement function should be used. */
+#undef utime
+
+/* Define as a macro for copying va_list variables. */
+#undef va_copy
diff --git a/parted-1.8.7/lib/dirname.c b/parted-1.8.7/lib/dirname.c
new file mode 100644
index 0000000..16552c6
--- /dev/null
+++ b/parted-1.8.7/lib/dirname.c
@@ -0,0 +1,85 @@
+/* dirname.c -- return all but the last element in a file name
+
+   Copyright (C) 1990, 1998, 2000, 2001, 2003, 2004, 2005, 2006 Free Software
+   Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include <config.h>
+
+#include "dirname.h"
+
+#include <string.h>
+#include "xalloc.h"
+
+/* Return the length of the prefix of FILE that will be used by
+   dir_name.  If FILE is in the working directory, this returns zero
+   even though `dir_name (FILE)' will return ".".  Works properly even
+   if there are trailing slashes (by effectively ignoring them).  */
+
+size_t
+dir_len (char const *file)
+{
+  size_t prefix_length = FILE_SYSTEM_PREFIX_LEN (file);
+  size_t length;
+
+  /* Advance prefix_length beyond important leading slashes.  */
+  prefix_length += (prefix_length != 0
+		    ? (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE
+		       && ISSLASH (file[prefix_length]))
+		    : (ISSLASH (file[0])
+		       ? ((DOUBLE_SLASH_IS_DISTINCT_ROOT
+			   && ISSLASH (file[1]) && ! ISSLASH (file[2])
+			   ? 2 : 1))
+		       : 0));
+
+  /* Strip the basename and any redundant slashes before it.  */
+  for (length = last_component (file) - file;
+       prefix_length < length; length--)
+    if (! ISSLASH (file[length - 1]))
+      break;
+  return length;
+}
+
+
+/* In general, we can't use the builtin `dirname' function if available,
+   since it has different meanings in different environments.
+   In some environments the builtin `dirname' modifies its argument.
+
+   Return the leading directories part of FILE, allocated with xmalloc.
+   Works properly even if there are trailing slashes (by effectively
+   ignoring them).  Unlike POSIX dirname(), FILE cannot be NULL.
+
+   If lstat (FILE) would succeed, then { chdir (dir_name (FILE));
+   lstat (base_name (FILE)); } will access the same file.  Likewise,
+   if the sequence { chdir (dir_name (FILE));
+   rename (base_name (FILE), "foo"); } succeeds, you have renamed FILE
+   to "foo" in the same directory FILE was in.  */
+
+char *
+dir_name (char const *file)
+{
+  size_t length = dir_len (file);
+  bool append_dot = (length == 0
+		     || (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE
+			 && length == FILE_SYSTEM_PREFIX_LEN (file)
+			 && file[2] != '\0' && ! ISSLASH (file[2])));
+  char *dir = xmalloc (length + append_dot + 1);
+  memcpy (dir, file, length);
+  if (append_dot)
+    dir[length++] = '.';
+  dir[length] = '\0';
+  return dir;
+}
diff --git a/parted-1.8.7/lib/dirname.h b/parted-1.8.7/lib/dirname.h
new file mode 100644
index 0000000..91e7ed3
--- /dev/null
+++ b/parted-1.8.7/lib/dirname.h
@@ -0,0 +1,70 @@
+/*  Take file names apart into directory and base names.
+
+    Copyright (C) 1998, 2001, 2003-2006 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2, or (at your option)
+    any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software Foundation,
+    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef DIRNAME_H_
+# define DIRNAME_H_ 1
+
+# include <stdbool.h>
+# include <stddef.h>
+
+# ifndef DIRECTORY_SEPARATOR
+#  define DIRECTORY_SEPARATOR '/'
+# endif
+
+# ifndef ISSLASH
+#  define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
+# endif
+
+# ifndef FILE_SYSTEM_PREFIX_LEN
+#  if FILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX
+    /* This internal macro assumes ASCII, but all hosts that support drive
+       letters use ASCII.  */
+#   define _IS_DRIVE_LETTER(c) (((unsigned int) (c) | ('a' - 'A')) - 'a' \
+				<= 'z' - 'a')
+#   define FILE_SYSTEM_PREFIX_LEN(Filename) \
+	   (_IS_DRIVE_LETTER ((Filename)[0]) && (Filename)[1] == ':' ? 2 : 0)
+#  else
+#   define FILE_SYSTEM_PREFIX_LEN(Filename) 0
+#  endif
+# endif
+
+# ifndef FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE
+#  define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 0
+# endif
+
+# ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT
+#  define DOUBLE_SLASH_IS_DISTINCT_ROOT 0
+# endif
+
+# if FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE
+#  define IS_ABSOLUTE_FILE_NAME(F) ISSLASH ((F)[FILE_SYSTEM_PREFIX_LEN (F)])
+# else
+#  define IS_ABSOLUTE_FILE_NAME(F) \
+	  (ISSLASH ((F)[0]) || 0 < FILE_SYSTEM_PREFIX_LEN (F))
+# endif
+# define IS_RELATIVE_FILE_NAME(F) (! IS_ABSOLUTE_FILE_NAME (F))
+
+char *base_name (char const *file);
+char *dir_name (char const *file);
+size_t base_len (char const *file);
+size_t dir_len (char const *file);
+char *last_component (char const *file);
+
+bool strip_trailing_slashes (char *file);
+
+#endif /* not DIRNAME_H_ */
diff --git a/parted-1.8.7/lib/error.c b/parted-1.8.7/lib/error.c
new file mode 100644
index 0000000..cf86343
--- /dev/null
+++ b/parted-1.8.7/lib/error.c
@@ -0,0 +1,338 @@
+/* Error handler for noninteractive utilities
+   Copyright (C) 1990-1998, 2000-2005, 2006 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Written by David MacKenzie <djm@gnu.ai.mit.edu>.  */
+
+#if !_LIBC
+# include <config.h>
+#endif
+
+#include "error.h"
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#if !_LIBC && ENABLE_NLS
+# include "gettext.h"
+#endif
+
+#ifdef _LIBC
+# include <libintl.h>
+# include <stdbool.h>
+# include <stdint.h>
+# include <wchar.h>
+# define mbsrtowcs __mbsrtowcs
+#endif
+
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
+
+#ifndef _
+# define _(String) String
+#endif
+
+/* If NULL, error will flush stdout, then print on stderr the program
+   name, a colon and a space.  Otherwise, error will call this
+   function without parameters instead.  */
+void (*error_print_progname) (void);
+
+/* This variable is incremented each time `error' is called.  */
+unsigned int error_message_count;
+
+#ifdef _LIBC
+/* In the GNU C library, there is a predefined variable for this.  */
+
+# define program_name program_invocation_name
+# include <errno.h>
+# include <limits.h>
+# include <libio/libioP.h>
+
+/* In GNU libc we want do not want to use the common name `error' directly.
+   Instead make it a weak alias.  */
+extern void __error (int status, int errnum, const char *message, ...)
+     __attribute__ ((__format__ (__printf__, 3, 4)));
+extern void __error_at_line (int status, int errnum, const char *file_name,
+			     unsigned int line_number, const char *message,
+			     ...)
+     __attribute__ ((__format__ (__printf__, 5, 6)));;
+# define error __error
+# define error_at_line __error_at_line
+
+# include <libio/iolibio.h>
+# define fflush(s) INTUSE(_IO_fflush) (s)
+# undef putc
+# define putc(c, fp) INTUSE(_IO_putc) (c, fp)
+
+# include <bits/libc-lock.h>
+
+#else /* not _LIBC */
+
+# if !HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P
+#  ifndef HAVE_DECL_STRERROR_R
+"this configure-time declaration test was not run"
+#  endif
+char *strerror_r ();
+# endif
+
+/* The calling program should define program_name and set it to the
+   name of the executing program.  */
+extern char *program_name;
+
+# if HAVE_STRERROR_R || defined strerror_r
+#  define __strerror_r strerror_r
+# endif	/* HAVE_STRERROR_R || defined strerror_r */
+#endif	/* not _LIBC */
+
+static void
+print_errno_message (int errnum)
+{
+  char const *s;
+
+#if defined HAVE_STRERROR_R || _LIBC
+  char errbuf[1024];
+# if STRERROR_R_CHAR_P || _LIBC
+  s = __strerror_r (errnum, errbuf, sizeof errbuf);
+# else
+  if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0)
+    s = errbuf;
+  else
+    s = 0;
+# endif
+#else
+  s = strerror (errnum);
+#endif
+
+#if !_LIBC
+  if (! s)
+    s = _("Unknown system error");
+#endif
+
+#if _LIBC
+  __fxprintf (NULL, ": %s", s);
+#else
+  fprintf (stderr, ": %s", s);
+#endif
+}
+
+static void
+error_tail (int status, int errnum, const char *message, va_list args)
+{
+#if _LIBC
+  if (_IO_fwide (stderr, 0) > 0)
+    {
+# define ALLOCA_LIMIT 2000
+      size_t len = strlen (message) + 1;
+      wchar_t *wmessage = NULL;
+      mbstate_t st;
+      size_t res;
+      const char *tmp;
+      bool use_malloc = false;
+
+      while (1)
+	{
+	  if (__libc_use_alloca (len * sizeof (wchar_t)))
+	    wmessage = (wchar_t *) alloca (len * sizeof (wchar_t));
+	  else
+	    {
+	      if (!use_malloc)
+		wmessage = NULL;
+
+	      wchar_t *p = (wchar_t *) realloc (wmessage,
+						len * sizeof (wchar_t));
+	      if (p == NULL)
+		{
+		  free (wmessage);
+		  fputws_unlocked (L"out of memory\n", stderr);
+		  return;
+		}
+	      wmessage = p;
+	      use_malloc = true;
+	    }
+
+	  memset (&st, '\0', sizeof (st));
+	  tmp = message;
+
+	  res = mbsrtowcs (wmessage, &tmp, len, &st);
+	  if (res != len)
+	    break;
+
+	  if (__builtin_expect (len >= SIZE_MAX / 2, 0))
+	    {
+	      /* This really should not happen if everything is fine.  */
+	      res = (size_t) -1;
+	      break;
+	    }
+
+	  len *= 2;
+	}
+
+      if (res == (size_t) -1)
+	{
+	  /* The string cannot be converted.  */
+	  if (use_malloc)
+	    {
+	      free (wmessage);
+	      use_malloc = false;
+	    }
+	  wmessage = (wchar_t *) L"???";
+	}
+
+      __vfwprintf (stderr, wmessage, args);
+
+      if (use_malloc)
+	free (wmessage);
+    }
+  else
+#endif
+    vfprintf (stderr, message, args);
+  va_end (args);
+
+  ++error_message_count;
+  if (errnum)
+    print_errno_message (errnum);
+#if _LIBC
+  __fxprintf (NULL, "\n");
+#else
+  putc ('\n', stderr);
+#endif
+  fflush (stderr);
+  if (status)
+    exit (status);
+}
+
+
+/* Print the program name and error message MESSAGE, which is a printf-style
+   format string with optional args.
+   If ERRNUM is nonzero, print its corresponding system error message.
+   Exit with status STATUS if it is nonzero.  */
+void
+error (int status, int errnum, const char *message, ...)
+{
+  va_list args;
+
+#if defined _LIBC && defined __libc_ptf_call
+  /* We do not want this call to be cut short by a thread
+     cancellation.  Therefore disable cancellation for now.  */
+  int state = PTHREAD_CANCEL_ENABLE;
+  __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state),
+		   0);
+#endif
+
+  fflush (stdout);
+#ifdef _LIBC
+  _IO_flockfile (stderr);
+#endif
+  if (error_print_progname)
+    (*error_print_progname) ();
+  else
+    {
+#if _LIBC
+      __fxprintf (NULL, "%s: ", program_name);
+#else
+      fprintf (stderr, "%s: ", program_name);
+#endif
+    }
+
+  va_start (args, message);
+  error_tail (status, errnum, message, args);
+
+#ifdef _LIBC
+  _IO_funlockfile (stderr);
+# ifdef __libc_ptf_call
+  __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0);
+# endif
+#endif
+}
+
+/* Sometimes we want to have at most one error per line.  This
+   variable controls whether this mode is selected or not.  */
+int error_one_per_line;
+
+void
+error_at_line (int status, int errnum, const char *file_name,
+	       unsigned int line_number, const char *message, ...)
+{
+  va_list args;
+
+  if (error_one_per_line)
+    {
+      static const char *old_file_name;
+      static unsigned int old_line_number;
+
+      if (old_line_number == line_number
+	  && (file_name == old_file_name
+	      || strcmp (old_file_name, file_name) == 0))
+	/* Simply return and print nothing.  */
+	return;
+
+      old_file_name = file_name;
+      old_line_number = line_number;
+    }
+
+#if defined _LIBC && defined __libc_ptf_call
+  /* We do not want this call to be cut short by a thread
+     cancellation.  Therefore disable cancellation for now.  */
+  int state = PTHREAD_CANCEL_ENABLE;
+  __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state),
+		   0);
+#endif
+
+  fflush (stdout);
+#ifdef _LIBC
+  _IO_flockfile (stderr);
+#endif
+  if (error_print_progname)
+    (*error_print_progname) ();
+  else
+    {
+#if _LIBC
+      __fxprintf (NULL, "%s:", program_name);
+#else
+      fprintf (stderr, "%s:", program_name);
+#endif
+    }
+
+#if _LIBC
+  __fxprintf (NULL, file_name != NULL ? "%s:%d: " : " ",
+	      file_name, line_number);
+#else
+  fprintf (stderr, file_name != NULL ? "%s:%d: " : " ",
+	   file_name, line_number);
+#endif
+
+  va_start (args, message);
+  error_tail (status, errnum, message, args);
+
+#ifdef _LIBC
+  _IO_funlockfile (stderr);
+# ifdef __libc_ptf_call
+  __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0);
+# endif
+#endif
+}
+
+#ifdef _LIBC
+/* Make the weak alias.  */
+# undef error
+# undef error_at_line
+weak_alias (__error, error)
+weak_alias (__error_at_line, error_at_line)
+#endif
diff --git a/parted-1.8.7/lib/error.h b/parted-1.8.7/lib/error.h
new file mode 100644
index 0000000..5a5f247
--- /dev/null
+++ b/parted-1.8.7/lib/error.h
@@ -0,0 +1,66 @@
+/* Declaration for error-reporting function
+   Copyright (C) 1995, 1996, 1997, 2003, 2006 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef _ERROR_H
+#define _ERROR_H 1
+
+#ifndef __attribute__
+/* This feature is available in gcc versions 2.5 and later.  */
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__
+#  define __attribute__(Spec) /* empty */
+# endif
+/* The __-protected variants of `format' and `printf' attributes
+   are accepted by gcc versions 2.6.4 (effectively 2.7) and later.  */
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
+#  define __format__ format
+#  define __printf__ printf
+# endif
+#endif
+
+#ifdef	__cplusplus
+extern "C" {
+#endif
+
+/* Print a message with `fprintf (stderr, FORMAT, ...)';
+   if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
+   If STATUS is nonzero, terminate the program with `exit (STATUS)'.  */
+
+extern void error (int __status, int __errnum, const char *__format, ...)
+     __attribute__ ((__format__ (__printf__, 3, 4)));
+
+extern void error_at_line (int __status, int __errnum, const char *__fname,
+			   unsigned int __lineno, const char *__format, ...)
+     __attribute__ ((__format__ (__printf__, 5, 6)));
+
+/* If NULL, error will flush stdout, then print on stderr the program
+   name, a colon and a space.  Otherwise, error will call this
+   function without parameters instead.  */
+extern void (*error_print_progname) (void);
+
+/* This variable is incremented each time `error' is called.  */
+extern unsigned int error_message_count;
+
+/* Sometimes we want to have at most one error per line.  This
+   variable controls whether this mode is selected or not.  */
+extern int error_one_per_line;
+
+#ifdef	__cplusplus
+}
+#endif
+
+#endif /* error.h */
diff --git a/parted-1.8.7/lib/exitfail.c b/parted-1.8.7/lib/exitfail.c
new file mode 100644
index 0000000..373d325
--- /dev/null
+++ b/parted-1.8.7/lib/exitfail.c
@@ -0,0 +1,26 @@
+/* Failure exit status
+
+   Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; see the file COPYING.
+   If not, write to the Free Software Foundation,
+   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include <config.h>
+
+#include "exitfail.h"
+
+#include <stdlib.h>
+
+int volatile exit_failure = EXIT_FAILURE;
diff --git a/parted-1.8.7/lib/exitfail.h b/parted-1.8.7/lib/exitfail.h
new file mode 100644
index 0000000..e46cf9c
--- /dev/null
+++ b/parted-1.8.7/lib/exitfail.h
@@ -0,0 +1,20 @@
+/* Failure exit status
+
+   Copyright (C) 2002 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; see the file COPYING.
+   If not, write to the Free Software Foundation,
+   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+extern int volatile exit_failure;
diff --git a/parted-1.8.7/lib/free.c b/parted-1.8.7/lib/free.c
new file mode 100644
index 0000000..73a125a
--- /dev/null
+++ b/parted-1.8.7/lib/free.c
@@ -0,0 +1,31 @@
+/* Work around incompatibility on older systems where free (NULL) fails.
+
+   Copyright (C) 2003, 2006 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* written by Paul Eggert */
+
+#include <config.h>
+#undef free
+
+#include <stdlib.h>
+
+void
+rpl_free (void *p)
+{
+  if (p)
+    free (p);
+}
diff --git a/parted-1.8.7/lib/full-write.c b/parted-1.8.7/lib/full-write.c
new file mode 100644
index 0000000..cc16872
--- /dev/null
+++ b/parted-1.8.7/lib/full-write.c
@@ -0,0 +1,81 @@
+/* An interface to read and write that retries (if necessary) until complete.
+
+   Copyright (C) 1993, 1994, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+   2004, 2005, 2006 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include <config.h>
+
+/* Specification.  */
+#ifdef FULL_READ
+# include "full-read.h"
+#else
+# include "full-write.h"
+#endif
+
+#include <errno.h>
+
+#ifdef FULL_READ
+# include "safe-read.h"
+# define safe_rw safe_read
+# define full_rw full_read
+# undef const
+# define const /* empty */
+#else
+# include "safe-write.h"
+# define safe_rw safe_write
+# define full_rw full_write
+#endif
+
+#ifdef FULL_READ
+/* Set errno to zero upon EOF.  */
+# define ZERO_BYTE_TRANSFER_ERRNO 0
+#else
+/* Some buggy drivers return 0 when one tries to write beyond
+   a device's end.  (Example: Linux 1.2.13 on /dev/fd0.)
+   Set errno to ENOSPC so they get a sensible diagnostic.  */
+# define ZERO_BYTE_TRANSFER_ERRNO ENOSPC
+#endif
+
+/* Write(read) COUNT bytes at BUF to(from) descriptor FD, retrying if
+   interrupted or if a partial write(read) occurs.  Return the number
+   of bytes transferred.
+   When writing, set errno if fewer than COUNT bytes are written.
+   When reading, if fewer than COUNT bytes are read, you must examine
+   errno to distinguish failure from EOF (errno == 0).  */
+size_t
+full_rw (int fd, const void *buf, size_t count)
+{
+  size_t total = 0;
+  const char *ptr = (const char *) buf;
+
+  while (count > 0)
+    {
+      size_t n_rw = safe_rw (fd, ptr, count);
+      if (n_rw == (size_t) -1)
+	break;
+      if (n_rw == 0)
+	{
+	  errno = ZERO_BYTE_TRANSFER_ERRNO;
+	  break;
+	}
+      total += n_rw;
+      ptr += n_rw;
+      count -= n_rw;
+    }
+
+  return total;
+}
diff --git a/parted-1.8.7/lib/full-write.h b/parted-1.8.7/lib/full-write.h
new file mode 100644
index 0000000..d20d2fe
--- /dev/null
+++ b/parted-1.8.7/lib/full-write.h
@@ -0,0 +1,35 @@
+/* An interface to write() that writes all it is asked to write.
+
+   Copyright (C) 2002-2003 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include <stddef.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Write COUNT bytes at BUF to descriptor FD, retrying if interrupted
+   or if partial writes occur.  Return the number of bytes successfully
+   written, setting errno if that is less than COUNT.  */
+extern size_t full_write (int fd, const void *buf, size_t count);
+
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/parted-1.8.7/lib/getopt.c b/parted-1.8.7/lib/getopt.c
new file mode 100644
index 0000000..3580ad8
--- /dev/null
+++ b/parted-1.8.7/lib/getopt.c
@@ -0,0 +1,1191 @@
+/* Getopt for GNU.
+   NOTE: getopt is now part of the C library, so if you don't know what
+   "Keep this file name-space clean" means, talk to drepper@gnu.org
+   before changing it!
+   Copyright (C) 1987,88,89,90,91,92,93,94,95,96,98,99,2000,2001,2002,2003,2004,2006
+	Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef _LIBC
+# include <config.h>
+#endif
+
+#include "getopt.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#ifdef __VMS
+# include <unixlib.h>
+#endif
+
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "gettext.h"
+# define _(msgid) gettext (msgid)
+#endif
+
+#if defined _LIBC && defined USE_IN_LIBIO
+# include <wchar.h>
+#endif
+
+#ifndef attribute_hidden
+# define attribute_hidden
+#endif
+
+/* Unlike standard Unix `getopt', functions like `getopt_long'
+   let the user intersperse the options with the other arguments.
+
+   As `getopt_long' works, it permutes the elements of ARGV so that,
+   when it is done, all the options precede everything else.  Thus
+   all application programs are extended to handle flexible argument order.
+
+   Using `getopt' or setting the environment variable POSIXLY_CORRECT
+   disables permutation.
+   Then the application's behavior is completely standard.
+
+   GNU application programs can use a third alternative mode in which
+   they can distinguish the relative order of options and other arguments.  */
+
+#include "getopt_int.h"
+
+/* For communication from `getopt' to the caller.
+   When `getopt' finds an option that takes an argument,
+   the argument value is returned here.
+   Also, when `ordering' is RETURN_IN_ORDER,
+   each non-option ARGV-element is returned here.  */
+
+char *optarg;
+
+/* Index in ARGV of the next element to be scanned.
+   This is used for communication to and from the caller
+   and for communication between successive calls to `getopt'.
+
+   On entry to `getopt', zero means this is the first call; initialize.
+
+   When `getopt' returns -1, this is the index of the first of the
+   non-option elements that the caller should itself scan.
+
+   Otherwise, `optind' communicates from one call to the next
+   how much of ARGV has been scanned so far.  */
+
+/* 1003.2 says this must be 1 before any call.  */
+int optind = 1;
+
+/* Callers store zero here to inhibit the error message
+   for unrecognized options.  */
+
+int opterr = 1;
+
+/* Set to an option character which was unrecognized.
+   This must be initialized on some systems to avoid linking in the
+   system's own getopt implementation.  */
+
+int optopt = '?';
+
+/* Keep a global copy of all internal members of getopt_data.  */
+
+static struct _getopt_data getopt_data;
+
+
+#if defined HAVE_DECL_GETENV && !HAVE_DECL_GETENV
+extern char *getenv ();
+#endif
+
+#ifdef _LIBC
+/* Stored original parameters.
+   XXX This is no good solution.  We should rather copy the args so
+   that we can compare them later.  But we must not use malloc(3).  */
+extern int __libc_argc;
+extern char **__libc_argv;
+
+/* Bash 2.0 gives us an environment variable containing flags
+   indicating ARGV elements that should not be considered arguments.  */
+
+# ifdef USE_NONOPTION_FLAGS
+/* Defined in getopt_init.c  */
+extern char *__getopt_nonoption_flags;
+# endif
+
+# ifdef USE_NONOPTION_FLAGS
+#  define SWAP_FLAGS(ch1, ch2) \
+  if (d->__nonoption_flags_len > 0)					      \
+    {									      \
+      char __tmp = __getopt_nonoption_flags[ch1];			      \
+      __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2];	      \
+      __getopt_nonoption_flags[ch2] = __tmp;				      \
+    }
+# else
+#  define SWAP_FLAGS(ch1, ch2)
+# endif
+#else	/* !_LIBC */
+# define SWAP_FLAGS(ch1, ch2)
+#endif	/* _LIBC */
+
+/* Exchange two adjacent subsequences of ARGV.
+   One subsequence is elements [first_nonopt,last_nonopt)
+   which contains all the non-options that have been skipped so far.
+   The other is elements [last_nonopt,optind), which contains all
+   the options processed since those non-options were skipped.
+
+   `first_nonopt' and `last_nonopt' are relocated so that they describe
+   the new indices of the non-options in ARGV after they are moved.  */
+
+static void
+exchange (char **argv, struct _getopt_data *d)
+{
+  int bottom = d->__first_nonopt;
+  int middle = d->__last_nonopt;
+  int top = d->optind;
+  char *tem;
+
+  /* Exchange the shorter segment with the far end of the longer segment.
+     That puts the shorter segment into the right place.
+     It leaves the longer segment in the right place overall,
+     but it consists of two parts that need to be swapped next.  */
+
+#if defined _LIBC && defined USE_NONOPTION_FLAGS
+  /* First make sure the handling of the `__getopt_nonoption_flags'
+     string can work normally.  Our top argument must be in the range
+     of the string.  */
+  if (d->__nonoption_flags_len > 0 && top >= d->__nonoption_flags_max_len)
+    {
+      /* We must extend the array.  The user plays games with us and
+	 presents new arguments.  */
+      char *new_str = malloc (top + 1);
+      if (new_str == NULL)
+	d->__nonoption_flags_len = d->__nonoption_flags_max_len = 0;
+      else
+	{
+	  memset (__mempcpy (new_str, __getopt_nonoption_flags,
+			     d->__nonoption_flags_max_len),
+		  '\0', top + 1 - d->__nonoption_flags_max_len);
+	  d->__nonoption_flags_max_len = top + 1;
+	  __getopt_nonoption_flags = new_str;
+	}
+    }
+#endif
+
+  while (top > middle && middle > bottom)
+    {
+      if (top - middle > middle - bottom)
+	{
+	  /* Bottom segment is the short one.  */
+	  int len = middle - bottom;
+	  register int i;
+
+	  /* Swap it with the top part of the top segment.  */
+	  for (i = 0; i < len; i++)
+	    {
+	      tem = argv[bottom + i];
+	      argv[bottom + i] = argv[top - (middle - bottom) + i];
+	      argv[top - (middle - bottom) + i] = tem;
+	      SWAP_FLAGS (bottom + i, top - (middle - bottom) + i);
+	    }
+	  /* Exclude the moved bottom segment from further swapping.  */
+	  top -= len;
+	}
+      else
+	{
+	  /* Top segment is the short one.  */
+	  int len = top - middle;
+	  register int i;
+
+	  /* Swap it with the bottom part of the bottom segment.  */
+	  for (i = 0; i < len; i++)
+	    {
+	      tem = argv[bottom + i];
+	      argv[bottom + i] = argv[middle + i];
+	      argv[middle + i] = tem;
+	      SWAP_FLAGS (bottom + i, middle + i);
+	    }
+	  /* Exclude the moved top segment from further swapping.  */
+	  bottom += len;
+	}
+    }
+
+  /* Update records for the slots the non-options now occupy.  */
+
+  d->__first_nonopt += (d->optind - d->__last_nonopt);
+  d->__last_nonopt = d->optind;
+}
+
+/* Initialize the internal data when the first call is made.  */
+
+static const char *
+_getopt_initialize (int argc, char **argv, const char *optstring,
+		    int posixly_correct, struct _getopt_data *d)
+{
+  /* Start processing options with ARGV-element 1 (since ARGV-element 0
+     is the program name); the sequence of previously skipped
+     non-option ARGV-elements is empty.  */
+
+  d->__first_nonopt = d->__last_nonopt = d->optind;
+
+  d->__nextchar = NULL;
+
+  d->__posixly_correct = posixly_correct || !!getenv ("POSIXLY_CORRECT");
+
+  /* Determine how to handle the ordering of options and nonoptions.  */
+
+  if (optstring[0] == '-')
+    {
+      d->__ordering = RETURN_IN_ORDER;
+      ++optstring;
+    }
+  else if (optstring[0] == '+')
+    {
+      d->__ordering = REQUIRE_ORDER;
+      ++optstring;
+    }
+  else if (d->__posixly_correct)
+    d->__ordering = REQUIRE_ORDER;
+  else
+    d->__ordering = PERMUTE;
+
+#if defined _LIBC && defined USE_NONOPTION_FLAGS
+  if (!d->__posixly_correct
+      && argc == __libc_argc && argv == __libc_argv)
+    {
+      if (d->__nonoption_flags_max_len == 0)
+	{
+	  if (__getopt_nonoption_flags == NULL
+	      || __getopt_nonoption_flags[0] == '\0')
+	    d->__nonoption_flags_max_len = -1;
+	  else
+	    {
+	      const char *orig_str = __getopt_nonoption_flags;
+	      int len = d->__nonoption_flags_max_len = strlen (orig_str);
+	      if (d->__nonoption_flags_max_len < argc)
+		d->__nonoption_flags_max_len = argc;
+	      __getopt_nonoption_flags =
+		(char *) malloc (d->__nonoption_flags_max_len);
+	      if (__getopt_nonoption_flags == NULL)
+		d->__nonoption_flags_max_len = -1;
+	      else
+		memset (__mempcpy (__getopt_nonoption_flags, orig_str, len),
+			'\0', d->__nonoption_flags_max_len - len);
+	    }
+	}
+      d->__nonoption_flags_len = d->__nonoption_flags_max_len;
+    }
+  else
+    d->__nonoption_flags_len = 0;
+#endif
+
+  return optstring;
+}
+
+/* Scan elements of ARGV (whose length is ARGC) for option characters
+   given in OPTSTRING.
+
+   If an element of ARGV starts with '-', and is not exactly "-" or "--",
+   then it is an option element.  The characters of this element
+   (aside from the initial '-') are option characters.  If `getopt'
+   is called repeatedly, it returns successively each of the option characters
+   from each of the option elements.
+
+   If `getopt' finds another option character, it returns that character,
+   updating `optind' and `nextchar' so that the next call to `getopt' can
+   resume the scan with the following option character or ARGV-element.
+
+   If there are no more option characters, `getopt' returns -1.
+   Then `optind' is the index in ARGV of the first ARGV-element
+   that is not an option.  (The ARGV-elements have been permuted
+   so that those that are not options now come last.)
+
+   OPTSTRING is a string containing the legitimate option characters.
+   If an option character is seen that is not listed in OPTSTRING,
+   return '?' after printing an error message.  If you set `opterr' to
+   zero, the error message is suppressed but we still return '?'.
+
+   If a char in OPTSTRING is followed by a colon, that means it wants an arg,
+   so the following text in the same ARGV-element, or the text of the following
+   ARGV-element, is returned in `optarg'.  Two colons mean an option that
+   wants an optional arg; if there is text in the current ARGV-element,
+   it is returned in `optarg', otherwise `optarg' is set to zero.
+
+   If OPTSTRING starts with `-' or `+', it requests different methods of
+   handling the non-option ARGV-elements.
+   See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above.
+
+   Long-named options begin with `--' instead of `-'.
+   Their names may be abbreviated as long as the abbreviation is unique
+   or is an exact match for some defined option.  If they have an
+   argument, it follows the option name in the same ARGV-element, separated
+   from the option name by a `=', or else the in next ARGV-element.
+   When `getopt' finds a long-named option, it returns 0 if that option's
+   `flag' field is nonzero, the value of the option's `val' field
+   if the `flag' field is zero.
+
+   LONGOPTS is a vector of `struct option' terminated by an
+   element containing a name which is zero.
+
+   LONGIND returns the index in LONGOPT of the long-named option found.
+   It is only valid when a long-named option has been found by the most
+   recent call.
+
+   If LONG_ONLY is nonzero, '-' as well as '--' can introduce
+   long-named options.
+
+   If POSIXLY_CORRECT is nonzero, behave as if the POSIXLY_CORRECT
+   environment variable were set.  */
+
+int
+_getopt_internal_r (int argc, char **argv, const char *optstring,
+		    const struct option *longopts, int *longind,
+		    int long_only, int posixly_correct, struct _getopt_data *d)
+{
+  int print_errors = d->opterr;
+  if (optstring[0] == ':')
+    print_errors = 0;
+
+  if (argc < 1)
+    return -1;
+
+  d->optarg = NULL;
+
+  if (d->optind == 0 || !d->__initialized)
+    {
+      if (d->optind == 0)
+	d->optind = 1;	/* Don't scan ARGV[0], the program name.  */
+      optstring = _getopt_initialize (argc, argv, optstring,
+				      posixly_correct, d);
+      d->__initialized = 1;
+    }
+
+  /* Test whether ARGV[optind] points to a non-option argument.
+     Either it does not have option syntax, or there is an environment flag
+     from the shell indicating it is not an option.  The later information
+     is only used when the used in the GNU libc.  */
+#if defined _LIBC && defined USE_NONOPTION_FLAGS
+# define NONOPTION_P (argv[d->optind][0] != '-' || argv[d->optind][1] == '\0' \
+		      || (d->optind < d->__nonoption_flags_len		      \
+			  && __getopt_nonoption_flags[d->optind] == '1'))
+#else
+# define NONOPTION_P (argv[d->optind][0] != '-' || argv[d->optind][1] == '\0')
+#endif
+
+  if (d->__nextchar == NULL || *d->__nextchar == '\0')
+    {
+      /* Advance to the next ARGV-element.  */
+
+      /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been
+	 moved back by the user (who may also have changed the arguments).  */
+      if (d->__last_nonopt > d->optind)
+	d->__last_nonopt = d->optind;
+      if (d->__first_nonopt > d->optind)
+	d->__first_nonopt = d->optind;
+
+      if (d->__ordering == PERMUTE)
+	{
+	  /* If we have just processed some options following some non-options,
+	     exchange them so that the options come first.  */
+
+	  if (d->__first_nonopt != d->__last_nonopt
+	      && d->__last_nonopt != d->optind)
+	    exchange ((char **) argv, d);
+	  else if (d->__last_nonopt != d->optind)
+	    d->__first_nonopt = d->optind;
+
+	  /* Skip any additional non-options
+	     and extend the range of non-options previously skipped.  */
+
+	  while (d->optind < argc && NONOPTION_P)
+	    d->optind++;
+	  d->__last_nonopt = d->optind;
+	}
+
+      /* The special ARGV-element `--' means premature end of options.
+	 Skip it like a null option,
+	 then exchange with previous non-options as if it were an option,
+	 then skip everything else like a non-option.  */
+
+      if (d->optind != argc && !strcmp (argv[d->optind], "--"))
+	{
+	  d->optind++;
+
+	  if (d->__first_nonopt != d->__last_nonopt
+	      && d->__last_nonopt != d->optind)
+	    exchange ((char **) argv, d);
+	  else if (d->__first_nonopt == d->__last_nonopt)
+	    d->__first_nonopt = d->optind;
+	  d->__last_nonopt = argc;
+
+	  d->optind = argc;
+	}
+
+      /* If we have done all the ARGV-elements, stop the scan
+	 and back over any non-options that we skipped and permuted.  */
+
+      if (d->optind == argc)
+	{
+	  /* Set the next-arg-index to point at the non-options
+	     that we previously skipped, so the caller will digest them.  */
+	  if (d->__first_nonopt != d->__last_nonopt)
+	    d->optind = d->__first_nonopt;
+	  return -1;
+	}
+
+      /* If we have come to a non-option and did not permute it,
+	 either stop the scan or describe it to the caller and pass it by.  */
+
+      if (NONOPTION_P)
+	{
+	  if (d->__ordering == REQUIRE_ORDER)
+	    return -1;
+	  d->optarg = argv[d->optind++];
+	  return 1;
+	}
+
+      /* We have found another option-ARGV-element.
+	 Skip the initial punctuation.  */
+
+      d->__nextchar = (argv[d->optind] + 1
+		  + (longopts != NULL && argv[d->optind][1] == '-'));
+    }
+
+  /* Decode the current option-ARGV-element.  */
+
+  /* Check whether the ARGV-element is a long option.
+
+     If long_only and the ARGV-element has the form "-f", where f is
+     a valid short option, don't consider it an abbreviated form of
+     a long option that starts with f.  Otherwise there would be no
+     way to give the -f short option.
+
+     On the other hand, if there's a long option "fubar" and
+     the ARGV-element is "-fu", do consider that an abbreviation of
+     the long option, just like "--fu", and not "-f" with arg "u".
+
+     This distinction seems to be the most useful approach.  */
+
+  if (longopts != NULL
+      && (argv[d->optind][1] == '-'
+	  || (long_only && (argv[d->optind][2]
+			    || !strchr (optstring, argv[d->optind][1])))))
+    {
+      char *nameend;
+      const struct option *p;
+      const struct option *pfound = NULL;
+      int exact = 0;
+      int ambig = 0;
+      int indfound = -1;
+      int option_index;
+
+      for (nameend = d->__nextchar; *nameend && *nameend != '='; nameend++)
+	/* Do nothing.  */ ;
+
+      /* Test all long options for either exact match
+	 or abbreviated matches.  */
+      for (p = longopts, option_index = 0; p->name; p++, option_index++)
+	if (!strncmp (p->name, d->__nextchar, nameend - d->__nextchar))
+	  {
+	    if ((unsigned int) (nameend - d->__nextchar)
+		== (unsigned int) strlen (p->name))
+	      {
+		/* Exact match found.  */
+		pfound = p;
+		indfound = option_index;
+		exact = 1;
+		break;
+	      }
+	    else if (pfound == NULL)
+	      {
+		/* First nonexact match found.  */
+		pfound = p;
+		indfound = option_index;
+	      }
+	    else if (long_only
+		     || pfound->has_arg != p->has_arg
+		     || pfound->flag != p->flag
+		     || pfound->val != p->val)
+	      /* Second or later nonexact match found.  */
+	      ambig = 1;
+	  }
+
+      if (ambig && !exact)
+	{
+	  if (print_errors)
+	    {
+#if defined _LIBC && defined USE_IN_LIBIO
+	      char *buf;
+
+	      if (__asprintf (&buf, _("%s: option `%s' is ambiguous\n"),
+			      argv[0], argv[d->optind]) >= 0)
+		{
+		  _IO_flockfile (stderr);
+
+		  int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+		  ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL;
+
+		  __fxprintf (NULL, "%s", buf);
+
+		  ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+		  _IO_funlockfile (stderr);
+
+		  free (buf);
+		}
+#else
+	      fprintf (stderr, _("%s: option `%s' is ambiguous\n"),
+		       argv[0], argv[d->optind]);
+#endif
+	    }
+	  d->__nextchar += strlen (d->__nextchar);
+	  d->optind++;
+	  d->optopt = 0;
+	  return '?';
+	}
+
+      if (pfound != NULL)
+	{
+	  option_index = indfound;
+	  d->optind++;
+	  if (*nameend)
+	    {
+	      /* Don't test has_arg with >, because some C compilers don't
+		 allow it to be used on enums.  */
+	      if (pfound->has_arg)
+		d->optarg = nameend + 1;
+	      else
+		{
+		  if (print_errors)
+		    {
+#if defined _LIBC && defined USE_IN_LIBIO
+		      char *buf;
+		      int n;
+#endif
+
+		      if (argv[d->optind - 1][1] == '-')
+			{
+			  /* --option */
+#if defined _LIBC && defined USE_IN_LIBIO
+			  n = __asprintf (&buf, _("\
+%s: option `--%s' doesn't allow an argument\n"),
+					  argv[0], pfound->name);
+#else
+			  fprintf (stderr, _("\
+%s: option `--%s' doesn't allow an argument\n"),
+				   argv[0], pfound->name);
+#endif
+			}
+		      else
+			{
+			  /* +option or -option */
+#if defined _LIBC && defined USE_IN_LIBIO
+			  n = __asprintf (&buf, _("\
+%s: option `%c%s' doesn't allow an argument\n"),
+					  argv[0], argv[d->optind - 1][0],
+					  pfound->name);
+#else
+			  fprintf (stderr, _("\
+%s: option `%c%s' doesn't allow an argument\n"),
+				   argv[0], argv[d->optind - 1][0],
+				   pfound->name);
+#endif
+			}
+
+#if defined _LIBC && defined USE_IN_LIBIO
+		      if (n >= 0)
+			{
+			  _IO_flockfile (stderr);
+
+			  int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+			  ((_IO_FILE *) stderr)->_flags2
+			    |= _IO_FLAGS2_NOTCANCEL;
+
+			  __fxprintf (NULL, "%s", buf);
+
+			  ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+			  _IO_funlockfile (stderr);
+
+			  free (buf);
+			}
+#endif
+		    }
+
+		  d->__nextchar += strlen (d->__nextchar);
+
+		  d->optopt = pfound->val;
+		  return '?';
+		}
+	    }
+	  else if (pfound->has_arg == 1)
+	    {
+	      if (d->optind < argc)
+		d->optarg = argv[d->optind++];
+	      else
+		{
+		  if (print_errors)
+		    {
+#if defined _LIBC && defined USE_IN_LIBIO
+		      char *buf;
+
+		      if (__asprintf (&buf, _("\
+%s: option `%s' requires an argument\n"),
+				      argv[0], argv[d->optind - 1]) >= 0)
+			{
+			  _IO_flockfile (stderr);
+
+			  int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+			  ((_IO_FILE *) stderr)->_flags2
+			    |= _IO_FLAGS2_NOTCANCEL;
+
+			  __fxprintf (NULL, "%s", buf);
+
+			  ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+			  _IO_funlockfile (stderr);
+
+			  free (buf);
+			}
+#else
+		      fprintf (stderr,
+			       _("%s: option `%s' requires an argument\n"),
+			       argv[0], argv[d->optind - 1]);
+#endif
+		    }
+		  d->__nextchar += strlen (d->__nextchar);
+		  d->optopt = pfound->val;
+		  return optstring[0] == ':' ? ':' : '?';
+		}
+	    }
+	  d->__nextchar += strlen (d->__nextchar);
+	  if (longind != NULL)
+	    *longind = option_index;
+	  if (pfound->flag)
+	    {
+	      *(pfound->flag) = pfound->val;
+	      return 0;
+	    }
+	  return pfound->val;
+	}
+
+      /* Can't find it as a long option.  If this is not getopt_long_only,
+	 or the option starts with '--' or is not a valid short
+	 option, then it's an error.
+	 Otherwise interpret it as a short option.  */
+      if (!long_only || argv[d->optind][1] == '-'
+	  || strchr (optstring, *d->__nextchar) == NULL)
+	{
+	  if (print_errors)
+	    {
+#if defined _LIBC && defined USE_IN_LIBIO
+	      char *buf;
+	      int n;
+#endif
+
+	      if (argv[d->optind][1] == '-')
+		{
+		  /* --option */
+#if defined _LIBC && defined USE_IN_LIBIO
+		  n = __asprintf (&buf, _("%s: unrecognized option `--%s'\n"),
+				  argv[0], d->__nextchar);
+#else
+		  fprintf (stderr, _("%s: unrecognized option `--%s'\n"),
+			   argv[0], d->__nextchar);
+#endif
+		}
+	      else
+		{
+		  /* +option or -option */
+#if defined _LIBC && defined USE_IN_LIBIO
+		  n = __asprintf (&buf, _("%s: unrecognized option `%c%s'\n"),
+				  argv[0], argv[d->optind][0], d->__nextchar);
+#else
+		  fprintf (stderr, _("%s: unrecognized option `%c%s'\n"),
+			   argv[0], argv[d->optind][0], d->__nextchar);
+#endif
+		}
+
+#if defined _LIBC && defined USE_IN_LIBIO
+	      if (n >= 0)
+		{
+		  _IO_flockfile (stderr);
+
+		  int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+		  ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL;
+
+		  __fxprintf (NULL, "%s", buf);
+
+		  ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+		  _IO_funlockfile (stderr);
+
+		  free (buf);
+		}
+#endif
+	    }
+	  d->__nextchar = (char *) "";
+	  d->optind++;
+	  d->optopt = 0;
+	  return '?';
+	}
+    }
+
+  /* Look at and handle the next short option-character.  */
+
+  {
+    char c = *d->__nextchar++;
+    char *temp = strchr (optstring, c);
+
+    /* Increment `optind' when we start to process its last character.  */
+    if (*d->__nextchar == '\0')
+      ++d->optind;
+
+    if (temp == NULL || c == ':')
+      {
+	if (print_errors)
+	  {
+#if defined _LIBC && defined USE_IN_LIBIO
+	      char *buf;
+	      int n;
+#endif
+
+	    if (d->__posixly_correct)
+	      {
+		/* 1003.2 specifies the format of this message.  */
+#if defined _LIBC && defined USE_IN_LIBIO
+		n = __asprintf (&buf, _("%s: illegal option -- %c\n"),
+				argv[0], c);
+#else
+		fprintf (stderr, _("%s: illegal option -- %c\n"), argv[0], c);
+#endif
+	      }
+	    else
+	      {
+#if defined _LIBC && defined USE_IN_LIBIO
+		n = __asprintf (&buf, _("%s: invalid option -- %c\n"),
+				argv[0], c);
+#else
+		fprintf (stderr, _("%s: invalid option -- %c\n"), argv[0], c);
+#endif
+	      }
+
+#if defined _LIBC && defined USE_IN_LIBIO
+	    if (n >= 0)
+	      {
+		_IO_flockfile (stderr);
+
+		int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+		((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL;
+
+		__fxprintf (NULL, "%s", buf);
+
+		((_IO_FILE *) stderr)->_flags2 = old_flags2;
+		_IO_funlockfile (stderr);
+
+		free (buf);
+	      }
+#endif
+	  }
+	d->optopt = c;
+	return '?';
+      }
+    /* Convenience. Treat POSIX -W foo same as long option --foo */
+    if (temp[0] == 'W' && temp[1] == ';')
+      {
+	char *nameend;
+	const struct option *p;
+	const struct option *pfound = NULL;
+	int exact = 0;
+	int ambig = 0;
+	int indfound = 0;
+	int option_index;
+
+	/* This is an option that requires an argument.  */
+	if (*d->__nextchar != '\0')
+	  {
+	    d->optarg = d->__nextchar;
+	    /* If we end this ARGV-element by taking the rest as an arg,
+	       we must advance to the next element now.  */
+	    d->optind++;
+	  }
+	else if (d->optind == argc)
+	  {
+	    if (print_errors)
+	      {
+		/* 1003.2 specifies the format of this message.  */
+#if defined _LIBC && defined USE_IN_LIBIO
+		char *buf;
+
+		if (__asprintf (&buf,
+				_("%s: option requires an argument -- %c\n"),
+				argv[0], c) >= 0)
+		  {
+		    _IO_flockfile (stderr);
+
+		    int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+		    ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL;
+
+		    __fxprintf (NULL, "%s", buf);
+
+		    ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+		    _IO_funlockfile (stderr);
+
+		    free (buf);
+		  }
+#else
+		fprintf (stderr, _("%s: option requires an argument -- %c\n"),
+			 argv[0], c);
+#endif
+	      }
+	    d->optopt = c;
+	    if (optstring[0] == ':')
+	      c = ':';
+	    else
+	      c = '?';
+	    return c;
+	  }
+	else
+	  /* We already incremented `d->optind' once;
+	     increment it again when taking next ARGV-elt as argument.  */
+	  d->optarg = argv[d->optind++];
+
+	/* optarg is now the argument, see if it's in the
+	   table of longopts.  */
+
+	for (d->__nextchar = nameend = d->optarg; *nameend && *nameend != '=';
+	     nameend++)
+	  /* Do nothing.  */ ;
+
+	/* Test all long options for either exact match
+	   or abbreviated matches.  */
+	for (p = longopts, option_index = 0; p->name; p++, option_index++)
+	  if (!strncmp (p->name, d->__nextchar, nameend - d->__nextchar))
+	    {
+	      if ((unsigned int) (nameend - d->__nextchar) == strlen (p->name))
+		{
+		  /* Exact match found.  */
+		  pfound = p;
+		  indfound = option_index;
+		  exact = 1;
+		  break;
+		}
+	      else if (pfound == NULL)
+		{
+		  /* First nonexact match found.  */
+		  pfound = p;
+		  indfound = option_index;
+		}
+	      else
+		/* Second or later nonexact match found.  */
+		ambig = 1;
+	    }
+	if (ambig && !exact)
+	  {
+	    if (print_errors)
+	      {
+#if defined _LIBC && defined USE_IN_LIBIO
+		char *buf;
+
+		if (__asprintf (&buf, _("%s: option `-W %s' is ambiguous\n"),
+				argv[0], argv[d->optind]) >= 0)
+		  {
+		    _IO_flockfile (stderr);
+
+		    int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+		    ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL;
+
+		    __fxprintf (NULL, "%s", buf);
+
+		    ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+		    _IO_funlockfile (stderr);
+
+		    free (buf);
+		  }
+#else
+		fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"),
+			 argv[0], argv[d->optind]);
+#endif
+	      }
+	    d->__nextchar += strlen (d->__nextchar);
+	    d->optind++;
+	    return '?';
+	  }
+	if (pfound != NULL)
+	  {
+	    option_index = indfound;
+	    if (*nameend)
+	      {
+		/* Don't test has_arg with >, because some C compilers don't
+		   allow it to be used on enums.  */
+		if (pfound->has_arg)
+		  d->optarg = nameend + 1;
+		else
+		  {
+		    if (print_errors)
+		      {
+#if defined _LIBC && defined USE_IN_LIBIO
+			char *buf;
+
+			if (__asprintf (&buf, _("\
+%s: option `-W %s' doesn't allow an argument\n"),
+					argv[0], pfound->name) >= 0)
+			  {
+			    _IO_flockfile (stderr);
+
+			    int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+			    ((_IO_FILE *) stderr)->_flags2
+			      |= _IO_FLAGS2_NOTCANCEL;
+
+			    __fxprintf (NULL, "%s", buf);
+
+			    ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+			    _IO_funlockfile (stderr);
+
+			    free (buf);
+			  }
+#else
+			fprintf (stderr, _("\
+%s: option `-W %s' doesn't allow an argument\n"),
+				 argv[0], pfound->name);
+#endif
+		      }
+
+		    d->__nextchar += strlen (d->__nextchar);
+		    return '?';
+		  }
+	      }
+	    else if (pfound->has_arg == 1)
+	      {
+		if (d->optind < argc)
+		  d->optarg = argv[d->optind++];
+		else
+		  {
+		    if (print_errors)
+		      {
+#if defined _LIBC && defined USE_IN_LIBIO
+			char *buf;
+
+			if (__asprintf (&buf, _("\
+%s: option `%s' requires an argument\n"),
+					argv[0], argv[d->optind - 1]) >= 0)
+			  {
+			    _IO_flockfile (stderr);
+
+			    int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+			    ((_IO_FILE *) stderr)->_flags2
+			      |= _IO_FLAGS2_NOTCANCEL;
+
+			    __fxprintf (NULL, "%s", buf);
+
+			    ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+			    _IO_funlockfile (stderr);
+
+			    free (buf);
+			  }
+#else
+			fprintf (stderr,
+				 _("%s: option `%s' requires an argument\n"),
+				 argv[0], argv[d->optind - 1]);
+#endif
+		      }
+		    d->__nextchar += strlen (d->__nextchar);
+		    return optstring[0] == ':' ? ':' : '?';
+		  }
+	      }
+	    d->__nextchar += strlen (d->__nextchar);
+	    if (longind != NULL)
+	      *longind = option_index;
+	    if (pfound->flag)
+	      {
+		*(pfound->flag) = pfound->val;
+		return 0;
+	      }
+	    return pfound->val;
+	  }
+	  d->__nextchar = NULL;
+	  return 'W';	/* Let the application handle it.   */
+      }
+    if (temp[1] == ':')
+      {
+	if (temp[2] == ':')
+	  {
+	    /* This is an option that accepts an argument optionally.  */
+	    if (*d->__nextchar != '\0')
+	      {
+		d->optarg = d->__nextchar;
+		d->optind++;
+	      }
+	    else
+	      d->optarg = NULL;
+	    d->__nextchar = NULL;
+	  }
+	else
+	  {
+	    /* This is an option that requires an argument.  */
+	    if (*d->__nextchar != '\0')
+	      {
+		d->optarg = d->__nextchar;
+		/* If we end this ARGV-element by taking the rest as an arg,
+		   we must advance to the next element now.  */
+		d->optind++;
+	      }
+	    else if (d->optind == argc)
+	      {
+		if (print_errors)
+		  {
+		    /* 1003.2 specifies the format of this message.  */
+#if defined _LIBC && defined USE_IN_LIBIO
+		    char *buf;
+
+		    if (__asprintf (&buf, _("\
+%s: option requires an argument -- %c\n"),
+				    argv[0], c) >= 0)
+		      {
+			_IO_flockfile (stderr);
+
+			int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+			((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL;
+
+			__fxprintf (NULL, "%s", buf);
+
+			((_IO_FILE *) stderr)->_flags2 = old_flags2;
+			_IO_funlockfile (stderr);
+
+			free (buf);
+		      }
+#else
+		    fprintf (stderr,
+			     _("%s: option requires an argument -- %c\n"),
+			     argv[0], c);
+#endif
+		  }
+		d->optopt = c;
+		if (optstring[0] == ':')
+		  c = ':';
+		else
+		  c = '?';
+	      }
+	    else
+	      /* We already incremented `optind' once;
+		 increment it again when taking next ARGV-elt as argument.  */
+	      d->optarg = argv[d->optind++];
+	    d->__nextchar = NULL;
+	  }
+      }
+    return c;
+  }
+}
+
+int
+_getopt_internal (int argc, char **argv, const char *optstring,
+		  const struct option *longopts, int *longind,
+		  int long_only, int posixly_correct)
+{
+  int result;
+
+  getopt_data.optind = optind;
+  getopt_data.opterr = opterr;
+
+  result = _getopt_internal_r (argc, argv, optstring, longopts, longind,
+			       long_only, posixly_correct, &getopt_data);
+
+  optind = getopt_data.optind;
+  optarg = getopt_data.optarg;
+  optopt = getopt_data.optopt;
+
+  return result;
+}
+
+/* glibc gets a LSB-compliant getopt.
+   Standalone applications get a POSIX-compliant getopt.  */
+#if _LIBC
+enum { POSIXLY_CORRECT = 0 };
+#else
+enum { POSIXLY_CORRECT = 1 };
+#endif
+
+int
+getopt (int argc, char *const *argv, const char *optstring)
+{
+  return _getopt_internal (argc, (char **) argv, optstring, NULL, NULL, 0,
+			   POSIXLY_CORRECT);
+}
+
+
+#ifdef TEST
+
+/* Compile with -DTEST to make an executable for use in testing
+   the above definition of `getopt'.  */
+
+int
+main (int argc, char **argv)
+{
+  int c;
+  int digit_optind = 0;
+
+  while (1)
+    {
+      int this_option_optind = optind ? optind : 1;
+
+      c = getopt (argc, argv, "abc:d:0123456789");
+      if (c == -1)
+	break;
+
+      switch (c)
+	{
+	case '0':
+	case '1':
+	case '2':
+	case '3':
+	case '4':
+	case '5':
+	case '6':
+	case '7':
+	case '8':
+	case '9':
+	  if (digit_optind != 0 && digit_optind != this_option_optind)
+	    printf ("digits occur in two different argv-elements.\n");
+	  digit_optind = this_option_optind;
+	  printf ("option %c\n", c);
+	  break;
+
+	case 'a':
+	  printf ("option a\n");
+	  break;
+
+	case 'b':
+	  printf ("option b\n");
+	  break;
+
+	case 'c':
+	  printf ("option c with value `%s'\n", optarg);
+	  break;
+
+	case '?':
+	  break;
+
+	default:
+	  printf ("?? getopt returned character code 0%o ??\n", c);
+	}
+    }
+
+  if (optind < argc)
+    {
+      printf ("non-option ARGV-elements: ");
+      while (optind < argc)
+	printf ("%s ", argv[optind++]);
+      printf ("\n");
+    }
+
+  exit (0);
+}
+
+#endif /* TEST */
diff --git a/parted-1.8.7/lib/getopt1.c b/parted-1.8.7/lib/getopt1.c
new file mode 100644
index 0000000..cc0746e
--- /dev/null
+++ b/parted-1.8.7/lib/getopt1.c
@@ -0,0 +1,171 @@
+/* getopt_long and getopt_long_only entry points for GNU getopt.
+   Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98,2004,2006
+     Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifdef _LIBC
+# include <getopt.h>
+#else
+# include <config.h>
+# include "getopt.h"
+#endif
+#include "getopt_int.h"
+
+#include <stdio.h>
+
+/* This needs to come after some library #include
+   to get __GNU_LIBRARY__ defined.  */
+#ifdef __GNU_LIBRARY__
+#include <stdlib.h>
+#endif
+
+#ifndef	NULL
+#define NULL 0
+#endif
+
+int
+getopt_long (int argc, char *__getopt_argv_const *argv, const char *options,
+	     const struct option *long_options, int *opt_index)
+{
+  return _getopt_internal (argc, (char **) argv, options, long_options,
+			   opt_index, 0, 0);
+}
+
+int
+_getopt_long_r (int argc, char **argv, const char *options,
+		const struct option *long_options, int *opt_index,
+		struct _getopt_data *d)
+{
+  return _getopt_internal_r (argc, argv, options, long_options, opt_index,
+			     0, 0, d);
+}
+
+/* Like getopt_long, but '-' as well as '--' can indicate a long option.
+   If an option that starts with '-' (not '--') doesn't match a long option,
+   but does match a short option, it is parsed as a short option
+   instead.  */
+
+int
+getopt_long_only (int argc, char *__getopt_argv_const *argv,
+		  const char *options,
+		  const struct option *long_options, int *opt_index)
+{
+  return _getopt_internal (argc, (char **) argv, options, long_options,
+			   opt_index, 1, 0);
+}
+
+int
+_getopt_long_only_r (int argc, char **argv, const char *options,
+		     const struct option *long_options, int *opt_index,
+		     struct _getopt_data *d)
+{
+  return _getopt_internal_r (argc, argv, options, long_options, opt_index,
+			     1, 0, d);
+}
+
+
+#ifdef TEST
+
+#include <stdio.h>
+
+int
+main (int argc, char **argv)
+{
+  int c;
+  int digit_optind = 0;
+
+  while (1)
+    {
+      int this_option_optind = optind ? optind : 1;
+      int option_index = 0;
+      static struct option long_options[] =
+      {
+	{"add", 1, 0, 0},
+	{"append", 0, 0, 0},
+	{"delete", 1, 0, 0},
+	{"verbose", 0, 0, 0},
+	{"create", 0, 0, 0},
+	{"file", 1, 0, 0},
+	{0, 0, 0, 0}
+      };
+
+      c = getopt_long (argc, argv, "abc:d:0123456789",
+		       long_options, &option_index);
+      if (c == -1)
+	break;
+
+      switch (c)
+	{
+	case 0:
+	  printf ("option %s", long_options[option_index].name);
+	  if (optarg)
+	    printf (" with arg %s", optarg);
+	  printf ("\n");
+	  break;
+
+	case '0':
+	case '1':
+	case '2':
+	case '3':
+	case '4':
+	case '5':
+	case '6':
+	case '7':
+	case '8':
+	case '9':
+	  if (digit_optind != 0 && digit_optind != this_option_optind)
+	    printf ("digits occur in two different argv-elements.\n");
+	  digit_optind = this_option_optind;
+	  printf ("option %c\n", c);
+	  break;
+
+	case 'a':
+	  printf ("option a\n");
+	  break;
+
+	case 'b':
+	  printf ("option b\n");
+	  break;
+
+	case 'c':
+	  printf ("option c with value `%s'\n", optarg);
+	  break;
+
+	case 'd':
+	  printf ("option d with value `%s'\n", optarg);
+	  break;
+
+	case '?':
+	  break;
+
+	default:
+	  printf ("?? getopt returned character code 0%o ??\n", c);
+	}
+    }
+
+  if (optind < argc)
+    {
+      printf ("non-option ARGV-elements: ");
+      while (optind < argc)
+	printf ("%s ", argv[optind++]);
+      printf ("\n");
+    }
+
+  exit (0);
+}
+
+#endif /* TEST */
diff --git a/parted-1.8.7/lib/getopt_.h b/parted-1.8.7/lib/getopt_.h
new file mode 100644
index 0000000..615ef9a
--- /dev/null
+++ b/parted-1.8.7/lib/getopt_.h
@@ -0,0 +1,226 @@
+/* Declarations for getopt.
+   Copyright (C) 1989-1994,1996-1999,2001,2003,2004,2005,2006,2007
+   Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef _GETOPT_H
+
+#ifndef __need_getopt
+# define _GETOPT_H 1
+#endif
+
+/* Standalone applications should #define __GETOPT_PREFIX to an
+   identifier that prefixes the external functions and variables
+   defined in this header.  When this happens, include the
+   headers that might declare getopt so that they will not cause
+   confusion if included after this file.  Then systematically rename
+   identifiers so that they do not collide with the system functions
+   and variables.  Renaming avoids problems with some compilers and
+   linkers.  */
+#if defined __GETOPT_PREFIX && !defined __need_getopt
+# include <stdlib.h>
+# include <stdio.h>
+# include <unistd.h>
+# undef __need_getopt
+# undef getopt
+# undef getopt_long
+# undef getopt_long_only
+# undef optarg
+# undef opterr
+# undef optind
+# undef optopt
+# define __GETOPT_CONCAT(x, y) x ## y
+# define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y)
+# define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y)
+# define getopt __GETOPT_ID (getopt)
+# define getopt_long __GETOPT_ID (getopt_long)
+# define getopt_long_only __GETOPT_ID (getopt_long_only)
+# define optarg __GETOPT_ID (optarg)
+# define opterr __GETOPT_ID (opterr)
+# define optind __GETOPT_ID (optind)
+# define optopt __GETOPT_ID (optopt)
+#endif
+
+/* Standalone applications get correct prototypes for getopt_long and
+   getopt_long_only; they declare "char **argv".  libc uses prototypes
+   with "char *const *argv" that are incorrect because getopt_long and
+   getopt_long_only can permute argv; this is required for backward
+   compatibility (e.g., for LSB 2.0.1).
+
+   This used to be `#if defined __GETOPT_PREFIX && !defined __need_getopt',
+   but it caused redefinition warnings if both unistd.h and getopt.h were
+   included, since unistd.h includes getopt.h having previously defined
+   __need_getopt.
+
+   The only place where __getopt_argv_const is used is in definitions
+   of getopt_long and getopt_long_only below, but these are visible
+   only if __need_getopt is not defined, so it is quite safe to rewrite
+   the conditional as follows:
+*/
+#if !defined __need_getopt
+# if defined __GETOPT_PREFIX
+#  define __getopt_argv_const /* empty */
+# else
+#  define __getopt_argv_const const
+# endif
+#endif
+
+/* If __GNU_LIBRARY__ is not already defined, either we are being used
+   standalone, or this is the first header included in the source file.
+   If we are being used with glibc, we need to include <features.h>, but
+   that does not exist if we are standalone.  So: if __GNU_LIBRARY__ is
+   not defined, include <ctype.h>, which will pull in <features.h> for us
+   if it's from glibc.  (Why ctype.h?  It's guaranteed to exist and it
+   doesn't flood the namespace with stuff the way some other headers do.)  */
+#if !defined __GNU_LIBRARY__
+# include <ctype.h>
+#endif
+
+#ifndef __THROW
+# ifndef __GNUC_PREREQ
+#  define __GNUC_PREREQ(maj, min) (0)
+# endif
+# if defined __cplusplus && __GNUC_PREREQ (2,8)
+#  define __THROW	throw ()
+# else
+#  define __THROW
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* For communication from `getopt' to the caller.
+   When `getopt' finds an option that takes an argument,
+   the argument value is returned here.
+   Also, when `ordering' is RETURN_IN_ORDER,
+   each non-option ARGV-element is returned here.  */
+
+extern char *optarg;
+
+/* Index in ARGV of the next element to be scanned.
+   This is used for communication to and from the caller
+   and for communication between successive calls to `getopt'.
+
+   On entry to `getopt', zero means this is the first call; initialize.
+
+   When `getopt' returns -1, this is the index of the first of the
+   non-option elements that the caller should itself scan.
+
+   Otherwise, `optind' communicates from one call to the next
+   how much of ARGV has been scanned so far.  */
+
+extern int optind;
+
+/* Callers store zero here to inhibit the error message `getopt' prints
+   for unrecognized options.  */
+
+extern int opterr;
+
+/* Set to an option character which was unrecognized.  */
+
+extern int optopt;
+
+#ifndef __need_getopt
+/* Describe the long-named options requested by the application.
+   The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
+   of `struct option' terminated by an element containing a name which is
+   zero.
+
+   The field `has_arg' is:
+   no_argument		(or 0) if the option does not take an argument,
+   required_argument	(or 1) if the option requires an argument,
+   optional_argument	(or 2) if the option takes an optional argument.
+
+   If the field `flag' is not NULL, it points to a variable that is set
+   to the value given in the field `val' when the option is found, but
+   left unchanged if the option is not found.
+
+   To have a long-named option do something other than set an `int' to
+   a compiled-in constant, such as set a value from `optarg', set the
+   option's `flag' field to zero and its `val' field to a nonzero
+   value (the equivalent single-letter option character, if there is
+   one).  For long options that have a zero `flag' field, `getopt'
+   returns the contents of the `val' field.  */
+
+struct option
+{
+  const char *name;
+  /* has_arg can't be an enum because some compilers complain about
+     type mismatches in all the code that assumes it is an int.  */
+  int has_arg;
+  int *flag;
+  int val;
+};
+
+/* Names for the values of the `has_arg' field of `struct option'.  */
+
+# define no_argument		0
+# define required_argument	1
+# define optional_argument	2
+#endif	/* need getopt */
+
+
+/* Get definitions and prototypes for functions to process the
+   arguments in ARGV (ARGC of them, minus the program name) for
+   options given in OPTS.
+
+   Return the option character from OPTS just read.  Return -1 when
+   there are no more options.  For unrecognized options, or options
+   missing arguments, `optopt' is set to the option letter, and '?' is
+   returned.
+
+   The OPTS string is a list of characters which are recognized option
+   letters, optionally followed by colons, specifying that that letter
+   takes an argument, to be placed in `optarg'.
+
+   If a letter in OPTS is followed by two colons, its argument is
+   optional.  This behavior is specific to the GNU `getopt'.
+
+   The argument `--' causes premature termination of argument
+   scanning, explicitly telling `getopt' that there are no more
+   options.
+
+   If OPTS begins with `-', then non-option arguments are treated as
+   arguments to the option '\1'.  This behavior is specific to the GNU
+   `getopt'.  If OPTS begins with `+', or POSIXLY_CORRECT is set in
+   the environment, then do not permute arguments.  */
+
+extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
+       __THROW;
+
+#ifndef __need_getopt
+extern int getopt_long (int ___argc, char *__getopt_argv_const *___argv,
+			const char *__shortopts,
+		        const struct option *__longopts, int *__longind)
+       __THROW;
+extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv,
+			     const char *__shortopts,
+		             const struct option *__longopts, int *__longind)
+       __THROW;
+
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+/* Make sure we later can get all the definitions and declarations.  */
+#undef __need_getopt
+
+#endif /* getopt.h */
diff --git a/parted-1.8.7/lib/getopt_int.h b/parted-1.8.7/lib/getopt_int.h
new file mode 100644
index 0000000..401579f
--- /dev/null
+++ b/parted-1.8.7/lib/getopt_int.h
@@ -0,0 +1,131 @@
+/* Internal declarations for getopt.
+   Copyright (C) 1989-1994,1996-1999,2001,2003,2004
+   Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef _GETOPT_INT_H
+#define _GETOPT_INT_H	1
+
+extern int _getopt_internal (int ___argc, char **___argv,
+			     const char *__shortopts,
+		             const struct option *__longopts, int *__longind,
+			     int __long_only, int __posixly_correct);
+
+
+/* Reentrant versions which can handle parsing multiple argument
+   vectors at the same time.  */
+
+/* Data type for reentrant functions.  */
+struct _getopt_data
+{
+  /* These have exactly the same meaning as the corresponding global
+     variables, except that they are used for the reentrant
+     versions of getopt.  */
+  int optind;
+  int opterr;
+  int optopt;
+  char *optarg;
+
+  /* Internal members.  */
+
+  /* True if the internal members have been initialized.  */
+  int __initialized;
+
+  /* The next char to be scanned in the option-element
+     in which the last option character we returned was found.
+     This allows us to pick up the scan where we left off.
+
+     If this is zero, or a null string, it means resume the scan
+     by advancing to the next ARGV-element.  */
+  char *__nextchar;
+
+  /* Describe how to deal with options that follow non-option ARGV-elements.
+
+     If the caller did not specify anything,
+     the default is REQUIRE_ORDER if the environment variable
+     POSIXLY_CORRECT is defined, PERMUTE otherwise.
+
+     REQUIRE_ORDER means don't recognize them as options;
+     stop option processing when the first non-option is seen.
+     This is what Unix does.
+     This mode of operation is selected by either setting the environment
+     variable POSIXLY_CORRECT, or using `+' as the first character
+     of the list of option characters, or by calling getopt.
+
+     PERMUTE is the default.  We permute the contents of ARGV as we
+     scan, so that eventually all the non-options are at the end.
+     This allows options to be given in any order, even with programs
+     that were not written to expect this.
+
+     RETURN_IN_ORDER is an option available to programs that were
+     written to expect options and other ARGV-elements in any order
+     and that care about the ordering of the two.  We describe each
+     non-option ARGV-element as if it were the argument of an option
+     with character code 1.  Using `-' as the first character of the
+     list of option characters selects this mode of operation.
+
+     The special argument `--' forces an end of option-scanning regardless
+     of the value of `ordering'.  In the case of RETURN_IN_ORDER, only
+     `--' can cause `getopt' to return -1 with `optind' != ARGC.  */
+
+  enum
+    {
+      REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
+    } __ordering;
+
+  /* If the POSIXLY_CORRECT environment variable is set
+     or getopt was called.  */
+  int __posixly_correct;
+
+
+  /* Handle permutation of arguments.  */
+
+  /* Describe the part of ARGV that contains non-options that have
+     been skipped.  `first_nonopt' is the index in ARGV of the first
+     of them; `last_nonopt' is the index after the last of them.  */
+
+  int __first_nonopt;
+  int __last_nonopt;
+
+#if defined _LIBC && defined USE_NONOPTION_FLAGS
+  int __nonoption_flags_max_len;
+  int __nonoption_flags_len;
+# endif
+};
+
+/* The initializer is necessary to set OPTIND and OPTERR to their
+   default values and to clear the initialization flag.  */
+#define _GETOPT_DATA_INITIALIZER	{ 1, 1 }
+
+extern int _getopt_internal_r (int ___argc, char **___argv,
+			       const char *__shortopts,
+			       const struct option *__longopts, int *__longind,
+			       int __long_only, int __posixly_correct,
+			       struct _getopt_data *__data);
+
+extern int _getopt_long_r (int ___argc, char **___argv,
+			   const char *__shortopts,
+			   const struct option *__longopts, int *__longind,
+			   struct _getopt_data *__data);
+
+extern int _getopt_long_only_r (int ___argc, char **___argv,
+				const char *__shortopts,
+				const struct option *__longopts,
+				int *__longind,
+				struct _getopt_data *__data);
+
+#endif /* getopt_int.h */
diff --git a/parted-1.8.7/lib/gettext.h b/parted-1.8.7/lib/gettext.h
new file mode 100644
index 0000000..9d76ec9
--- /dev/null
+++ b/parted-1.8.7/lib/gettext.h
@@ -0,0 +1,270 @@
+/* Convenience header for conditional use of GNU <libintl.h>.
+   Copyright (C) 1995-1998, 2000-2002, 2004-2006 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef _LIBGETTEXT_H
+#define _LIBGETTEXT_H 1
+
+/* NLS can be disabled through the configure --disable-nls option.  */
+#if ENABLE_NLS
+
+/* Get declarations of GNU message catalog functions.  */
+# include <libintl.h>
+
+/* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by
+   the gettext() and ngettext() macros.  This is an alternative to calling
+   textdomain(), and is useful for libraries.  */
+# ifdef DEFAULT_TEXT_DOMAIN
+#  undef gettext
+#  define gettext(Msgid) \
+     dgettext (DEFAULT_TEXT_DOMAIN, Msgid)
+#  undef ngettext
+#  define ngettext(Msgid1, Msgid2, N) \
+     dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N)
+# endif
+
+#else
+
+/* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which
+   chokes if dcgettext is defined as a macro.  So include it now, to make
+   later inclusions of <locale.h> a NOP.  We don't include <libintl.h>
+   as well because people using "gettext.h" will not include <libintl.h>,
+   and also including <libintl.h> would fail on SunOS 4, whereas <locale.h>
+   is OK.  */
+#if defined(__sun)
+# include <locale.h>
+#endif
+
+/* Many header files from the libstdc++ coming with g++ 3.3 or newer include
+   <libintl.h>, which chokes if dcgettext is defined as a macro.  So include
+   it now, to make later inclusions of <libintl.h> a NOP.  */
+#if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3)
+# include <cstdlib>
+# if (__GLIBC__ >= 2) || _GLIBCXX_HAVE_LIBINTL_H
+#  include <libintl.h>
+# endif
+#endif
+
+/* Disabled NLS.
+   The casts to 'const char *' serve the purpose of producing warnings
+   for invalid uses of the value returned from these functions.
+   On pre-ANSI systems without 'const', the config.h file is supposed to
+   contain "#define const".  */
+# define gettext(Msgid) ((const char *) (Msgid))
+# define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid))
+# define dcgettext(Domainname, Msgid, Category) \
+    ((void) (Category), dgettext (Domainname, Msgid))
+# define ngettext(Msgid1, Msgid2, N) \
+    ((N) == 1 \
+     ? ((void) (Msgid2), (const char *) (Msgid1)) \
+     : ((void) (Msgid1), (const char *) (Msgid2)))
+# define dngettext(Domainname, Msgid1, Msgid2, N) \
+    ((void) (Domainname), ngettext (Msgid1, Msgid2, N))
+# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
+    ((void) (Category), dngettext(Domainname, Msgid1, Msgid2, N))
+# define textdomain(Domainname) ((const char *) (Domainname))
+# define bindtextdomain(Domainname, Dirname) \
+    ((void) (Domainname), (const char *) (Dirname))
+# define bind_textdomain_codeset(Domainname, Codeset) \
+    ((void) (Domainname), (const char *) (Codeset))
+
+#endif
+
+/* A pseudo function call that serves as a marker for the automated
+   extraction of messages, but does not call gettext().  The run-time
+   translation is done at a different place in the code.
+   The argument, String, should be a literal string.  Concatenated strings
+   and other string expressions won't work.
+   The macro's expansion is not parenthesized, so that it is suitable as
+   initializer for static 'char[]' or 'const char[]' variables.  */
+#define gettext_noop(String) String
+
+/* The separator between msgctxt and msgid in a .mo file.  */
+#define GETTEXT_CONTEXT_GLUE "\004"
+
+/* Pseudo function calls, taking a MSGCTXT and a MSGID instead of just a
+   MSGID.  MSGCTXT and MSGID must be string literals.  MSGCTXT should be
+   short and rarely need to change.
+   The letter 'p' stands for 'particular' or 'special'.  */
+#ifdef DEFAULT_TEXT_DOMAIN
+# define pgettext(Msgctxt, Msgid) \
+   pgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
+#else
+# define pgettext(Msgctxt, Msgid) \
+   pgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
+#endif
+#define dpgettext(Domainname, Msgctxt, Msgid) \
+  pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
+#define dcpgettext(Domainname, Msgctxt, Msgid, Category) \
+  pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, Category)
+#ifdef DEFAULT_TEXT_DOMAIN
+# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \
+   npgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
+#else
+# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \
+   npgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
+#endif
+#define dnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N) \
+  npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
+#define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \
+  npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category)
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+pgettext_aux (const char *domain,
+	      const char *msg_ctxt_id, const char *msgid,
+	      int category)
+{
+  const char *translation = dcgettext (domain, msg_ctxt_id, category);
+  if (translation == msg_ctxt_id)
+    return msgid;
+  else
+    return translation;
+}
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+npgettext_aux (const char *domain,
+	       const char *msg_ctxt_id, const char *msgid,
+	       const char *msgid_plural, unsigned long int n,
+	       int category)
+{
+  const char *translation =
+    dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
+  if (translation == msg_ctxt_id || translation == msgid_plural)
+    return (n == 1 ? msgid : msgid_plural);
+  else
+    return translation;
+}
+
+/* The same thing extended for non-constant arguments.  Here MSGCTXT and MSGID
+   can be arbitrary expressions.  But for string literals these macros are
+   less efficient than those above.  */
+
+#include <string.h>
+
+#define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS \
+  (((__GNUC__ >= 3 || __GNUG__ >= 2) && !__STRICT_ANSI__) \
+   /* || __STDC_VERSION__ >= 199901L */ )
+
+#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+#include <stdlib.h>
+#endif
+
+#define pgettext_expr(Msgctxt, Msgid) \
+  dcpgettext_expr (NULL, Msgctxt, Msgid, LC_MESSAGES)
+#define dpgettext_expr(Domainname, Msgctxt, Msgid) \
+  dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES)
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+dcpgettext_expr (const char *domain,
+		 const char *msgctxt, const char *msgid,
+		 int category)
+{
+  size_t msgctxt_len = strlen (msgctxt) + 1;
+  size_t msgid_len = strlen (msgid) + 1;
+  const char *translation;
+#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+  char msg_ctxt_id[msgctxt_len + msgid_len];
+#else
+  char buf[1024];
+  char *msg_ctxt_id =
+    (msgctxt_len + msgid_len <= sizeof (buf)
+     ? buf
+     : (char *) malloc (msgctxt_len + msgid_len));
+  if (msg_ctxt_id != NULL)
+#endif
+    {
+      memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
+      msg_ctxt_id[msgctxt_len - 1] = '\004';
+      memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
+      translation = dcgettext (domain, msg_ctxt_id, category);
+#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+      if (msg_ctxt_id != buf)
+	free (msg_ctxt_id);
+#endif
+      if (translation != msg_ctxt_id)
+	return translation;
+    }
+  return msgid;
+}
+
+#define npgettext_expr(Msgctxt, Msgid, MsgidPlural, N) \
+  dcnpgettext_expr (NULL, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES)
+#define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \
+  dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES)
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+dcnpgettext_expr (const char *domain,
+		  const char *msgctxt, const char *msgid,
+		  const char *msgid_plural, unsigned long int n,
+		  int category)
+{
+  size_t msgctxt_len = strlen (msgctxt) + 1;
+  size_t msgid_len = strlen (msgid) + 1;
+  const char *translation;
+#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+  char msg_ctxt_id[msgctxt_len + msgid_len];
+#else
+  char buf[1024];
+  char *msg_ctxt_id =
+    (msgctxt_len + msgid_len <= sizeof (buf)
+     ? buf
+     : (char *) malloc (msgctxt_len + msgid_len));
+  if (msg_ctxt_id != NULL)
+#endif
+    {
+      memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
+      msg_ctxt_id[msgctxt_len - 1] = '\004';
+      memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
+      translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
+#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+      if (msg_ctxt_id != buf)
+	free (msg_ctxt_id);
+#endif
+      if (!(translation == msg_ctxt_id || translation == msgid_plural))
+	return translation;
+    }
+  return (n == 1 ? msgid : msgid_plural);
+}
+
+#endif /* _LIBGETTEXT_H */
diff --git a/parted-1.8.7/lib/gnulib.mk b/parted-1.8.7/lib/gnulib.mk
new file mode 100644
index 0000000..6408020
--- /dev/null
+++ b/parted-1.8.7/lib/gnulib.mk
@@ -0,0 +1,787 @@
+## DO NOT EDIT! GENERATED AUTOMATICALLY!
+## Process this file with automake to produce Makefile.in.
+# Copyright (C) 2004-2007 Free Software Foundation, Inc.
+#
+# This file is free software, distributed under the terms of the GNU
+# General Public License.  As a special exception to the GNU General
+# Public License, this file may be distributed as part of a program
+# that contains a configuration script generated by Autoconf, under
+# the same distribution terms as the rest of that program.
+#
+# Generated by gnulib-tool.
+# Reproduce by: gnulib-tool --import --dir=. --local-dir=gl --lib=libparted --source-base=lib --m4-base=m4 --doc-base=doc --aux-dir=build-aux --avoid=lock --avoid=size_max --avoid=xsize --avoid=canonicalize-lgpl --libtool --macro-prefix=gl alloca announce-gen assert atexit calloc closeout config-h configmake fdl free gettext gnupload inttypes lib-ignore long-options malloc memchr memcmp memcpy memmove memset realloc rename rpmatch safe-read stdbool strcspn strtod strtol utime version-etc-fsf
+
+AUTOMAKE_OPTIONS = 1.5 gnits
+
+noinst_HEADERS =
+noinst_LIBRARIES =
+noinst_LTLIBRARIES =
+EXTRA_DIST =
+BUILT_SOURCES =
+SUFFIXES =
+MOSTLYCLEANFILES = core *.stackdump
+MOSTLYCLEANDIRS =
+CLEANFILES =
+DISTCLEANFILES =
+MAINTAINERCLEANFILES =
+
+AM_CPPFLAGS =
+
+noinst_LTLIBRARIES += libparted.la
+
+libparted_la_SOURCES =
+libparted_la_LIBADD = $(gl_LTLIBOBJS)
+libparted_la_DEPENDENCIES = $(gl_LTLIBOBJS)
+EXTRA_libparted_la_SOURCES =
+libparted_la_LDFLAGS = $(AM_LDFLAGS)
+
+## begin gnulib module alloca
+
+
+EXTRA_DIST += alloca.c
+
+EXTRA_libparted_la_SOURCES += alloca.c
+
+libparted_la_LIBADD += @LTALLOCA@
+libparted_la_DEPENDENCIES += @LTALLOCA@
+## end   gnulib module alloca
+
+## begin gnulib module alloca-opt
+
+BUILT_SOURCES += $(ALLOCA_H)
+
+# We need the following in order to create <alloca.h> when the system
+# doesn't have one that works with the given compiler.
+alloca.h: alloca_.h
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  cat $(srcdir)/alloca_.h; \
+	} > $@-t
+	mv -f $@-t $@
+MOSTLYCLEANFILES += alloca.h alloca.h-t
+
+EXTRA_DIST += alloca_.h
+
+## end   gnulib module alloca-opt
+
+## begin gnulib module atexit
+
+
+EXTRA_DIST += atexit.c
+
+EXTRA_libparted_la_SOURCES += atexit.c
+
+## end   gnulib module atexit
+
+## begin gnulib module calloc
+
+
+EXTRA_DIST += calloc.c
+
+EXTRA_libparted_la_SOURCES += calloc.c
+
+## end   gnulib module calloc
+
+## begin gnulib module close-stream
+
+
+EXTRA_DIST += close-stream.c close-stream.h
+
+EXTRA_libparted_la_SOURCES += close-stream.c
+
+## end   gnulib module close-stream
+
+## begin gnulib module closeout
+
+
+EXTRA_DIST += closeout.c closeout.h
+
+EXTRA_libparted_la_SOURCES += closeout.c
+
+## end   gnulib module closeout
+
+## begin gnulib module configmake
+
+# Retrieve values of the variables through 'configure' followed by
+# 'make', not directly through 'configure', so that a user who
+# sets some of these variables consistently on the 'make' command
+# line gets correct results.
+#
+# One advantage of this approach, compared to the classical
+# approach of adding -DLIBDIR=\"$(libdir)\" etc. to AM_CPPFLAGS,
+# is that it protects against the use of undefined variables.
+# If, say, $(libdir) is not set in the Makefile, LIBDIR is not
+# defined by this module, and code using LIBDIR gives a
+# compilation error.
+#
+# Another advantage is that 'make' output is shorter.
+#
+# Listed in the same order as the GNU makefile conventions.
+# The Automake-defined pkg* macros are appended, in the order
+# listed in the Automake 1.10a+ documentation.
+configmake.h: Makefile
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  echo '#define PREFIX "$(prefix)"'; \
+	  echo '#define EXEC_PREFIX "$(exec_prefix)"'; \
+	  echo '#define BINDIR "$(bindir)"'; \
+	  echo '#define SBINDIR "$(sbindir)"'; \
+	  echo '#define LIBEXECDIR "$(libexecdir)"'; \
+	  echo '#define DATAROOTDIR "$(datarootdir)"'; \
+	  echo '#define DATADIR "$(datadir)"'; \
+	  echo '#define SYSCONFDIR "$(sysconfdir)"'; \
+	  echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \
+	  echo '#define LOCALSTATEDIR "$(localstatedir)"'; \
+	  echo '#define INCLUDEDIR "$(includedir)"'; \
+	  echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \
+	  echo '#define DOCDIR "$(docdir)"'; \
+	  echo '#define INFODIR "$(infodir)"'; \
+	  echo '#define HTMLDIR "$(htmldir)"'; \
+	  echo '#define DVIDIR "$(dvidir)"'; \
+	  echo '#define PDFDIR "$(pdfdir)"'; \
+	  echo '#define PSDIR "$(psdir)"'; \
+	  echo '#define LIBDIR "$(libdir)"'; \
+	  echo '#define LISPDIR "$(lispdir)"'; \
+	  echo '#define LOCALEDIR "$(localedir)"'; \
+	  echo '#define MANDIR "$(mandir)"'; \
+	  echo '#define MANEXT "$(manext)"'; \
+	  echo '#define PKGDATADIR "$(pkgdatadir)"'; \
+	  echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \
+	  echo '#define PKGLIBDIR "$(pkglibdir)"'; \
+	  echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \
+	} | sed '/""/d' > $@-t
+	mv $@-t $@
+BUILT_SOURCES += configmake.h
+CLEANFILES += configmake.h configmake.h-t
+
+## end   gnulib module configmake
+
+## begin gnulib module dirname
+
+
+EXTRA_DIST += basename.c dirname.c dirname.h stripslash.c
+
+EXTRA_libparted_la_SOURCES += basename.c dirname.c stripslash.c
+
+## end   gnulib module dirname
+
+## begin gnulib module error
+
+
+EXTRA_DIST += error.c error.h
+
+EXTRA_libparted_la_SOURCES += error.c
+
+## end   gnulib module error
+
+## begin gnulib module exitfail
+
+
+EXTRA_DIST += exitfail.c exitfail.h
+
+EXTRA_libparted_la_SOURCES += exitfail.c
+
+## end   gnulib module exitfail
+
+## begin gnulib module fpending
+
+
+EXTRA_DIST += __fpending.c __fpending.h
+
+EXTRA_libparted_la_SOURCES += __fpending.c
+
+## end   gnulib module fpending
+
+## begin gnulib module free
+
+
+EXTRA_DIST += free.c
+
+EXTRA_libparted_la_SOURCES += free.c
+
+## end   gnulib module free
+
+## begin gnulib module full-write
+
+libparted_la_SOURCES += full-write.h full-write.c
+
+## end   gnulib module full-write
+
+## begin gnulib module getopt
+
+BUILT_SOURCES += $(GETOPT_H)
+
+# We need the following in order to create <getopt.h> when the system
+# doesn't have one that works with the given compiler.
+getopt.h: getopt_.h
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  cat $(srcdir)/getopt_.h; \
+	} > $@-t
+	mv -f $@-t $@
+MOSTLYCLEANFILES += getopt.h getopt.h-t
+
+EXTRA_DIST += getopt.c getopt1.c getopt_.h getopt_int.h
+
+EXTRA_libparted_la_SOURCES += getopt.c getopt1.c
+
+## end   gnulib module getopt
+
+## begin gnulib module gettext
+
+# This is for those projects which use "gettextize --intl" to put a source-code
+# copy of libintl into their package. In such projects, every Makefile.am needs
+# -I$(top_builddir)/intl, so that <libintl.h> can be found in this directory.
+# For the Makefile.ams in other directories it is the maintainer's
+# responsibility; for the one from gnulib we do it here.
+# This option has no effect when the user disables NLS (because then the intl
+# directory contains no libintl.h file) or when the project does not use
+# "gettextize --intl".
+#AM_CPPFLAGS += -I$(top_builddir)/intl
+
+## end   gnulib module gettext
+
+## begin gnulib module gettext-h
+
+libparted_la_SOURCES += gettext.h
+
+## end   gnulib module gettext-h
+
+## begin gnulib module inttypes
+
+BUILT_SOURCES += $(INTTYPES_H)
+
+# We need the following in order to create <inttypes.h> when the system
+# doesn't have one that works with the given compiler.
+inttypes.h: inttypes_.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  sed -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
+	      -e 's|@''ABSOLUTE_INTTYPES_H''@|$(ABSOLUTE_INTTYPES_H)|g' \
+	      -e 's/@''PRI_MACROS_BROKEN''@/$(PRI_MACROS_BROKEN)/g' \
+	      -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
+	      -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
+	      -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \
+	      -e 's/@''GNULIB_IMAXABS''@/$(GNULIB_IMAXABS)/g' \
+	      -e 's/@''GNULIB_IMAXDIV''@/$(GNULIB_IMAXDIV)/g' \
+	      -e 's/@''GNULIB_STRTOIMAX''@/$(GNULIB_STRTOIMAX)/g' \
+	      -e 's/@''GNULIB_STRTOUMAX''@/$(GNULIB_STRTOUMAX)/g' \
+	      -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \
+	      -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \
+	      -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \
+	      -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \
+	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+	      < $(srcdir)/inttypes_.h; \
+	} > $@-t
+	mv $@-t $@
+MOSTLYCLEANFILES += inttypes.h inttypes.h-t
+
+EXTRA_DIST += inttypes_.h
+
+## end   gnulib module inttypes
+
+## begin gnulib module link-warning
+
+LINK_WARNING_H=$(top_srcdir)/build-aux/link-warning.h
+
+## end   gnulib module link-warning
+
+## begin gnulib module localcharset
+
+libparted_la_SOURCES += localcharset.h localcharset.c
+
+# We need the following in order to install a simple file in $(libdir)
+# which is shared with other installed packages. We use a list of referencing
+# packages so that "make uninstall" will remove the file if and only if it
+# is not used by another installed package.
+# On systems with glibc-2.1 or newer, the file is redundant, therefore we
+# avoid installing it.
+
+all-local: charset.alias ref-add.sed ref-del.sed
+
+charset_alias = $(DESTDIR)$(libdir)/charset.alias
+charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
+install-exec-local: all-local
+	test $(GLIBC21) != no || $(mkinstalldirs) $(DESTDIR)$(libdir)
+	if test -f $(charset_alias); then \
+	  sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \
+	  $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
+	  rm -f $(charset_tmp) ; \
+	else \
+	  if test $(GLIBC21) = no; then \
+	    sed -f ref-add.sed charset.alias > $(charset_tmp) ; \
+	    $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
+	    rm -f $(charset_tmp) ; \
+	  fi ; \
+	fi
+
+uninstall-local: all-local
+	if test -f $(charset_alias); then \
+	  sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \
+	  if grep '^# Packages using this file: $$' $(charset_tmp) \
+	      > /dev/null; then \
+	    rm -f $(charset_alias); \
+	  else \
+	    $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \
+	  fi; \
+	  rm -f $(charset_tmp); \
+	fi
+
+charset.alias: config.charset
+	rm -f t-$@ $@
+	$(SHELL) $(srcdir)/config.charset '$(host)' > t-$@
+	mv t-$@ $@
+
+SUFFIXES += .sed .sin
+.sin.sed:
+	rm -f t-$@ $@
+	sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@
+	mv t-$@ $@
+
+CLEANFILES += charset.alias ref-add.sed ref-del.sed
+
+EXTRA_DIST += config.charset ref-add.sin ref-del.sin
+
+## end   gnulib module localcharset
+
+## begin gnulib module long-options
+
+
+EXTRA_DIST += long-options.c long-options.h
+
+EXTRA_libparted_la_SOURCES += long-options.c
+
+## end   gnulib module long-options
+
+## begin gnulib module malloc
+
+
+EXTRA_DIST += malloc.c
+
+EXTRA_libparted_la_SOURCES += malloc.c
+
+## end   gnulib module malloc
+
+## begin gnulib module memchr
+
+
+EXTRA_DIST += memchr.c
+
+EXTRA_libparted_la_SOURCES += memchr.c
+
+## end   gnulib module memchr
+
+## begin gnulib module memcmp
+
+
+EXTRA_DIST += memcmp.c
+
+EXTRA_libparted_la_SOURCES += memcmp.c
+
+## end   gnulib module memcmp
+
+## begin gnulib module memcpy
+
+
+EXTRA_DIST += memcpy.c
+
+EXTRA_libparted_la_SOURCES += memcpy.c
+
+## end   gnulib module memcpy
+
+## begin gnulib module memmove
+
+
+EXTRA_DIST += memmove.c
+
+EXTRA_libparted_la_SOURCES += memmove.c
+
+## end   gnulib module memmove
+
+## begin gnulib module memset
+
+
+EXTRA_DIST += memset.c
+
+EXTRA_libparted_la_SOURCES += memset.c
+
+## end   gnulib module memset
+
+## begin gnulib module quotearg
+
+
+EXTRA_DIST += quotearg.c quotearg.h
+
+EXTRA_libparted_la_SOURCES += quotearg.c
+
+## end   gnulib module quotearg
+
+## begin gnulib module realloc
+
+
+EXTRA_DIST += realloc.c
+
+EXTRA_libparted_la_SOURCES += realloc.c
+
+## end   gnulib module realloc
+
+## begin gnulib module regex
+
+
+EXTRA_DIST += regcomp.c regex.c regex.h regex_internal.c regex_internal.h regexec.c
+
+EXTRA_libparted_la_SOURCES += regcomp.c regex.c regex_internal.c regexec.c
+
+## end   gnulib module regex
+
+## begin gnulib module rename
+
+
+EXTRA_DIST += rename.c
+
+EXTRA_libparted_la_SOURCES += rename.c
+
+## end   gnulib module rename
+
+## begin gnulib module rpmatch
+
+
+EXTRA_DIST += rpmatch.c
+
+EXTRA_libparted_la_SOURCES += rpmatch.c
+
+## end   gnulib module rpmatch
+
+## begin gnulib module safe-read
+
+
+EXTRA_DIST += safe-read.c safe-read.h
+
+EXTRA_libparted_la_SOURCES += safe-read.c
+
+## end   gnulib module safe-read
+
+## begin gnulib module safe-write
+
+
+EXTRA_DIST += safe-write.c safe-write.h
+
+EXTRA_libparted_la_SOURCES += safe-write.c
+
+## end   gnulib module safe-write
+
+## begin gnulib module stdbool
+
+BUILT_SOURCES += $(STDBOOL_H)
+
+# We need the following in order to create <stdbool.h> when the system
+# doesn't have one that works.
+stdbool.h: stdbool_.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool_.h; \
+	} > $@-t
+	mv $@-t $@
+MOSTLYCLEANFILES += stdbool.h stdbool.h-t
+
+EXTRA_DIST += stdbool_.h
+
+## end   gnulib module stdbool
+
+## begin gnulib module stdint
+
+BUILT_SOURCES += $(STDINT_H)
+
+# We need the following in order to create <stdint.h> when the system
+# doesn't have one that works with the given compiler.
+stdint.h: stdint_.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
+	      -e 's|@''ABSOLUTE_STDINT_H''@|$(ABSOLUTE_STDINT_H)|g' \
+	      -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \
+	      -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
+	      -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \
+	      -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \
+	      -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
+	      -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
+	      -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \
+	      -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \
+	      -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \
+	      -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \
+	      -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \
+	      -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \
+	      -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \
+	      -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \
+	      -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \
+	      -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \
+	      -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \
+	      -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \
+	      -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \
+	      < $(srcdir)/stdint_.h; \
+	} > $@-t
+	mv $@-t $@
+MOSTLYCLEANFILES += stdint.h stdint.h-t
+
+EXTRA_DIST += stdint_.h
+
+## end   gnulib module stdint
+
+## begin gnulib module stdlib
+
+BUILT_SOURCES += stdlib.h
+
+# We need the following in order to create <stdlib.h> when the system
+# doesn't have one that works with the given compiler.
+stdlib.h: stdlib_.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+	  sed -e 's|@''ABSOLUTE_STDLIB_H''@|$(ABSOLUTE_STDLIB_H)|g' \
+	      -e 's|@''GNULIB_GETSUBOPT''@|$(GNULIB_GETSUBOPT)|g' \
+	      -e 's|@''GNULIB_MKDTEMP''@|$(GNULIB_MKDTEMP)|g' \
+	      -e 's|@''GNULIB_MKSTEMP''@|$(GNULIB_MKSTEMP)|g' \
+	      -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
+	      -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \
+	      -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
+	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+	      < $(srcdir)/stdlib_.h; \
+	} > $@-t
+	mv $@-t $@
+MOSTLYCLEANFILES += stdlib.h stdlib.h-t
+
+EXTRA_DIST += stdlib_.h
+
+## end   gnulib module stdlib
+
+## begin gnulib module strcspn
+
+
+EXTRA_DIST += strcspn.c
+
+EXTRA_libparted_la_SOURCES += strcspn.c
+
+## end   gnulib module strcspn
+
+## begin gnulib module string
+
+BUILT_SOURCES += string.h
+
+# We need the following in order to create <string.h> when the system
+# doesn't have one that works with the given compiler.
+string.h: string_.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+	  sed -e 's|@''ABSOLUTE_STRING_H''@|$(ABSOLUTE_STRING_H)|g' \
+	      -e 's|@''GNULIB_MBSLEN''@|$(GNULIB_MBSLEN)|g' \
+	      -e 's|@''GNULIB_MBSCHR''@|$(GNULIB_MBSCHR)|g' \
+	      -e 's|@''GNULIB_MBSRCHR''@|$(GNULIB_MBSRCHR)|g' \
+	      -e 's|@''GNULIB_MBSSTR''@|$(GNULIB_MBSSTR)|g' \
+	      -e 's|@''GNULIB_MBSCASECMP''@|$(GNULIB_MBSCASECMP)|g' \
+	      -e 's|@''GNULIB_MBSNCASECMP''@|$(GNULIB_MBSNCASECMP)|g' \
+	      -e 's|@''GNULIB_MBSPCASECMP''@|$(GNULIB_MBSPCASECMP)|g' \
+	      -e 's|@''GNULIB_MBSCASESTR''@|$(GNULIB_MBSCASESTR)|g' \
+	      -e 's|@''GNULIB_MBSCSPN''@|$(GNULIB_MBSCSPN)|g' \
+	      -e 's|@''GNULIB_MBSPBRK''@|$(GNULIB_MBSPBRK)|g' \
+	      -e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \
+	      -e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \
+	      -e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \
+	      -e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \
+	      -e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \
+	      -e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \
+	      -e 's|@''GNULIB_STPCPY''@|$(GNULIB_STPCPY)|g' \
+	      -e 's|@''GNULIB_STPNCPY''@|$(GNULIB_STPNCPY)|g' \
+	      -e 's|@''GNULIB_STRCHRNUL''@|$(GNULIB_STRCHRNUL)|g' \
+	      -e 's|@''GNULIB_STRDUP''@|$(GNULIB_STRDUP)|g' \
+	      -e 's|@''GNULIB_STRNDUP''@|$(GNULIB_STRNDUP)|g' \
+	      -e 's|@''GNULIB_STRNLEN''@|$(GNULIB_STRNLEN)|g' \
+	      -e 's|@''GNULIB_STRPBRK''@|$(GNULIB_STRPBRK)|g' \
+	      -e 's|@''GNULIB_STRSEP''@|$(GNULIB_STRSEP)|g' \
+	      -e 's|@''GNULIB_STRCASESTR''@|$(GNULIB_STRCASESTR)|g' \
+	      -e 's|@''GNULIB_STRTOK_R''@|$(GNULIB_STRTOK_R)|g' \
+	      -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \
+	      -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \
+	      -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \
+	      -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \
+	      -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \
+	      -e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \
+	      -e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|g' \
+	      -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \
+	      -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \
+	      -e 's|@''HAVE_STRNDUP''@|$(HAVE_STRNDUP)|g' \
+	      -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \
+	      -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \
+	      -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \
+	      -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \
+	      -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \
+	      -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \
+	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+	      < $(srcdir)/string_.h; \
+	} > $@-t
+	mv $@-t $@
+MOSTLYCLEANFILES += string.h string.h-t
+
+EXTRA_DIST += string_.h
+
+## end   gnulib module string
+
+## begin gnulib module strndup
+
+
+EXTRA_DIST += strndup.c
+
+EXTRA_libparted_la_SOURCES += strndup.c
+
+## end   gnulib module strndup
+
+## begin gnulib module strnlen
+
+
+EXTRA_DIST += strnlen.c
+
+EXTRA_libparted_la_SOURCES += strnlen.c
+
+## end   gnulib module strnlen
+
+## begin gnulib module strtod
+
+LIBS += $(POW_LIB)
+
+EXTRA_DIST += strtod.c
+
+EXTRA_libparted_la_SOURCES += strtod.c
+
+## end   gnulib module strtod
+
+## begin gnulib module strtol
+
+
+EXTRA_DIST += strtol.c
+
+EXTRA_libparted_la_SOURCES += strtol.c
+
+## end   gnulib module strtol
+
+## begin gnulib module unistd
+
+BUILT_SOURCES += unistd.h
+
+# We need the following in order to create an empty placeholder for
+# <unistd.h> when the system doesn't have one.
+unistd.h: unistd_.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  sed -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
+	      -e 's|@''ABSOLUTE_UNISTD_H''@|$(ABSOLUTE_UNISTD_H)|g' \
+	      -e 's|@''GNULIB_CHOWN''@|$(GNULIB_CHOWN)|g' \
+	      -e 's|@''GNULIB_DUP2''@|$(GNULIB_DUP2)|g' \
+	      -e 's|@''GNULIB_FCHDIR''@|$(GNULIB_FCHDIR)|g' \
+	      -e 's|@''GNULIB_FTRUNCATE''@|$(GNULIB_FTRUNCATE)|g' \
+	      -e 's|@''GNULIB_GETCWD''@|$(GNULIB_GETCWD)|g' \
+	      -e 's|@''GNULIB_GETLOGIN_R''@|$(GNULIB_GETLOGIN_R)|g' \
+	      -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \
+	      -e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \
+	      -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
+	      -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \
+	      -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \
+	      -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \
+	      -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
+	      -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
+	      -e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \
+	      -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
+	      < $(srcdir)/unistd_.h; \
+	} > $@-t
+	mv $@-t $@
+MOSTLYCLEANFILES += unistd.h unistd.h-t
+
+EXTRA_DIST += unistd_.h
+
+## end   gnulib module unistd
+
+## begin gnulib module utime
+
+
+EXTRA_DIST += utime.c
+
+EXTRA_libparted_la_SOURCES += utime.c
+
+## end   gnulib module utime
+
+## begin gnulib module version-etc
+
+libparted_la_SOURCES += version-etc.h version-etc.c
+
+## end   gnulib module version-etc
+
+## begin gnulib module version-etc-fsf
+
+libparted_la_SOURCES += version-etc-fsf.c
+
+## end   gnulib module version-etc-fsf
+
+## begin gnulib module wchar
+
+BUILT_SOURCES += $(WCHAR_H)
+
+# We need the following in order to create <wchar.h> when the system
+# version does not work standalone.
+wchar.h: wchar_.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  sed -e 's|@''ABSOLUTE_WCHAR_H''@|$(ABSOLUTE_WCHAR_H)|g' \
+	    < $(srcdir)/wchar_.h; \
+	} > $@-t
+	mv $@-t $@
+MOSTLYCLEANFILES += wchar.h wchar.h-t
+
+EXTRA_DIST += wchar_.h
+
+## end   gnulib module wchar
+
+## begin gnulib module wctype
+
+BUILT_SOURCES += $(WCTYPE_H)
+
+# We need the following in order to create <wctype.h> when the system
+# doesn't have one that works with the given compiler.
+wctype.h: wctype_.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  sed -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
+	      -e 's|@''ABSOLUTE_WCTYPE_H''@|$(ABSOLUTE_WCTYPE_H)|g' \
+	      -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \
+	      -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
+	      < $(srcdir)/wctype_.h; \
+	} > $@-t
+	mv $@-t $@
+MOSTLYCLEANFILES += wctype.h wctype.h-t
+
+EXTRA_DIST += wctype_.h
+
+## end   gnulib module wctype
+
+## begin gnulib module xalloc
+
+
+EXTRA_DIST += xalloc.h xmalloc.c
+
+EXTRA_libparted_la_SOURCES += xmalloc.c
+
+## end   gnulib module xalloc
+
+## begin gnulib module xalloc-die
+
+libparted_la_SOURCES += xalloc-die.c
+
+## end   gnulib module xalloc-die
+
+## begin gnulib module xstrndup
+
+libparted_la_SOURCES += xstrndup.h xstrndup.c
+
+## end   gnulib module xstrndup
+
+
+mostlyclean-local: mostlyclean-generic
+	@for dir in '' $(MOSTLYCLEANDIRS); do \
+	  if test -n "$$dir" && test -d $$dir; then \
+	    echo "rmdir $$dir"; rmdir $$dir; \
+	  fi; \
+	done
diff --git a/parted-1.8.7/lib/inttypes_.h b/parted-1.8.7/lib/inttypes_.h
new file mode 100644
index 0000000..fcf95b0
--- /dev/null
+++ b/parted-1.8.7/lib/inttypes_.h
@@ -0,0 +1,1099 @@
+/* Copyright (C) 2006-2007 Free Software Foundation, Inc.
+   Written by Paul Eggert, Bruno Haible, Derek Price.
+   This file is part of gnulib.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Include the original <inttypes.h> if it exists, and if this file
+   has not been included yet or if this file includes gnulib stdint.h
+   which in turn includes this file.  */
+#if ! defined INTTYPES_H || defined _GL_JUST_INCLUDE_ABSOLUTE_INTTYPES_H
+# if @HAVE_INTTYPES_H@
+#  if defined __DECC && __DECC_VER >= 60000000
+#   include_next <inttypes.h>
+#  else
+#   include @ABSOLUTE_INTTYPES_H@
+#  endif
+# endif
+#endif
+
+#if ! defined INTTYPES_H && ! defined _GL_JUST_INCLUDE_ABSOLUTE_INTTYPES_H
+#define INTTYPES_H
+
+/*
+ * ISO C 99 <inttypes.h> for platforms that lack it.
+ * <http://www.opengroup.org/susv3xbd/inttypes.h.html>
+ */
+
+/* Include <stdint.h> or the gnulib replacement.  */
+#include <stdint.h>
+/* Get CHAR_BIT.  */
+#include <limits.h>
+
+#if !(INT_MIN == INT32_MIN && INT_MAX == INT32_MAX)
+# error "This file assumes that 'int' has exactly 32 bits. Please report your platform and compiler to <bug-gnulib@gnu.org>."
+#endif
+
+/* The definition of GL_LINK_WARNING is copied here.  */
+
+/* 7.8.1 Macros for format specifiers */
+
+#if ! defined __cplusplus || defined __STDC_FORMAT_MACROS
+
+# if defined _TNS_R_TARGET
+   /* Tandem NonStop R series and compatible platforms released before
+      July 2005 support %Ld but not %lld.  */
+#  define _LONG_LONG_FORMAT_PREFIX "L"
+# else
+#  define _LONG_LONG_FORMAT_PREFIX "ll"
+# endif
+
+# if !defined PRId8 || @PRI_MACROS_BROKEN@
+#  undef PRId8
+#  ifdef INT8_MAX
+#   define PRId8 "d"
+#  endif
+# endif
+# if !defined PRIi8 || @PRI_MACROS_BROKEN@
+#  undef PRIi8
+#  ifdef INT8_MAX
+#   define PRIi8 "i"
+#  endif
+# endif
+# if !defined PRIo8 || @PRI_MACROS_BROKEN@
+#  undef PRIo8
+#  ifdef UINT8_MAX
+#   define PRIo8 "o"
+#  endif
+# endif
+# if !defined PRIu8 || @PRI_MACROS_BROKEN@
+#  undef PRIu8
+#  ifdef UINT8_MAX
+#   define PRIu8 "u"
+#  endif
+# endif
+# if !defined PRIx8 || @PRI_MACROS_BROKEN@
+#  undef PRIx8
+#  ifdef UINT8_MAX
+#   define PRIx8 "x"
+#  endif
+# endif
+# if !defined PRIX8 || @PRI_MACROS_BROKEN@
+#  undef PRIX8
+#  ifdef UINT8_MAX
+#   define PRIX8 "X"
+#  endif
+# endif
+# if !defined PRId16 || @PRI_MACROS_BROKEN@
+#  undef PRId16
+#  ifdef INT16_MAX
+#   define PRId16 "d"
+#  endif
+# endif
+# if !defined PRIi16 || @PRI_MACROS_BROKEN@
+#  undef PRIi16
+#  ifdef INT16_MAX
+#   define PRIi16 "i"
+#  endif
+# endif
+# if !defined PRIo16 || @PRI_MACROS_BROKEN@
+#  undef PRIo16
+#  ifdef UINT16_MAX
+#   define PRIo16 "o"
+#  endif
+# endif
+# if !defined PRIu16 || @PRI_MACROS_BROKEN@
+#  undef PRIu16
+#  ifdef UINT16_MAX
+#   define PRIu16 "u"
+#  endif
+# endif
+# if !defined PRIx16 || @PRI_MACROS_BROKEN@
+#  undef PRIx16
+#  ifdef UINT16_MAX
+#   define PRIx16 "x"
+#  endif
+# endif
+# if !defined PRIX16 || @PRI_MACROS_BROKEN@
+#  undef PRIX16
+#  ifdef UINT16_MAX
+#   define PRIX16 "X"
+#  endif
+# endif
+# if !defined PRId32 || @PRI_MACROS_BROKEN@
+#  undef PRId32
+#  ifdef INT32_MAX
+#   define PRId32 "d"
+#  endif
+# endif
+# if !defined PRIi32 || @PRI_MACROS_BROKEN@
+#  undef PRIi32
+#  ifdef INT32_MAX
+#   define PRIi32 "i"
+#  endif
+# endif
+# if !defined PRIo32 || @PRI_MACROS_BROKEN@
+#  undef PRIo32
+#  ifdef UINT32_MAX
+#   define PRIo32 "o"
+#  endif
+# endif
+# if !defined PRIu32 || @PRI_MACROS_BROKEN@
+#  undef PRIu32
+#  ifdef UINT32_MAX
+#   define PRIu32 "u"
+#  endif
+# endif
+# if !defined PRIx32 || @PRI_MACROS_BROKEN@
+#  undef PRIx32
+#  ifdef UINT32_MAX
+#   define PRIx32 "x"
+#  endif
+# endif
+# if !defined PRIX32 || @PRI_MACROS_BROKEN@
+#  undef PRIX32
+#  ifdef UINT32_MAX
+#   define PRIX32 "X"
+#  endif
+# endif
+# ifdef INT64_MAX
+#  if INT64_MAX == LONG_MAX
+#   define _PRI64_PREFIX "l"
+#  elif defined _MSC_VER || defined __MINGW32__
+#   define _PRI64_PREFIX "I64"
+#  elif @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+#   define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX
+#  endif
+#  if !defined PRId64 || @PRI_MACROS_BROKEN@
+#   undef PRId64
+#   define PRId64 _PRI64_PREFIX "d"
+#  endif
+#  if !defined PRIi64 || @PRI_MACROS_BROKEN@
+#   undef PRIi64
+#   define PRIi64 _PRI64_PREFIX "i"
+#  endif
+# endif
+# ifdef UINT64_MAX
+#  if UINT64_MAX == ULONG_MAX
+#   define _PRIu64_PREFIX "l"
+#  elif defined _MSC_VER || defined __MINGW32__
+#   define _PRIu64_PREFIX "I64"
+#  elif @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+#   define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX
+#  endif
+#  if !defined PRIo64 || @PRI_MACROS_BROKEN@
+#   undef PRIo64
+#   define PRIo64 _PRIu64_PREFIX "o"
+#  endif
+#  if !defined PRIu64 || @PRI_MACROS_BROKEN@
+#   undef PRIu64
+#   define PRIu64 _PRIu64_PREFIX "u"
+#  endif
+#  if !defined PRIx64 || @PRI_MACROS_BROKEN@
+#   undef PRIx64
+#   define PRIx64 _PRIu64_PREFIX "x"
+#  endif
+#  if !defined PRIX64 || @PRI_MACROS_BROKEN@
+#   undef PRIX64
+#   define PRIX64 _PRIu64_PREFIX "X"
+#  endif
+# endif
+
+# if !defined PRIdLEAST8 || @PRI_MACROS_BROKEN@
+#  undef PRIdLEAST8
+#  define PRIdLEAST8 "d"
+# endif
+# if !defined PRIiLEAST8 || @PRI_MACROS_BROKEN@
+#  undef PRIiLEAST8
+#  define PRIiLEAST8 "i"
+# endif
+# if !defined PRIoLEAST8 || @PRI_MACROS_BROKEN@
+#  undef PRIoLEAST8
+#  define PRIoLEAST8 "o"
+# endif
+# if !defined PRIuLEAST8 || @PRI_MACROS_BROKEN@
+#  undef PRIuLEAST8
+#  define PRIuLEAST8 "u"
+# endif
+# if !defined PRIxLEAST8 || @PRI_MACROS_BROKEN@
+#  undef PRIxLEAST8
+#  define PRIxLEAST8 "x"
+# endif
+# if !defined PRIXLEAST8 || @PRI_MACROS_BROKEN@
+#  undef PRIXLEAST8
+#  define PRIXLEAST8 "X"
+# endif
+# if !defined PRIdLEAST16 || @PRI_MACROS_BROKEN@
+#  undef PRIdLEAST16
+#  define PRIdLEAST16 "d"
+# endif
+# if !defined PRIiLEAST16 || @PRI_MACROS_BROKEN@
+#  undef PRIiLEAST16
+#  define PRIiLEAST16 "i"
+# endif
+# if !defined PRIoLEAST16 || @PRI_MACROS_BROKEN@
+#  undef PRIoLEAST16
+#  define PRIoLEAST16 "o"
+# endif
+# if !defined PRIuLEAST16 || @PRI_MACROS_BROKEN@
+#  undef PRIuLEAST16
+#  define PRIuLEAST16 "u"
+# endif
+# if !defined PRIxLEAST16 || @PRI_MACROS_BROKEN@
+#  undef PRIxLEAST16
+#  define PRIxLEAST16 "x"
+# endif
+# if !defined PRIXLEAST16 || @PRI_MACROS_BROKEN@
+#  undef PRIXLEAST16
+#  define PRIXLEAST16 "X"
+# endif
+# if !defined PRIdLEAST32 || @PRI_MACROS_BROKEN@
+#  undef PRIdLEAST32
+#  define PRIdLEAST32 "d"
+# endif
+# if !defined PRIiLEAST32 || @PRI_MACROS_BROKEN@
+#  undef PRIiLEAST32
+#  define PRIiLEAST32 "i"
+# endif
+# if !defined PRIoLEAST32 || @PRI_MACROS_BROKEN@
+#  undef PRIoLEAST32
+#  define PRIoLEAST32 "o"
+# endif
+# if !defined PRIuLEAST32 || @PRI_MACROS_BROKEN@
+#  undef PRIuLEAST32
+#  define PRIuLEAST32 "u"
+# endif
+# if !defined PRIxLEAST32 || @PRI_MACROS_BROKEN@
+#  undef PRIxLEAST32
+#  define PRIxLEAST32 "x"
+# endif
+# if !defined PRIXLEAST32 || @PRI_MACROS_BROKEN@
+#  undef PRIXLEAST32
+#  define PRIXLEAST32 "X"
+# endif
+# ifdef INT64_MAX
+#  if !defined PRIdLEAST64 || @PRI_MACROS_BROKEN@
+#   undef PRIdLEAST64
+#   define PRIdLEAST64 PRId64
+#  endif
+#  if !defined PRIiLEAST64 || @PRI_MACROS_BROKEN@
+#   undef PRIiLEAST64
+#   define PRIiLEAST64 PRIi64
+#  endif
+# endif
+# ifdef UINT64_MAX
+#  if !defined PRIoLEAST64 || @PRI_MACROS_BROKEN@
+#   undef PRIoLEAST64
+#   define PRIoLEAST64 PRIo64
+#  endif
+#  if !defined PRIuLEAST64 || @PRI_MACROS_BROKEN@
+#   undef PRIuLEAST64
+#   define PRIuLEAST64 PRIu64
+#  endif
+#  if !defined PRIxLEAST64 || @PRI_MACROS_BROKEN@
+#   undef PRIxLEAST64
+#   define PRIxLEAST64 PRIx64
+#  endif
+#  if !defined PRIXLEAST64 || @PRI_MACROS_BROKEN@
+#   undef PRIXLEAST64
+#   define PRIXLEAST64 PRIX64
+#  endif
+# endif
+
+# if !defined PRIdFAST8 || @PRI_MACROS_BROKEN@
+#  undef PRIdFAST8
+#  if INT_FAST8_MAX > INT32_MAX
+#   define PRIdFAST8 PRId64
+#  else
+#   define PRIdFAST8 "d"
+#  endif
+# endif
+# if !defined PRIiFAST8 || @PRI_MACROS_BROKEN@
+#  undef PRIiFAST8
+#  if INT_FAST8_MAX > INT32_MAX
+#   define PRIiFAST8 PRIi64
+#  else
+#   define PRIiFAST8 "i"
+#  endif
+# endif
+# if !defined PRIoFAST8 || @PRI_MACROS_BROKEN@
+#  undef PRIoFAST8
+#  if UINT_FAST8_MAX > UINT32_MAX
+#   define PRIoFAST8 PRIo64
+#  else
+#   define PRIoFAST8 "o"
+#  endif
+# endif
+# if !defined PRIuFAST8 || @PRI_MACROS_BROKEN@
+#  undef PRIuFAST8
+#  if UINT_FAST8_MAX > UINT32_MAX
+#   define PRIuFAST8 PRIu64
+#  else
+#   define PRIuFAST8 "u"
+#  endif
+# endif
+# if !defined PRIxFAST8 || @PRI_MACROS_BROKEN@
+#  undef PRIxFAST8
+#  if UINT_FAST8_MAX > UINT32_MAX
+#   define PRIxFAST8 PRIx64
+#  else
+#   define PRIxFAST8 "x"
+#  endif
+# endif
+# if !defined PRIXFAST8 || @PRI_MACROS_BROKEN@
+#  undef PRIXFAST8
+#  if UINT_FAST8_MAX > UINT32_MAX
+#   define PRIXFAST8 PRIX64
+#  else
+#   define PRIXFAST8 "X"
+#  endif
+# endif
+# if !defined PRIdFAST16 || @PRI_MACROS_BROKEN@
+#  undef PRIdFAST16
+#  if INT_FAST16_MAX > INT32_MAX
+#   define PRIdFAST16 PRId64
+#  else
+#   define PRIdFAST16 "d"
+#  endif
+# endif
+# if !defined PRIiFAST16 || @PRI_MACROS_BROKEN@
+#  undef PRIiFAST16
+#  if INT_FAST16_MAX > INT32_MAX
+#   define PRIiFAST16 PRIi64
+#  else
+#   define PRIiFAST16 "i"
+#  endif
+# endif
+# if !defined PRIoFAST16 || @PRI_MACROS_BROKEN@
+#  undef PRIoFAST16
+#  if UINT_FAST16_MAX > UINT32_MAX
+#   define PRIoFAST16 PRIo64
+#  else
+#   define PRIoFAST16 "o"
+#  endif
+# endif
+# if !defined PRIuFAST16 || @PRI_MACROS_BROKEN@
+#  undef PRIuFAST16
+#  if UINT_FAST16_MAX > UINT32_MAX
+#   define PRIuFAST16 PRIu64
+#  else
+#   define PRIuFAST16 "u"
+#  endif
+# endif
+# if !defined PRIxFAST16 || @PRI_MACROS_BROKEN@
+#  undef PRIxFAST16
+#  if UINT_FAST16_MAX > UINT32_MAX
+#   define PRIxFAST16 PRIx64
+#  else
+#   define PRIxFAST16 "x"
+#  endif
+# endif
+# if !defined PRIXFAST16 || @PRI_MACROS_BROKEN@
+#  undef PRIXFAST16
+#  if UINT_FAST16_MAX > UINT32_MAX
+#   define PRIXFAST16 PRIX64
+#  else
+#   define PRIXFAST16 "X"
+#  endif
+# endif
+# if !defined PRIdFAST32 || @PRI_MACROS_BROKEN@
+#  undef PRIdFAST32
+#  if INT_FAST32_MAX > INT32_MAX
+#   define PRIdFAST32 PRId64
+#  else
+#   define PRIdFAST32 "d"
+#  endif
+# endif
+# if !defined PRIiFAST32 || @PRI_MACROS_BROKEN@
+#  undef PRIiFAST32
+#  if INT_FAST32_MAX > INT32_MAX
+#   define PRIiFAST32 PRIi64
+#  else
+#   define PRIiFAST32 "i"
+#  endif
+# endif
+# if !defined PRIoFAST32 || @PRI_MACROS_BROKEN@
+#  undef PRIoFAST32
+#  if UINT_FAST32_MAX > UINT32_MAX
+#   define PRIoFAST32 PRIo64
+#  else
+#   define PRIoFAST32 "o"
+#  endif
+# endif
+# if !defined PRIuFAST32 || @PRI_MACROS_BROKEN@
+#  undef PRIuFAST32
+#  if UINT_FAST32_MAX > UINT32_MAX
+#   define PRIuFAST32 PRIu64
+#  else
+#   define PRIuFAST32 "u"
+#  endif
+# endif
+# if !defined PRIxFAST32 || @PRI_MACROS_BROKEN@
+#  undef PRIxFAST32
+#  if UINT_FAST32_MAX > UINT32_MAX
+#   define PRIxFAST32 PRIx64
+#  else
+#   define PRIxFAST32 "x"
+#  endif
+# endif
+# if !defined PRIXFAST32 || @PRI_MACROS_BROKEN@
+#  undef PRIXFAST32
+#  if UINT_FAST32_MAX > UINT32_MAX
+#   define PRIXFAST32 PRIX64
+#  else
+#   define PRIXFAST32 "X"
+#  endif
+# endif
+# ifdef INT64_MAX
+#  if !defined PRIdFAST64 || @PRI_MACROS_BROKEN@
+#   undef PRIdFAST64
+#   define PRIdFAST64 PRId64
+#  endif
+#  if !defined PRIiFAST64 || @PRI_MACROS_BROKEN@
+#   undef PRIiFAST64
+#   define PRIiFAST64 PRIi64
+#  endif
+# endif
+# ifdef UINT64_MAX
+#  if !defined PRIoFAST64 || @PRI_MACROS_BROKEN@
+#   undef PRIoFAST64
+#   define PRIoFAST64 PRIo64
+#  endif
+#  if !defined PRIuFAST64 || @PRI_MACROS_BROKEN@
+#   undef PRIuFAST64
+#   define PRIuFAST64 PRIu64
+#  endif
+#  if !defined PRIxFAST64 || @PRI_MACROS_BROKEN@
+#   undef PRIxFAST64
+#   define PRIxFAST64 PRIx64
+#  endif
+#  if !defined PRIXFAST64 || @PRI_MACROS_BROKEN@
+#   undef PRIXFAST64
+#   define PRIXFAST64 PRIX64
+#  endif
+# endif
+
+# if !defined PRIdMAX || @PRI_MACROS_BROKEN@
+#  undef PRIdMAX
+#  if INTMAX_MAX > INT32_MAX
+#   define PRIdMAX PRId64
+#  else
+#   define PRIdMAX "ld"
+#  endif
+# endif
+# if !defined PRIiMAX || @PRI_MACROS_BROKEN@
+#  undef PRIiMAX
+#  if INTMAX_MAX > INT32_MAX
+#   define PRIiMAX PRIi64
+#  else
+#   define PRIiMAX "li"
+#  endif
+# endif
+# if !defined PRIoMAX || @PRI_MACROS_BROKEN@
+#  undef PRIoMAX
+#  if UINTMAX_MAX > UINT32_MAX
+#   define PRIoMAX PRIo64
+#  else
+#   define PRIoMAX "lo"
+#  endif
+# endif
+# if !defined PRIuMAX || @PRI_MACROS_BROKEN@
+#  undef PRIuMAX
+#  if UINTMAX_MAX > UINT32_MAX
+#   define PRIuMAX PRIu64
+#  else
+#   define PRIuMAX "lu"
+#  endif
+# endif
+# if !defined PRIxMAX || @PRI_MACROS_BROKEN@
+#  undef PRIxMAX
+#  if UINTMAX_MAX > UINT32_MAX
+#   define PRIxMAX PRIx64
+#  else
+#   define PRIxMAX "lx"
+#  endif
+# endif
+# if !defined PRIXMAX || @PRI_MACROS_BROKEN@
+#  undef PRIXMAX
+#  if UINTMAX_MAX > UINT32_MAX
+#   define PRIXMAX PRIX64
+#  else
+#   define PRIXMAX "lX"
+#  endif
+# endif
+
+# if !defined PRIdPTR || @PRI_MACROS_BROKEN@
+#  undef PRIdPTR
+#  ifdef INTPTR_MAX
+#   define PRIdPTR @PRIPTR_PREFIX@ "d"
+#  endif
+# endif
+# if !defined PRIiPTR || @PRI_MACROS_BROKEN@
+#  undef PRIiPTR
+#  ifdef INTPTR_MAX
+#   define PRIiPTR @PRIPTR_PREFIX@ "i"
+#  endif
+# endif
+# if !defined PRIoPTR || @PRI_MACROS_BROKEN@
+#  undef PRIoPTR
+#  ifdef UINTPTR_MAX
+#   define PRIoPTR @PRIPTR_PREFIX@ "o"
+#  endif
+# endif
+# if !defined PRIuPTR || @PRI_MACROS_BROKEN@
+#  undef PRIuPTR
+#  ifdef UINTPTR_MAX
+#   define PRIuPTR @PRIPTR_PREFIX@ "u"
+#  endif
+# endif
+# if !defined PRIxPTR || @PRI_MACROS_BROKEN@
+#  undef PRIxPTR
+#  ifdef UINTPTR_MAX
+#   define PRIxPTR @PRIPTR_PREFIX@ "x"
+#  endif
+# endif
+# if !defined PRIXPTR || @PRI_MACROS_BROKEN@
+#  undef PRIXPTR
+#  ifdef UINTPTR_MAX
+#   define PRIXPTR @PRIPTR_PREFIX@ "X"
+#  endif
+# endif
+
+# if !defined SCNd8 || @PRI_MACROS_BROKEN@
+#  undef SCNd8
+#  ifdef INT8_MAX
+#   define SCNd8 "hhd"
+#  endif
+# endif
+# if !defined SCNi8 || @PRI_MACROS_BROKEN@
+#  undef SCNi8
+#  ifdef INT8_MAX
+#   define SCNi8 "hhi"
+#  endif
+# endif
+# if !defined SCNo8 || @PRI_MACROS_BROKEN@
+#  undef SCNo8
+#  ifdef UINT8_MAX
+#   define SCNo8 "hho"
+#  endif
+# endif
+# if !defined SCNu8 || @PRI_MACROS_BROKEN@
+#  undef SCNu8
+#  ifdef UINT8_MAX
+#   define SCNu8 "hhu"
+#  endif
+# endif
+# if !defined SCNx8 || @PRI_MACROS_BROKEN@
+#  undef SCNx8
+#  ifdef UINT8_MAX
+#   define SCNx8 "hhx"
+#  endif
+# endif
+# if !defined SCNd16 || @PRI_MACROS_BROKEN@
+#  undef SCNd16
+#  ifdef INT16_MAX
+#   define SCNd16 "hd"
+#  endif
+# endif
+# if !defined SCNi16 || @PRI_MACROS_BROKEN@
+#  undef SCNi16
+#  ifdef INT16_MAX
+#   define SCNi16 "hi"
+#  endif
+# endif
+# if !defined SCNo16 || @PRI_MACROS_BROKEN@
+#  undef SCNo16
+#  ifdef UINT16_MAX
+#   define SCNo16 "ho"
+#  endif
+# endif
+# if !defined SCNu16 || @PRI_MACROS_BROKEN@
+#  undef SCNu16
+#  ifdef UINT16_MAX
+#   define SCNu16 "hu"
+#  endif
+# endif
+# if !defined SCNx16 || @PRI_MACROS_BROKEN@
+#  undef SCNx16
+#  ifdef UINT16_MAX
+#   define SCNx16 "hx"
+#  endif
+# endif
+# if !defined SCNd32 || @PRI_MACROS_BROKEN@
+#  undef SCNd32
+#  ifdef INT32_MAX
+#   define SCNd32 "d"
+#  endif
+# endif
+# if !defined SCNi32 || @PRI_MACROS_BROKEN@
+#  undef SCNi32
+#  ifdef INT32_MAX
+#   define SCNi32 "i"
+#  endif
+# endif
+# if !defined SCNo32 || @PRI_MACROS_BROKEN@
+#  undef SCNo32
+#  ifdef UINT32_MAX
+#   define SCNo32 "o"
+#  endif
+# endif
+# if !defined SCNu32 || @PRI_MACROS_BROKEN@
+#  undef SCNu32
+#  ifdef UINT32_MAX
+#   define SCNu32 "u"
+#  endif
+# endif
+# if !defined SCNx32 || @PRI_MACROS_BROKEN@
+#  undef SCNx32
+#  ifdef UINT32_MAX
+#   define SCNx32 "x"
+#  endif
+# endif
+# ifdef INT64_MAX
+#  if INT64_MAX == LONG_MAX
+#   define _SCN64_PREFIX "l"
+#  elif defined _MSC_VER || defined __MINGW32__
+#   define _SCN64_PREFIX "I64"
+#  elif @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+#   define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX
+#  endif
+#  if !defined SCNd64 || @PRI_MACROS_BROKEN@
+#   undef SCNd64
+#   define SCNd64 _SCN64_PREFIX "d"
+#  endif
+#  if !defined SCNi64 || @PRI_MACROS_BROKEN@
+#   undef SCNi64
+#   define SCNi64 _SCN64_PREFIX "i"
+#  endif
+# endif
+# ifdef UINT64_MAX
+#  if UINT64_MAX == ULONG_MAX
+#   define _SCNu64_PREFIX "l"
+#  elif defined _MSC_VER || defined __MINGW32__
+#   define _SCNu64_PREFIX "I64"
+#  elif @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+#   define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX
+#  endif
+#  if !defined SCNo64 || @PRI_MACROS_BROKEN@
+#   undef SCNo64
+#   define SCNo64 _SCNu64_PREFIX "o"
+#  endif
+#  if !defined SCNu64 || @PRI_MACROS_BROKEN@
+#   undef SCNu64
+#   define SCNu64 _SCNu64_PREFIX "u"
+#  endif
+#  if !defined SCNx64 || @PRI_MACROS_BROKEN@
+#   undef SCNx64
+#   define SCNx64 _SCNu64_PREFIX "x"
+#  endif
+# endif
+
+# if !defined SCNdLEAST8 || @PRI_MACROS_BROKEN@
+#  undef SCNdLEAST8
+#  define SCNdLEAST8 "hhd"
+# endif
+# if !defined SCNiLEAST8 || @PRI_MACROS_BROKEN@
+#  undef SCNiLEAST8
+#  define SCNiLEAST8 "hhi"
+# endif
+# if !defined SCNoLEAST8 || @PRI_MACROS_BROKEN@
+#  undef SCNoLEAST8
+#  define SCNoLEAST8 "hho"
+# endif
+# if !defined SCNuLEAST8 || @PRI_MACROS_BROKEN@
+#  undef SCNuLEAST8
+#  define SCNuLEAST8 "hhu"
+# endif
+# if !defined SCNxLEAST8 || @PRI_MACROS_BROKEN@
+#  undef SCNxLEAST8
+#  define SCNxLEAST8 "hhx"
+# endif
+# if !defined SCNdLEAST16 || @PRI_MACROS_BROKEN@
+#  undef SCNdLEAST16
+#  define SCNdLEAST16 "hd"
+# endif
+# if !defined SCNiLEAST16 || @PRI_MACROS_BROKEN@
+#  undef SCNiLEAST16
+#  define SCNiLEAST16 "hi"
+# endif
+# if !defined SCNoLEAST16 || @PRI_MACROS_BROKEN@
+#  undef SCNoLEAST16
+#  define SCNoLEAST16 "ho"
+# endif
+# if !defined SCNuLEAST16 || @PRI_MACROS_BROKEN@
+#  undef SCNuLEAST16
+#  define SCNuLEAST16 "hu"
+# endif
+# if !defined SCNxLEAST16 || @PRI_MACROS_BROKEN@
+#  undef SCNxLEAST16
+#  define SCNxLEAST16 "hx"
+# endif
+# if !defined SCNdLEAST32 || @PRI_MACROS_BROKEN@
+#  undef SCNdLEAST32
+#  define SCNdLEAST32 "d"
+# endif
+# if !defined SCNiLEAST32 || @PRI_MACROS_BROKEN@
+#  undef SCNiLEAST32
+#  define SCNiLEAST32 "i"
+# endif
+# if !defined SCNoLEAST32 || @PRI_MACROS_BROKEN@
+#  undef SCNoLEAST32
+#  define SCNoLEAST32 "o"
+# endif
+# if !defined SCNuLEAST32 || @PRI_MACROS_BROKEN@
+#  undef SCNuLEAST32
+#  define SCNuLEAST32 "u"
+# endif
+# if !defined SCNxLEAST32 || @PRI_MACROS_BROKEN@
+#  undef SCNxLEAST32
+#  define SCNxLEAST32 "x"
+# endif
+# ifdef INT64_MAX
+#  if !defined SCNdLEAST64 || @PRI_MACROS_BROKEN@
+#   undef SCNdLEAST64
+#   define SCNdLEAST64 SCNd64
+#  endif
+#  if !defined SCNiLEAST64 || @PRI_MACROS_BROKEN@
+#   undef SCNiLEAST64
+#   define SCNiLEAST64 SCNi64
+#  endif
+# endif
+# ifdef UINT64_MAX
+#  if !defined SCNoLEAST64 || @PRI_MACROS_BROKEN@
+#   undef SCNoLEAST64
+#   define SCNoLEAST64 SCNo64
+#  endif
+#  if !defined SCNuLEAST64 || @PRI_MACROS_BROKEN@
+#   undef SCNuLEAST64
+#   define SCNuLEAST64 SCNu64
+#  endif
+#  if !defined SCNxLEAST64 || @PRI_MACROS_BROKEN@
+#   undef SCNxLEAST64
+#   define SCNxLEAST64 SCNx64
+#  endif
+# endif
+
+# if !defined SCNdFAST8 || @PRI_MACROS_BROKEN@
+#  undef SCNdFAST8
+#  if INT_FAST8_MAX > INT32_MAX
+#   define SCNdFAST8 SCNd64
+#  elif INT_FAST8_MAX == 0x7fff
+#   define SCNdFAST8 "hd"
+#  elif INT_FAST8_MAX == 0x7f
+#   define SCNdFAST8 "hhd"
+#  else
+#   define SCNdFAST8 "d"
+#  endif
+# endif
+# if !defined SCNiFAST8 || @PRI_MACROS_BROKEN@
+#  undef SCNiFAST8
+#  if INT_FAST8_MAX > INT32_MAX
+#   define SCNiFAST8 SCNi64
+#  elif INT_FAST8_MAX == 0x7fff
+#   define SCNiFAST8 "hi"
+#  elif INT_FAST8_MAX == 0x7f
+#   define SCNiFAST8 "hhi"
+#  else
+#   define SCNiFAST8 "i"
+#  endif
+# endif
+# if !defined SCNoFAST8 || @PRI_MACROS_BROKEN@
+#  undef SCNoFAST8
+#  if UINT_FAST8_MAX > UINT32_MAX
+#   define SCNoFAST8 SCNo64
+#  elif UINT_FAST8_MAX == 0xffff
+#   define SCNoFAST8 "ho"
+#  elif UINT_FAST8_MAX == 0xff
+#   define SCNoFAST8 "hho"
+#  else
+#   define SCNoFAST8 "o"
+#  endif
+# endif
+# if !defined SCNuFAST8 || @PRI_MACROS_BROKEN@
+#  undef SCNuFAST8
+#  if UINT_FAST8_MAX > UINT32_MAX
+#   define SCNuFAST8 SCNu64
+#  elif UINT_FAST8_MAX == 0xffff
+#   define SCNuFAST8 "hu"
+#  elif UINT_FAST8_MAX == 0xff
+#   define SCNuFAST8 "hhu"
+#  else
+#   define SCNuFAST8 "u"
+#  endif
+# endif
+# if !defined SCNxFAST8 || @PRI_MACROS_BROKEN@
+#  undef SCNxFAST8
+#  if UINT_FAST8_MAX > UINT32_MAX
+#   define SCNxFAST8 SCNx64
+#  elif UINT_FAST8_MAX == 0xffff
+#   define SCNxFAST8 "hx"
+#  elif UINT_FAST8_MAX == 0xff
+#   define SCNxFAST8 "hhx"
+#  else
+#   define SCNxFAST8 "x"
+#  endif
+# endif
+# if !defined SCNdFAST16 || @PRI_MACROS_BROKEN@
+#  undef SCNdFAST16
+#  if INT_FAST16_MAX > INT32_MAX
+#   define SCNdFAST16 SCNd64
+#  elif INT_FAST16_MAX == 0x7fff
+#   define SCNdFAST16 "hd"
+#  else
+#   define SCNdFAST16 "d"
+#  endif
+# endif
+# if !defined SCNiFAST16 || @PRI_MACROS_BROKEN@
+#  undef SCNiFAST16
+#  if INT_FAST16_MAX > INT32_MAX
+#   define SCNiFAST16 SCNi64
+#  elif INT_FAST16_MAX == 0x7fff
+#   define SCNiFAST16 "hi"
+#  else
+#   define SCNiFAST16 "i"
+#  endif
+# endif
+# if !defined SCNoFAST16 || @PRI_MACROS_BROKEN@
+#  undef SCNoFAST16
+#  if UINT_FAST16_MAX > UINT32_MAX
+#   define SCNoFAST16 SCNo64
+#  elif UINT_FAST16_MAX == 0xffff
+#   define SCNoFAST16 "ho"
+#  else
+#   define SCNoFAST16 "o"
+#  endif
+# endif
+# if !defined SCNuFAST16 || @PRI_MACROS_BROKEN@
+#  undef SCNuFAST16
+#  if UINT_FAST16_MAX > UINT32_MAX
+#   define SCNuFAST16 SCNu64
+#  elif UINT_FAST16_MAX == 0xffff
+#   define SCNuFAST16 "hu"
+#  else
+#   define SCNuFAST16 "u"
+#  endif
+# endif
+# if !defined SCNxFAST16 || @PRI_MACROS_BROKEN@
+#  undef SCNxFAST16
+#  if UINT_FAST16_MAX > UINT32_MAX
+#   define SCNxFAST16 SCNx64
+#  elif UINT_FAST16_MAX == 0xffff
+#   define SCNxFAST16 "hx"
+#  else
+#   define SCNxFAST16 "x"
+#  endif
+# endif
+# if !defined SCNdFAST32 || @PRI_MACROS_BROKEN@
+#  undef SCNdFAST32
+#  if INT_FAST32_MAX > INT32_MAX
+#   define SCNdFAST32 SCNd64
+#  else
+#   define SCNdFAST32 "d"
+#  endif
+# endif
+# if !defined SCNiFAST32 || @PRI_MACROS_BROKEN@
+#  undef SCNiFAST32
+#  if INT_FAST32_MAX > INT32_MAX
+#   define SCNiFAST32 SCNi64
+#  else
+#   define SCNiFAST32 "i"
+#  endif
+# endif
+# if !defined SCNoFAST32 || @PRI_MACROS_BROKEN@
+#  undef SCNoFAST32
+#  if UINT_FAST32_MAX > UINT32_MAX
+#   define SCNoFAST32 SCNo64
+#  else
+#   define SCNoFAST32 "o"
+#  endif
+# endif
+# if !defined SCNuFAST32 || @PRI_MACROS_BROKEN@
+#  undef SCNuFAST32
+#  if UINT_FAST32_MAX > UINT32_MAX
+#   define SCNuFAST32 SCNu64
+#  else
+#   define SCNuFAST32 "u"
+#  endif
+# endif
+# if !defined SCNxFAST32 || @PRI_MACROS_BROKEN@
+#  undef SCNxFAST32
+#  if UINT_FAST32_MAX > UINT32_MAX
+#   define SCNxFAST32 SCNx64
+#  else
+#   define SCNxFAST32 "x"
+#  endif
+# endif
+# ifdef INT64_MAX
+#  if !defined SCNdFAST64 || @PRI_MACROS_BROKEN@
+#   undef SCNdFAST64
+#   define SCNdFAST64 SCNd64
+#  endif
+#  if !defined SCNiFAST64 || @PRI_MACROS_BROKEN@
+#   undef SCNiFAST64
+#   define SCNiFAST64 SCNi64
+#  endif
+# endif
+# ifdef UINT64_MAX
+#  if !defined SCNoFAST64 || @PRI_MACROS_BROKEN@
+#   undef SCNoFAST64
+#   define SCNoFAST64 SCNo64
+#  endif
+#  if !defined SCNuFAST64 || @PRI_MACROS_BROKEN@
+#   undef SCNuFAST64
+#   define SCNuFAST64 SCNu64
+#  endif
+#  if !defined SCNxFAST64 || @PRI_MACROS_BROKEN@
+#   undef SCNxFAST64
+#   define SCNxFAST64 SCNx64
+#  endif
+# endif
+
+# if !defined SCNdMAX || @PRI_MACROS_BROKEN@
+#  undef SCNdMAX
+#  if INTMAX_MAX > INT32_MAX
+#   define SCNdMAX SCNd64
+#  else
+#   define SCNdMAX "ld"
+#  endif
+# endif
+# if !defined SCNiMAX || @PRI_MACROS_BROKEN@
+#  undef SCNiMAX
+#  if INTMAX_MAX > INT32_MAX
+#   define SCNiMAX SCNi64
+#  else
+#   define SCNiMAX "li"
+#  endif
+# endif
+# if !defined SCNoMAX || @PRI_MACROS_BROKEN@
+#  undef SCNoMAX
+#  if UINTMAX_MAX > UINT32_MAX
+#   define SCNoMAX SCNo64
+#  else
+#   define SCNoMAX "lo"
+#  endif
+# endif
+# if !defined SCNuMAX || @PRI_MACROS_BROKEN@
+#  undef SCNuMAX
+#  if UINTMAX_MAX > UINT32_MAX
+#   define SCNuMAX SCNu64
+#  else
+#   define SCNuMAX "lu"
+#  endif
+# endif
+# if !defined SCNxMAX || @PRI_MACROS_BROKEN@
+#  undef SCNxMAX
+#  if UINTMAX_MAX > UINT32_MAX
+#   define SCNxMAX SCNx64
+#  else
+#   define SCNxMAX "lx"
+#  endif
+# endif
+
+# if !defined SCNdPTR || @PRI_MACROS_BROKEN@
+#  undef SCNdPTR
+#  ifdef INTPTR_MAX
+#   define SCNdPTR @PRIPTR_PREFIX@ "d"
+#  endif
+# endif
+# if !defined SCNiPTR || @PRI_MACROS_BROKEN@
+#  undef SCNiPTR
+#  ifdef INTPTR_MAX
+#   define SCNiPTR @PRIPTR_PREFIX@ "i"
+#  endif
+# endif
+# if !defined SCNoPTR || @PRI_MACROS_BROKEN@
+#  undef SCNoPTR
+#  ifdef UINTPTR_MAX
+#   define SCNoPTR @PRIPTR_PREFIX@ "o"
+#  endif
+# endif
+# if !defined SCNuPTR || @PRI_MACROS_BROKEN@
+#  undef SCNuPTR
+#  ifdef UINTPTR_MAX
+#   define SCNuPTR @PRIPTR_PREFIX@ "u"
+#  endif
+# endif
+# if !defined SCNxPTR || @PRI_MACROS_BROKEN@
+#  undef SCNxPTR
+#  ifdef UINTPTR_MAX
+#   define SCNxPTR @PRIPTR_PREFIX@ "x"
+#  endif
+# endif
+
+#endif
+
+/* 7.8.2 Functions for greatest-width integer types */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if @GNULIB_IMAXABS@
+# if !@HAVE_DECL_IMAXABS@
+extern intmax_t imaxabs (intmax_t);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef imaxabs
+# define imaxabs(a) \
+    (GL_LINK_WARNING ("imaxabs is unportable - " \
+                      "use gnulib module imaxabs for portability"), \
+     imaxabs (a))
+#endif
+
+#if @GNULIB_IMAXDIV@
+# if !@HAVE_DECL_IMAXDIV@
+typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t;
+extern imaxdiv_t imaxdiv (intmax_t, intmax_t);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef imaxdiv
+# define imaxdiv(a,b) \
+    (GL_LINK_WARNING ("imaxdiv is unportable - " \
+                      "use gnulib module imaxdiv for portability"), \
+     imaxdiv (a, b))
+#endif
+
+#if @GNULIB_STRTOIMAX@
+# if !@HAVE_DECL_STRTOIMAX@
+extern intmax_t strtoimax (const char *, char **, int);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strtoimax
+# define strtoimax(p,e,b) \
+    (GL_LINK_WARNING ("strtoimax is unportable - " \
+                      "use gnulib module strtoimax for portability"), \
+     strtoimax (p, e, b))
+#endif
+
+#if @GNULIB_STRTOUMAX@
+# if !@HAVE_DECL_STRTOUMAX@
+extern uintmax_t strtoumax (const char *, char **, int);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strtoumax
+# define strtoumax(p,e,b) \
+    (GL_LINK_WARNING ("strtoumax is unportable - " \
+                      "use gnulib module strtoumax for portability"), \
+     strtoumax (p, e, b))
+#endif
+
+/* Don't bother defining or declaring wcstoimax and wcstoumax, since
+   wide-character functions like this are hardly ever useful.  */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* INTTYPES_H */
diff --git a/parted-1.8.7/lib/localcharset.c b/parted-1.8.7/lib/localcharset.c
new file mode 100644
index 0000000..a0f7cca
--- /dev/null
+++ b/parted-1.8.7/lib/localcharset.c
@@ -0,0 +1,460 @@
+/* Determine a canonical name for the current locale's character encoding.
+
+   Copyright (C) 2000-2006 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "localcharset.h"
+
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#if defined _WIN32 || defined __WIN32__
+# define WIN32_NATIVE
+#endif
+
+#if defined __EMX__
+/* Assume EMX program runs on OS/2, even if compiled under DOS.  */
+# define OS2
+#endif
+
+#if !defined WIN32_NATIVE
+# if HAVE_LANGINFO_CODESET
+#  include <langinfo.h>
+# else
+#  if 0 /* see comment below */
+#   include <locale.h>
+#  endif
+# endif
+# ifdef __CYGWIN__
+#  define WIN32_LEAN_AND_MEAN
+#  include <windows.h>
+# endif
+#elif defined WIN32_NATIVE
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+#endif
+#if defined OS2
+# define INCL_DOS
+# include <os2.h>
+#endif
+
+#if ENABLE_RELOCATABLE
+# include "relocatable.h"
+#else
+# define relocate(pathname) (pathname)
+#endif
+
+/* Get LIBDIR.  */
+#ifndef LIBDIR
+# include "configmake.h"
+#endif
+
+#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
+  /* Win32, Cygwin, OS/2, DOS */
+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
+#endif
+
+#ifndef DIRECTORY_SEPARATOR
+# define DIRECTORY_SEPARATOR '/'
+#endif
+
+#ifndef ISSLASH
+# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
+#endif
+
+#if HAVE_DECL_GETC_UNLOCKED
+# undef getc
+# define getc getc_unlocked
+#endif
+
+/* The following static variable is declared 'volatile' to avoid a
+   possible multithread problem in the function get_charset_aliases. If we
+   are running in a threaded environment, and if two threads initialize
+   'charset_aliases' simultaneously, both will produce the same value,
+   and everything will be ok if the two assignments to 'charset_aliases'
+   are atomic. But I don't know what will happen if the two assignments mix.  */
+#if __STDC__ != 1
+# define volatile /* empty */
+#endif
+/* Pointer to the contents of the charset.alias file, if it has already been
+   read, else NULL.  Its format is:
+   ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0'  */
+static const char * volatile charset_aliases;
+
+/* Return a pointer to the contents of the charset.alias file.  */
+static const char *
+get_charset_aliases (void)
+{
+  const char *cp;
+
+  cp = charset_aliases;
+  if (cp == NULL)
+    {
+#if !(defined VMS || defined WIN32_NATIVE || defined __CYGWIN__)
+      FILE *fp;
+      const char *dir;
+      const char *base = "charset.alias";
+      char *file_name;
+
+      /* Make it possible to override the charset.alias location.  This is
+	 necessary for running the testsuite before "make install".  */
+      dir = getenv ("CHARSETALIASDIR");
+      if (dir == NULL || dir[0] == '\0')
+	dir = relocate (LIBDIR);
+
+      /* Concatenate dir and base into freshly allocated file_name.  */
+      {
+	size_t dir_len = strlen (dir);
+	size_t base_len = strlen (base);
+	int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1]));
+	file_name = (char *) malloc (dir_len + add_slash + base_len + 1);
+	if (file_name != NULL)
+	  {
+	    memcpy (file_name, dir, dir_len);
+	    if (add_slash)
+	      file_name[dir_len] = DIRECTORY_SEPARATOR;
+	    memcpy (file_name + dir_len + add_slash, base, base_len + 1);
+	  }
+      }
+
+      if (file_name == NULL || (fp = fopen (file_name, "r")) == NULL)
+	/* Out of memory or file not found, treat it as empty.  */
+	cp = "";
+      else
+	{
+	  /* Parse the file's contents.  */
+	  char *res_ptr = NULL;
+	  size_t res_size = 0;
+
+	  for (;;)
+	    {
+	      int c;
+	      char buf1[50+1];
+	      char buf2[50+1];
+	      size_t l1, l2;
+	      char *old_res_ptr;
+
+	      c = getc (fp);
+	      if (c == EOF)
+		break;
+	      if (c == '\n' || c == ' ' || c == '\t')
+		continue;
+	      if (c == '#')
+		{
+		  /* Skip comment, to end of line.  */
+		  do
+		    c = getc (fp);
+		  while (!(c == EOF || c == '\n'));
+		  if (c == EOF)
+		    break;
+		  continue;
+		}
+	      ungetc (c, fp);
+	      if (fscanf (fp, "%50s %50s", buf1, buf2) < 2)
+		break;
+	      l1 = strlen (buf1);
+	      l2 = strlen (buf2);
+	      old_res_ptr = res_ptr;
+	      if (res_size == 0)
+		{
+		  res_size = l1 + 1 + l2 + 1;
+		  res_ptr = (char *) malloc (res_size + 1);
+		}
+	      else
+		{
+		  res_size += l1 + 1 + l2 + 1;
+		  res_ptr = (char *) realloc (res_ptr, res_size + 1);
+		}
+	      if (res_ptr == NULL)
+		{
+		  /* Out of memory. */
+		  res_size = 0;
+		  if (old_res_ptr != NULL)
+		    free (old_res_ptr);
+		  break;
+		}
+	      strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1);
+	      strcpy (res_ptr + res_size - (l2 + 1), buf2);
+	    }
+	  fclose (fp);
+	  if (res_size == 0)
+	    cp = "";
+	  else
+	    {
+	      *(res_ptr + res_size) = '\0';
+	      cp = res_ptr;
+	    }
+	}
+
+      if (file_name != NULL)
+	free (file_name);
+
+#else
+
+# if defined VMS
+      /* To avoid the troubles of an extra file charset.alias_vms in the
+	 sources of many GNU packages, simply inline the aliases here.  */
+      /* The list of encodings is taken from the OpenVMS 7.3-1 documentation
+	 "Compaq C Run-Time Library Reference Manual for OpenVMS systems"
+	 section 10.7 "Handling Different Character Sets".  */
+      cp = "ISO8859-1" "\0" "ISO-8859-1" "\0"
+	   "ISO8859-2" "\0" "ISO-8859-2" "\0"
+	   "ISO8859-5" "\0" "ISO-8859-5" "\0"
+	   "ISO8859-7" "\0" "ISO-8859-7" "\0"
+	   "ISO8859-8" "\0" "ISO-8859-8" "\0"
+	   "ISO8859-9" "\0" "ISO-8859-9" "\0"
+	   /* Japanese */
+	   "eucJP" "\0" "EUC-JP" "\0"
+	   "SJIS" "\0" "SHIFT_JIS" "\0"
+	   "DECKANJI" "\0" "DEC-KANJI" "\0"
+	   "SDECKANJI" "\0" "EUC-JP" "\0"
+	   /* Chinese */
+	   "eucTW" "\0" "EUC-TW" "\0"
+	   "DECHANYU" "\0" "DEC-HANYU" "\0"
+	   "DECHANZI" "\0" "GB2312" "\0"
+	   /* Korean */
+	   "DECKOREAN" "\0" "EUC-KR" "\0";
+# endif
+
+# if defined WIN32_NATIVE || defined __CYGWIN__
+      /* To avoid the troubles of installing a separate file in the same
+	 directory as the DLL and of retrieving the DLL's directory at
+	 runtime, simply inline the aliases here.  */
+
+      cp = "CP936" "\0" "GBK" "\0"
+	   "CP1361" "\0" "JOHAB" "\0"
+	   "CP20127" "\0" "ASCII" "\0"
+	   "CP20866" "\0" "KOI8-R" "\0"
+	   "CP20936" "\0" "GB2312" "\0"
+	   "CP21866" "\0" "KOI8-RU" "\0"
+	   "CP28591" "\0" "ISO-8859-1" "\0"
+	   "CP28592" "\0" "ISO-8859-2" "\0"
+	   "CP28593" "\0" "ISO-8859-3" "\0"
+	   "CP28594" "\0" "ISO-8859-4" "\0"
+	   "CP28595" "\0" "ISO-8859-5" "\0"
+	   "CP28596" "\0" "ISO-8859-6" "\0"
+	   "CP28597" "\0" "ISO-8859-7" "\0"
+	   "CP28598" "\0" "ISO-8859-8" "\0"
+	   "CP28599" "\0" "ISO-8859-9" "\0"
+	   "CP28605" "\0" "ISO-8859-15" "\0"
+	   "CP38598" "\0" "ISO-8859-8" "\0"
+	   "CP51932" "\0" "EUC-JP" "\0"
+	   "CP51936" "\0" "GB2312" "\0"
+	   "CP51949" "\0" "EUC-KR" "\0"
+	   "CP51950" "\0" "EUC-TW" "\0"
+	   "CP54936" "\0" "GB18030" "\0"
+	   "CP65001" "\0" "UTF-8" "\0";
+# endif
+#endif
+
+      charset_aliases = cp;
+    }
+
+  return cp;
+}
+
+/* Determine the current locale's character encoding, and canonicalize it
+   into one of the canonical names listed in config.charset.
+   The result must not be freed; it is statically allocated.
+   If the canonical name cannot be determined, the result is a non-canonical
+   name.  */
+
+#ifdef STATIC
+STATIC
+#endif
+const char *
+locale_charset (void)
+{
+  const char *codeset;
+  const char *aliases;
+
+#if !(defined WIN32_NATIVE || defined OS2)
+
+# if HAVE_LANGINFO_CODESET
+
+  /* Most systems support nl_langinfo (CODESET) nowadays.  */
+  codeset = nl_langinfo (CODESET);
+
+#  ifdef __CYGWIN__
+  /* Cygwin 2006 does not have locales.  nl_langinfo (CODESET) always
+     returns "US-ASCII".  As long as this is not fixed, return the suffix
+     of the locale name from the environment variables (if present) or
+     the codepage as a number.  */
+  if (codeset != NULL && strcmp (codeset, "US-ASCII") == 0)
+    {
+      const char *locale;
+      static char buf[2 + 10 + 1];
+
+      locale = getenv ("LC_ALL");
+      if (locale == NULL || locale[0] == '\0')
+	{
+	  locale = getenv ("LC_CTYPE");
+	  if (locale == NULL || locale[0] == '\0')
+	    locale = getenv ("LANG");
+	}
+      if (locale != NULL && locale[0] != '\0')
+	{
+	  /* If the locale name contains an encoding after the dot, return
+	     it.  */
+	  const char *dot = strchr (locale, '.');
+
+	  if (dot != NULL)
+	    {
+	      const char *modifier;
+
+	      dot++;
+	      /* Look for the possible @... trailer and remove it, if any.  */
+	      modifier = strchr (dot, '@');
+	      if (modifier == NULL)
+		return dot;
+	      if (modifier - dot < sizeof (buf))
+		{
+		  memcpy (buf, dot, modifier - dot);
+		  buf [modifier - dot] = '\0';
+		  return buf;
+		}
+	    }
+	}
+
+      /* Woe32 has a function returning the locale's codepage as a number.  */
+      sprintf (buf, "CP%u", GetACP ());
+      codeset = buf;
+    }
+#  endif
+
+# else
+
+  /* On old systems which lack it, use setlocale or getenv.  */
+  const char *locale = NULL;
+
+  /* But most old systems don't have a complete set of locales.  Some
+     (like SunOS 4 or DJGPP) have only the C locale.  Therefore we don't
+     use setlocale here; it would return "C" when it doesn't support the
+     locale name the user has set.  */
+#  if 0
+  locale = setlocale (LC_CTYPE, NULL);
+#  endif
+  if (locale == NULL || locale[0] == '\0')
+    {
+      locale = getenv ("LC_ALL");
+      if (locale == NULL || locale[0] == '\0')
+	{
+	  locale = getenv ("LC_CTYPE");
+	  if (locale == NULL || locale[0] == '\0')
+	    locale = getenv ("LANG");
+	}
+    }
+
+  /* On some old systems, one used to set locale = "iso8859_1". On others,
+     you set it to "language_COUNTRY.charset". In any case, we resolve it
+     through the charset.alias file.  */
+  codeset = locale;
+
+# endif
+
+#elif defined WIN32_NATIVE
+
+  static char buf[2 + 10 + 1];
+
+  /* Woe32 has a function returning the locale's codepage as a number.  */
+  sprintf (buf, "CP%u", GetACP ());
+  codeset = buf;
+
+#elif defined OS2
+
+  const char *locale;
+  static char buf[2 + 10 + 1];
+  ULONG cp[3];
+  ULONG cplen;
+
+  /* Allow user to override the codeset, as set in the operating system,
+     with standard language environment variables.  */
+  locale = getenv ("LC_ALL");
+  if (locale == NULL || locale[0] == '\0')
+    {
+      locale = getenv ("LC_CTYPE");
+      if (locale == NULL || locale[0] == '\0')
+	locale = getenv ("LANG");
+    }
+  if (locale != NULL && locale[0] != '\0')
+    {
+      /* If the locale name contains an encoding after the dot, return it.  */
+      const char *dot = strchr (locale, '.');
+
+      if (dot != NULL)
+	{
+	  const char *modifier;
+
+	  dot++;
+	  /* Look for the possible @... trailer and remove it, if any.  */
+	  modifier = strchr (dot, '@');
+	  if (modifier == NULL)
+	    return dot;
+	  if (modifier - dot < sizeof (buf))
+	    {
+	      memcpy (buf, dot, modifier - dot);
+	      buf [modifier - dot] = '\0';
+	      return buf;
+	    }
+	}
+
+      /* Resolve through the charset.alias file.  */
+      codeset = locale;
+    }
+  else
+    {
+      /* OS/2 has a function returning the locale's codepage as a number.  */
+      if (DosQueryCp (sizeof (cp), cp, &cplen))
+	codeset = "";
+      else
+	{
+	  sprintf (buf, "CP%u", cp[0]);
+	  codeset = buf;
+	}
+    }
+
+#endif
+
+  if (codeset == NULL)
+    /* The canonical name cannot be determined.  */
+    codeset = "";
+
+  /* Resolve alias. */
+  for (aliases = get_charset_aliases ();
+       *aliases != '\0';
+       aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1)
+    if (strcmp (codeset, aliases) == 0
+	|| (aliases[0] == '*' && aliases[1] == '\0'))
+      {
+	codeset = aliases + strlen (aliases) + 1;
+	break;
+      }
+
+  /* Don't return an empty string.  GNU libc and GNU libiconv interpret
+     the empty string as denoting "the locale's character encoding",
+     thus GNU libiconv would call this function a second time.  */
+  if (codeset[0] == '\0')
+    codeset = "ASCII";
+
+  return codeset;
+}
diff --git a/parted-1.8.7/lib/localcharset.h b/parted-1.8.7/lib/localcharset.h
new file mode 100644
index 0000000..5030210
--- /dev/null
+++ b/parted-1.8.7/lib/localcharset.h
@@ -0,0 +1,41 @@
+/* Determine a canonical name for the current locale's character encoding.
+   Copyright (C) 2000-2003 Free Software Foundation, Inc.
+   This file is part of the GNU CHARSET Library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef _LOCALCHARSET_H
+#define _LOCALCHARSET_H
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Determine the current locale's character encoding, and canonicalize it
+   into one of the canonical names listed in config.charset.
+   The result must not be freed; it is statically allocated.
+   If the canonical name cannot be determined, the result is a non-canonical
+   name.  */
+extern const char * locale_charset (void);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _LOCALCHARSET_H */
diff --git a/parted-1.8.7/lib/long-options.c b/parted-1.8.7/lib/long-options.c
new file mode 100644
index 0000000..fb61661
--- /dev/null
+++ b/parted-1.8.7/lib/long-options.c
@@ -0,0 +1,89 @@
+/* Utility to accept --help and --version options as unobtrusively as possible.
+
+   Copyright (C) 1993, 1994, 1998, 1999, 2000, 2002, 2003, 2004, 2005,
+   2006 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Written by Jim Meyering.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "long-options.h"
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <getopt.h>
+
+#include "version-etc.h"
+
+static struct option const long_options[] =
+{
+  {"help", no_argument, NULL, 'h'},
+  {"version", no_argument, NULL, 'v'},
+  {NULL, 0, NULL, 0}
+};
+
+/* Process long options --help and --version, but only if argc == 2.
+   Be careful not to gobble up `--'.  */
+
+void
+parse_long_options (int argc,
+		    char **argv,
+		    const char *command_name,
+		    const char *package,
+		    const char *version,
+		    void (*usage_func) (int),
+		    /* const char *author1, ...*/ ...)
+{
+  int c;
+  int saved_opterr;
+
+  saved_opterr = opterr;
+
+  /* Don't print an error message for unrecognized options.  */
+  opterr = 0;
+
+  if (argc == 2
+      && (c = getopt_long (argc, argv, "+", long_options, NULL)) != -1)
+    {
+      switch (c)
+	{
+	case 'h':
+	  (*usage_func) (EXIT_SUCCESS);
+
+	case 'v':
+	  {
+	    va_list authors;
+	    va_start (authors, usage_func);
+	    version_etc_va (stdout, command_name, package, version, authors);
+	    exit (0);
+	  }
+
+	default:
+	  /* Don't process any other long-named options.  */
+	  break;
+	}
+    }
+
+  /* Restore previous value.  */
+  opterr = saved_opterr;
+
+  /* Reset this to zero so that getopt internals get initialized from
+     the probably-new parameters when/if getopt is called later.  */
+  optind = 0;
+}
diff --git a/parted-1.8.7/lib/long-options.h b/parted-1.8.7/lib/long-options.h
new file mode 100644
index 0000000..03106a8
--- /dev/null
+++ b/parted-1.8.7/lib/long-options.h
@@ -0,0 +1,26 @@
+/* long-options.h -- declaration for --help- and --version-handling function.
+   Copyright (C) 1993, 1994, 1998, 1999, 2003 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Written by Jim Meyering.  */
+
+void parse_long_options (int _argc,
+			 char **_argv,
+			 const char *_command_name,
+			 const char *_package,
+			 const char *_version,
+			 void (*_usage) (int),
+			 /* const char *author1, ...*/ ...);
diff --git a/parted-1.8.7/lib/malloc.c b/parted-1.8.7/lib/malloc.c
new file mode 100644
index 0000000..d4dae3e
--- /dev/null
+++ b/parted-1.8.7/lib/malloc.c
@@ -0,0 +1,35 @@
+/* malloc() function that is glibc compatible.
+
+   Copyright (C) 1997, 1998, 2006 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* written by Jim Meyering */
+
+#include <config.h>
+#undef malloc
+
+#include <stdlib.h>
+
+/* Allocate an N-byte block of memory from the heap.
+   If N is zero, allocate a 1-byte block.  */
+
+void *
+rpl_malloc (size_t n)
+{
+  if (n == 0)
+    n = 1;
+  return malloc (n);
+}
diff --git a/parted-1.8.7/lib/memchr.c b/parted-1.8.7/lib/memchr.c
new file mode 100644
index 0000000..d44ad6d
--- /dev/null
+++ b/parted-1.8.7/lib/memchr.c
@@ -0,0 +1,201 @@
+/* Copyright (C) 1991, 1993, 1996, 1997, 1999, 2000, 2003, 2004, 2006 Free
+   Software Foundation, Inc.
+
+   Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
+   with help from Dan Sahlin (dan@sics.se) and
+   commentary by Jim Blandy (jimb@ai.mit.edu);
+   adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu),
+   and implemented by Roland McGrath (roland@ai.mit.edu).
+
+NOTE: The canonical source of this file is maintained with the GNU C Library.
+Bugs can be reported to bug-glibc@prep.ai.mit.edu.
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software Foundation,
+Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef _LIBC
+# include <config.h>
+#endif
+
+#include <string.h>
+
+#include <stddef.h>
+
+#if defined _LIBC
+# include <memcopy.h>
+#else
+# define reg_char char
+#endif
+
+#include <limits.h>
+
+#if HAVE_BP_SYM_H || defined _LIBC
+# include <bp-sym.h>
+#else
+# define BP_SYM(sym) sym
+#endif
+
+#undef memchr
+#undef __memchr
+
+/* Search no more than N bytes of S for C.  */
+void *
+__memchr (void const *s, int c_in, size_t n)
+{
+  const unsigned char *char_ptr;
+  const unsigned long int *longword_ptr;
+  unsigned long int longword, magic_bits, charmask;
+  unsigned reg_char c;
+  int i;
+
+  c = (unsigned char) c_in;
+
+  /* Handle the first few characters by reading one character at a time.
+     Do this until CHAR_PTR is aligned on a longword boundary.  */
+  for (char_ptr = (const unsigned char *) s;
+       n > 0 && (size_t) char_ptr % sizeof longword != 0;
+       --n, ++char_ptr)
+    if (*char_ptr == c)
+      return (void *) char_ptr;
+
+  /* All these elucidatory comments refer to 4-byte longwords,
+     but the theory applies equally well to any size longwords.  */
+
+  longword_ptr = (const unsigned long int *) char_ptr;
+
+  /* Bits 31, 24, 16, and 8 of this number are zero.  Call these bits
+     the "holes."  Note that there is a hole just to the left of
+     each byte, with an extra at the end:
+
+     bits:  01111110 11111110 11111110 11111111
+     bytes: AAAAAAAA BBBBBBBB CCCCCCCC DDDDDDDD
+
+     The 1-bits make sure that carries propagate to the next 0-bit.
+     The 0-bits provide holes for carries to fall into.  */
+
+  /* Set MAGIC_BITS to be this pattern of 1 and 0 bits.
+     Set CHARMASK to be a longword, each of whose bytes is C.  */
+
+  magic_bits = 0xfefefefe;
+  charmask = c | (c << 8);
+  charmask |= charmask << 16;
+#if 0xffffffffU < ULONG_MAX
+  magic_bits |= magic_bits << 32;
+  charmask |= charmask << 32;
+  if (8 < sizeof longword)
+    for (i = 64; i < sizeof longword * 8; i *= 2)
+      {
+	magic_bits |= magic_bits << i;
+	charmask |= charmask << i;
+      }
+#endif
+  magic_bits = (ULONG_MAX >> 1) & (magic_bits | 1);
+
+  /* Instead of the traditional loop which tests each character,
+     we will test a longword at a time.  The tricky part is testing
+     if *any of the four* bytes in the longword in question are zero.  */
+  while (n >= sizeof longword)
+    {
+      /* We tentatively exit the loop if adding MAGIC_BITS to
+	 LONGWORD fails to change any of the hole bits of LONGWORD.
+
+	 1) Is this safe?  Will it catch all the zero bytes?
+	 Suppose there is a byte with all zeros.  Any carry bits
+	 propagating from its left will fall into the hole at its
+	 least significant bit and stop.  Since there will be no
+	 carry from its most significant bit, the LSB of the
+	 byte to the left will be unchanged, and the zero will be
+	 detected.
+
+	 2) Is this worthwhile?  Will it ignore everything except
+	 zero bytes?  Suppose every byte of LONGWORD has a bit set
+	 somewhere.  There will be a carry into bit 8.  If bit 8
+	 is set, this will carry into bit 16.  If bit 8 is clear,
+	 one of bits 9-15 must be set, so there will be a carry
+	 into bit 16.  Similarly, there will be a carry into bit
+	 24.  If one of bits 24-30 is set, there will be a carry
+	 into bit 31, so all of the hole bits will be changed.
+
+	 The one misfire occurs when bits 24-30 are clear and bit
+	 31 is set; in this case, the hole at bit 31 is not
+	 changed.  If we had access to the processor carry flag,
+	 we could close this loophole by putting the fourth hole
+	 at bit 32!
+
+	 So it ignores everything except 128's, when they're aligned
+	 properly.
+
+	 3) But wait!  Aren't we looking for C, not zero?
+	 Good point.  So what we do is XOR LONGWORD with a longword,
+	 each of whose bytes is C.  This turns each byte that is C
+	 into a zero.  */
+
+      longword = *longword_ptr++ ^ charmask;
+
+      /* Add MAGIC_BITS to LONGWORD.  */
+      if ((((longword + magic_bits)
+
+	    /* Set those bits that were unchanged by the addition.  */
+	    ^ ~longword)
+
+	   /* Look at only the hole bits.  If any of the hole bits
+	      are unchanged, most likely one of the bytes was a
+	      zero.  */
+	   & ~magic_bits) != 0)
+	{
+	  /* Which of the bytes was C?  If none of them were, it was
+	     a misfire; continue the search.  */
+
+	  const unsigned char *cp = (const unsigned char *) (longword_ptr - 1);
+
+	  if (cp[0] == c)
+	    return (void *) cp;
+	  if (cp[1] == c)
+	    return (void *) &cp[1];
+	  if (cp[2] == c)
+	    return (void *) &cp[2];
+	  if (cp[3] == c)
+	    return (void *) &cp[3];
+	  if (4 < sizeof longword && cp[4] == c)
+	    return (void *) &cp[4];
+	  if (5 < sizeof longword && cp[5] == c)
+	    return (void *) &cp[5];
+	  if (6 < sizeof longword && cp[6] == c)
+	    return (void *) &cp[6];
+	  if (7 < sizeof longword && cp[7] == c)
+	    return (void *) &cp[7];
+	  if (8 < sizeof longword)
+	    for (i = 8; i < sizeof longword; i++)
+	      if (cp[i] == c)
+		return (void *) &cp[i];
+	}
+
+      n -= sizeof longword;
+    }
+
+  char_ptr = (const unsigned char *) longword_ptr;
+
+  while (n-- > 0)
+    {
+      if (*char_ptr == c)
+	return (void *) char_ptr;
+      else
+	++char_ptr;
+    }
+
+  return 0;
+}
+#ifdef weak_alias
+weak_alias (__memchr, BP_SYM (memchr))
+#endif
diff --git a/parted-1.8.7/lib/memcmp.c b/parted-1.8.7/lib/memcmp.c
new file mode 100644
index 0000000..cf98bfa
--- /dev/null
+++ b/parted-1.8.7/lib/memcmp.c
@@ -0,0 +1,363 @@
+/* Copyright (C) 1991, 1993, 1995, 1997, 1998, 2003, 2006 Free Software
+   Foundation, Inc.
+
+   Contributed by Torbjorn Granlund (tege@sics.se).
+
+   NOTE: The canonical source of this file is maintained with the GNU C Library.
+   Bugs can be reported to bug-glibc@prep.ai.mit.edu.
+
+   This program is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by the
+   Free Software Foundation; either version 2, or (at your option) any
+   later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+   USA.  */
+
+#ifndef _LIBC
+# include <config.h>
+#endif
+
+#include <string.h>
+
+#undef memcmp
+
+#ifdef _LIBC
+
+# include <memcopy.h>
+# include <endian.h>
+
+# if __BYTE_ORDER == __BIG_ENDIAN
+#  define WORDS_BIGENDIAN
+# endif
+
+#else	/* Not in the GNU C library.  */
+
+# include <sys/types.h>
+
+/* Type to use for aligned memory operations.
+   This should normally be the biggest type supported by a single load
+   and store.  Must be an unsigned type.  */
+# define op_t	unsigned long int
+# define OPSIZ	(sizeof(op_t))
+
+/* Threshold value for when to enter the unrolled loops.  */
+# define OP_T_THRES	16
+
+/* Type to use for unaligned operations.  */
+typedef unsigned char byte;
+
+# ifndef WORDS_BIGENDIAN
+#  define MERGE(w0, sh_1, w1, sh_2) (((w0) >> (sh_1)) | ((w1) << (sh_2)))
+# else
+#  define MERGE(w0, sh_1, w1, sh_2) (((w0) << (sh_1)) | ((w1) >> (sh_2)))
+# endif
+
+#endif	/* In the GNU C library.  */
+
+#ifdef WORDS_BIGENDIAN
+# define CMP_LT_OR_GT(a, b) ((a) > (b) ? 1 : -1)
+#else
+# define CMP_LT_OR_GT(a, b) memcmp_bytes ((a), (b))
+#endif
+
+/* BE VERY CAREFUL IF YOU CHANGE THIS CODE!  */
+
+/* The strategy of this memcmp is:
+
+   1. Compare bytes until one of the block pointers is aligned.
+
+   2. Compare using memcmp_common_alignment or
+      memcmp_not_common_alignment, regarding the alignment of the other
+      block after the initial byte operations.  The maximum number of
+      full words (of type op_t) are compared in this way.
+
+   3. Compare the few remaining bytes.  */
+
+#ifndef WORDS_BIGENDIAN
+/* memcmp_bytes -- Compare A and B bytewise in the byte order of the machine.
+   A and B are known to be different.
+   This is needed only on little-endian machines.  */
+
+# ifdef  __GNUC__
+__inline
+# endif
+static int
+memcmp_bytes (long unsigned int a, long unsigned int b)
+{
+  long int srcp1 = (long int) &a;
+  long int srcp2 = (long int) &b;
+  op_t a0, b0;
+
+  do
+    {
+      a0 = ((byte *) srcp1)[0];
+      b0 = ((byte *) srcp2)[0];
+      srcp1 += 1;
+      srcp2 += 1;
+    }
+  while (a0 == b0);
+  return a0 - b0;
+}
+#endif
+
+/* memcmp_common_alignment -- Compare blocks at SRCP1 and SRCP2 with LEN `op_t'
+   objects (not LEN bytes!).  Both SRCP1 and SRCP2 should be aligned for
+   memory operations on `op_t's.  */
+#ifdef	__GNUC__
+__inline
+#endif
+static int
+memcmp_common_alignment (long int srcp1, long int srcp2, size_t len)
+{
+  op_t a0, a1;
+  op_t b0, b1;
+
+  switch (len % 4)
+    {
+    default: /* Avoid warning about uninitialized local variables.  */
+    case 2:
+      a0 = ((op_t *) srcp1)[0];
+      b0 = ((op_t *) srcp2)[0];
+      srcp1 -= 2 * OPSIZ;
+      srcp2 -= 2 * OPSIZ;
+      len += 2;
+      goto do1;
+    case 3:
+      a1 = ((op_t *) srcp1)[0];
+      b1 = ((op_t *) srcp2)[0];
+      srcp1 -= OPSIZ;
+      srcp2 -= OPSIZ;
+      len += 1;
+      goto do2;
+    case 0:
+      if (OP_T_THRES <= 3 * OPSIZ && len == 0)
+	return 0;
+      a0 = ((op_t *) srcp1)[0];
+      b0 = ((op_t *) srcp2)[0];
+      goto do3;
+    case 1:
+      a1 = ((op_t *) srcp1)[0];
+      b1 = ((op_t *) srcp2)[0];
+      srcp1 += OPSIZ;
+      srcp2 += OPSIZ;
+      len -= 1;
+      if (OP_T_THRES <= 3 * OPSIZ && len == 0)
+	goto do0;
+      /* Fall through.  */
+    }
+
+  do
+    {
+      a0 = ((op_t *) srcp1)[0];
+      b0 = ((op_t *) srcp2)[0];
+      if (a1 != b1)
+	return CMP_LT_OR_GT (a1, b1);
+
+    do3:
+      a1 = ((op_t *) srcp1)[1];
+      b1 = ((op_t *) srcp2)[1];
+      if (a0 != b0)
+	return CMP_LT_OR_GT (a0, b0);
+
+    do2:
+      a0 = ((op_t *) srcp1)[2];
+      b0 = ((op_t *) srcp2)[2];
+      if (a1 != b1)
+	return CMP_LT_OR_GT (a1, b1);
+
+    do1:
+      a1 = ((op_t *) srcp1)[3];
+      b1 = ((op_t *) srcp2)[3];
+      if (a0 != b0)
+	return CMP_LT_OR_GT (a0, b0);
+
+      srcp1 += 4 * OPSIZ;
+      srcp2 += 4 * OPSIZ;
+      len -= 4;
+    }
+  while (len != 0);
+
+  /* This is the right position for do0.  Please don't move
+     it into the loop.  */
+ do0:
+  if (a1 != b1)
+    return CMP_LT_OR_GT (a1, b1);
+  return 0;
+}
+
+/* memcmp_not_common_alignment -- Compare blocks at SRCP1 and SRCP2 with LEN
+   `op_t' objects (not LEN bytes!).  SRCP2 should be aligned for memory
+   operations on `op_t', but SRCP1 *should be unaligned*.  */
+#ifdef	__GNUC__
+__inline
+#endif
+static int
+memcmp_not_common_alignment (long int srcp1, long int srcp2, size_t len)
+{
+  op_t a0, a1, a2, a3;
+  op_t b0, b1, b2, b3;
+  op_t x;
+  int shl, shr;
+
+  /* Calculate how to shift a word read at the memory operation
+     aligned srcp1 to make it aligned for comparison.  */
+
+  shl = 8 * (srcp1 % OPSIZ);
+  shr = 8 * OPSIZ - shl;
+
+  /* Make SRCP1 aligned by rounding it down to the beginning of the `op_t'
+     it points in the middle of.  */
+  srcp1 &= -OPSIZ;
+
+  switch (len % 4)
+    {
+    default: /* Avoid warning about uninitialized local variables.  */
+    case 2:
+      a1 = ((op_t *) srcp1)[0];
+      a2 = ((op_t *) srcp1)[1];
+      b2 = ((op_t *) srcp2)[0];
+      srcp1 -= 1 * OPSIZ;
+      srcp2 -= 2 * OPSIZ;
+      len += 2;
+      goto do1;
+    case 3:
+      a0 = ((op_t *) srcp1)[0];
+      a1 = ((op_t *) srcp1)[1];
+      b1 = ((op_t *) srcp2)[0];
+      srcp2 -= 1 * OPSIZ;
+      len += 1;
+      goto do2;
+    case 0:
+      if (OP_T_THRES <= 3 * OPSIZ && len == 0)
+	return 0;
+      a3 = ((op_t *) srcp1)[0];
+      a0 = ((op_t *) srcp1)[1];
+      b0 = ((op_t *) srcp2)[0];
+      srcp1 += 1 * OPSIZ;
+      goto do3;
+    case 1:
+      a2 = ((op_t *) srcp1)[0];
+      a3 = ((op_t *) srcp1)[1];
+      b3 = ((op_t *) srcp2)[0];
+      srcp1 += 2 * OPSIZ;
+      srcp2 += 1 * OPSIZ;
+      len -= 1;
+      if (OP_T_THRES <= 3 * OPSIZ && len == 0)
+	goto do0;
+      /* Fall through.  */
+    }
+
+  do
+    {
+      a0 = ((op_t *) srcp1)[0];
+      b0 = ((op_t *) srcp2)[0];
+      x = MERGE(a2, shl, a3, shr);
+      if (x != b3)
+	return CMP_LT_OR_GT (x, b3);
+
+    do3:
+      a1 = ((op_t *) srcp1)[1];
+      b1 = ((op_t *) srcp2)[1];
+      x = MERGE(a3, shl, a0, shr);
+      if (x != b0)
+	return CMP_LT_OR_GT (x, b0);
+
+    do2:
+      a2 = ((op_t *) srcp1)[2];
+      b2 = ((op_t *) srcp2)[2];
+      x = MERGE(a0, shl, a1, shr);
+      if (x != b1)
+	return CMP_LT_OR_GT (x, b1);
+
+    do1:
+      a3 = ((op_t *) srcp1)[3];
+      b3 = ((op_t *) srcp2)[3];
+      x = MERGE(a1, shl, a2, shr);
+      if (x != b2)
+	return CMP_LT_OR_GT (x, b2);
+
+      srcp1 += 4 * OPSIZ;
+      srcp2 += 4 * OPSIZ;
+      len -= 4;
+    }
+  while (len != 0);
+
+  /* This is the right position for do0.  Please don't move
+     it into the loop.  */
+ do0:
+  x = MERGE(a2, shl, a3, shr);
+  if (x != b3)
+    return CMP_LT_OR_GT (x, b3);
+  return 0;
+}
+
+int
+rpl_memcmp (const void *s1, const void *s2, size_t len)
+{
+  op_t a0;
+  op_t b0;
+  long int srcp1 = (long int) s1;
+  long int srcp2 = (long int) s2;
+  op_t res;
+
+  if (len >= OP_T_THRES)
+    {
+      /* There are at least some bytes to compare.  No need to test
+	 for LEN == 0 in this alignment loop.  */
+      while (srcp2 % OPSIZ != 0)
+	{
+	  a0 = ((byte *) srcp1)[0];
+	  b0 = ((byte *) srcp2)[0];
+	  srcp1 += 1;
+	  srcp2 += 1;
+	  res = a0 - b0;
+	  if (res != 0)
+	    return res;
+	  len -= 1;
+	}
+
+      /* SRCP2 is now aligned for memory operations on `op_t'.
+	 SRCP1 alignment determines if we can do a simple,
+	 aligned compare or need to shuffle bits.  */
+
+      if (srcp1 % OPSIZ == 0)
+	res = memcmp_common_alignment (srcp1, srcp2, len / OPSIZ);
+      else
+	res = memcmp_not_common_alignment (srcp1, srcp2, len / OPSIZ);
+      if (res != 0)
+	return res;
+
+      /* Number of bytes remaining in the interval [0..OPSIZ-1].  */
+      srcp1 += len & -OPSIZ;
+      srcp2 += len & -OPSIZ;
+      len %= OPSIZ;
+    }
+
+  /* There are just a few bytes to compare.  Use byte memory operations.  */
+  while (len != 0)
+    {
+      a0 = ((byte *) srcp1)[0];
+      b0 = ((byte *) srcp2)[0];
+      srcp1 += 1;
+      srcp2 += 1;
+      res = a0 - b0;
+      if (res != 0)
+	return res;
+      len -= 1;
+    }
+
+  return 0;
+}
+
+#ifdef weak_alias
+# undef bcmp
+weak_alias (memcmp, bcmp)
+#endif
diff --git a/parted-1.8.7/lib/memcpy.c b/parted-1.8.7/lib/memcpy.c
new file mode 100644
index 0000000..d1e49c6
--- /dev/null
+++ b/parted-1.8.7/lib/memcpy.c
@@ -0,0 +1,36 @@
+/* Copyright (C) 1995, 1997, 2000, 2003, 2006 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Written by Jim Meyering <meyering@na-net.ornl.gov>.  */
+
+#include <config.h>
+
+#include <stddef.h>
+
+/* Copy LEN bytes starting at SRCADDR to DESTADDR.  Result undefined
+   if the source overlaps with the destination.
+   Return DESTADDR. */
+
+void *
+memcpy (void *destaddr, void const *srcaddr, size_t len)
+{
+  char *dest = destaddr;
+  char const *src = srcaddr;
+
+  while (len-- > 0)
+    *dest++ = *src++;
+  return destaddr;
+}
diff --git a/parted-1.8.7/lib/memmove.c b/parted-1.8.7/lib/memmove.c
new file mode 100644
index 0000000..c5ff8b5
--- /dev/null
+++ b/parted-1.8.7/lib/memmove.c
@@ -0,0 +1,26 @@
+/* memmove.c -- copy memory.
+   Copy LENGTH bytes from SOURCE to DEST.  Does not null-terminate.
+   In the public domain.
+   By David MacKenzie <djm@gnu.ai.mit.edu>.  */
+
+#include <config.h>
+
+#include <stddef.h>
+
+void *
+memmove (void *dest0, void const *source0, size_t length)
+{
+  char *dest = dest0;
+  char const *source = source0;
+  if (source < dest)
+    /* Moving from low mem to hi mem; start at end.  */
+    for (source += length, dest += length; length; --length)
+      *--dest = *--source;
+  else if (source != dest)
+    {
+      /* Moving from hi mem to low mem; start at beginning.  */
+      for (; length; --length)
+	*dest++ = *source++;
+    }
+  return dest0;
+}
diff --git a/parted-1.8.7/lib/memset.c b/parted-1.8.7/lib/memset.c
new file mode 100644
index 0000000..890cbf1
--- /dev/null
+++ b/parted-1.8.7/lib/memset.c
@@ -0,0 +1,28 @@
+/* memset.c -- set an area of memory to a given value
+   Copyright (C) 1991, 2003 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include <stddef.h>
+
+void *
+memset (void *str, int c, size_t len)
+{
+  register char *st = str;
+
+  while (len-- > 0)
+    *st++ = c;
+  return str;
+}
diff --git a/parted-1.8.7/lib/quotearg.c b/parted-1.8.7/lib/quotearg.c
new file mode 100644
index 0000000..f7f326a
--- /dev/null
+++ b/parted-1.8.7/lib/quotearg.c
@@ -0,0 +1,697 @@
+/* quotearg.c - quote arguments for output
+
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007 Free
+   Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Written by Paul Eggert <eggert@twinsun.com> */
+
+#include <config.h>
+
+#include "quotearg.h"
+
+#include "xalloc.h"
+
+#include <ctype.h>
+#include <errno.h>
+#include <limits.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <string.h>
+#include <wchar.h>
+#include <wctype.h>
+
+#include "gettext.h"
+#define _(msgid) gettext (msgid)
+#define N_(msgid) msgid
+
+#if !HAVE_MBRTOWC
+/* Disable multibyte processing entirely.  Since MB_CUR_MAX is 1, the
+   other macros are defined only for documentation and to satisfy C
+   syntax.  */
+# undef MB_CUR_MAX
+# define MB_CUR_MAX 1
+# undef mbstate_t
+# define mbstate_t int
+# define mbrtowc(pwc, s, n, ps) ((*(pwc) = *(s)) != 0)
+# define iswprint(wc) isprint ((unsigned char) (wc))
+# undef HAVE_MBSINIT
+#endif
+
+#if !defined mbsinit && !HAVE_MBSINIT
+# define mbsinit(ps) 1
+#endif
+
+#ifndef SIZE_MAX
+# define SIZE_MAX ((size_t) -1)
+#endif
+
+#define INT_BITS (sizeof (int) * CHAR_BIT)
+
+struct quoting_options
+{
+  /* Basic quoting style.  */
+  enum quoting_style style;
+
+  /* Quote the characters indicated by this bit vector even if the
+     quoting style would not normally require them to be quoted.  */
+  unsigned int quote_these_too[(UCHAR_MAX / INT_BITS) + 1];
+};
+
+/* Names of quoting styles.  */
+char const *const quoting_style_args[] =
+{
+  "literal",
+  "shell",
+  "shell-always",
+  "c",
+  "escape",
+  "locale",
+  "clocale",
+  0
+};
+
+/* Correspondences to quoting style names.  */
+enum quoting_style const quoting_style_vals[] =
+{
+  literal_quoting_style,
+  shell_quoting_style,
+  shell_always_quoting_style,
+  c_quoting_style,
+  escape_quoting_style,
+  locale_quoting_style,
+  clocale_quoting_style
+};
+
+/* The default quoting options.  */
+static struct quoting_options default_quoting_options;
+
+/* Allocate a new set of quoting options, with contents initially identical
+   to O if O is not null, or to the default if O is null.
+   It is the caller's responsibility to free the result.  */
+struct quoting_options *
+clone_quoting_options (struct quoting_options *o)
+{
+  int e = errno;
+  struct quoting_options *p = xmemdup (o ? o : &default_quoting_options,
+				       sizeof *o);
+  errno = e;
+  return p;
+}
+
+/* Get the value of O's quoting style.  If O is null, use the default.  */
+enum quoting_style
+get_quoting_style (struct quoting_options *o)
+{
+  return (o ? o : &default_quoting_options)->style;
+}
+
+/* In O (or in the default if O is null),
+   set the value of the quoting style to S.  */
+void
+set_quoting_style (struct quoting_options *o, enum quoting_style s)
+{
+  (o ? o : &default_quoting_options)->style = s;
+}
+
+/* In O (or in the default if O is null),
+   set the value of the quoting options for character C to I.
+   Return the old value.  Currently, the only values defined for I are
+   0 (the default) and 1 (which means to quote the character even if
+   it would not otherwise be quoted).  */
+int
+set_char_quoting (struct quoting_options *o, char c, int i)
+{
+  unsigned char uc = c;
+  unsigned int *p =
+    (o ? o : &default_quoting_options)->quote_these_too + uc / INT_BITS;
+  int shift = uc % INT_BITS;
+  int r = (*p >> shift) & 1;
+  *p ^= ((i & 1) ^ r) << shift;
+  return r;
+}
+
+/* MSGID approximates a quotation mark.  Return its translation if it
+   has one; otherwise, return either it or "\"", depending on S.  */
+static char const *
+gettext_quote (char const *msgid, enum quoting_style s)
+{
+  char const *translation = _(msgid);
+  if (translation == msgid && s == clocale_quoting_style)
+    translation = "\"";
+  return translation;
+}
+
+/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of
+   argument ARG (of size ARGSIZE), using QUOTING_STYLE and the
+   non-quoting-style part of O to control quoting.
+   Terminate the output with a null character, and return the written
+   size of the output, not counting the terminating null.
+   If BUFFERSIZE is too small to store the output string, return the
+   value that would have been returned had BUFFERSIZE been large enough.
+   If ARGSIZE is SIZE_MAX, use the string length of the argument for ARGSIZE.
+
+   This function acts like quotearg_buffer (BUFFER, BUFFERSIZE, ARG,
+   ARGSIZE, O), except it uses QUOTING_STYLE instead of the quoting
+   style specified by O, and O may not be null.  */
+
+static size_t
+quotearg_buffer_restyled (char *buffer, size_t buffersize,
+			  char const *arg, size_t argsize,
+			  enum quoting_style quoting_style,
+			  struct quoting_options const *o)
+{
+  size_t i;
+  size_t len = 0;
+  char const *quote_string = 0;
+  size_t quote_string_len = 0;
+  bool backslash_escapes = false;
+  bool unibyte_locale = MB_CUR_MAX == 1;
+
+#define STORE(c) \
+    do \
+      { \
+	if (len < buffersize) \
+	  buffer[len] = (c); \
+	len++; \
+      } \
+    while (0)
+
+  switch (quoting_style)
+    {
+    case c_quoting_style:
+      STORE ('"');
+      backslash_escapes = true;
+      quote_string = "\"";
+      quote_string_len = 1;
+      break;
+
+    case escape_quoting_style:
+      backslash_escapes = true;
+      break;
+
+    case locale_quoting_style:
+    case clocale_quoting_style:
+      {
+	/* TRANSLATORS:
+	   Get translations for open and closing quotation marks.
+
+	   The message catalog should translate "`" to a left
+	   quotation mark suitable for the locale, and similarly for
+	   "'".  If the catalog has no translation,
+	   locale_quoting_style quotes `like this', and
+	   clocale_quoting_style quotes "like this".
+
+	   For example, an American English Unicode locale should
+	   translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+	   should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+	   MARK).  A British English Unicode locale should instead
+	   translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+	   U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+
+	   If you don't know what to put here, please see
+	   <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+	   and use glyphs suitable for your language.  */
+
+	char const *left = gettext_quote (N_("`"), quoting_style);
+	char const *right = gettext_quote (N_("'"), quoting_style);
+	for (quote_string = left; *quote_string; quote_string++)
+	  STORE (*quote_string);
+	backslash_escapes = true;
+	quote_string = right;
+	quote_string_len = strlen (quote_string);
+      }
+      break;
+
+    case shell_always_quoting_style:
+      STORE ('\'');
+      quote_string = "'";
+      quote_string_len = 1;
+      break;
+
+    default:
+      break;
+    }
+
+  for (i = 0;  ! (argsize == SIZE_MAX ? arg[i] == '\0' : i == argsize);  i++)
+    {
+      unsigned char c;
+      unsigned char esc;
+
+      if (backslash_escapes
+	  && quote_string_len
+	  && i + quote_string_len <= argsize
+	  && memcmp (arg + i, quote_string, quote_string_len) == 0)
+	STORE ('\\');
+
+      c = arg[i];
+      switch (c)
+	{
+	case '\0':
+	  if (backslash_escapes)
+	    {
+	      STORE ('\\');
+	      STORE ('0');
+	      STORE ('0');
+	      c = '0';
+	    }
+	  break;
+
+	case '?':
+	  switch (quoting_style)
+	    {
+	    case shell_quoting_style:
+	      goto use_shell_always_quoting_style;
+
+	    case c_quoting_style:
+	      if (i + 2 < argsize && arg[i + 1] == '?')
+		switch (arg[i + 2])
+		  {
+		  case '!': case '\'':
+		  case '(': case ')': case '-': case '/':
+		  case '<': case '=': case '>':
+		    /* Escape the second '?' in what would otherwise be
+		       a trigraph.  */
+		    c = arg[i + 2];
+		    i += 2;
+		    STORE ('?');
+		    STORE ('\\');
+		    STORE ('?');
+		    break;
+
+		  default:
+		    break;
+		  }
+	      break;
+
+	    default:
+	      break;
+	    }
+	  break;
+
+	case '\a': esc = 'a'; goto c_escape;
+	case '\b': esc = 'b'; goto c_escape;
+	case '\f': esc = 'f'; goto c_escape;
+	case '\n': esc = 'n'; goto c_and_shell_escape;
+	case '\r': esc = 'r'; goto c_and_shell_escape;
+	case '\t': esc = 't'; goto c_and_shell_escape;
+	case '\v': esc = 'v'; goto c_escape;
+	case '\\': esc = c; goto c_and_shell_escape;
+
+	c_and_shell_escape:
+	  if (quoting_style == shell_quoting_style)
+	    goto use_shell_always_quoting_style;
+	c_escape:
+	  if (backslash_escapes)
+	    {
+	      c = esc;
+	      goto store_escape;
+	    }
+	  break;
+
+	case '{': case '}': /* sometimes special if isolated */
+	  if (! (argsize == SIZE_MAX ? arg[1] == '\0' : argsize == 1))
+	    break;
+	  /* Fall through.  */
+	case '#': case '~':
+	  if (i != 0)
+	    break;
+	  /* Fall through.  */
+	case ' ':
+	case '!': /* special in bash */
+	case '"': case '$': case '&':
+	case '(': case ')': case '*': case ';':
+	case '<':
+	case '=': /* sometimes special in 0th or (with "set -k") later args */
+	case '>': case '[':
+	case '^': /* special in old /bin/sh, e.g. SunOS 4.1.4 */
+	case '`': case '|':
+	  /* A shell special character.  In theory, '$' and '`' could
+	     be the first bytes of multibyte characters, which means
+	     we should check them with mbrtowc, but in practice this
+	     doesn't happen so it's not worth worrying about.  */
+	  if (quoting_style == shell_quoting_style)
+	    goto use_shell_always_quoting_style;
+	  break;
+
+	case '\'':
+	  switch (quoting_style)
+	    {
+	    case shell_quoting_style:
+	      goto use_shell_always_quoting_style;
+
+	    case shell_always_quoting_style:
+	      STORE ('\'');
+	      STORE ('\\');
+	      STORE ('\'');
+	      break;
+
+	    default:
+	      break;
+	    }
+	  break;
+
+	case '%': case '+': case ',': case '-': case '.': case '/':
+	case '0': case '1': case '2': case '3': case '4': case '5':
+	case '6': case '7': case '8': case '9': case ':':
+	case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
+	case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
+	case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
+	case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
+	case 'Y': case 'Z': case ']': case '_': case 'a': case 'b':
+	case 'c': case 'd': case 'e': case 'f': case 'g': case 'h':
+	case 'i': case 'j': case 'k': case 'l': case 'm': case 'n':
+	case 'o': case 'p': case 'q': case 'r': case 's': case 't':
+	case 'u': case 'v': case 'w': case 'x': case 'y': case 'z':
+	  /* These characters don't cause problems, no matter what the
+	     quoting style is.  They cannot start multibyte sequences.  */
+	  break;
+
+	default:
+	  /* If we have a multibyte sequence, copy it until we reach
+	     its end, find an error, or come back to the initial shift
+	     state.  For C-like styles, if the sequence has
+	     unprintable characters, escape the whole sequence, since
+	     we can't easily escape single characters within it.  */
+	  {
+	    /* Length of multibyte sequence found so far.  */
+	    size_t m;
+
+	    bool printable;
+
+	    if (unibyte_locale)
+	      {
+		m = 1;
+		printable = isprint (c) != 0;
+	      }
+	    else
+	      {
+		mbstate_t mbstate;
+		memset (&mbstate, 0, sizeof mbstate);
+
+		m = 0;
+		printable = true;
+		if (argsize == SIZE_MAX)
+		  argsize = strlen (arg);
+
+		do
+		  {
+		    wchar_t w;
+		    size_t bytes = mbrtowc (&w, &arg[i + m],
+					    argsize - (i + m), &mbstate);
+		    if (bytes == 0)
+		      break;
+		    else if (bytes == (size_t) -1)
+		      {
+			printable = false;
+			break;
+		      }
+		    else if (bytes == (size_t) -2)
+		      {
+			printable = false;
+			while (i + m < argsize && arg[i + m])
+			  m++;
+			break;
+		      }
+		    else
+		      {
+			/* Work around a bug with older shells that "see" a '\'
+			   that is really the 2nd byte of a multibyte character.
+			   In practice the problem is limited to ASCII
+			   chars >= '@' that are shell special chars.  */
+			if ('[' == 0x5b && quoting_style == shell_quoting_style)
+			  {
+			    size_t j;
+			    for (j = 1; j < bytes; j++)
+			      switch (arg[i + m + j])
+				{
+				case '[': case '\\': case '^':
+				case '`': case '|':
+				  goto use_shell_always_quoting_style;
+
+				default:
+				  break;
+				}
+			  }
+
+			if (! iswprint (w))
+			  printable = false;
+			m += bytes;
+		      }
+		  }
+		while (! mbsinit (&mbstate));
+	      }
+
+	    if (1 < m || (backslash_escapes && ! printable))
+	      {
+		/* Output a multibyte sequence, or an escaped
+		   unprintable unibyte character.  */
+		size_t ilim = i + m;
+
+		for (;;)
+		  {
+		    if (backslash_escapes && ! printable)
+		      {
+			STORE ('\\');
+			STORE ('0' + (c >> 6));
+			STORE ('0' + ((c >> 3) & 7));
+			c = '0' + (c & 7);
+		      }
+		    if (ilim <= i + 1)
+		      break;
+		    STORE (c);
+		    c = arg[++i];
+		  }
+
+		goto store_c;
+	      }
+	  }
+	}
+
+      if (! (backslash_escapes
+	     && o->quote_these_too[c / INT_BITS] & (1 << (c % INT_BITS))))
+	goto store_c;
+
+    store_escape:
+      STORE ('\\');
+
+    store_c:
+      STORE (c);
+    }
+
+  if (i == 0 && quoting_style == shell_quoting_style)
+    goto use_shell_always_quoting_style;
+
+  if (quote_string)
+    for (; *quote_string; quote_string++)
+      STORE (*quote_string);
+
+  if (len < buffersize)
+    buffer[len] = '\0';
+  return len;
+
+ use_shell_always_quoting_style:
+  return quotearg_buffer_restyled (buffer, buffersize, arg, argsize,
+				   shell_always_quoting_style, o);
+}
+
+/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of
+   argument ARG (of size ARGSIZE), using O to control quoting.
+   If O is null, use the default.
+   Terminate the output with a null character, and return the written
+   size of the output, not counting the terminating null.
+   If BUFFERSIZE is too small to store the output string, return the
+   value that would have been returned had BUFFERSIZE been large enough.
+   If ARGSIZE is SIZE_MAX, use the string length of the argument for
+   ARGSIZE.  */
+size_t
+quotearg_buffer (char *buffer, size_t buffersize,
+		 char const *arg, size_t argsize,
+		 struct quoting_options const *o)
+{
+  struct quoting_options const *p = o ? o : &default_quoting_options;
+  int e = errno;
+  size_t r = quotearg_buffer_restyled (buffer, buffersize, arg, argsize,
+				       p->style, p);
+  errno = e;
+  return r;
+}
+
+/* Like quotearg_buffer (..., ARG, ARGSIZE, O), except return newly
+   allocated storage containing the quoted string.  */
+char *
+quotearg_alloc (char const *arg, size_t argsize,
+		struct quoting_options const *o)
+{
+  int e = errno;
+  size_t bufsize = quotearg_buffer (0, 0, arg, argsize, o) + 1;
+  char *buf = xcharalloc (bufsize);
+  quotearg_buffer (buf, bufsize, arg, argsize, o);
+  errno = e;
+  return buf;
+}
+
+/* A storage slot with size and pointer to a value.  */
+struct slotvec
+{
+  size_t size;
+  char *val;
+};
+
+/* Preallocate a slot 0 buffer, so that the caller can always quote
+   one small component of a "memory exhausted" message in slot 0.  */
+static char slot0[256];
+static unsigned int nslots = 1;
+static struct slotvec slotvec0 = {sizeof slot0, slot0};
+static struct slotvec *slotvec = &slotvec0;
+
+void
+quotearg_free (void)
+{
+  struct slotvec *sv = slotvec;
+  unsigned int i;
+  for (i = 1; i < nslots; i++)
+    free (sv[i].val);
+  if (sv[0].val != slot0)
+    {
+      free (sv[0].val);
+      slotvec0.size = sizeof slot0;
+      slotvec0.val = slot0;
+    }
+  if (sv != &slotvec0)
+    {
+      free (sv);
+      slotvec = &slotvec0;
+    }
+  nslots = 1;
+}
+
+/* Use storage slot N to return a quoted version of argument ARG.
+   ARG is of size ARGSIZE, but if that is SIZE_MAX, ARG is a
+   null-terminated string.
+   OPTIONS specifies the quoting options.
+   The returned value points to static storage that can be
+   reused by the next call to this function with the same value of N.
+   N must be nonnegative.  N is deliberately declared with type "int"
+   to allow for future extensions (using negative values).  */
+static char *
+quotearg_n_options (int n, char const *arg, size_t argsize,
+		    struct quoting_options const *options)
+{
+  int e = errno;
+
+  unsigned int n0 = n;
+  struct slotvec *sv = slotvec;
+
+  if (n < 0)
+    abort ();
+
+  if (nslots <= n0)
+    {
+      /* FIXME: technically, the type of n1 should be `unsigned int',
+	 but that evokes an unsuppressible warning from gcc-4.0.1 and
+	 older.  If gcc ever provides an option to suppress that warning,
+	 revert to the original type, so that the test in xalloc_oversized
+	 is once again performed only at compile time.  */
+      size_t n1 = n0 + 1;
+      bool preallocated = (sv == &slotvec0);
+
+      if (xalloc_oversized (n1, sizeof *sv))
+	xalloc_die ();
+
+      slotvec = sv = xrealloc (preallocated ? NULL : sv, n1 * sizeof *sv);
+      if (preallocated)
+	*sv = slotvec0;
+      memset (sv + nslots, 0, (n1 - nslots) * sizeof *sv);
+      nslots = n1;
+    }
+
+  {
+    size_t size = sv[n].size;
+    char *val = sv[n].val;
+    size_t qsize = quotearg_buffer (val, size, arg, argsize, options);
+
+    if (size <= qsize)
+      {
+	sv[n].size = size = qsize + 1;
+	if (val != slot0)
+	  free (val);
+	sv[n].val = val = xcharalloc (size);
+	quotearg_buffer (val, size, arg, argsize, options);
+      }
+
+    errno = e;
+    return val;
+  }
+}
+
+char *
+quotearg_n (int n, char const *arg)
+{
+  return quotearg_n_options (n, arg, SIZE_MAX, &default_quoting_options);
+}
+
+char *
+quotearg (char const *arg)
+{
+  return quotearg_n (0, arg);
+}
+
+/* Return quoting options for STYLE, with no extra quoting.  */
+static struct quoting_options
+quoting_options_from_style (enum quoting_style style)
+{
+  struct quoting_options o;
+  o.style = style;
+  memset (o.quote_these_too, 0, sizeof o.quote_these_too);
+  return o;
+}
+
+char *
+quotearg_n_style (int n, enum quoting_style s, char const *arg)
+{
+  struct quoting_options const o = quoting_options_from_style (s);
+  return quotearg_n_options (n, arg, SIZE_MAX, &o);
+}
+
+char *
+quotearg_n_style_mem (int n, enum quoting_style s,
+		      char const *arg, size_t argsize)
+{
+  struct quoting_options const o = quoting_options_from_style (s);
+  return quotearg_n_options (n, arg, argsize, &o);
+}
+
+char *
+quotearg_style (enum quoting_style s, char const *arg)
+{
+  return quotearg_n_style (0, s, arg);
+}
+
+char *
+quotearg_char (char const *arg, char ch)
+{
+  struct quoting_options options;
+  options = default_quoting_options;
+  set_char_quoting (&options, ch, 1);
+  return quotearg_n_options (0, arg, SIZE_MAX, &options);
+}
+
+char *
+quotearg_colon (char const *arg)
+{
+  return quotearg_char (arg, ':');
+}
diff --git a/parted-1.8.7/lib/quotearg.h b/parted-1.8.7/lib/quotearg.h
new file mode 100644
index 0000000..4887df3
--- /dev/null
+++ b/parted-1.8.7/lib/quotearg.h
@@ -0,0 +1,140 @@
+/* quotearg.h - quote arguments for output
+
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2006 Free
+   Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Written by Paul Eggert <eggert@twinsun.com> */
+
+#ifndef QUOTEARG_H_
+# define QUOTEARG_H_ 1
+
+# include <stddef.h>
+
+/* Basic quoting styles.  */
+enum quoting_style
+  {
+    /* Output names as-is (ls --quoting-style=literal).  */
+    literal_quoting_style,
+
+    /* Quote names for the shell if they contain shell metacharacters
+       or would cause ambiguous output (ls --quoting-style=shell).  */
+    shell_quoting_style,
+
+    /* Quote names for the shell, even if they would normally not
+       require quoting (ls --quoting-style=shell-always).  */
+    shell_always_quoting_style,
+
+    /* Quote names as for a C language string (ls --quoting-style=c).  */
+    c_quoting_style,
+
+    /* Like c_quoting_style except omit the surrounding double-quote
+       characters (ls --quoting-style=escape).  */
+    escape_quoting_style,
+
+    /* Like clocale_quoting_style, but quote `like this' instead of
+       "like this" in the default C locale (ls --quoting-style=locale).  */
+    locale_quoting_style,
+
+    /* Like c_quoting_style except use quotation marks appropriate for
+       the locale (ls --quoting-style=clocale).  */
+    clocale_quoting_style
+  };
+
+/* For now, --quoting-style=literal is the default, but this may change.  */
+# ifndef DEFAULT_QUOTING_STYLE
+#  define DEFAULT_QUOTING_STYLE literal_quoting_style
+# endif
+
+/* Names of quoting styles and their corresponding values.  */
+extern char const *const quoting_style_args[];
+extern enum quoting_style const quoting_style_vals[];
+
+struct quoting_options;
+
+/* The functions listed below set and use a hidden variable
+   that contains the default quoting style options.  */
+
+/* Allocate a new set of quoting options, with contents initially identical
+   to O if O is not null, or to the default if O is null.
+   It is the caller's responsibility to free the result.  */
+struct quoting_options *clone_quoting_options (struct quoting_options *o);
+
+/* Get the value of O's quoting style.  If O is null, use the default.  */
+enum quoting_style get_quoting_style (struct quoting_options *o);
+
+/* In O (or in the default if O is null),
+   set the value of the quoting style to S.  */
+void set_quoting_style (struct quoting_options *o, enum quoting_style s);
+
+/* In O (or in the default if O is null),
+   set the value of the quoting options for character C to I.
+   Return the old value.  Currently, the only values defined for I are
+   0 (the default) and 1 (which means to quote the character even if
+   it would not otherwise be quoted).  */
+int set_char_quoting (struct quoting_options *o, char c, int i);
+
+/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of
+   argument ARG (of size ARGSIZE), using O to control quoting.
+   If O is null, use the default.
+   Terminate the output with a null character, and return the written
+   size of the output, not counting the terminating null.
+   If BUFFERSIZE is too small to store the output string, return the
+   value that would have been returned had BUFFERSIZE been large enough.
+   If ARGSIZE is -1, use the string length of the argument for ARGSIZE.  */
+size_t quotearg_buffer (char *buffer, size_t buffersize,
+			char const *arg, size_t argsize,
+			struct quoting_options const *o);
+
+/* Like quotearg_buffer, except return the result in a newly allocated
+   buffer.  It is the caller's responsibility to free the result.  */
+char *quotearg_alloc (char const *arg, size_t argsize,
+		      struct quoting_options const *o);
+
+/* Use storage slot N to return a quoted version of the string ARG.
+   Use the default quoting options.
+   The returned value points to static storage that can be
+   reused by the next call to this function with the same value of N.
+   N must be nonnegative.  */
+char *quotearg_n (int n, char const *arg);
+
+/* Equivalent to quotearg_n (0, ARG).  */
+char *quotearg (char const *arg);
+
+/* Use style S and storage slot N to return a quoted version of the string ARG.
+   This is like quotearg_n (N, ARG), except that it uses S with no other
+   options to specify the quoting method.  */
+char *quotearg_n_style (int n, enum quoting_style s, char const *arg);
+
+/* Use style S and storage slot N to return a quoted version of the
+   argument ARG of size ARGSIZE.  This is like quotearg_n_style
+   (N, S, ARG), except it can quote null bytes.  */
+char *quotearg_n_style_mem (int n, enum quoting_style s,
+			    char const *arg, size_t argsize);
+
+/* Equivalent to quotearg_n_style (0, S, ARG).  */
+char *quotearg_style (enum quoting_style s, char const *arg);
+
+/* Like quotearg (ARG), except also quote any instances of CH.  */
+char *quotearg_char (char const *arg, char ch);
+
+/* Equivalent to quotearg_char (ARG, ':').  */
+char *quotearg_colon (char const *arg);
+
+/* Free any dynamically allocated memory.  */
+void quotearg_free (void);
+
+#endif /* !QUOTEARG_H_ */
diff --git a/parted-1.8.7/lib/realloc.c b/parted-1.8.7/lib/realloc.c
new file mode 100644
index 0000000..c1fe9e5
--- /dev/null
+++ b/parted-1.8.7/lib/realloc.c
@@ -0,0 +1,45 @@
+/* realloc() function that is glibc compatible.
+
+   Copyright (C) 1997, 2003, 2004, 2006 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* written by Jim Meyering */
+
+#include <config.h>
+#undef realloc
+
+#include <stdlib.h>
+
+/* Change the size of an allocated block of memory P to N bytes,
+   with error checking.  If N is zero, change it to 1.  If P is NULL,
+   use malloc.  */
+
+void *
+rpl_realloc (void *p, size_t n)
+{
+  if (n == 0)
+    {
+      n = 1;
+
+      /* In theory realloc might fail, so don't rely on it to free.  */
+      free (p);
+      p = NULL;
+    }
+
+  if (p == NULL)
+    return malloc (n);
+  return realloc (p, n);
+}
diff --git a/parted-1.8.7/lib/ref-add.sin b/parted-1.8.7/lib/ref-add.sin
new file mode 100644
index 0000000..bc5cc79
--- /dev/null
+++ b/parted-1.8.7/lib/ref-add.sin
@@ -0,0 +1,30 @@
+# Add this package to a list of references stored in a text file.
+#
+#   Copyright (C) 2000 Free Software Foundation, Inc.
+#
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 2, or (at your option)
+#   any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License along
+#   with this program; if not, write to the Free Software Foundation,
+#   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Written by Bruno Haible <haible@clisp.cons.org>.
+#
+/^# Packages using this file: / {
+  s/# Packages using this file://
+  ta
+  :a
+  s/ @PACKAGE@ / @PACKAGE@ /
+  tb
+  s/ $/ @PACKAGE@ /
+  :b
+  s/^/# Packages using this file:/
+}
diff --git a/parted-1.8.7/lib/ref-del.sin b/parted-1.8.7/lib/ref-del.sin
new file mode 100644
index 0000000..e9301bf
--- /dev/null
+++ b/parted-1.8.7/lib/ref-del.sin
@@ -0,0 +1,25 @@
+# Remove this package from a list of references stored in a text file.
+#
+#   Copyright (C) 2000 Free Software Foundation, Inc.
+#
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 2, or (at your option)
+#   any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License along
+#   with this program; if not, write to the Free Software Foundation,
+#   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Written by Bruno Haible <haible@clisp.cons.org>.
+#
+/^# Packages using this file: / {
+  s/# Packages using this file://
+  s/ @PACKAGE@ / /
+  s/^/# Packages using this file:/
+}
diff --git a/parted-1.8.7/lib/regcomp.c b/parted-1.8.7/lib/regcomp.c
new file mode 100644
index 0000000..fe4d243
--- /dev/null
+++ b/parted-1.8.7/lib/regcomp.c
@@ -0,0 +1,3832 @@
+/* Extended regular expression matching and search library.
+   Copyright (C) 2002,2003,2004,2005,2006,2007 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern,
+					  size_t length, reg_syntax_t syntax);
+static void re_compile_fastmap_iter (regex_t *bufp,
+				     const re_dfastate_t *init_state,
+				     char *fastmap);
+static reg_errcode_t init_dfa (re_dfa_t *dfa, size_t pat_len);
+#ifdef RE_ENABLE_I18N
+static void free_charset (re_charset_t *cset);
+#endif /* RE_ENABLE_I18N */
+static void free_workarea_compile (regex_t *preg);
+static reg_errcode_t create_initial_state (re_dfa_t *dfa);
+#ifdef RE_ENABLE_I18N
+static void optimize_utf8 (re_dfa_t *dfa);
+#endif
+static reg_errcode_t analyze (regex_t *preg);
+static reg_errcode_t preorder (bin_tree_t *root,
+			       reg_errcode_t (fn (void *, bin_tree_t *)),
+			       void *extra);
+static reg_errcode_t postorder (bin_tree_t *root,
+				reg_errcode_t (fn (void *, bin_tree_t *)),
+				void *extra);
+static reg_errcode_t optimize_subexps (void *extra, bin_tree_t *node);
+static reg_errcode_t lower_subexps (void *extra, bin_tree_t *node);
+static bin_tree_t *lower_subexp (reg_errcode_t *err, regex_t *preg,
+				 bin_tree_t *node);
+static reg_errcode_t calc_first (void *extra, bin_tree_t *node);
+static reg_errcode_t calc_next (void *extra, bin_tree_t *node);
+static reg_errcode_t link_nfa_nodes (void *extra, bin_tree_t *node);
+static Idx duplicate_node (re_dfa_t *dfa, Idx org_idx, unsigned int constraint);
+static Idx search_duplicated_node (const re_dfa_t *dfa, Idx org_node,
+				   unsigned int constraint);
+static reg_errcode_t calc_eclosure (re_dfa_t *dfa);
+static reg_errcode_t calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa,
+					 Idx node, bool root);
+static reg_errcode_t calc_inveclosure (re_dfa_t *dfa);
+static Idx fetch_number (re_string_t *input, re_token_t *token,
+			 reg_syntax_t syntax);
+static int peek_token (re_token_t *token, re_string_t *input,
+			reg_syntax_t syntax) internal_function;
+static bin_tree_t *parse (re_string_t *regexp, regex_t *preg,
+			  reg_syntax_t syntax, reg_errcode_t *err);
+static bin_tree_t *parse_reg_exp (re_string_t *regexp, regex_t *preg,
+				  re_token_t *token, reg_syntax_t syntax,
+				  Idx nest, reg_errcode_t *err);
+static bin_tree_t *parse_branch (re_string_t *regexp, regex_t *preg,
+				 re_token_t *token, reg_syntax_t syntax,
+				 Idx nest, reg_errcode_t *err);
+static bin_tree_t *parse_expression (re_string_t *regexp, regex_t *preg,
+				     re_token_t *token, reg_syntax_t syntax,
+				     Idx nest, reg_errcode_t *err);
+static bin_tree_t *parse_sub_exp (re_string_t *regexp, regex_t *preg,
+				  re_token_t *token, reg_syntax_t syntax,
+				  Idx nest, reg_errcode_t *err);
+static bin_tree_t *parse_dup_op (bin_tree_t *dup_elem, re_string_t *regexp,
+				 re_dfa_t *dfa, re_token_t *token,
+				 reg_syntax_t syntax, reg_errcode_t *err);
+static bin_tree_t *parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa,
+				      re_token_t *token, reg_syntax_t syntax,
+				      reg_errcode_t *err);
+static reg_errcode_t parse_bracket_element (bracket_elem_t *elem,
+					    re_string_t *regexp,
+					    re_token_t *token, int token_len,
+					    re_dfa_t *dfa,
+					    reg_syntax_t syntax,
+					    bool accept_hyphen);
+static reg_errcode_t parse_bracket_symbol (bracket_elem_t *elem,
+					  re_string_t *regexp,
+					  re_token_t *token);
+#ifdef RE_ENABLE_I18N
+static reg_errcode_t build_equiv_class (bitset_t sbcset,
+					re_charset_t *mbcset,
+					Idx *equiv_class_alloc,
+					const unsigned char *name);
+static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans,
+				      bitset_t sbcset,
+				      re_charset_t *mbcset,
+				      Idx *char_class_alloc,
+				      const unsigned char *class_name,
+				      reg_syntax_t syntax);
+#else  /* not RE_ENABLE_I18N */
+static reg_errcode_t build_equiv_class (bitset_t sbcset,
+					const unsigned char *name);
+static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans,
+				      bitset_t sbcset,
+				      const unsigned char *class_name,
+				      reg_syntax_t syntax);
+#endif /* not RE_ENABLE_I18N */
+static bin_tree_t *build_charclass_op (re_dfa_t *dfa,
+				       RE_TRANSLATE_TYPE trans,
+				       const unsigned char *class_name,
+				       const unsigned char *extra,
+				       bool non_match, reg_errcode_t *err);
+static bin_tree_t *create_tree (re_dfa_t *dfa,
+				bin_tree_t *left, bin_tree_t *right,
+				re_token_type_t type);
+static bin_tree_t *create_token_tree (re_dfa_t *dfa,
+				      bin_tree_t *left, bin_tree_t *right,
+				      const re_token_t *token);
+static bin_tree_t *duplicate_tree (const bin_tree_t *src, re_dfa_t *dfa);
+static void free_token (re_token_t *node);
+static reg_errcode_t free_tree (void *extra, bin_tree_t *node);
+static reg_errcode_t mark_opt_subexp (void *extra, bin_tree_t *node);
+
+/* This table gives an error message for each of the error codes listed
+   in regex.h.  Obviously the order here has to be same as there.
+   POSIX doesn't require that we do anything for REG_NOERROR,
+   but why not be nice?  */
+
+static const char __re_error_msgid[] =
+  {
+#define REG_NOERROR_IDX	0
+    gettext_noop ("Success")	/* REG_NOERROR */
+    "\0"
+#define REG_NOMATCH_IDX (REG_NOERROR_IDX + sizeof "Success")
+    gettext_noop ("No match")	/* REG_NOMATCH */
+    "\0"
+#define REG_BADPAT_IDX	(REG_NOMATCH_IDX + sizeof "No match")
+    gettext_noop ("Invalid regular expression") /* REG_BADPAT */
+    "\0"
+#define REG_ECOLLATE_IDX (REG_BADPAT_IDX + sizeof "Invalid regular expression")
+    gettext_noop ("Invalid collation character") /* REG_ECOLLATE */
+    "\0"
+#define REG_ECTYPE_IDX	(REG_ECOLLATE_IDX + sizeof "Invalid collation character")
+    gettext_noop ("Invalid character class name") /* REG_ECTYPE */
+    "\0"
+#define REG_EESCAPE_IDX	(REG_ECTYPE_IDX + sizeof "Invalid character class name")
+    gettext_noop ("Trailing backslash") /* REG_EESCAPE */
+    "\0"
+#define REG_ESUBREG_IDX	(REG_EESCAPE_IDX + sizeof "Trailing backslash")
+    gettext_noop ("Invalid back reference") /* REG_ESUBREG */
+    "\0"
+#define REG_EBRACK_IDX	(REG_ESUBREG_IDX + sizeof "Invalid back reference")
+    gettext_noop ("Unmatched [ or [^")	/* REG_EBRACK */
+    "\0"
+#define REG_EPAREN_IDX	(REG_EBRACK_IDX + sizeof "Unmatched [ or [^")
+    gettext_noop ("Unmatched ( or \\(") /* REG_EPAREN */
+    "\0"
+#define REG_EBRACE_IDX	(REG_EPAREN_IDX + sizeof "Unmatched ( or \\(")
+    gettext_noop ("Unmatched \\{") /* REG_EBRACE */
+    "\0"
+#define REG_BADBR_IDX	(REG_EBRACE_IDX + sizeof "Unmatched \\{")
+    gettext_noop ("Invalid content of \\{\\}") /* REG_BADBR */
+    "\0"
+#define REG_ERANGE_IDX	(REG_BADBR_IDX + sizeof "Invalid content of \\{\\}")
+    gettext_noop ("Invalid range end")	/* REG_ERANGE */
+    "\0"
+#define REG_ESPACE_IDX	(REG_ERANGE_IDX + sizeof "Invalid range end")
+    gettext_noop ("Memory exhausted") /* REG_ESPACE */
+    "\0"
+#define REG_BADRPT_IDX	(REG_ESPACE_IDX + sizeof "Memory exhausted")
+    gettext_noop ("Invalid preceding regular expression") /* REG_BADRPT */
+    "\0"
+#define REG_EEND_IDX	(REG_BADRPT_IDX + sizeof "Invalid preceding regular expression")
+    gettext_noop ("Premature end of regular expression") /* REG_EEND */
+    "\0"
+#define REG_ESIZE_IDX	(REG_EEND_IDX + sizeof "Premature end of regular expression")
+    gettext_noop ("Regular expression too big") /* REG_ESIZE */
+    "\0"
+#define REG_ERPAREN_IDX	(REG_ESIZE_IDX + sizeof "Regular expression too big")
+    gettext_noop ("Unmatched ) or \\)") /* REG_ERPAREN */
+  };
+
+static const size_t __re_error_msgid_idx[] =
+  {
+    REG_NOERROR_IDX,
+    REG_NOMATCH_IDX,
+    REG_BADPAT_IDX,
+    REG_ECOLLATE_IDX,
+    REG_ECTYPE_IDX,
+    REG_EESCAPE_IDX,
+    REG_ESUBREG_IDX,
+    REG_EBRACK_IDX,
+    REG_EPAREN_IDX,
+    REG_EBRACE_IDX,
+    REG_BADBR_IDX,
+    REG_ERANGE_IDX,
+    REG_ESPACE_IDX,
+    REG_BADRPT_IDX,
+    REG_EEND_IDX,
+    REG_ESIZE_IDX,
+    REG_ERPAREN_IDX
+  };
+
+/* Entry points for GNU code.  */
+
+/* re_compile_pattern is the GNU regular expression compiler: it
+   compiles PATTERN (of length LENGTH) and puts the result in BUFP.
+   Returns 0 if the pattern was valid, otherwise an error string.
+
+   Assumes the `allocated' (and perhaps `buffer') and `translate' fields
+   are set in BUFP on entry.  */
+
+#ifdef _LIBC
+const char *
+re_compile_pattern (pattern, length, bufp)
+    const char *pattern;
+    size_t length;
+    struct re_pattern_buffer *bufp;
+#else /* size_t might promote */
+const char *
+re_compile_pattern (const char *pattern, size_t length,
+		    struct re_pattern_buffer *bufp)
+#endif
+{
+  reg_errcode_t ret;
+
+  /* And GNU code determines whether or not to get register information
+     by passing null for the REGS argument to re_match, etc., not by
+     setting no_sub, unless RE_NO_SUB is set.  */
+  bufp->no_sub = !!(re_syntax_options & RE_NO_SUB);
+
+  /* Match anchors at newline.  */
+  bufp->newline_anchor = 1;
+
+  ret = re_compile_internal (bufp, pattern, length, re_syntax_options);
+
+  if (!ret)
+    return NULL;
+  return gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]);
+}
+#ifdef _LIBC
+weak_alias (__re_compile_pattern, re_compile_pattern)
+#endif
+
+/* Set by `re_set_syntax' to the current regexp syntax to recognize.  Can
+   also be assigned to arbitrarily: each pattern buffer stores its own
+   syntax, so it can be changed between regex compilations.  */
+/* This has no initializer because initialized variables in Emacs
+   become read-only after dumping.  */
+reg_syntax_t re_syntax_options;
+
+
+/* Specify the precise syntax of regexps for compilation.  This provides
+   for compatibility for various utilities which historically have
+   different, incompatible syntaxes.
+
+   The argument SYNTAX is a bit mask comprised of the various bits
+   defined in regex.h.  We return the old syntax.  */
+
+reg_syntax_t
+re_set_syntax (syntax)
+    reg_syntax_t syntax;
+{
+  reg_syntax_t ret = re_syntax_options;
+
+  re_syntax_options = syntax;
+  return ret;
+}
+#ifdef _LIBC
+weak_alias (__re_set_syntax, re_set_syntax)
+#endif
+
+int
+re_compile_fastmap (bufp)
+    struct re_pattern_buffer *bufp;
+{
+  re_dfa_t *dfa = (re_dfa_t *) bufp->buffer;
+  char *fastmap = bufp->fastmap;
+
+  memset (fastmap, '\0', sizeof (char) * SBC_MAX);
+  re_compile_fastmap_iter (bufp, dfa->init_state, fastmap);
+  if (dfa->init_state != dfa->init_state_word)
+    re_compile_fastmap_iter (bufp, dfa->init_state_word, fastmap);
+  if (dfa->init_state != dfa->init_state_nl)
+    re_compile_fastmap_iter (bufp, dfa->init_state_nl, fastmap);
+  if (dfa->init_state != dfa->init_state_begbuf)
+    re_compile_fastmap_iter (bufp, dfa->init_state_begbuf, fastmap);
+  bufp->fastmap_accurate = 1;
+  return 0;
+}
+#ifdef _LIBC
+weak_alias (__re_compile_fastmap, re_compile_fastmap)
+#endif
+
+static inline void
+__attribute ((always_inline))
+re_set_fastmap (char *fastmap, bool icase, int ch)
+{
+  fastmap[ch] = 1;
+  if (icase)
+    fastmap[tolower (ch)] = 1;
+}
+
+/* Helper function for re_compile_fastmap.
+   Compile fastmap for the initial_state INIT_STATE.  */
+
+static void
+re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state,
+			 char *fastmap)
+{
+  re_dfa_t *dfa = (re_dfa_t *) bufp->buffer;
+  Idx node_cnt;
+  bool icase = (dfa->mb_cur_max == 1 && (bufp->syntax & RE_ICASE));
+  for (node_cnt = 0; node_cnt < init_state->nodes.nelem; ++node_cnt)
+    {
+      Idx node = init_state->nodes.elems[node_cnt];
+      re_token_type_t type = dfa->nodes[node].type;
+
+      if (type == CHARACTER)
+	{
+	  re_set_fastmap (fastmap, icase, dfa->nodes[node].opr.c);
+#ifdef RE_ENABLE_I18N
+	  if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1)
+	    {
+	      unsigned char buf[MB_LEN_MAX];
+	      unsigned char *p;
+	      wchar_t wc;
+	      mbstate_t state;
+
+	      p = buf;
+	      *p++ = dfa->nodes[node].opr.c;
+	      while (++node < dfa->nodes_len
+		     &&	dfa->nodes[node].type == CHARACTER
+		     && dfa->nodes[node].mb_partial)
+		*p++ = dfa->nodes[node].opr.c;
+	      memset (&state, '\0', sizeof (state));
+	      if (mbrtowc (&wc, (const char *) buf, p - buf,
+			   &state) == p - buf
+		  && (__wcrtomb ((char *) buf, towlower (wc), &state)
+		      != (size_t) -1))
+		re_set_fastmap (fastmap, false, buf[0]);
+	    }
+#endif
+	}
+      else if (type == SIMPLE_BRACKET)
+	{
+	  int i, ch;
+	  for (i = 0, ch = 0; i < BITSET_WORDS; ++i)
+	    {
+	      int j;
+	      bitset_word_t w = dfa->nodes[node].opr.sbcset[i];
+	      for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch)
+		if (w & ((bitset_word_t) 1 << j))
+		  re_set_fastmap (fastmap, icase, ch);
+	    }
+	}
+#ifdef RE_ENABLE_I18N
+      else if (type == COMPLEX_BRACKET)
+	{
+	  Idx i;
+	  re_charset_t *cset = dfa->nodes[node].opr.mbcset;
+	  if (cset->non_match || cset->ncoll_syms || cset->nequiv_classes
+	      || cset->nranges || cset->nchar_classes)
+	    {
+# ifdef _LIBC
+	      if (_NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES) != 0)
+		{
+		  /* In this case we want to catch the bytes which are
+		     the first byte of any collation elements.
+		     e.g. In da_DK, we want to catch 'a' since "aa"
+			  is a valid collation element, and don't catch
+			  'b' since 'b' is the only collation element
+			  which starts from 'b'.  */
+		  const int32_t *table = (const int32_t *)
+		    _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB);
+		  for (i = 0; i < SBC_MAX; ++i)
+		    if (table[i] < 0)
+		      re_set_fastmap (fastmap, icase, i);
+		}
+# else
+	      if (dfa->mb_cur_max > 1)
+		for (i = 0; i < SBC_MAX; ++i)
+		  if (__btowc (i) == WEOF)
+		    re_set_fastmap (fastmap, icase, i);
+# endif /* not _LIBC */
+	    }
+	  for (i = 0; i < cset->nmbchars; ++i)
+	    {
+	      char buf[256];
+	      mbstate_t state;
+	      memset (&state, '\0', sizeof (state));
+	      if (__wcrtomb (buf, cset->mbchars[i], &state) != (size_t) -1)
+		re_set_fastmap (fastmap, icase, *(unsigned char *) buf);
+	      if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1)
+		{
+		  if (__wcrtomb (buf, towlower (cset->mbchars[i]), &state)
+		      != (size_t) -1)
+		    re_set_fastmap (fastmap, false, *(unsigned char *) buf);
+		}
+	    }
+	}
+#endif /* RE_ENABLE_I18N */
+      else if (type == OP_PERIOD
+#ifdef RE_ENABLE_I18N
+	       || type == OP_UTF8_PERIOD
+#endif /* RE_ENABLE_I18N */
+	       || type == END_OF_RE)
+	{
+	  memset (fastmap, '\1', sizeof (char) * SBC_MAX);
+	  if (type == END_OF_RE)
+	    bufp->can_be_null = 1;
+	  return;
+	}
+    }
+}
+
+/* Entry point for POSIX code.  */
+/* regcomp takes a regular expression as a string and compiles it.
+
+   PREG is a regex_t *.  We do not expect any fields to be initialized,
+   since POSIX says we shouldn't.  Thus, we set
+
+     `buffer' to the compiled pattern;
+     `used' to the length of the compiled pattern;
+     `syntax' to RE_SYNTAX_POSIX_EXTENDED if the
+       REG_EXTENDED bit in CFLAGS is set; otherwise, to
+       RE_SYNTAX_POSIX_BASIC;
+     `newline_anchor' to REG_NEWLINE being set in CFLAGS;
+     `fastmap' to an allocated space for the fastmap;
+     `fastmap_accurate' to zero;
+     `re_nsub' to the number of subexpressions in PATTERN.
+
+   PATTERN is the address of the pattern string.
+
+   CFLAGS is a series of bits which affect compilation.
+
+     If REG_EXTENDED is set, we use POSIX extended syntax; otherwise, we
+     use POSIX basic syntax.
+
+     If REG_NEWLINE is set, then . and [^...] don't match newline.
+     Also, regexec will try a match beginning after every newline.
+
+     If REG_ICASE is set, then we considers upper- and lowercase
+     versions of letters to be equivalent when matching.
+
+     If REG_NOSUB is set, then when PREG is passed to regexec, that
+     routine will report only success or failure, and nothing about the
+     registers.
+
+   It returns 0 if it succeeds, nonzero if it doesn't.  (See regex.h for
+   the return codes and their meanings.)  */
+
+int
+regcomp (preg, pattern, cflags)
+    regex_t *_Restrict_ preg;
+    const char *_Restrict_ pattern;
+    int cflags;
+{
+  reg_errcode_t ret;
+  reg_syntax_t syntax = ((cflags & REG_EXTENDED) ? RE_SYNTAX_POSIX_EXTENDED
+			 : RE_SYNTAX_POSIX_BASIC);
+
+  preg->buffer = NULL;
+  preg->allocated = 0;
+  preg->used = 0;
+
+  /* Try to allocate space for the fastmap.  */
+  preg->fastmap = re_malloc (char, SBC_MAX);
+  if (BE (preg->fastmap == NULL, 0))
+    return REG_ESPACE;
+
+  syntax |= (cflags & REG_ICASE) ? RE_ICASE : 0;
+
+  /* If REG_NEWLINE is set, newlines are treated differently.  */
+  if (cflags & REG_NEWLINE)
+    { /* REG_NEWLINE implies neither . nor [^...] match newline.  */
+      syntax &= ~RE_DOT_NEWLINE;
+      syntax |= RE_HAT_LISTS_NOT_NEWLINE;
+      /* It also changes the matching behavior.  */
+      preg->newline_anchor = 1;
+    }
+  else
+    preg->newline_anchor = 0;
+  preg->no_sub = !!(cflags & REG_NOSUB);
+  preg->translate = NULL;
+
+  ret = re_compile_internal (preg, pattern, strlen (pattern), syntax);
+
+  /* POSIX doesn't distinguish between an unmatched open-group and an
+     unmatched close-group: both are REG_EPAREN.  */
+  if (ret == REG_ERPAREN)
+    ret = REG_EPAREN;
+
+  /* We have already checked preg->fastmap != NULL.  */
+  if (BE (ret == REG_NOERROR, 1))
+    /* Compute the fastmap now, since regexec cannot modify the pattern
+       buffer.  This function never fails in this implementation.  */
+    (void) re_compile_fastmap (preg);
+  else
+    {
+      /* Some error occurred while compiling the expression.  */
+      re_free (preg->fastmap);
+      preg->fastmap = NULL;
+    }
+
+  return (int) ret;
+}
+#ifdef _LIBC
+weak_alias (__regcomp, regcomp)
+#endif
+
+/* Returns a message corresponding to an error code, ERRCODE, returned
+   from either regcomp or regexec.   We don't use PREG here.  */
+
+#ifdef _LIBC
+size_t
+regerror (errcode, preg, errbuf, errbuf_size)
+    int errcode;
+    const regex_t *_Restrict_ preg;
+    char *_Restrict_ errbuf;
+    size_t errbuf_size;
+#else /* size_t might promote */
+size_t
+regerror (int errcode, const regex_t *_Restrict_ preg,
+	  char *_Restrict_ errbuf, size_t errbuf_size)
+#endif
+{
+  const char *msg;
+  size_t msg_size;
+
+  if (BE (errcode < 0
+	  || errcode >= (int) (sizeof (__re_error_msgid_idx)
+			       / sizeof (__re_error_msgid_idx[0])), 0))
+    /* Only error codes returned by the rest of the code should be passed
+       to this routine.  If we are given anything else, or if other regex
+       code generates an invalid error code, then the program has a bug.
+       Dump core so we can fix it.  */
+    abort ();
+
+  msg = gettext (__re_error_msgid + __re_error_msgid_idx[errcode]);
+
+  msg_size = strlen (msg) + 1; /* Includes the null.  */
+
+  if (BE (errbuf_size != 0, 1))
+    {
+      size_t cpy_size = msg_size;
+      if (BE (msg_size > errbuf_size, 0))
+	{
+	  cpy_size = errbuf_size - 1;
+	  errbuf[cpy_size] = '\0';
+	}
+      memcpy (errbuf, msg, cpy_size);
+    }
+
+  return msg_size;
+}
+#ifdef _LIBC
+weak_alias (__regerror, regerror)
+#endif
+
+
+#ifdef RE_ENABLE_I18N
+/* This static array is used for the map to single-byte characters when
+   UTF-8 is used.  Otherwise we would allocate memory just to initialize
+   it the same all the time.  UTF-8 is the preferred encoding so this is
+   a worthwhile optimization.  */
+static const bitset_t utf8_sb_map =
+{
+  /* Set the first 128 bits.  */
+# if 4 * BITSET_WORD_BITS < ASCII_CHARS
+#  error "bitset_word_t is narrower than 32 bits"
+# elif 3 * BITSET_WORD_BITS < ASCII_CHARS
+  BITSET_WORD_MAX, BITSET_WORD_MAX, BITSET_WORD_MAX,
+# elif 2 * BITSET_WORD_BITS < ASCII_CHARS
+  BITSET_WORD_MAX, BITSET_WORD_MAX,
+# elif 1 * BITSET_WORD_BITS < ASCII_CHARS
+  BITSET_WORD_MAX,
+# endif
+  (BITSET_WORD_MAX
+   >> (SBC_MAX % BITSET_WORD_BITS == 0
+       ? 0
+       : BITSET_WORD_BITS - SBC_MAX % BITSET_WORD_BITS))
+};
+#endif
+
+
+static void
+free_dfa_content (re_dfa_t *dfa)
+{
+  Idx i, j;
+
+  if (dfa->nodes)
+    for (i = 0; i < dfa->nodes_len; ++i)
+      free_token (dfa->nodes + i);
+  re_free (dfa->nexts);
+  for (i = 0; i < dfa->nodes_len; ++i)
+    {
+      if (dfa->eclosures != NULL)
+	re_node_set_free (dfa->eclosures + i);
+      if (dfa->inveclosures != NULL)
+	re_node_set_free (dfa->inveclosures + i);
+      if (dfa->edests != NULL)
+	re_node_set_free (dfa->edests + i);
+    }
+  re_free (dfa->edests);
+  re_free (dfa->eclosures);
+  re_free (dfa->inveclosures);
+  re_free (dfa->nodes);
+
+  if (dfa->state_table)
+    for (i = 0; i <= dfa->state_hash_mask; ++i)
+      {
+	struct re_state_table_entry *entry = dfa->state_table + i;
+	for (j = 0; j < entry->num; ++j)
+	  {
+	    re_dfastate_t *state = entry->array[j];
+	    free_state (state);
+	  }
+        re_free (entry->array);
+      }
+  re_free (dfa->state_table);
+#ifdef RE_ENABLE_I18N
+  if (dfa->sb_char != utf8_sb_map)
+    re_free (dfa->sb_char);
+#endif
+  re_free (dfa->subexp_map);
+#ifdef DEBUG
+  re_free (dfa->re_str);
+#endif
+
+  re_free (dfa);
+}
+
+
+/* Free dynamically allocated space used by PREG.  */
+
+void
+regfree (preg)
+    regex_t *preg;
+{
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  if (BE (dfa != NULL, 1))
+    free_dfa_content (dfa);
+  preg->buffer = NULL;
+  preg->allocated = 0;
+
+  re_free (preg->fastmap);
+  preg->fastmap = NULL;
+
+  re_free (preg->translate);
+  preg->translate = NULL;
+}
+#ifdef _LIBC
+weak_alias (__regfree, regfree)
+#endif
+
+/* Entry points compatible with 4.2 BSD regex library.  We don't define
+   them unless specifically requested.  */
+
+#if defined _REGEX_RE_COMP || defined _LIBC
+
+/* BSD has one and only one pattern buffer.  */
+static struct re_pattern_buffer re_comp_buf;
+
+char *
+# ifdef _LIBC
+/* Make these definitions weak in libc, so POSIX programs can redefine
+   these names if they don't use our functions, and still use
+   regcomp/regexec above without link errors.  */
+weak_function
+# endif
+re_comp (s)
+     const char *s;
+{
+  reg_errcode_t ret;
+  char *fastmap;
+
+  if (!s)
+    {
+      if (!re_comp_buf.buffer)
+	return gettext ("No previous regular expression");
+      return 0;
+    }
+
+  if (re_comp_buf.buffer)
+    {
+      fastmap = re_comp_buf.fastmap;
+      re_comp_buf.fastmap = NULL;
+      __regfree (&re_comp_buf);
+      memset (&re_comp_buf, '\0', sizeof (re_comp_buf));
+      re_comp_buf.fastmap = fastmap;
+    }
+
+  if (re_comp_buf.fastmap == NULL)
+    {
+      re_comp_buf.fastmap = (char *) malloc (SBC_MAX);
+      if (re_comp_buf.fastmap == NULL)
+	return (char *) gettext (__re_error_msgid
+				 + __re_error_msgid_idx[(int) REG_ESPACE]);
+    }
+
+  /* Since `re_exec' always passes NULL for the `regs' argument, we
+     don't need to initialize the pattern buffer fields which affect it.  */
+
+  /* Match anchors at newlines.  */
+  re_comp_buf.newline_anchor = 1;
+
+  ret = re_compile_internal (&re_comp_buf, s, strlen (s), re_syntax_options);
+
+  if (!ret)
+    return NULL;
+
+  /* Yes, we're discarding `const' here if !HAVE_LIBINTL.  */
+  return (char *) gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]);
+}
+
+#ifdef _LIBC
+libc_freeres_fn (free_mem)
+{
+  __regfree (&re_comp_buf);
+}
+#endif
+
+#endif /* _REGEX_RE_COMP */
+
+/* Internal entry point.
+   Compile the regular expression PATTERN, whose length is LENGTH.
+   SYNTAX indicate regular expression's syntax.  */
+
+static reg_errcode_t
+re_compile_internal (regex_t *preg, const char * pattern, size_t length,
+		     reg_syntax_t syntax)
+{
+  reg_errcode_t err = REG_NOERROR;
+  re_dfa_t *dfa;
+  re_string_t regexp;
+
+  /* Initialize the pattern buffer.  */
+  preg->fastmap_accurate = 0;
+  preg->syntax = syntax;
+  preg->not_bol = preg->not_eol = 0;
+  preg->used = 0;
+  preg->re_nsub = 0;
+  preg->can_be_null = 0;
+  preg->regs_allocated = REGS_UNALLOCATED;
+
+  /* Initialize the dfa.  */
+  dfa = (re_dfa_t *) preg->buffer;
+  if (BE (preg->allocated < sizeof (re_dfa_t), 0))
+    {
+      /* If zero allocated, but buffer is non-null, try to realloc
+	 enough space.  This loses if buffer's address is bogus, but
+	 that is the user's responsibility.  If ->buffer is NULL this
+	 is a simple allocation.  */
+      dfa = re_realloc (preg->buffer, re_dfa_t, 1);
+      if (dfa == NULL)
+	return REG_ESPACE;
+      preg->allocated = sizeof (re_dfa_t);
+      preg->buffer = (unsigned char *) dfa;
+    }
+  preg->used = sizeof (re_dfa_t);
+
+  err = init_dfa (dfa, length);
+  if (BE (err != REG_NOERROR, 0))
+    {
+      free_dfa_content (dfa);
+      preg->buffer = NULL;
+      preg->allocated = 0;
+      return err;
+    }
+#ifdef DEBUG
+  /* Note: length+1 will not overflow since it is checked in init_dfa.  */
+  dfa->re_str = re_malloc (char, length + 1);
+  strncpy (dfa->re_str, pattern, length + 1);
+#endif
+
+  __libc_lock_init (dfa->lock);
+
+  err = re_string_construct (&regexp, pattern, length, preg->translate,
+			     syntax & RE_ICASE, dfa);
+  if (BE (err != REG_NOERROR, 0))
+    {
+    re_compile_internal_free_return:
+      free_workarea_compile (preg);
+      re_string_destruct (&regexp);
+      free_dfa_content (dfa);
+      preg->buffer = NULL;
+      preg->allocated = 0;
+      return err;
+    }
+
+  /* Parse the regular expression, and build a structure tree.  */
+  preg->re_nsub = 0;
+  dfa->str_tree = parse (&regexp, preg, syntax, &err);
+  if (BE (dfa->str_tree == NULL, 0))
+    goto re_compile_internal_free_return;
+
+  /* Analyze the tree and create the nfa.  */
+  err = analyze (preg);
+  if (BE (err != REG_NOERROR, 0))
+    goto re_compile_internal_free_return;
+
+#ifdef RE_ENABLE_I18N
+  /* If possible, do searching in single byte encoding to speed things up.  */
+  if (dfa->is_utf8 && !(syntax & RE_ICASE) && preg->translate == NULL)
+    optimize_utf8 (dfa);
+#endif
+
+  /* Then create the initial state of the dfa.  */
+  err = create_initial_state (dfa);
+
+  /* Release work areas.  */
+  free_workarea_compile (preg);
+  re_string_destruct (&regexp);
+
+  if (BE (err != REG_NOERROR, 0))
+    {
+      free_dfa_content (dfa);
+      preg->buffer = NULL;
+      preg->allocated = 0;
+    }
+
+  return err;
+}
+
+/* Initialize DFA.  We use the length of the regular expression PAT_LEN
+   as the initial length of some arrays.  */
+
+static reg_errcode_t
+init_dfa (re_dfa_t *dfa, size_t pat_len)
+{
+  __re_size_t table_size;
+#ifdef RE_ENABLE_I18N
+  size_t max_i18n_object_size = MAX (sizeof (wchar_t), sizeof (wctype_t));
+#else
+  size_t max_i18n_object_size = 0;
+#endif
+  size_t max_object_size =
+    MAX (sizeof (struct re_state_table_entry),
+	 MAX (sizeof (re_token_t),
+	      MAX (sizeof (re_node_set),
+		   MAX (sizeof (regmatch_t),
+			max_i18n_object_size))));
+
+  memset (dfa, '\0', sizeof (re_dfa_t));
+
+  /* Force allocation of str_tree_storage the first time.  */
+  dfa->str_tree_storage_idx = BIN_TREE_STORAGE_SIZE;
+
+  /* Avoid overflows.  The extra "/ 2" is for the table_size doubling
+     calculation below, and for similar doubling calculations
+     elsewhere.  And it's <= rather than <, because some of the
+     doubling calculations add 1 afterwards.  */
+  if (BE (SIZE_MAX / max_object_size / 2 <= pat_len, 0))
+    return REG_ESPACE;
+
+  dfa->nodes_alloc = pat_len + 1;
+  dfa->nodes = re_malloc (re_token_t, dfa->nodes_alloc);
+
+  /*  table_size = 2 ^ ceil(log pat_len) */
+  for (table_size = 1; ; table_size <<= 1)
+    if (table_size > pat_len)
+      break;
+
+  dfa->state_table = calloc (sizeof (struct re_state_table_entry), table_size);
+  dfa->state_hash_mask = table_size - 1;
+
+  dfa->mb_cur_max = MB_CUR_MAX;
+#ifdef _LIBC
+  if (dfa->mb_cur_max == 6
+      && strcmp (_NL_CURRENT (LC_CTYPE, _NL_CTYPE_CODESET_NAME), "UTF-8") == 0)
+    dfa->is_utf8 = 1;
+  dfa->map_notascii = (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MAP_TO_NONASCII)
+		       != 0);
+#else
+  if (strcmp (locale_charset (), "UTF-8") == 0)
+    dfa->is_utf8 = 1;
+
+  /* We check exhaustively in the loop below if this charset is a
+     superset of ASCII.  */
+  dfa->map_notascii = 0;
+#endif
+
+#ifdef RE_ENABLE_I18N
+  if (dfa->mb_cur_max > 1)
+    {
+      if (dfa->is_utf8)
+	dfa->sb_char = (re_bitset_ptr_t) utf8_sb_map;
+      else
+	{
+	  int i, j, ch;
+
+	  dfa->sb_char = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1);
+	  if (BE (dfa->sb_char == NULL, 0))
+	    return REG_ESPACE;
+
+	  /* Set the bits corresponding to single byte chars.  */
+	  for (i = 0, ch = 0; i < BITSET_WORDS; ++i)
+	    for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch)
+	      {
+		wint_t wch = __btowc (ch);
+		if (wch != WEOF)
+		  dfa->sb_char[i] |= (bitset_word_t) 1 << j;
+# ifndef _LIBC
+		if (isascii (ch) && wch != ch)
+		  dfa->map_notascii = 1;
+# endif
+	      }
+	}
+    }
+#endif
+
+  if (BE (dfa->nodes == NULL || dfa->state_table == NULL, 0))
+    return REG_ESPACE;
+  return REG_NOERROR;
+}
+
+/* Initialize WORD_CHAR table, which indicate which character is
+   "word".  In this case "word" means that it is the word construction
+   character used by some operators like "\<", "\>", etc.  */
+
+static void
+internal_function
+init_word_char (re_dfa_t *dfa)
+{
+  int i, j, ch;
+  dfa->word_ops_used = 1;
+  for (i = 0, ch = 0; i < BITSET_WORDS; ++i)
+    for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch)
+      if (isalnum (ch) || ch == '_')
+	dfa->word_char[i] |= (bitset_word_t) 1 << j;
+}
+
+/* Free the work area which are only used while compiling.  */
+
+static void
+free_workarea_compile (regex_t *preg)
+{
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  bin_tree_storage_t *storage, *next;
+  for (storage = dfa->str_tree_storage; storage; storage = next)
+    {
+      next = storage->next;
+      re_free (storage);
+    }
+  dfa->str_tree_storage = NULL;
+  dfa->str_tree_storage_idx = BIN_TREE_STORAGE_SIZE;
+  dfa->str_tree = NULL;
+  re_free (dfa->org_indices);
+  dfa->org_indices = NULL;
+}
+
+/* Create initial states for all contexts.  */
+
+static reg_errcode_t
+create_initial_state (re_dfa_t *dfa)
+{
+  Idx first, i;
+  reg_errcode_t err;
+  re_node_set init_nodes;
+
+  /* Initial states have the epsilon closure of the node which is
+     the first node of the regular expression.  */
+  first = dfa->str_tree->first->node_idx;
+  dfa->init_node = first;
+  err = re_node_set_init_copy (&init_nodes, dfa->eclosures + first);
+  if (BE (err != REG_NOERROR, 0))
+    return err;
+
+  /* The back-references which are in initial states can epsilon transit,
+     since in this case all of the subexpressions can be null.
+     Then we add epsilon closures of the nodes which are the next nodes of
+     the back-references.  */
+  if (dfa->nbackref > 0)
+    for (i = 0; i < init_nodes.nelem; ++i)
+      {
+	Idx node_idx = init_nodes.elems[i];
+	re_token_type_t type = dfa->nodes[node_idx].type;
+
+	Idx clexp_idx;
+	if (type != OP_BACK_REF)
+	  continue;
+	for (clexp_idx = 0; clexp_idx < init_nodes.nelem; ++clexp_idx)
+	  {
+	    re_token_t *clexp_node;
+	    clexp_node = dfa->nodes + init_nodes.elems[clexp_idx];
+	    if (clexp_node->type == OP_CLOSE_SUBEXP
+		&& clexp_node->opr.idx == dfa->nodes[node_idx].opr.idx)
+	      break;
+	  }
+	if (clexp_idx == init_nodes.nelem)
+	  continue;
+
+	if (type == OP_BACK_REF)
+	  {
+	    Idx dest_idx = dfa->edests[node_idx].elems[0];
+	    if (!re_node_set_contains (&init_nodes, dest_idx))
+	      {
+		re_node_set_merge (&init_nodes, dfa->eclosures + dest_idx);
+		i = 0;
+	      }
+	  }
+      }
+
+  /* It must be the first time to invoke acquire_state.  */
+  dfa->init_state = re_acquire_state_context (&err, dfa, &init_nodes, 0);
+  /* We don't check ERR here, since the initial state must not be NULL.  */
+  if (BE (dfa->init_state == NULL, 0))
+    return err;
+  if (dfa->init_state->has_constraint)
+    {
+      dfa->init_state_word = re_acquire_state_context (&err, dfa, &init_nodes,
+						       CONTEXT_WORD);
+      dfa->init_state_nl = re_acquire_state_context (&err, dfa, &init_nodes,
+						     CONTEXT_NEWLINE);
+      dfa->init_state_begbuf = re_acquire_state_context (&err, dfa,
+							 &init_nodes,
+							 CONTEXT_NEWLINE
+							 | CONTEXT_BEGBUF);
+      if (BE (dfa->init_state_word == NULL || dfa->init_state_nl == NULL
+	      || dfa->init_state_begbuf == NULL, 0))
+	return err;
+    }
+  else
+    dfa->init_state_word = dfa->init_state_nl
+      = dfa->init_state_begbuf = dfa->init_state;
+
+  re_node_set_free (&init_nodes);
+  return REG_NOERROR;
+}
+
+#ifdef RE_ENABLE_I18N
+/* If it is possible to do searching in single byte encoding instead of UTF-8
+   to speed things up, set dfa->mb_cur_max to 1, clear is_utf8 and change
+   DFA nodes where needed.  */
+
+static void
+optimize_utf8 (re_dfa_t *dfa)
+{
+  Idx node;
+  int i;
+  bool mb_chars = false;
+  bool has_period = false;
+
+  for (node = 0; node < dfa->nodes_len; ++node)
+    switch (dfa->nodes[node].type)
+      {
+      case CHARACTER:
+	if (dfa->nodes[node].opr.c >= ASCII_CHARS)
+	  mb_chars = true;
+	break;
+      case ANCHOR:
+	switch (dfa->nodes[node].opr.idx)
+	  {
+	  case LINE_FIRST:
+	  case LINE_LAST:
+	  case BUF_FIRST:
+	  case BUF_LAST:
+	    break;
+	  default:
+	    /* Word anchors etc. cannot be handled.  */
+	    return;
+	  }
+	break;
+      case OP_PERIOD:
+        has_period = true;
+        break;
+      case OP_BACK_REF:
+      case OP_ALT:
+      case END_OF_RE:
+      case OP_DUP_ASTERISK:
+      case OP_OPEN_SUBEXP:
+      case OP_CLOSE_SUBEXP:
+	break;
+      case COMPLEX_BRACKET:
+	return;
+      case SIMPLE_BRACKET:
+	/* Just double check.  */
+	{
+	  int rshift = (ASCII_CHARS % BITSET_WORD_BITS == 0
+			? 0
+			: BITSET_WORD_BITS - ASCII_CHARS % BITSET_WORD_BITS);
+	  for (i = ASCII_CHARS / BITSET_WORD_BITS; i < BITSET_WORDS; ++i)
+	    {
+	      if (dfa->nodes[node].opr.sbcset[i] >> rshift != 0)
+		return;
+	      rshift = 0;
+	    }
+	}
+	break;
+      default:
+	abort ();
+      }
+
+  if (mb_chars || has_period)
+    for (node = 0; node < dfa->nodes_len; ++node)
+      {
+	if (dfa->nodes[node].type == CHARACTER
+	    && dfa->nodes[node].opr.c >= ASCII_CHARS)
+	  dfa->nodes[node].mb_partial = 0;
+	else if (dfa->nodes[node].type == OP_PERIOD)
+	  dfa->nodes[node].type = OP_UTF8_PERIOD;
+      }
+
+  /* The search can be in single byte locale.  */
+  dfa->mb_cur_max = 1;
+  dfa->is_utf8 = 0;
+  dfa->has_mb_node = dfa->nbackref > 0 || has_period;
+}
+#endif
+
+/* Analyze the structure tree, and calculate "first", "next", "edest",
+   "eclosure", and "inveclosure".  */
+
+static reg_errcode_t
+analyze (regex_t *preg)
+{
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  reg_errcode_t ret;
+
+  /* Allocate arrays.  */
+  dfa->nexts = re_malloc (Idx, dfa->nodes_alloc);
+  dfa->org_indices = re_malloc (Idx, dfa->nodes_alloc);
+  dfa->edests = re_malloc (re_node_set, dfa->nodes_alloc);
+  dfa->eclosures = re_malloc (re_node_set, dfa->nodes_alloc);
+  if (BE (dfa->nexts == NULL || dfa->org_indices == NULL || dfa->edests == NULL
+	  || dfa->eclosures == NULL, 0))
+    return REG_ESPACE;
+
+  dfa->subexp_map = re_malloc (Idx, preg->re_nsub);
+  if (dfa->subexp_map != NULL)
+    {
+      Idx i;
+      for (i = 0; i < preg->re_nsub; i++)
+	dfa->subexp_map[i] = i;
+      preorder (dfa->str_tree, optimize_subexps, dfa);
+      for (i = 0; i < preg->re_nsub; i++)
+	if (dfa->subexp_map[i] != i)
+	  break;
+      if (i == preg->re_nsub)
+	{
+	  free (dfa->subexp_map);
+	  dfa->subexp_map = NULL;
+	}
+    }
+
+  ret = postorder (dfa->str_tree, lower_subexps, preg);
+  if (BE (ret != REG_NOERROR, 0))
+    return ret;
+  ret = postorder (dfa->str_tree, calc_first, dfa);
+  if (BE (ret != REG_NOERROR, 0))
+    return ret;
+  preorder (dfa->str_tree, calc_next, dfa);
+  ret = preorder (dfa->str_tree, link_nfa_nodes, dfa);
+  if (BE (ret != REG_NOERROR, 0))
+    return ret;
+  ret = calc_eclosure (dfa);
+  if (BE (ret != REG_NOERROR, 0))
+    return ret;
+
+  /* We only need this during the prune_impossible_nodes pass in regexec.c;
+     skip it if p_i_n will not run, as calc_inveclosure can be quadratic.  */
+  if ((!preg->no_sub && preg->re_nsub > 0 && dfa->has_plural_match)
+      || dfa->nbackref)
+    {
+      dfa->inveclosures = re_malloc (re_node_set, dfa->nodes_len);
+      if (BE (dfa->inveclosures == NULL, 0))
+        return REG_ESPACE;
+      ret = calc_inveclosure (dfa);
+    }
+
+  return ret;
+}
+
+/* Our parse trees are very unbalanced, so we cannot use a stack to
+   implement parse tree visits.  Instead, we use parent pointers and
+   some hairy code in these two functions.  */
+static reg_errcode_t
+postorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)),
+	   void *extra)
+{
+  bin_tree_t *node, *prev;
+
+  for (node = root; ; )
+    {
+      /* Descend down the tree, preferably to the left (or to the right
+	 if that's the only child).  */
+      while (node->left || node->right)
+	if (node->left)
+          node = node->left;
+        else
+          node = node->right;
+
+      do
+	{
+	  reg_errcode_t err = fn (extra, node);
+	  if (BE (err != REG_NOERROR, 0))
+	    return err;
+          if (node->parent == NULL)
+	    return REG_NOERROR;
+	  prev = node;
+	  node = node->parent;
+	}
+      /* Go up while we have a node that is reached from the right.  */
+      while (node->right == prev || node->right == NULL);
+      node = node->right;
+    }
+}
+
+static reg_errcode_t
+preorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)),
+	  void *extra)
+{
+  bin_tree_t *node;
+
+  for (node = root; ; )
+    {
+      reg_errcode_t err = fn (extra, node);
+      if (BE (err != REG_NOERROR, 0))
+	return err;
+
+      /* Go to the left node, or up and to the right.  */
+      if (node->left)
+	node = node->left;
+      else
+	{
+	  bin_tree_t *prev = NULL;
+	  while (node->right == prev || node->right == NULL)
+	    {
+	      prev = node;
+	      node = node->parent;
+	      if (!node)
+	        return REG_NOERROR;
+	    }
+	  node = node->right;
+	}
+    }
+}
+
+/* Optimization pass: if a SUBEXP is entirely contained, strip it and tell
+   re_search_internal to map the inner one's opr.idx to this one's.  Adjust
+   backreferences as well.  Requires a preorder visit.  */
+static reg_errcode_t
+optimize_subexps (void *extra, bin_tree_t *node)
+{
+  re_dfa_t *dfa = (re_dfa_t *) extra;
+
+  if (node->token.type == OP_BACK_REF && dfa->subexp_map)
+    {
+      int idx = node->token.opr.idx;
+      node->token.opr.idx = dfa->subexp_map[idx];
+      dfa->used_bkref_map |= 1 << node->token.opr.idx;
+    }
+
+  else if (node->token.type == SUBEXP
+           && node->left && node->left->token.type == SUBEXP)
+    {
+      Idx other_idx = node->left->token.opr.idx;
+
+      node->left = node->left->left;
+      if (node->left)
+        node->left->parent = node;
+
+      dfa->subexp_map[other_idx] = dfa->subexp_map[node->token.opr.idx];
+      if (other_idx < BITSET_WORD_BITS)
+	dfa->used_bkref_map &= ~((bitset_word_t) 1 << other_idx);
+    }
+
+  return REG_NOERROR;
+}
+
+/* Lowering pass: Turn each SUBEXP node into the appropriate concatenation
+   of OP_OPEN_SUBEXP, the body of the SUBEXP (if any) and OP_CLOSE_SUBEXP.  */
+static reg_errcode_t
+lower_subexps (void *extra, bin_tree_t *node)
+{
+  regex_t *preg = (regex_t *) extra;
+  reg_errcode_t err = REG_NOERROR;
+
+  if (node->left && node->left->token.type == SUBEXP)
+    {
+      node->left = lower_subexp (&err, preg, node->left);
+      if (node->left)
+	node->left->parent = node;
+    }
+  if (node->right && node->right->token.type == SUBEXP)
+    {
+      node->right = lower_subexp (&err, preg, node->right);
+      if (node->right)
+	node->right->parent = node;
+    }
+
+  return err;
+}
+
+static bin_tree_t *
+lower_subexp (reg_errcode_t *err, regex_t *preg, bin_tree_t *node)
+{
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  bin_tree_t *body = node->left;
+  bin_tree_t *op, *cls, *tree1, *tree;
+
+  if (preg->no_sub
+      /* We do not optimize empty subexpressions, because otherwise we may
+	 have bad CONCAT nodes with NULL children.  This is obviously not
+	 very common, so we do not lose much.  An example that triggers
+	 this case is the sed "script" /\(\)/x.  */
+      && node->left != NULL
+      && (node->token.opr.idx >= BITSET_WORD_BITS
+	  || !(dfa->used_bkref_map
+	       & ((bitset_word_t) 1 << node->token.opr.idx))))
+    return node->left;
+
+  /* Convert the SUBEXP node to the concatenation of an
+     OP_OPEN_SUBEXP, the contents, and an OP_CLOSE_SUBEXP.  */
+  op = create_tree (dfa, NULL, NULL, OP_OPEN_SUBEXP);
+  cls = create_tree (dfa, NULL, NULL, OP_CLOSE_SUBEXP);
+  tree1 = body ? create_tree (dfa, body, cls, CONCAT) : cls;
+  tree = create_tree (dfa, op, tree1, CONCAT);
+  if (BE (tree == NULL || tree1 == NULL || op == NULL || cls == NULL, 0))
+    {
+      *err = REG_ESPACE;
+      return NULL;
+    }
+
+  op->token.opr.idx = cls->token.opr.idx = node->token.opr.idx;
+  op->token.opt_subexp = cls->token.opt_subexp = node->token.opt_subexp;
+  return tree;
+}
+
+/* Pass 1 in building the NFA: compute FIRST and create unlinked automaton
+   nodes.  Requires a postorder visit.  */
+static reg_errcode_t
+calc_first (void *extra, bin_tree_t *node)
+{
+  re_dfa_t *dfa = (re_dfa_t *) extra;
+  if (node->token.type == CONCAT)
+    {
+      node->first = node->left->first;
+      node->node_idx = node->left->node_idx;
+    }
+  else
+    {
+      node->first = node;
+      node->node_idx = re_dfa_add_node (dfa, node->token);
+      if (BE (node->node_idx == REG_MISSING, 0))
+        return REG_ESPACE;
+    }
+  return REG_NOERROR;
+}
+
+/* Pass 2: compute NEXT on the tree.  Preorder visit.  */
+static reg_errcode_t
+calc_next (void *extra, bin_tree_t *node)
+{
+  switch (node->token.type)
+    {
+    case OP_DUP_ASTERISK:
+      node->left->next = node;
+      break;
+    case CONCAT:
+      node->left->next = node->right->first;
+      node->right->next = node->next;
+      break;
+    default:
+      if (node->left)
+	node->left->next = node->next;
+      if (node->right)
+        node->right->next = node->next;
+      break;
+    }
+  return REG_NOERROR;
+}
+
+/* Pass 3: link all DFA nodes to their NEXT node (any order will do).  */
+static reg_errcode_t
+link_nfa_nodes (void *extra, bin_tree_t *node)
+{
+  re_dfa_t *dfa = (re_dfa_t *) extra;
+  Idx idx = node->node_idx;
+  reg_errcode_t err = REG_NOERROR;
+
+  switch (node->token.type)
+    {
+    case CONCAT:
+      break;
+
+    case END_OF_RE:
+      assert (node->next == NULL);
+      break;
+
+    case OP_DUP_ASTERISK:
+    case OP_ALT:
+      {
+	Idx left, right;
+	dfa->has_plural_match = 1;
+	if (node->left != NULL)
+	  left = node->left->first->node_idx;
+	else
+	  left = node->next->node_idx;
+	if (node->right != NULL)
+	  right = node->right->first->node_idx;
+	else
+	  right = node->next->node_idx;
+	assert (REG_VALID_INDEX (left));
+	assert (REG_VALID_INDEX (right));
+	err = re_node_set_init_2 (dfa->edests + idx, left, right);
+      }
+      break;
+
+    case ANCHOR:
+    case OP_OPEN_SUBEXP:
+    case OP_CLOSE_SUBEXP:
+      err = re_node_set_init_1 (dfa->edests + idx, node->next->node_idx);
+      break;
+
+    case OP_BACK_REF:
+      dfa->nexts[idx] = node->next->node_idx;
+      if (node->token.type == OP_BACK_REF)
+	re_node_set_init_1 (dfa->edests + idx, dfa->nexts[idx]);
+      break;
+
+    default:
+      assert (!IS_EPSILON_NODE (node->token.type));
+      dfa->nexts[idx] = node->next->node_idx;
+      break;
+    }
+
+  return err;
+}
+
+/* Duplicate the epsilon closure of the node ROOT_NODE.
+   Note that duplicated nodes have constraint INIT_CONSTRAINT in addition
+   to their own constraint.  */
+
+static reg_errcode_t
+internal_function
+duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node,
+			Idx root_node, unsigned int init_constraint)
+{
+  Idx org_node, clone_node;
+  bool ok;
+  unsigned int constraint = init_constraint;
+  for (org_node = top_org_node, clone_node = top_clone_node;;)
+    {
+      Idx org_dest, clone_dest;
+      if (dfa->nodes[org_node].type == OP_BACK_REF)
+	{
+	  /* If the back reference epsilon-transit, its destination must
+	     also have the constraint.  Then duplicate the epsilon closure
+	     of the destination of the back reference, and store it in
+	     edests of the back reference.  */
+	  org_dest = dfa->nexts[org_node];
+	  re_node_set_empty (dfa->edests + clone_node);
+	  clone_dest = duplicate_node (dfa, org_dest, constraint);
+	  if (BE (clone_dest == REG_MISSING, 0))
+	    return REG_ESPACE;
+	  dfa->nexts[clone_node] = dfa->nexts[org_node];
+	  ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
+	  if (BE (! ok, 0))
+	    return REG_ESPACE;
+	}
+      else if (dfa->edests[org_node].nelem == 0)
+	{
+	  /* In case of the node can't epsilon-transit, don't duplicate the
+	     destination and store the original destination as the
+	     destination of the node.  */
+	  dfa->nexts[clone_node] = dfa->nexts[org_node];
+	  break;
+	}
+      else if (dfa->edests[org_node].nelem == 1)
+	{
+	  /* In case of the node can epsilon-transit, and it has only one
+	     destination.  */
+	  org_dest = dfa->edests[org_node].elems[0];
+	  re_node_set_empty (dfa->edests + clone_node);
+	  if (dfa->nodes[org_node].type == ANCHOR)
+	    {
+	      /* In case of the node has another constraint, append it.  */
+	      if (org_node == root_node && clone_node != org_node)
+		{
+		  /* ...but if the node is root_node itself, it means the
+		     epsilon closure have a loop, then tie it to the
+		     destination of the root_node.  */
+		  ok = re_node_set_insert (dfa->edests + clone_node, org_dest);
+		  if (BE (! ok, 0))
+		    return REG_ESPACE;
+		  break;
+		}
+	      constraint |= dfa->nodes[org_node].opr.ctx_type;
+	    }
+	  clone_dest = duplicate_node (dfa, org_dest, constraint);
+	  if (BE (clone_dest == REG_MISSING, 0))
+	    return REG_ESPACE;
+	  ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
+	  if (BE (! ok, 0))
+	    return REG_ESPACE;
+	}
+      else /* dfa->edests[org_node].nelem == 2 */
+	{
+	  /* In case of the node can epsilon-transit, and it has two
+	     destinations. In the bin_tree_t and DFA, that's '|' and '*'.   */
+	  org_dest = dfa->edests[org_node].elems[0];
+	  re_node_set_empty (dfa->edests + clone_node);
+	  /* Search for a duplicated node which satisfies the constraint.  */
+	  clone_dest = search_duplicated_node (dfa, org_dest, constraint);
+	  if (clone_dest == REG_MISSING)
+	    {
+	      /* There are no such a duplicated node, create a new one.  */
+	      reg_errcode_t err;
+	      clone_dest = duplicate_node (dfa, org_dest, constraint);
+	      if (BE (clone_dest == REG_MISSING, 0))
+		return REG_ESPACE;
+	      ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
+	      if (BE (! ok, 0))
+		return REG_ESPACE;
+	      err = duplicate_node_closure (dfa, org_dest, clone_dest,
+					    root_node, constraint);
+	      if (BE (err != REG_NOERROR, 0))
+		return err;
+	    }
+	  else
+	    {
+	      /* There are a duplicated node which satisfy the constraint,
+		 use it to avoid infinite loop.  */
+	      ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
+	      if (BE (! ok, 0))
+		return REG_ESPACE;
+	    }
+
+	  org_dest = dfa->edests[org_node].elems[1];
+	  clone_dest = duplicate_node (dfa, org_dest, constraint);
+	  if (BE (clone_dest == REG_MISSING, 0))
+	    return REG_ESPACE;
+	  ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
+	  if (BE (! ok, 0))
+	    return REG_ESPACE;
+	}
+      org_node = org_dest;
+      clone_node = clone_dest;
+    }
+  return REG_NOERROR;
+}
+
+/* Search for a node which is duplicated from the node ORG_NODE, and
+   satisfies the constraint CONSTRAINT.  */
+
+static Idx
+search_duplicated_node (const re_dfa_t *dfa, Idx org_node,
+			unsigned int constraint)
+{
+  Idx idx;
+  for (idx = dfa->nodes_len - 1; dfa->nodes[idx].duplicated && idx > 0; --idx)
+    {
+      if (org_node == dfa->org_indices[idx]
+	  && constraint == dfa->nodes[idx].constraint)
+	return idx; /* Found.  */
+    }
+  return REG_MISSING; /* Not found.  */
+}
+
+/* Duplicate the node whose index is ORG_IDX and set the constraint CONSTRAINT.
+   Return the index of the new node, or REG_MISSING if insufficient storage is
+   available.  */
+
+static Idx
+duplicate_node (re_dfa_t *dfa, Idx org_idx, unsigned int constraint)
+{
+  Idx dup_idx = re_dfa_add_node (dfa, dfa->nodes[org_idx]);
+  if (BE (dup_idx != REG_MISSING, 1))
+    {
+      dfa->nodes[dup_idx].constraint = constraint;
+      if (dfa->nodes[org_idx].type == ANCHOR)
+	dfa->nodes[dup_idx].constraint |= dfa->nodes[org_idx].opr.ctx_type;
+      dfa->nodes[dup_idx].duplicated = 1;
+
+      /* Store the index of the original node.  */
+      dfa->org_indices[dup_idx] = org_idx;
+    }
+  return dup_idx;
+}
+
+static reg_errcode_t
+calc_inveclosure (re_dfa_t *dfa)
+{
+  Idx src, idx;
+  bool ok;
+  for (idx = 0; idx < dfa->nodes_len; ++idx)
+    re_node_set_init_empty (dfa->inveclosures + idx);
+
+  for (src = 0; src < dfa->nodes_len; ++src)
+    {
+      Idx *elems = dfa->eclosures[src].elems;
+      for (idx = 0; idx < dfa->eclosures[src].nelem; ++idx)
+	{
+	  ok = re_node_set_insert_last (dfa->inveclosures + elems[idx], src);
+	  if (BE (! ok, 0))
+	    return REG_ESPACE;
+	}
+    }
+
+  return REG_NOERROR;
+}
+
+/* Calculate "eclosure" for all the node in DFA.  */
+
+static reg_errcode_t
+calc_eclosure (re_dfa_t *dfa)
+{
+  Idx node_idx;
+  bool incomplete;
+#ifdef DEBUG
+  assert (dfa->nodes_len > 0);
+#endif
+  incomplete = false;
+  /* For each nodes, calculate epsilon closure.  */
+  for (node_idx = 0; ; ++node_idx)
+    {
+      reg_errcode_t err;
+      re_node_set eclosure_elem;
+      if (node_idx == dfa->nodes_len)
+	{
+	  if (!incomplete)
+	    break;
+	  incomplete = false;
+	  node_idx = 0;
+	}
+
+#ifdef DEBUG
+      assert (dfa->eclosures[node_idx].nelem != REG_MISSING);
+#endif
+
+      /* If we have already calculated, skip it.  */
+      if (dfa->eclosures[node_idx].nelem != 0)
+	continue;
+      /* Calculate epsilon closure of `node_idx'.  */
+      err = calc_eclosure_iter (&eclosure_elem, dfa, node_idx, true);
+      if (BE (err != REG_NOERROR, 0))
+	return err;
+
+      if (dfa->eclosures[node_idx].nelem == 0)
+	{
+	  incomplete = true;
+	  re_node_set_free (&eclosure_elem);
+	}
+    }
+  return REG_NOERROR;
+}
+
+/* Calculate epsilon closure of NODE.  */
+
+static reg_errcode_t
+calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root)
+{
+  reg_errcode_t err;
+  unsigned int constraint;
+  Idx i;
+  bool incomplete;
+  bool ok;
+  re_node_set eclosure;
+  incomplete = false;
+  err = re_node_set_alloc (&eclosure, dfa->edests[node].nelem + 1);
+  if (BE (err != REG_NOERROR, 0))
+    return err;
+
+  /* This indicates that we are calculating this node now.
+     We reference this value to avoid infinite loop.  */
+  dfa->eclosures[node].nelem = REG_MISSING;
+
+  constraint = ((dfa->nodes[node].type == ANCHOR)
+		? dfa->nodes[node].opr.ctx_type : 0);
+  /* If the current node has constraints, duplicate all nodes.
+     Since they must inherit the constraints.  */
+  if (constraint
+      && dfa->edests[node].nelem
+      && !dfa->nodes[dfa->edests[node].elems[0]].duplicated)
+    {
+      err = duplicate_node_closure (dfa, node, node, node, constraint);
+      if (BE (err != REG_NOERROR, 0))
+	return err;
+    }
+
+  /* Expand each epsilon destination nodes.  */
+  if (IS_EPSILON_NODE(dfa->nodes[node].type))
+    for (i = 0; i < dfa->edests[node].nelem; ++i)
+      {
+	re_node_set eclosure_elem;
+	Idx edest = dfa->edests[node].elems[i];
+	/* If calculating the epsilon closure of `edest' is in progress,
+	   return intermediate result.  */
+	if (dfa->eclosures[edest].nelem == REG_MISSING)
+	  {
+	    incomplete = true;
+	    continue;
+	  }
+	/* If we haven't calculated the epsilon closure of `edest' yet,
+	   calculate now. Otherwise use calculated epsilon closure.  */
+	if (dfa->eclosures[edest].nelem == 0)
+	  {
+	    err = calc_eclosure_iter (&eclosure_elem, dfa, edest, false);
+	    if (BE (err != REG_NOERROR, 0))
+	      return err;
+	  }
+	else
+	  eclosure_elem = dfa->eclosures[edest];
+	/* Merge the epsilon closure of `edest'.  */
+	re_node_set_merge (&eclosure, &eclosure_elem);
+	/* If the epsilon closure of `edest' is incomplete,
+	   the epsilon closure of this node is also incomplete.  */
+	if (dfa->eclosures[edest].nelem == 0)
+	  {
+	    incomplete = true;
+	    re_node_set_free (&eclosure_elem);
+	  }
+      }
+
+  /* Epsilon closures include itself.  */
+  ok = re_node_set_insert (&eclosure, node);
+  if (BE (! ok, 0))
+    return REG_ESPACE;
+  if (incomplete && !root)
+    dfa->eclosures[node].nelem = 0;
+  else
+    dfa->eclosures[node] = eclosure;
+  *new_set = eclosure;
+  return REG_NOERROR;
+}
+
+/* Functions for token which are used in the parser.  */
+
+/* Fetch a token from INPUT.
+   We must not use this function inside bracket expressions.  */
+
+static void
+internal_function
+fetch_token (re_token_t *result, re_string_t *input, reg_syntax_t syntax)
+{
+  re_string_skip_bytes (input, peek_token (result, input, syntax));
+}
+
+/* Peek a token from INPUT, and return the length of the token.
+   We must not use this function inside bracket expressions.  */
+
+static int
+internal_function
+peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax)
+{
+  unsigned char c;
+
+  if (re_string_eoi (input))
+    {
+      token->type = END_OF_RE;
+      return 0;
+    }
+
+  c = re_string_peek_byte (input, 0);
+  token->opr.c = c;
+
+  token->word_char = 0;
+#ifdef RE_ENABLE_I18N
+  token->mb_partial = 0;
+  if (input->mb_cur_max > 1 &&
+      !re_string_first_byte (input, re_string_cur_idx (input)))
+    {
+      token->type = CHARACTER;
+      token->mb_partial = 1;
+      return 1;
+    }
+#endif
+  if (c == '\\')
+    {
+      unsigned char c2;
+      if (re_string_cur_idx (input) + 1 >= re_string_length (input))
+	{
+	  token->type = BACK_SLASH;
+	  return 1;
+	}
+
+      c2 = re_string_peek_byte_case (input, 1);
+      token->opr.c = c2;
+      token->type = CHARACTER;
+#ifdef RE_ENABLE_I18N
+      if (input->mb_cur_max > 1)
+	{
+	  wint_t wc = re_string_wchar_at (input,
+					  re_string_cur_idx (input) + 1);
+	  token->word_char = IS_WIDE_WORD_CHAR (wc) != 0;
+	}
+      else
+#endif
+	token->word_char = IS_WORD_CHAR (c2) != 0;
+
+      switch (c2)
+	{
+	case '|':
+	  if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_NO_BK_VBAR))
+	    token->type = OP_ALT;
+	  break;
+	case '1': case '2': case '3': case '4': case '5':
+	case '6': case '7': case '8': case '9':
+	  if (!(syntax & RE_NO_BK_REFS))
+	    {
+	      token->type = OP_BACK_REF;
+	      token->opr.idx = c2 - '1';
+	    }
+	  break;
+	case '<':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    {
+	      token->type = ANCHOR;
+	      token->opr.ctx_type = WORD_FIRST;
+	    }
+	  break;
+	case '>':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    {
+	      token->type = ANCHOR;
+	      token->opr.ctx_type = WORD_LAST;
+	    }
+	  break;
+	case 'b':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    {
+	      token->type = ANCHOR;
+	      token->opr.ctx_type = WORD_DELIM;
+	    }
+	  break;
+	case 'B':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    {
+	      token->type = ANCHOR;
+	      token->opr.ctx_type = NOT_WORD_DELIM;
+	    }
+	  break;
+	case 'w':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    token->type = OP_WORD;
+	  break;
+	case 'W':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    token->type = OP_NOTWORD;
+	  break;
+	case 's':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    token->type = OP_SPACE;
+	  break;
+	case 'S':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    token->type = OP_NOTSPACE;
+	  break;
+	case '`':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    {
+	      token->type = ANCHOR;
+	      token->opr.ctx_type = BUF_FIRST;
+	    }
+	  break;
+	case '\'':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    {
+	      token->type = ANCHOR;
+	      token->opr.ctx_type = BUF_LAST;
+	    }
+	  break;
+	case '(':
+	  if (!(syntax & RE_NO_BK_PARENS))
+	    token->type = OP_OPEN_SUBEXP;
+	  break;
+	case ')':
+	  if (!(syntax & RE_NO_BK_PARENS))
+	    token->type = OP_CLOSE_SUBEXP;
+	  break;
+	case '+':
+	  if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_BK_PLUS_QM))
+	    token->type = OP_DUP_PLUS;
+	  break;
+	case '?':
+	  if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_BK_PLUS_QM))
+	    token->type = OP_DUP_QUESTION;
+	  break;
+	case '{':
+	  if ((syntax & RE_INTERVALS) && (!(syntax & RE_NO_BK_BRACES)))
+	    token->type = OP_OPEN_DUP_NUM;
+	  break;
+	case '}':
+	  if ((syntax & RE_INTERVALS) && (!(syntax & RE_NO_BK_BRACES)))
+	    token->type = OP_CLOSE_DUP_NUM;
+	  break;
+	default:
+	  break;
+	}
+      return 2;
+    }
+
+  token->type = CHARACTER;
+#ifdef RE_ENABLE_I18N
+  if (input->mb_cur_max > 1)
+    {
+      wint_t wc = re_string_wchar_at (input, re_string_cur_idx (input));
+      token->word_char = IS_WIDE_WORD_CHAR (wc) != 0;
+    }
+  else
+#endif
+    token->word_char = IS_WORD_CHAR (token->opr.c);
+
+  switch (c)
+    {
+    case '\n':
+      if (syntax & RE_NEWLINE_ALT)
+	token->type = OP_ALT;
+      break;
+    case '|':
+      if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_NO_BK_VBAR))
+	token->type = OP_ALT;
+      break;
+    case '*':
+      token->type = OP_DUP_ASTERISK;
+      break;
+    case '+':
+      if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_BK_PLUS_QM))
+	token->type = OP_DUP_PLUS;
+      break;
+    case '?':
+      if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_BK_PLUS_QM))
+	token->type = OP_DUP_QUESTION;
+      break;
+    case '{':
+      if ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES))
+	token->type = OP_OPEN_DUP_NUM;
+      break;
+    case '}':
+      if ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES))
+	token->type = OP_CLOSE_DUP_NUM;
+      break;
+    case '(':
+      if (syntax & RE_NO_BK_PARENS)
+	token->type = OP_OPEN_SUBEXP;
+      break;
+    case ')':
+      if (syntax & RE_NO_BK_PARENS)
+	token->type = OP_CLOSE_SUBEXP;
+      break;
+    case '[':
+      token->type = OP_OPEN_BRACKET;
+      break;
+    case '.':
+      token->type = OP_PERIOD;
+      break;
+    case '^':
+      if (!(syntax & (RE_CONTEXT_INDEP_ANCHORS | RE_CARET_ANCHORS_HERE)) &&
+	  re_string_cur_idx (input) != 0)
+	{
+	  char prev = re_string_peek_byte (input, -1);
+	  if (!(syntax & RE_NEWLINE_ALT) || prev != '\n')
+	    break;
+	}
+      token->type = ANCHOR;
+      token->opr.ctx_type = LINE_FIRST;
+      break;
+    case '$':
+      if (!(syntax & RE_CONTEXT_INDEP_ANCHORS) &&
+	  re_string_cur_idx (input) + 1 != re_string_length (input))
+	{
+	  re_token_t next;
+	  re_string_skip_bytes (input, 1);
+	  peek_token (&next, input, syntax);
+	  re_string_skip_bytes (input, -1);
+	  if (next.type != OP_ALT && next.type != OP_CLOSE_SUBEXP)
+	    break;
+	}
+      token->type = ANCHOR;
+      token->opr.ctx_type = LINE_LAST;
+      break;
+    default:
+      break;
+    }
+  return 1;
+}
+
+/* Peek a token from INPUT, and return the length of the token.
+   We must not use this function out of bracket expressions.  */
+
+static int
+internal_function
+peek_token_bracket (re_token_t *token, re_string_t *input, reg_syntax_t syntax)
+{
+  unsigned char c;
+  if (re_string_eoi (input))
+    {
+      token->type = END_OF_RE;
+      return 0;
+    }
+  c = re_string_peek_byte (input, 0);
+  token->opr.c = c;
+
+#ifdef RE_ENABLE_I18N
+  if (input->mb_cur_max > 1 &&
+      !re_string_first_byte (input, re_string_cur_idx (input)))
+    {
+      token->type = CHARACTER;
+      return 1;
+    }
+#endif /* RE_ENABLE_I18N */
+
+  if (c == '\\' && (syntax & RE_BACKSLASH_ESCAPE_IN_LISTS)
+      && re_string_cur_idx (input) + 1 < re_string_length (input))
+    {
+      /* In this case, '\' escape a character.  */
+      unsigned char c2;
+      re_string_skip_bytes (input, 1);
+      c2 = re_string_peek_byte (input, 0);
+      token->opr.c = c2;
+      token->type = CHARACTER;
+      return 1;
+    }
+  if (c == '[') /* '[' is a special char in a bracket exps.  */
+    {
+      unsigned char c2;
+      int token_len;
+      if (re_string_cur_idx (input) + 1 < re_string_length (input))
+	c2 = re_string_peek_byte (input, 1);
+      else
+	c2 = 0;
+      token->opr.c = c2;
+      token_len = 2;
+      switch (c2)
+	{
+	case '.':
+	  token->type = OP_OPEN_COLL_ELEM;
+	  break;
+	case '=':
+	  token->type = OP_OPEN_EQUIV_CLASS;
+	  break;
+	case ':':
+	  if (syntax & RE_CHAR_CLASSES)
+	    {
+	      token->type = OP_OPEN_CHAR_CLASS;
+	      break;
+	    }
+	  /* else fall through.  */
+	default:
+	  token->type = CHARACTER;
+	  token->opr.c = c;
+	  token_len = 1;
+	  break;
+	}
+      return token_len;
+    }
+  switch (c)
+    {
+    case '-':
+      token->type = OP_CHARSET_RANGE;
+      break;
+    case ']':
+      token->type = OP_CLOSE_BRACKET;
+      break;
+    case '^':
+      token->type = OP_NON_MATCH_LIST;
+      break;
+    default:
+      token->type = CHARACTER;
+    }
+  return 1;
+}
+
+/* Functions for parser.  */
+
+/* Entry point of the parser.
+   Parse the regular expression REGEXP and return the structure tree.
+   If an error is occured, ERR is set by error code, and return NULL.
+   This function build the following tree, from regular expression <reg_exp>:
+	   CAT
+	   / \
+	  /   \
+   <reg_exp>  EOR
+
+   CAT means concatenation.
+   EOR means end of regular expression.  */
+
+static bin_tree_t *
+parse (re_string_t *regexp, regex_t *preg, reg_syntax_t syntax,
+       reg_errcode_t *err)
+{
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  bin_tree_t *tree, *eor, *root;
+  re_token_t current_token;
+  dfa->syntax = syntax;
+  fetch_token (&current_token, regexp, syntax | RE_CARET_ANCHORS_HERE);
+  tree = parse_reg_exp (regexp, preg, &current_token, syntax, 0, err);
+  if (BE (*err != REG_NOERROR && tree == NULL, 0))
+    return NULL;
+  eor = create_tree (dfa, NULL, NULL, END_OF_RE);
+  if (tree != NULL)
+    root = create_tree (dfa, tree, eor, CONCAT);
+  else
+    root = eor;
+  if (BE (eor == NULL || root == NULL, 0))
+    {
+      *err = REG_ESPACE;
+      return NULL;
+    }
+  return root;
+}
+
+/* This function build the following tree, from regular expression
+   <branch1>|<branch2>:
+	   ALT
+	   / \
+	  /   \
+   <branch1> <branch2>
+
+   ALT means alternative, which represents the operator `|'.  */
+
+static bin_tree_t *
+parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token,
+	       reg_syntax_t syntax, Idx nest, reg_errcode_t *err)
+{
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  bin_tree_t *tree, *branch = NULL;
+  tree = parse_branch (regexp, preg, token, syntax, nest, err);
+  if (BE (*err != REG_NOERROR && tree == NULL, 0))
+    return NULL;
+
+  while (token->type == OP_ALT)
+    {
+      fetch_token (token, regexp, syntax | RE_CARET_ANCHORS_HERE);
+      if (token->type != OP_ALT && token->type != END_OF_RE
+	  && (nest == 0 || token->type != OP_CLOSE_SUBEXP))
+	{
+	  branch = parse_branch (regexp, preg, token, syntax, nest, err);
+	  if (BE (*err != REG_NOERROR && branch == NULL, 0))
+	    return NULL;
+	}
+      else
+	branch = NULL;
+      tree = create_tree (dfa, tree, branch, OP_ALT);
+      if (BE (tree == NULL, 0))
+	{
+	  *err = REG_ESPACE;
+	  return NULL;
+	}
+    }
+  return tree;
+}
+
+/* This function build the following tree, from regular expression
+   <exp1><exp2>:
+	CAT
+	/ \
+       /   \
+   <exp1> <exp2>
+
+   CAT means concatenation.  */
+
+static bin_tree_t *
+parse_branch (re_string_t *regexp, regex_t *preg, re_token_t *token,
+	      reg_syntax_t syntax, Idx nest, reg_errcode_t *err)
+{
+  bin_tree_t *tree, *expr;
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  tree = parse_expression (regexp, preg, token, syntax, nest, err);
+  if (BE (*err != REG_NOERROR && tree == NULL, 0))
+    return NULL;
+
+  while (token->type != OP_ALT && token->type != END_OF_RE
+	 && (nest == 0 || token->type != OP_CLOSE_SUBEXP))
+    {
+      expr = parse_expression (regexp, preg, token, syntax, nest, err);
+      if (BE (*err != REG_NOERROR && expr == NULL, 0))
+	{
+	  return NULL;
+	}
+      if (tree != NULL && expr != NULL)
+	{
+	  tree = create_tree (dfa, tree, expr, CONCAT);
+	  if (tree == NULL)
+	    {
+	      *err = REG_ESPACE;
+	      return NULL;
+	    }
+	}
+      else if (tree == NULL)
+	tree = expr;
+      /* Otherwise expr == NULL, we don't need to create new tree.  */
+    }
+  return tree;
+}
+
+/* This function build the following tree, from regular expression a*:
+	 *
+	 |
+	 a
+*/
+
+static bin_tree_t *
+parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token,
+		  reg_syntax_t syntax, Idx nest, reg_errcode_t *err)
+{
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  bin_tree_t *tree;
+  switch (token->type)
+    {
+    case CHARACTER:
+      tree = create_token_tree (dfa, NULL, NULL, token);
+      if (BE (tree == NULL, 0))
+	{
+	  *err = REG_ESPACE;
+	  return NULL;
+	}
+#ifdef RE_ENABLE_I18N
+      if (dfa->mb_cur_max > 1)
+	{
+	  while (!re_string_eoi (regexp)
+		 && !re_string_first_byte (regexp, re_string_cur_idx (regexp)))
+	    {
+	      bin_tree_t *mbc_remain;
+	      fetch_token (token, regexp, syntax);
+	      mbc_remain = create_token_tree (dfa, NULL, NULL, token);
+	      tree = create_tree (dfa, tree, mbc_remain, CONCAT);
+	      if (BE (mbc_remain == NULL || tree == NULL, 0))
+		{
+		  *err = REG_ESPACE;
+		  return NULL;
+		}
+	    }
+	}
+#endif
+      break;
+    case OP_OPEN_SUBEXP:
+      tree = parse_sub_exp (regexp, preg, token, syntax, nest + 1, err);
+      if (BE (*err != REG_NOERROR && tree == NULL, 0))
+	return NULL;
+      break;
+    case OP_OPEN_BRACKET:
+      tree = parse_bracket_exp (regexp, dfa, token, syntax, err);
+      if (BE (*err != REG_NOERROR && tree == NULL, 0))
+	return NULL;
+      break;
+    case OP_BACK_REF:
+      if (!BE (dfa->completed_bkref_map & (1 << token->opr.idx), 1))
+	{
+	  *err = REG_ESUBREG;
+	  return NULL;
+	}
+      dfa->used_bkref_map |= 1 << token->opr.idx;
+      tree = create_token_tree (dfa, NULL, NULL, token);
+      if (BE (tree == NULL, 0))
+	{
+	  *err = REG_ESPACE;
+	  return NULL;
+	}
+      ++dfa->nbackref;
+      dfa->has_mb_node = 1;
+      break;
+    case OP_OPEN_DUP_NUM:
+      if (syntax & RE_CONTEXT_INVALID_DUP)
+	{
+	  *err = REG_BADRPT;
+	  return NULL;
+	}
+      /* FALLTHROUGH */
+    case OP_DUP_ASTERISK:
+    case OP_DUP_PLUS:
+    case OP_DUP_QUESTION:
+      if (syntax & RE_CONTEXT_INVALID_OPS)
+	{
+	  *err = REG_BADRPT;
+	  return NULL;
+	}
+      else if (syntax & RE_CONTEXT_INDEP_OPS)
+	{
+	  fetch_token (token, regexp, syntax);
+	  return parse_expression (regexp, preg, token, syntax, nest, err);
+	}
+      /* else fall through  */
+    case OP_CLOSE_SUBEXP:
+      if ((token->type == OP_CLOSE_SUBEXP) &&
+	  !(syntax & RE_UNMATCHED_RIGHT_PAREN_ORD))
+	{
+	  *err = REG_ERPAREN;
+	  return NULL;
+	}
+      /* else fall through  */
+    case OP_CLOSE_DUP_NUM:
+      /* We treat it as a normal character.  */
+
+      /* Then we can these characters as normal characters.  */
+      token->type = CHARACTER;
+      /* mb_partial and word_char bits should be initialized already
+	 by peek_token.  */
+      tree = create_token_tree (dfa, NULL, NULL, token);
+      if (BE (tree == NULL, 0))
+	{
+	  *err = REG_ESPACE;
+	  return NULL;
+	}
+      break;
+    case ANCHOR:
+      if ((token->opr.ctx_type
+	   & (WORD_DELIM | NOT_WORD_DELIM | WORD_FIRST | WORD_LAST))
+	  && dfa->word_ops_used == 0)
+	init_word_char (dfa);
+      if (token->opr.ctx_type == WORD_DELIM
+          || token->opr.ctx_type == NOT_WORD_DELIM)
+	{
+	  bin_tree_t *tree_first, *tree_last;
+	  if (token->opr.ctx_type == WORD_DELIM)
+	    {
+	      token->opr.ctx_type = WORD_FIRST;
+	      tree_first = create_token_tree (dfa, NULL, NULL, token);
+	      token->opr.ctx_type = WORD_LAST;
+            }
+          else
+            {
+	      token->opr.ctx_type = INSIDE_WORD;
+	      tree_first = create_token_tree (dfa, NULL, NULL, token);
+	      token->opr.ctx_type = INSIDE_NOTWORD;
+            }
+	  tree_last = create_token_tree (dfa, NULL, NULL, token);
+	  tree = create_tree (dfa, tree_first, tree_last, OP_ALT);
+	  if (BE (tree_first == NULL || tree_last == NULL || tree == NULL, 0))
+	    {
+	      *err = REG_ESPACE;
+	      return NULL;
+	    }
+	}
+      else
+	{
+	  tree = create_token_tree (dfa, NULL, NULL, token);
+	  if (BE (tree == NULL, 0))
+	    {
+	      *err = REG_ESPACE;
+	      return NULL;
+	    }
+	}
+      /* We must return here, since ANCHORs can't be followed
+	 by repetition operators.
+	 eg. RE"^*" is invalid or "<ANCHOR(^)><CHAR(*)>",
+	     it must not be "<ANCHOR(^)><REPEAT(*)>".  */
+      fetch_token (token, regexp, syntax);
+      return tree;
+    case OP_PERIOD:
+      tree = create_token_tree (dfa, NULL, NULL, token);
+      if (BE (tree == NULL, 0))
+	{
+	  *err = REG_ESPACE;
+	  return NULL;
+	}
+      if (dfa->mb_cur_max > 1)
+	dfa->has_mb_node = 1;
+      break;
+    case OP_WORD:
+    case OP_NOTWORD:
+      tree = build_charclass_op (dfa, regexp->trans,
+				 (const unsigned char *) "alnum",
+				 (const unsigned char *) "_",
+				 token->type == OP_NOTWORD, err);
+      if (BE (*err != REG_NOERROR && tree == NULL, 0))
+	return NULL;
+      break;
+    case OP_SPACE:
+    case OP_NOTSPACE:
+      tree = build_charclass_op (dfa, regexp->trans,
+				 (const unsigned char *) "space",
+				 (const unsigned char *) "",
+				 token->type == OP_NOTSPACE, err);
+      if (BE (*err != REG_NOERROR && tree == NULL, 0))
+	return NULL;
+      break;
+    case OP_ALT:
+    case END_OF_RE:
+      return NULL;
+    case BACK_SLASH:
+      *err = REG_EESCAPE;
+      return NULL;
+    default:
+      /* Must not happen?  */
+#ifdef DEBUG
+      assert (0);
+#endif
+      return NULL;
+    }
+  fetch_token (token, regexp, syntax);
+
+  while (token->type == OP_DUP_ASTERISK || token->type == OP_DUP_PLUS
+	 || token->type == OP_DUP_QUESTION || token->type == OP_OPEN_DUP_NUM)
+    {
+      tree = parse_dup_op (tree, regexp, dfa, token, syntax, err);
+      if (BE (*err != REG_NOERROR && tree == NULL, 0))
+	return NULL;
+      /* In BRE consecutive duplications are not allowed.  */
+      if ((syntax & RE_CONTEXT_INVALID_DUP)
+	  && (token->type == OP_DUP_ASTERISK
+	      || token->type == OP_OPEN_DUP_NUM))
+	{
+	  *err = REG_BADRPT;
+	  return NULL;
+	}
+    }
+
+  return tree;
+}
+
+/* This function build the following tree, from regular expression
+   (<reg_exp>):
+	 SUBEXP
+	    |
+	<reg_exp>
+*/
+
+static bin_tree_t *
+parse_sub_exp (re_string_t *regexp, regex_t *preg, re_token_t *token,
+	       reg_syntax_t syntax, Idx nest, reg_errcode_t *err)
+{
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  bin_tree_t *tree;
+  size_t cur_nsub;
+  cur_nsub = preg->re_nsub++;
+
+  fetch_token (token, regexp, syntax | RE_CARET_ANCHORS_HERE);
+
+  /* The subexpression may be a null string.  */
+  if (token->type == OP_CLOSE_SUBEXP)
+    tree = NULL;
+  else
+    {
+      tree = parse_reg_exp (regexp, preg, token, syntax, nest, err);
+      if (BE (*err == REG_NOERROR && token->type != OP_CLOSE_SUBEXP, 0))
+        *err = REG_EPAREN;
+      if (BE (*err != REG_NOERROR, 0))
+	return NULL;
+    }
+
+  if (cur_nsub <= '9' - '1')
+    dfa->completed_bkref_map |= 1 << cur_nsub;
+
+  tree = create_tree (dfa, tree, NULL, SUBEXP);
+  if (BE (tree == NULL, 0))
+    {
+      *err = REG_ESPACE;
+      return NULL;
+    }
+  tree->token.opr.idx = cur_nsub;
+  return tree;
+}
+
+/* This function parse repetition operators like "*", "+", "{1,3}" etc.  */
+
+static bin_tree_t *
+parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
+	      re_token_t *token, reg_syntax_t syntax, reg_errcode_t *err)
+{
+  bin_tree_t *tree = NULL, *old_tree = NULL;
+  Idx i, start, end, start_idx = re_string_cur_idx (regexp);
+  re_token_t start_token = *token;
+
+  if (token->type == OP_OPEN_DUP_NUM)
+    {
+      end = 0;
+      start = fetch_number (regexp, token, syntax);
+      if (start == REG_MISSING)
+	{
+	  if (token->type == CHARACTER && token->opr.c == ',')
+	    start = 0; /* We treat "{,m}" as "{0,m}".  */
+	  else
+	    {
+	      *err = REG_BADBR; /* <re>{} is invalid.  */
+	      return NULL;
+	    }
+	}
+      if (BE (start != REG_ERROR, 1))
+	{
+	  /* We treat "{n}" as "{n,n}".  */
+	  end = ((token->type == OP_CLOSE_DUP_NUM) ? start
+		 : ((token->type == CHARACTER && token->opr.c == ',')
+		    ? fetch_number (regexp, token, syntax) : REG_ERROR));
+	}
+      if (BE (start == REG_ERROR || end == REG_ERROR, 0))
+	{
+	  /* Invalid sequence.  */
+	  if (BE (!(syntax & RE_INVALID_INTERVAL_ORD), 0))
+	    {
+	      if (token->type == END_OF_RE)
+		*err = REG_EBRACE;
+	      else
+		*err = REG_BADBR;
+
+	      return NULL;
+	    }
+
+	  /* If the syntax bit is set, rollback.  */
+	  re_string_set_index (regexp, start_idx);
+	  *token = start_token;
+	  token->type = CHARACTER;
+	  /* mb_partial and word_char bits should be already initialized by
+	     peek_token.  */
+	  return elem;
+	}
+
+      if (BE (end != REG_MISSING && start > end, 0))
+	{
+	  /* First number greater than second.  */
+	  *err = REG_BADBR;
+	  return NULL;
+	}
+    }
+  else
+    {
+      start = (token->type == OP_DUP_PLUS) ? 1 : 0;
+      end = (token->type == OP_DUP_QUESTION) ? 1 : REG_MISSING;
+    }
+
+  fetch_token (token, regexp, syntax);
+
+  if (BE (elem == NULL, 0))
+    return NULL;
+  if (BE (start == 0 && end == 0, 0))
+    {
+      postorder (elem, free_tree, NULL);
+      return NULL;
+    }
+
+  /* Extract "<re>{n,m}" to "<re><re>...<re><re>{0,<m-n>}".  */
+  if (BE (start > 0, 0))
+    {
+      tree = elem;
+      for (i = 2; i <= start; ++i)
+	{
+	  elem = duplicate_tree (elem, dfa);
+	  tree = create_tree (dfa, tree, elem, CONCAT);
+	  if (BE (elem == NULL || tree == NULL, 0))
+	    goto parse_dup_op_espace;
+	}
+
+      if (start == end)
+	return tree;
+
+      /* Duplicate ELEM before it is marked optional.  */
+      elem = duplicate_tree (elem, dfa);
+      old_tree = tree;
+    }
+  else
+    old_tree = NULL;
+
+  if (elem->token.type == SUBEXP)
+    postorder (elem, mark_opt_subexp, (void *) (long) elem->token.opr.idx);
+
+  tree = create_tree (dfa, elem, NULL,
+		      (end == REG_MISSING ? OP_DUP_ASTERISK : OP_ALT));
+  if (BE (tree == NULL, 0))
+    goto parse_dup_op_espace;
+
+  /* This loop is actually executed only when end != REG_MISSING,
+     to rewrite <re>{0,n} as (<re>(<re>...<re>?)?)?...  We have
+     already created the start+1-th copy.  */
+  if ((Idx) -1 < 0 || end != REG_MISSING)
+    for (i = start + 2; i <= end; ++i)
+      {
+	elem = duplicate_tree (elem, dfa);
+	tree = create_tree (dfa, tree, elem, CONCAT);
+	if (BE (elem == NULL || tree == NULL, 0))
+	  goto parse_dup_op_espace;
+
+	tree = create_tree (dfa, tree, NULL, OP_ALT);
+	if (BE (tree == NULL, 0))
+	  goto parse_dup_op_espace;
+      }
+
+  if (old_tree)
+    tree = create_tree (dfa, old_tree, tree, CONCAT);
+
+  return tree;
+
+ parse_dup_op_espace:
+  *err = REG_ESPACE;
+  return NULL;
+}
+
+/* Size of the names for collating symbol/equivalence_class/character_class.
+   I'm not sure, but maybe enough.  */
+#define BRACKET_NAME_BUF_SIZE 32
+
+#ifndef _LIBC
+  /* Local function for parse_bracket_exp only used in case of NOT _LIBC.
+     Build the range expression which starts from START_ELEM, and ends
+     at END_ELEM.  The result are written to MBCSET and SBCSET.
+     RANGE_ALLOC is the allocated size of mbcset->range_starts, and
+     mbcset->range_ends, is a pointer argument sinse we may
+     update it.  */
+
+static reg_errcode_t
+internal_function
+# ifdef RE_ENABLE_I18N
+build_range_exp (bitset_t sbcset, re_charset_t *mbcset, Idx *range_alloc,
+		 bracket_elem_t *start_elem, bracket_elem_t *end_elem)
+# else /* not RE_ENABLE_I18N */
+build_range_exp (bitset_t sbcset, bracket_elem_t *start_elem,
+		 bracket_elem_t *end_elem)
+# endif /* not RE_ENABLE_I18N */
+{
+  unsigned int start_ch, end_ch;
+  /* Equivalence Classes and Character Classes can't be a range start/end.  */
+  if (BE (start_elem->type == EQUIV_CLASS || start_elem->type == CHAR_CLASS
+	  || end_elem->type == EQUIV_CLASS || end_elem->type == CHAR_CLASS,
+	  0))
+    return REG_ERANGE;
+
+  /* We can handle no multi character collating elements without libc
+     support.  */
+  if (BE ((start_elem->type == COLL_SYM
+	   && strlen ((char *) start_elem->opr.name) > 1)
+	  || (end_elem->type == COLL_SYM
+	      && strlen ((char *) end_elem->opr.name) > 1), 0))
+    return REG_ECOLLATE;
+
+# ifdef RE_ENABLE_I18N
+  {
+    wchar_t wc;
+    wint_t start_wc;
+    wint_t end_wc;
+    wchar_t cmp_buf[6] = {L'\0', L'\0', L'\0', L'\0', L'\0', L'\0'};
+
+    start_ch = ((start_elem->type == SB_CHAR) ? start_elem->opr.ch
+		: ((start_elem->type == COLL_SYM) ? start_elem->opr.name[0]
+		   : 0));
+    end_ch = ((end_elem->type == SB_CHAR) ? end_elem->opr.ch
+	      : ((end_elem->type == COLL_SYM) ? end_elem->opr.name[0]
+		 : 0));
+    start_wc = ((start_elem->type == SB_CHAR || start_elem->type == COLL_SYM)
+		? __btowc (start_ch) : start_elem->opr.wch);
+    end_wc = ((end_elem->type == SB_CHAR || end_elem->type == COLL_SYM)
+	      ? __btowc (end_ch) : end_elem->opr.wch);
+    if (start_wc == WEOF || end_wc == WEOF)
+      return REG_ECOLLATE;
+    cmp_buf[0] = start_wc;
+    cmp_buf[4] = end_wc;
+    if (wcscoll (cmp_buf, cmp_buf + 4) > 0)
+      return REG_ERANGE;
+
+    /* Got valid collation sequence values, add them as a new entry.
+       However, for !_LIBC we have no collation elements: if the
+       character set is single byte, the single byte character set
+       that we build below suffices.  parse_bracket_exp passes
+       no MBCSET if dfa->mb_cur_max == 1.  */
+    if (mbcset)
+      {
+        /* Check the space of the arrays.  */
+        if (BE (*range_alloc == mbcset->nranges, 0))
+          {
+	    /* There is not enough space, need realloc.  */
+	    wchar_t *new_array_start, *new_array_end;
+	    Idx new_nranges;
+
+	    /* +1 in case of mbcset->nranges is 0.  */
+	    new_nranges = 2 * mbcset->nranges + 1;
+	    /* Use realloc since mbcset->range_starts and mbcset->range_ends
+	       are NULL if *range_alloc == 0.  */
+	    new_array_start = re_realloc (mbcset->range_starts, wchar_t,
+				          new_nranges);
+	    new_array_end = re_realloc (mbcset->range_ends, wchar_t,
+				        new_nranges);
+
+	    if (BE (new_array_start == NULL || new_array_end == NULL, 0))
+	      return REG_ESPACE;
+
+	    mbcset->range_starts = new_array_start;
+	    mbcset->range_ends = new_array_end;
+	    *range_alloc = new_nranges;
+          }
+
+        mbcset->range_starts[mbcset->nranges] = start_wc;
+        mbcset->range_ends[mbcset->nranges++] = end_wc;
+      }
+
+    /* Build the table for single byte characters.  */
+    for (wc = 0; wc < SBC_MAX; ++wc)
+      {
+	cmp_buf[2] = wc;
+	if (wcscoll (cmp_buf, cmp_buf + 2) <= 0
+	    && wcscoll (cmp_buf + 2, cmp_buf + 4) <= 0)
+	  bitset_set (sbcset, wc);
+      }
+  }
+# else /* not RE_ENABLE_I18N */
+  {
+    unsigned int ch;
+    start_ch = ((start_elem->type == SB_CHAR ) ? start_elem->opr.ch
+		: ((start_elem->type == COLL_SYM) ? start_elem->opr.name[0]
+		   : 0));
+    end_ch = ((end_elem->type == SB_CHAR ) ? end_elem->opr.ch
+	      : ((end_elem->type == COLL_SYM) ? end_elem->opr.name[0]
+		 : 0));
+    if (start_ch > end_ch)
+      return REG_ERANGE;
+    /* Build the table for single byte characters.  */
+    for (ch = 0; ch < SBC_MAX; ++ch)
+      if (start_ch <= ch  && ch <= end_ch)
+	bitset_set (sbcset, ch);
+  }
+# endif /* not RE_ENABLE_I18N */
+  return REG_NOERROR;
+}
+#endif /* not _LIBC */
+
+#ifndef _LIBC
+/* Helper function for parse_bracket_exp only used in case of NOT _LIBC..
+   Build the collating element which is represented by NAME.
+   The result are written to MBCSET and SBCSET.
+   COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a
+   pointer argument since we may update it.  */
+
+static reg_errcode_t
+internal_function
+build_collating_symbol (bitset_t sbcset,
+# ifdef RE_ENABLE_I18N
+			re_charset_t *mbcset, Idx *coll_sym_alloc,
+# endif
+			const unsigned char *name)
+{
+  size_t name_len = strlen ((const char *) name);
+  if (BE (name_len != 1, 0))
+    return REG_ECOLLATE;
+  else
+    {
+      bitset_set (sbcset, name[0]);
+      return REG_NOERROR;
+    }
+}
+#endif /* not _LIBC */
+
+/* This function parse bracket expression like "[abc]", "[a-c]",
+   "[[.a-a.]]" etc.  */
+
+static bin_tree_t *
+parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
+		   reg_syntax_t syntax, reg_errcode_t *err)
+{
+#ifdef _LIBC
+  const unsigned char *collseqmb;
+  const char *collseqwc;
+  uint32_t nrules;
+  int32_t table_size;
+  const int32_t *symb_table;
+  const unsigned char *extra;
+
+  /* Local function for parse_bracket_exp used in _LIBC environement.
+     Seek the collating symbol entry correspondings to NAME.
+     Return the index of the symbol in the SYMB_TABLE.  */
+
+  auto inline int32_t
+  __attribute ((always_inline))
+  seek_collating_symbol_entry (name, name_len)
+	 const unsigned char *name;
+	 size_t name_len;
+    {
+      int32_t hash = elem_hash ((const char *) name, name_len);
+      int32_t elem = hash % table_size;
+      if (symb_table[2 * elem] != 0)
+	{
+	  int32_t second = hash % (table_size - 2) + 1;
+
+	  do
+	    {
+	      /* First compare the hashing value.  */
+	      if (symb_table[2 * elem] == hash
+		  /* Compare the length of the name.  */
+		  && name_len == extra[symb_table[2 * elem + 1]]
+		  /* Compare the name.  */
+		  && memcmp (name, &extra[symb_table[2 * elem + 1] + 1],
+			     name_len) == 0)
+		{
+		  /* Yep, this is the entry.  */
+		  break;
+		}
+
+	      /* Next entry.  */
+	      elem += second;
+	    }
+	  while (symb_table[2 * elem] != 0);
+	}
+      return elem;
+    }
+
+  /* Local function for parse_bracket_exp used in _LIBC environement.
+     Look up the collation sequence value of BR_ELEM.
+     Return the value if succeeded, UINT_MAX otherwise.  */
+
+  auto inline unsigned int
+  __attribute ((always_inline))
+  lookup_collation_sequence_value (br_elem)
+	 bracket_elem_t *br_elem;
+    {
+      if (br_elem->type == SB_CHAR)
+	{
+	  /*
+	  if (MB_CUR_MAX == 1)
+	  */
+	  if (nrules == 0)
+	    return collseqmb[br_elem->opr.ch];
+	  else
+	    {
+	      wint_t wc = __btowc (br_elem->opr.ch);
+	      return __collseq_table_lookup (collseqwc, wc);
+	    }
+	}
+      else if (br_elem->type == MB_CHAR)
+	{
+	  return __collseq_table_lookup (collseqwc, br_elem->opr.wch);
+	}
+      else if (br_elem->type == COLL_SYM)
+	{
+	  size_t sym_name_len = strlen ((char *) br_elem->opr.name);
+	  if (nrules != 0)
+	    {
+	      int32_t elem, idx;
+	      elem = seek_collating_symbol_entry (br_elem->opr.name,
+						  sym_name_len);
+	      if (symb_table[2 * elem] != 0)
+		{
+		  /* We found the entry.  */
+		  idx = symb_table[2 * elem + 1];
+		  /* Skip the name of collating element name.  */
+		  idx += 1 + extra[idx];
+		  /* Skip the byte sequence of the collating element.  */
+		  idx += 1 + extra[idx];
+		  /* Adjust for the alignment.  */
+		  idx = (idx + 3) & ~3;
+		  /* Skip the multibyte collation sequence value.  */
+		  idx += sizeof (unsigned int);
+		  /* Skip the wide char sequence of the collating element.  */
+		  idx += sizeof (unsigned int) *
+		    (1 + *(unsigned int *) (extra + idx));
+		  /* Return the collation sequence value.  */
+		  return *(unsigned int *) (extra + idx);
+		}
+	      else if (symb_table[2 * elem] == 0 && sym_name_len == 1)
+		{
+		  /* No valid character.  Match it as a single byte
+		     character.  */
+		  return collseqmb[br_elem->opr.name[0]];
+		}
+	    }
+	  else if (sym_name_len == 1)
+	    return collseqmb[br_elem->opr.name[0]];
+	}
+      return UINT_MAX;
+    }
+
+  /* Local function for parse_bracket_exp used in _LIBC environement.
+     Build the range expression which starts from START_ELEM, and ends
+     at END_ELEM.  The result are written to MBCSET and SBCSET.
+     RANGE_ALLOC is the allocated size of mbcset->range_starts, and
+     mbcset->range_ends, is a pointer argument sinse we may
+     update it.  */
+
+  auto inline reg_errcode_t
+  __attribute ((always_inline))
+  build_range_exp (sbcset, mbcset, range_alloc, start_elem, end_elem)
+	 re_charset_t *mbcset;
+	 Idx *range_alloc;
+	 bitset_t sbcset;
+	 bracket_elem_t *start_elem, *end_elem;
+    {
+      unsigned int ch;
+      uint32_t start_collseq;
+      uint32_t end_collseq;
+
+      /* Equivalence Classes and Character Classes can't be a range
+	 start/end.  */
+      if (BE (start_elem->type == EQUIV_CLASS || start_elem->type == CHAR_CLASS
+	      || end_elem->type == EQUIV_CLASS || end_elem->type == CHAR_CLASS,
+	      0))
+	return REG_ERANGE;
+
+      start_collseq = lookup_collation_sequence_value (start_elem);
+      end_collseq = lookup_collation_sequence_value (end_elem);
+      /* Check start/end collation sequence values.  */
+      if (BE (start_collseq == UINT_MAX || end_collseq == UINT_MAX, 0))
+	return REG_ECOLLATE;
+      if (BE ((syntax & RE_NO_EMPTY_RANGES) && start_collseq > end_collseq, 0))
+	return REG_ERANGE;
+
+      /* Got valid collation sequence values, add them as a new entry.
+	 However, if we have no collation elements, and the character set
+	 is single byte, the single byte character set that we
+	 build below suffices. */
+      if (nrules > 0 || dfa->mb_cur_max > 1)
+	{
+          /* Check the space of the arrays.  */
+          if (BE (*range_alloc == mbcset->nranges, 0))
+	    {
+	      /* There is not enough space, need realloc.  */
+	      uint32_t *new_array_start;
+	      uint32_t *new_array_end;
+	      Idx new_nranges;
+
+	      /* +1 in case of mbcset->nranges is 0.  */
+	      new_nranges = 2 * mbcset->nranges + 1;
+	      new_array_start = re_realloc (mbcset->range_starts, uint32_t,
+					    new_nranges);
+	      new_array_end = re_realloc (mbcset->range_ends, uint32_t,
+				          new_nranges);
+
+	      if (BE (new_array_start == NULL || new_array_end == NULL, 0))
+	        return REG_ESPACE;
+
+	      mbcset->range_starts = new_array_start;
+	      mbcset->range_ends = new_array_end;
+	      *range_alloc = new_nranges;
+	    }
+
+          mbcset->range_starts[mbcset->nranges] = start_collseq;
+          mbcset->range_ends[mbcset->nranges++] = end_collseq;
+	}
+
+      /* Build the table for single byte characters.  */
+      for (ch = 0; ch < SBC_MAX; ch++)
+	{
+	  uint32_t ch_collseq;
+	  /*
+	  if (MB_CUR_MAX == 1)
+	  */
+	  if (nrules == 0)
+	    ch_collseq = collseqmb[ch];
+	  else
+	    ch_collseq = __collseq_table_lookup (collseqwc, __btowc (ch));
+	  if (start_collseq <= ch_collseq && ch_collseq <= end_collseq)
+	    bitset_set (sbcset, ch);
+	}
+      return REG_NOERROR;
+    }
+
+  /* Local function for parse_bracket_exp used in _LIBC environement.
+     Build the collating element which is represented by NAME.
+     The result are written to MBCSET and SBCSET.
+     COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a
+     pointer argument sinse we may update it.  */
+
+  auto inline reg_errcode_t
+  __attribute ((always_inline))
+  build_collating_symbol (sbcset, mbcset, coll_sym_alloc, name)
+	 re_charset_t *mbcset;
+	 Idx *coll_sym_alloc;
+	 bitset_t sbcset;
+	 const unsigned char *name;
+    {
+      int32_t elem, idx;
+      size_t name_len = strlen ((const char *) name);
+      if (nrules != 0)
+	{
+	  elem = seek_collating_symbol_entry (name, name_len);
+	  if (symb_table[2 * elem] != 0)
+	    {
+	      /* We found the entry.  */
+	      idx = symb_table[2 * elem + 1];
+	      /* Skip the name of collating element name.  */
+	      idx += 1 + extra[idx];
+	    }
+	  else if (symb_table[2 * elem] == 0 && name_len == 1)
+	    {
+	      /* No valid character, treat it as a normal
+		 character.  */
+	      bitset_set (sbcset, name[0]);
+	      return REG_NOERROR;
+	    }
+	  else
+	    return REG_ECOLLATE;
+
+	  /* Got valid collation sequence, add it as a new entry.  */
+	  /* Check the space of the arrays.  */
+	  if (BE (*coll_sym_alloc == mbcset->ncoll_syms, 0))
+	    {
+	      /* Not enough, realloc it.  */
+	      /* +1 in case of mbcset->ncoll_syms is 0.  */
+	      Idx new_coll_sym_alloc = 2 * mbcset->ncoll_syms + 1;
+	      /* Use realloc since mbcset->coll_syms is NULL
+		 if *alloc == 0.  */
+	      int32_t *new_coll_syms = re_realloc (mbcset->coll_syms, int32_t,
+						   new_coll_sym_alloc);
+	      if (BE (new_coll_syms == NULL, 0))
+		return REG_ESPACE;
+	      mbcset->coll_syms = new_coll_syms;
+	      *coll_sym_alloc = new_coll_sym_alloc;
+	    }
+	  mbcset->coll_syms[mbcset->ncoll_syms++] = idx;
+	  return REG_NOERROR;
+	}
+      else
+	{
+	  if (BE (name_len != 1, 0))
+	    return REG_ECOLLATE;
+	  else
+	    {
+	      bitset_set (sbcset, name[0]);
+	      return REG_NOERROR;
+	    }
+	}
+    }
+#endif
+
+  re_token_t br_token;
+  re_bitset_ptr_t sbcset;
+#ifdef RE_ENABLE_I18N
+  re_charset_t *mbcset;
+  Idx coll_sym_alloc = 0, range_alloc = 0, mbchar_alloc = 0;
+  Idx equiv_class_alloc = 0, char_class_alloc = 0;
+#endif /* not RE_ENABLE_I18N */
+  bool non_match = false;
+  bin_tree_t *work_tree;
+  int token_len;
+  bool first_round = true;
+#ifdef _LIBC
+  collseqmb = (const unsigned char *)
+    _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQMB);
+  nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
+  if (nrules)
+    {
+      /*
+      if (MB_CUR_MAX > 1)
+      */
+      collseqwc = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQWC);
+      table_size = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_SYMB_HASH_SIZEMB);
+      symb_table = (const int32_t *) _NL_CURRENT (LC_COLLATE,
+						  _NL_COLLATE_SYMB_TABLEMB);
+      extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE,
+						   _NL_COLLATE_SYMB_EXTRAMB);
+    }
+#endif
+  sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1);
+#ifdef RE_ENABLE_I18N
+  mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1);
+#endif /* RE_ENABLE_I18N */
+#ifdef RE_ENABLE_I18N
+  if (BE (sbcset == NULL || mbcset == NULL, 0))
+#else
+  if (BE (sbcset == NULL, 0))
+#endif /* RE_ENABLE_I18N */
+    {
+      *err = REG_ESPACE;
+      return NULL;
+    }
+
+  token_len = peek_token_bracket (token, regexp, syntax);
+  if (BE (token->type == END_OF_RE, 0))
+    {
+      *err = REG_BADPAT;
+      goto parse_bracket_exp_free_return;
+    }
+  if (token->type == OP_NON_MATCH_LIST)
+    {
+#ifdef RE_ENABLE_I18N
+      mbcset->non_match = 1;
+#endif /* not RE_ENABLE_I18N */
+      non_match = true;
+      if (syntax & RE_HAT_LISTS_NOT_NEWLINE)
+	bitset_set (sbcset, '\n');
+      re_string_skip_bytes (regexp, token_len); /* Skip a token.  */
+      token_len = peek_token_bracket (token, regexp, syntax);
+      if (BE (token->type == END_OF_RE, 0))
+	{
+	  *err = REG_BADPAT;
+	  goto parse_bracket_exp_free_return;
+	}
+    }
+
+  /* We treat the first ']' as a normal character.  */
+  if (token->type == OP_CLOSE_BRACKET)
+    token->type = CHARACTER;
+
+  while (1)
+    {
+      bracket_elem_t start_elem, end_elem;
+      unsigned char start_name_buf[BRACKET_NAME_BUF_SIZE];
+      unsigned char end_name_buf[BRACKET_NAME_BUF_SIZE];
+      reg_errcode_t ret;
+      int token_len2 = 0;
+      bool is_range_exp = false;
+      re_token_t token2;
+
+      start_elem.opr.name = start_name_buf;
+      ret = parse_bracket_element (&start_elem, regexp, token, token_len, dfa,
+				   syntax, first_round);
+      if (BE (ret != REG_NOERROR, 0))
+	{
+	  *err = ret;
+	  goto parse_bracket_exp_free_return;
+	}
+      first_round = false;
+
+      /* Get information about the next token.  We need it in any case.  */
+      token_len = peek_token_bracket (token, regexp, syntax);
+
+      /* Do not check for ranges if we know they are not allowed.  */
+      if (start_elem.type != CHAR_CLASS && start_elem.type != EQUIV_CLASS)
+	{
+	  if (BE (token->type == END_OF_RE, 0))
+	    {
+	      *err = REG_EBRACK;
+	      goto parse_bracket_exp_free_return;
+	    }
+	  if (token->type == OP_CHARSET_RANGE)
+	    {
+	      re_string_skip_bytes (regexp, token_len); /* Skip '-'.  */
+	      token_len2 = peek_token_bracket (&token2, regexp, syntax);
+	      if (BE (token2.type == END_OF_RE, 0))
+		{
+		  *err = REG_EBRACK;
+		  goto parse_bracket_exp_free_return;
+		}
+	      if (token2.type == OP_CLOSE_BRACKET)
+		{
+		  /* We treat the last '-' as a normal character.  */
+		  re_string_skip_bytes (regexp, -token_len);
+		  token->type = CHARACTER;
+		}
+	      else
+		is_range_exp = true;
+	    }
+	}
+
+      if (is_range_exp == true)
+	{
+	  end_elem.opr.name = end_name_buf;
+	  ret = parse_bracket_element (&end_elem, regexp, &token2, token_len2,
+				       dfa, syntax, true);
+	  if (BE (ret != REG_NOERROR, 0))
+	    {
+	      *err = ret;
+	      goto parse_bracket_exp_free_return;
+	    }
+
+	  token_len = peek_token_bracket (token, regexp, syntax);
+
+#ifdef _LIBC
+	  *err = build_range_exp (sbcset, mbcset, &range_alloc,
+				  &start_elem, &end_elem);
+#else
+# ifdef RE_ENABLE_I18N
+	  *err = build_range_exp (sbcset,
+				  dfa->mb_cur_max > 1 ? mbcset : NULL,
+				  &range_alloc, &start_elem, &end_elem);
+# else
+	  *err = build_range_exp (sbcset, &start_elem, &end_elem);
+# endif
+#endif /* RE_ENABLE_I18N */
+	  if (BE (*err != REG_NOERROR, 0))
+	    goto parse_bracket_exp_free_return;
+	}
+      else
+	{
+	  switch (start_elem.type)
+	    {
+	    case SB_CHAR:
+	      bitset_set (sbcset, start_elem.opr.ch);
+	      break;
+#ifdef RE_ENABLE_I18N
+	    case MB_CHAR:
+	      /* Check whether the array has enough space.  */
+	      if (BE (mbchar_alloc == mbcset->nmbchars, 0))
+		{
+		  wchar_t *new_mbchars;
+		  /* Not enough, realloc it.  */
+		  /* +1 in case of mbcset->nmbchars is 0.  */
+		  mbchar_alloc = 2 * mbcset->nmbchars + 1;
+		  /* Use realloc since array is NULL if *alloc == 0.  */
+		  new_mbchars = re_realloc (mbcset->mbchars, wchar_t,
+					    mbchar_alloc);
+		  if (BE (new_mbchars == NULL, 0))
+		    goto parse_bracket_exp_espace;
+		  mbcset->mbchars = new_mbchars;
+		}
+	      mbcset->mbchars[mbcset->nmbchars++] = start_elem.opr.wch;
+	      break;
+#endif /* RE_ENABLE_I18N */
+	    case EQUIV_CLASS:
+	      *err = build_equiv_class (sbcset,
+#ifdef RE_ENABLE_I18N
+					mbcset, &equiv_class_alloc,
+#endif /* RE_ENABLE_I18N */
+					start_elem.opr.name);
+	      if (BE (*err != REG_NOERROR, 0))
+		goto parse_bracket_exp_free_return;
+	      break;
+	    case COLL_SYM:
+	      *err = build_collating_symbol (sbcset,
+#ifdef RE_ENABLE_I18N
+					     mbcset, &coll_sym_alloc,
+#endif /* RE_ENABLE_I18N */
+					     start_elem.opr.name);
+	      if (BE (*err != REG_NOERROR, 0))
+		goto parse_bracket_exp_free_return;
+	      break;
+	    case CHAR_CLASS:
+	      *err = build_charclass (regexp->trans, sbcset,
+#ifdef RE_ENABLE_I18N
+				      mbcset, &char_class_alloc,
+#endif /* RE_ENABLE_I18N */
+				      start_elem.opr.name, syntax);
+	      if (BE (*err != REG_NOERROR, 0))
+	       goto parse_bracket_exp_free_return;
+	      break;
+	    default:
+	      assert (0);
+	      break;
+	    }
+	}
+      if (BE (token->type == END_OF_RE, 0))
+	{
+	  *err = REG_EBRACK;
+	  goto parse_bracket_exp_free_return;
+	}
+      if (token->type == OP_CLOSE_BRACKET)
+	break;
+    }
+
+  re_string_skip_bytes (regexp, token_len); /* Skip a token.  */
+
+  /* If it is non-matching list.  */
+  if (non_match)
+    bitset_not (sbcset);
+
+#ifdef RE_ENABLE_I18N
+  /* Ensure only single byte characters are set.  */
+  if (dfa->mb_cur_max > 1)
+    bitset_mask (sbcset, dfa->sb_char);
+
+  if (mbcset->nmbchars || mbcset->ncoll_syms || mbcset->nequiv_classes
+      || mbcset->nranges || (dfa->mb_cur_max > 1 && (mbcset->nchar_classes
+						     || mbcset->non_match)))
+    {
+      bin_tree_t *mbc_tree;
+      int sbc_idx;
+      /* Build a tree for complex bracket.  */
+      dfa->has_mb_node = 1;
+      br_token.type = COMPLEX_BRACKET;
+      br_token.opr.mbcset = mbcset;
+      mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token);
+      if (BE (mbc_tree == NULL, 0))
+	goto parse_bracket_exp_espace;
+      for (sbc_idx = 0; sbc_idx < BITSET_WORDS; ++sbc_idx)
+	if (sbcset[sbc_idx])
+	  break;
+      /* If there are no bits set in sbcset, there is no point
+	 of having both SIMPLE_BRACKET and COMPLEX_BRACKET.  */
+      if (sbc_idx < BITSET_WORDS)
+	{
+          /* Build a tree for simple bracket.  */
+          br_token.type = SIMPLE_BRACKET;
+          br_token.opr.sbcset = sbcset;
+          work_tree = create_token_tree (dfa, NULL, NULL, &br_token);
+          if (BE (work_tree == NULL, 0))
+            goto parse_bracket_exp_espace;
+
+          /* Then join them by ALT node.  */
+          work_tree = create_tree (dfa, work_tree, mbc_tree, OP_ALT);
+          if (BE (work_tree == NULL, 0))
+            goto parse_bracket_exp_espace;
+	}
+      else
+	{
+	  re_free (sbcset);
+	  work_tree = mbc_tree;
+	}
+    }
+  else
+#endif /* not RE_ENABLE_I18N */
+    {
+#ifdef RE_ENABLE_I18N
+      free_charset (mbcset);
+#endif
+      /* Build a tree for simple bracket.  */
+      br_token.type = SIMPLE_BRACKET;
+      br_token.opr.sbcset = sbcset;
+      work_tree = create_token_tree (dfa, NULL, NULL, &br_token);
+      if (BE (work_tree == NULL, 0))
+        goto parse_bracket_exp_espace;
+    }
+  return work_tree;
+
+ parse_bracket_exp_espace:
+  *err = REG_ESPACE;
+ parse_bracket_exp_free_return:
+  re_free (sbcset);
+#ifdef RE_ENABLE_I18N
+  free_charset (mbcset);
+#endif /* RE_ENABLE_I18N */
+  return NULL;
+}
+
+/* Parse an element in the bracket expression.  */
+
+static reg_errcode_t
+parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp,
+		       re_token_t *token, int token_len, re_dfa_t *dfa,
+		       reg_syntax_t syntax, bool accept_hyphen)
+{
+#ifdef RE_ENABLE_I18N
+  int cur_char_size;
+  cur_char_size = re_string_char_size_at (regexp, re_string_cur_idx (regexp));
+  if (cur_char_size > 1)
+    {
+      elem->type = MB_CHAR;
+      elem->opr.wch = re_string_wchar_at (regexp, re_string_cur_idx (regexp));
+      re_string_skip_bytes (regexp, cur_char_size);
+      return REG_NOERROR;
+    }
+#endif /* RE_ENABLE_I18N */
+  re_string_skip_bytes (regexp, token_len); /* Skip a token.  */
+  if (token->type == OP_OPEN_COLL_ELEM || token->type == OP_OPEN_CHAR_CLASS
+      || token->type == OP_OPEN_EQUIV_CLASS)
+    return parse_bracket_symbol (elem, regexp, token);
+  if (BE (token->type == OP_CHARSET_RANGE, 0) && !accept_hyphen)
+    {
+      /* A '-' must only appear as anything but a range indicator before
+	 the closing bracket.  Everything else is an error.  */
+      re_token_t token2;
+      (void) peek_token_bracket (&token2, regexp, syntax);
+      if (token2.type != OP_CLOSE_BRACKET)
+	/* The actual error value is not standardized since this whole
+	   case is undefined.  But ERANGE makes good sense.  */
+	return REG_ERANGE;
+    }
+  elem->type = SB_CHAR;
+  elem->opr.ch = token->opr.c;
+  return REG_NOERROR;
+}
+
+/* Parse a bracket symbol in the bracket expression.  Bracket symbols are
+   such as [:<character_class>:], [.<collating_element>.], and
+   [=<equivalent_class>=].  */
+
+static reg_errcode_t
+parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp,
+		      re_token_t *token)
+{
+  unsigned char ch, delim = token->opr.c;
+  int i = 0;
+  if (re_string_eoi(regexp))
+    return REG_EBRACK;
+  for (;; ++i)
+    {
+      if (i >= BRACKET_NAME_BUF_SIZE)
+	return REG_EBRACK;
+      if (token->type == OP_OPEN_CHAR_CLASS)
+	ch = re_string_fetch_byte_case (regexp);
+      else
+	ch = re_string_fetch_byte (regexp);
+      if (re_string_eoi(regexp))
+	return REG_EBRACK;
+      if (ch == delim && re_string_peek_byte (regexp, 0) == ']')
+	break;
+      elem->opr.name[i] = ch;
+    }
+  re_string_skip_bytes (regexp, 1);
+  elem->opr.name[i] = '\0';
+  switch (token->type)
+    {
+    case OP_OPEN_COLL_ELEM:
+      elem->type = COLL_SYM;
+      break;
+    case OP_OPEN_EQUIV_CLASS:
+      elem->type = EQUIV_CLASS;
+      break;
+    case OP_OPEN_CHAR_CLASS:
+      elem->type = CHAR_CLASS;
+      break;
+    default:
+      break;
+    }
+  return REG_NOERROR;
+}
+
+  /* Helper function for parse_bracket_exp.
+     Build the equivalence class which is represented by NAME.
+     The result are written to MBCSET and SBCSET.
+     EQUIV_CLASS_ALLOC is the allocated size of mbcset->equiv_classes,
+     is a pointer argument sinse we may update it.  */
+
+static reg_errcode_t
+#ifdef RE_ENABLE_I18N
+build_equiv_class (bitset_t sbcset, re_charset_t *mbcset,
+		   Idx *equiv_class_alloc, const unsigned char *name)
+#else /* not RE_ENABLE_I18N */
+build_equiv_class (bitset_t sbcset, const unsigned char *name)
+#endif /* not RE_ENABLE_I18N */
+{
+#ifdef _LIBC
+  uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
+  if (nrules != 0)
+    {
+      const int32_t *table, *indirect;
+      const unsigned char *weights, *extra, *cp;
+      unsigned char char_buf[2];
+      int32_t idx1, idx2;
+      unsigned int ch;
+      size_t len;
+      /* This #include defines a local function!  */
+# include <locale/weight.h>
+      /* Calculate the index for equivalence class.  */
+      cp = name;
+      table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB);
+      weights = (const unsigned char *) _NL_CURRENT (LC_COLLATE,
+					       _NL_COLLATE_WEIGHTMB);
+      extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE,
+						   _NL_COLLATE_EXTRAMB);
+      indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE,
+						_NL_COLLATE_INDIRECTMB);
+      idx1 = findidx (&cp);
+      if (BE (idx1 == 0 || cp < name + strlen ((const char *) name), 0))
+	/* This isn't a valid character.  */
+	return REG_ECOLLATE;
+
+      /* Build single byte matcing table for this equivalence class.  */
+      char_buf[1] = (unsigned char) '\0';
+      len = weights[idx1];
+      for (ch = 0; ch < SBC_MAX; ++ch)
+	{
+	  char_buf[0] = ch;
+	  cp = char_buf;
+	  idx2 = findidx (&cp);
+/*
+	  idx2 = table[ch];
+*/
+	  if (idx2 == 0)
+	    /* This isn't a valid character.  */
+	    continue;
+	  if (len == weights[idx2])
+	    {
+	      int cnt = 0;
+	      while (cnt <= len &&
+		     weights[idx1 + 1 + cnt] == weights[idx2 + 1 + cnt])
+		++cnt;
+
+	      if (cnt > len)
+		bitset_set (sbcset, ch);
+	    }
+	}
+      /* Check whether the array has enough space.  */
+      if (BE (*equiv_class_alloc == mbcset->nequiv_classes, 0))
+	{
+	  /* Not enough, realloc it.  */
+	  /* +1 in case of mbcset->nequiv_classes is 0.  */
+	  Idx new_equiv_class_alloc = 2 * mbcset->nequiv_classes + 1;
+	  /* Use realloc since the array is NULL if *alloc == 0.  */
+	  int32_t *new_equiv_classes = re_realloc (mbcset->equiv_classes,
+						   int32_t,
+						   new_equiv_class_alloc);
+	  if (BE (new_equiv_classes == NULL, 0))
+	    return REG_ESPACE;
+	  mbcset->equiv_classes = new_equiv_classes;
+	  *equiv_class_alloc = new_equiv_class_alloc;
+	}
+      mbcset->equiv_classes[mbcset->nequiv_classes++] = idx1;
+    }
+  else
+#endif /* _LIBC */
+    {
+      if (BE (strlen ((const char *) name) != 1, 0))
+	return REG_ECOLLATE;
+      bitset_set (sbcset, *name);
+    }
+  return REG_NOERROR;
+}
+
+  /* Helper function for parse_bracket_exp.
+     Build the character class which is represented by NAME.
+     The result are written to MBCSET and SBCSET.
+     CHAR_CLASS_ALLOC is the allocated size of mbcset->char_classes,
+     is a pointer argument sinse we may update it.  */
+
+static reg_errcode_t
+#ifdef RE_ENABLE_I18N
+build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset,
+		 re_charset_t *mbcset, Idx *char_class_alloc,
+		 const unsigned char *class_name, reg_syntax_t syntax)
+#else /* not RE_ENABLE_I18N */
+build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset,
+		 const unsigned char *class_name, reg_syntax_t syntax)
+#endif /* not RE_ENABLE_I18N */
+{
+  int i;
+  const char *name = (const char *) class_name;
+
+  /* In case of REG_ICASE "upper" and "lower" match the both of
+     upper and lower cases.  */
+  if ((syntax & RE_ICASE)
+      && (strcmp (name, "upper") == 0 || strcmp (name, "lower") == 0))
+    name = "alpha";
+
+#ifdef RE_ENABLE_I18N
+  /* Check the space of the arrays.  */
+  if (BE (*char_class_alloc == mbcset->nchar_classes, 0))
+    {
+      /* Not enough, realloc it.  */
+      /* +1 in case of mbcset->nchar_classes is 0.  */
+      Idx new_char_class_alloc = 2 * mbcset->nchar_classes + 1;
+      /* Use realloc since array is NULL if *alloc == 0.  */
+      wctype_t *new_char_classes = re_realloc (mbcset->char_classes, wctype_t,
+					       new_char_class_alloc);
+      if (BE (new_char_classes == NULL, 0))
+	return REG_ESPACE;
+      mbcset->char_classes = new_char_classes;
+      *char_class_alloc = new_char_class_alloc;
+    }
+  mbcset->char_classes[mbcset->nchar_classes++] = __wctype (name);
+#endif /* RE_ENABLE_I18N */
+
+#define BUILD_CHARCLASS_LOOP(ctype_func)	\
+  do {						\
+    if (BE (trans != NULL, 0))			\
+      {						\
+	for (i = 0; i < SBC_MAX; ++i)		\
+	  if (ctype_func (i))			\
+	    bitset_set (sbcset, trans[i]);	\
+      }						\
+    else					\
+      {						\
+	for (i = 0; i < SBC_MAX; ++i)		\
+	  if (ctype_func (i))			\
+	    bitset_set (sbcset, i);		\
+      }						\
+  } while (0)
+
+  if (strcmp (name, "alnum") == 0)
+    BUILD_CHARCLASS_LOOP (isalnum);
+  else if (strcmp (name, "cntrl") == 0)
+    BUILD_CHARCLASS_LOOP (iscntrl);
+  else if (strcmp (name, "lower") == 0)
+    BUILD_CHARCLASS_LOOP (islower);
+  else if (strcmp (name, "space") == 0)
+    BUILD_CHARCLASS_LOOP (isspace);
+  else if (strcmp (name, "alpha") == 0)
+    BUILD_CHARCLASS_LOOP (isalpha);
+  else if (strcmp (name, "digit") == 0)
+    BUILD_CHARCLASS_LOOP (isdigit);
+  else if (strcmp (name, "print") == 0)
+    BUILD_CHARCLASS_LOOP (isprint);
+  else if (strcmp (name, "upper") == 0)
+    BUILD_CHARCLASS_LOOP (isupper);
+  else if (strcmp (name, "blank") == 0)
+    BUILD_CHARCLASS_LOOP (isblank);
+  else if (strcmp (name, "graph") == 0)
+    BUILD_CHARCLASS_LOOP (isgraph);
+  else if (strcmp (name, "punct") == 0)
+    BUILD_CHARCLASS_LOOP (ispunct);
+  else if (strcmp (name, "xdigit") == 0)
+    BUILD_CHARCLASS_LOOP (isxdigit);
+  else
+    return REG_ECTYPE;
+
+  return REG_NOERROR;
+}
+
+static bin_tree_t *
+build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans,
+		    const unsigned char *class_name,
+		    const unsigned char *extra, bool non_match,
+		    reg_errcode_t *err)
+{
+  re_bitset_ptr_t sbcset;
+#ifdef RE_ENABLE_I18N
+  re_charset_t *mbcset;
+  Idx alloc = 0;
+#endif /* not RE_ENABLE_I18N */
+  reg_errcode_t ret;
+  re_token_t br_token;
+  bin_tree_t *tree;
+
+  sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1);
+#ifdef RE_ENABLE_I18N
+  mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1);
+#endif /* RE_ENABLE_I18N */
+
+#ifdef RE_ENABLE_I18N
+  if (BE (sbcset == NULL || mbcset == NULL, 0))
+#else /* not RE_ENABLE_I18N */
+  if (BE (sbcset == NULL, 0))
+#endif /* not RE_ENABLE_I18N */
+    {
+      *err = REG_ESPACE;
+      return NULL;
+    }
+
+  if (non_match)
+    {
+#ifdef RE_ENABLE_I18N
+      mbcset->non_match = 1;
+#endif /* not RE_ENABLE_I18N */
+    }
+
+  /* We don't care the syntax in this case.  */
+  ret = build_charclass (trans, sbcset,
+#ifdef RE_ENABLE_I18N
+			 mbcset, &alloc,
+#endif /* RE_ENABLE_I18N */
+			 class_name, 0);
+
+  if (BE (ret != REG_NOERROR, 0))
+    {
+      re_free (sbcset);
+#ifdef RE_ENABLE_I18N
+      free_charset (mbcset);
+#endif /* RE_ENABLE_I18N */
+      *err = ret;
+      return NULL;
+    }
+  /* \w match '_' also.  */
+  for (; *extra; extra++)
+    bitset_set (sbcset, *extra);
+
+  /* If it is non-matching list.  */
+  if (non_match)
+    bitset_not (sbcset);
+
+#ifdef RE_ENABLE_I18N
+  /* Ensure only single byte characters are set.  */
+  if (dfa->mb_cur_max > 1)
+    bitset_mask (sbcset, dfa->sb_char);
+#endif
+
+  /* Build a tree for simple bracket.  */
+  br_token.type = SIMPLE_BRACKET;
+  br_token.opr.sbcset = sbcset;
+  tree = create_token_tree (dfa, NULL, NULL, &br_token);
+  if (BE (tree == NULL, 0))
+    goto build_word_op_espace;
+
+#ifdef RE_ENABLE_I18N
+  if (dfa->mb_cur_max > 1)
+    {
+      bin_tree_t *mbc_tree;
+      /* Build a tree for complex bracket.  */
+      br_token.type = COMPLEX_BRACKET;
+      br_token.opr.mbcset = mbcset;
+      dfa->has_mb_node = 1;
+      mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token);
+      if (BE (mbc_tree == NULL, 0))
+	goto build_word_op_espace;
+      /* Then join them by ALT node.  */
+      tree = create_tree (dfa, tree, mbc_tree, OP_ALT);
+      if (BE (mbc_tree != NULL, 1))
+	return tree;
+    }
+  else
+    {
+      free_charset (mbcset);
+      return tree;
+    }
+#else /* not RE_ENABLE_I18N */
+  return tree;
+#endif /* not RE_ENABLE_I18N */
+
+ build_word_op_espace:
+  re_free (sbcset);
+#ifdef RE_ENABLE_I18N
+  free_charset (mbcset);
+#endif /* RE_ENABLE_I18N */
+  *err = REG_ESPACE;
+  return NULL;
+}
+
+/* This is intended for the expressions like "a{1,3}".
+   Fetch a number from `input', and return the number.
+   Return REG_MISSING if the number field is empty like "{,1}".
+   Return REG_ERROR if an error occurred.  */
+
+static Idx
+fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax)
+{
+  Idx num = REG_MISSING;
+  unsigned char c;
+  while (1)
+    {
+      fetch_token (token, input, syntax);
+      c = token->opr.c;
+      if (BE (token->type == END_OF_RE, 0))
+	return REG_ERROR;
+      if (token->type == OP_CLOSE_DUP_NUM || c == ',')
+	break;
+      num = ((token->type != CHARACTER || c < '0' || '9' < c
+	      || num == REG_ERROR)
+	     ? REG_ERROR
+	     : ((num == REG_MISSING) ? c - '0' : num * 10 + c - '0'));
+      num = (num > RE_DUP_MAX) ? REG_ERROR : num;
+    }
+  return num;
+}
+
+#ifdef RE_ENABLE_I18N
+static void
+free_charset (re_charset_t *cset)
+{
+  re_free (cset->mbchars);
+# ifdef _LIBC
+  re_free (cset->coll_syms);
+  re_free (cset->equiv_classes);
+  re_free (cset->range_starts);
+  re_free (cset->range_ends);
+# endif
+  re_free (cset->char_classes);
+  re_free (cset);
+}
+#endif /* RE_ENABLE_I18N */
+
+/* Functions for binary tree operation.  */
+
+/* Create a tree node.  */
+
+static bin_tree_t *
+create_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right,
+	     re_token_type_t type)
+{
+  re_token_t t;
+  t.type = type;
+  return create_token_tree (dfa, left, right, &t);
+}
+
+static bin_tree_t *
+create_token_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right,
+		   const re_token_t *token)
+{
+  bin_tree_t *tree;
+  if (BE (dfa->str_tree_storage_idx == BIN_TREE_STORAGE_SIZE, 0))
+    {
+      bin_tree_storage_t *storage = re_malloc (bin_tree_storage_t, 1);
+
+      if (storage == NULL)
+	return NULL;
+      storage->next = dfa->str_tree_storage;
+      dfa->str_tree_storage = storage;
+      dfa->str_tree_storage_idx = 0;
+    }
+  tree = &dfa->str_tree_storage->data[dfa->str_tree_storage_idx++];
+
+  tree->parent = NULL;
+  tree->left = left;
+  tree->right = right;
+  tree->token = *token;
+  tree->token.duplicated = 0;
+  tree->token.opt_subexp = 0;
+  tree->first = NULL;
+  tree->next = NULL;
+  tree->node_idx = REG_MISSING;
+
+  if (left != NULL)
+    left->parent = tree;
+  if (right != NULL)
+    right->parent = tree;
+  return tree;
+}
+
+/* Mark the tree SRC as an optional subexpression.
+   To be called from preorder or postorder.  */
+
+static reg_errcode_t
+mark_opt_subexp (void *extra, bin_tree_t *node)
+{
+  Idx idx = (Idx) (long) extra;
+  if (node->token.type == SUBEXP && node->token.opr.idx == idx)
+    node->token.opt_subexp = 1;
+
+  return REG_NOERROR;
+}
+
+/* Free the allocated memory inside NODE. */
+
+static void
+free_token (re_token_t *node)
+{
+#ifdef RE_ENABLE_I18N
+  if (node->type == COMPLEX_BRACKET && node->duplicated == 0)
+    free_charset (node->opr.mbcset);
+  else
+#endif /* RE_ENABLE_I18N */
+    if (node->type == SIMPLE_BRACKET && node->duplicated == 0)
+      re_free (node->opr.sbcset);
+}
+
+/* Worker function for tree walking.  Free the allocated memory inside NODE
+   and its children. */
+
+static reg_errcode_t
+free_tree (void *extra, bin_tree_t *node)
+{
+  free_token (&node->token);
+  return REG_NOERROR;
+}
+
+
+/* Duplicate the node SRC, and return new node.  This is a preorder
+   visit similar to the one implemented by the generic visitor, but
+   we need more infrastructure to maintain two parallel trees --- so,
+   it's easier to duplicate.  */
+
+static bin_tree_t *
+duplicate_tree (const bin_tree_t *root, re_dfa_t *dfa)
+{
+  const bin_tree_t *node;
+  bin_tree_t *dup_root;
+  bin_tree_t **p_new = &dup_root, *dup_node = root->parent;
+
+  for (node = root; ; )
+    {
+      /* Create a new tree and link it back to the current parent.  */
+      *p_new = create_token_tree (dfa, NULL, NULL, &node->token);
+      if (*p_new == NULL)
+	return NULL;
+      (*p_new)->parent = dup_node;
+      (*p_new)->token.duplicated = 1;
+      dup_node = *p_new;
+
+      /* Go to the left node, or up and to the right.  */
+      if (node->left)
+	{
+	  node = node->left;
+	  p_new = &dup_node->left;
+	}
+      else
+	{
+	  const bin_tree_t *prev = NULL;
+	  while (node->right == prev || node->right == NULL)
+	    {
+	      prev = node;
+	      node = node->parent;
+	      dup_node = dup_node->parent;
+	      if (!node)
+	        return dup_root;
+	    }
+	  node = node->right;
+	  p_new = &dup_node->right;
+	}
+    }
+}
diff --git a/parted-1.8.7/lib/regex.c b/parted-1.8.7/lib/regex.c
new file mode 100644
index 0000000..d4eb726
--- /dev/null
+++ b/parted-1.8.7/lib/regex.c
@@ -0,0 +1,71 @@
+/* Extended regular expression matching and search library.
+   Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#include <config.h>
+
+/* Make sure noone compiles this code with a C++ compiler.  */
+#if defined __cplusplus && defined _LIBC
+# error "This is C code, use a C compiler"
+#endif
+
+#ifdef _LIBC
+/* We have to keep the namespace clean.  */
+# define regfree(preg) __regfree (preg)
+# define regexec(pr, st, nm, pm, ef) __regexec (pr, st, nm, pm, ef)
+# define regcomp(preg, pattern, cflags) __regcomp (preg, pattern, cflags)
+# define regerror(errcode, preg, errbuf, errbuf_size) \
+	__regerror(errcode, preg, errbuf, errbuf_size)
+# define re_set_registers(bu, re, nu, st, en) \
+	__re_set_registers (bu, re, nu, st, en)
+# define re_match_2(bufp, string1, size1, string2, size2, pos, regs, stop) \
+	__re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop)
+# define re_match(bufp, string, size, pos, regs) \
+	__re_match (bufp, string, size, pos, regs)
+# define re_search(bufp, string, size, startpos, range, regs) \
+	__re_search (bufp, string, size, startpos, range, regs)
+# define re_compile_pattern(pattern, length, bufp) \
+	__re_compile_pattern (pattern, length, bufp)
+# define re_set_syntax(syntax) __re_set_syntax (syntax)
+# define re_search_2(bufp, st1, s1, st2, s2, startpos, range, regs, stop) \
+	__re_search_2 (bufp, st1, s1, st2, s2, startpos, range, regs, stop)
+# define re_compile_fastmap(bufp) __re_compile_fastmap (bufp)
+
+# include "../locale/localeinfo.h"
+#endif
+
+/* On some systems, limits.h sets RE_DUP_MAX to a lower value than
+   GNU regex allows.  Include it before <regex.h>, which correctly
+   #undefs RE_DUP_MAX and sets it to the right value.  */
+#include <limits.h>
+
+#include <regex.h>
+#include "regex_internal.h"
+
+#include "regex_internal.c"
+#include "regcomp.c"
+#include "regexec.c"
+
+/* Binary backward compatibility.  */
+#if _LIBC
+# include <shlib-compat.h>
+# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3)
+link_warning (re_max_failures, "the 're_max_failures' variable is obsolete and will go away.")
+int re_max_failures = 2000;
+# endif
+#endif
diff --git a/parted-1.8.7/lib/regex.h b/parted-1.8.7/lib/regex.h
new file mode 100644
index 0000000..7a79ca3
--- /dev/null
+++ b/parted-1.8.7/lib/regex.h
@@ -0,0 +1,675 @@
+/* Definitions for data structures and routines for the regular
+   expression library.
+   Copyright (C) 1985,1989-93,1995-98,2000,2001,2002,2003,2005,2006
+   Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _REGEX_H
+#define _REGEX_H 1
+
+#include <sys/types.h>
+
+/* Allow the use in C++ code.  */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Define __USE_GNU_REGEX to declare GNU extensions that violate the
+   POSIX name space rules.  */
+#undef __USE_GNU_REGEX
+#if (defined _GNU_SOURCE					\
+     || (!defined _POSIX_C_SOURCE && !defined _POSIX_SOURCE	\
+	 && !defined _XOPEN_SOURCE))
+# define __USE_GNU_REGEX 1
+#endif
+
+#ifdef _REGEX_LARGE_OFFSETS
+
+/* Use types and values that are wide enough to represent signed and
+   unsigned byte offsets in memory.  This currently works only when
+   the regex code is used outside of the GNU C library; it is not yet
+   supported within glibc itself, and glibc users should not define
+   _REGEX_LARGE_OFFSETS.  */
+
+/* The type of the offset of a byte within a string.
+   For historical reasons POSIX 1003.1-2004 requires that regoff_t be
+   at least as wide as off_t.  However, many common POSIX platforms set
+   regoff_t to the more-sensible ssize_t and the Open Group has
+   signalled its intention to change the requirement to be that
+   regoff_t be at least as wide as ptrdiff_t and ssize_t; see XBD ERN
+   60 (2005-08-25).  We don't know of any hosts where ssize_t or
+   ptrdiff_t is wider than ssize_t, so ssize_t is safe.  */
+typedef ssize_t regoff_t;
+
+/* The type of nonnegative object indexes.  Traditionally, GNU regex
+   uses 'int' for these.  Code that uses __re_idx_t should work
+   regardless of whether the type is signed.  */
+typedef size_t __re_idx_t;
+
+/* The type of object sizes.  */
+typedef size_t __re_size_t;
+
+/* The type of object sizes, in places where the traditional code
+   uses unsigned long int.  */
+typedef size_t __re_long_size_t;
+
+#else
+
+/* Use types that are binary-compatible with the traditional GNU regex
+   implementation, which mishandles strings longer than INT_MAX.  */
+
+typedef int regoff_t;
+typedef int __re_idx_t;
+typedef unsigned int __re_size_t;
+typedef unsigned long int __re_long_size_t;
+
+#endif
+
+/* The following two types have to be signed and unsigned integer type
+   wide enough to hold a value of a pointer.  For most ANSI compilers
+   ptrdiff_t and size_t should be likely OK.  Still size of these two
+   types is 2 for Microsoft C.  Ugh... */
+typedef long int s_reg_t;
+typedef unsigned long int active_reg_t;
+
+/* The following bits are used to determine the regexp syntax we
+   recognize.  The set/not-set meanings are chosen so that Emacs syntax
+   remains the value 0.  The bits are given in alphabetical order, and
+   the definitions shifted by one from the previous bit; thus, when we
+   add or remove a bit, only one other definition need change.  */
+typedef unsigned long int reg_syntax_t;
+
+#ifdef __USE_GNU_REGEX
+
+/* If this bit is not set, then \ inside a bracket expression is literal.
+   If set, then such a \ quotes the following character.  */
+# define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1)
+
+/* If this bit is not set, then + and ? are operators, and \+ and \? are
+     literals.
+   If set, then \+ and \? are operators and + and ? are literals.  */
+# define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1)
+
+/* If this bit is set, then character classes are supported.  They are:
+     [:alpha:], [:upper:], [:lower:],  [:digit:], [:alnum:], [:xdigit:],
+     [:space:], [:print:], [:punct:], [:graph:], and [:cntrl:].
+   If not set, then character classes are not supported.  */
+# define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1)
+
+/* If this bit is set, then ^ and $ are always anchors (outside bracket
+     expressions, of course).
+   If this bit is not set, then it depends:
+        ^  is an anchor if it is at the beginning of a regular
+           expression or after an open-group or an alternation operator;
+        $  is an anchor if it is at the end of a regular expression, or
+           before a close-group or an alternation operator.
+
+   This bit could be (re)combined with RE_CONTEXT_INDEP_OPS, because
+   POSIX draft 11.2 says that * etc. in leading positions is undefined.
+   We already implemented a previous draft which made those constructs
+   invalid, though, so we haven't changed the code back.  */
+# define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1)
+
+/* If this bit is set, then special characters are always special
+     regardless of where they are in the pattern.
+   If this bit is not set, then special characters are special only in
+     some contexts; otherwise they are ordinary.  Specifically,
+     * + ? and intervals are only special when not after the beginning,
+     open-group, or alternation operator.  */
+# define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1)
+
+/* If this bit is set, then *, +, ?, and { cannot be first in an re or
+     immediately after an alternation or begin-group operator.  */
+# define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1)
+
+/* If this bit is set, then . matches newline.
+   If not set, then it doesn't.  */
+# define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1)
+
+/* If this bit is set, then . doesn't match NUL.
+   If not set, then it does.  */
+# define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1)
+
+/* If this bit is set, nonmatching lists [^...] do not match newline.
+   If not set, they do.  */
+# define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1)
+
+/* If this bit is set, either \{...\} or {...} defines an
+     interval, depending on RE_NO_BK_BRACES.
+   If not set, \{, \}, {, and } are literals.  */
+# define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1)
+
+/* If this bit is set, +, ? and | aren't recognized as operators.
+   If not set, they are.  */
+# define RE_LIMITED_OPS (RE_INTERVALS << 1)
+
+/* If this bit is set, newline is an alternation operator.
+   If not set, newline is literal.  */
+# define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1)
+
+/* If this bit is set, then `{...}' defines an interval, and \{ and \}
+     are literals.
+  If not set, then `\{...\}' defines an interval.  */
+# define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1)
+
+/* If this bit is set, (...) defines a group, and \( and \) are literals.
+   If not set, \(...\) defines a group, and ( and ) are literals.  */
+# define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1)
+
+/* If this bit is set, then \<digit> matches <digit>.
+   If not set, then \<digit> is a back-reference.  */
+# define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1)
+
+/* If this bit is set, then | is an alternation operator, and \| is literal.
+   If not set, then \| is an alternation operator, and | is literal.  */
+# define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1)
+
+/* If this bit is set, then an ending range point collating higher
+     than the starting range point, as in [z-a], is invalid.
+   If not set, then when ending range point collates higher than the
+     starting range point, the range is ignored.  */
+# define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1)
+
+/* If this bit is set, then an unmatched ) is ordinary.
+   If not set, then an unmatched ) is invalid.  */
+# define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1)
+
+/* If this bit is set, succeed as soon as we match the whole pattern,
+   without further backtracking.  */
+# define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1)
+
+/* If this bit is set, do not process the GNU regex operators.
+   If not set, then the GNU regex operators are recognized. */
+# define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1)
+
+/* If this bit is set, turn on internal regex debugging.
+   If not set, and debugging was on, turn it off.
+   This only works if regex.c is compiled -DDEBUG.
+   We define this bit always, so that all that's needed to turn on
+   debugging is to recompile regex.c; the calling code can always have
+   this bit set, and it won't affect anything in the normal case. */
+# define RE_DEBUG (RE_NO_GNU_OPS << 1)
+
+/* If this bit is set, a syntactically invalid interval is treated as
+   a string of ordinary characters.  For example, the ERE 'a{1' is
+   treated as 'a\{1'.  */
+# define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1)
+
+/* If this bit is set, then ignore case when matching.
+   If not set, then case is significant.  */
+# define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1)
+
+/* This bit is used internally like RE_CONTEXT_INDEP_ANCHORS but only
+   for ^, because it is difficult to scan the regex backwards to find
+   whether ^ should be special.  */
+# define RE_CARET_ANCHORS_HERE (RE_ICASE << 1)
+
+/* If this bit is set, then \{ cannot be first in an bre or
+   immediately after an alternation or begin-group operator.  */
+# define RE_CONTEXT_INVALID_DUP (RE_CARET_ANCHORS_HERE << 1)
+
+/* If this bit is set, then no_sub will be set to 1 during
+   re_compile_pattern.  */
+# define RE_NO_SUB (RE_CONTEXT_INVALID_DUP << 1)
+
+#endif /* defined __USE_GNU_REGEX */
+
+/* This global variable defines the particular regexp syntax to use (for
+   some interfaces).  When a regexp is compiled, the syntax used is
+   stored in the pattern buffer, so changing this does not affect
+   already-compiled regexps.  */
+extern reg_syntax_t re_syntax_options;
+
+#ifdef __USE_GNU_REGEX
+/* Define combinations of the above bits for the standard possibilities.
+   (The [[[ comments delimit what gets put into the Texinfo file, so
+   don't delete them!)  */
+/* [[[begin syntaxes]]] */
+# define RE_SYNTAX_EMACS 0
+
+# define RE_SYNTAX_AWK							\
+  (RE_BACKSLASH_ESCAPE_IN_LISTS   | RE_DOT_NOT_NULL			\
+   | RE_NO_BK_PARENS              | RE_NO_BK_REFS			\
+   | RE_NO_BK_VBAR                | RE_NO_EMPTY_RANGES			\
+   | RE_DOT_NEWLINE		  | RE_CONTEXT_INDEP_ANCHORS		\
+   | RE_UNMATCHED_RIGHT_PAREN_ORD | RE_NO_GNU_OPS)
+
+# define RE_SYNTAX_GNU_AWK						\
+  ((RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DEBUG)	\
+   & ~(RE_DOT_NOT_NULL | RE_INTERVALS | RE_CONTEXT_INDEP_OPS		\
+       | RE_CONTEXT_INVALID_OPS ))
+
+# define RE_SYNTAX_POSIX_AWK						\
+  (RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS		\
+   | RE_INTERVALS	    | RE_NO_GNU_OPS)
+
+# define RE_SYNTAX_GREP							\
+  (RE_BK_PLUS_QM              | RE_CHAR_CLASSES				\
+   | RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS				\
+   | RE_NEWLINE_ALT)
+
+# define RE_SYNTAX_EGREP						\
+  (RE_CHAR_CLASSES        | RE_CONTEXT_INDEP_ANCHORS			\
+   | RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE			\
+   | RE_NEWLINE_ALT       | RE_NO_BK_PARENS				\
+   | RE_NO_BK_VBAR)
+
+# define RE_SYNTAX_POSIX_EGREP						\
+  (RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES			\
+   | RE_INVALID_INTERVAL_ORD)
+
+/* P1003.2/D11.2, section 4.20.7.1, lines 5078ff.  */
+# define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC
+
+# define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC
+
+/* Syntax bits common to both basic and extended POSIX regex syntax.  */
+# define _RE_SYNTAX_POSIX_COMMON					\
+  (RE_CHAR_CLASSES | RE_DOT_NEWLINE      | RE_DOT_NOT_NULL		\
+   | RE_INTERVALS  | RE_NO_EMPTY_RANGES)
+
+# define RE_SYNTAX_POSIX_BASIC						\
+  (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM | RE_CONTEXT_INVALID_DUP)
+
+/* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes
+   RE_LIMITED_OPS, i.e., \? \+ \| are not recognized.  Actually, this
+   isn't minimal, since other operators, such as \`, aren't disabled.  */
+# define RE_SYNTAX_POSIX_MINIMAL_BASIC					\
+  (_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS)
+
+# define RE_SYNTAX_POSIX_EXTENDED					\
+  (_RE_SYNTAX_POSIX_COMMON  | RE_CONTEXT_INDEP_ANCHORS			\
+   | RE_CONTEXT_INDEP_OPS   | RE_NO_BK_BRACES				\
+   | RE_NO_BK_PARENS        | RE_NO_BK_VBAR				\
+   | RE_CONTEXT_INVALID_OPS | RE_UNMATCHED_RIGHT_PAREN_ORD)
+
+/* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INDEP_OPS is
+   removed and RE_NO_BK_REFS is added.  */
+# define RE_SYNTAX_POSIX_MINIMAL_EXTENDED				\
+  (_RE_SYNTAX_POSIX_COMMON  | RE_CONTEXT_INDEP_ANCHORS			\
+   | RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES				\
+   | RE_NO_BK_PARENS        | RE_NO_BK_REFS				\
+   | RE_NO_BK_VBAR	    | RE_UNMATCHED_RIGHT_PAREN_ORD)
+/* [[[end syntaxes]]] */
+
+#endif /* defined __USE_GNU_REGEX */
+
+#ifdef __USE_GNU_REGEX
+
+/* Maximum number of duplicates an interval can allow.  POSIX-conforming
+   systems might define this in <limits.h>, but we want our
+   value, so remove any previous define.  */
+# ifdef RE_DUP_MAX
+#  undef RE_DUP_MAX
+# endif
+
+/* RE_DUP_MAX is 2**15 - 1 because an earlier implementation stored
+   the counter as a 2-byte signed integer.  This is no longer true, so
+   RE_DUP_MAX could be increased to (INT_MAX / 10 - 1), or to
+   ((SIZE_MAX - 2) / 10 - 1) if _REGEX_LARGE_OFFSETS is defined.
+   However, there would be a huge performance problem if someone
+   actually used a pattern like a\{214748363\}, so RE_DUP_MAX retains
+   its historical value.  */
+# define RE_DUP_MAX (0x7fff)
+
+#endif /* defined __USE_GNU_REGEX */
+
+
+/* POSIX `cflags' bits (i.e., information for `regcomp').  */
+
+/* If this bit is set, then use extended regular expression syntax.
+   If not set, then use basic regular expression syntax.  */
+#define REG_EXTENDED 1
+
+/* If this bit is set, then ignore case when matching.
+   If not set, then case is significant.  */
+#define REG_ICASE (1 << 1)
+
+/* If this bit is set, then anchors do not match at newline
+     characters in the string.
+   If not set, then anchors do match at newlines.  */
+#define REG_NEWLINE (1 << 2)
+
+/* If this bit is set, then report only success or fail in regexec.
+   If not set, then returns differ between not matching and errors.  */
+#define REG_NOSUB (1 << 3)
+
+
+/* POSIX `eflags' bits (i.e., information for regexec).  */
+
+/* If this bit is set, then the beginning-of-line operator doesn't match
+     the beginning of the string (presumably because it's not the
+     beginning of a line).
+   If not set, then the beginning-of-line operator does match the
+     beginning of the string.  */
+#define REG_NOTBOL 1
+
+/* Like REG_NOTBOL, except for the end-of-line.  */
+#define REG_NOTEOL (1 << 1)
+
+/* Use PMATCH[0] to delimit the start and end of the search in the
+   buffer.  */
+#define REG_STARTEND (1 << 2)
+
+
+/* If any error codes are removed, changed, or added, update the
+   `__re_error_msgid' table in regcomp.c.  */
+
+typedef enum
+{
+  _REG_ENOSYS = -1,	/* This will never happen for this implementation.  */
+  _REG_NOERROR = 0,	/* Success.  */
+  _REG_NOMATCH,		/* Didn't find a match (for regexec).  */
+
+  /* POSIX regcomp return error codes.  (In the order listed in the
+     standard.)  */
+  _REG_BADPAT,		/* Invalid pattern.  */
+  _REG_ECOLLATE,	/* Invalid collating element.  */
+  _REG_ECTYPE,		/* Invalid character class name.  */
+  _REG_EESCAPE,		/* Trailing backslash.  */
+  _REG_ESUBREG,		/* Invalid back reference.  */
+  _REG_EBRACK,		/* Unmatched left bracket.  */
+  _REG_EPAREN,		/* Parenthesis imbalance.  */
+  _REG_EBRACE,		/* Unmatched \{.  */
+  _REG_BADBR,		/* Invalid contents of \{\}.  */
+  _REG_ERANGE,		/* Invalid range end.  */
+  _REG_ESPACE,		/* Ran out of memory.  */
+  _REG_BADRPT,		/* No preceding re for repetition op.  */
+
+  /* Error codes we've added.  */
+  _REG_EEND,		/* Premature end.  */
+  _REG_ESIZE,		/* Compiled pattern bigger than 2^16 bytes.  */
+  _REG_ERPAREN		/* Unmatched ) or \); not returned from regcomp.  */
+} reg_errcode_t;
+
+#ifdef _XOPEN_SOURCE
+# define REG_ENOSYS	_REG_ENOSYS
+#endif
+#define REG_NOERROR	_REG_NOERROR
+#define REG_NOMATCH	_REG_NOMATCH
+#define REG_BADPAT	_REG_BADPAT
+#define REG_ECOLLATE	_REG_ECOLLATE
+#define REG_ECTYPE	_REG_ECTYPE
+#define REG_EESCAPE	_REG_EESCAPE
+#define REG_ESUBREG	_REG_ESUBREG
+#define REG_EBRACK	_REG_EBRACK
+#define REG_EPAREN	_REG_EPAREN
+#define REG_EBRACE	_REG_EBRACE
+#define REG_BADBR	_REG_BADBR
+#define REG_ERANGE	_REG_ERANGE
+#define REG_ESPACE	_REG_ESPACE
+#define REG_BADRPT	_REG_BADRPT
+#define REG_EEND	_REG_EEND
+#define REG_ESIZE	_REG_ESIZE
+#define REG_ERPAREN	_REG_ERPAREN
+
+/* struct re_pattern_buffer normally uses member names like `buffer'
+   that POSIX does not allow.  In POSIX mode these members have names
+   with leading `re_' (e.g., `re_buffer').  */
+#ifdef __USE_GNU_REGEX
+# define _REG_RE_NAME(id) id
+# define _REG_RM_NAME(id) id
+#else
+# define _REG_RE_NAME(id) re_##id
+# define _REG_RM_NAME(id) rm_##id
+#endif
+
+/* The user can specify the type of the re_translate member by
+   defining the macro RE_TRANSLATE_TYPE, which defaults to unsigned
+   char *.  This pollutes the POSIX name space, so in POSIX mode just
+   use unsigned char *.  */
+#ifdef __USE_GNU_REGEX
+# ifndef RE_TRANSLATE_TYPE
+#  define RE_TRANSLATE_TYPE unsigned char *
+# endif
+# define REG_TRANSLATE_TYPE RE_TRANSLATE_TYPE
+#else
+# define REG_TRANSLATE_TYPE unsigned char *
+#endif
+
+/* This data structure represents a compiled pattern.  Before calling
+   the pattern compiler, the fields `buffer', `allocated', `fastmap',
+   `translate', and `no_sub' can be set.  After the pattern has been
+   compiled, the `re_nsub' field is available.  All other fields are
+   private to the regex routines.  */
+
+struct re_pattern_buffer
+{
+  /* Space that holds the compiled pattern.  It is declared as
+     `unsigned char *' because its elements are sometimes used as
+     array indexes.  */
+  unsigned char *_REG_RE_NAME (buffer);
+
+  /* Number of bytes to which `buffer' points.  */
+  __re_long_size_t _REG_RE_NAME (allocated);
+
+  /* Number of bytes actually used in `buffer'.  */
+  __re_long_size_t _REG_RE_NAME (used);
+
+  /* Syntax setting with which the pattern was compiled.  */
+  reg_syntax_t _REG_RE_NAME (syntax);
+
+  /* Pointer to a fastmap, if any, otherwise zero.  re_search uses the
+     fastmap, if there is one, to skip over impossible starting points
+     for matches.  */
+  char *_REG_RE_NAME (fastmap);
+
+  /* Either a translate table to apply to all characters before
+     comparing them, or zero for no translation.  The translation is
+     applied to a pattern when it is compiled and to a string when it
+     is matched.  */
+  REG_TRANSLATE_TYPE _REG_RE_NAME (translate);
+
+  /* Number of subexpressions found by the compiler.  */
+  size_t re_nsub;
+
+  /* Zero if this pattern cannot match the empty string, one else.
+     Well, in truth it's used only in `re_search_2', to see whether or
+     not we should use the fastmap, so we don't set this absolutely
+     perfectly; see `re_compile_fastmap' (the `duplicate' case).  */
+  unsigned int _REG_RE_NAME (can_be_null) : 1;
+
+  /* If REGS_UNALLOCATED, allocate space in the `regs' structure
+     for `max (RE_NREGS, re_nsub + 1)' groups.
+     If REGS_REALLOCATE, reallocate space if necessary.
+     If REGS_FIXED, use what's there.  */
+#ifdef __USE_GNU_REGEX
+# define REGS_UNALLOCATED 0
+# define REGS_REALLOCATE 1
+# define REGS_FIXED 2
+#endif
+  unsigned int _REG_RE_NAME (regs_allocated) : 2;
+
+  /* Set to zero when `regex_compile' compiles a pattern; set to one
+     by `re_compile_fastmap' if it updates the fastmap.  */
+  unsigned int _REG_RE_NAME (fastmap_accurate) : 1;
+
+  /* If set, `re_match_2' does not return information about
+     subexpressions.  */
+  unsigned int _REG_RE_NAME (no_sub) : 1;
+
+  /* If set, a beginning-of-line anchor doesn't match at the beginning
+     of the string.  */
+  unsigned int _REG_RE_NAME (not_bol) : 1;
+
+  /* Similarly for an end-of-line anchor.  */
+  unsigned int _REG_RE_NAME (not_eol) : 1;
+
+  /* If true, an anchor at a newline matches.  */
+  unsigned int _REG_RE_NAME (newline_anchor) : 1;
+
+/* [[[end pattern_buffer]]] */
+};
+
+typedef struct re_pattern_buffer regex_t;
+
+/* This is the structure we store register match data in.  See
+   regex.texinfo for a full description of what registers match.  */
+struct re_registers
+{
+  __re_size_t _REG_RM_NAME (num_regs);
+  regoff_t *_REG_RM_NAME (start);
+  regoff_t *_REG_RM_NAME (end);
+};
+
+
+/* If `regs_allocated' is REGS_UNALLOCATED in the pattern buffer,
+   `re_match_2' returns information about at least this many registers
+   the first time a `regs' structure is passed.  */
+#if !defined RE_NREGS && defined __USE_GNU_REGEX
+# define RE_NREGS 30
+#endif
+
+
+/* POSIX specification for registers.  Aside from the different names than
+   `re_registers', POSIX uses an array of structures, instead of a
+   structure of arrays.  */
+typedef struct
+{
+  regoff_t rm_so;  /* Byte offset from string's start to substring's start.  */
+  regoff_t rm_eo;  /* Byte offset from string's start to substring's end.  */
+} regmatch_t;
+
+/* Declarations for routines.  */
+
+/* Sets the current default syntax to SYNTAX, and return the old syntax.
+   You can also simply assign to the `re_syntax_options' variable.  */
+extern reg_syntax_t re_set_syntax (reg_syntax_t __syntax);
+
+/* Compile the regular expression PATTERN, with length LENGTH
+   and syntax given by the global `re_syntax_options', into the buffer
+   BUFFER.  Return NULL if successful, and an error string if not.  */
+extern const char *re_compile_pattern (const char *__pattern, size_t __length,
+				       struct re_pattern_buffer *__buffer);
+
+
+/* Compile a fastmap for the compiled pattern in BUFFER; used to
+   accelerate searches.  Return 0 if successful and -2 if was an
+   internal error.  */
+extern int re_compile_fastmap (struct re_pattern_buffer *__buffer);
+
+
+/* Search in the string STRING (with length LENGTH) for the pattern
+   compiled into BUFFER.  Start searching at position START, for RANGE
+   characters.  Return the starting position of the match, -1 for no
+   match, or -2 for an internal error.  Also return register
+   information in REGS (if REGS and BUFFER->no_sub are nonzero).  */
+extern regoff_t re_search (struct re_pattern_buffer *__buffer,
+			   const char *__string, __re_idx_t __length,
+			   __re_idx_t __start, regoff_t __range,
+			   struct re_registers *__regs);
+
+
+/* Like `re_search', but search in the concatenation of STRING1 and
+   STRING2.  Also, stop searching at index START + STOP.  */
+extern regoff_t re_search_2 (struct re_pattern_buffer *__buffer,
+			     const char *__string1, __re_idx_t __length1,
+			     const char *__string2, __re_idx_t __length2,
+			     __re_idx_t __start, regoff_t __range,
+			     struct re_registers *__regs,
+			     __re_idx_t __stop);
+
+
+/* Like `re_search', but return how many characters in STRING the regexp
+   in BUFFER matched, starting at position START.  */
+extern regoff_t re_match (struct re_pattern_buffer *__buffer,
+			  const char *__string, __re_idx_t __length,
+			  __re_idx_t __start, struct re_registers *__regs);
+
+
+/* Relates to `re_match' as `re_search_2' relates to `re_search'.  */
+extern regoff_t re_match_2 (struct re_pattern_buffer *__buffer,
+			    const char *__string1, __re_idx_t __length1,
+			    const char *__string2, __re_idx_t __length2,
+			    __re_idx_t __start, struct re_registers *__regs,
+			    __re_idx_t __stop);
+
+
+/* Set REGS to hold NUM_REGS registers, storing them in STARTS and
+   ENDS.  Subsequent matches using BUFFER and REGS will use this memory
+   for recording register information.  STARTS and ENDS must be
+   allocated with malloc, and must each be at least `NUM_REGS * sizeof
+   (regoff_t)' bytes long.
+
+   If NUM_REGS == 0, then subsequent matches should allocate their own
+   register data.
+
+   Unless this function is called, the first search or match using
+   PATTERN_BUFFER will allocate its own register data, without
+   freeing the old data.  */
+extern void re_set_registers (struct re_pattern_buffer *__buffer,
+			      struct re_registers *__regs,
+			      __re_size_t __num_regs,
+			      regoff_t *__starts, regoff_t *__ends);
+
+#if defined _REGEX_RE_COMP || defined _LIBC
+# ifndef _CRAY
+/* 4.2 bsd compatibility.  */
+extern char *re_comp (const char *);
+extern int re_exec (const char *);
+# endif
+#endif
+
+/* GCC 2.95 and later have "__restrict"; C99 compilers have
+   "restrict", and "configure" may have defined "restrict".
+   Other compilers use __restrict, __restrict__, and _Restrict, and
+   'configure' might #define 'restrict' to those words, so pick a
+   different name.  */
+#ifndef _Restrict_
+# if 199901L <= __STDC_VERSION__
+#  define _Restrict_ restrict
+# elif 2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__)
+#  define _Restrict_ __restrict
+# else
+#  define _Restrict_
+# endif
+#endif
+/* gcc 3.1 and up support the [restrict] syntax.  Don't trust
+   sys/cdefs.h's definition of __restrict_arr, though, as it
+   mishandles gcc -ansi -pedantic.  */
+#ifndef _Restrict_arr_
+# if ((199901L <= __STDC_VERSION__					\
+       || ((3 < __GNUC__ || (3 == __GNUC__ && 1 <= __GNUC_MINOR__))	\
+	   && !__STRICT_ANSI__))					\
+      && !defined __GNUG__)
+#  define _Restrict_arr_ _Restrict_
+# else
+#  define _Restrict_arr_
+# endif
+#endif
+
+/* POSIX compatibility.  */
+extern int regcomp (regex_t *_Restrict_ __preg,
+		    const char *_Restrict_ __pattern,
+		    int __cflags);
+
+extern int regexec (const regex_t *_Restrict_ __preg,
+		    const char *_Restrict_ __string, size_t __nmatch,
+		    regmatch_t __pmatch[_Restrict_arr_],
+		    int __eflags);
+
+extern size_t regerror (int __errcode, const regex_t *_Restrict_ __preg,
+			char *_Restrict_ __errbuf, size_t __errbuf_size);
+
+extern void regfree (regex_t *__preg);
+
+
+#ifdef __cplusplus
+}
+#endif	/* C++ */
+
+#endif /* regex.h */
diff --git a/parted-1.8.7/lib/regex_internal.c b/parted-1.8.7/lib/regex_internal.c
new file mode 100644
index 0000000..2129888
--- /dev/null
+++ b/parted-1.8.7/lib/regex_internal.c
@@ -0,0 +1,1741 @@
+/* Extended regular expression matching and search library.
+   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software
+   Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+static void re_string_construct_common (const char *str, Idx len,
+					re_string_t *pstr,
+					RE_TRANSLATE_TYPE trans, bool icase,
+					const re_dfa_t *dfa) internal_function;
+static re_dfastate_t *create_ci_newstate (const re_dfa_t *dfa,
+					  const re_node_set *nodes,
+					  re_hashval_t hash) internal_function;
+static re_dfastate_t *create_cd_newstate (const re_dfa_t *dfa,
+					  const re_node_set *nodes,
+					  unsigned int context,
+					  re_hashval_t hash) internal_function;
+
+/* Functions for string operation.  */
+
+/* This function allocate the buffers.  It is necessary to call
+   re_string_reconstruct before using the object.  */
+
+static reg_errcode_t
+internal_function
+re_string_allocate (re_string_t *pstr, const char *str, Idx len, Idx init_len,
+		    RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa)
+{
+  reg_errcode_t ret;
+  Idx init_buf_len;
+
+  /* Ensure at least one character fits into the buffers.  */
+  if (init_len < dfa->mb_cur_max)
+    init_len = dfa->mb_cur_max;
+  init_buf_len = (len + 1 < init_len) ? len + 1: init_len;
+  re_string_construct_common (str, len, pstr, trans, icase, dfa);
+
+  ret = re_string_realloc_buffers (pstr, init_buf_len);
+  if (BE (ret != REG_NOERROR, 0))
+    return ret;
+
+  pstr->word_char = dfa->word_char;
+  pstr->word_ops_used = dfa->word_ops_used;
+  pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str;
+  pstr->valid_len = (pstr->mbs_allocated || dfa->mb_cur_max > 1) ? 0 : len;
+  pstr->valid_raw_len = pstr->valid_len;
+  return REG_NOERROR;
+}
+
+/* This function allocate the buffers, and initialize them.  */
+
+static reg_errcode_t
+internal_function
+re_string_construct (re_string_t *pstr, const char *str, Idx len,
+		     RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa)
+{
+  reg_errcode_t ret;
+  memset (pstr, '\0', sizeof (re_string_t));
+  re_string_construct_common (str, len, pstr, trans, icase, dfa);
+
+  if (len > 0)
+    {
+      ret = re_string_realloc_buffers (pstr, len + 1);
+      if (BE (ret != REG_NOERROR, 0))
+	return ret;
+    }
+  pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str;
+
+  if (icase)
+    {
+#ifdef RE_ENABLE_I18N
+      if (dfa->mb_cur_max > 1)
+	{
+	  while (1)
+	    {
+	      ret = build_wcs_upper_buffer (pstr);
+	      if (BE (ret != REG_NOERROR, 0))
+		return ret;
+	      if (pstr->valid_raw_len >= len)
+		break;
+	      if (pstr->bufs_len > pstr->valid_len + dfa->mb_cur_max)
+		break;
+	      ret = re_string_realloc_buffers (pstr, pstr->bufs_len * 2);
+	      if (BE (ret != REG_NOERROR, 0))
+		return ret;
+	    }
+	}
+      else
+#endif /* RE_ENABLE_I18N  */
+	build_upper_buffer (pstr);
+    }
+  else
+    {
+#ifdef RE_ENABLE_I18N
+      if (dfa->mb_cur_max > 1)
+	build_wcs_buffer (pstr);
+      else
+#endif /* RE_ENABLE_I18N  */
+	{
+	  if (trans != NULL)
+	    re_string_translate_buffer (pstr);
+	  else
+	    {
+	      pstr->valid_len = pstr->bufs_len;
+	      pstr->valid_raw_len = pstr->bufs_len;
+	    }
+	}
+    }
+
+  return REG_NOERROR;
+}
+
+/* Helper functions for re_string_allocate, and re_string_construct.  */
+
+static reg_errcode_t
+internal_function
+re_string_realloc_buffers (re_string_t *pstr, Idx new_buf_len)
+{
+#ifdef RE_ENABLE_I18N
+  if (pstr->mb_cur_max > 1)
+    {
+      wint_t *new_wcs;
+
+      /* Avoid overflow.  */
+      size_t max_object_size = MAX (sizeof (wint_t), sizeof (Idx));
+      if (BE (SIZE_MAX / max_object_size < new_buf_len, 0))
+	return REG_ESPACE;
+
+      new_wcs = re_realloc (pstr->wcs, wint_t, new_buf_len);
+      if (BE (new_wcs == NULL, 0))
+	return REG_ESPACE;
+      pstr->wcs = new_wcs;
+      if (pstr->offsets != NULL)
+	{
+	  Idx *new_offsets = re_realloc (pstr->offsets, Idx, new_buf_len);
+	  if (BE (new_offsets == NULL, 0))
+	    return REG_ESPACE;
+	  pstr->offsets = new_offsets;
+	}
+    }
+#endif /* RE_ENABLE_I18N  */
+  if (pstr->mbs_allocated)
+    {
+      unsigned char *new_mbs = re_realloc (pstr->mbs, unsigned char,
+					   new_buf_len);
+      if (BE (new_mbs == NULL, 0))
+	return REG_ESPACE;
+      pstr->mbs = new_mbs;
+    }
+  pstr->bufs_len = new_buf_len;
+  return REG_NOERROR;
+}
+
+
+static void
+internal_function
+re_string_construct_common (const char *str, Idx len, re_string_t *pstr,
+			    RE_TRANSLATE_TYPE trans, bool icase,
+			    const re_dfa_t *dfa)
+{
+  pstr->raw_mbs = (const unsigned char *) str;
+  pstr->len = len;
+  pstr->raw_len = len;
+  pstr->trans = trans;
+  pstr->icase = icase;
+  pstr->mbs_allocated = (trans != NULL || icase);
+  pstr->mb_cur_max = dfa->mb_cur_max;
+  pstr->is_utf8 = dfa->is_utf8;
+  pstr->map_notascii = dfa->map_notascii;
+  pstr->stop = pstr->len;
+  pstr->raw_stop = pstr->stop;
+}
+
+#ifdef RE_ENABLE_I18N
+
+/* Build wide character buffer PSTR->WCS.
+   If the byte sequence of the string are:
+     <mb1>(0), <mb1>(1), <mb2>(0), <mb2>(1), <sb3>
+   Then wide character buffer will be:
+     <wc1>   , WEOF    , <wc2>   , WEOF    , <wc3>
+   We use WEOF for padding, they indicate that the position isn't
+   a first byte of a multibyte character.
+
+   Note that this function assumes PSTR->VALID_LEN elements are already
+   built and starts from PSTR->VALID_LEN.  */
+
+static void
+internal_function
+build_wcs_buffer (re_string_t *pstr)
+{
+#ifdef _LIBC
+  unsigned char buf[MB_LEN_MAX];
+  assert (MB_LEN_MAX >= pstr->mb_cur_max);
+#else
+  unsigned char buf[64];
+#endif
+  mbstate_t prev_st;
+  Idx byte_idx, end_idx, remain_len;
+  size_t mbclen;
+
+  /* Build the buffers from pstr->valid_len to either pstr->len or
+     pstr->bufs_len.  */
+  end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len;
+  for (byte_idx = pstr->valid_len; byte_idx < end_idx;)
+    {
+      wchar_t wc;
+      const char *p;
+
+      remain_len = end_idx - byte_idx;
+      prev_st = pstr->cur_state;
+      /* Apply the translation if we need.  */
+      if (BE (pstr->trans != NULL, 0))
+	{
+	  int i, ch;
+
+	  for (i = 0; i < pstr->mb_cur_max && i < remain_len; ++i)
+	    {
+	      ch = pstr->raw_mbs [pstr->raw_mbs_idx + byte_idx + i];
+	      buf[i] = pstr->mbs[byte_idx + i] = pstr->trans[ch];
+	    }
+	  p = (const char *) buf;
+	}
+      else
+	p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx;
+      mbclen = mbrtowc (&wc, p, remain_len, &pstr->cur_state);
+      if (BE (mbclen == (size_t) -2, 0))
+	{
+	  /* The buffer doesn't have enough space, finish to build.  */
+	  pstr->cur_state = prev_st;
+	  break;
+	}
+      else if (BE (mbclen == (size_t) -1 || mbclen == 0, 0))
+	{
+	  /* We treat these cases as a singlebyte character.  */
+	  mbclen = 1;
+	  wc = (wchar_t) pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx];
+	  if (BE (pstr->trans != NULL, 0))
+	    wc = pstr->trans[wc];
+	  pstr->cur_state = prev_st;
+	}
+
+      /* Write wide character and padding.  */
+      pstr->wcs[byte_idx++] = wc;
+      /* Write paddings.  */
+      for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;)
+	pstr->wcs[byte_idx++] = WEOF;
+    }
+  pstr->valid_len = byte_idx;
+  pstr->valid_raw_len = byte_idx;
+}
+
+/* Build wide character buffer PSTR->WCS like build_wcs_buffer,
+   but for REG_ICASE.  */
+
+static reg_errcode_t
+internal_function
+build_wcs_upper_buffer (re_string_t *pstr)
+{
+  mbstate_t prev_st;
+  Idx src_idx, byte_idx, end_idx, remain_len;
+  size_t mbclen;
+#ifdef _LIBC
+  char buf[MB_LEN_MAX];
+  assert (MB_LEN_MAX >= pstr->mb_cur_max);
+#else
+  char buf[64];
+#endif
+
+  byte_idx = pstr->valid_len;
+  end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len;
+
+  /* The following optimization assumes that ASCII characters can be
+     mapped to wide characters with a simple cast.  */
+  if (! pstr->map_notascii && pstr->trans == NULL && !pstr->offsets_needed)
+    {
+      while (byte_idx < end_idx)
+	{
+	  wchar_t wc;
+
+	  if (isascii (pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx])
+	      && mbsinit (&pstr->cur_state))
+	    {
+	      /* In case of a singlebyte character.  */
+	      pstr->mbs[byte_idx]
+		= toupper (pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]);
+	      /* The next step uses the assumption that wchar_t is encoded
+		 ASCII-safe: all ASCII values can be converted like this.  */
+	      pstr->wcs[byte_idx] = (wchar_t) pstr->mbs[byte_idx];
+	      ++byte_idx;
+	      continue;
+	    }
+
+	  remain_len = end_idx - byte_idx;
+	  prev_st = pstr->cur_state;
+	  mbclen = mbrtowc (&wc,
+			    ((const char *) pstr->raw_mbs + pstr->raw_mbs_idx
+			     + byte_idx), remain_len, &pstr->cur_state);
+	  if (BE (mbclen < (size_t) -2, 1))
+	    {
+	      wchar_t wcu = wc;
+	      if (iswlower (wc))
+		{
+		  size_t mbcdlen;
+
+		  wcu = towupper (wc);
+		  mbcdlen = wcrtomb (buf, wcu, &prev_st);
+		  if (BE (mbclen == mbcdlen, 1))
+		    memcpy (pstr->mbs + byte_idx, buf, mbclen);
+		  else
+		    {
+		      src_idx = byte_idx;
+		      goto offsets_needed;
+		    }
+		}
+	      else
+		memcpy (pstr->mbs + byte_idx,
+			pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx, mbclen);
+	      pstr->wcs[byte_idx++] = wcu;
+	      /* Write paddings.  */
+	      for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;)
+		pstr->wcs[byte_idx++] = WEOF;
+	    }
+	  else if (mbclen == (size_t) -1 || mbclen == 0)
+	    {
+	      /* It is an invalid character or '\0'.  Just use the byte.  */
+	      int ch = pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx];
+	      pstr->mbs[byte_idx] = ch;
+	      /* And also cast it to wide char.  */
+	      pstr->wcs[byte_idx++] = (wchar_t) ch;
+	      if (BE (mbclen == (size_t) -1, 0))
+		pstr->cur_state = prev_st;
+	    }
+	  else
+	    {
+	      /* The buffer doesn't have enough space, finish to build.  */
+	      pstr->cur_state = prev_st;
+	      break;
+	    }
+	}
+      pstr->valid_len = byte_idx;
+      pstr->valid_raw_len = byte_idx;
+      return REG_NOERROR;
+    }
+  else
+    for (src_idx = pstr->valid_raw_len; byte_idx < end_idx;)
+      {
+	wchar_t wc;
+	const char *p;
+      offsets_needed:
+	remain_len = end_idx - byte_idx;
+	prev_st = pstr->cur_state;
+	if (BE (pstr->trans != NULL, 0))
+	  {
+	    int i, ch;
+
+	    for (i = 0; i < pstr->mb_cur_max && i < remain_len; ++i)
+	      {
+		ch = pstr->raw_mbs [pstr->raw_mbs_idx + src_idx + i];
+		buf[i] = pstr->trans[ch];
+	      }
+	    p = (const char *) buf;
+	  }
+	else
+	  p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + src_idx;
+	mbclen = mbrtowc (&wc, p, remain_len, &pstr->cur_state);
+	if (BE (mbclen < (size_t) -2, 1))
+	  {
+	    wchar_t wcu = wc;
+	    if (iswlower (wc))
+	      {
+		size_t mbcdlen;
+
+		wcu = towupper (wc);
+		mbcdlen = wcrtomb ((char *) buf, wcu, &prev_st);
+		if (BE (mbclen == mbcdlen, 1))
+		  memcpy (pstr->mbs + byte_idx, buf, mbclen);
+		else if (mbcdlen != (size_t) -1)
+		  {
+		    size_t i;
+
+		    if (byte_idx + mbcdlen > pstr->bufs_len)
+		      {
+			pstr->cur_state = prev_st;
+			break;
+		      }
+
+		    if (pstr->offsets == NULL)
+		      {
+			pstr->offsets = re_malloc (Idx, pstr->bufs_len);
+
+			if (pstr->offsets == NULL)
+			  return REG_ESPACE;
+		      }
+		    if (!pstr->offsets_needed)
+		      {
+			for (i = 0; i < (size_t) byte_idx; ++i)
+			  pstr->offsets[i] = i;
+			pstr->offsets_needed = 1;
+		      }
+
+		    memcpy (pstr->mbs + byte_idx, buf, mbcdlen);
+		    pstr->wcs[byte_idx] = wcu;
+		    pstr->offsets[byte_idx] = src_idx;
+		    for (i = 1; i < mbcdlen; ++i)
+		      {
+			pstr->offsets[byte_idx + i]
+			  = src_idx + (i < mbclen ? i : mbclen - 1);
+			pstr->wcs[byte_idx + i] = WEOF;
+		      }
+		    pstr->len += mbcdlen - mbclen;
+		    if (pstr->raw_stop > src_idx)
+		      pstr->stop += mbcdlen - mbclen;
+		    end_idx = (pstr->bufs_len > pstr->len)
+			      ? pstr->len : pstr->bufs_len;
+		    byte_idx += mbcdlen;
+		    src_idx += mbclen;
+		    continue;
+		  }
+                else
+                  memcpy (pstr->mbs + byte_idx, p, mbclen);
+	      }
+	    else
+	      memcpy (pstr->mbs + byte_idx, p, mbclen);
+
+	    if (BE (pstr->offsets_needed != 0, 0))
+	      {
+		size_t i;
+		for (i = 0; i < mbclen; ++i)
+		  pstr->offsets[byte_idx + i] = src_idx + i;
+	      }
+	    src_idx += mbclen;
+
+	    pstr->wcs[byte_idx++] = wcu;
+	    /* Write paddings.  */
+	    for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;)
+	      pstr->wcs[byte_idx++] = WEOF;
+	  }
+	else if (mbclen == (size_t) -1 || mbclen == 0)
+	  {
+	    /* It is an invalid character or '\0'.  Just use the byte.  */
+	    int ch = pstr->raw_mbs[pstr->raw_mbs_idx + src_idx];
+
+	    if (BE (pstr->trans != NULL, 0))
+	      ch = pstr->trans [ch];
+	    pstr->mbs[byte_idx] = ch;
+
+	    if (BE (pstr->offsets_needed != 0, 0))
+	      pstr->offsets[byte_idx] = src_idx;
+	    ++src_idx;
+
+	    /* And also cast it to wide char.  */
+	    pstr->wcs[byte_idx++] = (wchar_t) ch;
+	    if (BE (mbclen == (size_t) -1, 0))
+	      pstr->cur_state = prev_st;
+	  }
+	else
+	  {
+	    /* The buffer doesn't have enough space, finish to build.  */
+	    pstr->cur_state = prev_st;
+	    break;
+	  }
+      }
+  pstr->valid_len = byte_idx;
+  pstr->valid_raw_len = src_idx;
+  return REG_NOERROR;
+}
+
+/* Skip characters until the index becomes greater than NEW_RAW_IDX.
+   Return the index.  */
+
+static Idx
+internal_function
+re_string_skip_chars (re_string_t *pstr, Idx new_raw_idx, wint_t *last_wc)
+{
+  mbstate_t prev_st;
+  Idx rawbuf_idx;
+  size_t mbclen;
+  wint_t wc = WEOF;
+
+  /* Skip the characters which are not necessary to check.  */
+  for (rawbuf_idx = pstr->raw_mbs_idx + pstr->valid_raw_len;
+       rawbuf_idx < new_raw_idx;)
+    {
+      wchar_t wc2;
+      Idx remain_len;
+      remain_len = pstr->len - rawbuf_idx;
+      prev_st = pstr->cur_state;
+      mbclen = mbrtowc (&wc2, (const char *) pstr->raw_mbs + rawbuf_idx,
+			remain_len, &pstr->cur_state);
+      if (BE (mbclen == (size_t) -2 || mbclen == (size_t) -1 || mbclen == 0, 0))
+	{
+	  /* We treat these cases as a single byte character.  */
+	  if (mbclen == 0 || remain_len == 0)
+	    wc = L'\0';
+	  else
+	    wc = *(unsigned char *) (pstr->raw_mbs + rawbuf_idx);
+	  mbclen = 1;
+	  pstr->cur_state = prev_st;
+	}
+      else
+	wc = wc2;
+      /* Then proceed the next character.  */
+      rawbuf_idx += mbclen;
+    }
+  *last_wc = wc;
+  return rawbuf_idx;
+}
+#endif /* RE_ENABLE_I18N  */
+
+/* Build the buffer PSTR->MBS, and apply the translation if we need.
+   This function is used in case of REG_ICASE.  */
+
+static void
+internal_function
+build_upper_buffer (re_string_t *pstr)
+{
+  Idx char_idx, end_idx;
+  end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len;
+
+  for (char_idx = pstr->valid_len; char_idx < end_idx; ++char_idx)
+    {
+      int ch = pstr->raw_mbs[pstr->raw_mbs_idx + char_idx];
+      if (BE (pstr->trans != NULL, 0))
+	ch = pstr->trans[ch];
+      if (islower (ch))
+	pstr->mbs[char_idx] = toupper (ch);
+      else
+	pstr->mbs[char_idx] = ch;
+    }
+  pstr->valid_len = char_idx;
+  pstr->valid_raw_len = char_idx;
+}
+
+/* Apply TRANS to the buffer in PSTR.  */
+
+static void
+internal_function
+re_string_translate_buffer (re_string_t *pstr)
+{
+  Idx buf_idx, end_idx;
+  end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len;
+
+  for (buf_idx = pstr->valid_len; buf_idx < end_idx; ++buf_idx)
+    {
+      int ch = pstr->raw_mbs[pstr->raw_mbs_idx + buf_idx];
+      pstr->mbs[buf_idx] = pstr->trans[ch];
+    }
+
+  pstr->valid_len = buf_idx;
+  pstr->valid_raw_len = buf_idx;
+}
+
+/* This function re-construct the buffers.
+   Concretely, convert to wide character in case of pstr->mb_cur_max > 1,
+   convert to upper case in case of REG_ICASE, apply translation.  */
+
+static reg_errcode_t
+internal_function
+re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags)
+{
+  Idx offset;
+
+  if (BE (pstr->raw_mbs_idx <= idx, 0))
+    offset = idx - pstr->raw_mbs_idx;
+  else
+    {
+      /* Reset buffer.  */
+#ifdef RE_ENABLE_I18N
+      if (pstr->mb_cur_max > 1)
+	memset (&pstr->cur_state, '\0', sizeof (mbstate_t));
+#endif /* RE_ENABLE_I18N */
+      pstr->len = pstr->raw_len;
+      pstr->stop = pstr->raw_stop;
+      pstr->valid_len = 0;
+      pstr->raw_mbs_idx = 0;
+      pstr->valid_raw_len = 0;
+      pstr->offsets_needed = 0;
+      pstr->tip_context = ((eflags & REG_NOTBOL) ? CONTEXT_BEGBUF
+			   : CONTEXT_NEWLINE | CONTEXT_BEGBUF);
+      if (!pstr->mbs_allocated)
+	pstr->mbs = (unsigned char *) pstr->raw_mbs;
+      offset = idx;
+    }
+
+  if (BE (offset != 0, 1))
+    {
+      /* Should the already checked characters be kept?  */
+      if (BE (offset < pstr->valid_raw_len, 1))
+	{
+	  /* Yes, move them to the front of the buffer.  */
+#ifdef RE_ENABLE_I18N
+	  if (BE (pstr->offsets_needed, 0))
+	    {
+	      Idx low = 0, high = pstr->valid_len, mid;
+	      do
+		{
+		  mid = (high + low) / 2;
+		  if (pstr->offsets[mid] > offset)
+		    high = mid;
+		  else if (pstr->offsets[mid] < offset)
+		    low = mid + 1;
+		  else
+		    break;
+		}
+	      while (low < high);
+	      if (pstr->offsets[mid] < offset)
+		++mid;
+	      pstr->tip_context = re_string_context_at (pstr, mid - 1,
+							eflags);
+	      /* This can be quite complicated, so handle specially
+		 only the common and easy case where the character with
+		 different length representation of lower and upper
+		 case is present at or after offset.  */
+	      if (pstr->valid_len > offset
+		  && mid == offset && pstr->offsets[mid] == offset)
+		{
+		  memmove (pstr->wcs, pstr->wcs + offset,
+			   (pstr->valid_len - offset) * sizeof (wint_t));
+		  memmove (pstr->mbs, pstr->mbs + offset, pstr->valid_len - offset);
+		  pstr->valid_len -= offset;
+		  pstr->valid_raw_len -= offset;
+		  for (low = 0; low < pstr->valid_len; low++)
+		    pstr->offsets[low] = pstr->offsets[low + offset] - offset;
+		}
+	      else
+		{
+		  /* Otherwise, just find out how long the partial multibyte
+		     character at offset is and fill it with WEOF/255.  */
+		  pstr->len = pstr->raw_len - idx + offset;
+		  pstr->stop = pstr->raw_stop - idx + offset;
+		  pstr->offsets_needed = 0;
+		  while (mid > 0 && pstr->offsets[mid - 1] == offset)
+		    --mid;
+		  while (mid < pstr->valid_len)
+		    if (pstr->wcs[mid] != WEOF)
+		      break;
+		    else
+		      ++mid;
+		  if (mid == pstr->valid_len)
+		    pstr->valid_len = 0;
+		  else
+		    {
+		      pstr->valid_len = pstr->offsets[mid] - offset;
+		      if (pstr->valid_len)
+			{
+			  for (low = 0; low < pstr->valid_len; ++low)
+			    pstr->wcs[low] = WEOF;
+			  memset (pstr->mbs, 255, pstr->valid_len);
+			}
+		    }
+		  pstr->valid_raw_len = pstr->valid_len;
+		}
+	    }
+	  else
+#endif
+	    {
+	      pstr->tip_context = re_string_context_at (pstr, offset - 1,
+							eflags);
+#ifdef RE_ENABLE_I18N
+	      if (pstr->mb_cur_max > 1)
+		memmove (pstr->wcs, pstr->wcs + offset,
+			 (pstr->valid_len - offset) * sizeof (wint_t));
+#endif /* RE_ENABLE_I18N */
+	      if (BE (pstr->mbs_allocated, 0))
+		memmove (pstr->mbs, pstr->mbs + offset,
+			 pstr->valid_len - offset);
+	      pstr->valid_len -= offset;
+	      pstr->valid_raw_len -= offset;
+#if DEBUG
+	      assert (pstr->valid_len > 0);
+#endif
+	    }
+	}
+      else
+	{
+	  /* No, skip all characters until IDX.  */
+	  Idx prev_valid_len = pstr->valid_len;
+
+#ifdef RE_ENABLE_I18N
+	  if (BE (pstr->offsets_needed, 0))
+	    {
+	      pstr->len = pstr->raw_len - idx + offset;
+	      pstr->stop = pstr->raw_stop - idx + offset;
+	      pstr->offsets_needed = 0;
+	    }
+#endif
+	  pstr->valid_len = 0;
+#ifdef RE_ENABLE_I18N
+	  if (pstr->mb_cur_max > 1)
+	    {
+	      Idx wcs_idx;
+	      wint_t wc = WEOF;
+
+	      if (pstr->is_utf8)
+		{
+		  const unsigned char *raw, *p, *end;
+
+		  /* Special case UTF-8.  Multi-byte chars start with any
+		     byte other than 0x80 - 0xbf.  */
+		  raw = pstr->raw_mbs + pstr->raw_mbs_idx;
+		  end = raw + (offset - pstr->mb_cur_max);
+		  if (end < pstr->raw_mbs)
+		    end = pstr->raw_mbs;
+		  p = raw + offset - 1;
+#ifdef _LIBC
+		  /* We know the wchar_t encoding is UCS4, so for the simple
+		     case, ASCII characters, skip the conversion step.  */
+		  if (isascii (*p) && BE (pstr->trans == NULL, 1))
+		    {
+		      memset (&pstr->cur_state, '\0', sizeof (mbstate_t));
+		      /* pstr->valid_len = 0; */
+		      wc = (wchar_t) *p;
+		    }
+		  else
+#endif
+		    for (; p >= end; --p)
+		      if ((*p & 0xc0) != 0x80)
+			{
+			  mbstate_t cur_state;
+			  wchar_t wc2;
+			  Idx mlen = raw + pstr->len - p;
+			  unsigned char buf[6];
+			  size_t mbclen;
+
+			  if (BE (pstr->trans != NULL, 0))
+			    {
+			      int i = mlen < 6 ? mlen : 6;
+			      while (--i >= 0)
+				buf[i] = pstr->trans[p[i]];
+			    }
+			  /* XXX Don't use mbrtowc, we know which conversion
+			     to use (UTF-8 -> UCS4).  */
+			  memset (&cur_state, 0, sizeof (cur_state));
+			  mbclen = mbrtowc (&wc2, (const char *) p, mlen,
+					    &cur_state);
+			  if (raw + offset - p <= mbclen
+			      && mbclen < (size_t) -2)
+			    {
+			      memset (&pstr->cur_state, '\0',
+				      sizeof (mbstate_t));
+			      pstr->valid_len = mbclen - (raw + offset - p);
+			      wc = wc2;
+			    }
+			  break;
+			}
+		}
+
+	      if (wc == WEOF)
+		pstr->valid_len = re_string_skip_chars (pstr, idx, &wc) - idx;
+	      if (wc == WEOF)
+		pstr->tip_context
+		  = re_string_context_at (pstr, prev_valid_len - 1, eflags);
+	      else
+		pstr->tip_context = ((BE (pstr->word_ops_used != 0, 0)
+				      && IS_WIDE_WORD_CHAR (wc))
+				     ? CONTEXT_WORD
+				     : ((IS_WIDE_NEWLINE (wc)
+					 && pstr->newline_anchor)
+					? CONTEXT_NEWLINE : 0));
+	      if (BE (pstr->valid_len, 0))
+		{
+		  for (wcs_idx = 0; wcs_idx < pstr->valid_len; ++wcs_idx)
+		    pstr->wcs[wcs_idx] = WEOF;
+		  if (pstr->mbs_allocated)
+		    memset (pstr->mbs, 255, pstr->valid_len);
+		}
+	      pstr->valid_raw_len = pstr->valid_len;
+	    }
+	  else
+#endif /* RE_ENABLE_I18N */
+	    {
+	      int c = pstr->raw_mbs[pstr->raw_mbs_idx + offset - 1];
+	      pstr->valid_raw_len = 0;
+	      if (pstr->trans)
+		c = pstr->trans[c];
+	      pstr->tip_context = (bitset_contain (pstr->word_char, c)
+				   ? CONTEXT_WORD
+				   : ((IS_NEWLINE (c) && pstr->newline_anchor)
+				      ? CONTEXT_NEWLINE : 0));
+	    }
+	}
+      if (!BE (pstr->mbs_allocated, 0))
+	pstr->mbs += offset;
+    }
+  pstr->raw_mbs_idx = idx;
+  pstr->len -= offset;
+  pstr->stop -= offset;
+
+  /* Then build the buffers.  */
+#ifdef RE_ENABLE_I18N
+  if (pstr->mb_cur_max > 1)
+    {
+      if (pstr->icase)
+	{
+	  reg_errcode_t ret = build_wcs_upper_buffer (pstr);
+	  if (BE (ret != REG_NOERROR, 0))
+	    return ret;
+	}
+      else
+	build_wcs_buffer (pstr);
+    }
+  else
+#endif /* RE_ENABLE_I18N */
+    if (BE (pstr->mbs_allocated, 0))
+      {
+	if (pstr->icase)
+	  build_upper_buffer (pstr);
+	else if (pstr->trans != NULL)
+	  re_string_translate_buffer (pstr);
+      }
+    else
+      pstr->valid_len = pstr->len;
+
+  pstr->cur_idx = 0;
+  return REG_NOERROR;
+}
+
+static unsigned char
+internal_function __attribute ((pure))
+re_string_peek_byte_case (const re_string_t *pstr, Idx idx)
+{
+  int ch;
+  Idx off;
+
+  /* Handle the common (easiest) cases first.  */
+  if (BE (!pstr->mbs_allocated, 1))
+    return re_string_peek_byte (pstr, idx);
+
+#ifdef RE_ENABLE_I18N
+  if (pstr->mb_cur_max > 1
+      && ! re_string_is_single_byte_char (pstr, pstr->cur_idx + idx))
+    return re_string_peek_byte (pstr, idx);
+#endif
+
+  off = pstr->cur_idx + idx;
+#ifdef RE_ENABLE_I18N
+  if (pstr->offsets_needed)
+    off = pstr->offsets[off];
+#endif
+
+  ch = pstr->raw_mbs[pstr->raw_mbs_idx + off];
+
+#ifdef RE_ENABLE_I18N
+  /* Ensure that e.g. for tr_TR.UTF-8 BACKSLASH DOTLESS SMALL LETTER I
+     this function returns CAPITAL LETTER I instead of first byte of
+     DOTLESS SMALL LETTER I.  The latter would confuse the parser,
+     since peek_byte_case doesn't advance cur_idx in any way.  */
+  if (pstr->offsets_needed && !isascii (ch))
+    return re_string_peek_byte (pstr, idx);
+#endif
+
+  return ch;
+}
+
+static unsigned char
+internal_function __attribute ((pure))
+re_string_fetch_byte_case (re_string_t *pstr)
+{
+  if (BE (!pstr->mbs_allocated, 1))
+    return re_string_fetch_byte (pstr);
+
+#ifdef RE_ENABLE_I18N
+  if (pstr->offsets_needed)
+    {
+      Idx off;
+      int ch;
+
+      /* For tr_TR.UTF-8 [[:islower:]] there is
+	 [[: CAPITAL LETTER I WITH DOT lower:]] in mbs.  Skip
+	 in that case the whole multi-byte character and return
+	 the original letter.  On the other side, with
+	 [[: DOTLESS SMALL LETTER I return [[:I, as doing
+	 anything else would complicate things too much.  */
+
+      if (!re_string_first_byte (pstr, pstr->cur_idx))
+	return re_string_fetch_byte (pstr);
+
+      off = pstr->offsets[pstr->cur_idx];
+      ch = pstr->raw_mbs[pstr->raw_mbs_idx + off];
+
+      if (! isascii (ch))
+	return re_string_fetch_byte (pstr);
+
+      re_string_skip_bytes (pstr,
+			    re_string_char_size_at (pstr, pstr->cur_idx));
+      return ch;
+    }
+#endif
+
+  return pstr->raw_mbs[pstr->raw_mbs_idx + pstr->cur_idx++];
+}
+
+static void
+internal_function
+re_string_destruct (re_string_t *pstr)
+{
+#ifdef RE_ENABLE_I18N
+  re_free (pstr->wcs);
+  re_free (pstr->offsets);
+#endif /* RE_ENABLE_I18N  */
+  if (pstr->mbs_allocated)
+    re_free (pstr->mbs);
+}
+
+/* Return the context at IDX in INPUT.  */
+
+static unsigned int
+internal_function
+re_string_context_at (const re_string_t *input, Idx idx, int eflags)
+{
+  int c;
+  if (BE (! REG_VALID_INDEX (idx), 0))
+    /* In this case, we use the value stored in input->tip_context,
+       since we can't know the character in input->mbs[-1] here.  */
+    return input->tip_context;
+  if (BE (idx == input->len, 0))
+    return ((eflags & REG_NOTEOL) ? CONTEXT_ENDBUF
+	    : CONTEXT_NEWLINE | CONTEXT_ENDBUF);
+#ifdef RE_ENABLE_I18N
+  if (input->mb_cur_max > 1)
+    {
+      wint_t wc;
+      Idx wc_idx = idx;
+      while(input->wcs[wc_idx] == WEOF)
+	{
+#ifdef DEBUG
+	  /* It must not happen.  */
+	  assert (REG_VALID_INDEX (wc_idx));
+#endif
+	  --wc_idx;
+	  if (! REG_VALID_INDEX (wc_idx))
+	    return input->tip_context;
+	}
+      wc = input->wcs[wc_idx];
+      if (BE (input->word_ops_used != 0, 0) && IS_WIDE_WORD_CHAR (wc))
+	return CONTEXT_WORD;
+      return (IS_WIDE_NEWLINE (wc) && input->newline_anchor
+	      ? CONTEXT_NEWLINE : 0);
+    }
+  else
+#endif
+    {
+      c = re_string_byte_at (input, idx);
+      if (bitset_contain (input->word_char, c))
+	return CONTEXT_WORD;
+      return IS_NEWLINE (c) && input->newline_anchor ? CONTEXT_NEWLINE : 0;
+    }
+}
+
+/* Functions for set operation.  */
+
+static reg_errcode_t
+internal_function
+re_node_set_alloc (re_node_set *set, Idx size)
+{
+  set->alloc = size;
+  set->nelem = 0;
+  set->elems = re_malloc (Idx, size);
+  if (BE (set->elems == NULL, 0))
+    return REG_ESPACE;
+  return REG_NOERROR;
+}
+
+static reg_errcode_t
+internal_function
+re_node_set_init_1 (re_node_set *set, Idx elem)
+{
+  set->alloc = 1;
+  set->nelem = 1;
+  set->elems = re_malloc (Idx, 1);
+  if (BE (set->elems == NULL, 0))
+    {
+      set->alloc = set->nelem = 0;
+      return REG_ESPACE;
+    }
+  set->elems[0] = elem;
+  return REG_NOERROR;
+}
+
+static reg_errcode_t
+internal_function
+re_node_set_init_2 (re_node_set *set, Idx elem1, Idx elem2)
+{
+  set->alloc = 2;
+  set->elems = re_malloc (Idx, 2);
+  if (BE (set->elems == NULL, 0))
+    return REG_ESPACE;
+  if (elem1 == elem2)
+    {
+      set->nelem = 1;
+      set->elems[0] = elem1;
+    }
+  else
+    {
+      set->nelem = 2;
+      if (elem1 < elem2)
+	{
+	  set->elems[0] = elem1;
+	  set->elems[1] = elem2;
+	}
+      else
+	{
+	  set->elems[0] = elem2;
+	  set->elems[1] = elem1;
+	}
+    }
+  return REG_NOERROR;
+}
+
+static reg_errcode_t
+internal_function
+re_node_set_init_copy (re_node_set *dest, const re_node_set *src)
+{
+  dest->nelem = src->nelem;
+  if (src->nelem > 0)
+    {
+      dest->alloc = dest->nelem;
+      dest->elems = re_malloc (Idx, dest->alloc);
+      if (BE (dest->elems == NULL, 0))
+	{
+	  dest->alloc = dest->nelem = 0;
+	  return REG_ESPACE;
+	}
+      memcpy (dest->elems, src->elems, src->nelem * sizeof (Idx));
+    }
+  else
+    re_node_set_init_empty (dest);
+  return REG_NOERROR;
+}
+
+/* Calculate the intersection of the sets SRC1 and SRC2. And merge it to
+   DEST. Return value indicate the error code or REG_NOERROR if succeeded.
+   Note: We assume dest->elems is NULL, when dest->alloc is 0.  */
+
+static reg_errcode_t
+internal_function
+re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1,
+			   const re_node_set *src2)
+{
+  Idx i1, i2, is, id, delta, sbase;
+  if (src1->nelem == 0 || src2->nelem == 0)
+    return REG_NOERROR;
+
+  /* We need dest->nelem + 2 * elems_in_intersection; this is a
+     conservative estimate.  */
+  if (src1->nelem + src2->nelem + dest->nelem > dest->alloc)
+    {
+      Idx new_alloc = src1->nelem + src2->nelem + dest->alloc;
+      Idx *new_elems = re_realloc (dest->elems, Idx, new_alloc);
+      if (BE (new_elems == NULL, 0))
+        return REG_ESPACE;
+      dest->elems = new_elems;
+      dest->alloc = new_alloc;
+    }
+
+  /* Find the items in the intersection of SRC1 and SRC2, and copy
+     into the top of DEST those that are not already in DEST itself.  */
+  sbase = dest->nelem + src1->nelem + src2->nelem;
+  i1 = src1->nelem - 1;
+  i2 = src2->nelem - 1;
+  id = dest->nelem - 1;
+  for (;;)
+    {
+      if (src1->elems[i1] == src2->elems[i2])
+	{
+	  /* Try to find the item in DEST.  Maybe we could binary search?  */
+	  while (REG_VALID_INDEX (id) && dest->elems[id] > src1->elems[i1])
+	    --id;
+
+          if (! REG_VALID_INDEX (id) || dest->elems[id] != src1->elems[i1])
+            dest->elems[--sbase] = src1->elems[i1];
+
+	  if (! REG_VALID_INDEX (--i1) || ! REG_VALID_INDEX (--i2))
+	    break;
+	}
+
+      /* Lower the highest of the two items.  */
+      else if (src1->elems[i1] < src2->elems[i2])
+	{
+	  if (! REG_VALID_INDEX (--i2))
+	    break;
+	}
+      else
+	{
+	  if (! REG_VALID_INDEX (--i1))
+	    break;
+	}
+    }
+
+  id = dest->nelem - 1;
+  is = dest->nelem + src1->nelem + src2->nelem - 1;
+  delta = is - sbase + 1;
+
+  /* Now copy.  When DELTA becomes zero, the remaining
+     DEST elements are already in place; this is more or
+     less the same loop that is in re_node_set_merge.  */
+  dest->nelem += delta;
+  if (delta > 0 && REG_VALID_INDEX (id))
+    for (;;)
+      {
+        if (dest->elems[is] > dest->elems[id])
+          {
+            /* Copy from the top.  */
+            dest->elems[id + delta--] = dest->elems[is--];
+            if (delta == 0)
+              break;
+          }
+        else
+          {
+            /* Slide from the bottom.  */
+            dest->elems[id + delta] = dest->elems[id];
+            if (! REG_VALID_INDEX (--id))
+              break;
+          }
+      }
+
+  /* Copy remaining SRC elements.  */
+  memcpy (dest->elems, dest->elems + sbase, delta * sizeof (Idx));
+
+  return REG_NOERROR;
+}
+
+/* Calculate the union set of the sets SRC1 and SRC2. And store it to
+   DEST. Return value indicate the error code or REG_NOERROR if succeeded.  */
+
+static reg_errcode_t
+internal_function
+re_node_set_init_union (re_node_set *dest, const re_node_set *src1,
+			const re_node_set *src2)
+{
+  Idx i1, i2, id;
+  if (src1 != NULL && src1->nelem > 0 && src2 != NULL && src2->nelem > 0)
+    {
+      dest->alloc = src1->nelem + src2->nelem;
+      dest->elems = re_malloc (Idx, dest->alloc);
+      if (BE (dest->elems == NULL, 0))
+	return REG_ESPACE;
+    }
+  else
+    {
+      if (src1 != NULL && src1->nelem > 0)
+	return re_node_set_init_copy (dest, src1);
+      else if (src2 != NULL && src2->nelem > 0)
+	return re_node_set_init_copy (dest, src2);
+      else
+	re_node_set_init_empty (dest);
+      return REG_NOERROR;
+    }
+  for (i1 = i2 = id = 0 ; i1 < src1->nelem && i2 < src2->nelem ;)
+    {
+      if (src1->elems[i1] > src2->elems[i2])
+	{
+	  dest->elems[id++] = src2->elems[i2++];
+	  continue;
+	}
+      if (src1->elems[i1] == src2->elems[i2])
+	++i2;
+      dest->elems[id++] = src1->elems[i1++];
+    }
+  if (i1 < src1->nelem)
+    {
+      memcpy (dest->elems + id, src1->elems + i1,
+	     (src1->nelem - i1) * sizeof (Idx));
+      id += src1->nelem - i1;
+    }
+  else if (i2 < src2->nelem)
+    {
+      memcpy (dest->elems + id, src2->elems + i2,
+	     (src2->nelem - i2) * sizeof (Idx));
+      id += src2->nelem - i2;
+    }
+  dest->nelem = id;
+  return REG_NOERROR;
+}
+
+/* Calculate the union set of the sets DEST and SRC. And store it to
+   DEST. Return value indicate the error code or REG_NOERROR if succeeded.  */
+
+static reg_errcode_t
+internal_function
+re_node_set_merge (re_node_set *dest, const re_node_set *src)
+{
+  Idx is, id, sbase, delta;
+  if (src == NULL || src->nelem == 0)
+    return REG_NOERROR;
+  if (dest->alloc < 2 * src->nelem + dest->nelem)
+    {
+      Idx new_alloc = 2 * (src->nelem + dest->alloc);
+      Idx *new_buffer = re_realloc (dest->elems, Idx, new_alloc);
+      if (BE (new_buffer == NULL, 0))
+	return REG_ESPACE;
+      dest->elems = new_buffer;
+      dest->alloc = new_alloc;
+    }
+
+  if (BE (dest->nelem == 0, 0))
+    {
+      dest->nelem = src->nelem;
+      memcpy (dest->elems, src->elems, src->nelem * sizeof (Idx));
+      return REG_NOERROR;
+    }
+
+  /* Copy into the top of DEST the items of SRC that are not
+     found in DEST.  Maybe we could binary search in DEST?  */
+  for (sbase = dest->nelem + 2 * src->nelem,
+       is = src->nelem - 1, id = dest->nelem - 1;
+       REG_VALID_INDEX (is) && REG_VALID_INDEX (id); )
+    {
+      if (dest->elems[id] == src->elems[is])
+        is--, id--;
+      else if (dest->elems[id] < src->elems[is])
+        dest->elems[--sbase] = src->elems[is--];
+      else /* if (dest->elems[id] > src->elems[is]) */
+        --id;
+    }
+
+  if (REG_VALID_INDEX (is))
+    {
+      /* If DEST is exhausted, the remaining items of SRC must be unique.  */
+      sbase -= is + 1;
+      memcpy (dest->elems + sbase, src->elems, (is + 1) * sizeof (Idx));
+    }
+
+  id = dest->nelem - 1;
+  is = dest->nelem + 2 * src->nelem - 1;
+  delta = is - sbase + 1;
+  if (delta == 0)
+    return REG_NOERROR;
+
+  /* Now copy.  When DELTA becomes zero, the remaining
+     DEST elements are already in place.  */
+  dest->nelem += delta;
+  for (;;)
+    {
+      if (dest->elems[is] > dest->elems[id])
+        {
+	  /* Copy from the top.  */
+          dest->elems[id + delta--] = dest->elems[is--];
+	  if (delta == 0)
+	    break;
+	}
+      else
+        {
+          /* Slide from the bottom.  */
+          dest->elems[id + delta] = dest->elems[id];
+	  if (! REG_VALID_INDEX (--id))
+	    {
+	      /* Copy remaining SRC elements.  */
+	      memcpy (dest->elems, dest->elems + sbase,
+	              delta * sizeof (Idx));
+	      break;
+	    }
+	}
+    }
+
+  return REG_NOERROR;
+}
+
+/* Insert the new element ELEM to the re_node_set* SET.
+   SET should not already have ELEM.
+   Return true if successful.  */
+
+static bool
+internal_function
+re_node_set_insert (re_node_set *set, Idx elem)
+{
+  Idx idx;
+  /* In case the set is empty.  */
+  if (set->alloc == 0)
+    return BE (re_node_set_init_1 (set, elem) == REG_NOERROR, 1);
+
+  if (BE (set->nelem, 0) == 0)
+    {
+      /* We already guaranteed above that set->alloc != 0.  */
+      set->elems[0] = elem;
+      ++set->nelem;
+      return true;
+    }
+
+  /* Realloc if we need.  */
+  if (set->alloc == set->nelem)
+    {
+      Idx *new_elems;
+      set->alloc = set->alloc * 2;
+      new_elems = re_realloc (set->elems, Idx, set->alloc);
+      if (BE (new_elems == NULL, 0))
+	return false;
+      set->elems = new_elems;
+    }
+
+  /* Move the elements which follows the new element.  Test the
+     first element separately to skip a check in the inner loop.  */
+  if (elem < set->elems[0])
+    {
+      idx = 0;
+      for (idx = set->nelem; idx > 0; idx--)
+        set->elems[idx] = set->elems[idx - 1];
+    }
+  else
+    {
+      for (idx = set->nelem; set->elems[idx - 1] > elem; idx--)
+        set->elems[idx] = set->elems[idx - 1];
+    }
+
+  /* Insert the new element.  */
+  set->elems[idx] = elem;
+  ++set->nelem;
+  return true;
+}
+
+/* Insert the new element ELEM to the re_node_set* SET.
+   SET should not already have any element greater than or equal to ELEM.
+   Return true if successful.  */
+
+static bool
+internal_function
+re_node_set_insert_last (re_node_set *set, Idx elem)
+{
+  /* Realloc if we need.  */
+  if (set->alloc == set->nelem)
+    {
+      Idx *new_elems;
+      set->alloc = (set->alloc + 1) * 2;
+      new_elems = re_realloc (set->elems, Idx, set->alloc);
+      if (BE (new_elems == NULL, 0))
+	return false;
+      set->elems = new_elems;
+    }
+
+  /* Insert the new element.  */
+  set->elems[set->nelem++] = elem;
+  return true;
+}
+
+/* Compare two node sets SET1 and SET2.
+   Return true if SET1 and SET2 are equivalent.  */
+
+static bool
+internal_function __attribute ((pure))
+re_node_set_compare (const re_node_set *set1, const re_node_set *set2)
+{
+  Idx i;
+  if (set1 == NULL || set2 == NULL || set1->nelem != set2->nelem)
+    return false;
+  for (i = set1->nelem ; REG_VALID_INDEX (--i) ; )
+    if (set1->elems[i] != set2->elems[i])
+      return false;
+  return true;
+}
+
+/* Return (idx + 1) if SET contains the element ELEM, return 0 otherwise.  */
+
+static Idx
+internal_function __attribute ((pure))
+re_node_set_contains (const re_node_set *set, Idx elem)
+{
+  __re_size_t idx, right, mid;
+  if (! REG_VALID_NONZERO_INDEX (set->nelem))
+    return 0;
+
+  /* Binary search the element.  */
+  idx = 0;
+  right = set->nelem - 1;
+  while (idx < right)
+    {
+      mid = (idx + right) / 2;
+      if (set->elems[mid] < elem)
+	idx = mid + 1;
+      else
+	right = mid;
+    }
+  return set->elems[idx] == elem ? idx + 1 : 0;
+}
+
+static void
+internal_function
+re_node_set_remove_at (re_node_set *set, Idx idx)
+{
+  if (idx < 0 || idx >= set->nelem)
+    return;
+  --set->nelem;
+  for (; idx < set->nelem; idx++)
+    set->elems[idx] = set->elems[idx + 1];
+}
+
+
+/* Add the token TOKEN to dfa->nodes, and return the index of the token.
+   Or return REG_MISSING if an error occurred.  */
+
+static Idx
+internal_function
+re_dfa_add_node (re_dfa_t *dfa, re_token_t token)
+{
+  if (BE (dfa->nodes_len >= dfa->nodes_alloc, 0))
+    {
+      size_t new_nodes_alloc = dfa->nodes_alloc * 2;
+      Idx *new_nexts, *new_indices;
+      re_node_set *new_edests, *new_eclosures;
+      re_token_t *new_nodes;
+      size_t max_object_size =
+	MAX (sizeof (re_token_t),
+	     MAX (sizeof (re_node_set),
+		  sizeof (Idx)));
+
+      /* Avoid overflows.  */
+      if (BE (SIZE_MAX / 2 / max_object_size < dfa->nodes_alloc, 0))
+	return REG_MISSING;
+
+      new_nodes = re_realloc (dfa->nodes, re_token_t, new_nodes_alloc);
+      if (BE (new_nodes == NULL, 0))
+	return REG_MISSING;
+      dfa->nodes = new_nodes;
+      new_nexts = re_realloc (dfa->nexts, Idx, new_nodes_alloc);
+      new_indices = re_realloc (dfa->org_indices, Idx, new_nodes_alloc);
+      new_edests = re_realloc (dfa->edests, re_node_set, new_nodes_alloc);
+      new_eclosures = re_realloc (dfa->eclosures, re_node_set, new_nodes_alloc);
+      if (BE (new_nexts == NULL || new_indices == NULL
+	      || new_edests == NULL || new_eclosures == NULL, 0))
+	return REG_MISSING;
+      dfa->nexts = new_nexts;
+      dfa->org_indices = new_indices;
+      dfa->edests = new_edests;
+      dfa->eclosures = new_eclosures;
+      dfa->nodes_alloc = new_nodes_alloc;
+    }
+  dfa->nodes[dfa->nodes_len] = token;
+  dfa->nodes[dfa->nodes_len].constraint = 0;
+#ifdef RE_ENABLE_I18N
+  {
+  int type = token.type;
+  dfa->nodes[dfa->nodes_len].accept_mb =
+    (type == OP_PERIOD && dfa->mb_cur_max > 1) || type == COMPLEX_BRACKET;
+  }
+#endif
+  dfa->nexts[dfa->nodes_len] = REG_MISSING;
+  re_node_set_init_empty (dfa->edests + dfa->nodes_len);
+  re_node_set_init_empty (dfa->eclosures + dfa->nodes_len);
+  return dfa->nodes_len++;
+}
+
+static inline re_hashval_t
+internal_function
+calc_state_hash (const re_node_set *nodes, unsigned int context)
+{
+  re_hashval_t hash = nodes->nelem + context;
+  Idx i;
+  for (i = 0 ; i < nodes->nelem ; i++)
+    hash += nodes->elems[i];
+  return hash;
+}
+
+/* Search for the state whose node_set is equivalent to NODES.
+   Return the pointer to the state, if we found it in the DFA.
+   Otherwise create the new one and return it.  In case of an error
+   return NULL and set the error code in ERR.
+   Note: - We assume NULL as the invalid state, then it is possible that
+	   return value is NULL and ERR is REG_NOERROR.
+	 - We never return non-NULL value in case of any errors, it is for
+	   optimization.  */
+
+static re_dfastate_t *
+internal_function
+re_acquire_state (reg_errcode_t *err, const re_dfa_t *dfa,
+		  const re_node_set *nodes)
+{
+  re_hashval_t hash;
+  re_dfastate_t *new_state;
+  struct re_state_table_entry *spot;
+  Idx i;
+#ifdef lint
+  /* Suppress bogus uninitialized-variable warnings.  */
+  *err = REG_NOERROR;
+#endif
+  if (BE (nodes->nelem == 0, 0))
+    {
+      *err = REG_NOERROR;
+      return NULL;
+    }
+  hash = calc_state_hash (nodes, 0);
+  spot = dfa->state_table + (hash & dfa->state_hash_mask);
+
+  for (i = 0 ; i < spot->num ; i++)
+    {
+      re_dfastate_t *state = spot->array[i];
+      if (hash != state->hash)
+	continue;
+      if (re_node_set_compare (&state->nodes, nodes))
+	return state;
+    }
+
+  /* There are no appropriate state in the dfa, create the new one.  */
+  new_state = create_ci_newstate (dfa, nodes, hash);
+  if (BE (new_state == NULL, 0))
+    *err = REG_ESPACE;
+
+  return new_state;
+}
+
+/* Search for the state whose node_set is equivalent to NODES and
+   whose context is equivalent to CONTEXT.
+   Return the pointer to the state, if we found it in the DFA.
+   Otherwise create the new one and return it.  In case of an error
+   return NULL and set the error code in ERR.
+   Note: - We assume NULL as the invalid state, then it is possible that
+	   return value is NULL and ERR is REG_NOERROR.
+	 - We never return non-NULL value in case of any errors, it is for
+	   optimization.  */
+
+static re_dfastate_t *
+internal_function
+re_acquire_state_context (reg_errcode_t *err, const re_dfa_t *dfa,
+			  const re_node_set *nodes, unsigned int context)
+{
+  re_hashval_t hash;
+  re_dfastate_t *new_state;
+  struct re_state_table_entry *spot;
+  Idx i;
+#ifdef lint
+  /* Suppress bogus uninitialized-variable warnings.  */
+  *err = REG_NOERROR;
+#endif
+  if (nodes->nelem == 0)
+    {
+      *err = REG_NOERROR;
+      return NULL;
+    }
+  hash = calc_state_hash (nodes, context);
+  spot = dfa->state_table + (hash & dfa->state_hash_mask);
+
+  for (i = 0 ; i < spot->num ; i++)
+    {
+      re_dfastate_t *state = spot->array[i];
+      if (state->hash == hash
+	  && state->context == context
+	  && re_node_set_compare (state->entrance_nodes, nodes))
+	return state;
+    }
+  /* There are no appropriate state in `dfa', create the new one.  */
+  new_state = create_cd_newstate (dfa, nodes, context, hash);
+  if (BE (new_state == NULL, 0))
+    *err = REG_ESPACE;
+
+  return new_state;
+}
+
+/* Finish initialization of the new state NEWSTATE, and using its hash value
+   HASH put in the appropriate bucket of DFA's state table.  Return value
+   indicates the error code if failed.  */
+
+static reg_errcode_t
+register_state (const re_dfa_t *dfa, re_dfastate_t *newstate,
+		re_hashval_t hash)
+{
+  struct re_state_table_entry *spot;
+  reg_errcode_t err;
+  Idx i;
+
+  newstate->hash = hash;
+  err = re_node_set_alloc (&newstate->non_eps_nodes, newstate->nodes.nelem);
+  if (BE (err != REG_NOERROR, 0))
+    return REG_ESPACE;
+  for (i = 0; i < newstate->nodes.nelem; i++)
+    {
+      Idx elem = newstate->nodes.elems[i];
+      if (!IS_EPSILON_NODE (dfa->nodes[elem].type))
+	if (BE (! re_node_set_insert_last (&newstate->non_eps_nodes, elem), 0))
+	  return REG_ESPACE;
+    }
+
+  spot = dfa->state_table + (hash & dfa->state_hash_mask);
+  if (BE (spot->alloc <= spot->num, 0))
+    {
+      Idx new_alloc = 2 * spot->num + 2;
+      re_dfastate_t **new_array = re_realloc (spot->array, re_dfastate_t *,
+					      new_alloc);
+      if (BE (new_array == NULL, 0))
+	return REG_ESPACE;
+      spot->array = new_array;
+      spot->alloc = new_alloc;
+    }
+  spot->array[spot->num++] = newstate;
+  return REG_NOERROR;
+}
+
+static void
+free_state (re_dfastate_t *state)
+{
+  re_node_set_free (&state->non_eps_nodes);
+  re_node_set_free (&state->inveclosure);
+  if (state->entrance_nodes != &state->nodes)
+    {
+      re_node_set_free (state->entrance_nodes);
+      re_free (state->entrance_nodes);
+    }
+  re_node_set_free (&state->nodes);
+  re_free (state->word_trtable);
+  re_free (state->trtable);
+  re_free (state);
+}
+
+/* Create the new state which is independ of contexts.
+   Return the new state if succeeded, otherwise return NULL.  */
+
+static re_dfastate_t *
+internal_function
+create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes,
+		    re_hashval_t hash)
+{
+  Idx i;
+  reg_errcode_t err;
+  re_dfastate_t *newstate;
+
+  newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1);
+  if (BE (newstate == NULL, 0))
+    return NULL;
+  err = re_node_set_init_copy (&newstate->nodes, nodes);
+  if (BE (err != REG_NOERROR, 0))
+    {
+      re_free (newstate);
+      return NULL;
+    }
+
+  newstate->entrance_nodes = &newstate->nodes;
+  for (i = 0 ; i < nodes->nelem ; i++)
+    {
+      re_token_t *node = dfa->nodes + nodes->elems[i];
+      re_token_type_t type = node->type;
+      if (type == CHARACTER && !node->constraint)
+	continue;
+#ifdef RE_ENABLE_I18N
+      newstate->accept_mb |= node->accept_mb;
+#endif /* RE_ENABLE_I18N */
+
+      /* If the state has the halt node, the state is a halt state.  */
+      if (type == END_OF_RE)
+	newstate->halt = 1;
+      else if (type == OP_BACK_REF)
+	newstate->has_backref = 1;
+      else if (type == ANCHOR || node->constraint)
+	newstate->has_constraint = 1;
+    }
+  err = register_state (dfa, newstate, hash);
+  if (BE (err != REG_NOERROR, 0))
+    {
+      free_state (newstate);
+      newstate = NULL;
+    }
+  return newstate;
+}
+
+/* Create the new state which is depend on the context CONTEXT.
+   Return the new state if succeeded, otherwise return NULL.  */
+
+static re_dfastate_t *
+internal_function
+create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes,
+		    unsigned int context, re_hashval_t hash)
+{
+  Idx i, nctx_nodes = 0;
+  reg_errcode_t err;
+  re_dfastate_t *newstate;
+
+  newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1);
+  if (BE (newstate == NULL, 0))
+    return NULL;
+  err = re_node_set_init_copy (&newstate->nodes, nodes);
+  if (BE (err != REG_NOERROR, 0))
+    {
+      re_free (newstate);
+      return NULL;
+    }
+
+  newstate->context = context;
+  newstate->entrance_nodes = &newstate->nodes;
+
+  for (i = 0 ; i < nodes->nelem ; i++)
+    {
+      unsigned int constraint = 0;
+      re_token_t *node = dfa->nodes + nodes->elems[i];
+      re_token_type_t type = node->type;
+      if (node->constraint)
+	constraint = node->constraint;
+
+      if (type == CHARACTER && !constraint)
+	continue;
+#ifdef RE_ENABLE_I18N
+      newstate->accept_mb |= node->accept_mb;
+#endif /* RE_ENABLE_I18N */
+
+      /* If the state has the halt node, the state is a halt state.  */
+      if (type == END_OF_RE)
+	newstate->halt = 1;
+      else if (type == OP_BACK_REF)
+	newstate->has_backref = 1;
+      else if (type == ANCHOR)
+	constraint = node->opr.ctx_type;
+
+      if (constraint)
+	{
+	  if (newstate->entrance_nodes == &newstate->nodes)
+	    {
+	      newstate->entrance_nodes = re_malloc (re_node_set, 1);
+	      if (BE (newstate->entrance_nodes == NULL, 0))
+		{
+		  free_state (newstate);
+		  return NULL;
+		}
+	      re_node_set_init_copy (newstate->entrance_nodes, nodes);
+	      nctx_nodes = 0;
+	      newstate->has_constraint = 1;
+	    }
+
+	  if (NOT_SATISFY_PREV_CONSTRAINT (constraint,context))
+	    {
+	      re_node_set_remove_at (&newstate->nodes, i - nctx_nodes);
+	      ++nctx_nodes;
+	    }
+	}
+    }
+  err = register_state (dfa, newstate, hash);
+  if (BE (err != REG_NOERROR, 0))
+    {
+      free_state (newstate);
+      newstate = NULL;
+    }
+  return  newstate;
+}
diff --git a/parted-1.8.7/lib/regex_internal.h b/parted-1.8.7/lib/regex_internal.h
new file mode 100644
index 0000000..fac6249
--- /dev/null
+++ b/parted-1.8.7/lib/regex_internal.h
@@ -0,0 +1,853 @@
+/* Extended regular expression matching and search library.
+   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _REGEX_INTERNAL_H
+#define _REGEX_INTERNAL_H 1
+
+#include <assert.h>
+#include <ctype.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef _LIBC
+# include <langinfo.h>
+#else
+# include "localcharset.h"
+#endif
+#if defined HAVE_LOCALE_H || defined _LIBC
+# include <locale.h>
+#endif
+
+#include <wchar.h>
+#include <wctype.h>
+#include <stdint.h>
+#if defined _LIBC
+# include <bits/libc-lock.h>
+#else
+# define __libc_lock_init(NAME) do { } while (0)
+# define __libc_lock_lock(NAME) do { } while (0)
+# define __libc_lock_unlock(NAME) do { } while (0)
+#endif
+
+/* In case that the system doesn't have isblank().  */
+#if !defined _LIBC && !HAVE_DECL_ISBLANK && !defined isblank
+# define isblank(ch) ((ch) == ' ' || (ch) == '\t')
+#endif
+
+#ifdef _LIBC
+# ifndef _RE_DEFINE_LOCALE_FUNCTIONS
+#  define _RE_DEFINE_LOCALE_FUNCTIONS 1
+#   include <locale/localeinfo.h>
+#   include <locale/elem-hash.h>
+#   include <locale/coll-lookup.h>
+# endif
+#endif
+
+/* This is for other GNU distributions with internationalized messages.  */
+#if (HAVE_LIBINTL_H && ENABLE_NLS) || defined _LIBC
+# include <libintl.h>
+# ifdef _LIBC
+#  undef gettext
+#  define gettext(msgid) \
+  INTUSE(__dcgettext) (_libc_intl_domainname, msgid, LC_MESSAGES)
+# endif
+#else
+# define gettext(msgid) (msgid)
+#endif
+
+#ifndef gettext_noop
+/* This define is so xgettext can find the internationalizable
+   strings.  */
+# define gettext_noop(String) String
+#endif
+
+/* For loser systems without the definition.  */
+#ifndef SIZE_MAX
+# define SIZE_MAX ((size_t) -1)
+#endif
+
+#if (defined MB_CUR_MAX && HAVE_LOCALE_H && HAVE_WCTYPE_H && HAVE_ISWCTYPE && HAVE_WCRTOMB && HAVE_MBRTOWC && HAVE_WCSCOLL) || _LIBC
+# define RE_ENABLE_I18N
+#endif
+
+#if __GNUC__ >= 3
+# define BE(expr, val) __builtin_expect (expr, val)
+#else
+# define BE(expr, val) (expr)
+# ifdef _LIBC
+#  define inline
+# endif
+#endif
+
+/* Number of ASCII characters.  */
+#define ASCII_CHARS 0x80
+
+/* Number of single byte characters.  */
+#define SBC_MAX (UCHAR_MAX + 1)
+
+#define COLL_ELEM_LEN_MAX 8
+
+/* The character which represents newline.  */
+#define NEWLINE_CHAR '\n'
+#define WIDE_NEWLINE_CHAR L'\n'
+
+/* Rename to standard API for using out of glibc.  */
+#ifndef _LIBC
+# define __wctype wctype
+# define __iswctype iswctype
+# define __btowc btowc
+# define __wcrtomb wcrtomb
+# define __regfree regfree
+# define attribute_hidden
+#endif /* not _LIBC */
+
+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
+# define __attribute(arg) __attribute__ (arg)
+#else
+# define __attribute(arg)
+#endif
+
+typedef __re_idx_t Idx;
+
+/* Special return value for failure to match.  */
+#define REG_MISSING ((Idx) -1)
+
+/* Special return value for internal error.  */
+#define REG_ERROR ((Idx) -2)
+
+/* Test whether N is a valid index, and is not one of the above.  */
+#ifdef _REGEX_LARGE_OFFSETS
+# define REG_VALID_INDEX(n) ((Idx) (n) < REG_ERROR)
+#else
+# define REG_VALID_INDEX(n) (0 <= (n))
+#endif
+
+/* Test whether N is a valid nonzero index.  */
+#ifdef _REGEX_LARGE_OFFSETS
+# define REG_VALID_NONZERO_INDEX(n) ((Idx) ((n) - 1) < (Idx) (REG_ERROR - 1))
+#else
+# define REG_VALID_NONZERO_INDEX(n) (0 < (n))
+#endif
+
+/* A hash value, suitable for computing hash tables.  */
+typedef __re_size_t re_hashval_t;
+
+/* An integer used to represent a set of bits.  It must be unsigned,
+   and must be at least as wide as unsigned int.  */
+typedef unsigned long int bitset_word_t;
+/* All bits set in a bitset_word_t.  */
+#define BITSET_WORD_MAX ULONG_MAX
+
+/* Number of bits in a bitset_word_t.  For portability to hosts with
+   padding bits, do not use '(sizeof (bitset_word_t) * CHAR_BIT)';
+   instead, deduce it directly from BITSET_WORD_MAX.  Avoid
+   greater-than-32-bit integers and unconditional shifts by more than
+   31 bits, as they're not portable.  */
+#if BITSET_WORD_MAX == 0xffffffff
+# define BITSET_WORD_BITS 32
+#elif BITSET_WORD_MAX >> 31 >> 5 == 1
+# define BITSET_WORD_BITS 36
+#elif BITSET_WORD_MAX >> 31 >> 16 == 1
+# define BITSET_WORD_BITS 48
+#elif BITSET_WORD_MAX >> 31 >> 28 == 1
+# define BITSET_WORD_BITS 60
+#elif BITSET_WORD_MAX >> 31 >> 31 >> 1 == 1
+# define BITSET_WORD_BITS 64
+#elif BITSET_WORD_MAX >> 31 >> 31 >> 9 == 1
+# define BITSET_WORD_BITS 72
+#elif BITSET_WORD_MAX >> 31 >> 31 >> 31 >> 31 >> 3 == 1
+# define BITSET_WORD_BITS 128
+#elif BITSET_WORD_MAX >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 7 == 1
+# define BITSET_WORD_BITS 256
+#elif BITSET_WORD_MAX >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 7 > 1
+# define BITSET_WORD_BITS 257 /* any value > SBC_MAX will do here */
+# if BITSET_WORD_BITS <= SBC_MAX
+#  error "Invalid SBC_MAX"
+# endif
+#else
+# error "Add case for new bitset_word_t size"
+#endif
+
+/* Number of bitset_word_t values in a bitset_t.  */
+#define BITSET_WORDS ((SBC_MAX + BITSET_WORD_BITS - 1) / BITSET_WORD_BITS)
+
+typedef bitset_word_t bitset_t[BITSET_WORDS];
+typedef bitset_word_t *re_bitset_ptr_t;
+typedef const bitset_word_t *re_const_bitset_ptr_t;
+
+#define PREV_WORD_CONSTRAINT 0x0001
+#define PREV_NOTWORD_CONSTRAINT 0x0002
+#define NEXT_WORD_CONSTRAINT 0x0004
+#define NEXT_NOTWORD_CONSTRAINT 0x0008
+#define PREV_NEWLINE_CONSTRAINT 0x0010
+#define NEXT_NEWLINE_CONSTRAINT 0x0020
+#define PREV_BEGBUF_CONSTRAINT 0x0040
+#define NEXT_ENDBUF_CONSTRAINT 0x0080
+#define WORD_DELIM_CONSTRAINT 0x0100
+#define NOT_WORD_DELIM_CONSTRAINT 0x0200
+
+typedef enum
+{
+  INSIDE_WORD = PREV_WORD_CONSTRAINT | NEXT_WORD_CONSTRAINT,
+  WORD_FIRST = PREV_NOTWORD_CONSTRAINT | NEXT_WORD_CONSTRAINT,
+  WORD_LAST = PREV_WORD_CONSTRAINT | NEXT_NOTWORD_CONSTRAINT,
+  INSIDE_NOTWORD = PREV_NOTWORD_CONSTRAINT | NEXT_NOTWORD_CONSTRAINT,
+  LINE_FIRST = PREV_NEWLINE_CONSTRAINT,
+  LINE_LAST = NEXT_NEWLINE_CONSTRAINT,
+  BUF_FIRST = PREV_BEGBUF_CONSTRAINT,
+  BUF_LAST = NEXT_ENDBUF_CONSTRAINT,
+  WORD_DELIM = WORD_DELIM_CONSTRAINT,
+  NOT_WORD_DELIM = NOT_WORD_DELIM_CONSTRAINT
+} re_context_type;
+
+typedef struct
+{
+  Idx alloc;
+  Idx nelem;
+  Idx *elems;
+} re_node_set;
+
+typedef enum
+{
+  NON_TYPE = 0,
+
+  /* Node type, These are used by token, node, tree.  */
+  CHARACTER = 1,
+  END_OF_RE = 2,
+  SIMPLE_BRACKET = 3,
+  OP_BACK_REF = 4,
+  OP_PERIOD = 5,
+#ifdef RE_ENABLE_I18N
+  COMPLEX_BRACKET = 6,
+  OP_UTF8_PERIOD = 7,
+#endif /* RE_ENABLE_I18N */
+
+  /* We define EPSILON_BIT as a macro so that OP_OPEN_SUBEXP is used
+     when the debugger shows values of this enum type.  */
+#define EPSILON_BIT 8
+  OP_OPEN_SUBEXP = EPSILON_BIT | 0,
+  OP_CLOSE_SUBEXP = EPSILON_BIT | 1,
+  OP_ALT = EPSILON_BIT | 2,
+  OP_DUP_ASTERISK = EPSILON_BIT | 3,
+  ANCHOR = EPSILON_BIT | 4,
+
+  /* Tree type, these are used only by tree. */
+  CONCAT = 16,
+  SUBEXP = 17,
+
+  /* Token type, these are used only by token.  */
+  OP_DUP_PLUS = 18,
+  OP_DUP_QUESTION,
+  OP_OPEN_BRACKET,
+  OP_CLOSE_BRACKET,
+  OP_CHARSET_RANGE,
+  OP_OPEN_DUP_NUM,
+  OP_CLOSE_DUP_NUM,
+  OP_NON_MATCH_LIST,
+  OP_OPEN_COLL_ELEM,
+  OP_CLOSE_COLL_ELEM,
+  OP_OPEN_EQUIV_CLASS,
+  OP_CLOSE_EQUIV_CLASS,
+  OP_OPEN_CHAR_CLASS,
+  OP_CLOSE_CHAR_CLASS,
+  OP_WORD,
+  OP_NOTWORD,
+  OP_SPACE,
+  OP_NOTSPACE,
+  BACK_SLASH
+
+} re_token_type_t;
+
+#ifdef RE_ENABLE_I18N
+typedef struct
+{
+  /* Multibyte characters.  */
+  wchar_t *mbchars;
+
+  /* Collating symbols.  */
+# ifdef _LIBC
+  int32_t *coll_syms;
+# endif
+
+  /* Equivalence classes. */
+# ifdef _LIBC
+  int32_t *equiv_classes;
+# endif
+
+  /* Range expressions. */
+# ifdef _LIBC
+  uint32_t *range_starts;
+  uint32_t *range_ends;
+# else /* not _LIBC */
+  wchar_t *range_starts;
+  wchar_t *range_ends;
+# endif /* not _LIBC */
+
+  /* Character classes. */
+  wctype_t *char_classes;
+
+  /* If this character set is the non-matching list.  */
+  unsigned int non_match : 1;
+
+  /* # of multibyte characters.  */
+  Idx nmbchars;
+
+  /* # of collating symbols.  */
+  Idx ncoll_syms;
+
+  /* # of equivalence classes. */
+  Idx nequiv_classes;
+
+  /* # of range expressions. */
+  Idx nranges;
+
+  /* # of character classes. */
+  Idx nchar_classes;
+} re_charset_t;
+#endif /* RE_ENABLE_I18N */
+
+typedef struct
+{
+  union
+  {
+    unsigned char c;		/* for CHARACTER */
+    re_bitset_ptr_t sbcset;	/* for SIMPLE_BRACKET */
+#ifdef RE_ENABLE_I18N
+    re_charset_t *mbcset;	/* for COMPLEX_BRACKET */
+#endif /* RE_ENABLE_I18N */
+    Idx idx;			/* for BACK_REF */
+    re_context_type ctx_type;	/* for ANCHOR */
+  } opr;
+#if __GNUC__ >= 2 && !__STRICT_ANSI__
+  re_token_type_t type : 8;
+#else
+  re_token_type_t type;
+#endif
+  unsigned int constraint : 10;	/* context constraint */
+  unsigned int duplicated : 1;
+  unsigned int opt_subexp : 1;
+#ifdef RE_ENABLE_I18N
+  unsigned int accept_mb : 1;
+  /* These 2 bits can be moved into the union if needed (e.g. if running out
+     of bits; move opr.c to opr.c.c and move the flags to opr.c.flags).  */
+  unsigned int mb_partial : 1;
+#endif
+  unsigned int word_char : 1;
+} re_token_t;
+
+#define IS_EPSILON_NODE(type) ((type) & EPSILON_BIT)
+
+struct re_string_t
+{
+  /* Indicate the raw buffer which is the original string passed as an
+     argument of regexec(), re_search(), etc..  */
+  const unsigned char *raw_mbs;
+  /* Store the multibyte string.  In case of "case insensitive mode" like
+     REG_ICASE, upper cases of the string are stored, otherwise MBS points
+     the same address that RAW_MBS points.  */
+  unsigned char *mbs;
+#ifdef RE_ENABLE_I18N
+  /* Store the wide character string which is corresponding to MBS.  */
+  wint_t *wcs;
+  Idx *offsets;
+  mbstate_t cur_state;
+#endif
+  /* Index in RAW_MBS.  Each character mbs[i] corresponds to
+     raw_mbs[raw_mbs_idx + i].  */
+  Idx raw_mbs_idx;
+  /* The length of the valid characters in the buffers.  */
+  Idx valid_len;
+  /* The corresponding number of bytes in raw_mbs array.  */
+  Idx valid_raw_len;
+  /* The length of the buffers MBS and WCS.  */
+  Idx bufs_len;
+  /* The index in MBS, which is updated by re_string_fetch_byte.  */
+  Idx cur_idx;
+  /* length of RAW_MBS array.  */
+  Idx raw_len;
+  /* This is RAW_LEN - RAW_MBS_IDX + VALID_LEN - VALID_RAW_LEN.  */
+  Idx len;
+  /* End of the buffer may be shorter than its length in the cases such
+     as re_match_2, re_search_2.  Then, we use STOP for end of the buffer
+     instead of LEN.  */
+  Idx raw_stop;
+  /* This is RAW_STOP - RAW_MBS_IDX adjusted through OFFSETS.  */
+  Idx stop;
+
+  /* The context of mbs[0].  We store the context independently, since
+     the context of mbs[0] may be different from raw_mbs[0], which is
+     the beginning of the input string.  */
+  unsigned int tip_context;
+  /* The translation passed as a part of an argument of re_compile_pattern.  */
+  RE_TRANSLATE_TYPE trans;
+  /* Copy of re_dfa_t's word_char.  */
+  re_const_bitset_ptr_t word_char;
+  /* true if REG_ICASE.  */
+  unsigned char icase;
+  unsigned char is_utf8;
+  unsigned char map_notascii;
+  unsigned char mbs_allocated;
+  unsigned char offsets_needed;
+  unsigned char newline_anchor;
+  unsigned char word_ops_used;
+  int mb_cur_max;
+};
+typedef struct re_string_t re_string_t;
+
+
+struct re_dfa_t;
+typedef struct re_dfa_t re_dfa_t;
+
+#ifndef _LIBC
+# ifdef __i386__
+#  define internal_function   __attribute ((regparm (3), stdcall))
+# else
+#  define internal_function
+# endif
+#endif
+
+static reg_errcode_t re_string_realloc_buffers (re_string_t *pstr,
+						Idx new_buf_len)
+     internal_function;
+#ifdef RE_ENABLE_I18N
+static void build_wcs_buffer (re_string_t *pstr) internal_function;
+static reg_errcode_t build_wcs_upper_buffer (re_string_t *pstr)
+     internal_function;
+#endif /* RE_ENABLE_I18N */
+static void build_upper_buffer (re_string_t *pstr) internal_function;
+static void re_string_translate_buffer (re_string_t *pstr) internal_function;
+static unsigned int re_string_context_at (const re_string_t *input, Idx idx,
+					  int eflags)
+     internal_function __attribute ((pure));
+#define re_string_peek_byte(pstr, offset) \
+  ((pstr)->mbs[(pstr)->cur_idx + offset])
+#define re_string_fetch_byte(pstr) \
+  ((pstr)->mbs[(pstr)->cur_idx++])
+#define re_string_first_byte(pstr, idx) \
+  ((idx) == (pstr)->valid_len || (pstr)->wcs[idx] != WEOF)
+#define re_string_is_single_byte_char(pstr, idx) \
+  ((pstr)->wcs[idx] != WEOF && ((pstr)->valid_len == (idx) + 1 \
+				|| (pstr)->wcs[(idx) + 1] != WEOF))
+#define re_string_eoi(pstr) ((pstr)->stop <= (pstr)->cur_idx)
+#define re_string_cur_idx(pstr) ((pstr)->cur_idx)
+#define re_string_get_buffer(pstr) ((pstr)->mbs)
+#define re_string_length(pstr) ((pstr)->len)
+#define re_string_byte_at(pstr,idx) ((pstr)->mbs[idx])
+#define re_string_skip_bytes(pstr,idx) ((pstr)->cur_idx += (idx))
+#define re_string_set_index(pstr,idx) ((pstr)->cur_idx = (idx))
+
+#include <alloca.h>
+
+#ifndef _LIBC
+# if HAVE_ALLOCA
+/* The OS usually guarantees only one guard page at the bottom of the stack,
+   and a page size can be as small as 4096 bytes.  So we cannot safely
+   allocate anything larger than 4096 bytes.  Also care for the possibility
+   of a few compiler-allocated temporary stack slots.  */
+#  define __libc_use_alloca(n) ((n) < 4032)
+# else
+/* alloca is implemented with malloc, so just use malloc.  */
+#  define __libc_use_alloca(n) 0
+# endif
+#endif
+
+#ifndef MAX
+# define MAX(a,b) ((a) < (b) ? (b) : (a))
+#endif
+
+#define re_malloc(t,n) ((t *) malloc ((n) * sizeof (t)))
+#define re_realloc(p,t,n) ((t *) realloc (p, (n) * sizeof (t)))
+#define re_free(p) free (p)
+
+struct bin_tree_t
+{
+  struct bin_tree_t *parent;
+  struct bin_tree_t *left;
+  struct bin_tree_t *right;
+  struct bin_tree_t *first;
+  struct bin_tree_t *next;
+
+  re_token_t token;
+
+  /* `node_idx' is the index in dfa->nodes, if `type' == 0.
+     Otherwise `type' indicate the type of this node.  */
+  Idx node_idx;
+};
+typedef struct bin_tree_t bin_tree_t;
+
+#define BIN_TREE_STORAGE_SIZE \
+  ((1024 - sizeof (void *)) / sizeof (bin_tree_t))
+
+struct bin_tree_storage_t
+{
+  struct bin_tree_storage_t *next;
+  bin_tree_t data[BIN_TREE_STORAGE_SIZE];
+};
+typedef struct bin_tree_storage_t bin_tree_storage_t;
+
+#define CONTEXT_WORD 1
+#define CONTEXT_NEWLINE (CONTEXT_WORD << 1)
+#define CONTEXT_BEGBUF (CONTEXT_NEWLINE << 1)
+#define CONTEXT_ENDBUF (CONTEXT_BEGBUF << 1)
+
+#define IS_WORD_CONTEXT(c) ((c) & CONTEXT_WORD)
+#define IS_NEWLINE_CONTEXT(c) ((c) & CONTEXT_NEWLINE)
+#define IS_BEGBUF_CONTEXT(c) ((c) & CONTEXT_BEGBUF)
+#define IS_ENDBUF_CONTEXT(c) ((c) & CONTEXT_ENDBUF)
+#define IS_ORDINARY_CONTEXT(c) ((c) == 0)
+
+#define IS_WORD_CHAR(ch) (isalnum (ch) || (ch) == '_')
+#define IS_NEWLINE(ch) ((ch) == NEWLINE_CHAR)
+#define IS_WIDE_WORD_CHAR(ch) (iswalnum (ch) || (ch) == L'_')
+#define IS_WIDE_NEWLINE(ch) ((ch) == WIDE_NEWLINE_CHAR)
+
+#define NOT_SATISFY_PREV_CONSTRAINT(constraint,context) \
+ ((((constraint) & PREV_WORD_CONSTRAINT) && !IS_WORD_CONTEXT (context)) \
+  || ((constraint & PREV_NOTWORD_CONSTRAINT) && IS_WORD_CONTEXT (context)) \
+  || ((constraint & PREV_NEWLINE_CONSTRAINT) && !IS_NEWLINE_CONTEXT (context))\
+  || ((constraint & PREV_BEGBUF_CONSTRAINT) && !IS_BEGBUF_CONTEXT (context)))
+
+#define NOT_SATISFY_NEXT_CONSTRAINT(constraint,context) \
+ ((((constraint) & NEXT_WORD_CONSTRAINT) && !IS_WORD_CONTEXT (context)) \
+  || (((constraint) & NEXT_NOTWORD_CONSTRAINT) && IS_WORD_CONTEXT (context)) \
+  || (((constraint) & NEXT_NEWLINE_CONSTRAINT) && !IS_NEWLINE_CONTEXT (context)) \
+  || (((constraint) & NEXT_ENDBUF_CONSTRAINT) && !IS_ENDBUF_CONTEXT (context)))
+
+struct re_dfastate_t
+{
+  re_hashval_t hash;
+  re_node_set nodes;
+  re_node_set non_eps_nodes;
+  re_node_set inveclosure;
+  re_node_set *entrance_nodes;
+  struct re_dfastate_t **trtable, **word_trtable;
+  unsigned int context : 4;
+  unsigned int halt : 1;
+  /* If this state can accept `multi byte'.
+     Note that we refer to multibyte characters, and multi character
+     collating elements as `multi byte'.  */
+  unsigned int accept_mb : 1;
+  /* If this state has backreference node(s).  */
+  unsigned int has_backref : 1;
+  unsigned int has_constraint : 1;
+};
+typedef struct re_dfastate_t re_dfastate_t;
+
+struct re_state_table_entry
+{
+  Idx num;
+  Idx alloc;
+  re_dfastate_t **array;
+};
+
+/* Array type used in re_sub_match_last_t and re_sub_match_top_t.  */
+
+typedef struct
+{
+  Idx next_idx;
+  Idx alloc;
+  re_dfastate_t **array;
+} state_array_t;
+
+/* Store information about the node NODE whose type is OP_CLOSE_SUBEXP.  */
+
+typedef struct
+{
+  Idx node;
+  Idx str_idx; /* The position NODE match at.  */
+  state_array_t path;
+} re_sub_match_last_t;
+
+/* Store information about the node NODE whose type is OP_OPEN_SUBEXP.
+   And information about the node, whose type is OP_CLOSE_SUBEXP,
+   corresponding to NODE is stored in LASTS.  */
+
+typedef struct
+{
+  Idx str_idx;
+  Idx node;
+  state_array_t *path;
+  Idx alasts; /* Allocation size of LASTS.  */
+  Idx nlasts; /* The number of LASTS.  */
+  re_sub_match_last_t **lasts;
+} re_sub_match_top_t;
+
+struct re_backref_cache_entry
+{
+  Idx node;
+  Idx str_idx;
+  Idx subexp_from;
+  Idx subexp_to;
+  char more;
+  char unused;
+  unsigned short int eps_reachable_subexps_map;
+};
+
+typedef struct
+{
+  /* The string object corresponding to the input string.  */
+  re_string_t input;
+#if defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
+  const re_dfa_t *const dfa;
+#else
+  const re_dfa_t *dfa;
+#endif
+  /* EFLAGS of the argument of regexec.  */
+  int eflags;
+  /* Where the matching ends.  */
+  Idx match_last;
+  Idx last_node;
+  /* The state log used by the matcher.  */
+  re_dfastate_t **state_log;
+  Idx state_log_top;
+  /* Back reference cache.  */
+  Idx nbkref_ents;
+  Idx abkref_ents;
+  struct re_backref_cache_entry *bkref_ents;
+  int max_mb_elem_len;
+  Idx nsub_tops;
+  Idx asub_tops;
+  re_sub_match_top_t **sub_tops;
+} re_match_context_t;
+
+typedef struct
+{
+  re_dfastate_t **sifted_states;
+  re_dfastate_t **limited_states;
+  Idx last_node;
+  Idx last_str_idx;
+  re_node_set limits;
+} re_sift_context_t;
+
+struct re_fail_stack_ent_t
+{
+  Idx idx;
+  Idx node;
+  regmatch_t *regs;
+  re_node_set eps_via_nodes;
+};
+
+struct re_fail_stack_t
+{
+  Idx num;
+  Idx alloc;
+  struct re_fail_stack_ent_t *stack;
+};
+
+struct re_dfa_t
+{
+  re_token_t *nodes;
+  size_t nodes_alloc;
+  size_t nodes_len;
+  Idx *nexts;
+  Idx *org_indices;
+  re_node_set *edests;
+  re_node_set *eclosures;
+  re_node_set *inveclosures;
+  struct re_state_table_entry *state_table;
+  re_dfastate_t *init_state;
+  re_dfastate_t *init_state_word;
+  re_dfastate_t *init_state_nl;
+  re_dfastate_t *init_state_begbuf;
+  bin_tree_t *str_tree;
+  bin_tree_storage_t *str_tree_storage;
+  re_bitset_ptr_t sb_char;
+  int str_tree_storage_idx;
+
+  /* number of subexpressions `re_nsub' is in regex_t.  */
+  re_hashval_t state_hash_mask;
+  Idx init_node;
+  Idx nbackref; /* The number of backreference in this dfa.  */
+
+  /* Bitmap expressing which backreference is used.  */
+  bitset_word_t used_bkref_map;
+  bitset_word_t completed_bkref_map;
+
+  unsigned int has_plural_match : 1;
+  /* If this dfa has "multibyte node", which is a backreference or
+     a node which can accept multibyte character or multi character
+     collating element.  */
+  unsigned int has_mb_node : 1;
+  unsigned int is_utf8 : 1;
+  unsigned int map_notascii : 1;
+  unsigned int word_ops_used : 1;
+  int mb_cur_max;
+  bitset_t word_char;
+  reg_syntax_t syntax;
+  Idx *subexp_map;
+#ifdef DEBUG
+  char* re_str;
+#endif
+#ifdef _LIBC
+  __libc_lock_define (, lock)
+#endif
+};
+
+#define re_node_set_init_empty(set) memset (set, '\0', sizeof (re_node_set))
+#define re_node_set_remove(set,id) \
+  (re_node_set_remove_at (set, re_node_set_contains (set, id) - 1))
+#define re_node_set_empty(p) ((p)->nelem = 0)
+#define re_node_set_free(set) re_free ((set)->elems)
+
+
+typedef enum
+{
+  SB_CHAR,
+  MB_CHAR,
+  EQUIV_CLASS,
+  COLL_SYM,
+  CHAR_CLASS
+} bracket_elem_type;
+
+typedef struct
+{
+  bracket_elem_type type;
+  union
+  {
+    unsigned char ch;
+    unsigned char *name;
+    wchar_t wch;
+  } opr;
+} bracket_elem_t;
+
+
+/* Inline functions for bitset_t operation.  */
+
+static inline void
+bitset_set (bitset_t set, Idx i)
+{
+  set[i / BITSET_WORD_BITS] |= (bitset_word_t) 1 << i % BITSET_WORD_BITS;
+}
+
+static inline void
+bitset_clear (bitset_t set, Idx i)
+{
+  set[i / BITSET_WORD_BITS] &= ~ ((bitset_word_t) 1 << i % BITSET_WORD_BITS);
+}
+
+static inline bool
+bitset_contain (const bitset_t set, Idx i)
+{
+  return (set[i / BITSET_WORD_BITS] >> i % BITSET_WORD_BITS) & 1;
+}
+
+static inline void
+bitset_empty (bitset_t set)
+{
+  memset (set, '\0', sizeof (bitset_t));
+}
+
+static inline void
+bitset_set_all (bitset_t set)
+{
+  memset (set, -1, sizeof (bitset_word_t) * (SBC_MAX / BITSET_WORD_BITS));
+  if (SBC_MAX % BITSET_WORD_BITS != 0)
+    set[BITSET_WORDS - 1] =
+      ((bitset_word_t) 1 << SBC_MAX % BITSET_WORD_BITS) - 1;
+}
+
+static inline void
+bitset_copy (bitset_t dest, const bitset_t src)
+{
+  memcpy (dest, src, sizeof (bitset_t));
+}
+
+static inline void
+bitset_not (bitset_t set)
+{
+  int bitset_i;
+  for (bitset_i = 0; bitset_i < SBC_MAX / BITSET_WORD_BITS; ++bitset_i)
+    set[bitset_i] = ~set[bitset_i];
+  if (SBC_MAX % BITSET_WORD_BITS != 0)
+    set[BITSET_WORDS - 1] =
+      ((((bitset_word_t) 1 << SBC_MAX % BITSET_WORD_BITS) - 1)
+       & ~set[BITSET_WORDS - 1]);
+}
+
+static inline void
+bitset_merge (bitset_t dest, const bitset_t src)
+{
+  int bitset_i;
+  for (bitset_i = 0; bitset_i < BITSET_WORDS; ++bitset_i)
+    dest[bitset_i] |= src[bitset_i];
+}
+
+static inline void
+bitset_mask (bitset_t dest, const bitset_t src)
+{
+  int bitset_i;
+  for (bitset_i = 0; bitset_i < BITSET_WORDS; ++bitset_i)
+    dest[bitset_i] &= src[bitset_i];
+}
+
+#ifdef RE_ENABLE_I18N
+/* Inline functions for re_string.  */
+static inline int
+internal_function __attribute ((pure))
+re_string_char_size_at (const re_string_t *pstr, Idx idx)
+{
+  int byte_idx;
+  if (pstr->mb_cur_max == 1)
+    return 1;
+  for (byte_idx = 1; idx + byte_idx < pstr->valid_len; ++byte_idx)
+    if (pstr->wcs[idx + byte_idx] != WEOF)
+      break;
+  return byte_idx;
+}
+
+static inline wint_t
+internal_function __attribute ((pure))
+re_string_wchar_at (const re_string_t *pstr, Idx idx)
+{
+  if (pstr->mb_cur_max == 1)
+    return (wint_t) pstr->mbs[idx];
+  return (wint_t) pstr->wcs[idx];
+}
+
+static int
+internal_function __attribute ((pure))
+re_string_elem_size_at (const re_string_t *pstr, Idx idx)
+{
+# ifdef _LIBC
+  const unsigned char *p, *extra;
+  const int32_t *table, *indirect;
+  int32_t tmp;
+#  include <locale/weight.h>
+  uint_fast32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
+
+  if (nrules != 0)
+    {
+      table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB);
+      extra = (const unsigned char *)
+	_NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB);
+      indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE,
+						_NL_COLLATE_INDIRECTMB);
+      p = pstr->mbs + idx;
+      tmp = findidx (&p);
+      return p - pstr->mbs - idx;
+    }
+  else
+# endif /* _LIBC */
+    return 1;
+}
+#endif /* RE_ENABLE_I18N */
+
+#endif /*  _REGEX_INTERNAL_H */
diff --git a/parted-1.8.7/lib/regexec.c b/parted-1.8.7/lib/regexec.c
new file mode 100644
index 0000000..b136570
--- /dev/null
+++ b/parted-1.8.7/lib/regexec.c
@@ -0,0 +1,4399 @@
+/* Extended regular expression matching and search library.
+   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation,
+   Inc.
+   This file is part of the GNU C Library.
+   Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags,
+				     Idx n) internal_function;
+static void match_ctx_clean (re_match_context_t *mctx) internal_function;
+static void match_ctx_free (re_match_context_t *cache) internal_function;
+static reg_errcode_t match_ctx_add_entry (re_match_context_t *cache, Idx node,
+					  Idx str_idx, Idx from, Idx to)
+     internal_function;
+static Idx search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx)
+     internal_function;
+static reg_errcode_t match_ctx_add_subtop (re_match_context_t *mctx, Idx node,
+					   Idx str_idx) internal_function;
+static re_sub_match_last_t * match_ctx_add_sublast (re_sub_match_top_t *subtop,
+						    Idx node, Idx str_idx)
+     internal_function;
+static void sift_ctx_init (re_sift_context_t *sctx, re_dfastate_t **sifted_sts,
+			   re_dfastate_t **limited_sts, Idx last_node,
+			   Idx last_str_idx)
+     internal_function;
+static reg_errcode_t re_search_internal (const regex_t *preg,
+					 const char *string, Idx length,
+					 Idx start, Idx last_start, Idx stop,
+					 size_t nmatch, regmatch_t pmatch[],
+					 int eflags) internal_function;
+static regoff_t re_search_2_stub (struct re_pattern_buffer *bufp,
+				  const char *string1, Idx length1,
+				  const char *string2, Idx length2,
+				  Idx start, regoff_t range,
+				  struct re_registers *regs,
+				  Idx stop, bool ret_len) internal_function;
+static regoff_t re_search_stub (struct re_pattern_buffer *bufp,
+				const char *string, Idx length, Idx start,
+				regoff_t range, Idx stop,
+				struct re_registers *regs,
+				bool ret_len) internal_function;
+static unsigned int re_copy_regs (struct re_registers *regs, regmatch_t *pmatch,
+				  Idx nregs, int regs_allocated)
+     internal_function;
+static reg_errcode_t prune_impossible_nodes (re_match_context_t *mctx)
+     internal_function;
+static Idx check_matching (re_match_context_t *mctx, bool fl_longest_match,
+			   Idx *p_match_first) internal_function;
+static Idx check_halt_state_context (const re_match_context_t *mctx,
+				     const re_dfastate_t *state, Idx idx)
+     internal_function;
+static void update_regs (const re_dfa_t *dfa, regmatch_t *pmatch,
+			 regmatch_t *prev_idx_match, Idx cur_node,
+			 Idx cur_idx, Idx nmatch) internal_function;
+static reg_errcode_t push_fail_stack (struct re_fail_stack_t *fs,
+				      Idx str_idx, Idx dest_node, Idx nregs,
+				      regmatch_t *regs,
+				      re_node_set *eps_via_nodes)
+     internal_function;
+static reg_errcode_t set_regs (const regex_t *preg,
+			       const re_match_context_t *mctx,
+			       size_t nmatch, regmatch_t *pmatch,
+			       bool fl_backtrack) internal_function;
+static reg_errcode_t free_fail_stack_return (struct re_fail_stack_t *fs)
+     internal_function;
+
+#ifdef RE_ENABLE_I18N
+static int sift_states_iter_mb (const re_match_context_t *mctx,
+				re_sift_context_t *sctx,
+				Idx node_idx, Idx str_idx, Idx max_str_idx)
+     internal_function;
+#endif /* RE_ENABLE_I18N */
+static reg_errcode_t sift_states_backward (const re_match_context_t *mctx,
+					   re_sift_context_t *sctx)
+     internal_function;
+static reg_errcode_t build_sifted_states (const re_match_context_t *mctx,
+					  re_sift_context_t *sctx, Idx str_idx,
+					  re_node_set *cur_dest)
+     internal_function;
+static reg_errcode_t update_cur_sifted_state (const re_match_context_t *mctx,
+					      re_sift_context_t *sctx,
+					      Idx str_idx,
+					      re_node_set *dest_nodes)
+     internal_function;
+static reg_errcode_t add_epsilon_src_nodes (const re_dfa_t *dfa,
+					    re_node_set *dest_nodes,
+					    const re_node_set *candidates)
+     internal_function;
+static bool check_dst_limits (const re_match_context_t *mctx,
+			      const re_node_set *limits,
+			      Idx dst_node, Idx dst_idx, Idx src_node,
+			      Idx src_idx) internal_function;
+static int check_dst_limits_calc_pos_1 (const re_match_context_t *mctx,
+					int boundaries, Idx subexp_idx,
+					Idx from_node, Idx bkref_idx)
+     internal_function;
+static int check_dst_limits_calc_pos (const re_match_context_t *mctx,
+				      Idx limit, Idx subexp_idx,
+				      Idx node, Idx str_idx,
+				      Idx bkref_idx) internal_function;
+static reg_errcode_t check_subexp_limits (const re_dfa_t *dfa,
+					  re_node_set *dest_nodes,
+					  const re_node_set *candidates,
+					  re_node_set *limits,
+					  struct re_backref_cache_entry *bkref_ents,
+					  Idx str_idx) internal_function;
+static reg_errcode_t sift_states_bkref (const re_match_context_t *mctx,
+					re_sift_context_t *sctx,
+					Idx str_idx, const re_node_set *candidates)
+     internal_function;
+static reg_errcode_t merge_state_array (const re_dfa_t *dfa,
+					re_dfastate_t **dst,
+					re_dfastate_t **src, Idx num)
+     internal_function;
+static re_dfastate_t *find_recover_state (reg_errcode_t *err,
+					 re_match_context_t *mctx) internal_function;
+static re_dfastate_t *transit_state (reg_errcode_t *err,
+				     re_match_context_t *mctx,
+				     re_dfastate_t *state) internal_function;
+static re_dfastate_t *merge_state_with_log (reg_errcode_t *err,
+					    re_match_context_t *mctx,
+					    re_dfastate_t *next_state)
+     internal_function;
+static reg_errcode_t check_subexp_matching_top (re_match_context_t *mctx,
+						re_node_set *cur_nodes,
+						Idx str_idx) internal_function;
+#if 0
+static re_dfastate_t *transit_state_sb (reg_errcode_t *err,
+					re_match_context_t *mctx,
+					re_dfastate_t *pstate)
+     internal_function;
+#endif
+#ifdef RE_ENABLE_I18N
+static reg_errcode_t transit_state_mb (re_match_context_t *mctx,
+				       re_dfastate_t *pstate)
+     internal_function;
+#endif /* RE_ENABLE_I18N */
+static reg_errcode_t transit_state_bkref (re_match_context_t *mctx,
+					  const re_node_set *nodes)
+     internal_function;
+static reg_errcode_t get_subexp (re_match_context_t *mctx,
+				 Idx bkref_node, Idx bkref_str_idx)
+     internal_function;
+static reg_errcode_t get_subexp_sub (re_match_context_t *mctx,
+				     const re_sub_match_top_t *sub_top,
+				     re_sub_match_last_t *sub_last,
+				     Idx bkref_node, Idx bkref_str)
+     internal_function;
+static Idx find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes,
+			     Idx subexp_idx, int type) internal_function;
+static reg_errcode_t check_arrival (re_match_context_t *mctx,
+				    state_array_t *path, Idx top_node,
+				    Idx top_str, Idx last_node, Idx last_str,
+				    int type) internal_function;
+static reg_errcode_t check_arrival_add_next_nodes (re_match_context_t *mctx,
+						   Idx str_idx,
+						   re_node_set *cur_nodes,
+						   re_node_set *next_nodes)
+     internal_function;
+static reg_errcode_t check_arrival_expand_ecl (const re_dfa_t *dfa,
+					       re_node_set *cur_nodes,
+					       Idx ex_subexp, int type)
+     internal_function;
+static reg_errcode_t check_arrival_expand_ecl_sub (const re_dfa_t *dfa,
+						   re_node_set *dst_nodes,
+						   Idx target, Idx ex_subexp,
+						   int type) internal_function;
+static reg_errcode_t expand_bkref_cache (re_match_context_t *mctx,
+					 re_node_set *cur_nodes, Idx cur_str,
+					 Idx subexp_num, int type)
+     internal_function;
+static bool build_trtable (const re_dfa_t *dfa,
+			   re_dfastate_t *state) internal_function;
+#ifdef RE_ENABLE_I18N
+static int check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
+				    const re_string_t *input, Idx idx)
+     internal_function;
+# ifdef _LIBC
+static unsigned int find_collation_sequence_value (const unsigned char *mbs,
+						   size_t name_len)
+     internal_function;
+# endif /* _LIBC */
+#endif /* RE_ENABLE_I18N */
+static Idx group_nodes_into_DFAstates (const re_dfa_t *dfa,
+				       const re_dfastate_t *state,
+				       re_node_set *states_node,
+				       bitset_t *states_ch) internal_function;
+static bool check_node_accept (const re_match_context_t *mctx,
+			       const re_token_t *node, Idx idx)
+     internal_function;
+static reg_errcode_t extend_buffers (re_match_context_t *mctx)
+     internal_function;
+
+/* Entry point for POSIX code.  */
+
+/* regexec searches for a given pattern, specified by PREG, in the
+   string STRING.
+
+   If NMATCH is zero or REG_NOSUB was set in the cflags argument to
+   `regcomp', we ignore PMATCH.  Otherwise, we assume PMATCH has at
+   least NMATCH elements, and we set them to the offsets of the
+   corresponding matched substrings.
+
+   EFLAGS specifies `execution flags' which affect matching: if
+   REG_NOTBOL is set, then ^ does not match at the beginning of the
+   string; if REG_NOTEOL is set, then $ does not match at the end.
+
+   We return 0 if we find a match and REG_NOMATCH if not.  */
+
+int
+regexec (preg, string, nmatch, pmatch, eflags)
+    const regex_t *_Restrict_ preg;
+    const char *_Restrict_ string;
+    size_t nmatch;
+    regmatch_t pmatch[_Restrict_arr_];
+    int eflags;
+{
+  reg_errcode_t err;
+  Idx start, length;
+#ifdef _LIBC
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+#endif
+
+  if (eflags & ~(REG_NOTBOL | REG_NOTEOL | REG_STARTEND))
+    return REG_BADPAT;
+
+  if (eflags & REG_STARTEND)
+    {
+      start = pmatch[0].rm_so;
+      length = pmatch[0].rm_eo;
+    }
+  else
+    {
+      start = 0;
+      length = strlen (string);
+    }
+
+  __libc_lock_lock (dfa->lock);
+  if (preg->no_sub)
+    err = re_search_internal (preg, string, length, start, length,
+			      length, 0, NULL, eflags);
+  else
+    err = re_search_internal (preg, string, length, start, length,
+			      length, nmatch, pmatch, eflags);
+  __libc_lock_unlock (dfa->lock);
+  return err != REG_NOERROR;
+}
+
+#ifdef _LIBC
+# include <shlib-compat.h>
+versioned_symbol (libc, __regexec, regexec, GLIBC_2_3_4);
+
+# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)
+__typeof__ (__regexec) __compat_regexec;
+
+int
+attribute_compat_text_section
+__compat_regexec (const regex_t *_Restrict_ preg,
+		  const char *_Restrict_ string, size_t nmatch,
+		  regmatch_t pmatch[], int eflags)
+{
+  return regexec (preg, string, nmatch, pmatch,
+		  eflags & (REG_NOTBOL | REG_NOTEOL));
+}
+compat_symbol (libc, __compat_regexec, regexec, GLIBC_2_0);
+# endif
+#endif
+
+/* Entry points for GNU code.  */
+
+/* re_match, re_search, re_match_2, re_search_2
+
+   The former two functions operate on STRING with length LENGTH,
+   while the later two operate on concatenation of STRING1 and STRING2
+   with lengths LENGTH1 and LENGTH2, respectively.
+
+   re_match() matches the compiled pattern in BUFP against the string,
+   starting at index START.
+
+   re_search() first tries matching at index START, then it tries to match
+   starting from index START + 1, and so on.  The last start position tried
+   is START + RANGE.  (Thus RANGE = 0 forces re_search to operate the same
+   way as re_match().)
+
+   The parameter STOP of re_{match,search}_2 specifies that no match exceeding
+   the first STOP characters of the concatenation of the strings should be
+   concerned.
+
+   If REGS is not NULL, and BUFP->no_sub is not set, the offsets of the match
+   and all groups is stored in REGS.  (For the "_2" variants, the offsets are
+   computed relative to the concatenation, not relative to the individual
+   strings.)
+
+   On success, re_match* functions return the length of the match, re_search*
+   return the position of the start of the match.  Return value -1 means no
+   match was found and -2 indicates an internal error.  */
+
+regoff_t
+re_match (bufp, string, length, start, regs)
+    struct re_pattern_buffer *bufp;
+    const char *string;
+    Idx length, start;
+    struct re_registers *regs;
+{
+  return re_search_stub (bufp, string, length, start, 0, length, regs, true);
+}
+#ifdef _LIBC
+weak_alias (__re_match, re_match)
+#endif
+
+regoff_t
+re_search (bufp, string, length, start, range, regs)
+    struct re_pattern_buffer *bufp;
+    const char *string;
+    Idx length, start;
+    regoff_t range;
+    struct re_registers *regs;
+{
+  return re_search_stub (bufp, string, length, start, range, length, regs,
+			 false);
+}
+#ifdef _LIBC
+weak_alias (__re_search, re_search)
+#endif
+
+regoff_t
+re_match_2 (bufp, string1, length1, string2, length2, start, regs, stop)
+    struct re_pattern_buffer *bufp;
+    const char *string1, *string2;
+    Idx length1, length2, start, stop;
+    struct re_registers *regs;
+{
+  return re_search_2_stub (bufp, string1, length1, string2, length2,
+			   start, 0, regs, stop, true);
+}
+#ifdef _LIBC
+weak_alias (__re_match_2, re_match_2)
+#endif
+
+regoff_t
+re_search_2 (bufp, string1, length1, string2, length2, start, range, regs, stop)
+    struct re_pattern_buffer *bufp;
+    const char *string1, *string2;
+    Idx length1, length2, start, stop;
+    regoff_t range;
+    struct re_registers *regs;
+{
+  return re_search_2_stub (bufp, string1, length1, string2, length2,
+			   start, range, regs, stop, false);
+}
+#ifdef _LIBC
+weak_alias (__re_search_2, re_search_2)
+#endif
+
+static regoff_t
+internal_function
+re_search_2_stub (struct re_pattern_buffer *bufp,
+		  const char *string1, Idx length1,
+		  const char *string2, Idx length2,
+		  Idx start, regoff_t range, struct re_registers *regs,
+		  Idx stop, bool ret_len)
+{
+  const char *str;
+  regoff_t rval;
+  Idx len = length1 + length2;
+  char *s = NULL;
+
+  if (BE (length1 < 0 || length2 < 0 || stop < 0 || len < length1, 0))
+    return -2;
+
+  /* Concatenate the strings.  */
+  if (length2 > 0)
+    if (length1 > 0)
+      {
+	s = re_malloc (char, len);
+
+	if (BE (s == NULL, 0))
+	  return -2;
+#ifdef _LIBC
+	memcpy (__mempcpy (s, string1, length1), string2, length2);
+#else
+	memcpy (s, string1, length1);
+	memcpy (s + length1, string2, length2);
+#endif
+	str = s;
+      }
+    else
+      str = string2;
+  else
+    str = string1;
+
+  rval = re_search_stub (bufp, str, len, start, range, stop, regs,
+			 ret_len);
+  re_free (s);
+  return rval;
+}
+
+/* The parameters have the same meaning as those of re_search.
+   Additional parameters:
+   If RET_LEN is true the length of the match is returned (re_match style);
+   otherwise the position of the match is returned.  */
+
+static regoff_t
+internal_function
+re_search_stub (struct re_pattern_buffer *bufp,
+		const char *string, Idx length,
+		Idx start, regoff_t range, Idx stop, struct re_registers *regs,
+		bool ret_len)
+{
+  reg_errcode_t result;
+  regmatch_t *pmatch;
+  Idx nregs;
+  regoff_t rval;
+  int eflags = 0;
+#ifdef _LIBC
+  re_dfa_t *dfa = (re_dfa_t *) bufp->buffer;
+#endif
+  Idx last_start = start + range;
+
+  /* Check for out-of-range.  */
+  if (BE (start < 0 || start > length, 0))
+    return -1;
+  if (BE (length < last_start || (0 <= range && last_start < start), 0))
+    last_start = length;
+  else if (BE (last_start < 0 || (range < 0 && start <= last_start), 0))
+    last_start = 0;
+
+  __libc_lock_lock (dfa->lock);
+
+  eflags |= (bufp->not_bol) ? REG_NOTBOL : 0;
+  eflags |= (bufp->not_eol) ? REG_NOTEOL : 0;
+
+  /* Compile fastmap if we haven't yet.  */
+  if (start < last_start && bufp->fastmap != NULL && !bufp->fastmap_accurate)
+    re_compile_fastmap (bufp);
+
+  if (BE (bufp->no_sub, 0))
+    regs = NULL;
+
+  /* We need at least 1 register.  */
+  if (regs == NULL)
+    nregs = 1;
+  else if (BE (bufp->regs_allocated == REGS_FIXED
+	       && regs->num_regs <= bufp->re_nsub, 0))
+    {
+      nregs = regs->num_regs;
+      if (BE (nregs < 1, 0))
+	{
+	  /* Nothing can be copied to regs.  */
+	  regs = NULL;
+	  nregs = 1;
+	}
+    }
+  else
+    nregs = bufp->re_nsub + 1;
+  pmatch = re_malloc (regmatch_t, nregs);
+  if (BE (pmatch == NULL, 0))
+    {
+      rval = -2;
+      goto out;
+    }
+
+  result = re_search_internal (bufp, string, length, start, last_start, stop,
+			       nregs, pmatch, eflags);
+
+  rval = 0;
+
+  /* I hope we needn't fill ther regs with -1's when no match was found.  */
+  if (result != REG_NOERROR)
+    rval = -1;
+  else if (regs != NULL)
+    {
+      /* If caller wants register contents data back, copy them.  */
+      bufp->regs_allocated = re_copy_regs (regs, pmatch, nregs,
+					   bufp->regs_allocated);
+      if (BE (bufp->regs_allocated == REGS_UNALLOCATED, 0))
+	rval = -2;
+    }
+
+  if (BE (rval == 0, 1))
+    {
+      if (ret_len)
+	{
+	  assert (pmatch[0].rm_so == start);
+	  rval = pmatch[0].rm_eo - start;
+	}
+      else
+	rval = pmatch[0].rm_so;
+    }
+  re_free (pmatch);
+ out:
+  __libc_lock_unlock (dfa->lock);
+  return rval;
+}
+
+static unsigned int
+internal_function
+re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, Idx nregs,
+	      int regs_allocated)
+{
+  int rval = REGS_REALLOCATE;
+  Idx i;
+  Idx need_regs = nregs + 1;
+  /* We need one extra element beyond `num_regs' for the `-1' marker GNU code
+     uses.  */
+
+  /* Have the register data arrays been allocated?  */
+  if (regs_allocated == REGS_UNALLOCATED)
+    { /* No.  So allocate them with malloc.  */
+      regs->start = re_malloc (regoff_t, need_regs);
+      if (BE (regs->start == NULL, 0))
+	return REGS_UNALLOCATED;
+      regs->end = re_malloc (regoff_t, need_regs);
+      if (BE (regs->end == NULL, 0))
+	{
+	  re_free (regs->start);
+	  return REGS_UNALLOCATED;
+	}
+      regs->num_regs = need_regs;
+    }
+  else if (regs_allocated == REGS_REALLOCATE)
+    { /* Yes.  If we need more elements than were already
+	 allocated, reallocate them.  If we need fewer, just
+	 leave it alone.  */
+      if (BE (need_regs > regs->num_regs, 0))
+	{
+	  regoff_t *new_start = re_realloc (regs->start, regoff_t, need_regs);
+	  regoff_t *new_end;
+	  if (BE (new_start == NULL, 0))
+	    return REGS_UNALLOCATED;
+	  new_end = re_realloc (regs->end, regoff_t, need_regs);
+	  if (BE (new_end == NULL, 0))
+	    {
+	      re_free (new_start);
+	      return REGS_UNALLOCATED;
+	    }
+	  regs->start = new_start;
+	  regs->end = new_end;
+	  regs->num_regs = need_regs;
+	}
+    }
+  else
+    {
+      assert (regs_allocated == REGS_FIXED);
+      /* This function may not be called with REGS_FIXED and nregs too big.  */
+      assert (regs->num_regs >= nregs);
+      rval = REGS_FIXED;
+    }
+
+  /* Copy the regs.  */
+  for (i = 0; i < nregs; ++i)
+    {
+      regs->start[i] = pmatch[i].rm_so;
+      regs->end[i] = pmatch[i].rm_eo;
+    }
+  for ( ; i < regs->num_regs; ++i)
+    regs->start[i] = regs->end[i] = -1;
+
+  return rval;
+}
+
+/* Set REGS to hold NUM_REGS registers, storing them in STARTS and
+   ENDS.  Subsequent matches using PATTERN_BUFFER and REGS will use
+   this memory for recording register information.  STARTS and ENDS
+   must be allocated using the malloc library routine, and must each
+   be at least NUM_REGS * sizeof (regoff_t) bytes long.
+
+   If NUM_REGS == 0, then subsequent matches should allocate their own
+   register data.
+
+   Unless this function is called, the first search or match using
+   PATTERN_BUFFER will allocate its own register data, without
+   freeing the old data.  */
+
+void
+re_set_registers (bufp, regs, num_regs, starts, ends)
+    struct re_pattern_buffer *bufp;
+    struct re_registers *regs;
+    __re_size_t num_regs;
+    regoff_t *starts, *ends;
+{
+  if (num_regs)
+    {
+      bufp->regs_allocated = REGS_REALLOCATE;
+      regs->num_regs = num_regs;
+      regs->start = starts;
+      regs->end = ends;
+    }
+  else
+    {
+      bufp->regs_allocated = REGS_UNALLOCATED;
+      regs->num_regs = 0;
+      regs->start = regs->end = NULL;
+    }
+}
+#ifdef _LIBC
+weak_alias (__re_set_registers, re_set_registers)
+#endif
+
+/* Entry points compatible with 4.2 BSD regex library.  We don't define
+   them unless specifically requested.  */
+
+#if defined _REGEX_RE_COMP || defined _LIBC
+int
+# ifdef _LIBC
+weak_function
+# endif
+re_exec (s)
+     const char *s;
+{
+  return 0 == regexec (&re_comp_buf, s, 0, NULL, 0);
+}
+#endif /* _REGEX_RE_COMP */
+
+/* Internal entry point.  */
+
+/* Searches for a compiled pattern PREG in the string STRING, whose
+   length is LENGTH.  NMATCH, PMATCH, and EFLAGS have the same
+   meaning as with regexec.  LAST_START is START + RANGE, where
+   START and RANGE have the same meaning as with re_search.
+   Return REG_NOERROR if we find a match, and REG_NOMATCH if not,
+   otherwise return the error code.
+   Note: We assume front end functions already check ranges.
+   (0 <= LAST_START && LAST_START <= LENGTH)  */
+
+static reg_errcode_t
+internal_function
+re_search_internal (const regex_t *preg,
+		    const char *string, Idx length,
+		    Idx start, Idx last_start, Idx stop,
+		    size_t nmatch, regmatch_t pmatch[],
+		    int eflags)
+{
+  reg_errcode_t err;
+  const re_dfa_t *dfa = (const re_dfa_t *) preg->buffer;
+  Idx left_lim, right_lim;
+  int incr;
+  bool fl_longest_match;
+  int match_kind;
+  Idx match_first;
+  Idx match_last = REG_MISSING;
+  Idx extra_nmatch;
+  bool sb;
+  int ch;
+#if defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
+  re_match_context_t mctx = { .dfa = dfa };
+#else
+  re_match_context_t mctx;
+#endif
+  char *fastmap = ((preg->fastmap != NULL && preg->fastmap_accurate
+		    && start != last_start && !preg->can_be_null)
+		   ? preg->fastmap : NULL);
+  RE_TRANSLATE_TYPE t = preg->translate;
+
+#if !(defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L))
+  memset (&mctx, '\0', sizeof (re_match_context_t));
+  mctx.dfa = dfa;
+#endif
+
+  extra_nmatch = (nmatch > preg->re_nsub) ? nmatch - (preg->re_nsub + 1) : 0;
+  nmatch -= extra_nmatch;
+
+  /* Check if the DFA haven't been compiled.  */
+  if (BE (preg->used == 0 || dfa->init_state == NULL
+	  || dfa->init_state_word == NULL || dfa->init_state_nl == NULL
+	  || dfa->init_state_begbuf == NULL, 0))
+    return REG_NOMATCH;
+
+#ifdef DEBUG
+  /* We assume front-end functions already check them.  */
+  assert (0 <= last_start && last_start <= length);
+#endif
+
+  /* If initial states with non-begbuf contexts have no elements,
+     the regex must be anchored.  If preg->newline_anchor is set,
+     we'll never use init_state_nl, so do not check it.  */
+  if (dfa->init_state->nodes.nelem == 0
+      && dfa->init_state_word->nodes.nelem == 0
+      && (dfa->init_state_nl->nodes.nelem == 0
+	  || !preg->newline_anchor))
+    {
+      if (start != 0 && last_start != 0)
+        return REG_NOMATCH;
+      start = last_start = 0;
+    }
+
+  /* We must check the longest matching, if nmatch > 0.  */
+  fl_longest_match = (nmatch != 0 || dfa->nbackref);
+
+  err = re_string_allocate (&mctx.input, string, length, dfa->nodes_len + 1,
+			    preg->translate, preg->syntax & RE_ICASE, dfa);
+  if (BE (err != REG_NOERROR, 0))
+    goto free_return;
+  mctx.input.stop = stop;
+  mctx.input.raw_stop = stop;
+  mctx.input.newline_anchor = preg->newline_anchor;
+
+  err = match_ctx_init (&mctx, eflags, dfa->nbackref * 2);
+  if (BE (err != REG_NOERROR, 0))
+    goto free_return;
+
+  /* We will log all the DFA states through which the dfa pass,
+     if nmatch > 1, or this dfa has "multibyte node", which is a
+     back-reference or a node which can accept multibyte character or
+     multi character collating element.  */
+  if (nmatch > 1 || dfa->has_mb_node)
+    {
+      /* Avoid overflow.  */
+      if (BE (SIZE_MAX / sizeof (re_dfastate_t *) <= mctx.input.bufs_len, 0))
+	{
+	  err = REG_ESPACE;
+	  goto free_return;
+	}
+
+      mctx.state_log = re_malloc (re_dfastate_t *, mctx.input.bufs_len + 1);
+      if (BE (mctx.state_log == NULL, 0))
+	{
+	  err = REG_ESPACE;
+	  goto free_return;
+	}
+    }
+  else
+    mctx.state_log = NULL;
+
+  match_first = start;
+  mctx.input.tip_context = (eflags & REG_NOTBOL) ? CONTEXT_BEGBUF
+			   : CONTEXT_NEWLINE | CONTEXT_BEGBUF;
+
+  /* Check incrementally whether of not the input string match.  */
+  incr = (last_start < start) ? -1 : 1;
+  left_lim = (last_start < start) ? last_start : start;
+  right_lim = (last_start < start) ? start : last_start;
+  sb = dfa->mb_cur_max == 1;
+  match_kind =
+    (fastmap
+     ? ((sb || !(preg->syntax & RE_ICASE || t) ? 4 : 0)
+	| (start <= last_start ? 2 : 0)
+	| (t != NULL ? 1 : 0))
+     : 8);
+
+  for (;; match_first += incr)
+    {
+      err = REG_NOMATCH;
+      if (match_first < left_lim || right_lim < match_first)
+	goto free_return;
+
+      /* Advance as rapidly as possible through the string, until we
+	 find a plausible place to start matching.  This may be done
+	 with varying efficiency, so there are various possibilities:
+	 only the most common of them are specialized, in order to
+	 save on code size.  We use a switch statement for speed.  */
+      switch (match_kind)
+	{
+	case 8:
+	  /* No fastmap.  */
+	  break;
+
+	case 7:
+	  /* Fastmap with single-byte translation, match forward.  */
+	  while (BE (match_first < right_lim, 1)
+		 && !fastmap[t[(unsigned char) string[match_first]]])
+	    ++match_first;
+	  goto forward_match_found_start_or_reached_end;
+
+	case 6:
+	  /* Fastmap without translation, match forward.  */
+	  while (BE (match_first < right_lim, 1)
+		 && !fastmap[(unsigned char) string[match_first]])
+	    ++match_first;
+
+	forward_match_found_start_or_reached_end:
+	  if (BE (match_first == right_lim, 0))
+	    {
+	      ch = match_first >= length
+		       ? 0 : (unsigned char) string[match_first];
+	      if (!fastmap[t ? t[ch] : ch])
+		goto free_return;
+	    }
+	  break;
+
+	case 4:
+	case 5:
+	  /* Fastmap without multi-byte translation, match backwards.  */
+	  while (match_first >= left_lim)
+	    {
+	      ch = match_first >= length
+		       ? 0 : (unsigned char) string[match_first];
+	      if (fastmap[t ? t[ch] : ch])
+		break;
+	      --match_first;
+	    }
+	  if (match_first < left_lim)
+	    goto free_return;
+	  break;
+
+	default:
+	  /* In this case, we can't determine easily the current byte,
+	     since it might be a component byte of a multibyte
+	     character.  Then we use the constructed buffer instead.  */
+	  for (;;)
+	    {
+	      /* If MATCH_FIRST is out of the valid range, reconstruct the
+		 buffers.  */
+	      __re_size_t offset = match_first - mctx.input.raw_mbs_idx;
+	      if (BE (offset >= (__re_size_t) mctx.input.valid_raw_len, 0))
+		{
+		  err = re_string_reconstruct (&mctx.input, match_first,
+					       eflags);
+		  if (BE (err != REG_NOERROR, 0))
+		    goto free_return;
+
+		  offset = match_first - mctx.input.raw_mbs_idx;
+		}
+	      /* If MATCH_FIRST is out of the buffer, leave it as '\0'.
+		 Note that MATCH_FIRST must not be smaller than 0.  */
+	      ch = (match_first >= length
+		    ? 0 : re_string_byte_at (&mctx.input, offset));
+	      if (fastmap[ch])
+		break;
+	      match_first += incr;
+	      if (match_first < left_lim || match_first > right_lim)
+	        {
+	          err = REG_NOMATCH;
+	          goto free_return;
+	        }
+	    }
+	  break;
+	}
+
+      /* Reconstruct the buffers so that the matcher can assume that
+	 the matching starts from the beginning of the buffer.  */
+      err = re_string_reconstruct (&mctx.input, match_first, eflags);
+      if (BE (err != REG_NOERROR, 0))
+	goto free_return;
+
+#ifdef RE_ENABLE_I18N
+     /* Don't consider this char as a possible match start if it part,
+	yet isn't the head, of a multibyte character.  */
+      if (!sb && !re_string_first_byte (&mctx.input, 0))
+	continue;
+#endif
+
+      /* It seems to be appropriate one, then use the matcher.  */
+      /* We assume that the matching starts from 0.  */
+      mctx.state_log_top = mctx.nbkref_ents = mctx.max_mb_elem_len = 0;
+      match_last = check_matching (&mctx, fl_longest_match,
+				   start <= last_start ? &match_first : NULL);
+      if (match_last != REG_MISSING)
+	{
+	  if (BE (match_last == REG_ERROR, 0))
+	    {
+	      err = REG_ESPACE;
+	      goto free_return;
+	    }
+	  else
+	    {
+	      mctx.match_last = match_last;
+	      if ((!preg->no_sub && nmatch > 1) || dfa->nbackref)
+		{
+		  re_dfastate_t *pstate = mctx.state_log[match_last];
+		  mctx.last_node = check_halt_state_context (&mctx, pstate,
+							     match_last);
+		}
+	      if ((!preg->no_sub && nmatch > 1 && dfa->has_plural_match)
+		  || dfa->nbackref)
+		{
+		  err = prune_impossible_nodes (&mctx);
+		  if (err == REG_NOERROR)
+		    break;
+		  if (BE (err != REG_NOMATCH, 0))
+		    goto free_return;
+		  match_last = REG_MISSING;
+		}
+	      else
+		break; /* We found a match.  */
+	    }
+	}
+
+      match_ctx_clean (&mctx);
+    }
+
+#ifdef DEBUG
+  assert (match_last != REG_MISSING);
+  assert (err == REG_NOERROR);
+#endif
+
+  /* Set pmatch[] if we need.  */
+  if (nmatch > 0)
+    {
+      Idx reg_idx;
+
+      /* Initialize registers.  */
+      for (reg_idx = 1; reg_idx < nmatch; ++reg_idx)
+	pmatch[reg_idx].rm_so = pmatch[reg_idx].rm_eo = -1;
+
+      /* Set the points where matching start/end.  */
+      pmatch[0].rm_so = 0;
+      pmatch[0].rm_eo = mctx.match_last;
+      /* FIXME: This function should fail if mctx.match_last exceeds
+	 the maximum possible regoff_t value.  We need a new error
+	 code REG_OVERFLOW.  */
+
+      if (!preg->no_sub && nmatch > 1)
+	{
+	  err = set_regs (preg, &mctx, nmatch, pmatch,
+			  dfa->has_plural_match && dfa->nbackref > 0);
+	  if (BE (err != REG_NOERROR, 0))
+	    goto free_return;
+	}
+
+      /* At last, add the offset to the each registers, since we slided
+	 the buffers so that we could assume that the matching starts
+	 from 0.  */
+      for (reg_idx = 0; reg_idx < nmatch; ++reg_idx)
+	if (pmatch[reg_idx].rm_so != -1)
+	  {
+#ifdef RE_ENABLE_I18N
+	    if (BE (mctx.input.offsets_needed != 0, 0))
+	      {
+		pmatch[reg_idx].rm_so =
+		  (pmatch[reg_idx].rm_so == mctx.input.valid_len
+		   ? mctx.input.valid_raw_len
+		   : mctx.input.offsets[pmatch[reg_idx].rm_so]);
+		pmatch[reg_idx].rm_eo =
+		  (pmatch[reg_idx].rm_eo == mctx.input.valid_len
+		   ? mctx.input.valid_raw_len
+		   : mctx.input.offsets[pmatch[reg_idx].rm_eo]);
+	      }
+#else
+	    assert (mctx.input.offsets_needed == 0);
+#endif
+	    pmatch[reg_idx].rm_so += match_first;
+	    pmatch[reg_idx].rm_eo += match_first;
+	  }
+      for (reg_idx = 0; reg_idx < extra_nmatch; ++reg_idx)
+	{
+	  pmatch[nmatch + reg_idx].rm_so = -1;
+	  pmatch[nmatch + reg_idx].rm_eo = -1;
+	}
+
+      if (dfa->subexp_map)
+        for (reg_idx = 0; reg_idx + 1 < nmatch; reg_idx++)
+          if (dfa->subexp_map[reg_idx] != reg_idx)
+            {
+              pmatch[reg_idx + 1].rm_so
+                = pmatch[dfa->subexp_map[reg_idx] + 1].rm_so;
+              pmatch[reg_idx + 1].rm_eo
+                = pmatch[dfa->subexp_map[reg_idx] + 1].rm_eo;
+            }
+    }
+
+ free_return:
+  re_free (mctx.state_log);
+  if (dfa->nbackref)
+    match_ctx_free (&mctx);
+  re_string_destruct (&mctx.input);
+  return err;
+}
+
+static reg_errcode_t
+internal_function
+prune_impossible_nodes (re_match_context_t *mctx)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  Idx halt_node, match_last;
+  reg_errcode_t ret;
+  re_dfastate_t **sifted_states;
+  re_dfastate_t **lim_states = NULL;
+  re_sift_context_t sctx;
+#ifdef DEBUG
+  assert (mctx->state_log != NULL);
+#endif
+  match_last = mctx->match_last;
+  halt_node = mctx->last_node;
+
+  /* Avoid overflow.  */
+  if (BE (SIZE_MAX / sizeof (re_dfastate_t *) <= match_last, 0))
+    return REG_ESPACE;
+
+  sifted_states = re_malloc (re_dfastate_t *, match_last + 1);
+  if (BE (sifted_states == NULL, 0))
+    {
+      ret = REG_ESPACE;
+      goto free_return;
+    }
+  if (dfa->nbackref)
+    {
+      lim_states = re_malloc (re_dfastate_t *, match_last + 1);
+      if (BE (lim_states == NULL, 0))
+	{
+	  ret = REG_ESPACE;
+	  goto free_return;
+	}
+      while (1)
+	{
+	  memset (lim_states, '\0',
+		  sizeof (re_dfastate_t *) * (match_last + 1));
+	  sift_ctx_init (&sctx, sifted_states, lim_states, halt_node,
+			 match_last);
+	  ret = sift_states_backward (mctx, &sctx);
+	  re_node_set_free (&sctx.limits);
+	  if (BE (ret != REG_NOERROR, 0))
+	      goto free_return;
+	  if (sifted_states[0] != NULL || lim_states[0] != NULL)
+	    break;
+	  do
+	    {
+	      --match_last;
+	      if (! REG_VALID_INDEX (match_last))
+		{
+		  ret = REG_NOMATCH;
+		  goto free_return;
+		}
+	    } while (mctx->state_log[match_last] == NULL
+		     || !mctx->state_log[match_last]->halt);
+	  halt_node = check_halt_state_context (mctx,
+						mctx->state_log[match_last],
+						match_last);
+	}
+      ret = merge_state_array (dfa, sifted_states, lim_states,
+			       match_last + 1);
+      re_free (lim_states);
+      lim_states = NULL;
+      if (BE (ret != REG_NOERROR, 0))
+	goto free_return;
+    }
+  else
+    {
+      sift_ctx_init (&sctx, sifted_states, lim_states, halt_node, match_last);
+      ret = sift_states_backward (mctx, &sctx);
+      re_node_set_free (&sctx.limits);
+      if (BE (ret != REG_NOERROR, 0))
+	goto free_return;
+    }
+  re_free (mctx->state_log);
+  mctx->state_log = sifted_states;
+  sifted_states = NULL;
+  mctx->last_node = halt_node;
+  mctx->match_last = match_last;
+  ret = REG_NOERROR;
+ free_return:
+  re_free (sifted_states);
+  re_free (lim_states);
+  return ret;
+}
+
+/* Acquire an initial state and return it.
+   We must select appropriate initial state depending on the context,
+   since initial states may have constraints like "\<", "^", etc..  */
+
+static inline re_dfastate_t *
+__attribute ((always_inline)) internal_function
+acquire_init_state_context (reg_errcode_t *err, const re_match_context_t *mctx,
+			    Idx idx)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  if (dfa->init_state->has_constraint)
+    {
+      unsigned int context;
+      context = re_string_context_at (&mctx->input, idx - 1, mctx->eflags);
+      if (IS_WORD_CONTEXT (context))
+	return dfa->init_state_word;
+      else if (IS_ORDINARY_CONTEXT (context))
+	return dfa->init_state;
+      else if (IS_BEGBUF_CONTEXT (context) && IS_NEWLINE_CONTEXT (context))
+	return dfa->init_state_begbuf;
+      else if (IS_NEWLINE_CONTEXT (context))
+	return dfa->init_state_nl;
+      else if (IS_BEGBUF_CONTEXT (context))
+	{
+	  /* It is relatively rare case, then calculate on demand.  */
+	  return re_acquire_state_context (err, dfa,
+					   dfa->init_state->entrance_nodes,
+					   context);
+	}
+      else
+	/* Must not happen?  */
+	return dfa->init_state;
+    }
+  else
+    return dfa->init_state;
+}
+
+/* Check whether the regular expression match input string INPUT or not,
+   and return the index where the matching end.  Return REG_MISSING if
+   there is no match, and return REG_ERROR in case of an error.
+   FL_LONGEST_MATCH means we want the POSIX longest matching.
+   If P_MATCH_FIRST is not NULL, and the match fails, it is set to the
+   next place where we may want to try matching.
+   Note that the matcher assume that the maching starts from the current
+   index of the buffer.  */
+
+static Idx
+internal_function
+check_matching (re_match_context_t *mctx, bool fl_longest_match,
+		Idx *p_match_first)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  reg_errcode_t err;
+  Idx match = 0;
+  Idx match_last = REG_MISSING;
+  Idx cur_str_idx = re_string_cur_idx (&mctx->input);
+  re_dfastate_t *cur_state;
+  bool at_init_state = p_match_first != NULL;
+  Idx next_start_idx = cur_str_idx;
+
+  err = REG_NOERROR;
+  cur_state = acquire_init_state_context (&err, mctx, cur_str_idx);
+  /* An initial state must not be NULL (invalid).  */
+  if (BE (cur_state == NULL, 0))
+    {
+      assert (err == REG_ESPACE);
+      return REG_ERROR;
+    }
+
+  if (mctx->state_log != NULL)
+    {
+      mctx->state_log[cur_str_idx] = cur_state;
+
+      /* Check OP_OPEN_SUBEXP in the initial state in case that we use them
+	 later.  E.g. Processing back references.  */
+      if (BE (dfa->nbackref, 0))
+	{
+	  at_init_state = false;
+	  err = check_subexp_matching_top (mctx, &cur_state->nodes, 0);
+	  if (BE (err != REG_NOERROR, 0))
+	    return err;
+
+	  if (cur_state->has_backref)
+	    {
+	      err = transit_state_bkref (mctx, &cur_state->nodes);
+	      if (BE (err != REG_NOERROR, 0))
+	        return err;
+	    }
+	}
+    }
+
+  /* If the RE accepts NULL string.  */
+  if (BE (cur_state->halt, 0))
+    {
+      if (!cur_state->has_constraint
+	  || check_halt_state_context (mctx, cur_state, cur_str_idx))
+	{
+	  if (!fl_longest_match)
+	    return cur_str_idx;
+	  else
+	    {
+	      match_last = cur_str_idx;
+	      match = 1;
+	    }
+	}
+    }
+
+  while (!re_string_eoi (&mctx->input))
+    {
+      re_dfastate_t *old_state = cur_state;
+      Idx next_char_idx = re_string_cur_idx (&mctx->input) + 1;
+
+      if (BE (next_char_idx >= mctx->input.bufs_len, 0)
+          || (BE (next_char_idx >= mctx->input.valid_len, 0)
+              && mctx->input.valid_len < mctx->input.len))
+        {
+          err = extend_buffers (mctx);
+          if (BE (err != REG_NOERROR, 0))
+	    {
+	      assert (err == REG_ESPACE);
+	      return REG_ERROR;
+	    }
+        }
+
+      cur_state = transit_state (&err, mctx, cur_state);
+      if (mctx->state_log != NULL)
+	cur_state = merge_state_with_log (&err, mctx, cur_state);
+
+      if (cur_state == NULL)
+	{
+	  /* Reached the invalid state or an error.  Try to recover a valid
+	     state using the state log, if available and if we have not
+	     already found a valid (even if not the longest) match.  */
+	  if (BE (err != REG_NOERROR, 0))
+	    return REG_ERROR;
+
+	  if (mctx->state_log == NULL
+	      || (match && !fl_longest_match)
+	      || (cur_state = find_recover_state (&err, mctx)) == NULL)
+	    break;
+	}
+
+      if (BE (at_init_state, 0))
+	{
+	  if (old_state == cur_state)
+	    next_start_idx = next_char_idx;
+	  else
+	    at_init_state = false;
+	}
+
+      if (cur_state->halt)
+	{
+	  /* Reached a halt state.
+	     Check the halt state can satisfy the current context.  */
+	  if (!cur_state->has_constraint
+	      || check_halt_state_context (mctx, cur_state,
+					   re_string_cur_idx (&mctx->input)))
+	    {
+	      /* We found an appropriate halt state.  */
+	      match_last = re_string_cur_idx (&mctx->input);
+	      match = 1;
+
+	      /* We found a match, do not modify match_first below.  */
+	      p_match_first = NULL;
+	      if (!fl_longest_match)
+		break;
+	    }
+	}
+    }
+
+  if (p_match_first)
+    *p_match_first += next_start_idx;
+
+  return match_last;
+}
+
+/* Check NODE match the current context.  */
+
+static bool
+internal_function
+check_halt_node_context (const re_dfa_t *dfa, Idx node, unsigned int context)
+{
+  re_token_type_t type = dfa->nodes[node].type;
+  unsigned int constraint = dfa->nodes[node].constraint;
+  if (type != END_OF_RE)
+    return false;
+  if (!constraint)
+    return true;
+  if (NOT_SATISFY_NEXT_CONSTRAINT (constraint, context))
+    return false;
+  return true;
+}
+
+/* Check the halt state STATE match the current context.
+   Return 0 if not match, if the node, STATE has, is a halt node and
+   match the context, return the node.  */
+
+static Idx
+internal_function
+check_halt_state_context (const re_match_context_t *mctx,
+			  const re_dfastate_t *state, Idx idx)
+{
+  Idx i;
+  unsigned int context;
+#ifdef DEBUG
+  assert (state->halt);
+#endif
+  context = re_string_context_at (&mctx->input, idx, mctx->eflags);
+  for (i = 0; i < state->nodes.nelem; ++i)
+    if (check_halt_node_context (mctx->dfa, state->nodes.elems[i], context))
+      return state->nodes.elems[i];
+  return 0;
+}
+
+/* Compute the next node to which "NFA" transit from NODE("NFA" is a NFA
+   corresponding to the DFA).
+   Return the destination node, and update EPS_VIA_NODES;
+   return REG_MISSING in case of errors.  */
+
+static Idx
+internal_function
+proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs,
+		   Idx *pidx, Idx node, re_node_set *eps_via_nodes,
+		   struct re_fail_stack_t *fs)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  Idx i;
+  bool ok;
+  if (IS_EPSILON_NODE (dfa->nodes[node].type))
+    {
+      re_node_set *cur_nodes = &mctx->state_log[*pidx]->nodes;
+      re_node_set *edests = &dfa->edests[node];
+      Idx dest_node;
+      ok = re_node_set_insert (eps_via_nodes, node);
+      if (BE (! ok, 0))
+	return REG_ERROR;
+      /* Pick up a valid destination, or return REG_MISSING if none
+	 is found.  */
+      for (dest_node = REG_MISSING, i = 0; i < edests->nelem; ++i)
+	{
+	  Idx candidate = edests->elems[i];
+	  if (!re_node_set_contains (cur_nodes, candidate))
+	    continue;
+          if (dest_node == REG_MISSING)
+	    dest_node = candidate;
+
+          else
+	    {
+	      /* In order to avoid infinite loop like "(a*)*", return the second
+	         epsilon-transition if the first was already considered.  */
+	      if (re_node_set_contains (eps_via_nodes, dest_node))
+	        return candidate;
+
+	      /* Otherwise, push the second epsilon-transition on the fail stack.  */
+	      else if (fs != NULL
+		       && push_fail_stack (fs, *pidx, candidate, nregs, regs,
+				           eps_via_nodes))
+		return REG_ERROR;
+
+	      /* We know we are going to exit.  */
+	      break;
+	    }
+	}
+      return dest_node;
+    }
+  else
+    {
+      Idx naccepted = 0;
+      re_token_type_t type = dfa->nodes[node].type;
+
+#ifdef RE_ENABLE_I18N
+      if (dfa->nodes[node].accept_mb)
+	naccepted = check_node_accept_bytes (dfa, node, &mctx->input, *pidx);
+      else
+#endif /* RE_ENABLE_I18N */
+      if (type == OP_BACK_REF)
+	{
+	  Idx subexp_idx = dfa->nodes[node].opr.idx + 1;
+	  naccepted = regs[subexp_idx].rm_eo - regs[subexp_idx].rm_so;
+	  if (fs != NULL)
+	    {
+	      if (regs[subexp_idx].rm_so == -1 || regs[subexp_idx].rm_eo == -1)
+		return REG_MISSING;
+	      else if (naccepted)
+		{
+		  char *buf = (char *) re_string_get_buffer (&mctx->input);
+		  if (memcmp (buf + regs[subexp_idx].rm_so, buf + *pidx,
+			      naccepted) != 0)
+		    return REG_MISSING;
+		}
+	    }
+
+	  if (naccepted == 0)
+	    {
+	      Idx dest_node;
+	      ok = re_node_set_insert (eps_via_nodes, node);
+	      if (BE (! ok, 0))
+		return REG_ERROR;
+	      dest_node = dfa->edests[node].elems[0];
+	      if (re_node_set_contains (&mctx->state_log[*pidx]->nodes,
+					dest_node))
+		return dest_node;
+	    }
+	}
+
+      if (naccepted != 0
+	  || check_node_accept (mctx, dfa->nodes + node, *pidx))
+	{
+	  Idx dest_node = dfa->nexts[node];
+	  *pidx = (naccepted == 0) ? *pidx + 1 : *pidx + naccepted;
+	  if (fs && (*pidx > mctx->match_last || mctx->state_log[*pidx] == NULL
+		     || !re_node_set_contains (&mctx->state_log[*pidx]->nodes,
+					       dest_node)))
+	    return REG_MISSING;
+	  re_node_set_empty (eps_via_nodes);
+	  return dest_node;
+	}
+    }
+  return REG_MISSING;
+}
+
+static reg_errcode_t
+internal_function
+push_fail_stack (struct re_fail_stack_t *fs, Idx str_idx, Idx dest_node,
+		 Idx nregs, regmatch_t *regs, re_node_set *eps_via_nodes)
+{
+  reg_errcode_t err;
+  Idx num = fs->num++;
+  if (fs->num == fs->alloc)
+    {
+      struct re_fail_stack_ent_t *new_array;
+      new_array = realloc (fs->stack, (sizeof (struct re_fail_stack_ent_t)
+				       * fs->alloc * 2));
+      if (new_array == NULL)
+	return REG_ESPACE;
+      fs->alloc *= 2;
+      fs->stack = new_array;
+    }
+  fs->stack[num].idx = str_idx;
+  fs->stack[num].node = dest_node;
+  fs->stack[num].regs = re_malloc (regmatch_t, nregs);
+  if (fs->stack[num].regs == NULL)
+    return REG_ESPACE;
+  memcpy (fs->stack[num].regs, regs, sizeof (regmatch_t) * nregs);
+  err = re_node_set_init_copy (&fs->stack[num].eps_via_nodes, eps_via_nodes);
+  return err;
+}
+
+static Idx
+internal_function
+pop_fail_stack (struct re_fail_stack_t *fs, Idx *pidx, Idx nregs,
+		regmatch_t *regs, re_node_set *eps_via_nodes)
+{
+  Idx num = --fs->num;
+  assert (REG_VALID_INDEX (num));
+  *pidx = fs->stack[num].idx;
+  memcpy (regs, fs->stack[num].regs, sizeof (regmatch_t) * nregs);
+  re_node_set_free (eps_via_nodes);
+  re_free (fs->stack[num].regs);
+  *eps_via_nodes = fs->stack[num].eps_via_nodes;
+  return fs->stack[num].node;
+}
+
+/* Set the positions where the subexpressions are starts/ends to registers
+   PMATCH.
+   Note: We assume that pmatch[0] is already set, and
+   pmatch[i].rm_so == pmatch[i].rm_eo == -1 for 0 < i < nmatch.  */
+
+static reg_errcode_t
+internal_function
+set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch,
+	  regmatch_t *pmatch, bool fl_backtrack)
+{
+  const re_dfa_t *dfa = (const re_dfa_t *) preg->buffer;
+  Idx idx, cur_node;
+  re_node_set eps_via_nodes;
+  struct re_fail_stack_t *fs;
+  struct re_fail_stack_t fs_body = { 0, 2, NULL };
+  regmatch_t *prev_idx_match;
+  bool prev_idx_match_malloced = false;
+
+#ifdef DEBUG
+  assert (nmatch > 1);
+  assert (mctx->state_log != NULL);
+#endif
+  if (fl_backtrack)
+    {
+      fs = &fs_body;
+      fs->stack = re_malloc (struct re_fail_stack_ent_t, fs->alloc);
+      if (fs->stack == NULL)
+	return REG_ESPACE;
+    }
+  else
+    fs = NULL;
+
+  cur_node = dfa->init_node;
+  re_node_set_init_empty (&eps_via_nodes);
+
+  if (__libc_use_alloca (nmatch * sizeof (regmatch_t)))
+    prev_idx_match = (regmatch_t *) alloca (nmatch * sizeof (regmatch_t));
+  else
+    {
+      prev_idx_match = re_malloc (regmatch_t, nmatch);
+      if (prev_idx_match == NULL)
+	{
+	  free_fail_stack_return (fs);
+	  return REG_ESPACE;
+	}
+      prev_idx_match_malloced = true;
+    }
+  memcpy (prev_idx_match, pmatch, sizeof (regmatch_t) * nmatch);
+
+  for (idx = pmatch[0].rm_so; idx <= pmatch[0].rm_eo ;)
+    {
+      update_regs (dfa, pmatch, prev_idx_match, cur_node, idx, nmatch);
+
+      if (idx == pmatch[0].rm_eo && cur_node == mctx->last_node)
+	{
+	  Idx reg_idx;
+	  if (fs)
+	    {
+	      for (reg_idx = 0; reg_idx < nmatch; ++reg_idx)
+		if (pmatch[reg_idx].rm_so > -1 && pmatch[reg_idx].rm_eo == -1)
+		  break;
+	      if (reg_idx == nmatch)
+		{
+		  re_node_set_free (&eps_via_nodes);
+		  if (prev_idx_match_malloced)
+		    re_free (prev_idx_match);
+		  return free_fail_stack_return (fs);
+		}
+	      cur_node = pop_fail_stack (fs, &idx, nmatch, pmatch,
+					 &eps_via_nodes);
+	    }
+	  else
+	    {
+	      re_node_set_free (&eps_via_nodes);
+	      if (prev_idx_match_malloced)
+		re_free (prev_idx_match);
+	      return REG_NOERROR;
+	    }
+	}
+
+      /* Proceed to next node.  */
+      cur_node = proceed_next_node (mctx, nmatch, pmatch, &idx, cur_node,
+				    &eps_via_nodes, fs);
+
+      if (BE (! REG_VALID_INDEX (cur_node), 0))
+	{
+	  if (BE (cur_node == REG_ERROR, 0))
+	    {
+	      re_node_set_free (&eps_via_nodes);
+	      if (prev_idx_match_malloced)
+		re_free (prev_idx_match);
+	      free_fail_stack_return (fs);
+	      return REG_ESPACE;
+	    }
+	  if (fs)
+	    cur_node = pop_fail_stack (fs, &idx, nmatch, pmatch,
+				       &eps_via_nodes);
+	  else
+	    {
+	      re_node_set_free (&eps_via_nodes);
+	      if (prev_idx_match_malloced)
+		re_free (prev_idx_match);
+	      return REG_NOMATCH;
+	    }
+	}
+    }
+  re_node_set_free (&eps_via_nodes);
+  if (prev_idx_match_malloced)
+    re_free (prev_idx_match);
+  return free_fail_stack_return (fs);
+}
+
+static reg_errcode_t
+internal_function
+free_fail_stack_return (struct re_fail_stack_t *fs)
+{
+  if (fs)
+    {
+      Idx fs_idx;
+      for (fs_idx = 0; fs_idx < fs->num; ++fs_idx)
+	{
+	  re_node_set_free (&fs->stack[fs_idx].eps_via_nodes);
+	  re_free (fs->stack[fs_idx].regs);
+	}
+      re_free (fs->stack);
+    }
+  return REG_NOERROR;
+}
+
+static void
+internal_function
+update_regs (const re_dfa_t *dfa, regmatch_t *pmatch,
+	     regmatch_t *prev_idx_match, Idx cur_node, Idx cur_idx, Idx nmatch)
+{
+  int type = dfa->nodes[cur_node].type;
+  if (type == OP_OPEN_SUBEXP)
+    {
+      Idx reg_num = dfa->nodes[cur_node].opr.idx + 1;
+
+      /* We are at the first node of this sub expression.  */
+      if (reg_num < nmatch)
+	{
+	  pmatch[reg_num].rm_so = cur_idx;
+	  pmatch[reg_num].rm_eo = -1;
+	}
+    }
+  else if (type == OP_CLOSE_SUBEXP)
+    {
+      Idx reg_num = dfa->nodes[cur_node].opr.idx + 1;
+      if (reg_num < nmatch)
+	{
+	  /* We are at the last node of this sub expression.  */
+	  if (pmatch[reg_num].rm_so < cur_idx)
+	    {
+	      pmatch[reg_num].rm_eo = cur_idx;
+	      /* This is a non-empty match or we are not inside an optional
+		 subexpression.  Accept this right away.  */
+	      memcpy (prev_idx_match, pmatch, sizeof (regmatch_t) * nmatch);
+	    }
+	  else
+	    {
+	      if (dfa->nodes[cur_node].opt_subexp
+		  && prev_idx_match[reg_num].rm_so != -1)
+		/* We transited through an empty match for an optional
+		   subexpression, like (a?)*, and this is not the subexp's
+		   first match.  Copy back the old content of the registers
+		   so that matches of an inner subexpression are undone as
+		   well, like in ((a?))*.  */
+		memcpy (pmatch, prev_idx_match, sizeof (regmatch_t) * nmatch);
+	      else
+		/* We completed a subexpression, but it may be part of
+		   an optional one, so do not update PREV_IDX_MATCH.  */
+		pmatch[reg_num].rm_eo = cur_idx;
+	    }
+	}
+    }
+}
+
+/* This function checks the STATE_LOG from the SCTX->last_str_idx to 0
+   and sift the nodes in each states according to the following rules.
+   Updated state_log will be wrote to STATE_LOG.
+
+   Rules: We throw away the Node `a' in the STATE_LOG[STR_IDX] if...
+     1. When STR_IDX == MATCH_LAST(the last index in the state_log):
+	If `a' isn't the LAST_NODE and `a' can't epsilon transit to
+	the LAST_NODE, we throw away the node `a'.
+     2. When 0 <= STR_IDX < MATCH_LAST and `a' accepts
+	string `s' and transit to `b':
+	i. If 'b' isn't in the STATE_LOG[STR_IDX+strlen('s')], we throw
+	   away the node `a'.
+	ii. If 'b' is in the STATE_LOG[STR_IDX+strlen('s')] but 'b' is
+	    thrown away, we throw away the node `a'.
+     3. When 0 <= STR_IDX < MATCH_LAST and 'a' epsilon transit to 'b':
+	i. If 'b' isn't in the STATE_LOG[STR_IDX], we throw away the
+	   node `a'.
+	ii. If 'b' is in the STATE_LOG[STR_IDX] but 'b' is thrown away,
+	    we throw away the node `a'.  */
+
+#define STATE_NODE_CONTAINS(state,node) \
+  ((state) != NULL && re_node_set_contains (&(state)->nodes, node))
+
+static reg_errcode_t
+internal_function
+sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx)
+{
+  reg_errcode_t err;
+  int null_cnt = 0;
+  Idx str_idx = sctx->last_str_idx;
+  re_node_set cur_dest;
+
+#ifdef DEBUG
+  assert (mctx->state_log != NULL && mctx->state_log[str_idx] != NULL);
+#endif
+
+  /* Build sifted state_log[str_idx].  It has the nodes which can epsilon
+     transit to the last_node and the last_node itself.  */
+  err = re_node_set_init_1 (&cur_dest, sctx->last_node);
+  if (BE (err != REG_NOERROR, 0))
+    return err;
+  err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest);
+  if (BE (err != REG_NOERROR, 0))
+    goto free_return;
+
+  /* Then check each states in the state_log.  */
+  while (str_idx > 0)
+    {
+      /* Update counters.  */
+      null_cnt = (sctx->sifted_states[str_idx] == NULL) ? null_cnt + 1 : 0;
+      if (null_cnt > mctx->max_mb_elem_len)
+	{
+	  memset (sctx->sifted_states, '\0',
+		  sizeof (re_dfastate_t *) * str_idx);
+	  re_node_set_free (&cur_dest);
+	  return REG_NOERROR;
+	}
+      re_node_set_empty (&cur_dest);
+      --str_idx;
+
+      if (mctx->state_log[str_idx])
+	{
+	  err = build_sifted_states (mctx, sctx, str_idx, &cur_dest);
+          if (BE (err != REG_NOERROR, 0))
+	    goto free_return;
+	}
+
+      /* Add all the nodes which satisfy the following conditions:
+	 - It can epsilon transit to a node in CUR_DEST.
+	 - It is in CUR_SRC.
+	 And update state_log.  */
+      err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest);
+      if (BE (err != REG_NOERROR, 0))
+	goto free_return;
+    }
+  err = REG_NOERROR;
+ free_return:
+  re_node_set_free (&cur_dest);
+  return err;
+}
+
+static reg_errcode_t
+internal_function
+build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx,
+		     Idx str_idx, re_node_set *cur_dest)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  const re_node_set *cur_src = &mctx->state_log[str_idx]->non_eps_nodes;
+  Idx i;
+
+  /* Then build the next sifted state.
+     We build the next sifted state on `cur_dest', and update
+     `sifted_states[str_idx]' with `cur_dest'.
+     Note:
+     `cur_dest' is the sifted state from `state_log[str_idx + 1]'.
+     `cur_src' points the node_set of the old `state_log[str_idx]'
+     (with the epsilon nodes pre-filtered out).  */
+  for (i = 0; i < cur_src->nelem; i++)
+    {
+      Idx prev_node = cur_src->elems[i];
+      int naccepted = 0;
+      bool ok;
+
+#ifdef DEBUG
+      re_token_type_t type = dfa->nodes[prev_node].type;
+      assert (!IS_EPSILON_NODE (type));
+#endif
+#ifdef RE_ENABLE_I18N
+      /* If the node may accept `multi byte'.  */
+      if (dfa->nodes[prev_node].accept_mb)
+	naccepted = sift_states_iter_mb (mctx, sctx, prev_node,
+					 str_idx, sctx->last_str_idx);
+#endif /* RE_ENABLE_I18N */
+
+      /* We don't check backreferences here.
+	 See update_cur_sifted_state().  */
+      if (!naccepted
+	  && check_node_accept (mctx, dfa->nodes + prev_node, str_idx)
+	  && STATE_NODE_CONTAINS (sctx->sifted_states[str_idx + 1],
+				  dfa->nexts[prev_node]))
+	naccepted = 1;
+
+      if (naccepted == 0)
+	continue;
+
+      if (sctx->limits.nelem)
+	{
+	  Idx to_idx = str_idx + naccepted;
+	  if (check_dst_limits (mctx, &sctx->limits,
+				dfa->nexts[prev_node], to_idx,
+				prev_node, str_idx))
+	    continue;
+	}
+      ok = re_node_set_insert (cur_dest, prev_node);
+      if (BE (! ok, 0))
+	return REG_ESPACE;
+    }
+
+  return REG_NOERROR;
+}
+
+/* Helper functions.  */
+
+static reg_errcode_t
+internal_function
+clean_state_log_if_needed (re_match_context_t *mctx, Idx next_state_log_idx)
+{
+  Idx top = mctx->state_log_top;
+
+  if (next_state_log_idx >= mctx->input.bufs_len
+      || (next_state_log_idx >= mctx->input.valid_len
+	  && mctx->input.valid_len < mctx->input.len))
+    {
+      reg_errcode_t err;
+      err = extend_buffers (mctx);
+      if (BE (err != REG_NOERROR, 0))
+	return err;
+    }
+
+  if (top < next_state_log_idx)
+    {
+      memset (mctx->state_log + top + 1, '\0',
+	      sizeof (re_dfastate_t *) * (next_state_log_idx - top));
+      mctx->state_log_top = next_state_log_idx;
+    }
+  return REG_NOERROR;
+}
+
+static reg_errcode_t
+internal_function
+merge_state_array (const re_dfa_t *dfa, re_dfastate_t **dst,
+		   re_dfastate_t **src, Idx num)
+{
+  Idx st_idx;
+  reg_errcode_t err;
+  for (st_idx = 0; st_idx < num; ++st_idx)
+    {
+      if (dst[st_idx] == NULL)
+	dst[st_idx] = src[st_idx];
+      else if (src[st_idx] != NULL)
+	{
+	  re_node_set merged_set;
+	  err = re_node_set_init_union (&merged_set, &dst[st_idx]->nodes,
+					&src[st_idx]->nodes);
+	  if (BE (err != REG_NOERROR, 0))
+	    return err;
+	  dst[st_idx] = re_acquire_state (&err, dfa, &merged_set);
+	  re_node_set_free (&merged_set);
+	  if (BE (err != REG_NOERROR, 0))
+	    return err;
+	}
+    }
+  return REG_NOERROR;
+}
+
+static reg_errcode_t
+internal_function
+update_cur_sifted_state (const re_match_context_t *mctx,
+			 re_sift_context_t *sctx, Idx str_idx,
+			 re_node_set *dest_nodes)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  reg_errcode_t err = REG_NOERROR;
+  const re_node_set *candidates;
+  candidates = ((mctx->state_log[str_idx] == NULL) ? NULL
+		: &mctx->state_log[str_idx]->nodes);
+
+  if (dest_nodes->nelem == 0)
+    sctx->sifted_states[str_idx] = NULL;
+  else
+    {
+      if (candidates)
+	{
+	  /* At first, add the nodes which can epsilon transit to a node in
+	     DEST_NODE.  */
+	  err = add_epsilon_src_nodes (dfa, dest_nodes, candidates);
+	  if (BE (err != REG_NOERROR, 0))
+	    return err;
+
+	  /* Then, check the limitations in the current sift_context.  */
+	  if (sctx->limits.nelem)
+	    {
+	      err = check_subexp_limits (dfa, dest_nodes, candidates, &sctx->limits,
+					 mctx->bkref_ents, str_idx);
+	      if (BE (err != REG_NOERROR, 0))
+		return err;
+	    }
+	}
+
+      sctx->sifted_states[str_idx] = re_acquire_state (&err, dfa, dest_nodes);
+      if (BE (err != REG_NOERROR, 0))
+	return err;
+    }
+
+  if (candidates && mctx->state_log[str_idx]->has_backref)
+    {
+      err = sift_states_bkref (mctx, sctx, str_idx, candidates);
+      if (BE (err != REG_NOERROR, 0))
+	return err;
+    }
+  return REG_NOERROR;
+}
+
+static reg_errcode_t
+internal_function
+add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes,
+		       const re_node_set *candidates)
+{
+  reg_errcode_t err = REG_NOERROR;
+  Idx i;
+
+  re_dfastate_t *state = re_acquire_state (&err, dfa, dest_nodes);
+  if (BE (err != REG_NOERROR, 0))
+    return err;
+
+  if (!state->inveclosure.alloc)
+    {
+      err = re_node_set_alloc (&state->inveclosure, dest_nodes->nelem);
+      if (BE (err != REG_NOERROR, 0))
+        return REG_ESPACE;
+      for (i = 0; i < dest_nodes->nelem; i++)
+        re_node_set_merge (&state->inveclosure,
+			   dfa->inveclosures + dest_nodes->elems[i]);
+    }
+  return re_node_set_add_intersect (dest_nodes, candidates,
+				    &state->inveclosure);
+}
+
+static reg_errcode_t
+internal_function
+sub_epsilon_src_nodes (const re_dfa_t *dfa, Idx node, re_node_set *dest_nodes,
+		       const re_node_set *candidates)
+{
+    Idx ecl_idx;
+    reg_errcode_t err;
+    re_node_set *inv_eclosure = dfa->inveclosures + node;
+    re_node_set except_nodes;
+    re_node_set_init_empty (&except_nodes);
+    for (ecl_idx = 0; ecl_idx < inv_eclosure->nelem; ++ecl_idx)
+      {
+	Idx cur_node = inv_eclosure->elems[ecl_idx];
+	if (cur_node == node)
+	  continue;
+	if (IS_EPSILON_NODE (dfa->nodes[cur_node].type))
+	  {
+	    Idx edst1 = dfa->edests[cur_node].elems[0];
+	    Idx edst2 = ((dfa->edests[cur_node].nelem > 1)
+			 ? dfa->edests[cur_node].elems[1] : REG_MISSING);
+	    if ((!re_node_set_contains (inv_eclosure, edst1)
+		 && re_node_set_contains (dest_nodes, edst1))
+		|| (REG_VALID_NONZERO_INDEX (edst2)
+		    && !re_node_set_contains (inv_eclosure, edst2)
+		    && re_node_set_contains (dest_nodes, edst2)))
+	      {
+		err = re_node_set_add_intersect (&except_nodes, candidates,
+						 dfa->inveclosures + cur_node);
+		if (BE (err != REG_NOERROR, 0))
+		  {
+		    re_node_set_free (&except_nodes);
+		    return err;
+		  }
+	      }
+	  }
+      }
+    for (ecl_idx = 0; ecl_idx < inv_eclosure->nelem; ++ecl_idx)
+      {
+	Idx cur_node = inv_eclosure->elems[ecl_idx];
+	if (!re_node_set_contains (&except_nodes, cur_node))
+	  {
+	    Idx idx = re_node_set_contains (dest_nodes, cur_node) - 1;
+	    re_node_set_remove_at (dest_nodes, idx);
+	  }
+      }
+    re_node_set_free (&except_nodes);
+    return REG_NOERROR;
+}
+
+static bool
+internal_function
+check_dst_limits (const re_match_context_t *mctx, const re_node_set *limits,
+		  Idx dst_node, Idx dst_idx, Idx src_node, Idx src_idx)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  Idx lim_idx, src_pos, dst_pos;
+
+  Idx dst_bkref_idx = search_cur_bkref_entry (mctx, dst_idx);
+  Idx src_bkref_idx = search_cur_bkref_entry (mctx, src_idx);
+  for (lim_idx = 0; lim_idx < limits->nelem; ++lim_idx)
+    {
+      Idx subexp_idx;
+      struct re_backref_cache_entry *ent;
+      ent = mctx->bkref_ents + limits->elems[lim_idx];
+      subexp_idx = dfa->nodes[ent->node].opr.idx;
+
+      dst_pos = check_dst_limits_calc_pos (mctx, limits->elems[lim_idx],
+					   subexp_idx, dst_node, dst_idx,
+					   dst_bkref_idx);
+      src_pos = check_dst_limits_calc_pos (mctx, limits->elems[lim_idx],
+					   subexp_idx, src_node, src_idx,
+					   src_bkref_idx);
+
+      /* In case of:
+	 <src> <dst> ( <subexp> )
+	 ( <subexp> ) <src> <dst>
+	 ( <subexp1> <src> <subexp2> <dst> <subexp3> )  */
+      if (src_pos == dst_pos)
+	continue; /* This is unrelated limitation.  */
+      else
+	return true;
+    }
+  return false;
+}
+
+static int
+internal_function
+check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries,
+			     Idx subexp_idx, Idx from_node, Idx bkref_idx)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  const re_node_set *eclosures = dfa->eclosures + from_node;
+  Idx node_idx;
+
+  /* Else, we are on the boundary: examine the nodes on the epsilon
+     closure.  */
+  for (node_idx = 0; node_idx < eclosures->nelem; ++node_idx)
+    {
+      Idx node = eclosures->elems[node_idx];
+      switch (dfa->nodes[node].type)
+	{
+	case OP_BACK_REF:
+	  if (bkref_idx != REG_MISSING)
+	    {
+	      struct re_backref_cache_entry *ent = mctx->bkref_ents + bkref_idx;
+	      do
+	        {
+		  Idx dst;
+		  int cpos;
+
+		  if (ent->node != node)
+		    continue;
+
+		  if (subexp_idx < BITSET_WORD_BITS
+		      && !(ent->eps_reachable_subexps_map
+			   & ((bitset_word_t) 1 << subexp_idx)))
+		    continue;
+
+		  /* Recurse trying to reach the OP_OPEN_SUBEXP and
+		     OP_CLOSE_SUBEXP cases below.  But, if the
+		     destination node is the same node as the source
+		     node, don't recurse because it would cause an
+		     infinite loop: a regex that exhibits this behavior
+		     is ()\1*\1*  */
+		  dst = dfa->edests[node].elems[0];
+		  if (dst == from_node)
+		    {
+		      if (boundaries & 1)
+		        return -1;
+		      else /* if (boundaries & 2) */
+		        return 0;
+		    }
+
+		  cpos =
+		    check_dst_limits_calc_pos_1 (mctx, boundaries, subexp_idx,
+						 dst, bkref_idx);
+		  if (cpos == -1 /* && (boundaries & 1) */)
+		    return -1;
+		  if (cpos == 0 && (boundaries & 2))
+		    return 0;
+
+		  if (subexp_idx < BITSET_WORD_BITS)
+		    ent->eps_reachable_subexps_map
+		      &= ~((bitset_word_t) 1 << subexp_idx);
+	        }
+	      while (ent++->more);
+	    }
+	  break;
+
+	case OP_OPEN_SUBEXP:
+	  if ((boundaries & 1) && subexp_idx == dfa->nodes[node].opr.idx)
+	    return -1;
+	  break;
+
+	case OP_CLOSE_SUBEXP:
+	  if ((boundaries & 2) && subexp_idx == dfa->nodes[node].opr.idx)
+	    return 0;
+	  break;
+
+	default:
+	    break;
+	}
+    }
+
+  return (boundaries & 2) ? 1 : 0;
+}
+
+static int
+internal_function
+check_dst_limits_calc_pos (const re_match_context_t *mctx, Idx limit,
+			   Idx subexp_idx, Idx from_node, Idx str_idx,
+			   Idx bkref_idx)
+{
+  struct re_backref_cache_entry *lim = mctx->bkref_ents + limit;
+  int boundaries;
+
+  /* If we are outside the range of the subexpression, return -1 or 1.  */
+  if (str_idx < lim->subexp_from)
+    return -1;
+
+  if (lim->subexp_to < str_idx)
+    return 1;
+
+  /* If we are within the subexpression, return 0.  */
+  boundaries = (str_idx == lim->subexp_from);
+  boundaries |= (str_idx == lim->subexp_to) << 1;
+  if (boundaries == 0)
+    return 0;
+
+  /* Else, examine epsilon closure.  */
+  return check_dst_limits_calc_pos_1 (mctx, boundaries, subexp_idx,
+				      from_node, bkref_idx);
+}
+
+/* Check the limitations of sub expressions LIMITS, and remove the nodes
+   which are against limitations from DEST_NODES. */
+
+static reg_errcode_t
+internal_function
+check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes,
+		     const re_node_set *candidates, re_node_set *limits,
+		     struct re_backref_cache_entry *bkref_ents, Idx str_idx)
+{
+  reg_errcode_t err;
+  Idx node_idx, lim_idx;
+
+  for (lim_idx = 0; lim_idx < limits->nelem; ++lim_idx)
+    {
+      Idx subexp_idx;
+      struct re_backref_cache_entry *ent;
+      ent = bkref_ents + limits->elems[lim_idx];
+
+      if (str_idx <= ent->subexp_from || ent->str_idx < str_idx)
+	continue; /* This is unrelated limitation.  */
+
+      subexp_idx = dfa->nodes[ent->node].opr.idx;
+      if (ent->subexp_to == str_idx)
+	{
+	  Idx ops_node = REG_MISSING;
+	  Idx cls_node = REG_MISSING;
+	  for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx)
+	    {
+	      Idx node = dest_nodes->elems[node_idx];
+	      re_token_type_t type = dfa->nodes[node].type;
+	      if (type == OP_OPEN_SUBEXP
+		  && subexp_idx == dfa->nodes[node].opr.idx)
+		ops_node = node;
+	      else if (type == OP_CLOSE_SUBEXP
+		       && subexp_idx == dfa->nodes[node].opr.idx)
+		cls_node = node;
+	    }
+
+	  /* Check the limitation of the open subexpression.  */
+	  /* Note that (ent->subexp_to = str_idx != ent->subexp_from).  */
+	  if (REG_VALID_INDEX (ops_node))
+	    {
+	      err = sub_epsilon_src_nodes (dfa, ops_node, dest_nodes,
+					   candidates);
+	      if (BE (err != REG_NOERROR, 0))
+		return err;
+	    }
+
+	  /* Check the limitation of the close subexpression.  */
+	  if (REG_VALID_INDEX (cls_node))
+	    for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx)
+	      {
+		Idx node = dest_nodes->elems[node_idx];
+		if (!re_node_set_contains (dfa->inveclosures + node,
+					   cls_node)
+		    && !re_node_set_contains (dfa->eclosures + node,
+					      cls_node))
+		  {
+		    /* It is against this limitation.
+		       Remove it form the current sifted state.  */
+		    err = sub_epsilon_src_nodes (dfa, node, dest_nodes,
+						 candidates);
+		    if (BE (err != REG_NOERROR, 0))
+		      return err;
+		    --node_idx;
+		  }
+	      }
+	}
+      else /* (ent->subexp_to != str_idx)  */
+	{
+	  for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx)
+	    {
+	      Idx node = dest_nodes->elems[node_idx];
+	      re_token_type_t type = dfa->nodes[node].type;
+	      if (type == OP_CLOSE_SUBEXP || type == OP_OPEN_SUBEXP)
+		{
+		  if (subexp_idx != dfa->nodes[node].opr.idx)
+		    continue;
+		  /* It is against this limitation.
+		     Remove it form the current sifted state.  */
+		  err = sub_epsilon_src_nodes (dfa, node, dest_nodes,
+					       candidates);
+		  if (BE (err != REG_NOERROR, 0))
+		    return err;
+		}
+	    }
+	}
+    }
+  return REG_NOERROR;
+}
+
+static reg_errcode_t
+internal_function
+sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx,
+		   Idx str_idx, const re_node_set *candidates)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  reg_errcode_t err;
+  Idx node_idx, node;
+  re_sift_context_t local_sctx;
+  Idx first_idx = search_cur_bkref_entry (mctx, str_idx);
+
+  if (first_idx == REG_MISSING)
+    return REG_NOERROR;
+
+  local_sctx.sifted_states = NULL; /* Mark that it hasn't been initialized.  */
+
+  for (node_idx = 0; node_idx < candidates->nelem; ++node_idx)
+    {
+      Idx enabled_idx;
+      re_token_type_t type;
+      struct re_backref_cache_entry *entry;
+      node = candidates->elems[node_idx];
+      type = dfa->nodes[node].type;
+      /* Avoid infinite loop for the REs like "()\1+".  */
+      if (node == sctx->last_node && str_idx == sctx->last_str_idx)
+	continue;
+      if (type != OP_BACK_REF)
+	continue;
+
+      entry = mctx->bkref_ents + first_idx;
+      enabled_idx = first_idx;
+      do
+	{
+	  Idx subexp_len;
+	  Idx to_idx;
+	  Idx dst_node;
+	  bool ok;
+	  re_dfastate_t *cur_state;
+
+	  if (entry->node != node)
+	    continue;
+	  subexp_len = entry->subexp_to - entry->subexp_from;
+	  to_idx = str_idx + subexp_len;
+	  dst_node = (subexp_len ? dfa->nexts[node]
+		      : dfa->edests[node].elems[0]);
+
+	  if (to_idx > sctx->last_str_idx
+	      || sctx->sifted_states[to_idx] == NULL
+	      || !STATE_NODE_CONTAINS (sctx->sifted_states[to_idx], dst_node)
+	      || check_dst_limits (mctx, &sctx->limits, node,
+				   str_idx, dst_node, to_idx))
+	    continue;
+
+	  if (local_sctx.sifted_states == NULL)
+	    {
+	      local_sctx = *sctx;
+	      err = re_node_set_init_copy (&local_sctx.limits, &sctx->limits);
+	      if (BE (err != REG_NOERROR, 0))
+		goto free_return;
+	    }
+	  local_sctx.last_node = node;
+	  local_sctx.last_str_idx = str_idx;
+	  ok = re_node_set_insert (&local_sctx.limits, enabled_idx);
+	  if (BE (! ok, 0))
+	    {
+	      err = REG_ESPACE;
+	      goto free_return;
+	    }
+	  cur_state = local_sctx.sifted_states[str_idx];
+	  err = sift_states_backward (mctx, &local_sctx);
+	  if (BE (err != REG_NOERROR, 0))
+	    goto free_return;
+	  if (sctx->limited_states != NULL)
+	    {
+	      err = merge_state_array (dfa, sctx->limited_states,
+				       local_sctx.sifted_states,
+				       str_idx + 1);
+	      if (BE (err != REG_NOERROR, 0))
+		goto free_return;
+	    }
+	  local_sctx.sifted_states[str_idx] = cur_state;
+	  re_node_set_remove (&local_sctx.limits, enabled_idx);
+
+	  /* mctx->bkref_ents may have changed, reload the pointer.  */
+          entry = mctx->bkref_ents + enabled_idx;
+	}
+      while (enabled_idx++, entry++->more);
+    }
+  err = REG_NOERROR;
+ free_return:
+  if (local_sctx.sifted_states != NULL)
+    {
+      re_node_set_free (&local_sctx.limits);
+    }
+
+  return err;
+}
+
+
+#ifdef RE_ENABLE_I18N
+static int
+internal_function
+sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx,
+		     Idx node_idx, Idx str_idx, Idx max_str_idx)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  int naccepted;
+  /* Check the node can accept `multi byte'.  */
+  naccepted = check_node_accept_bytes (dfa, node_idx, &mctx->input, str_idx);
+  if (naccepted > 0 && str_idx + naccepted <= max_str_idx &&
+      !STATE_NODE_CONTAINS (sctx->sifted_states[str_idx + naccepted],
+			    dfa->nexts[node_idx]))
+    /* The node can't accept the `multi byte', or the
+       destination was already thrown away, then the node
+       could't accept the current input `multi byte'.   */
+    naccepted = 0;
+  /* Otherwise, it is sure that the node could accept
+     `naccepted' bytes input.  */
+  return naccepted;
+}
+#endif /* RE_ENABLE_I18N */
+
+
+/* Functions for state transition.  */
+
+/* Return the next state to which the current state STATE will transit by
+   accepting the current input byte, and update STATE_LOG if necessary.
+   If STATE can accept a multibyte char/collating element/back reference
+   update the destination of STATE_LOG.  */
+
+static re_dfastate_t *
+internal_function
+transit_state (reg_errcode_t *err, re_match_context_t *mctx,
+	       re_dfastate_t *state)
+{
+  re_dfastate_t **trtable;
+  unsigned char ch;
+
+#ifdef RE_ENABLE_I18N
+  /* If the current state can accept multibyte.  */
+  if (BE (state->accept_mb, 0))
+    {
+      *err = transit_state_mb (mctx, state);
+      if (BE (*err != REG_NOERROR, 0))
+	return NULL;
+    }
+#endif /* RE_ENABLE_I18N */
+
+  /* Then decide the next state with the single byte.  */
+#if 0
+  if (0)
+    /* don't use transition table  */
+    return transit_state_sb (err, mctx, state);
+#endif
+
+  /* Use transition table  */
+  ch = re_string_fetch_byte (&mctx->input);
+  for (;;)
+    {
+      trtable = state->trtable;
+      if (BE (trtable != NULL, 1))
+	return trtable[ch];
+
+      trtable = state->word_trtable;
+      if (BE (trtable != NULL, 1))
+        {
+	  unsigned int context;
+	  context
+	    = re_string_context_at (&mctx->input,
+				    re_string_cur_idx (&mctx->input) - 1,
+				    mctx->eflags);
+	  if (IS_WORD_CONTEXT (context))
+	    return trtable[ch + SBC_MAX];
+	  else
+	    return trtable[ch];
+	}
+
+      if (!build_trtable (mctx->dfa, state))
+	{
+	  *err = REG_ESPACE;
+	  return NULL;
+	}
+
+      /* Retry, we now have a transition table.  */
+    }
+}
+
+/* Update the state_log if we need */
+static re_dfastate_t *
+internal_function
+merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx,
+		      re_dfastate_t *next_state)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  Idx cur_idx = re_string_cur_idx (&mctx->input);
+
+  if (cur_idx > mctx->state_log_top)
+    {
+      mctx->state_log[cur_idx] = next_state;
+      mctx->state_log_top = cur_idx;
+    }
+  else if (mctx->state_log[cur_idx] == 0)
+    {
+      mctx->state_log[cur_idx] = next_state;
+    }
+  else
+    {
+      re_dfastate_t *pstate;
+      unsigned int context;
+      re_node_set next_nodes, *log_nodes, *table_nodes = NULL;
+      /* If (state_log[cur_idx] != 0), it implies that cur_idx is
+         the destination of a multibyte char/collating element/
+         back reference.  Then the next state is the union set of
+         these destinations and the results of the transition table.  */
+      pstate = mctx->state_log[cur_idx];
+      log_nodes = pstate->entrance_nodes;
+      if (next_state != NULL)
+        {
+          table_nodes = next_state->entrance_nodes;
+          *err = re_node_set_init_union (&next_nodes, table_nodes,
+					     log_nodes);
+          if (BE (*err != REG_NOERROR, 0))
+	    return NULL;
+        }
+      else
+        next_nodes = *log_nodes;
+      /* Note: We already add the nodes of the initial state,
+	 then we don't need to add them here.  */
+
+      context = re_string_context_at (&mctx->input,
+				      re_string_cur_idx (&mctx->input) - 1,
+				      mctx->eflags);
+      next_state = mctx->state_log[cur_idx]
+        = re_acquire_state_context (err, dfa, &next_nodes, context);
+      /* We don't need to check errors here, since the return value of
+         this function is next_state and ERR is already set.  */
+
+      if (table_nodes != NULL)
+        re_node_set_free (&next_nodes);
+    }
+
+  if (BE (dfa->nbackref, 0) && next_state != NULL)
+    {
+      /* Check OP_OPEN_SUBEXP in the current state in case that we use them
+	 later.  We must check them here, since the back references in the
+	 next state might use them.  */
+      *err = check_subexp_matching_top (mctx, &next_state->nodes,
+					cur_idx);
+      if (BE (*err != REG_NOERROR, 0))
+	return NULL;
+
+      /* If the next state has back references.  */
+      if (next_state->has_backref)
+	{
+	  *err = transit_state_bkref (mctx, &next_state->nodes);
+	  if (BE (*err != REG_NOERROR, 0))
+	    return NULL;
+	  next_state = mctx->state_log[cur_idx];
+	}
+    }
+
+  return next_state;
+}
+
+/* Skip bytes in the input that correspond to part of a
+   multi-byte match, then look in the log for a state
+   from which to restart matching.  */
+static re_dfastate_t *
+internal_function
+find_recover_state (reg_errcode_t *err, re_match_context_t *mctx)
+{
+  re_dfastate_t *cur_state;
+  do
+    {
+      Idx max = mctx->state_log_top;
+      Idx cur_str_idx = re_string_cur_idx (&mctx->input);
+
+      do
+	{
+          if (++cur_str_idx > max)
+            return NULL;
+          re_string_skip_bytes (&mctx->input, 1);
+	}
+      while (mctx->state_log[cur_str_idx] == NULL);
+
+      cur_state = merge_state_with_log (err, mctx, NULL);
+    }
+  while (*err == REG_NOERROR && cur_state == NULL);
+  return cur_state;
+}
+
+/* Helper functions for transit_state.  */
+
+/* From the node set CUR_NODES, pick up the nodes whose types are
+   OP_OPEN_SUBEXP and which have corresponding back references in the regular
+   expression. And register them to use them later for evaluating the
+   correspoding back references.  */
+
+static reg_errcode_t
+internal_function
+check_subexp_matching_top (re_match_context_t *mctx, re_node_set *cur_nodes,
+			   Idx str_idx)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  Idx node_idx;
+  reg_errcode_t err;
+
+  /* TODO: This isn't efficient.
+	   Because there might be more than one nodes whose types are
+	   OP_OPEN_SUBEXP and whose index is SUBEXP_IDX, we must check all
+	   nodes.
+	   E.g. RE: (a){2}  */
+  for (node_idx = 0; node_idx < cur_nodes->nelem; ++node_idx)
+    {
+      Idx node = cur_nodes->elems[node_idx];
+      if (dfa->nodes[node].type == OP_OPEN_SUBEXP
+	  && dfa->nodes[node].opr.idx < BITSET_WORD_BITS
+	  && (dfa->used_bkref_map
+	      & ((bitset_word_t) 1 << dfa->nodes[node].opr.idx)))
+	{
+	  err = match_ctx_add_subtop (mctx, node, str_idx);
+	  if (BE (err != REG_NOERROR, 0))
+	    return err;
+	}
+    }
+  return REG_NOERROR;
+}
+
+#if 0
+/* Return the next state to which the current state STATE will transit by
+   accepting the current input byte.  */
+
+static re_dfastate_t *
+transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx,
+		  re_dfastate_t *state)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  re_node_set next_nodes;
+  re_dfastate_t *next_state;
+  Idx node_cnt, cur_str_idx = re_string_cur_idx (&mctx->input);
+  unsigned int context;
+
+  *err = re_node_set_alloc (&next_nodes, state->nodes.nelem + 1);
+  if (BE (*err != REG_NOERROR, 0))
+    return NULL;
+  for (node_cnt = 0; node_cnt < state->nodes.nelem; ++node_cnt)
+    {
+      Idx cur_node = state->nodes.elems[node_cnt];
+      if (check_node_accept (mctx, dfa->nodes + cur_node, cur_str_idx))
+	{
+	  *err = re_node_set_merge (&next_nodes,
+				    dfa->eclosures + dfa->nexts[cur_node]);
+	  if (BE (*err != REG_NOERROR, 0))
+	    {
+	      re_node_set_free (&next_nodes);
+	      return NULL;
+	    }
+	}
+    }
+  context = re_string_context_at (&mctx->input, cur_str_idx, mctx->eflags);
+  next_state = re_acquire_state_context (err, dfa, &next_nodes, context);
+  /* We don't need to check errors here, since the return value of
+     this function is next_state and ERR is already set.  */
+
+  re_node_set_free (&next_nodes);
+  re_string_skip_bytes (&mctx->input, 1);
+  return next_state;
+}
+#endif
+
+#ifdef RE_ENABLE_I18N
+static reg_errcode_t
+internal_function
+transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  reg_errcode_t err;
+  Idx i;
+
+  for (i = 0; i < pstate->nodes.nelem; ++i)
+    {
+      re_node_set dest_nodes, *new_nodes;
+      Idx cur_node_idx = pstate->nodes.elems[i];
+      int naccepted;
+      Idx dest_idx;
+      unsigned int context;
+      re_dfastate_t *dest_state;
+
+      if (!dfa->nodes[cur_node_idx].accept_mb)
+        continue;
+
+      if (dfa->nodes[cur_node_idx].constraint)
+	{
+	  context = re_string_context_at (&mctx->input,
+					  re_string_cur_idx (&mctx->input),
+					  mctx->eflags);
+	  if (NOT_SATISFY_NEXT_CONSTRAINT (dfa->nodes[cur_node_idx].constraint,
+					   context))
+	    continue;
+	}
+
+      /* How many bytes the node can accept?  */
+      naccepted = check_node_accept_bytes (dfa, cur_node_idx, &mctx->input,
+					   re_string_cur_idx (&mctx->input));
+      if (naccepted == 0)
+	continue;
+
+      /* The node can accepts `naccepted' bytes.  */
+      dest_idx = re_string_cur_idx (&mctx->input) + naccepted;
+      mctx->max_mb_elem_len = ((mctx->max_mb_elem_len < naccepted) ? naccepted
+			       : mctx->max_mb_elem_len);
+      err = clean_state_log_if_needed (mctx, dest_idx);
+      if (BE (err != REG_NOERROR, 0))
+	return err;
+#ifdef DEBUG
+      assert (dfa->nexts[cur_node_idx] != REG_MISSING);
+#endif
+      new_nodes = dfa->eclosures + dfa->nexts[cur_node_idx];
+
+      dest_state = mctx->state_log[dest_idx];
+      if (dest_state == NULL)
+	dest_nodes = *new_nodes;
+      else
+	{
+	  err = re_node_set_init_union (&dest_nodes,
+					dest_state->entrance_nodes, new_nodes);
+	  if (BE (err != REG_NOERROR, 0))
+	    return err;
+	}
+      context = re_string_context_at (&mctx->input, dest_idx - 1,
+				      mctx->eflags);
+      mctx->state_log[dest_idx]
+	= re_acquire_state_context (&err, dfa, &dest_nodes, context);
+      if (dest_state != NULL)
+	re_node_set_free (&dest_nodes);
+      if (BE (mctx->state_log[dest_idx] == NULL && err != REG_NOERROR, 0))
+	return err;
+    }
+  return REG_NOERROR;
+}
+#endif /* RE_ENABLE_I18N */
+
+static reg_errcode_t
+internal_function
+transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  reg_errcode_t err;
+  Idx i;
+  Idx cur_str_idx = re_string_cur_idx (&mctx->input);
+
+  for (i = 0; i < nodes->nelem; ++i)
+    {
+      Idx dest_str_idx, prev_nelem, bkc_idx;
+      Idx node_idx = nodes->elems[i];
+      unsigned int context;
+      const re_token_t *node = dfa->nodes + node_idx;
+      re_node_set *new_dest_nodes;
+
+      /* Check whether `node' is a backreference or not.  */
+      if (node->type != OP_BACK_REF)
+	continue;
+
+      if (node->constraint)
+	{
+	  context = re_string_context_at (&mctx->input, cur_str_idx,
+					  mctx->eflags);
+	  if (NOT_SATISFY_NEXT_CONSTRAINT (node->constraint, context))
+	    continue;
+	}
+
+      /* `node' is a backreference.
+	 Check the substring which the substring matched.  */
+      bkc_idx = mctx->nbkref_ents;
+      err = get_subexp (mctx, node_idx, cur_str_idx);
+      if (BE (err != REG_NOERROR, 0))
+	goto free_return;
+
+      /* And add the epsilon closures (which is `new_dest_nodes') of
+	 the backreference to appropriate state_log.  */
+#ifdef DEBUG
+      assert (dfa->nexts[node_idx] != REG_MISSING);
+#endif
+      for (; bkc_idx < mctx->nbkref_ents; ++bkc_idx)
+	{
+	  Idx subexp_len;
+	  re_dfastate_t *dest_state;
+	  struct re_backref_cache_entry *bkref_ent;
+	  bkref_ent = mctx->bkref_ents + bkc_idx;
+	  if (bkref_ent->node != node_idx || bkref_ent->str_idx != cur_str_idx)
+	    continue;
+	  subexp_len = bkref_ent->subexp_to - bkref_ent->subexp_from;
+	  new_dest_nodes = (subexp_len == 0
+			    ? dfa->eclosures + dfa->edests[node_idx].elems[0]
+			    : dfa->eclosures + dfa->nexts[node_idx]);
+	  dest_str_idx = (cur_str_idx + bkref_ent->subexp_to
+			  - bkref_ent->subexp_from);
+	  context = re_string_context_at (&mctx->input, dest_str_idx - 1,
+					  mctx->eflags);
+	  dest_state = mctx->state_log[dest_str_idx];
+	  prev_nelem = ((mctx->state_log[cur_str_idx] == NULL) ? 0
+			: mctx->state_log[cur_str_idx]->nodes.nelem);
+	  /* Add `new_dest_node' to state_log.  */
+	  if (dest_state == NULL)
+	    {
+	      mctx->state_log[dest_str_idx]
+		= re_acquire_state_context (&err, dfa, new_dest_nodes,
+					    context);
+	      if (BE (mctx->state_log[dest_str_idx] == NULL
+		      && err != REG_NOERROR, 0))
+		goto free_return;
+	    }
+	  else
+	    {
+	      re_node_set dest_nodes;
+	      err = re_node_set_init_union (&dest_nodes,
+					    dest_state->entrance_nodes,
+					    new_dest_nodes);
+	      if (BE (err != REG_NOERROR, 0))
+		{
+		  re_node_set_free (&dest_nodes);
+		  goto free_return;
+		}
+	      mctx->state_log[dest_str_idx]
+		= re_acquire_state_context (&err, dfa, &dest_nodes, context);
+	      re_node_set_free (&dest_nodes);
+	      if (BE (mctx->state_log[dest_str_idx] == NULL
+		      && err != REG_NOERROR, 0))
+		goto free_return;
+	    }
+	  /* We need to check recursively if the backreference can epsilon
+	     transit.  */
+	  if (subexp_len == 0
+	      && mctx->state_log[cur_str_idx]->nodes.nelem > prev_nelem)
+	    {
+	      err = check_subexp_matching_top (mctx, new_dest_nodes,
+					       cur_str_idx);
+	      if (BE (err != REG_NOERROR, 0))
+		goto free_return;
+	      err = transit_state_bkref (mctx, new_dest_nodes);
+	      if (BE (err != REG_NOERROR, 0))
+		goto free_return;
+	    }
+	}
+    }
+  err = REG_NOERROR;
+ free_return:
+  return err;
+}
+
+/* Enumerate all the candidates which the backreference BKREF_NODE can match
+   at BKREF_STR_IDX, and register them by match_ctx_add_entry().
+   Note that we might collect inappropriate candidates here.
+   However, the cost of checking them strictly here is too high, then we
+   delay these checking for prune_impossible_nodes().  */
+
+static reg_errcode_t
+internal_function
+get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  Idx subexp_num, sub_top_idx;
+  const char *buf = (const char *) re_string_get_buffer (&mctx->input);
+  /* Return if we have already checked BKREF_NODE at BKREF_STR_IDX.  */
+  Idx cache_idx = search_cur_bkref_entry (mctx, bkref_str_idx);
+  if (cache_idx != REG_MISSING)
+    {
+      const struct re_backref_cache_entry *entry
+	= mctx->bkref_ents + cache_idx;
+      do
+        if (entry->node == bkref_node)
+	  return REG_NOERROR; /* We already checked it.  */
+      while (entry++->more);
+    }
+
+  subexp_num = dfa->nodes[bkref_node].opr.idx;
+
+  /* For each sub expression  */
+  for (sub_top_idx = 0; sub_top_idx < mctx->nsub_tops; ++sub_top_idx)
+    {
+      reg_errcode_t err;
+      re_sub_match_top_t *sub_top = mctx->sub_tops[sub_top_idx];
+      re_sub_match_last_t *sub_last;
+      Idx sub_last_idx, sl_str, bkref_str_off;
+
+      if (dfa->nodes[sub_top->node].opr.idx != subexp_num)
+	continue; /* It isn't related.  */
+
+      sl_str = sub_top->str_idx;
+      bkref_str_off = bkref_str_idx;
+      /* At first, check the last node of sub expressions we already
+	 evaluated.  */
+      for (sub_last_idx = 0; sub_last_idx < sub_top->nlasts; ++sub_last_idx)
+	{
+	  regoff_t sl_str_diff;
+	  sub_last = sub_top->lasts[sub_last_idx];
+	  sl_str_diff = sub_last->str_idx - sl_str;
+	  /* The matched string by the sub expression match with the substring
+	     at the back reference?  */
+	  if (sl_str_diff > 0)
+	    {
+	      if (BE (bkref_str_off + sl_str_diff > mctx->input.valid_len, 0))
+		{
+		  /* Not enough chars for a successful match.  */
+		  if (bkref_str_off + sl_str_diff > mctx->input.len)
+		    break;
+
+		  err = clean_state_log_if_needed (mctx,
+						   bkref_str_off
+						   + sl_str_diff);
+		  if (BE (err != REG_NOERROR, 0))
+		    return err;
+		  buf = (const char *) re_string_get_buffer (&mctx->input);
+		}
+	      if (memcmp (buf + bkref_str_off, buf + sl_str, sl_str_diff) != 0)
+		/* We don't need to search this sub expression any more.  */
+		break;
+	    }
+	  bkref_str_off += sl_str_diff;
+	  sl_str += sl_str_diff;
+	  err = get_subexp_sub (mctx, sub_top, sub_last, bkref_node,
+				bkref_str_idx);
+
+	  /* Reload buf, since the preceding call might have reallocated
+	     the buffer.  */
+	  buf = (const char *) re_string_get_buffer (&mctx->input);
+
+	  if (err == REG_NOMATCH)
+	    continue;
+	  if (BE (err != REG_NOERROR, 0))
+	    return err;
+	}
+
+      if (sub_last_idx < sub_top->nlasts)
+	continue;
+      if (sub_last_idx > 0)
+	++sl_str;
+      /* Then, search for the other last nodes of the sub expression.  */
+      for (; sl_str <= bkref_str_idx; ++sl_str)
+	{
+	  Idx cls_node;
+	  regoff_t sl_str_off;
+	  const re_node_set *nodes;
+	  sl_str_off = sl_str - sub_top->str_idx;
+	  /* The matched string by the sub expression match with the substring
+	     at the back reference?  */
+	  if (sl_str_off > 0)
+	    {
+	      if (BE (bkref_str_off >= mctx->input.valid_len, 0))
+		{
+		  /* If we are at the end of the input, we cannot match.  */
+		  if (bkref_str_off >= mctx->input.len)
+		    break;
+
+		  err = extend_buffers (mctx);
+		  if (BE (err != REG_NOERROR, 0))
+		    return err;
+
+		  buf = (const char *) re_string_get_buffer (&mctx->input);
+		}
+	      if (buf [bkref_str_off++] != buf[sl_str - 1])
+		break; /* We don't need to search this sub expression
+			  any more.  */
+	    }
+	  if (mctx->state_log[sl_str] == NULL)
+	    continue;
+	  /* Does this state have a ')' of the sub expression?  */
+	  nodes = &mctx->state_log[sl_str]->nodes;
+	  cls_node = find_subexp_node (dfa, nodes, subexp_num,
+				       OP_CLOSE_SUBEXP);
+	  if (cls_node == REG_MISSING)
+	    continue; /* No.  */
+	  if (sub_top->path == NULL)
+	    {
+	      sub_top->path = calloc (sizeof (state_array_t),
+				      sl_str - sub_top->str_idx + 1);
+	      if (sub_top->path == NULL)
+		return REG_ESPACE;
+	    }
+	  /* Can the OP_OPEN_SUBEXP node arrive the OP_CLOSE_SUBEXP node
+	     in the current context?  */
+	  err = check_arrival (mctx, sub_top->path, sub_top->node,
+			       sub_top->str_idx, cls_node, sl_str,
+			       OP_CLOSE_SUBEXP);
+	  if (err == REG_NOMATCH)
+	      continue;
+	  if (BE (err != REG_NOERROR, 0))
+	      return err;
+	  sub_last = match_ctx_add_sublast (sub_top, cls_node, sl_str);
+	  if (BE (sub_last == NULL, 0))
+	    return REG_ESPACE;
+	  err = get_subexp_sub (mctx, sub_top, sub_last, bkref_node,
+				bkref_str_idx);
+	  if (err == REG_NOMATCH)
+	    continue;
+	}
+    }
+  return REG_NOERROR;
+}
+
+/* Helper functions for get_subexp().  */
+
+/* Check SUB_LAST can arrive to the back reference BKREF_NODE at BKREF_STR.
+   If it can arrive, register the sub expression expressed with SUB_TOP
+   and SUB_LAST.  */
+
+static reg_errcode_t
+internal_function
+get_subexp_sub (re_match_context_t *mctx, const re_sub_match_top_t *sub_top,
+		re_sub_match_last_t *sub_last, Idx bkref_node, Idx bkref_str)
+{
+  reg_errcode_t err;
+  Idx to_idx;
+  /* Can the subexpression arrive the back reference?  */
+  err = check_arrival (mctx, &sub_last->path, sub_last->node,
+		       sub_last->str_idx, bkref_node, bkref_str,
+		       OP_OPEN_SUBEXP);
+  if (err != REG_NOERROR)
+    return err;
+  err = match_ctx_add_entry (mctx, bkref_node, bkref_str, sub_top->str_idx,
+			     sub_last->str_idx);
+  if (BE (err != REG_NOERROR, 0))
+    return err;
+  to_idx = bkref_str + sub_last->str_idx - sub_top->str_idx;
+  return clean_state_log_if_needed (mctx, to_idx);
+}
+
+/* Find the first node which is '(' or ')' and whose index is SUBEXP_IDX.
+   Search '(' if FL_OPEN, or search ')' otherwise.
+   TODO: This function isn't efficient...
+	 Because there might be more than one nodes whose types are
+	 OP_OPEN_SUBEXP and whose index is SUBEXP_IDX, we must check all
+	 nodes.
+	 E.g. RE: (a){2}  */
+
+static Idx
+internal_function
+find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes,
+		  Idx subexp_idx, int type)
+{
+  Idx cls_idx;
+  for (cls_idx = 0; cls_idx < nodes->nelem; ++cls_idx)
+    {
+      Idx cls_node = nodes->elems[cls_idx];
+      const re_token_t *node = dfa->nodes + cls_node;
+      if (node->type == type
+	  && node->opr.idx == subexp_idx)
+	return cls_node;
+    }
+  return REG_MISSING;
+}
+
+/* Check whether the node TOP_NODE at TOP_STR can arrive to the node
+   LAST_NODE at LAST_STR.  We record the path onto PATH since it will be
+   heavily reused.
+   Return REG_NOERROR if it can arrive, or REG_NOMATCH otherwise.  */
+
+static reg_errcode_t
+internal_function
+check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node,
+	       Idx top_str, Idx last_node, Idx last_str, int type)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  reg_errcode_t err = REG_NOERROR;
+  Idx subexp_num, backup_cur_idx, str_idx, null_cnt;
+  re_dfastate_t *cur_state = NULL;
+  re_node_set *cur_nodes, next_nodes;
+  re_dfastate_t **backup_state_log;
+  unsigned int context;
+
+  subexp_num = dfa->nodes[top_node].opr.idx;
+  /* Extend the buffer if we need.  */
+  if (BE (path->alloc < last_str + mctx->max_mb_elem_len + 1, 0))
+    {
+      re_dfastate_t **new_array;
+      Idx old_alloc = path->alloc;
+      Idx new_alloc = old_alloc + last_str + mctx->max_mb_elem_len + 1;
+      if (BE (new_alloc < old_alloc, 0)
+	  || BE (SIZE_MAX / sizeof (re_dfastate_t *) < new_alloc, 0))
+	return REG_ESPACE;
+      new_array = re_realloc (path->array, re_dfastate_t *, new_alloc);
+      if (BE (new_array == NULL, 0))
+	return REG_ESPACE;
+      path->array = new_array;
+      path->alloc = new_alloc;
+      memset (new_array + old_alloc, '\0',
+	      sizeof (re_dfastate_t *) * (path->alloc - old_alloc));
+    }
+
+  str_idx = path->next_idx ? path->next_idx : top_str;
+
+  /* Temporary modify MCTX.  */
+  backup_state_log = mctx->state_log;
+  backup_cur_idx = mctx->input.cur_idx;
+  mctx->state_log = path->array;
+  mctx->input.cur_idx = str_idx;
+
+  /* Setup initial node set.  */
+  context = re_string_context_at (&mctx->input, str_idx - 1, mctx->eflags);
+  if (str_idx == top_str)
+    {
+      err = re_node_set_init_1 (&next_nodes, top_node);
+      if (BE (err != REG_NOERROR, 0))
+	return err;
+      err = check_arrival_expand_ecl (dfa, &next_nodes, subexp_num, type);
+      if (BE (err != REG_NOERROR, 0))
+	{
+	  re_node_set_free (&next_nodes);
+	  return err;
+	}
+    }
+  else
+    {
+      cur_state = mctx->state_log[str_idx];
+      if (cur_state && cur_state->has_backref)
+	{
+	  err = re_node_set_init_copy (&next_nodes, &cur_state->nodes);
+	  if (BE (err != REG_NOERROR, 0))
+	    return err;
+	}
+      else
+	re_node_set_init_empty (&next_nodes);
+    }
+  if (str_idx == top_str || (cur_state && cur_state->has_backref))
+    {
+      if (next_nodes.nelem)
+	{
+	  err = expand_bkref_cache (mctx, &next_nodes, str_idx,
+				    subexp_num, type);
+	  if (BE (err != REG_NOERROR, 0))
+	    {
+	      re_node_set_free (&next_nodes);
+	      return err;
+	    }
+	}
+      cur_state = re_acquire_state_context (&err, dfa, &next_nodes, context);
+      if (BE (cur_state == NULL && err != REG_NOERROR, 0))
+	{
+	  re_node_set_free (&next_nodes);
+	  return err;
+	}
+      mctx->state_log[str_idx] = cur_state;
+    }
+
+  for (null_cnt = 0; str_idx < last_str && null_cnt <= mctx->max_mb_elem_len;)
+    {
+      re_node_set_empty (&next_nodes);
+      if (mctx->state_log[str_idx + 1])
+	{
+	  err = re_node_set_merge (&next_nodes,
+				   &mctx->state_log[str_idx + 1]->nodes);
+	  if (BE (err != REG_NOERROR, 0))
+	    {
+	      re_node_set_free (&next_nodes);
+	      return err;
+	    }
+	}
+      if (cur_state)
+	{
+	  err = check_arrival_add_next_nodes (mctx, str_idx,
+					      &cur_state->non_eps_nodes,
+					      &next_nodes);
+	  if (BE (err != REG_NOERROR, 0))
+	    {
+	      re_node_set_free (&next_nodes);
+	      return err;
+	    }
+	}
+      ++str_idx;
+      if (next_nodes.nelem)
+	{
+	  err = check_arrival_expand_ecl (dfa, &next_nodes, subexp_num, type);
+	  if (BE (err != REG_NOERROR, 0))
+	    {
+	      re_node_set_free (&next_nodes);
+	      return err;
+	    }
+	  err = expand_bkref_cache (mctx, &next_nodes, str_idx,
+				    subexp_num, type);
+	  if (BE (err != REG_NOERROR, 0))
+	    {
+	      re_node_set_free (&next_nodes);
+	      return err;
+	    }
+	}
+      context = re_string_context_at (&mctx->input, str_idx - 1, mctx->eflags);
+      cur_state = re_acquire_state_context (&err, dfa, &next_nodes, context);
+      if (BE (cur_state == NULL && err != REG_NOERROR, 0))
+	{
+	  re_node_set_free (&next_nodes);
+	  return err;
+	}
+      mctx->state_log[str_idx] = cur_state;
+      null_cnt = cur_state == NULL ? null_cnt + 1 : 0;
+    }
+  re_node_set_free (&next_nodes);
+  cur_nodes = (mctx->state_log[last_str] == NULL ? NULL
+	       : &mctx->state_log[last_str]->nodes);
+  path->next_idx = str_idx;
+
+  /* Fix MCTX.  */
+  mctx->state_log = backup_state_log;
+  mctx->input.cur_idx = backup_cur_idx;
+
+  /* Then check the current node set has the node LAST_NODE.  */
+  if (cur_nodes != NULL && re_node_set_contains (cur_nodes, last_node))
+    return REG_NOERROR;
+
+  return REG_NOMATCH;
+}
+
+/* Helper functions for check_arrival.  */
+
+/* Calculate the destination nodes of CUR_NODES at STR_IDX, and append them
+   to NEXT_NODES.
+   TODO: This function is similar to the functions transit_state*(),
+	 however this function has many additional works.
+	 Can't we unify them?  */
+
+static reg_errcode_t
+internal_function
+check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx,
+			      re_node_set *cur_nodes, re_node_set *next_nodes)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  bool ok;
+  Idx cur_idx;
+  reg_errcode_t err = REG_NOERROR;
+  re_node_set union_set;
+  re_node_set_init_empty (&union_set);
+  for (cur_idx = 0; cur_idx < cur_nodes->nelem; ++cur_idx)
+    {
+      int naccepted = 0;
+      Idx cur_node = cur_nodes->elems[cur_idx];
+#ifdef DEBUG
+      re_token_type_t type = dfa->nodes[cur_node].type;
+      assert (!IS_EPSILON_NODE (type));
+#endif
+#ifdef RE_ENABLE_I18N
+      /* If the node may accept `multi byte'.  */
+      if (dfa->nodes[cur_node].accept_mb)
+	{
+	  naccepted = check_node_accept_bytes (dfa, cur_node, &mctx->input,
+					       str_idx);
+	  if (naccepted > 1)
+	    {
+	      re_dfastate_t *dest_state;
+	      Idx next_node = dfa->nexts[cur_node];
+	      Idx next_idx = str_idx + naccepted;
+	      dest_state = mctx->state_log[next_idx];
+	      re_node_set_empty (&union_set);
+	      if (dest_state)
+		{
+		  err = re_node_set_merge (&union_set, &dest_state->nodes);
+		  if (BE (err != REG_NOERROR, 0))
+		    {
+		      re_node_set_free (&union_set);
+		      return err;
+		    }
+		}
+	      ok = re_node_set_insert (&union_set, next_node);
+	      if (BE (! ok, 0))
+		{
+		  re_node_set_free (&union_set);
+		  return REG_ESPACE;
+		}
+	      mctx->state_log[next_idx] = re_acquire_state (&err, dfa,
+							    &union_set);
+	      if (BE (mctx->state_log[next_idx] == NULL
+		      && err != REG_NOERROR, 0))
+		{
+		  re_node_set_free (&union_set);
+		  return err;
+		}
+	    }
+	}
+#endif /* RE_ENABLE_I18N */
+      if (naccepted
+	  || check_node_accept (mctx, dfa->nodes + cur_node, str_idx))
+	{
+	  ok = re_node_set_insert (next_nodes, dfa->nexts[cur_node]);
+	  if (BE (! ok, 0))
+	    {
+	      re_node_set_free (&union_set);
+	      return REG_ESPACE;
+	    }
+	}
+    }
+  re_node_set_free (&union_set);
+  return REG_NOERROR;
+}
+
+/* For all the nodes in CUR_NODES, add the epsilon closures of them to
+   CUR_NODES, however exclude the nodes which are:
+    - inside the sub expression whose number is EX_SUBEXP, if FL_OPEN.
+    - out of the sub expression whose number is EX_SUBEXP, if !FL_OPEN.
+*/
+
+static reg_errcode_t
+internal_function
+check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes,
+			  Idx ex_subexp, int type)
+{
+  reg_errcode_t err;
+  Idx idx, outside_node;
+  re_node_set new_nodes;
+#ifdef DEBUG
+  assert (cur_nodes->nelem);
+#endif
+  err = re_node_set_alloc (&new_nodes, cur_nodes->nelem);
+  if (BE (err != REG_NOERROR, 0))
+    return err;
+  /* Create a new node set NEW_NODES with the nodes which are epsilon
+     closures of the node in CUR_NODES.  */
+
+  for (idx = 0; idx < cur_nodes->nelem; ++idx)
+    {
+      Idx cur_node = cur_nodes->elems[idx];
+      const re_node_set *eclosure = dfa->eclosures + cur_node;
+      outside_node = find_subexp_node (dfa, eclosure, ex_subexp, type);
+      if (outside_node == REG_MISSING)
+	{
+	  /* There are no problematic nodes, just merge them.  */
+	  err = re_node_set_merge (&new_nodes, eclosure);
+	  if (BE (err != REG_NOERROR, 0))
+	    {
+	      re_node_set_free (&new_nodes);
+	      return err;
+	    }
+	}
+      else
+	{
+	  /* There are problematic nodes, re-calculate incrementally.  */
+	  err = check_arrival_expand_ecl_sub (dfa, &new_nodes, cur_node,
+					      ex_subexp, type);
+	  if (BE (err != REG_NOERROR, 0))
+	    {
+	      re_node_set_free (&new_nodes);
+	      return err;
+	    }
+	}
+    }
+  re_node_set_free (cur_nodes);
+  *cur_nodes = new_nodes;
+  return REG_NOERROR;
+}
+
+/* Helper function for check_arrival_expand_ecl.
+   Check incrementally the epsilon closure of TARGET, and if it isn't
+   problematic append it to DST_NODES.  */
+
+static reg_errcode_t
+internal_function
+check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes,
+			      Idx target, Idx ex_subexp, int type)
+{
+  Idx cur_node;
+  for (cur_node = target; !re_node_set_contains (dst_nodes, cur_node);)
+    {
+      bool ok;
+
+      if (dfa->nodes[cur_node].type == type
+	  && dfa->nodes[cur_node].opr.idx == ex_subexp)
+	{
+	  if (type == OP_CLOSE_SUBEXP)
+	    {
+	      ok = re_node_set_insert (dst_nodes, cur_node);
+	      if (BE (! ok, 0))
+		return REG_ESPACE;
+	    }
+	  break;
+	}
+      ok = re_node_set_insert (dst_nodes, cur_node);
+      if (BE (! ok, 0))
+	return REG_ESPACE;
+      if (dfa->edests[cur_node].nelem == 0)
+	break;
+      if (dfa->edests[cur_node].nelem == 2)
+	{
+	  reg_errcode_t err;
+	  err = check_arrival_expand_ecl_sub (dfa, dst_nodes,
+					      dfa->edests[cur_node].elems[1],
+					      ex_subexp, type);
+	  if (BE (err != REG_NOERROR, 0))
+	    return err;
+	}
+      cur_node = dfa->edests[cur_node].elems[0];
+    }
+  return REG_NOERROR;
+}
+
+
+/* For all the back references in the current state, calculate the
+   destination of the back references by the appropriate entry
+   in MCTX->BKREF_ENTS.  */
+
+static reg_errcode_t
+internal_function
+expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes,
+		    Idx cur_str, Idx subexp_num, int type)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  reg_errcode_t err;
+  Idx cache_idx_start = search_cur_bkref_entry (mctx, cur_str);
+  struct re_backref_cache_entry *ent;
+
+  if (cache_idx_start == REG_MISSING)
+    return REG_NOERROR;
+
+ restart:
+  ent = mctx->bkref_ents + cache_idx_start;
+  do
+    {
+      Idx to_idx, next_node;
+
+      /* Is this entry ENT is appropriate?  */
+      if (!re_node_set_contains (cur_nodes, ent->node))
+	continue; /* No.  */
+
+      to_idx = cur_str + ent->subexp_to - ent->subexp_from;
+      /* Calculate the destination of the back reference, and append it
+	 to MCTX->STATE_LOG.  */
+      if (to_idx == cur_str)
+	{
+	  /* The backreference did epsilon transit, we must re-check all the
+	     node in the current state.  */
+	  re_node_set new_dests;
+	  reg_errcode_t err2, err3;
+	  next_node = dfa->edests[ent->node].elems[0];
+	  if (re_node_set_contains (cur_nodes, next_node))
+	    continue;
+	  err = re_node_set_init_1 (&new_dests, next_node);
+	  err2 = check_arrival_expand_ecl (dfa, &new_dests, subexp_num, type);
+	  err3 = re_node_set_merge (cur_nodes, &new_dests);
+	  re_node_set_free (&new_dests);
+	  if (BE (err != REG_NOERROR || err2 != REG_NOERROR
+		  || err3 != REG_NOERROR, 0))
+	    {
+	      err = (err != REG_NOERROR ? err
+		     : (err2 != REG_NOERROR ? err2 : err3));
+	      return err;
+	    }
+	  /* TODO: It is still inefficient...  */
+	  goto restart;
+	}
+      else
+	{
+	  re_node_set union_set;
+	  next_node = dfa->nexts[ent->node];
+	  if (mctx->state_log[to_idx])
+	    {
+	      bool ok;
+	      if (re_node_set_contains (&mctx->state_log[to_idx]->nodes,
+					next_node))
+		continue;
+	      err = re_node_set_init_copy (&union_set,
+					   &mctx->state_log[to_idx]->nodes);
+	      ok = re_node_set_insert (&union_set, next_node);
+	      if (BE (err != REG_NOERROR || ! ok, 0))
+		{
+		  re_node_set_free (&union_set);
+		  err = err != REG_NOERROR ? err : REG_ESPACE;
+		  return err;
+		}
+	    }
+	  else
+	    {
+	      err = re_node_set_init_1 (&union_set, next_node);
+	      if (BE (err != REG_NOERROR, 0))
+		return err;
+	    }
+	  mctx->state_log[to_idx] = re_acquire_state (&err, dfa, &union_set);
+	  re_node_set_free (&union_set);
+	  if (BE (mctx->state_log[to_idx] == NULL
+		  && err != REG_NOERROR, 0))
+	    return err;
+	}
+    }
+  while (ent++->more);
+  return REG_NOERROR;
+}
+
+/* Build transition table for the state.
+   Return true if successful.  */
+
+static bool
+internal_function
+build_trtable (const re_dfa_t *dfa, re_dfastate_t *state)
+{
+  reg_errcode_t err;
+  Idx i, j;
+  int ch;
+  bool need_word_trtable = false;
+  bitset_word_t elem, mask;
+  bool dests_node_malloced = false;
+  bool dest_states_malloced = false;
+  Idx ndests; /* Number of the destination states from `state'.  */
+  re_dfastate_t **trtable;
+  re_dfastate_t **dest_states = NULL, **dest_states_word, **dest_states_nl;
+  re_node_set follows, *dests_node;
+  bitset_t *dests_ch;
+  bitset_t acceptable;
+
+  struct dests_alloc
+  {
+    re_node_set dests_node[SBC_MAX];
+    bitset_t dests_ch[SBC_MAX];
+  } *dests_alloc;
+
+  /* We build DFA states which corresponds to the destination nodes
+     from `state'.  `dests_node[i]' represents the nodes which i-th
+     destination state contains, and `dests_ch[i]' represents the
+     characters which i-th destination state accepts.  */
+  if (__libc_use_alloca (sizeof (struct dests_alloc)))
+    dests_alloc = (struct dests_alloc *) alloca (sizeof (struct dests_alloc));
+  else
+    {
+      dests_alloc = re_malloc (struct dests_alloc, 1);
+      if (BE (dests_alloc == NULL, 0))
+	return false;
+      dests_node_malloced = true;
+    }
+  dests_node = dests_alloc->dests_node;
+  dests_ch = dests_alloc->dests_ch;
+
+  /* Initialize transiton table.  */
+  state->word_trtable = state->trtable = NULL;
+
+  /* At first, group all nodes belonging to `state' into several
+     destinations.  */
+  ndests = group_nodes_into_DFAstates (dfa, state, dests_node, dests_ch);
+  if (BE (! REG_VALID_NONZERO_INDEX (ndests), 0))
+    {
+      if (dests_node_malloced)
+	free (dests_alloc);
+      if (ndests == 0)
+	{
+	  state->trtable = (re_dfastate_t **)
+	    calloc (sizeof (re_dfastate_t *), SBC_MAX);
+	  return true;
+	}
+      return false;
+    }
+
+  err = re_node_set_alloc (&follows, ndests + 1);
+  if (BE (err != REG_NOERROR, 0))
+    goto out_free;
+
+  /* Avoid arithmetic overflow in size calculation.  */
+  if (BE ((((SIZE_MAX - (sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX)
+	    / (3 * sizeof (re_dfastate_t *)))
+	   < ndests),
+	  0))
+    goto out_free;
+
+  if (__libc_use_alloca ((sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX
+			 + ndests * 3 * sizeof (re_dfastate_t *)))
+    dest_states = (re_dfastate_t **)
+      alloca (ndests * 3 * sizeof (re_dfastate_t *));
+  else
+    {
+      dest_states = (re_dfastate_t **)
+	malloc (ndests * 3 * sizeof (re_dfastate_t *));
+      if (BE (dest_states == NULL, 0))
+	{
+out_free:
+	  if (dest_states_malloced)
+	    free (dest_states);
+	  re_node_set_free (&follows);
+	  for (i = 0; i < ndests; ++i)
+	    re_node_set_free (dests_node + i);
+	  if (dests_node_malloced)
+	    free (dests_alloc);
+	  return false;
+	}
+      dest_states_malloced = true;
+    }
+  dest_states_word = dest_states + ndests;
+  dest_states_nl = dest_states_word + ndests;
+  bitset_empty (acceptable);
+
+  /* Then build the states for all destinations.  */
+  for (i = 0; i < ndests; ++i)
+    {
+      Idx next_node;
+      re_node_set_empty (&follows);
+      /* Merge the follows of this destination states.  */
+      for (j = 0; j < dests_node[i].nelem; ++j)
+	{
+	  next_node = dfa->nexts[dests_node[i].elems[j]];
+	  if (next_node != REG_MISSING)
+	    {
+	      err = re_node_set_merge (&follows, dfa->eclosures + next_node);
+	      if (BE (err != REG_NOERROR, 0))
+		goto out_free;
+	    }
+	}
+      dest_states[i] = re_acquire_state_context (&err, dfa, &follows, 0);
+      if (BE (dest_states[i] == NULL && err != REG_NOERROR, 0))
+	goto out_free;
+      /* If the new state has context constraint,
+	 build appropriate states for these contexts.  */
+      if (dest_states[i]->has_constraint)
+	{
+	  dest_states_word[i] = re_acquire_state_context (&err, dfa, &follows,
+							  CONTEXT_WORD);
+	  if (BE (dest_states_word[i] == NULL && err != REG_NOERROR, 0))
+	    goto out_free;
+
+	  if (dest_states[i] != dest_states_word[i] && dfa->mb_cur_max > 1)
+	    need_word_trtable = true;
+
+	  dest_states_nl[i] = re_acquire_state_context (&err, dfa, &follows,
+							CONTEXT_NEWLINE);
+	  if (BE (dest_states_nl[i] == NULL && err != REG_NOERROR, 0))
+	    goto out_free;
+ 	}
+      else
+	{
+	  dest_states_word[i] = dest_states[i];
+	  dest_states_nl[i] = dest_states[i];
+	}
+      bitset_merge (acceptable, dests_ch[i]);
+    }
+
+  if (!BE (need_word_trtable, 0))
+    {
+      /* We don't care about whether the following character is a word
+	 character, or we are in a single-byte character set so we can
+	 discern by looking at the character code: allocate a
+	 256-entry transition table.  */
+      trtable = state->trtable =
+	(re_dfastate_t **) calloc (sizeof (re_dfastate_t *), SBC_MAX);
+      if (BE (trtable == NULL, 0))
+	goto out_free;
+
+      /* For all characters ch...:  */
+      for (i = 0; i < BITSET_WORDS; ++i)
+	for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1;
+	     elem;
+	     mask <<= 1, elem >>= 1, ++ch)
+	  if (BE (elem & 1, 0))
+	    {
+	      /* There must be exactly one destination which accepts
+		 character ch.  See group_nodes_into_DFAstates.  */
+	      for (j = 0; (dests_ch[j][i] & mask) == 0; ++j)
+		;
+
+	      /* j-th destination accepts the word character ch.  */
+	      if (dfa->word_char[i] & mask)
+		trtable[ch] = dest_states_word[j];
+	      else
+		trtable[ch] = dest_states[j];
+	    }
+    }
+  else
+    {
+      /* We care about whether the following character is a word
+	 character, and we are in a multi-byte character set: discern
+	 by looking at the character code: build two 256-entry
+	 transition tables, one starting at trtable[0] and one
+	 starting at trtable[SBC_MAX].  */
+      trtable = state->word_trtable =
+	(re_dfastate_t **) calloc (sizeof (re_dfastate_t *), 2 * SBC_MAX);
+      if (BE (trtable == NULL, 0))
+	goto out_free;
+
+      /* For all characters ch...:  */
+      for (i = 0; i < BITSET_WORDS; ++i)
+	for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1;
+	     elem;
+	     mask <<= 1, elem >>= 1, ++ch)
+	  if (BE (elem & 1, 0))
+	    {
+	      /* There must be exactly one destination which accepts
+		 character ch.  See group_nodes_into_DFAstates.  */
+	      for (j = 0; (dests_ch[j][i] & mask) == 0; ++j)
+		;
+
+	      /* j-th destination accepts the word character ch.  */
+	      trtable[ch] = dest_states[j];
+	      trtable[ch + SBC_MAX] = dest_states_word[j];
+	    }
+    }
+
+  /* new line */
+  if (bitset_contain (acceptable, NEWLINE_CHAR))
+    {
+      /* The current state accepts newline character.  */
+      for (j = 0; j < ndests; ++j)
+	if (bitset_contain (dests_ch[j], NEWLINE_CHAR))
+	  {
+	    /* k-th destination accepts newline character.  */
+	    trtable[NEWLINE_CHAR] = dest_states_nl[j];
+	    if (need_word_trtable)
+	      trtable[NEWLINE_CHAR + SBC_MAX] = dest_states_nl[j];
+	    /* There must be only one destination which accepts
+	       newline.  See group_nodes_into_DFAstates.  */
+	    break;
+	  }
+    }
+
+  if (dest_states_malloced)
+    free (dest_states);
+
+  re_node_set_free (&follows);
+  for (i = 0; i < ndests; ++i)
+    re_node_set_free (dests_node + i);
+
+  if (dests_node_malloced)
+    free (dests_alloc);
+
+  return true;
+}
+
+/* Group all nodes belonging to STATE into several destinations.
+   Then for all destinations, set the nodes belonging to the destination
+   to DESTS_NODE[i] and set the characters accepted by the destination
+   to DEST_CH[i].  This function return the number of destinations.  */
+
+static Idx
+internal_function
+group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state,
+			    re_node_set *dests_node, bitset_t *dests_ch)
+{
+  reg_errcode_t err;
+  bool ok;
+  Idx i, j, k;
+  Idx ndests; /* Number of the destinations from `state'.  */
+  bitset_t accepts; /* Characters a node can accept.  */
+  const re_node_set *cur_nodes = &state->nodes;
+  bitset_empty (accepts);
+  ndests = 0;
+
+  /* For all the nodes belonging to `state',  */
+  for (i = 0; i < cur_nodes->nelem; ++i)
+    {
+      re_token_t *node = &dfa->nodes[cur_nodes->elems[i]];
+      re_token_type_t type = node->type;
+      unsigned int constraint = node->constraint;
+
+      /* Enumerate all single byte character this node can accept.  */
+      if (type == CHARACTER)
+	bitset_set (accepts, node->opr.c);
+      else if (type == SIMPLE_BRACKET)
+	{
+	  bitset_merge (accepts, node->opr.sbcset);
+	}
+      else if (type == OP_PERIOD)
+	{
+#ifdef RE_ENABLE_I18N
+	  if (dfa->mb_cur_max > 1)
+	    bitset_merge (accepts, dfa->sb_char);
+	  else
+#endif
+	    bitset_set_all (accepts);
+	  if (!(dfa->syntax & RE_DOT_NEWLINE))
+	    bitset_clear (accepts, '\n');
+	  if (dfa->syntax & RE_DOT_NOT_NULL)
+	    bitset_clear (accepts, '\0');
+	}
+#ifdef RE_ENABLE_I18N
+      else if (type == OP_UTF8_PERIOD)
+        {
+	  if (ASCII_CHARS % BITSET_WORD_BITS == 0)
+	    memset (accepts, -1, ASCII_CHARS / CHAR_BIT);
+	  else
+	    bitset_merge (accepts, utf8_sb_map);
+	  if (!(dfa->syntax & RE_DOT_NEWLINE))
+	    bitset_clear (accepts, '\n');
+	  if (dfa->syntax & RE_DOT_NOT_NULL)
+	    bitset_clear (accepts, '\0');
+        }
+#endif
+      else
+	continue;
+
+      /* Check the `accepts' and sift the characters which are not
+	 match it the context.  */
+      if (constraint)
+	{
+	  if (constraint & NEXT_NEWLINE_CONSTRAINT)
+	    {
+	      bool accepts_newline = bitset_contain (accepts, NEWLINE_CHAR);
+	      bitset_empty (accepts);
+	      if (accepts_newline)
+		bitset_set (accepts, NEWLINE_CHAR);
+	      else
+		continue;
+	    }
+	  if (constraint & NEXT_ENDBUF_CONSTRAINT)
+	    {
+	      bitset_empty (accepts);
+	      continue;
+	    }
+
+	  if (constraint & NEXT_WORD_CONSTRAINT)
+	    {
+	      bitset_word_t any_set = 0;
+	      if (type == CHARACTER && !node->word_char)
+		{
+		  bitset_empty (accepts);
+		  continue;
+		}
+#ifdef RE_ENABLE_I18N
+	      if (dfa->mb_cur_max > 1)
+		for (j = 0; j < BITSET_WORDS; ++j)
+		  any_set |= (accepts[j] &= (dfa->word_char[j] | ~dfa->sb_char[j]));
+	      else
+#endif
+		for (j = 0; j < BITSET_WORDS; ++j)
+		  any_set |= (accepts[j] &= dfa->word_char[j]);
+	      if (!any_set)
+		continue;
+	    }
+	  if (constraint & NEXT_NOTWORD_CONSTRAINT)
+	    {
+	      bitset_word_t any_set = 0;
+	      if (type == CHARACTER && node->word_char)
+		{
+		  bitset_empty (accepts);
+		  continue;
+		}
+#ifdef RE_ENABLE_I18N
+	      if (dfa->mb_cur_max > 1)
+		for (j = 0; j < BITSET_WORDS; ++j)
+		  any_set |= (accepts[j] &= ~(dfa->word_char[j] & dfa->sb_char[j]));
+	      else
+#endif
+		for (j = 0; j < BITSET_WORDS; ++j)
+		  any_set |= (accepts[j] &= ~dfa->word_char[j]);
+	      if (!any_set)
+		continue;
+	    }
+	}
+
+      /* Then divide `accepts' into DFA states, or create a new
+	 state.  Above, we make sure that accepts is not empty.  */
+      for (j = 0; j < ndests; ++j)
+	{
+	  bitset_t intersec; /* Intersection sets, see below.  */
+	  bitset_t remains;
+	  /* Flags, see below.  */
+	  bitset_word_t has_intersec, not_subset, not_consumed;
+
+	  /* Optimization, skip if this state doesn't accept the character.  */
+	  if (type == CHARACTER && !bitset_contain (dests_ch[j], node->opr.c))
+	    continue;
+
+	  /* Enumerate the intersection set of this state and `accepts'.  */
+	  has_intersec = 0;
+	  for (k = 0; k < BITSET_WORDS; ++k)
+	    has_intersec |= intersec[k] = accepts[k] & dests_ch[j][k];
+	  /* And skip if the intersection set is empty.  */
+	  if (!has_intersec)
+	    continue;
+
+	  /* Then check if this state is a subset of `accepts'.  */
+	  not_subset = not_consumed = 0;
+	  for (k = 0; k < BITSET_WORDS; ++k)
+	    {
+	      not_subset |= remains[k] = ~accepts[k] & dests_ch[j][k];
+	      not_consumed |= accepts[k] = accepts[k] & ~dests_ch[j][k];
+	    }
+
+	  /* If this state isn't a subset of `accepts', create a
+	     new group state, which has the `remains'. */
+	  if (not_subset)
+	    {
+	      bitset_copy (dests_ch[ndests], remains);
+	      bitset_copy (dests_ch[j], intersec);
+	      err = re_node_set_init_copy (dests_node + ndests, &dests_node[j]);
+	      if (BE (err != REG_NOERROR, 0))
+		goto error_return;
+	      ++ndests;
+	    }
+
+	  /* Put the position in the current group. */
+	  ok = re_node_set_insert (&dests_node[j], cur_nodes->elems[i]);
+	  if (BE (! ok, 0))
+	    goto error_return;
+
+	  /* If all characters are consumed, go to next node. */
+	  if (!not_consumed)
+	    break;
+	}
+      /* Some characters remain, create a new group. */
+      if (j == ndests)
+	{
+	  bitset_copy (dests_ch[ndests], accepts);
+	  err = re_node_set_init_1 (dests_node + ndests, cur_nodes->elems[i]);
+	  if (BE (err != REG_NOERROR, 0))
+	    goto error_return;
+	  ++ndests;
+	  bitset_empty (accepts);
+	}
+    }
+  return ndests;
+ error_return:
+  for (j = 0; j < ndests; ++j)
+    re_node_set_free (dests_node + j);
+  return REG_MISSING;
+}
+
+#ifdef RE_ENABLE_I18N
+/* Check how many bytes the node `dfa->nodes[node_idx]' accepts.
+   Return the number of the bytes the node accepts.
+   STR_IDX is the current index of the input string.
+
+   This function handles the nodes which can accept one character, or
+   one collating element like '.', '[a-z]', opposite to the other nodes
+   can only accept one byte.  */
+
+static int
+internal_function
+check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
+			 const re_string_t *input, Idx str_idx)
+{
+  const re_token_t *node = dfa->nodes + node_idx;
+  int char_len, elem_len;
+  Idx i;
+
+  if (BE (node->type == OP_UTF8_PERIOD, 0))
+    {
+      unsigned char c = re_string_byte_at (input, str_idx), d;
+      if (BE (c < 0xc2, 1))
+	return 0;
+
+      if (str_idx + 2 > input->len)
+	return 0;
+
+      d = re_string_byte_at (input, str_idx + 1);
+      if (c < 0xe0)
+	return (d < 0x80 || d > 0xbf) ? 0 : 2;
+      else if (c < 0xf0)
+	{
+	  char_len = 3;
+	  if (c == 0xe0 && d < 0xa0)
+	    return 0;
+	}
+      else if (c < 0xf8)
+	{
+	  char_len = 4;
+	  if (c == 0xf0 && d < 0x90)
+	    return 0;
+	}
+      else if (c < 0xfc)
+	{
+	  char_len = 5;
+	  if (c == 0xf8 && d < 0x88)
+	    return 0;
+	}
+      else if (c < 0xfe)
+	{
+	  char_len = 6;
+	  if (c == 0xfc && d < 0x84)
+	    return 0;
+	}
+      else
+	return 0;
+
+      if (str_idx + char_len > input->len)
+	return 0;
+
+      for (i = 1; i < char_len; ++i)
+	{
+	  d = re_string_byte_at (input, str_idx + i);
+	  if (d < 0x80 || d > 0xbf)
+	    return 0;
+	}
+      return char_len;
+    }
+
+  char_len = re_string_char_size_at (input, str_idx);
+  if (node->type == OP_PERIOD)
+    {
+      if (char_len <= 1)
+        return 0;
+      /* FIXME: I don't think this if is needed, as both '\n'
+	 and '\0' are char_len == 1.  */
+      /* '.' accepts any one character except the following two cases.  */
+      if ((!(dfa->syntax & RE_DOT_NEWLINE) &&
+	   re_string_byte_at (input, str_idx) == '\n') ||
+	  ((dfa->syntax & RE_DOT_NOT_NULL) &&
+	   re_string_byte_at (input, str_idx) == '\0'))
+	return 0;
+      return char_len;
+    }
+
+  elem_len = re_string_elem_size_at (input, str_idx);
+  if ((elem_len <= 1 && char_len <= 1) || char_len == 0)
+    return 0;
+
+  if (node->type == COMPLEX_BRACKET)
+    {
+      const re_charset_t *cset = node->opr.mbcset;
+# ifdef _LIBC
+      const unsigned char *pin
+	= ((const unsigned char *) re_string_get_buffer (input) + str_idx);
+      Idx j;
+      uint32_t nrules;
+# endif /* _LIBC */
+      int match_len = 0;
+      wchar_t wc = ((cset->nranges || cset->nchar_classes || cset->nmbchars)
+		    ? re_string_wchar_at (input, str_idx) : 0);
+
+      /* match with multibyte character?  */
+      for (i = 0; i < cset->nmbchars; ++i)
+	if (wc == cset->mbchars[i])
+	  {
+	    match_len = char_len;
+	    goto check_node_accept_bytes_match;
+	  }
+      /* match with character_class?  */
+      for (i = 0; i < cset->nchar_classes; ++i)
+	{
+	  wctype_t wt = cset->char_classes[i];
+	  if (__iswctype (wc, wt))
+	    {
+	      match_len = char_len;
+	      goto check_node_accept_bytes_match;
+	    }
+	}
+
+# ifdef _LIBC
+      nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
+      if (nrules != 0)
+	{
+	  unsigned int in_collseq = 0;
+	  const int32_t *table, *indirect;
+	  const unsigned char *weights, *extra;
+	  const char *collseqwc;
+	  int32_t idx;
+	  /* This #include defines a local function!  */
+#  include <locale/weight.h>
+
+	  /* match with collating_symbol?  */
+	  if (cset->ncoll_syms)
+	    extra = (const unsigned char *)
+	      _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB);
+	  for (i = 0; i < cset->ncoll_syms; ++i)
+	    {
+	      const unsigned char *coll_sym = extra + cset->coll_syms[i];
+	      /* Compare the length of input collating element and
+		 the length of current collating element.  */
+	      if (*coll_sym != elem_len)
+		continue;
+	      /* Compare each bytes.  */
+	      for (j = 0; j < *coll_sym; j++)
+		if (pin[j] != coll_sym[1 + j])
+		  break;
+	      if (j == *coll_sym)
+		{
+		  /* Match if every bytes is equal.  */
+		  match_len = j;
+		  goto check_node_accept_bytes_match;
+		}
+	    }
+
+	  if (cset->nranges)
+	    {
+	      if (elem_len <= char_len)
+		{
+		  collseqwc = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQWC);
+		  in_collseq = __collseq_table_lookup (collseqwc, wc);
+		}
+	      else
+		in_collseq = find_collation_sequence_value (pin, elem_len);
+	    }
+	  /* match with range expression?  */
+	  for (i = 0; i < cset->nranges; ++i)
+	    if (cset->range_starts[i] <= in_collseq
+		&& in_collseq <= cset->range_ends[i])
+	      {
+		match_len = elem_len;
+		goto check_node_accept_bytes_match;
+	      }
+
+	  /* match with equivalence_class?  */
+	  if (cset->nequiv_classes)
+	    {
+	      const unsigned char *cp = pin;
+	      table = (const int32_t *)
+		_NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB);
+	      weights = (const unsigned char *)
+		_NL_CURRENT (LC_COLLATE, _NL_COLLATE_WEIGHTMB);
+	      extra = (const unsigned char *)
+		_NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB);
+	      indirect = (const int32_t *)
+		_NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB);
+	      idx = findidx (&cp);
+	      if (idx > 0)
+		for (i = 0; i < cset->nequiv_classes; ++i)
+		  {
+		    int32_t equiv_class_idx = cset->equiv_classes[i];
+		    size_t weight_len = weights[idx];
+		    if (weight_len == weights[equiv_class_idx])
+		      {
+			Idx cnt = 0;
+			while (cnt <= weight_len
+			       && (weights[equiv_class_idx + 1 + cnt]
+				   == weights[idx + 1 + cnt]))
+			  ++cnt;
+			if (cnt > weight_len)
+			  {
+			    match_len = elem_len;
+			    goto check_node_accept_bytes_match;
+			  }
+		      }
+		  }
+	    }
+	}
+      else
+# endif /* _LIBC */
+	{
+	  /* match with range expression?  */
+#if __GNUC__ >= 2 && ! (__STDC_VERSION__ < 199901L && __STRICT_ANSI__)
+	  wchar_t cmp_buf[] = {L'\0', L'\0', wc, L'\0', L'\0', L'\0'};
+#else
+	  wchar_t cmp_buf[] = {L'\0', L'\0', L'\0', L'\0', L'\0', L'\0'};
+	  cmp_buf[2] = wc;
+#endif
+	  for (i = 0; i < cset->nranges; ++i)
+	    {
+	      cmp_buf[0] = cset->range_starts[i];
+	      cmp_buf[4] = cset->range_ends[i];
+	      if (wcscoll (cmp_buf, cmp_buf + 2) <= 0
+		  && wcscoll (cmp_buf + 2, cmp_buf + 4) <= 0)
+		{
+		  match_len = char_len;
+		  goto check_node_accept_bytes_match;
+		}
+	    }
+	}
+    check_node_accept_bytes_match:
+      if (!cset->non_match)
+	return match_len;
+      else
+	{
+	  if (match_len > 0)
+	    return 0;
+	  else
+	    return (elem_len > char_len) ? elem_len : char_len;
+	}
+    }
+  return 0;
+}
+
+# ifdef _LIBC
+static unsigned int
+internal_function
+find_collation_sequence_value (const unsigned char *mbs, size_t mbs_len)
+{
+  uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
+  if (nrules == 0)
+    {
+      if (mbs_len == 1)
+	{
+	  /* No valid character.  Match it as a single byte character.  */
+	  const unsigned char *collseq = (const unsigned char *)
+	    _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQMB);
+	  return collseq[mbs[0]];
+	}
+      return UINT_MAX;
+    }
+  else
+    {
+      int32_t idx;
+      const unsigned char *extra = (const unsigned char *)
+	_NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB);
+      int32_t extrasize = (const unsigned char *)
+	_NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB + 1) - extra;
+
+      for (idx = 0; idx < extrasize;)
+	{
+	  int mbs_cnt;
+	  bool found = false;
+	  int32_t elem_mbs_len;
+	  /* Skip the name of collating element name.  */
+	  idx = idx + extra[idx] + 1;
+	  elem_mbs_len = extra[idx++];
+	  if (mbs_len == elem_mbs_len)
+	    {
+	      for (mbs_cnt = 0; mbs_cnt < elem_mbs_len; ++mbs_cnt)
+		if (extra[idx + mbs_cnt] != mbs[mbs_cnt])
+		  break;
+	      if (mbs_cnt == elem_mbs_len)
+		/* Found the entry.  */
+		found = true;
+	    }
+	  /* Skip the byte sequence of the collating element.  */
+	  idx += elem_mbs_len;
+	  /* Adjust for the alignment.  */
+	  idx = (idx + 3) & ~3;
+	  /* Skip the collation sequence value.  */
+	  idx += sizeof (uint32_t);
+	  /* Skip the wide char sequence of the collating element.  */
+	  idx = idx + sizeof (uint32_t) * (extra[idx] + 1);
+	  /* If we found the entry, return the sequence value.  */
+	  if (found)
+	    return *(uint32_t *) (extra + idx);
+	  /* Skip the collation sequence value.  */
+	  idx += sizeof (uint32_t);
+	}
+      return UINT_MAX;
+    }
+}
+# endif /* _LIBC */
+#endif /* RE_ENABLE_I18N */
+
+/* Check whether the node accepts the byte which is IDX-th
+   byte of the INPUT.  */
+
+static bool
+internal_function
+check_node_accept (const re_match_context_t *mctx, const re_token_t *node,
+		   Idx idx)
+{
+  unsigned char ch;
+  ch = re_string_byte_at (&mctx->input, idx);
+  switch (node->type)
+    {
+    case CHARACTER:
+      if (node->opr.c != ch)
+        return false;
+      break;
+
+    case SIMPLE_BRACKET:
+      if (!bitset_contain (node->opr.sbcset, ch))
+        return false;
+      break;
+
+#ifdef RE_ENABLE_I18N
+    case OP_UTF8_PERIOD:
+      if (ch >= ASCII_CHARS)
+        return false;
+      /* FALLTHROUGH */
+#endif
+    case OP_PERIOD:
+      if ((ch == '\n' && !(mctx->dfa->syntax & RE_DOT_NEWLINE))
+	  || (ch == '\0' && (mctx->dfa->syntax & RE_DOT_NOT_NULL)))
+	return false;
+      break;
+
+    default:
+      return false;
+    }
+
+  if (node->constraint)
+    {
+      /* The node has constraints.  Check whether the current context
+	 satisfies the constraints.  */
+      unsigned int context = re_string_context_at (&mctx->input, idx,
+						   mctx->eflags);
+      if (NOT_SATISFY_NEXT_CONSTRAINT (node->constraint, context))
+	return false;
+    }
+
+  return true;
+}
+
+/* Extend the buffers, if the buffers have run out.  */
+
+static reg_errcode_t
+internal_function
+extend_buffers (re_match_context_t *mctx)
+{
+  reg_errcode_t ret;
+  re_string_t *pstr = &mctx->input;
+
+  /* Avoid overflow.  */
+  if (BE (SIZE_MAX / 2 / sizeof (re_dfastate_t *) <= pstr->bufs_len, 0))
+    return REG_ESPACE;
+
+  /* Double the lengthes of the buffers.  */
+  ret = re_string_realloc_buffers (pstr, pstr->bufs_len * 2);
+  if (BE (ret != REG_NOERROR, 0))
+    return ret;
+
+  if (mctx->state_log != NULL)
+    {
+      /* And double the length of state_log.  */
+      /* XXX We have no indication of the size of this buffer.  If this
+	 allocation fail we have no indication that the state_log array
+	 does not have the right size.  */
+      re_dfastate_t **new_array = re_realloc (mctx->state_log, re_dfastate_t *,
+					      pstr->bufs_len + 1);
+      if (BE (new_array == NULL, 0))
+	return REG_ESPACE;
+      mctx->state_log = new_array;
+    }
+
+  /* Then reconstruct the buffers.  */
+  if (pstr->icase)
+    {
+#ifdef RE_ENABLE_I18N
+      if (pstr->mb_cur_max > 1)
+	{
+	  ret = build_wcs_upper_buffer (pstr);
+	  if (BE (ret != REG_NOERROR, 0))
+	    return ret;
+	}
+      else
+#endif /* RE_ENABLE_I18N  */
+	build_upper_buffer (pstr);
+    }
+  else
+    {
+#ifdef RE_ENABLE_I18N
+      if (pstr->mb_cur_max > 1)
+	build_wcs_buffer (pstr);
+      else
+#endif /* RE_ENABLE_I18N  */
+	{
+	  if (pstr->trans != NULL)
+	    re_string_translate_buffer (pstr);
+	}
+    }
+  return REG_NOERROR;
+}
+
+
+/* Functions for matching context.  */
+
+/* Initialize MCTX.  */
+
+static reg_errcode_t
+internal_function
+match_ctx_init (re_match_context_t *mctx, int eflags, Idx n)
+{
+  mctx->eflags = eflags;
+  mctx->match_last = REG_MISSING;
+  if (n > 0)
+    {
+      /* Avoid overflow.  */
+      size_t max_object_size =
+	MAX (sizeof (struct re_backref_cache_entry),
+	     sizeof (re_sub_match_top_t *));
+      if (BE (SIZE_MAX / max_object_size < n, 0))
+	return REG_ESPACE;
+
+      mctx->bkref_ents = re_malloc (struct re_backref_cache_entry, n);
+      mctx->sub_tops = re_malloc (re_sub_match_top_t *, n);
+      if (BE (mctx->bkref_ents == NULL || mctx->sub_tops == NULL, 0))
+	return REG_ESPACE;
+    }
+  /* Already zero-ed by the caller.
+     else
+       mctx->bkref_ents = NULL;
+     mctx->nbkref_ents = 0;
+     mctx->nsub_tops = 0;  */
+  mctx->abkref_ents = n;
+  mctx->max_mb_elem_len = 1;
+  mctx->asub_tops = n;
+  return REG_NOERROR;
+}
+
+/* Clean the entries which depend on the current input in MCTX.
+   This function must be invoked when the matcher changes the start index
+   of the input, or changes the input string.  */
+
+static void
+internal_function
+match_ctx_clean (re_match_context_t *mctx)
+{
+  Idx st_idx;
+  for (st_idx = 0; st_idx < mctx->nsub_tops; ++st_idx)
+    {
+      Idx sl_idx;
+      re_sub_match_top_t *top = mctx->sub_tops[st_idx];
+      for (sl_idx = 0; sl_idx < top->nlasts; ++sl_idx)
+	{
+	  re_sub_match_last_t *last = top->lasts[sl_idx];
+	  re_free (last->path.array);
+	  re_free (last);
+	}
+      re_free (top->lasts);
+      if (top->path)
+	{
+	  re_free (top->path->array);
+	  re_free (top->path);
+	}
+      free (top);
+    }
+
+  mctx->nsub_tops = 0;
+  mctx->nbkref_ents = 0;
+}
+
+/* Free all the memory associated with MCTX.  */
+
+static void
+internal_function
+match_ctx_free (re_match_context_t *mctx)
+{
+  /* First, free all the memory associated with MCTX->SUB_TOPS.  */
+  match_ctx_clean (mctx);
+  re_free (mctx->sub_tops);
+  re_free (mctx->bkref_ents);
+}
+
+/* Add a new backreference entry to MCTX.
+   Note that we assume that caller never call this function with duplicate
+   entry, and call with STR_IDX which isn't smaller than any existing entry.
+*/
+
+static reg_errcode_t
+internal_function
+match_ctx_add_entry (re_match_context_t *mctx, Idx node, Idx str_idx, Idx from,
+		     Idx to)
+{
+  if (mctx->nbkref_ents >= mctx->abkref_ents)
+    {
+      struct re_backref_cache_entry* new_entry;
+      new_entry = re_realloc (mctx->bkref_ents, struct re_backref_cache_entry,
+			      mctx->abkref_ents * 2);
+      if (BE (new_entry == NULL, 0))
+	{
+	  re_free (mctx->bkref_ents);
+	  return REG_ESPACE;
+	}
+      mctx->bkref_ents = new_entry;
+      memset (mctx->bkref_ents + mctx->nbkref_ents, '\0',
+	      sizeof (struct re_backref_cache_entry) * mctx->abkref_ents);
+      mctx->abkref_ents *= 2;
+    }
+  if (mctx->nbkref_ents > 0
+      && mctx->bkref_ents[mctx->nbkref_ents - 1].str_idx == str_idx)
+    mctx->bkref_ents[mctx->nbkref_ents - 1].more = 1;
+
+  mctx->bkref_ents[mctx->nbkref_ents].node = node;
+  mctx->bkref_ents[mctx->nbkref_ents].str_idx = str_idx;
+  mctx->bkref_ents[mctx->nbkref_ents].subexp_from = from;
+  mctx->bkref_ents[mctx->nbkref_ents].subexp_to = to;
+
+  /* This is a cache that saves negative results of check_dst_limits_calc_pos.
+     If bit N is clear, means that this entry won't epsilon-transition to
+     an OP_OPEN_SUBEXP or OP_CLOSE_SUBEXP for the N+1-th subexpression.  If
+     it is set, check_dst_limits_calc_pos_1 will recurse and try to find one
+     such node.
+
+     A backreference does not epsilon-transition unless it is empty, so set
+     to all zeros if FROM != TO.  */
+  mctx->bkref_ents[mctx->nbkref_ents].eps_reachable_subexps_map
+    = (from == to ? -1 : 0);
+
+  mctx->bkref_ents[mctx->nbkref_ents++].more = 0;
+  if (mctx->max_mb_elem_len < to - from)
+    mctx->max_mb_elem_len = to - from;
+  return REG_NOERROR;
+}
+
+/* Return the first entry with the same str_idx, or REG_MISSING if none is
+   found.  Note that MCTX->BKREF_ENTS is already sorted by MCTX->STR_IDX.  */
+
+static Idx
+internal_function
+search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx)
+{
+  Idx left, right, mid, last;
+  last = right = mctx->nbkref_ents;
+  for (left = 0; left < right;)
+    {
+      mid = (left + right) / 2;
+      if (mctx->bkref_ents[mid].str_idx < str_idx)
+	left = mid + 1;
+      else
+	right = mid;
+    }
+  if (left < last && mctx->bkref_ents[left].str_idx == str_idx)
+    return left;
+  else
+    return REG_MISSING;
+}
+
+/* Register the node NODE, whose type is OP_OPEN_SUBEXP, and which matches
+   at STR_IDX.  */
+
+static reg_errcode_t
+internal_function
+match_ctx_add_subtop (re_match_context_t *mctx, Idx node, Idx str_idx)
+{
+#ifdef DEBUG
+  assert (mctx->sub_tops != NULL);
+  assert (mctx->asub_tops > 0);
+#endif
+  if (BE (mctx->nsub_tops == mctx->asub_tops, 0))
+    {
+      Idx new_asub_tops = mctx->asub_tops * 2;
+      re_sub_match_top_t **new_array = re_realloc (mctx->sub_tops,
+						   re_sub_match_top_t *,
+						   new_asub_tops);
+      if (BE (new_array == NULL, 0))
+	return REG_ESPACE;
+      mctx->sub_tops = new_array;
+      mctx->asub_tops = new_asub_tops;
+    }
+  mctx->sub_tops[mctx->nsub_tops] = calloc (1, sizeof (re_sub_match_top_t));
+  if (BE (mctx->sub_tops[mctx->nsub_tops] == NULL, 0))
+    return REG_ESPACE;
+  mctx->sub_tops[mctx->nsub_tops]->node = node;
+  mctx->sub_tops[mctx->nsub_tops++]->str_idx = str_idx;
+  return REG_NOERROR;
+}
+
+/* Register the node NODE, whose type is OP_CLOSE_SUBEXP, and which matches
+   at STR_IDX, whose corresponding OP_OPEN_SUBEXP is SUB_TOP.  */
+
+static re_sub_match_last_t *
+internal_function
+match_ctx_add_sublast (re_sub_match_top_t *subtop, Idx node, Idx str_idx)
+{
+  re_sub_match_last_t *new_entry;
+  if (BE (subtop->nlasts == subtop->alasts, 0))
+    {
+      Idx new_alasts = 2 * subtop->alasts + 1;
+      re_sub_match_last_t **new_array = re_realloc (subtop->lasts,
+						    re_sub_match_last_t *,
+						    new_alasts);
+      if (BE (new_array == NULL, 0))
+	return NULL;
+      subtop->lasts = new_array;
+      subtop->alasts = new_alasts;
+    }
+  new_entry = calloc (1, sizeof (re_sub_match_last_t));
+  if (BE (new_entry != NULL, 1))
+    {
+      subtop->lasts[subtop->nlasts] = new_entry;
+      new_entry->node = node;
+      new_entry->str_idx = str_idx;
+      ++subtop->nlasts;
+    }
+  return new_entry;
+}
+
+static void
+internal_function
+sift_ctx_init (re_sift_context_t *sctx, re_dfastate_t **sifted_sts,
+	       re_dfastate_t **limited_sts, Idx last_node, Idx last_str_idx)
+{
+  sctx->sifted_states = sifted_sts;
+  sctx->limited_states = limited_sts;
+  sctx->last_node = last_node;
+  sctx->last_str_idx = last_str_idx;
+  re_node_set_init_empty (&sctx->limits);
+}
diff --git a/parted-1.8.7/lib/rename.c b/parted-1.8.7/lib/rename.c
new file mode 100644
index 0000000..32d2b01
--- /dev/null
+++ b/parted-1.8.7/lib/rename.c
@@ -0,0 +1,57 @@
+/* Work around the bug in some systems whereby rename fails when the source
+   file has a trailing slash.  The rename functions of SunOS 4.1.1_U1 and
+   mips-dec-ultrix4.4 have this bug.
+
+   Copyright (C) 2001, 2002, 2003, 2005, 2006 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* written by Volker Borchert */
+
+#include <config.h>
+#undef rename
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "dirname.h"
+#include "xalloc.h"
+
+/* Rename the file SRC to DST, removing any trailing
+   slashes from SRC.  Needed for SunOS 4.1.1_U1.  */
+
+int
+rpl_rename (char const *src, char const *dst)
+{
+  char *src_temp;
+  int ret_val;
+  size_t s_len = strlen (src);
+
+  if (s_len && src[s_len - 1] == '/')
+    {
+      src_temp = xstrdup (src);
+      strip_trailing_slashes (src_temp);
+    }
+  else
+    src_temp = (char *) src;
+
+  ret_val = rename (src_temp, dst);
+
+  if (src_temp != src)
+    free (src_temp);
+
+  return ret_val;
+}
diff --git a/parted-1.8.7/lib/rpmatch.c b/parted-1.8.7/lib/rpmatch.c
new file mode 100644
index 0000000..e5f79f8
--- /dev/null
+++ b/parted-1.8.7/lib/rpmatch.c
@@ -0,0 +1,79 @@
+/* Determine whether string value is affirmation or negative response
+   according to current locale's data.
+
+   Copyright (C) 1996, 1998, 2000, 2002, 2003, 2006 Free Software
+   Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include <config.h>
+
+#include <stddef.h>
+#include <stdlib.h>
+
+#if ENABLE_NLS
+# include <sys/types.h>
+# include <limits.h>
+# include <regex.h>
+# include "gettext.h"
+# define _(msgid) gettext (msgid)
+
+static int
+try (const char *response, const char *pattern, const int match,
+     const int nomatch, const char **lastp, regex_t *re)
+{
+  if (pattern != *lastp)
+    {
+      /* The pattern has changed.  */
+      if (*lastp)
+	{
+	  /* Free the old compiled pattern.  */
+	  regfree (re);
+	  *lastp = NULL;
+	}
+      /* Compile the pattern and cache it for future runs.  */
+      if (regcomp (re, pattern, REG_EXTENDED) != 0)
+	return -1;
+      *lastp = pattern;
+    }
+
+  /* See if the regular expression matches RESPONSE.  */
+  return regexec (re, response, 0, NULL, 0) == 0 ? match : nomatch;
+}
+#endif
+
+
+int
+rpmatch (const char *response)
+{
+#if ENABLE_NLS
+  /* Match against one of the response patterns, compiling the pattern
+     first if necessary.  */
+
+  /* We cache the response patterns and compiled regexps here.  */
+  static const char *yesexpr, *noexpr;
+  static regex_t yesre, nore;
+  int result;
+
+  return ((result = try (response, _("^[yY]"), 1, 0,
+			 &yesexpr, &yesre))
+	  ? result
+	  : try (response, _("^[nN]"), 0, -1, &noexpr, &nore));
+#else
+  /* Test against "^[yY]" and "^[nN]", hardcoded to avoid requiring regex */
+  return (*response == 'y' || *response == 'Y' ? 1
+	  : *response == 'n' || *response == 'N' ? 0 : -1);
+#endif
+}
diff --git a/parted-1.8.7/lib/safe-read.c b/parted-1.8.7/lib/safe-read.c
new file mode 100644
index 0000000..b7bf1d5
--- /dev/null
+++ b/parted-1.8.7/lib/safe-read.c
@@ -0,0 +1,78 @@
+/* An interface to read and write that retries after interrupts.
+
+   Copyright (C) 1993, 1994, 1998, 2002, 2003, 2004, 2005, 2006 Free
+   Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include <config.h>
+
+/* Specification.  */
+#ifdef SAFE_WRITE
+# include "safe-write.h"
+#else
+# include "safe-read.h"
+#endif
+
+/* Get ssize_t.  */
+#include <sys/types.h>
+#include <unistd.h>
+
+#include <errno.h>
+
+#ifdef EINTR
+# define IS_EINTR(x) ((x) == EINTR)
+#else
+# define IS_EINTR(x) 0
+#endif
+
+#include <limits.h>
+
+#ifdef SAFE_WRITE
+# define safe_rw safe_write
+# define rw write
+#else
+# define safe_rw safe_read
+# define rw read
+# undef const
+# define const /* empty */
+#endif
+
+/* Read(write) up to COUNT bytes at BUF from(to) descriptor FD, retrying if
+   interrupted.  Return the actual number of bytes read(written), zero for EOF,
+   or SAFE_READ_ERROR(SAFE_WRITE_ERROR) upon error.  */
+size_t
+safe_rw (int fd, void const *buf, size_t count)
+{
+  /* Work around a bug in Tru64 5.1.  Attempting to read more than
+     INT_MAX bytes fails with errno == EINVAL.  See
+     <http://lists.gnu.org/archive/html/bug-gnu-utils/2002-04/msg00010.html>.
+     When decreasing COUNT, keep it block-aligned.  */
+  enum { BUGGY_READ_MAXIMUM = INT_MAX & ~8191 };
+
+  for (;;)
+    {
+      ssize_t result = rw (fd, buf, count);
+
+      if (0 <= result)
+	return result;
+      else if (IS_EINTR (errno))
+	continue;
+      else if (errno == EINVAL && BUGGY_READ_MAXIMUM < count)
+	count = BUGGY_READ_MAXIMUM;
+      else
+	return result;
+    }
+}
diff --git a/parted-1.8.7/lib/safe-read.h b/parted-1.8.7/lib/safe-read.h
new file mode 100644
index 0000000..3451955
--- /dev/null
+++ b/parted-1.8.7/lib/safe-read.h
@@ -0,0 +1,35 @@
+/* An interface to read() that retries after interrupts.
+   Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include <stddef.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define SAFE_READ_ERROR ((size_t) -1)
+
+/* Read up to COUNT bytes at BUF from descriptor FD, retrying if interrupted.
+   Return the actual number of bytes read, zero for EOF, or SAFE_READ_ERROR
+   upon error.  */
+extern size_t safe_read (int fd, void *buf, size_t count);
+
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/parted-1.8.7/lib/safe-write.c b/parted-1.8.7/lib/safe-write.c
new file mode 100644
index 0000000..4c375a6
--- /dev/null
+++ b/parted-1.8.7/lib/safe-write.c
@@ -0,0 +1,19 @@
+/* An interface to write that retries after interrupts.
+   Copyright (C) 2002 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#define SAFE_WRITE
+#include "safe-read.c"
diff --git a/parted-1.8.7/lib/safe-write.h b/parted-1.8.7/lib/safe-write.h
new file mode 100644
index 0000000..c194636
--- /dev/null
+++ b/parted-1.8.7/lib/safe-write.h
@@ -0,0 +1,25 @@
+/* An interface to write() that retries after interrupts.
+   Copyright (C) 2002 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include <stddef.h>
+
+#define SAFE_WRITE_ERROR ((size_t) -1)
+
+/* Write up to COUNT bytes at BUF to descriptor FD, retrying if interrupted.
+   Return the actual number of bytes written, zero for EOF, or SAFE_WRITE_ERROR
+   upon error.  */
+extern size_t safe_write (int fd, const void *buf, size_t count);
diff --git a/parted-1.8.7/lib/stdbool_.h b/parted-1.8.7/lib/stdbool_.h
new file mode 100644
index 0000000..150a010
--- /dev/null
+++ b/parted-1.8.7/lib/stdbool_.h
@@ -0,0 +1,118 @@
+/* Copyright (C) 2001, 2002, 2003, 2006, 2007 Free Software Foundation, Inc.
+   Written by Bruno Haible <haible@clisp.cons.org>, 2001.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef _GL_STDBOOL_H
+#define _GL_STDBOOL_H
+
+/* ISO C 99 <stdbool.h> for platforms that lack it.  */
+
+/* Usage suggestions:
+
+   Programs that use <stdbool.h> should be aware of some limitations
+   and standards compliance issues.
+
+   Standards compliance:
+
+       - <stdbool.h> must be #included before 'bool', 'false', 'true'
+         can be used.
+
+       - You cannot assume that sizeof (bool) == 1.
+
+       - Programs should not undefine the macros bool, true, and false,
+         as C99 lists that as an "obsolescent feature".
+
+   Limitations of this substitute, when used in a C89 environment:
+
+       - <stdbool.h> must be #included before the '_Bool' type can be used.
+
+       - You cannot assume that _Bool is a typedef; it might be a macro.
+
+       - Bit-fields of type 'bool' are not supported.  Portable code
+         should use 'unsigned int foo : 1;' rather than 'bool foo : 1;'.
+
+       - In C99, casts and automatic conversions to '_Bool' or 'bool' are
+         performed in such a way that every nonzero value gets converted
+         to 'true', and zero gets converted to 'false'.  This doesn't work
+         with this substitute.  With this substitute, only the values 0 and 1
+         give the expected result when converted to _Bool' or 'bool'.
+
+   Also, it is suggested that programs use 'bool' rather than '_Bool';
+   this isn't required, but 'bool' is more common.  */
+
+
+/* 7.16. Boolean type and values */
+
+/* BeOS <sys/socket.h> already #defines false 0, true 1.  We use the same
+   definitions below, but temporarily we have to #undef them.  */
+#ifdef __BEOS__
+# include <OS.h> /* defines bool but not _Bool */
+# undef false
+# undef true
+#endif
+
+/* For the sake of symbolic names in gdb, we define true and false as
+   enum constants, not only as macros.
+   It is tempting to write
+      typedef enum { false = 0, true = 1 } _Bool;
+   so that gdb prints values of type 'bool' symbolically. But if we do
+   this, values of type '_Bool' may promote to 'int' or 'unsigned int'
+   (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int'
+   (see ISO C 99 6.3.1.1.(2)).  So we add a negative value to the
+   enum; this ensures that '_Bool' promotes to 'int'.  */
+#if defined __cplusplus || defined __BEOS__
+  /* A compiler known to have 'bool'.  */
+  /* If the compiler already has both 'bool' and '_Bool', we can assume they
+     are the same types.  */
+# if !@HAVE__BOOL@
+typedef bool _Bool;
+# endif
+#else
+# if !defined __GNUC__
+   /* If @HAVE__BOOL@:
+        Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when
+        the built-in _Bool type is used.  See
+          http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+          http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+          http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
+        Similar bugs are likely with other compilers as well; this file
+        wouldn't be used if <stdbool.h> was working.
+        So we override the _Bool type.
+      If !@HAVE__BOOL@:
+        Need to define _Bool ourselves. As 'signed char' or as an enum type?
+        Use of a typedef, with SunPRO C, leads to a stupid
+          "warning: _Bool is a keyword in ISO C99".
+        Use of an enum type, with IRIX cc, leads to a stupid
+          "warning(1185): enumerated type mixed with another type".
+        The only benefit of the enum type, debuggability, is not important
+        with these compilers.  So use 'signed char' and no typedef.  */
+#  define _Bool signed char
+enum { false = 0, true = 1 };
+# else
+   /* With this compiler, trust the _Bool type if the compiler has it.  */
+#  if !@HAVE__BOOL@
+typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool;
+#  endif
+# endif
+#endif
+#define bool _Bool
+
+/* The other macros must be usable in preprocessor directives.  */
+#define false 0
+#define true 1
+#define __bool_true_false_are_defined 1
+
+#endif /* _GL_STDBOOL_H */
diff --git a/parted-1.8.7/lib/stdint_.h b/parted-1.8.7/lib/stdint_.h
new file mode 100644
index 0000000..4fa5251
--- /dev/null
+++ b/parted-1.8.7/lib/stdint_.h
@@ -0,0 +1,504 @@
+/* Copyright (C) 2001-2002, 2004-2007 Free Software Foundation, Inc.
+   Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
+   This file is part of gnulib.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef _GL_STDINT_H
+#define _GL_STDINT_H
+
+/*
+ * ISO C 99 <stdint.h> for platforms that lack it.
+ * <http://www.opengroup.org/susv3xbd/stdint.h.html>
+ */
+
+/* Get those types that are already defined in other system include
+   files, so that we can "#define int8_t signed char" below without
+   worrying about a later system include file containing a "typedef
+   signed char int8_t;" that will get messed up by our macro.  Our
+   macros should all be consistent with the system versions, except
+   for the "fast" types and macros, which we recommend against using
+   in public interfaces due to compiler differences.  */
+
+#if @HAVE_STDINT_H@
+# if defined __sgi && ! defined __c99
+   /* Bypass IRIX's <stdint.h> if in C89 mode, since it merely annoys users
+      with "This header file is to be used only for c99 mode compilations"
+      diagnostics.  */
+#  define __STDINT_H__
+# endif
+  /* Other systems may have an incomplete or buggy <stdint.h>.
+     Include it before <inttypes.h>, since any "#include <stdint.h>"
+     in <inttypes.h> would reinclude us, skipping our contents because
+     _GL_STDINT_H is defined.  */
+# include @ABSOLUTE_STDINT_H@
+#endif
+
+/* <sys/types.h> defines some of the stdint.h types as well, on glibc,
+   IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>).
+   AIX 5.2 <sys/types.h> isn't needed and causes troubles.
+   MacOS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but
+   relies on the system <stdint.h> definitions, so include
+   <sys/types.h> after @ABSOLUTE_STDINT_H@.  */
+#if @HAVE_SYS_TYPES_H@ && ! defined _AIX
+# include <sys/types.h>
+#endif
+
+/* Get LONG_MIN, LONG_MAX, ULONG_MAX.  */
+#include <limits.h>
+
+#if @HAVE_INTTYPES_H@
+  /* In OpenBSD 3.8, <inttypes.h> includes <machine/types.h>, which defines
+     int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__.
+     <inttypes.h> also defines intptr_t and uintptr_t.  */
+# define _GL_JUST_INCLUDE_ABSOLUTE_INTTYPES_H
+# include <inttypes.h>
+# undef _GL_JUST_INCLUDE_ABSOLUTE_INTTYPES_H
+#elif @HAVE_SYS_INTTYPES_H@
+  /* Solaris 7 <sys/inttypes.h> has the types except the *_fast*_t types, and
+     the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX.  */
+# include <sys/inttypes.h>
+#endif
+
+#if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__
+  /* Linux libc4 >= 4.6.7 and libc5 have a <sys/bitypes.h> that defines
+     int{8,16,32,64}_t and __BIT_TYPES_DEFINED__.  In libc5 >= 5.2.2 it is
+     included by <sys/types.h>.  */
+# include <sys/bitypes.h>
+#endif
+
+#if ! defined __cplusplus || defined __STDC_CONSTANT_MACROS
+
+/* Get WCHAR_MIN, WCHAR_MAX.  */
+# if ! (defined WCHAR_MIN && defined WCHAR_MAX)
+#  include <wchar.h>
+# endif
+
+#endif
+
+/* Minimum and maximum values for a integer type under the usual assumption.
+   Return an unspecified value if BITS == 0, adding a check to pacify
+   picky compilers.  */
+
+#define _STDINT_MIN(signed, bits, zero) \
+  ((signed) ? (- ((zero) + 1) << ((bits) ? (bits) - 1 : 0)) : (zero))
+
+#define _STDINT_MAX(signed, bits, zero) \
+  ((signed) \
+   ? ~ _STDINT_MIN (signed, bits, zero) \
+   : ((((zero) + 1) << ((bits) ? (bits) - 1 : 0)) - 1) * 2 + 1)
+
+/* 7.18.1.1. Exact-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+   types have 8, 16, 32, optionally 64 bits.  */
+
+#undef int8_t
+#undef uint8_t
+#define int8_t signed char
+#define uint8_t unsigned char
+
+#undef int16_t
+#undef uint16_t
+#define int16_t short int
+#define uint16_t unsigned short int
+
+#undef int32_t
+#undef uint32_t
+#define int32_t int
+#define uint32_t unsigned int
+
+/* Do not undefine int64_t if gnulib is not being used with 64-bit
+   types, since otherwise it breaks platforms like Tandem/NSK.  */
+#if LONG_MAX >> 31 >> 31 == 1
+# undef int64_t
+# define int64_t long int
+# define GL_INT64_T
+#elif defined _MSC_VER
+# undef int64_t
+# define int64_t __int64
+# define GL_INT64_T
+#elif @HAVE_LONG_LONG_INT@
+# undef int64_t
+# define int64_t long long int
+# define GL_INT64_T
+#endif
+
+#if ULONG_MAX >> 31 >> 31 >> 1 == 1
+# undef uint64_t
+# define uint64_t unsigned long int
+# define GL_UINT64_T
+#elif defined _MSC_VER
+# undef uint64_t
+# define uint64_t unsigned __int64
+# define GL_UINT64_T
+#elif @HAVE_UNSIGNED_LONG_LONG_INT@
+# undef uint64_t
+# define uint64_t unsigned long long int
+# define GL_UINT64_T
+#endif
+
+/* Avoid collision with Solaris 2.5.1 <pthread.h> etc.  */
+#define _UINT8_T
+#define _UINT32_T
+#define _UINT64_T
+
+
+/* 7.18.1.2. Minimum-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+   types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
+   are the same as the corresponding N_t types.  */
+
+#undef int_least8_t
+#undef uint_least8_t
+#undef int_least16_t
+#undef uint_least16_t
+#undef int_least32_t
+#undef uint_least32_t
+#undef int_least64_t
+#undef uint_least64_t
+#define int_least8_t int8_t
+#define uint_least8_t uint8_t
+#define int_least16_t int16_t
+#define uint_least16_t uint16_t
+#define int_least32_t int32_t
+#define uint_least32_t uint32_t
+#ifdef GL_INT64_T
+# define int_least64_t int64_t
+#endif
+#ifdef GL_UINT64_T
+# define uint_least64_t uint64_t
+#endif
+
+/* 7.18.1.3. Fastest minimum-width integer types */
+
+/* Note: Other <stdint.h> substitutes may define these types differently.
+   It is not recommended to use these types in public header files. */
+
+/* Here we assume a standard architecture where the hardware integer
+   types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
+   are taken from the same list of types.  Assume that 'long int'
+   is fast enough for all narrower integers.  */
+
+#undef int_fast8_t
+#undef uint_fast8_t
+#undef int_fast16_t
+#undef uint_fast16_t
+#undef int_fast32_t
+#undef uint_fast32_t
+#undef int_fast64_t
+#undef uint_fast64_t
+#define int_fast8_t long int
+#define uint_fast8_t unsigned int_fast8_t
+#define int_fast16_t long int
+#define uint_fast16_t unsigned int_fast16_t
+#define int_fast32_t long int
+#define uint_fast32_t unsigned int_fast32_t
+#ifdef GL_INT64_T
+# define int_fast64_t int64_t
+#endif
+#ifdef GL_UINT64_T
+# define uint_fast64_t uint64_t
+#endif
+
+/* 7.18.1.4. Integer types capable of holding object pointers */
+
+#undef intptr_t
+#undef uintptr_t
+#define intptr_t long int
+#define uintptr_t unsigned long int
+
+/* 7.18.1.5. Greatest-width integer types */
+
+/* Note: These types are compiler dependent. It may be unwise to use them in
+   public header files. */
+
+#undef intmax_t
+#if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+# define intmax_t long long int
+#elif defined GL_INT64_T
+# define intmax_t int64_t
+#else
+# define intmax_t long int
+#endif
+
+#undef uintmax_t
+#if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+# define uintmax_t unsigned long long int
+#elif defined GL_UINT64_T
+# define uintmax_t uint64_t
+#else
+# define uintmax_t unsigned long int
+#endif
+
+/* 7.18.2. Limits of specified-width integer types */
+
+#if ! defined __cplusplus || defined __STDC_LIMIT_MACROS
+
+/* 7.18.2.1. Limits of exact-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+   types have 8, 16, 32, optionally 64 bits.  */
+
+#undef INT8_MIN
+#undef INT8_MAX
+#undef UINT8_MAX
+#define INT8_MIN  (~ INT8_MAX)
+#define INT8_MAX  127
+#define UINT8_MAX  255
+
+#undef INT16_MIN
+#undef INT16_MAX
+#undef UINT16_MAX
+#define INT16_MIN  (~ INT16_MAX)
+#define INT16_MAX  32767
+#define UINT16_MAX  65535
+
+#undef INT32_MIN
+#undef INT32_MAX
+#undef UINT32_MAX
+#define INT32_MIN  (~ INT32_MAX)
+#define INT32_MAX  2147483647
+#define UINT32_MAX  4294967295U
+
+#undef INT64_MIN
+#undef INT64_MAX
+#ifdef GL_INT64_T
+/* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0
+   evaluates the latter incorrectly in preprocessor expressions.  */
+# define INT64_MIN  (- INTMAX_C (1) << 63)
+# define INT64_MAX  INTMAX_C (9223372036854775807)
+#endif
+
+#undef UINT64_MAX
+#ifdef GL_UINT64_T
+# define UINT64_MAX  UINTMAX_C (18446744073709551615)
+#endif
+
+/* 7.18.2.2. Limits of minimum-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+   types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
+   are the same as the corresponding N_t types.  */
+
+#undef INT_LEAST8_MIN
+#undef INT_LEAST8_MAX
+#undef UINT_LEAST8_MAX
+#define INT_LEAST8_MIN  INT8_MIN
+#define INT_LEAST8_MAX  INT8_MAX
+#define UINT_LEAST8_MAX  UINT8_MAX
+
+#undef INT_LEAST16_MIN
+#undef INT_LEAST16_MAX
+#undef UINT_LEAST16_MAX
+#define INT_LEAST16_MIN  INT16_MIN
+#define INT_LEAST16_MAX  INT16_MAX
+#define UINT_LEAST16_MAX  UINT16_MAX
+
+#undef INT_LEAST32_MIN
+#undef INT_LEAST32_MAX
+#undef UINT_LEAST32_MAX
+#define INT_LEAST32_MIN  INT32_MIN
+#define INT_LEAST32_MAX  INT32_MAX
+#define UINT_LEAST32_MAX  UINT32_MAX
+
+#undef INT_LEAST64_MIN
+#undef INT_LEAST64_MAX
+#ifdef GL_INT64_T
+# define INT_LEAST64_MIN  INT64_MIN
+# define INT_LEAST64_MAX  INT64_MAX
+#endif
+
+#undef UINT_LEAST64_MAX
+#ifdef GL_UINT64_T
+# define UINT_LEAST64_MAX  UINT64_MAX
+#endif
+
+/* 7.18.2.3. Limits of fastest minimum-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+   types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
+   are taken from the same list of types.  */
+
+#undef INT_FAST8_MIN
+#undef INT_FAST8_MAX
+#undef UINT_FAST8_MAX
+#define INT_FAST8_MIN  LONG_MIN
+#define INT_FAST8_MAX  LONG_MAX
+#define UINT_FAST8_MAX  ULONG_MAX
+
+#undef INT_FAST16_MIN
+#undef INT_FAST16_MAX
+#undef UINT_FAST16_MAX
+#define INT_FAST16_MIN  LONG_MIN
+#define INT_FAST16_MAX  LONG_MAX
+#define UINT_FAST16_MAX  ULONG_MAX
+
+#undef INT_FAST32_MIN
+#undef INT_FAST32_MAX
+#undef UINT_FAST32_MAX
+#define INT_FAST32_MIN  LONG_MIN
+#define INT_FAST32_MAX  LONG_MAX
+#define UINT_FAST32_MAX  ULONG_MAX
+
+#undef INT_FAST64_MIN
+#undef INT_FAST64_MAX
+#ifdef GL_INT64_T
+# define INT_FAST64_MIN  INT64_MIN
+# define INT_FAST64_MAX  INT64_MAX
+#endif
+
+#undef UINT_FAST64_MAX
+#ifdef GL_UINT64_T
+# define UINT_FAST64_MAX  UINT64_MAX
+#endif
+
+/* 7.18.2.4. Limits of integer types capable of holding object pointers */
+
+#undef INTPTR_MIN
+#undef INTPTR_MAX
+#undef UINTPTR_MAX
+#define INTPTR_MIN  LONG_MIN
+#define INTPTR_MAX  LONG_MAX
+#define UINTPTR_MAX  ULONG_MAX
+
+/* 7.18.2.5. Limits of greatest-width integer types */
+
+#undef INTMAX_MIN
+#undef INTMAX_MAX
+#ifdef INT64_MAX
+# define INTMAX_MIN  INT64_MIN
+# define INTMAX_MAX  INT64_MAX
+#else
+# define INTMAX_MIN  INT32_MIN
+# define INTMAX_MAX  INT32_MAX
+#endif
+
+#undef UINTMAX_MAX
+#ifdef UINT64_MAX
+# define UINTMAX_MAX  UINT64_MAX
+#else
+# define UINTMAX_MAX  UINT32_MAX
+#endif
+
+/* 7.18.3. Limits of other integer types */
+
+/* ptrdiff_t limits */
+#undef PTRDIFF_MIN
+#undef PTRDIFF_MAX
+#define PTRDIFF_MIN  \
+   _STDINT_MIN (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
+#define PTRDIFF_MAX  \
+   _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
+
+/* sig_atomic_t limits */
+#undef SIG_ATOMIC_MIN
+#undef SIG_ATOMIC_MAX
+#define SIG_ATOMIC_MIN  \
+   _STDINT_MIN (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \
+		0@SIG_ATOMIC_T_SUFFIX@)
+#define SIG_ATOMIC_MAX  \
+   _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \
+		0@SIG_ATOMIC_T_SUFFIX@)
+
+
+/* size_t limit */
+#undef SIZE_MAX
+#define SIZE_MAX  _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@)
+
+/* wchar_t limits */
+#undef WCHAR_MIN
+#undef WCHAR_MAX
+#define WCHAR_MIN  \
+   _STDINT_MIN (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
+#define WCHAR_MAX  \
+   _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
+
+/* wint_t limits */
+#undef WINT_MIN
+#undef WINT_MAX
+#define WINT_MIN  \
+   _STDINT_MIN (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
+#define WINT_MAX  \
+   _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
+
+#endif /* !defined __cplusplus || defined __STDC_LIMIT_MACROS */
+
+/* 7.18.4. Macros for integer constants */
+
+#if ! defined __cplusplus || defined __STDC_CONSTANT_MACROS
+
+/* 7.18.4.1. Macros for minimum-width integer constants */
+/* According to ISO C 99 Technical Corrigendum 1 */
+
+/* Here we assume a standard architecture where the hardware integer
+   types have 8, 16, 32, optionally 64 bits, and int is 32 bits.  */
+
+#undef INT8_C
+#undef UINT8_C
+#define INT8_C(x) x
+#define UINT8_C(x) x
+
+#undef INT16_C
+#undef UINT16_C
+#define INT16_C(x) x
+#define UINT16_C(x) x
+
+#undef INT32_C
+#undef UINT32_C
+#define INT32_C(x) x
+#define UINT32_C(x) x ## U
+
+#undef INT64_C
+#undef UINT64_C
+#if LONG_MAX >> 31 >> 31 == 1
+# define INT64_C(x) x##L
+#elif defined _MSC_VER
+# define INT64_C(x) x##i64
+#elif @HAVE_LONG_LONG_INT@
+# define INT64_C(x) x##LL
+#endif
+#if ULONG_MAX >> 31 >> 31 >> 1 == 1
+# define UINT64_C(x) x##UL
+#elif defined _MSC_VER
+# define UINT64_C(x) x##ui64
+#elif @HAVE_UNSIGNED_LONG_LONG_INT@
+# define UINT64_C(x) x##ULL
+#endif
+
+/* 7.18.4.2. Macros for greatest-width integer constants */
+
+#undef INTMAX_C
+#if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+# define INTMAX_C(x)   x##LL
+#elif defined GL_INT64_T
+# define INTMAX_C(x)   INT64_C(x)
+#else
+# define INTMAX_C(x)   x##L
+#endif
+
+#undef UINTMAX_C
+#if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+# define UINTMAX_C(x)  x##ULL
+#elif defined GL_UINT64_T
+# define UINTMAX_C(x)  UINT64_C(x)
+#else
+# define UINTMAX_C(x)  x##UL
+#endif
+
+#endif /* !defined __cplusplus || defined __STDC_CONSTANT_MACROS */
+
+#endif /* _GL_STDINT_H */
diff --git a/parted-1.8.7/lib/stdlib_.h b/parted-1.8.7/lib/stdlib_.h
new file mode 100644
index 0000000..c947c1d
--- /dev/null
+++ b/parted-1.8.7/lib/stdlib_.h
@@ -0,0 +1,148 @@
+/* A GNU-like <stdlib.h>.
+
+   Copyright (C) 1995, 2001-2002, 2006-2007 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#if defined __need_malloc_and_calloc
+/* Special invocation convention inside glibc header files.  */
+
+/* This #pragma avoids a warning with "gcc -Wall" on some glibc systems
+   on which <stdlib.h> has an inappropriate declaration, see
+   <http://sourceware.org/bugzilla/show_bug.cgi?id=1079>.  */
+#ifdef __GNUC__
+# pragma GCC system_header
+#endif
+
+#include @ABSOLUTE_STDLIB_H@
+
+#else
+/* Normal invocation convention.  */
+
+#if defined __DECC && __DECC_VER >= 60000000
+# include_next <stdlib.h>
+#endif
+
+#ifndef _GL_STDLIB_H
+#define _GL_STDLIB_H
+
+/* This #pragma avoids a warning with "gcc -Wall" on some glibc systems
+   on which <stdlib.h> has an inappropriate declaration, see
+   <http://sourceware.org/bugzilla/show_bug.cgi?id=1079>.  */
+#ifdef __GNUC__
+# pragma GCC system_header
+#endif
+
+#if !(defined __DECC && __DECC_VER >= 60000000)
+# include @ABSOLUTE_STDLIB_H@
+#endif
+
+
+/* The definition of GL_LINK_WARNING is copied here.  */
+
+
+/* Some systems do not define EXIT_*, despite otherwise supporting C89.  */
+#ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
+#endif
+/* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere
+   with proper operation of xargs.  */
+#ifndef EXIT_FAILURE
+# define EXIT_FAILURE 1
+#elif EXIT_FAILURE != 1
+# undef EXIT_FAILURE
+# define EXIT_FAILURE 1
+#endif
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#if @GNULIB_GETSUBOPT@
+/* Assuming *OPTIONP is a comma separated list of elements of the form
+   "token" or "token=value", getsubopt parses the first of these elements.
+   If the first element refers to a "token" that is member of the given
+   NULL-terminated array of tokens:
+     - It replaces the comma with a NUL byte, updates *OPTIONP to point past
+       the first option and the comma, sets *VALUEP to the value of the
+       element (or NULL if it doesn't contain an "=" sign),
+     - It returns the index of the "token" in the given array of tokens.
+   Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined.
+   For more details see the POSIX:2001 specification.
+   http://www.opengroup.org/susv3xsh/getsubopt.html */
+# if !@HAVE_GETSUBOPT@
+extern int getsubopt (char **optionp, char *const *tokens, char **valuep);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef getsubopt
+# define getsubopt(o,t,v) \
+    (GL_LINK_WARNING ("getsubopt is unportable - " \
+                      "use gnulib module getsubopt for portability"), \
+     getsubopt (o, t, v))
+#endif
+
+
+#if @GNULIB_MKDTEMP@
+# if !@HAVE_MKDTEMP@
+/* Create a unique temporary directory from TEMPLATE.
+   The last six characters of TEMPLATE must be "XXXXXX";
+   they are replaced with a string that makes the directory name unique.
+   Returns TEMPLATE, or a null pointer if it cannot get a unique name.
+   The directory is created mode 700.  */
+extern char * mkdtemp (char *template);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef mkdtemp
+# define mkdtemp(t) \
+    (GL_LINK_WARNING ("mkdtemp is unportable - " \
+                      "use gnulib module mkdtemp for portability"), \
+     mkdtemp (t))
+#endif
+
+
+#if @GNULIB_MKSTEMP@
+# if @REPLACE_MKSTEMP@
+/* Create a unique temporary file from TEMPLATE.
+   The last six characters of TEMPLATE must be "XXXXXX";
+   they are replaced with a string that makes the file name unique.
+   The file is then created, ensuring it didn't exist before.
+   The file is created read-write (mask at least 0600 & ~umask), but it may be
+   world-readable and world-writable (mask 0666 & ~umask), depending on the
+   implementation.
+   Returns the open file descriptor if successful, otherwise -1 and errno
+   set.  */
+#  define mkstemp rpl_mkstemp
+extern int mkstemp (char *template);
+# else
+/* On MacOS X 10.3, only <unistd.h> declares mkstemp.  */
+#  include <unistd.h>
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef mkstemp
+# define mkstemp(t) \
+    (GL_LINK_WARNING ("mkstemp is unportable - " \
+                      "use gnulib module mkstemp for portability"), \
+     mkstemp (t))
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GL_STDLIB_H */
+#endif
diff --git a/parted-1.8.7/lib/strcspn.c b/parted-1.8.7/lib/strcspn.c
new file mode 100644
index 0000000..5a8d6f9
--- /dev/null
+++ b/parted-1.8.7/lib/strcspn.c
@@ -0,0 +1,41 @@
+/* Copyright (C) 1991, 1994, 1996-1997, 2002-2003, 2005-2006 Free Software Foundation, Inc.
+
+   NOTE: The canonical source of this file is maintained with the GNU C Library.
+   Bugs can be reported to bug-glibc@gnu.org.
+
+   This program is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by the
+   Free Software Foundation; either version 2, or (at your option) any
+   later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include <config.h>
+
+#include <stddef.h>
+#include <string.h>
+
+#undef strcspn
+
+/* Return the length of the maximum initial segment of S
+   which contains no characters from REJECT.  */
+size_t
+strcspn (const char *s, const char *reject)
+{
+  size_t count = 0;
+
+  while (*s != '\0')
+    if (strchr (reject, *s++) == NULL)
+      ++count;
+    else
+      return count;
+
+  return count;
+}
diff --git a/parted-1.8.7/lib/string_.h b/parted-1.8.7/lib/string_.h
new file mode 100644
index 0000000..9588863
--- /dev/null
+++ b/parted-1.8.7/lib/string_.h
@@ -0,0 +1,550 @@
+/* A GNU-like <string.h>.
+
+   Copyright (C) 1995-1996, 2001-2007 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#if defined __DECC && __DECC_VER >= 60000000
+# include_next <string.h>
+#endif
+
+#ifndef _GL_STRING_H
+#define _GL_STRING_H
+
+/* This #pragma avoids a warning with "gcc -Wmissing-prototypes" on some
+   mingw systems.  */
+#ifdef __GNUC__
+# pragma GCC system_header
+#endif
+
+#if !(defined __DECC && __DECC_VER >= 60000000)
+# include @ABSOLUTE_STRING_H@
+#endif
+
+
+/* The definition of GL_LINK_WARNING is copied here.  */
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Return the first occurrence of NEEDLE in HAYSTACK.  */
+#if @GNULIB_MEMMEM@
+# if ! @HAVE_DECL_MEMMEM@
+extern void *memmem (void const *__haystack, size_t __haystack_len,
+		     void const *__needle, size_t __needle_len);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef memmem
+# define memmem(a,al,b,bl) \
+    (GL_LINK_WARNING ("memmem is unportable - " \
+                      "use gnulib module memmem for portability"), \
+     memmem (a, al, b, bl))
+#endif
+
+/* Copy N bytes of SRC to DEST, return pointer to bytes after the
+   last written byte.  */
+#if @GNULIB_MEMPCPY@
+# if ! @HAVE_MEMPCPY@
+extern void *mempcpy (void *restrict __dest, void const *restrict __src,
+		      size_t __n);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef mempcpy
+# define mempcpy(a,b,n) \
+    (GL_LINK_WARNING ("mempcpy is unportable - " \
+                      "use gnulib module mempcpy for portability"), \
+     mempcpy (a, b, n))
+#endif
+
+/* Search backwards through a block for a byte (specified as an int).  */
+#if @GNULIB_MEMRCHR@
+# if ! @HAVE_DECL_MEMRCHR@
+extern void *memrchr (void const *, int, size_t);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef memrchr
+# define memrchr(a,b,c) \
+    (GL_LINK_WARNING ("memrchr is unportable - " \
+                      "use gnulib module memrchr for portability"), \
+     memrchr (a, b, c))
+#endif
+
+/* Copy SRC to DST, returning the address of the terminating '\0' in DST.  */
+#if @GNULIB_STPCPY@
+# if ! @HAVE_STPCPY@
+extern char *stpcpy (char *restrict __dst, char const *restrict __src);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef stpcpy
+# define stpcpy(a,b) \
+    (GL_LINK_WARNING ("stpcpy is unportable - " \
+                      "use gnulib module stpcpy for portability"), \
+     stpcpy (a, b))
+#endif
+
+/* Copy no more than N bytes of SRC to DST, returning a pointer past the
+   last non-NUL byte written into DST.  */
+#if @GNULIB_STPNCPY@
+# if ! @HAVE_STPNCPY@
+#  define stpncpy gnu_stpncpy
+extern char *stpncpy (char *restrict __dst, char const *restrict __src,
+		      size_t __n);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef stpncpy
+# define stpncpy(a,b,n) \
+    (GL_LINK_WARNING ("stpncpy is unportable - " \
+                      "use gnulib module stpncpy for portability"), \
+     stpncpy (a, b, n))
+#endif
+
+/* Compare strings S1 and S2, ignoring case, returning less than, equal to or
+   greater than zero if S1 is lexicographically less than, equal to or greater
+   than S2.
+   Note: This function does not work in multibyte locales.  */
+#if ! @HAVE_STRCASECMP@
+extern int strcasecmp (char const *s1, char const *s2);
+#endif
+#if defined GNULIB_POSIXCHECK
+/* strcasecmp() does not work with multibyte strings:
+   POSIX says that it operates on "strings", and "string" in POSIX is defined
+   as a sequence of bytes, not of characters.   */
+# undef strcasecmp
+# define strcasecmp(a,b) \
+    (GL_LINK_WARNING ("strcasecmp cannot work correctly on character strings " \
+                      "in multibyte locales - " \
+                      "use mbscasecmp if you care about " \
+                      "internationalization, or use c_strcasecmp (from " \
+                      "gnulib module c-strcase) if you want a locale " \
+                      "independent function"), \
+     strcasecmp (a, b))
+#endif
+
+/* Compare no more than N bytes of strings S1 and S2, ignoring case,
+   returning less than, equal to or greater than zero if S1 is
+   lexicographically less than, equal to or greater than S2.
+   Note: This function cannot work correctly in multibyte locales.  */
+#if ! @HAVE_DECL_STRNCASECMP@
+extern int strncasecmp (char const *s1, char const *s2, size_t n);
+#endif
+#if defined GNULIB_POSIXCHECK
+/* strncasecmp() does not work with multibyte strings:
+   POSIX says that it operates on "strings", and "string" in POSIX is defined
+   as a sequence of bytes, not of characters.  */
+# undef strncasecmp
+# define strncasecmp(a,b,n) \
+    (GL_LINK_WARNING ("strncasecmp cannot work correctly on character " \
+                      "strings in multibyte locales - " \
+                      "use mbsncasecmp or mbspcasecmp if you care about " \
+                      "internationalization, or use c_strncasecmp (from " \
+                      "gnulib module c-strcase) if you want a locale " \
+                      "independent function"), \
+     strncasecmp (a, b, n))
+#endif
+
+#if defined GNULIB_POSIXCHECK
+/* strchr() does not work with multibyte strings if the locale encoding is
+   GB18030 and the character to be searched is a digit.  */
+# undef strchr
+# define strchr(s,c) \
+    (GL_LINK_WARNING ("strchr cannot work correctly on character strings " \
+                      "in some multibyte locales - " \
+                      "use mbschr if you care about internationalization"), \
+     strchr (s, c))
+#endif
+
+/* Find the first occurrence of C in S or the final NUL byte.  */
+#if @GNULIB_STRCHRNUL@
+# if ! @HAVE_STRCHRNUL@
+extern char *strchrnul (char const *__s, int __c_in);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strchrnul
+# define strchrnul(a,b) \
+    (GL_LINK_WARNING ("strchrnul is unportable - " \
+                      "use gnulib module strchrnul for portability"), \
+     strchrnul (a, b))
+#endif
+
+/* Duplicate S, returning an identical malloc'd string.  */
+#if @GNULIB_STRDUP@
+# if ! @HAVE_DECL_STRDUP@ && ! defined strdup
+extern char *strdup (char const *__s);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strdup
+# define strdup(a) \
+    (GL_LINK_WARNING ("strdup is unportable - " \
+                      "use gnulib module strdup for portability"), \
+     strdup (a))
+#endif
+
+/* Return a newly allocated copy of at most N bytes of STRING.  */
+#if @GNULIB_STRNDUP@
+# if ! @HAVE_STRNDUP@
+#  undef strndup
+#  define strndup rpl_strndup
+# endif
+# if ! @HAVE_STRNDUP@ || ! @HAVE_DECL_STRNDUP@
+extern char *strndup (char const *__string, size_t __n);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strndup
+# define strndup(a,n) \
+    (GL_LINK_WARNING ("strndup is unportable - " \
+                      "use gnulib module strndup for portability"), \
+     strndup (a, n))
+#endif
+
+/* Find the length (number of bytes) of STRING, but scan at most
+   MAXLEN bytes.  If no '\0' terminator is found in that many bytes,
+   return MAXLEN.  */
+#if @GNULIB_STRNLEN@
+# if ! @HAVE_DECL_STRNLEN@
+extern size_t strnlen (char const *__string, size_t __maxlen);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strnlen
+# define strnlen(a,n) \
+    (GL_LINK_WARNING ("strnlen is unportable - " \
+                      "use gnulib module strnlen for portability"), \
+     strnlen (a, n))
+#endif
+
+#if defined GNULIB_POSIXCHECK
+/* strcspn() assumes the second argument is a list of single-byte characters.
+   Even in this simple case, it does not work with multibyte strings if the
+   locale encoding is GB18030 and one of the characters to be searched is a
+   digit.  */
+# undef strcspn
+# define strcspn(s,a) \
+    (GL_LINK_WARNING ("strcspn cannot work correctly on character strings " \
+                      "in multibyte locales - " \
+                      "use mbscspn if you care about internationalization"), \
+     strcspn (s, a))
+#endif
+
+/* Find the first occurrence in S of any character in ACCEPT.  */
+#if @GNULIB_STRPBRK@
+# if ! @HAVE_STRPBRK@
+extern char *strpbrk (char const *__s, char const *__accept);
+# endif
+# if defined GNULIB_POSIXCHECK
+/* strpbrk() assumes the second argument is a list of single-byte characters.
+   Even in this simple case, it does not work with multibyte strings if the
+   locale encoding is GB18030 and one of the characters to be searched is a
+   digit.  */
+#  undef strpbrk
+#  define strpbrk(s,a) \
+     (GL_LINK_WARNING ("strpbrk cannot work correctly on character strings " \
+                       "in multibyte locales - " \
+                       "use mbspbrk if you care about internationalization"), \
+      strpbrk (s, a))
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strpbrk
+# define strpbrk(s,a) \
+    (GL_LINK_WARNING ("strpbrk is unportable - " \
+                      "use gnulib module strpbrk for portability"), \
+     strpbrk (s, a))
+#endif
+
+#if defined GNULIB_POSIXCHECK
+/* strspn() assumes the second argument is a list of single-byte characters.
+   Even in this simple case, it cannot work with multibyte strings.  */
+# undef strspn
+# define strspn(s,a) \
+    (GL_LINK_WARNING ("strspn cannot work correctly on character strings " \
+                      "in multibyte locales - " \
+                      "use mbsspn if you care about internationalization"), \
+     strspn (s, a))
+#endif
+
+#if defined GNULIB_POSIXCHECK
+/* strrchr() does not work with multibyte strings if the locale encoding is
+   GB18030 and the character to be searched is a digit.  */
+# undef strrchr
+# define strrchr(s,c) \
+    (GL_LINK_WARNING ("strrchr cannot work correctly on character strings " \
+                      "in some multibyte locales - " \
+                      "use mbsrchr if you care about internationalization"), \
+     strrchr (s, c))
+#endif
+
+/* Search the next delimiter (char listed in DELIM) starting at *STRINGP.
+   If one is found, overwrite it with a NUL, and advance *STRINGP
+   to point to the next char after it.  Otherwise, set *STRINGP to NULL.
+   If *STRINGP was already NULL, nothing happens.
+   Return the old value of *STRINGP.
+
+   This is a variant of strtok() that is multithread-safe and supports
+   empty fields.
+
+   Caveat: It modifies the original string.
+   Caveat: These functions cannot be used on constant strings.
+   Caveat: The identity of the delimiting character is lost.
+   Caveat: It doesn't work with multibyte strings unless all of the delimiter
+           characters are ASCII characters < 0x30.
+
+   See also strtok_r().  */
+#if @GNULIB_STRSEP@
+# if ! @HAVE_STRSEP@
+extern char *strsep (char **restrict __stringp, char const *restrict __delim);
+# endif
+# if defined GNULIB_POSIXCHECK
+#  undef strsep
+#  define strsep(s,d) \
+     (GL_LINK_WARNING ("strsep cannot work correctly on character strings " \
+                       "in multibyte locales - " \
+                       "use mbssep if you care about internationalization"), \
+      strsep (s, d))
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strsep
+# define strsep(s,d) \
+    (GL_LINK_WARNING ("strsep is unportable - " \
+                      "use gnulib module strsep for portability"), \
+     strsep (s, d))
+#endif
+
+#if defined GNULIB_POSIXCHECK
+/* strstr() does not work with multibyte strings if the locale encoding is
+   different from UTF-8:
+   POSIX says that it operates on "strings", and "string" in POSIX is defined
+   as a sequence of bytes, not of characters.  */
+# undef strstr
+# define strstr(a,b) \
+    (GL_LINK_WARNING ("strstr cannot work correctly on character strings " \
+                      "in most multibyte locales - " \
+                      "use mbsstr if you care about internationalization"), \
+     strstr (a, b))
+#endif
+
+/* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive
+   comparison.  */
+#if ! @HAVE_STRCASESTR@
+extern char *strcasestr (const char *haystack, const char *needle);
+#endif
+#if defined GNULIB_POSIXCHECK
+/* strcasestr() does not work with multibyte strings:
+   It is a glibc extension, and glibc implements it only for unibyte
+   locales.  */
+# undef strcasestr
+# define strcasestr(a,b) \
+    (GL_LINK_WARNING ("strcasestr does work correctly on character strings " \
+                      "in multibyte locales - " \
+                      "use mbscasestr if you care about " \
+                      "internationalization, or use c-strcasestr if you want " \
+                      "a locale independent function"), \
+     strcasestr (a, b))
+#endif
+
+/* Parse S into tokens separated by characters in DELIM.
+   If S is NULL, the saved pointer in SAVE_PTR is used as
+   the next starting point.  For example:
+	char s[] = "-abc-=-def";
+	char *sp;
+	x = strtok_r(s, "-", &sp);	// x = "abc", sp = "=-def"
+	x = strtok_r(NULL, "-=", &sp);	// x = "def", sp = NULL
+	x = strtok_r(NULL, "=", &sp);	// x = NULL
+		// s = "abc\0-def\0"
+
+   This is a variant of strtok() that is multithread-safe.
+
+   For the POSIX documentation for this function, see:
+   http://www.opengroup.org/susv3xsh/strtok.html
+
+   Caveat: It modifies the original string.
+   Caveat: These functions cannot be used on constant strings.
+   Caveat: The identity of the delimiting character is lost.
+   Caveat: It doesn't work with multibyte strings unless all of the delimiter
+           characters are ASCII characters < 0x30.
+
+   See also strsep().  */
+#if @GNULIB_STRTOK_R@
+# if ! @HAVE_DECL_STRTOK_R@
+extern char *strtok_r (char *restrict s, char const *restrict delim,
+		       char **restrict save_ptr);
+# endif
+# if defined GNULIB_POSIXCHECK
+#  undef strtok_r
+#  define strtok_r(s,d,p) \
+     (GL_LINK_WARNING ("strtok_r cannot work correctly on character strings " \
+                       "in multibyte locales - " \
+                       "use mbstok_r if you care about internationalization"), \
+      strtok_r (s, d, p))
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strtok_r
+# define strtok_r(s,d,p) \
+    (GL_LINK_WARNING ("strtok_r is unportable - " \
+                      "use gnulib module strtok_r for portability"), \
+     strtok_r (s, d, p))
+#endif
+
+
+/* The following functions are not specified by POSIX.  They are gnulib
+   extensions.  */
+
+#if @GNULIB_MBSLEN@
+/* Return the number of multibyte characters in the character string STRING.
+   This considers multibyte characters, unlike strlen, which counts bytes.  */
+extern size_t mbslen (const char *string);
+#endif
+
+#if @GNULIB_MBSCHR@
+/* Locate the first single-byte character C in the character string STRING,
+   and return a pointer to it.  Return NULL if C is not found in STRING.
+   Unlike strchr(), this function works correctly in multibyte locales with
+   encodings such as GB18030.  */
+# define mbschr rpl_mbschr /* avoid collision with HP-UX function */
+extern char * mbschr (const char *string, int c);
+#endif
+
+#if @GNULIB_MBSRCHR@
+/* Locate the last single-byte character C in the character string STRING,
+   and return a pointer to it.  Return NULL if C is not found in STRING.
+   Unlike strrchr(), this function works correctly in multibyte locales with
+   encodings such as GB18030.  */
+# define mbsrchr rpl_mbsrchr /* avoid collision with HP-UX function */
+extern char * mbsrchr (const char *string, int c);
+#endif
+
+#if @GNULIB_MBSSTR@
+/* Find the first occurrence of the character string NEEDLE in the character
+   string HAYSTACK.  Return NULL if NEEDLE is not found in HAYSTACK.
+   Unlike strstr(), this function works correctly in multibyte locales with
+   encodings different from UTF-8.  */
+extern char * mbsstr (const char *haystack, const char *needle);
+#endif
+
+#if @GNULIB_MBSCASECMP@
+/* Compare the character strings S1 and S2, ignoring case, returning less than,
+   equal to or greater than zero if S1 is lexicographically less than, equal to
+   or greater than S2.
+   Note: This function may, in multibyte locales, return 0 for strings of
+   different lengths!
+   Unlike strcasecmp(), this function works correctly in multibyte locales.  */
+extern int mbscasecmp (const char *s1, const char *s2);
+#endif
+
+#if @GNULIB_MBSNCASECMP@
+/* Compare the initial segment of the character string S1 consisting of at most
+   N characters with the initial segment of the character string S2 consisting
+   of at most N characters, ignoring case, returning less than, equal to or
+   greater than zero if the initial segment of S1 is lexicographically less
+   than, equal to or greater than the initial segment of S2.
+   Note: This function may, in multibyte locales, return 0 for initial segments
+   of different lengths!
+   Unlike strncasecmp(), this function works correctly in multibyte locales.
+   But beware that N is not a byte count but a character count!  */
+extern int mbsncasecmp (const char *s1, const char *s2, size_t n);
+#endif
+
+#if @GNULIB_MBSPCASECMP@
+/* Compare the initial segment of the character string STRING consisting of
+   at most mbslen (PREFIX) characters with the character string PREFIX,
+   ignoring case, returning less than, equal to or greater than zero if this
+   initial segment is lexicographically less than, equal to or greater than
+   PREFIX.
+   Note: This function may, in multibyte locales, return 0 if STRING is of
+   smaller length than PREFIX!
+   Unlike strncasecmp(), this function works correctly in multibyte
+   locales.  */
+extern char * mbspcasecmp (const char *string, const char *prefix);
+#endif
+
+#if @GNULIB_MBSCASESTR@
+/* Find the first occurrence of the character string NEEDLE in the character
+   string HAYSTACK, using case-insensitive comparison.
+   Note: This function may, in multibyte locales, return success even if
+   strlen (haystack) < strlen (needle) !
+   Unlike strcasestr(), this function works correctly in multibyte locales.  */
+extern char * mbscasestr (const char *haystack, const char *needle);
+#endif
+
+#if @GNULIB_MBSCSPN@
+/* Find the first occurrence in the character string STRING of any character
+   in the character string ACCEPT.  Return the number of bytes from the
+   beginning of the string to this occurrence, or to the end of the string
+   if none exists.
+   Unlike strcspn(), this function works correctly in multibyte locales.  */
+extern size_t mbscspn (const char *string, const char *accept);
+#endif
+
+#if @GNULIB_MBSPBRK@
+/* Find the first occurrence in the character string STRING of any character
+   in the character string ACCEPT.  Return the pointer to it, or NULL if none
+   exists.
+   Unlike strpbrk(), this function works correctly in multibyte locales.  */
+# define mbspbrk rpl_mbspbrk /* avoid collision with HP-UX function */
+extern char * mbspbrk (const char *string, const char *accept);
+#endif
+
+#if @GNULIB_MBSSPN@
+/* Find the first occurrence in the character string STRING of any character
+   not in the character string REJECT.  Return the number of bytes from the
+   beginning of the string to this occurrence, or to the end of the string
+   if none exists.
+   Unlike strspn(), this function works correctly in multibyte locales.  */
+extern size_t mbsspn (const char *string, const char *reject);
+#endif
+
+#if @GNULIB_MBSSEP@
+/* Search the next delimiter (multibyte character listed in the character
+   string DELIM) starting at the character string *STRINGP.
+   If one is found, overwrite it with a NUL, and advance *STRINGP to point
+   to the next multibyte character after it.  Otherwise, set *STRINGP to NULL.
+   If *STRINGP was already NULL, nothing happens.
+   Return the old value of *STRINGP.
+
+   This is a variant of mbstok_r() that supports empty fields.
+
+   Caveat: It modifies the original string.
+   Caveat: These functions cannot be used on constant strings.
+   Caveat: The identity of the delimiting character is lost.
+
+   See also mbstok_r().  */
+extern char * mbssep (char **stringp, const char *delim);
+#endif
+
+#if @GNULIB_MBSTOK_R@
+/* Parse the character string STRING into tokens separated by characters in
+   the character string DELIM.
+   If STRING is NULL, the saved pointer in SAVE_PTR is used as
+   the next starting point.  For example:
+	char s[] = "-abc-=-def";
+	char *sp;
+	x = mbstok_r(s, "-", &sp);	// x = "abc", sp = "=-def"
+	x = mbstok_r(NULL, "-=", &sp);	// x = "def", sp = NULL
+	x = mbstok_r(NULL, "=", &sp);	// x = NULL
+		// s = "abc\0-def\0"
+
+   Caveat: It modifies the original string.
+   Caveat: These functions cannot be used on constant strings.
+   Caveat: The identity of the delimiting character is lost.
+
+   See also mbssep().  */
+extern char * mbstok_r (char *string, const char *delim, char **save_ptr);
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/parted-1.8.7/lib/stripslash.c b/parted-1.8.7/lib/stripslash.c
new file mode 100644
index 0000000..342d497
--- /dev/null
+++ b/parted-1.8.7/lib/stripslash.c
@@ -0,0 +1,45 @@
+/* stripslash.c -- remove redundant trailing slashes from a file name
+
+   Copyright (C) 1990, 2001, 2003-2006 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include <config.h>
+
+#include "dirname.h"
+
+/* Remove trailing slashes from FILE.  Return true if a trailing slash
+   was removed.  This is useful when using file name completion from a
+   shell that adds a "/" after directory names (such as tcsh and
+   bash), because on symlinks to directories, several system calls
+   have different semantics according to whether a trailing slash is
+   present.  */
+
+bool
+strip_trailing_slashes (char *file)
+{
+  char *base = last_component (file);
+  char *base_lim;
+  bool had_slash;
+
+  /* last_component returns "" for file system roots, but we need to turn
+     `///' into `/'.  */
+  if (! *base)
+    base = file;
+  base_lim = base + base_len (base);
+  had_slash = (*base_lim != '\0');
+  *base_lim = '\0';
+  return had_slash;
+}
diff --git a/parted-1.8.7/lib/strndup.c b/parted-1.8.7/lib/strndup.c
new file mode 100644
index 0000000..3a1b0ea
--- /dev/null
+++ b/parted-1.8.7/lib/strndup.c
@@ -0,0 +1,37 @@
+/* A replacement function, for systems that lack strndup.
+
+   Copyright (C) 1996, 1997, 1998, 2001, 2002, 2003, 2005, 2006, 2007
+   Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by the
+   Free Software Foundation; either version 2, or (at your option) any
+   later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include <config.h>
+
+#include <string.h>
+
+#include <stdlib.h>
+
+char *
+strndup (char const *s, size_t n)
+{
+  size_t len = strnlen (s, n);
+  char *new = malloc (len + 1);
+
+  if (new == NULL)
+    return NULL;
+
+  new[len] = '\0';
+  return memcpy (new, s, len);
+}
diff --git a/parted-1.8.7/lib/strnlen.c b/parted-1.8.7/lib/strnlen.c
new file mode 100644
index 0000000..d346d32
--- /dev/null
+++ b/parted-1.8.7/lib/strnlen.c
@@ -0,0 +1,31 @@
+/* Find the length of STRING, but scan at most MAXLEN characters.
+   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
+   Written by Simon Josefsson.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include <config.h>
+
+#include <string.h>
+
+/* Find the length of STRING, but scan at most MAXLEN characters.
+   If no '\0' terminator is found in that many characters, return MAXLEN.  */
+
+size_t
+strnlen (const char *string, size_t maxlen)
+{
+  const char *end = memchr (string, '\0', maxlen);
+  return end ? (size_t) (end - string) : maxlen;
+}
diff --git a/parted-1.8.7/lib/strtod.c b/parted-1.8.7/lib/strtod.c
new file mode 100644
index 0000000..fdfc09f
--- /dev/null
+++ b/parted-1.8.7/lib/strtod.c
@@ -0,0 +1,174 @@
+/* Copyright (C) 1991, 1992, 1997, 1999, 2003, 2006 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include <config.h>
+
+#include <errno.h>
+
+#include <ctype.h>
+
+#include <math.h>
+
+#include <float.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* Convert NPTR to a double.  If ENDPTR is not NULL, a pointer to the
+   character after the last one used in the number is put in *ENDPTR.  */
+double
+strtod (const char *nptr, char **endptr)
+{
+  register const char *s;
+  short int sign;
+
+  /* The number so far.  */
+  double num;
+
+  int got_dot;			/* Found a decimal point.  */
+  int got_digit;		/* Seen any digits.  */
+
+  /* The exponent of the number.  */
+  long int exponent;
+
+  if (nptr == NULL)
+    {
+      errno = EINVAL;
+      goto noconv;
+    }
+
+  s = nptr;
+
+  /* Eat whitespace.  */
+  while (isspace ((unsigned char) *s))
+    ++s;
+
+  /* Get the sign.  */
+  sign = *s == '-' ? -1 : 1;
+  if (*s == '-' || *s == '+')
+    ++s;
+
+  num = 0.0;
+  got_dot = 0;
+  got_digit = 0;
+  exponent = 0;
+  for (;; ++s)
+    {
+      if ('0' <= *s && *s <= '9')
+	{
+	  got_digit = 1;
+
+	  /* Make sure that multiplication by 10 will not overflow.  */
+	  if (num > DBL_MAX * 0.1)
+	    /* The value of the digit doesn't matter, since we have already
+	       gotten as many digits as can be represented in a `double'.
+	       This doesn't necessarily mean the result will overflow.
+	       The exponent may reduce it to within range.
+
+	       We just need to record that there was another
+	       digit so that we can multiply by 10 later.  */
+	    ++exponent;
+	  else
+	    num = (num * 10.0) + (*s - '0');
+
+	  /* Keep track of the number of digits after the decimal point.
+	     If we just divided by 10 here, we would lose precision.  */
+	  if (got_dot)
+	    --exponent;
+	}
+      else if (!got_dot && *s == '.')
+	/* Record that we have found the decimal point.  */
+	got_dot = 1;
+      else
+	/* Any other character terminates the number.  */
+	break;
+    }
+
+  if (!got_digit)
+    goto noconv;
+
+  if (tolower ((unsigned char) *s) == 'e')
+    {
+      /* Get the exponent specified after the `e' or `E'.  */
+      int save = errno;
+      char *end;
+      long int exp;
+
+      errno = 0;
+      ++s;
+      exp = strtol (s, &end, 10);
+      if (errno == ERANGE)
+	{
+	  /* The exponent overflowed a `long int'.  It is probably a safe
+	     assumption that an exponent that cannot be represented by
+	     a `long int' exceeds the limits of a `double'.  */
+	  if (endptr != NULL)
+	    *endptr = end;
+	  if (exp < 0)
+	    goto underflow;
+	  else
+	    goto overflow;
+	}
+      else if (end == s)
+	/* There was no exponent.  Reset END to point to
+	   the 'e' or 'E', so *ENDPTR will be set there.  */
+	end = (char *) s - 1;
+      errno = save;
+      s = end;
+      exponent += exp;
+    }
+
+  if (endptr != NULL)
+    *endptr = (char *) s;
+
+  if (num == 0.0)
+    return 0.0;
+
+  /* Multiply NUM by 10 to the EXPONENT power,
+     checking for overflow and underflow.  */
+
+  if (exponent < 0)
+    {
+      if (num < DBL_MIN * pow (10.0, (double) -exponent))
+	goto underflow;
+    }
+  else if (exponent > 0)
+    {
+      if (num > DBL_MAX * pow (10.0, (double) -exponent))
+	goto overflow;
+    }
+
+  num *= pow (10.0, (double) exponent);
+
+  return num * sign;
+
+overflow:
+  /* Return an overflow error.  */
+  errno = ERANGE;
+  return HUGE_VAL * sign;
+
+underflow:
+  /* Return an underflow error.  */
+  if (endptr != NULL)
+    *endptr = (char *) nptr;
+  errno = ERANGE;
+  return 0.0;
+
+noconv:
+  /* There was no number.  */
+  if (endptr != NULL)
+    *endptr = (char *) nptr;
+  return 0.0;
+}
diff --git a/parted-1.8.7/lib/strtol.c b/parted-1.8.7/lib/strtol.c
new file mode 100644
index 0000000..e14d3cf
--- /dev/null
+++ b/parted-1.8.7/lib/strtol.c
@@ -0,0 +1,436 @@
+/* Convert string representation of a number into an integer value.
+
+   Copyright (C) 1991, 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2003, 2005,
+   2006, 2007
+   Free Software Foundation, Inc.
+
+   NOTE: The canonical source of this file is maintained with the GNU C
+   Library.  Bugs can be reported to bug-glibc@gnu.org.
+
+   This program is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by the
+   Free Software Foundation; either version 2, or (at your option) any
+   later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifdef _LIBC
+# define USE_NUMBER_GROUPING
+#else
+# include <config.h>
+#endif
+
+#include <ctype.h>
+#include <errno.h>
+#ifndef __set_errno
+# define __set_errno(Val) errno = (Val)
+#endif
+
+#include <limits.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef USE_NUMBER_GROUPING
+# include "../locale/localeinfo.h"
+#endif
+
+/* Nonzero if we are defining `strtoul' or `strtoull', operating on
+   unsigned integers.  */
+#ifndef UNSIGNED
+# define UNSIGNED 0
+# define INT LONG int
+#else
+# define INT unsigned LONG int
+#endif
+
+/* Determine the name.  */
+#ifdef USE_IN_EXTENDED_LOCALE_MODEL
+# if UNSIGNED
+#  ifdef USE_WIDE_CHAR
+#   ifdef QUAD
+#    define strtol __wcstoull_l
+#   else
+#    define strtol __wcstoul_l
+#   endif
+#  else
+#   ifdef QUAD
+#    define strtol __strtoull_l
+#   else
+#    define strtol __strtoul_l
+#   endif
+#  endif
+# else
+#  ifdef USE_WIDE_CHAR
+#   ifdef QUAD
+#    define strtol __wcstoll_l
+#   else
+#    define strtol __wcstol_l
+#   endif
+#  else
+#   ifdef QUAD
+#    define strtol __strtoll_l
+#   else
+#    define strtol __strtol_l
+#   endif
+#  endif
+# endif
+#else
+# if UNSIGNED
+#  ifdef USE_WIDE_CHAR
+#   ifdef QUAD
+#    define strtol wcstoull
+#   else
+#    define strtol wcstoul
+#   endif
+#  else
+#   ifdef QUAD
+#    define strtol strtoull
+#   else
+#    define strtol strtoul
+#   endif
+#  endif
+# else
+#  ifdef USE_WIDE_CHAR
+#   ifdef QUAD
+#    define strtol wcstoll
+#   else
+#    define strtol wcstol
+#   endif
+#  else
+#   ifdef QUAD
+#    define strtol strtoll
+#   endif
+#  endif
+# endif
+#endif
+
+/* If QUAD is defined, we are defining `strtoll' or `strtoull',
+   operating on `long long int's.  */
+#ifdef QUAD
+# define LONG long long
+# define STRTOL_LONG_MIN LONG_LONG_MIN
+# define STRTOL_LONG_MAX LONG_LONG_MAX
+# define STRTOL_ULONG_MAX ULONG_LONG_MAX
+
+/* The extra casts in the following macros work around compiler bugs,
+   e.g., in Cray C 5.0.3.0.  */
+
+/* True if negative values of the signed integer type T use two's
+   complement, ones' complement, or signed magnitude representation,
+   respectively.  Much GNU code assumes two's complement, but some
+   people like to be portable to all possible C hosts.  */
+# define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1)
+# define TYPE_ONES_COMPLEMENT(t) ((t) ~ (t) 0 == 0)
+# define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1)
+
+/* True if the arithmetic type T is signed.  */
+# define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
+
+/* The maximum and minimum values for the integer type T.  These
+   macros have undefined behavior if T is signed and has padding bits.
+   If this is a problem for you, please let us know how to fix it for
+   your host.  */
+# define TYPE_MINIMUM(t) \
+   ((t) (! TYPE_SIGNED (t) \
+	 ? (t) 0 \
+	 : TYPE_SIGNED_MAGNITUDE (t) \
+	 ? ~ (t) 0 \
+	 : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))
+# define TYPE_MAXIMUM(t) \
+   ((t) (! TYPE_SIGNED (t) \
+	 ? (t) -1 \
+	 : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))))
+
+# ifndef ULONG_LONG_MAX
+#  define ULONG_LONG_MAX TYPE_MAXIMUM (unsigned long long)
+# endif
+# ifndef LONG_LONG_MAX
+#  define LONG_LONG_MAX TYPE_MAXIMUM (long long int)
+# endif
+# ifndef LONG_LONG_MIN
+#  define LONG_LONG_MIN TYPE_MINIMUM (long long int)
+# endif
+
+# if __GNUC__ == 2 && __GNUC_MINOR__ < 7
+   /* Work around gcc bug with using this constant.  */
+   static const unsigned long long int maxquad = ULONG_LONG_MAX;
+#  undef STRTOL_ULONG_MAX
+#  define STRTOL_ULONG_MAX maxquad
+# endif
+#else
+# define LONG long
+# define STRTOL_LONG_MIN LONG_MIN
+# define STRTOL_LONG_MAX LONG_MAX
+# define STRTOL_ULONG_MAX ULONG_MAX
+#endif
+
+
+/* We use this code also for the extended locale handling where the
+   function gets as an additional argument the locale which has to be
+   used.  To access the values we have to redefine the _NL_CURRENT
+   macro.  */
+#ifdef USE_IN_EXTENDED_LOCALE_MODEL
+# undef _NL_CURRENT
+# define _NL_CURRENT(category, item) \
+  (current->values[_NL_ITEM_INDEX (item)].string)
+# define LOCALE_PARAM , loc
+# define LOCALE_PARAM_PROTO , __locale_t loc
+#else
+# define LOCALE_PARAM
+# define LOCALE_PARAM_PROTO
+#endif
+
+#include <wchar.h>
+
+#ifdef USE_WIDE_CHAR
+# include <wctype.h>
+# define L_(Ch) L##Ch
+# define UCHAR_TYPE wint_t
+# define STRING_TYPE wchar_t
+# ifdef USE_IN_EXTENDED_LOCALE_MODEL
+#  define ISSPACE(Ch) __iswspace_l ((Ch), loc)
+#  define ISALPHA(Ch) __iswalpha_l ((Ch), loc)
+#  define TOUPPER(Ch) __towupper_l ((Ch), loc)
+# else
+#  define ISSPACE(Ch) iswspace (Ch)
+#  define ISALPHA(Ch) iswalpha (Ch)
+#  define TOUPPER(Ch) towupper (Ch)
+# endif
+#else
+# define L_(Ch) Ch
+# define UCHAR_TYPE unsigned char
+# define STRING_TYPE char
+# ifdef USE_IN_EXTENDED_LOCALE_MODEL
+#  define ISSPACE(Ch) __isspace_l ((Ch), loc)
+#  define ISALPHA(Ch) __isalpha_l ((Ch), loc)
+#  define TOUPPER(Ch) __toupper_l ((Ch), loc)
+# else
+#  define ISSPACE(Ch) isspace (Ch)
+#  define ISALPHA(Ch) isalpha (Ch)
+#  define TOUPPER(Ch) toupper (Ch)
+# endif
+#endif
+
+#define INTERNAL(X) INTERNAL1(X)
+#define INTERNAL1(X) __##X##_internal
+#define WEAKNAME(X) WEAKNAME1(X)
+
+#ifdef USE_NUMBER_GROUPING
+/* This file defines a function to check for correct grouping.  */
+# include "grouping.h"
+#endif
+
+
+
+/* Convert NPTR to an `unsigned long int' or `long int' in base BASE.
+   If BASE is 0 the base is determined by the presence of a leading
+   zero, indicating octal or a leading "0x" or "0X", indicating hexadecimal.
+   If BASE is < 2 or > 36, it is reset to 10.
+   If ENDPTR is not NULL, a pointer to the character after the last
+   one converted is stored in *ENDPTR.  */
+
+INT
+INTERNAL (strtol) (const STRING_TYPE *nptr, STRING_TYPE **endptr,
+		   int base, int group LOCALE_PARAM_PROTO)
+{
+  int negative;
+  register unsigned LONG int cutoff;
+  register unsigned int cutlim;
+  register unsigned LONG int i;
+  register const STRING_TYPE *s;
+  register UCHAR_TYPE c;
+  const STRING_TYPE *save, *end;
+  int overflow;
+
+#ifdef USE_NUMBER_GROUPING
+# ifdef USE_IN_EXTENDED_LOCALE_MODEL
+  struct locale_data *current = loc->__locales[LC_NUMERIC];
+# endif
+  /* The thousands character of the current locale.  */
+  wchar_t thousands = L'\0';
+  /* The numeric grouping specification of the current locale,
+     in the format described in <locale.h>.  */
+  const char *grouping;
+
+  if (group)
+    {
+      grouping = _NL_CURRENT (LC_NUMERIC, GROUPING);
+      if (*grouping <= 0 || *grouping == CHAR_MAX)
+	grouping = NULL;
+      else
+	{
+	  /* Figure out the thousands separator character.  */
+# if defined _LIBC || defined _HAVE_BTOWC
+	  thousands = __btowc (*_NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP));
+	  if (thousands == WEOF)
+	    thousands = L'\0';
+# endif
+	  if (thousands == L'\0')
+	    grouping = NULL;
+	}
+    }
+  else
+    grouping = NULL;
+#endif
+
+  if (base < 0 || base == 1 || base > 36)
+    {
+      __set_errno (EINVAL);
+      return 0;
+    }
+
+  save = s = nptr;
+
+  /* Skip white space.  */
+  while (ISSPACE (*s))
+    ++s;
+  if (*s == L_('\0'))
+    goto noconv;
+
+  /* Check for a sign.  */
+  if (*s == L_('-'))
+    {
+      negative = 1;
+      ++s;
+    }
+  else if (*s == L_('+'))
+    {
+      negative = 0;
+      ++s;
+    }
+  else
+    negative = 0;
+
+  /* Recognize number prefix and if BASE is zero, figure it out ourselves.  */
+  if (*s == L_('0'))
+    {
+      if ((base == 0 || base == 16) && TOUPPER (s[1]) == L_('X'))
+	{
+	  s += 2;
+	  base = 16;
+	}
+      else if (base == 0)
+	base = 8;
+    }
+  else if (base == 0)
+    base = 10;
+
+  /* Save the pointer so we can check later if anything happened.  */
+  save = s;
+
+#ifdef USE_NUMBER_GROUPING
+  if (group)
+    {
+      /* Find the end of the digit string and check its grouping.  */
+      end = s;
+      for (c = *end; c != L_('\0'); c = *++end)
+	if ((wchar_t) c != thousands
+	    && ((wchar_t) c < L_('0') || (wchar_t) c > L_('9'))
+	    && (!ISALPHA (c) || (int) (TOUPPER (c) - L_('A') + 10) >= base))
+	  break;
+      if (*s == thousands)
+	end = s;
+      else
+	end = correctly_grouped_prefix (s, end, thousands, grouping);
+    }
+  else
+#endif
+    end = NULL;
+
+  cutoff = STRTOL_ULONG_MAX / (unsigned LONG int) base;
+  cutlim = STRTOL_ULONG_MAX % (unsigned LONG int) base;
+
+  overflow = 0;
+  i = 0;
+  for (c = *s; c != L_('\0'); c = *++s)
+    {
+      if (s == end)
+	break;
+      if (c >= L_('0') && c <= L_('9'))
+	c -= L_('0');
+      else if (ISALPHA (c))
+	c = TOUPPER (c) - L_('A') + 10;
+      else
+	break;
+      if ((int) c >= base)
+	break;
+      /* Check for overflow.  */
+      if (i > cutoff || (i == cutoff && c > cutlim))
+	overflow = 1;
+      else
+	{
+	  i *= (unsigned LONG int) base;
+	  i += c;
+	}
+    }
+
+  /* Check if anything actually happened.  */
+  if (s == save)
+    goto noconv;
+
+  /* Store in ENDPTR the address of one character
+     past the last character we converted.  */
+  if (endptr != NULL)
+    *endptr = (STRING_TYPE *) s;
+
+#if !UNSIGNED
+  /* Check for a value that is within the range of
+     `unsigned LONG int', but outside the range of `LONG int'.  */
+  if (overflow == 0
+      && i > (negative
+	      ? -((unsigned LONG int) (STRTOL_LONG_MIN + 1)) + 1
+	      : (unsigned LONG int) STRTOL_LONG_MAX))
+    overflow = 1;
+#endif
+
+  if (overflow)
+    {
+      __set_errno (ERANGE);
+#if UNSIGNED
+      return STRTOL_ULONG_MAX;
+#else
+      return negative ? STRTOL_LONG_MIN : STRTOL_LONG_MAX;
+#endif
+    }
+
+  /* Return the result of the appropriate sign.  */
+  return negative ? -i : i;
+
+noconv:
+  /* We must handle a special case here: the base is 0 or 16 and the
+     first two characters are '0' and 'x', but the rest are no
+     hexadecimal digits.  This is no error case.  We return 0 and
+     ENDPTR points to the `x`.  */
+  if (endptr != NULL)
+    {
+      if (save - nptr >= 2 && TOUPPER (save[-1]) == L_('X')
+	  && save[-2] == L_('0'))
+	*endptr = (STRING_TYPE *) &save[-1];
+      else
+	/*  There was no number to convert.  */
+	*endptr = (STRING_TYPE *) nptr;
+    }
+
+  return 0L;
+}
+
+/* External user entry point.  */
+
+
+INT
+#ifdef weak_function
+weak_function
+#endif
+strtol (const STRING_TYPE *nptr, STRING_TYPE **endptr,
+	int base LOCALE_PARAM_PROTO)
+{
+  return INTERNAL (strtol) (nptr, endptr, base, 0 LOCALE_PARAM);
+}
diff --git a/parted-1.8.7/lib/unistd_.h b/parted-1.8.7/lib/unistd_.h
new file mode 100644
index 0000000..9beffce
--- /dev/null
+++ b/parted-1.8.7/lib/unistd_.h
@@ -0,0 +1,216 @@
+/* Substitute for and wrapper around <unistd.h>.
+   Copyright (C) 2004-2007 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef _GL_UNISTD_H
+#define _GL_UNISTD_H
+
+#if @HAVE_UNISTD_H@
+# include @ABSOLUTE_UNISTD_H@
+#endif
+
+/* mingw doesn't define the SEEK_* macros in <unistd.h>.  */
+#if !(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET)
+# include <stdio.h>
+#endif
+
+/* mingw fails to declare _exit in <unistd.h>.  */
+#include <stdlib.h>
+
+/* The definition of GL_LINK_WARNING is copied here.  */
+
+
+/* Declare overridden functions.  */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#if @GNULIB_CHOWN@
+# if @REPLACE_CHOWN@
+/* Change the owner of FILE to UID (if UID is not -1) and the group of FILE
+   to GID (if GID is not -1).
+   Return 0 if successful, otherwise -1 and errno set.
+   See the POSIX:2001 specification
+   <http://www.opengroup.org/susv3xsh/chown.html>.  */
+#  define chown rpl_chown
+extern int chown (const char *file, uid_t uid, gid_t gid);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef chown
+# define chown(f,u,g) \
+    (GL_LINK_WARNING ("chown fails to follow symlinks on some systems and " \
+                      "doesn't treat a uid or gid of -1 on some systems - " \
+                      "use gnulib module chown for portability"), \
+     chown (f, u, g))
+#endif
+
+
+#if @GNULIB_DUP2@
+# if !@HAVE_DUP2@
+/* Copy the file descriptor OLDFD into file descriptor NEWFD.  Do nothing if
+   NEWFD = OLDFD, otherwise close NEWFD first if it is open.
+   Return 0 if successful, otherwise -1 and errno set.
+   See the POSIX:2001 specification
+   <http://www.opengroup.org/susv3xsh/dup2.html>.  */
+extern int dup2 (int oldfd, int newfd);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef dup2
+# define dup2(o,n) \
+    (GL_LINK_WARNING ("dup2 is unportable - " \
+                      "use gnulib module dup2 for portability"), \
+     dup2 (o, n))
+#endif
+
+
+#if @GNULIB_FCHDIR@
+# if @REPLACE_FCHDIR@
+
+/* Change the process' current working directory to the directory on which
+   the given file descriptor is open.
+   Return 0 if successful, otherwise -1 and errno set.
+   See the POSIX:2001 specification
+   <http://www.opengroup.org/susv3xsh/fchdir.html>.  */
+extern int fchdir (int /*fd*/);
+
+#  define close rpl_close
+extern int close (int);
+#  define dup rpl_dup
+extern int dup (int);
+#  define dup2 rpl_dup2
+extern int dup2 (int, int);
+
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef fchdir
+# define fchdir(f) \
+    (GL_LINK_WARNING ("fchdir is unportable - " \
+                      "use gnulib module fchdir for portability"), \
+     fchdir (f))
+#endif
+
+
+#if @GNULIB_FTRUNCATE@
+# if !@HAVE_FTRUNCATE@
+/* Change the size of the file to which FD is opened to become equal to LENGTH.
+   Return 0 if successful, otherwise -1 and errno set.
+   See the POSIX:2001 specification
+   <http://www.opengroup.org/susv3xsh/ftruncate.html>.  */
+extern int ftruncate (int fd, off_t length);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef ftruncate
+# define ftruncate(f,l) \
+    (GL_LINK_WARNING ("ftruncate is unportable - " \
+                      "use gnulib module ftruncate for portability"), \
+     ftruncate (f, l))
+#endif
+
+
+#if @GNULIB_GETCWD@
+/* Include the headers that might declare getcwd so that they will not
+   cause confusion if included after this file.  */
+# include <stdlib.h>
+# if @REPLACE_GETCWD@
+/* Get the name of the current working directory, and put it in SIZE bytes
+   of BUF.
+   Return BUF if successful, or NULL if the directory couldn't be determined
+   or SIZE was too small.
+   See the POSIX:2001 specification
+   <http://www.opengroup.org/susv3xsh/getcwd.html>.
+   Additionally, the gnulib module 'getcwd' guarantees the following GNU
+   extension: If BUF is NULL, an array is allocated with 'malloc'; the array
+   is SIZE bytes long, unless SIZE == 0, in which case it is as big as
+   necessary.  */
+#  define getcwd rpl_getcwd
+extern char * getcwd (char *buf, size_t size);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef getcwd
+# define getcwd(b,s) \
+    (GL_LINK_WARNING ("getcwd is unportable - " \
+                      "use gnulib module getcwd for portability"), \
+     getcwd (b, s))
+#endif
+
+
+#if @GNULIB_GETLOGIN_R@
+/* Copies the user's login name to NAME.
+   The array pointed to by NAME has room for SIZE bytes.
+
+   Returns 0 if successful.  Upon error, an error number is returned, or -1 in
+   the case that the login name cannot be found but no specific error is
+   provided (this case is hopefully rare but is left open by the POSIX spec).
+
+   See <http://www.opengroup.org/susv3xsh/getlogin.html>.
+ */
+# if !@HAVE_DECL_GETLOGIN_R@
+#  include <stddef.h>
+extern int getlogin_r (char *name, size_t size);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef getlogin_r
+# define getlogin_r(n,s) \
+    (GL_LINK_WARNING ("getlogin_r is unportable - " \
+                      "use gnulib module getlogin_r for portability"), \
+     getlogin_r (n, s))
+#endif
+
+
+#if @GNULIB_READLINK@
+/* Read the contents of the symbolic link FILE and place the first BUFSIZE
+   bytes of it into BUF.  Return the number of bytes placed into BUF if
+   successful, otherwise -1 and errno set.
+   See the POSIX:2001 specification
+   <http://www.opengroup.org/susv3xsh/readlink.html>.  */
+# if !@HAVE_READLINK@
+#  include <stddef.h>
+extern int readlink (const char *file, char *buf, size_t bufsize);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef readlink
+# define readlink(f,b,s) \
+    (GL_LINK_WARNING ("readlink is unportable - " \
+                      "use gnulib module readlink for portability"), \
+     readlink (f, b, s))
+#endif
+
+
+#if @GNULIB_SLEEP@
+/* Pause the execution of the current thread for N seconds.
+   Returns the number of seconds left to sleep.
+   See the POSIX:2001 specification
+   <http://www.opengroup.org/susv3xsh/sleep.html>.  */
+# if !@HAVE_SLEEP@
+extern unsigned int sleep (unsigned int n);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef sleep
+# define sleep(n) \
+    (GL_LINK_WARNING ("sleep is unportable - " \
+                      "use gnulib module sleep for portability"), \
+     sleep (n))
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _GL_UNISTD_H */
diff --git a/parted-1.8.7/lib/utime.c b/parted-1.8.7/lib/utime.c
new file mode 100644
index 0000000..273a5fb
--- /dev/null
+++ b/parted-1.8.7/lib/utime.c
@@ -0,0 +1,109 @@
+/* Copyright (C) 1998, 2001, 2002, 2003, 2004, 2006 Free Software
+   Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by the
+   Free Software Foundation; either version 2, or (at your option) any
+   later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* derived from a function in touch.c */
+
+#include <config.h>
+#undef utime
+
+#include <sys/types.h>
+
+#ifdef HAVE_UTIME_H
+# include <utime.h>
+#endif
+
+#if !HAVE_UTIMES_NULL
+# include <sys/stat.h>
+# include <fcntl.h>
+#endif
+
+#include <unistd.h>
+#include <errno.h>
+
+#include "full-write.h"
+#include "safe-read.h"
+
+/* Some systems (even some that do have <utime.h>) don't declare this
+   structure anywhere.  */
+#ifndef HAVE_STRUCT_UTIMBUF
+struct utimbuf
+{
+  long actime;
+  long modtime;
+};
+#endif
+
+/* The results of open() in this file are not used with fchdir,
+   therefore save some unnecessary work in fchdir.c.  */
+#undef open
+#undef close
+
+/* Emulate utime (file, NULL) for systems (like 4.3BSD) that do not
+   interpret it to set the access and modification times of FILE to
+   the current time.  Return 0 if successful, -1 if not. */
+
+static int
+utime_null (const char *file)
+{
+#if HAVE_UTIMES_NULL
+  return utimes (file, 0);
+#else
+  int fd;
+  char c;
+  int status = 0;
+  struct stat st;
+  int saved_errno = 0;
+
+  fd = open (file, O_RDWR);
+  if (fd < 0
+      || fstat (fd, &st) < 0
+      || safe_read (fd, &c, sizeof c) == SAFE_READ_ERROR
+      || lseek (fd, (off_t) 0, SEEK_SET) < 0
+      || full_write (fd, &c, sizeof c) != sizeof c
+      /* Maybe do this -- it's necessary on SunOS 4.1.3 with some combination
+	 of patches, but that system doesn't use this code: it has utimes.
+	 || fsync (fd) < 0
+      */
+      || (st.st_size == 0 && ftruncate (fd, st.st_size) < 0))
+    {
+      saved_errno = errno;
+      status = -1;
+    }
+
+  if (0 <= fd)
+    {
+      if (close (fd) < 0)
+	status = -1;
+
+      /* If there was a prior failure, use the saved errno value.
+	 But if the only failure was in the close, don't change errno.  */
+      if (saved_errno)
+	errno = saved_errno;
+    }
+
+  return status;
+#endif
+}
+
+int
+rpl_utime (const char *file, const struct utimbuf *times)
+{
+  if (times)
+    return utime (file, times);
+
+  return utime_null (file);
+}
diff --git a/parted-1.8.7/lib/version-etc-fsf.c b/parted-1.8.7/lib/version-etc-fsf.c
new file mode 100644
index 0000000..f25eb65
--- /dev/null
+++ b/parted-1.8.7/lib/version-etc-fsf.c
@@ -0,0 +1,31 @@
+/* Variable with FSF copyright information, for version-etc.
+   Copyright (C) 1999-2006 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Written by Jim Meyering. */
+
+#include <config.h>
+
+/* Specification.  */
+#include "version-etc.h"
+
+/* Default copyright goes to the FSF. */
+
+const char version_etc_copyright[] =
+  /* Do *not* mark this string for translation.  %s is a copyright
+     symbol suitable for this locale, and %d is the copyright
+     year.  */
+  "Copyright %s %d Free Software Foundation, Inc.";
diff --git a/parted-1.8.7/lib/version-etc.c b/parted-1.8.7/lib/version-etc.c
new file mode 100644
index 0000000..1ae82c4
--- /dev/null
+++ b/parted-1.8.7/lib/version-etc.c
@@ -0,0 +1,173 @@
+/* Utility to help print --version output in a consistent format.
+   Copyright (C) 1999-2007 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Written by Jim Meyering. */
+
+#include <config.h>
+
+/* Specification.  */
+#include "version-etc.h"
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
+
+#include "gettext.h"
+#define _(msgid) gettext (msgid)
+
+enum { COPYRIGHT_YEAR = 2007 };
+
+/* Like version_etc, below, but with the NULL-terminated author list
+   provided via a variable of type va_list.  */
+void
+version_etc_va (FILE *stream,
+		const char *command_name, const char *package,
+		const char *version, va_list authors)
+{
+  size_t n_authors;
+
+  /* Count the number of authors.  */
+  {
+    va_list tmp_authors;
+
+    va_copy (tmp_authors, authors);
+
+    n_authors = 0;
+    while (va_arg (tmp_authors, const char *) != NULL)
+      ++n_authors;
+  }
+
+  if (command_name)
+    fprintf (stream, "%s (%s) %s\n", command_name, package, version);
+  else
+    fprintf (stream, "%s %s\n", package, version);
+
+  /* TRANSLATORS: Translate "(C)" to the copyright symbol
+     (C-in-a-circle), if this symbol is available in the user's
+     locale.  Otherwise, do not translate "(C)"; leave it as-is.  */
+  fprintf (stream, version_etc_copyright, _("(C)"), COPYRIGHT_YEAR);
+
+  fputs (_("\
+\n\
+License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>\n\
+This is free software: you are free to change and redistribute it.\n\
+There is NO WARRANTY, to the extent permitted by law.\n\
+\n\
+"),
+	 stream);
+
+  switch (n_authors)
+    {
+    case 0:
+      /* The caller must provide at least one author name.  */
+      abort ();
+    case 1:
+      /* TRANSLATORS: %s denotes an author name.  */
+      vfprintf (stream, _("Written by %s.\n"), authors);
+      break;
+    case 2:
+      /* TRANSLATORS: Each %s denotes an author name.  */
+      vfprintf (stream, _("Written by %s and %s.\n"), authors);
+      break;
+    case 3:
+      /* TRANSLATORS: Each %s denotes an author name.  */
+      vfprintf (stream, _("Written by %s, %s, and %s.\n"), authors);
+      break;
+    case 4:
+      /* TRANSLATORS: Each %s denotes an author name.
+	 You can use line breaks, estimating that each author name occupies
+	 ca. 16 screen columns and that a screen line has ca. 80 columns.  */
+      vfprintf (stream, _("Written by %s, %s, %s,\nand %s.\n"), authors);
+      break;
+    case 5:
+      /* TRANSLATORS: Each %s denotes an author name.
+	 You can use line breaks, estimating that each author name occupies
+	 ca. 16 screen columns and that a screen line has ca. 80 columns.  */
+      vfprintf (stream, _("Written by %s, %s, %s,\n%s, and %s.\n"), authors);
+      break;
+    case 6:
+      /* TRANSLATORS: Each %s denotes an author name.
+	 You can use line breaks, estimating that each author name occupies
+	 ca. 16 screen columns and that a screen line has ca. 80 columns.  */
+      vfprintf (stream, _("Written by %s, %s, %s,\n%s, %s, and %s.\n"),
+		authors);
+      break;
+    case 7:
+      /* TRANSLATORS: Each %s denotes an author name.
+	 You can use line breaks, estimating that each author name occupies
+	 ca. 16 screen columns and that a screen line has ca. 80 columns.  */
+      vfprintf (stream, _("Written by %s, %s, %s,\n%s, %s, %s, and %s.\n"),
+		authors);
+      break;
+    case 8:
+      /* TRANSLATORS: Each %s denotes an author name.
+	 You can use line breaks, estimating that each author name occupies
+	 ca. 16 screen columns and that a screen line has ca. 80 columns.  */
+      vfprintf (stream, _("\
+Written by %s, %s, %s,\n%s, %s, %s, %s,\nand %s.\n"),
+		authors);
+      break;
+    case 9:
+      /* TRANSLATORS: Each %s denotes an author name.
+	 You can use line breaks, estimating that each author name occupies
+	 ca. 16 screen columns and that a screen line has ca. 80 columns.  */
+      vfprintf (stream, _("\
+Written by %s, %s, %s,\n%s, %s, %s, %s,\n%s, and %s.\n"),
+		authors);
+      break;
+    default:
+      /* 10 or more authors.  Use an abbreviation, since the human reader
+	 will probably not want to read the entire list anyway.  */
+      /* TRANSLATORS: Each %s denotes an author name.
+	 You can use line breaks, estimating that each author name occupies
+	 ca. 16 screen columns and that a screen line has ca. 80 columns.  */
+      vfprintf (stream, _("\
+Written by %s, %s, %s,\n%s, %s, %s, %s,\n%s, %s, and others.\n"),
+		authors);
+      break;
+    }
+  va_end (authors);
+}
+
+
+/* Display the --version information the standard way.
+
+   If COMMAND_NAME is NULL, the PACKAGE is asumed to be the name of
+   the program.  The formats are therefore:
+
+   PACKAGE VERSION
+
+   or
+
+   COMMAND_NAME (PACKAGE) VERSION.
+
+   The author names are passed as separate arguments, with an additional
+   NULL argument at the end.  */
+void
+version_etc (FILE *stream,
+	     const char *command_name, const char *package,
+	     const char *version, /* const char *author1, ...*/ ...)
+{
+  va_list authors;
+
+  va_start (authors, version);
+  version_etc_va (stream, command_name, package, version, authors);
+}
diff --git a/parted-1.8.7/lib/version-etc.h b/parted-1.8.7/lib/version-etc.h
new file mode 100644
index 0000000..84da535
--- /dev/null
+++ b/parted-1.8.7/lib/version-etc.h
@@ -0,0 +1,37 @@
+/* Utility to help print --version output in a consistent format.
+   Copyright (C) 1999, 2003, 2005 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Written by Jim Meyering. */
+
+#ifndef VERSION_ETC_H
+# define VERSION_ETC_H 1
+
+# include <stdarg.h>
+# include <stdio.h>
+
+extern const char version_etc_copyright[];
+
+extern void version_etc_va (FILE *stream,
+			    const char *command_name, const char *package,
+			    const char *version, va_list authors);
+
+extern void version_etc (FILE *stream,
+			 const char *command_name, const char *package,
+			 const char *version,
+		         /* const char *author1, ...*/ ...);
+
+#endif /* VERSION_ETC_H */
diff --git a/parted-1.8.7/lib/wchar_.h b/parted-1.8.7/lib/wchar_.h
new file mode 100644
index 0000000..7a93d07
--- /dev/null
+++ b/parted-1.8.7/lib/wchar_.h
@@ -0,0 +1,49 @@
+/* A substitute for ISO C99 <wchar.h>, for platforms that have issues.
+
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Written by Eric Blake.  */
+
+/*
+ * ISO C 99 <wchar.h> for platforms that have issues.
+ * <http://www.opengroup.org/susv3xbd/wchar.h.html>
+ *
+ * For now, this just ensures proper prerequisite inclusion order.
+ */
+
+#if defined __DECC && __DECC_VER >= 60000000
+# include <stdio.h>
+# include_next <wchar.h>
+#endif
+
+#ifndef _GL_WCHAR_H
+#define _GL_WCHAR_H
+
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+
+/* Include the original <wchar.h>.  */
+#if !(defined __DECC && __DECC_VER >= 60000000)
+# include @ABSOLUTE_WCHAR_H@
+#endif
+
+#endif /* _GL_WCHAR_H */
diff --git a/parted-1.8.7/lib/wctype_.h b/parted-1.8.7/lib/wctype_.h
new file mode 100644
index 0000000..110a68e
--- /dev/null
+++ b/parted-1.8.7/lib/wctype_.h
@@ -0,0 +1,165 @@
+/* A substitute for ISO C99 <wctype.h>, for platforms that lack it.
+
+   Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Written by Bruno Haible and Paul Eggert.  */
+
+/*
+ * ISO C 99 <wctype.h> for platforms that lack it.
+ * <http://www.opengroup.org/susv3xbd/wctype.h.html>
+ *
+ * iswctype, towctrans, towlower, towupper, wctrans, wctype,
+ * wctrans_t, and wctype_t are not yet implemented.
+ */
+
+#if @HAVE_WINT_T@
+/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>.
+   Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+# include <stddef.h>
+# include <stdio.h>
+# include <time.h>
+# include <wchar.h>
+#endif
+
+#if @HAVE_WCTYPE_H@
+# if defined __DECC && __DECC_VER >= 60000000
+#  include_next <wctype.h>
+# endif
+#endif
+
+#ifndef _GL_WCTYPE_H
+#define _GL_WCTYPE_H
+
+/* Include the original <wctype.h> if it exists.
+   BeOS 5 has the functions but no <wctype.h>.  */
+#if @HAVE_WCTYPE_H@
+# if !(defined __DECC && __DECC_VER >= 60000000)
+#  include @ABSOLUTE_WCTYPE_H@
+# endif
+#endif
+
+#if @HAVE_WINT_T@
+typedef wint_t __wctype_wint_t;
+#else
+typedef int __wctype_wint_t;
+#endif
+
+/* FreeBSD 4.4 to 4.11 has <wctype.h> but lacks the functions.
+   Assume all 12 functions are implemented the same way, or not at all.  */
+#if ! @HAVE_ISWCNTRL@
+
+/* IRIX 5.3 has macros but no functions, its isw* macros refer to an
+   undefined variable _ctmp_ and to <ctype.h> macros like _P, and they
+   refer to system functions like _iswctype that are not in the
+   standard C library.  Rather than try to get ancient buggy
+   implementations like this to work, just disable them.  */
+#  undef iswalnum
+#  undef iswalpha
+#  undef iswblank
+#  undef iswcntrl
+#  undef iswdigit
+#  undef iswgraph
+#  undef iswlower
+#  undef iswprint
+#  undef iswpunct
+#  undef iswspace
+#  undef iswupper
+#  undef iswxdigit
+
+static inline int
+iswalnum (__wctype_wint_t wc)
+{
+  return ((wc >= '0' && wc <= '9')
+	  || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'));
+}
+
+static inline int
+iswalpha (__wctype_wint_t wc)
+{
+  return (wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z';
+}
+
+static inline int
+iswblank (__wctype_wint_t wc)
+{
+  return wc == ' ' || wc == '\t';
+}
+
+static inline int
+iswcntrl (__wctype_wint_t wc)
+{
+  return (wc & ~0x1f) == 0 || wc == 0x7f;
+}
+
+static inline int
+iswdigit (__wctype_wint_t wc)
+{
+  return wc >= '0' && wc <= '9';
+}
+
+static inline int
+iswgraph (__wctype_wint_t wc)
+{
+  return wc >= '!' && wc <= '~';
+}
+
+static inline int
+iswlower (__wctype_wint_t wc)
+{
+  return wc >= 'a' && wc <= 'z';
+}
+
+static inline int
+iswprint (__wctype_wint_t wc)
+{
+  return wc >= ' ' && wc <= '~';
+}
+
+static inline int
+iswpunct (__wctype_wint_t wc)
+{
+  return (wc >= '!' && wc <= '~'
+	  && !((wc >= '0' && wc <= '9')
+	       || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z')));
+}
+
+static inline int
+iswspace (__wctype_wint_t wc)
+{
+  return (wc == ' ' || wc == '\t'
+	  || wc == '\n' || wc == '\v' || wc == '\f' || wc == '\r');
+}
+
+static inline int
+iswupper (__wctype_wint_t wc)
+{
+  return wc >= 'A' && wc <= 'Z';
+}
+
+static inline int
+iswxdigit (__wctype_wint_t wc)
+{
+  return ((wc >= '0' && wc <= '9')
+	  || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'F'));
+}
+
+# endif /* ! HAVE_ISWCNTRL */
+
+#endif /* _GL_WCTYPE_H */
diff --git a/parted-1.8.7/lib/xalloc-die.c b/parted-1.8.7/lib/xalloc-die.c
new file mode 100644
index 0000000..090f060
--- /dev/null
+++ b/parted-1.8.7/lib/xalloc-die.c
@@ -0,0 +1,42 @@
+/* Report a memory allocation failure and exit.
+
+   Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2006 Free
+   Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include <config.h>
+
+#include "xalloc.h"
+
+#include <stdlib.h>
+
+#include "error.h"
+#include "exitfail.h"
+
+#include "gettext.h"
+#define _(msgid) gettext (msgid)
+
+void
+xalloc_die (void)
+{
+  error (exit_failure, 0, "%s", _("memory exhausted"));
+
+  /* The `noreturn' cannot be given to error, since it may return if
+     its first argument is 0.  To help compilers understand the
+     xalloc_die does not return, call abort.  Also, the abort is a
+     safety feature if exit_failure is 0 (which shouldn't happen).  */
+  abort ();
+}
diff --git a/parted-1.8.7/lib/xalloc.h b/parted-1.8.7/lib/xalloc.h
new file mode 100644
index 0000000..0c6d8dc
--- /dev/null
+++ b/parted-1.8.7/lib/xalloc.h
@@ -0,0 +1,271 @@
+/* xalloc.h -- malloc with out-of-memory checking
+
+   Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+   1999, 2000, 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef XALLOC_H_
+# define XALLOC_H_
+
+# include <stddef.h>
+
+
+# ifdef __cplusplus
+extern "C" {
+# endif
+
+
+# ifndef __attribute__
+#  if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
+#   define __attribute__(x)
+#  endif
+# endif
+
+# ifndef ATTRIBUTE_NORETURN
+#  define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
+# endif
+
+/* This function is always triggered when memory is exhausted.
+   It must be defined by the application, either explicitly
+   or by using gnulib's xalloc-die module.  This is the
+   function to call when one wants the program to die because of a
+   memory allocation failure.  */
+extern void xalloc_die (void) ATTRIBUTE_NORETURN;
+
+void *xmalloc (size_t s);
+void *xzalloc (size_t s);
+void *xcalloc (size_t n, size_t s);
+void *xrealloc (void *p, size_t s);
+void *x2realloc (void *p, size_t *pn);
+void *xmemdup (void const *p, size_t s);
+char *xstrdup (char const *str);
+
+/* Return 1 if an array of N objects, each of size S, cannot exist due
+   to size arithmetic overflow.  S must be positive and N must be
+   nonnegative.  This is a macro, not an inline function, so that it
+   works correctly even when SIZE_MAX < N.
+
+   By gnulib convention, SIZE_MAX represents overflow in size
+   calculations, so the conservative dividend to use here is
+   SIZE_MAX - 1, since SIZE_MAX might represent an overflowed value.
+   However, malloc (SIZE_MAX) fails on all known hosts where
+   sizeof (ptrdiff_t) <= sizeof (size_t), so do not bother to test for
+   exactly-SIZE_MAX allocations on such hosts; this avoids a test and
+   branch when S is known to be 1.  */
+# define xalloc_oversized(n, s) \
+    ((size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) < (n))
+
+
+/* In the following macros, T must be an elementary or structure/union or
+   typedef'ed type, or a pointer to such a type.  To apply one of the
+   following macros to a function pointer or array type, you need to typedef
+   it first and use the typedef name.  */
+
+/* Allocate an object of type T dynamically, with error checking.  */
+/* extern t *XMALLOC (typename t); */
+# define XMALLOC(t) ((t *) xmalloc (sizeof (t)))
+
+/* Allocate memory for N elements of type T, with error checking.  */
+/* extern t *XNMALLOC (size_t n, typename t); */
+# define XNMALLOC(n, t) \
+    ((t *) (sizeof (t) == 1 ? xmalloc (n) : xnmalloc (n, sizeof (t))))
+
+/* Allocate an object of type T dynamically, with error checking,
+   and zero it.  */
+/* extern t *XZALLOC (typename t); */
+# define XZALLOC(t) ((t *) xzalloc (sizeof (t)))
+
+/* Allocate memory for N elements of type T, with error checking,
+   and zero it.  */
+/* extern t *XCALLOC (size_t n, typename t); */
+# define XCALLOC(n, t) \
+    ((t *) (sizeof (t) == 1 ? xzalloc (n) : xcalloc (n, sizeof (t))))
+
+
+# if HAVE_INLINE
+#  define static_inline static inline
+# else
+   void *xnmalloc (size_t n, size_t s);
+   void *xnrealloc (void *p, size_t n, size_t s);
+   void *x2nrealloc (void *p, size_t *pn, size_t s);
+   char *xcharalloc (size_t n);
+# endif
+
+# ifdef static_inline
+
+/* Allocate an array of N objects, each with S bytes of memory,
+   dynamically, with error checking.  S must be nonzero.  */
+
+static_inline void *
+xnmalloc (size_t n, size_t s)
+{
+  if (xalloc_oversized (n, s))
+    xalloc_die ();
+  return xmalloc (n * s);
+}
+
+/* Change the size of an allocated block of memory P to an array of N
+   objects each of S bytes, with error checking.  S must be nonzero.  */
+
+static_inline void *
+xnrealloc (void *p, size_t n, size_t s)
+{
+  if (xalloc_oversized (n, s))
+    xalloc_die ();
+  return xrealloc (p, n * s);
+}
+
+/* If P is null, allocate a block of at least *PN such objects;
+   otherwise, reallocate P so that it contains more than *PN objects
+   each of S bytes.  *PN must be nonzero unless P is null, and S must
+   be nonzero.  Set *PN to the new number of objects, and return the
+   pointer to the new block.  *PN is never set to zero, and the
+   returned pointer is never null.
+
+   Repeated reallocations are guaranteed to make progress, either by
+   allocating an initial block with a nonzero size, or by allocating a
+   larger block.
+
+   In the following implementation, nonzero sizes are increased by a
+   factor of approximately 1.5 so that repeated reallocations have
+   O(N) overall cost rather than O(N**2) cost, but the
+   specification for this function does not guarantee that rate.
+
+   Here is an example of use:
+
+     int *p = NULL;
+     size_t used = 0;
+     size_t allocated = 0;
+
+     void
+     append_int (int value)
+       {
+	 if (used == allocated)
+	   p = x2nrealloc (p, &allocated, sizeof *p);
+	 p[used++] = value;
+       }
+
+   This causes x2nrealloc to allocate a block of some nonzero size the
+   first time it is called.
+
+   To have finer-grained control over the initial size, set *PN to a
+   nonzero value before calling this function with P == NULL.  For
+   example:
+
+     int *p = NULL;
+     size_t used = 0;
+     size_t allocated = 0;
+     size_t allocated1 = 1000;
+
+     void
+     append_int (int value)
+       {
+	 if (used == allocated)
+	   {
+	     p = x2nrealloc (p, &allocated1, sizeof *p);
+	     allocated = allocated1;
+	   }
+	 p[used++] = value;
+       }
+
+   */
+
+static_inline void *
+x2nrealloc (void *p, size_t *pn, size_t s)
+{
+  size_t n = *pn;
+
+  if (! p)
+    {
+      if (! n)
+	{
+	  /* The approximate size to use for initial small allocation
+	     requests, when the invoking code specifies an old size of
+	     zero.  64 bytes is the largest "small" request for the
+	     GNU C library malloc.  */
+	  enum { DEFAULT_MXFAST = 64 };
+
+	  n = DEFAULT_MXFAST / s;
+	  n += !n;
+	}
+    }
+  else
+    {
+      /* Set N = ceil (1.5 * N) so that progress is made if N == 1.
+	 Check for overflow, so that N * S stays in size_t range.
+	 The check is slightly conservative, but an exact check isn't
+	 worth the trouble.  */
+      if ((size_t) -1 / 3 * 2 / s <= n)
+	xalloc_die ();
+      n += (n + 1) / 2;
+    }
+
+  *pn = n;
+  return xrealloc (p, n * s);
+}
+
+/* Return a pointer to a new buffer of N bytes.  This is like xmalloc,
+   except it returns char *.  */
+
+static_inline char *
+xcharalloc (size_t n)
+{
+  return XNMALLOC (n, char);
+}
+
+# endif
+
+# ifdef __cplusplus
+}
+
+/* C++ does not allow conversions from void * to other pointer types
+   without a cast.  Use templates to work around the problem when
+   possible.  */
+
+template <typename T> inline T *
+xrealloc (T *p, size_t s)
+{
+  return (T *) xrealloc ((void *) p, s);
+}
+
+template <typename T> inline T *
+xnrealloc (T *p, size_t n, size_t s)
+{
+  return (T *) xnrealloc ((void *) p, n, s);
+}
+
+template <typename T> inline T *
+x2realloc (T *p, size_t *pn)
+{
+  return (T *) x2realloc ((void *) p, pn);
+}
+
+template <typename T> inline T *
+x2nrealloc (T *p, size_t *pn, size_t s)
+{
+  return (T *) x2nrealloc ((void *) p, pn, s);
+}
+
+template <typename T> inline T *
+xmemdup (T const *p, size_t s)
+{
+  return (T *) xmemdup ((void const *) p, s);
+}
+
+# endif
+
+
+#endif /* !XALLOC_H_ */
diff --git a/parted-1.8.7/lib/xmalloc.c b/parted-1.8.7/lib/xmalloc.c
new file mode 100644
index 0000000..318e0dd
--- /dev/null
+++ b/parted-1.8.7/lib/xmalloc.c
@@ -0,0 +1,123 @@
+/* xmalloc.c -- malloc with out of memory checking
+
+   Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+   1999, 2000, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
+   Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include <config.h>
+
+#if ! HAVE_INLINE
+# define static_inline
+#endif
+#include "xalloc.h"
+#undef static_inline
+
+#include <stdlib.h>
+#include <string.h>
+
+#ifndef SIZE_MAX
+# define SIZE_MAX ((size_t) -1)
+#endif
+
+/* 1 if calloc is known to be compatible with GNU calloc.  This
+   matters if we are not also using the calloc module, which defines
+   HAVE_CALLOC and supports the GNU API even on non-GNU platforms.  */
+#if defined HAVE_CALLOC || defined __GLIBC__
+enum { HAVE_GNU_CALLOC = 1 };
+#else
+enum { HAVE_GNU_CALLOC = 0 };
+#endif
+
+/* Allocate N bytes of memory dynamically, with error checking.  */
+
+void *
+xmalloc (size_t n)
+{
+  void *p = malloc (n);
+  if (!p && n != 0)
+    xalloc_die ();
+  return p;
+}
+
+/* Change the size of an allocated block of memory P to N bytes,
+   with error checking.  */
+
+void *
+xrealloc (void *p, size_t n)
+{
+  p = realloc (p, n);
+  if (!p && n != 0)
+    xalloc_die ();
+  return p;
+}
+
+/* If P is null, allocate a block of at least *PN bytes; otherwise,
+   reallocate P so that it contains more than *PN bytes.  *PN must be
+   nonzero unless P is null.  Set *PN to the new block's size, and
+   return the pointer to the new block.  *PN is never set to zero, and
+   the returned pointer is never null.  */
+
+void *
+x2realloc (void *p, size_t *pn)
+{
+  return x2nrealloc (p, pn, 1);
+}
+
+/* Allocate S bytes of zeroed memory dynamically, with error checking.
+   There's no need for xnzalloc (N, S), since it would be equivalent
+   to xcalloc (N, S).  */
+
+void *
+xzalloc (size_t s)
+{
+  return memset (xmalloc (s), 0, s);
+}
+
+/* Allocate zeroed memory for N elements of S bytes, with error
+   checking.  S must be nonzero.  */
+
+void *
+xcalloc (size_t n, size_t s)
+{
+  void *p;
+  /* Test for overflow, since some calloc implementations don't have
+     proper overflow checks.  But omit overflow and size-zero tests if
+     HAVE_GNU_CALLOC, since GNU calloc catches overflow and never
+     returns NULL if successful.  */
+  if ((! HAVE_GNU_CALLOC && xalloc_oversized (n, s))
+      || (! (p = calloc (n, s)) && (HAVE_GNU_CALLOC || n != 0)))
+    xalloc_die ();
+  return p;
+}
+
+/* Clone an object P of size S, with error checking.  There's no need
+   for xnmemdup (P, N, S), since xmemdup (P, N * S) works without any
+   need for an arithmetic overflow check.  */
+
+void *
+xmemdup (void const *p, size_t s)
+{
+  return memcpy (xmalloc (s), p, s);
+}
+
+/* Clone STRING.  */
+
+char *
+xstrdup (char const *string)
+{
+  return xmemdup (string, strlen (string) + 1);
+}
diff --git a/parted-1.8.7/lib/xstrndup.c b/parted-1.8.7/lib/xstrndup.c
new file mode 100644
index 0000000..7ccefd7
--- /dev/null
+++ b/parted-1.8.7/lib/xstrndup.c
@@ -0,0 +1,37 @@
+/* Duplicate a bounded initial segment of a string, with out-of-memory
+   checking.
+   Copyright (C) 2003, 2006, 2007 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "xstrndup.h"
+
+#include <string.h>
+#include "xalloc.h"
+
+/* Return a newly allocated copy of at most N bytes of STRING.
+   In other words, return a copy of the initial segment of length N of
+   STRING.  */
+char *
+xstrndup (const char *string, size_t n)
+{
+  char *s = strndup (string, n);
+  if (! s)
+    xalloc_die ();
+  return s;
+}
diff --git a/parted-1.8.7/lib/xstrndup.h b/parted-1.8.7/lib/xstrndup.h
new file mode 100644
index 0000000..88354cf
--- /dev/null
+++ b/parted-1.8.7/lib/xstrndup.h
@@ -0,0 +1,24 @@
+/* Duplicate a bounded initial segment of a string, with out-of-memory
+   checking.
+   Copyright (C) 2003 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include <stddef.h>
+
+/* Return a newly allocated copy of at most N bytes of STRING.
+   In other words, return a copy of the initial segment of length N of
+   STRING.  */
+extern char *xstrndup (const char *string, size_t n);
diff --git a/parted-1.8.7/libparted.pc.in b/parted-1.8.7/libparted.pc.in
new file mode 100644
index 0000000..0943bf0
--- /dev/null
+++ b/parted-1.8.7/libparted.pc.in
@@ -0,0 +1,11 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: libparted
+Description: The GNU Parted disk partitioning shared library
+Version: @VERSION@
+Libs: -L${libdir} -lparted
+Cflags: -I${includedir}
+
diff --git a/parted-1.8.7/libparted/Makefile.am b/parted-1.8.7/libparted/Makefile.am
new file mode 100644
index 0000000..0b013cc
--- /dev/null
+++ b/parted-1.8.7/libparted/Makefile.am
@@ -0,0 +1,49 @@
+# This file is part of GNU Parted
+# Copyright (C) 1999, 2000, 2001, 2007 Free Software Foundation, Inc.
+#
+# This file may be modified and/or distributed without restriction.
+
+if HAVE_CHECK
+SUBDIRS_CHECK = tests
+else
+SUBDIRS_CHECK =
+endif
+
+SUBDIRS       = labels fs . $(SUBDIRS_CHECK)
+
+
+partedincludedir      = -I$(top_srcdir)/lib -I$(top_srcdir)/include
+lib_LTLIBRARIES	      =	libparted.la
+libparted_la_LDFLAGS  = -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
+						-release $(LT_RELEASE)
+libparted_la_SOURCES  = debug.c			\
+			device.c		\
+			exception.c		\
+			filesys.c		\
+			libparted.c		\
+			timer.c			\
+			unit.c			\
+			disk.c			\
+			cs/geom.c		\
+			cs/constraint.c		\
+			cs/natmath.c		\
+			arch/blkpg.h		\
+			arch/$(OS).c
+
+EXTRA_libparted_la_SOURCES    = arch/linux.c		\
+				arch/gnu.c \
+				arch/beos.c
+
+libparted_la_LIBADD   = $(OS_LIBS)		\
+			$(DL_LIBS)		\
+			$(DM_LIBS)		\
+			$(SELINUX_LIBS)		\
+			$(INTLLIBS)		\
+			fs/libfs.la		\
+			labels/liblabels.la
+
+EXTRA_DIST	      = mbr.s
+
+INCLUDES = $(partedincludedir) $(INTLINCS)
+
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/parted-1.8.7/libparted/Makefile.in b/parted-1.8.7/libparted/Makefile.in
new file mode 100644
index 0000000..67c20ff
--- /dev/null
+++ b/parted-1.8.7/libparted/Makefile.in
@@ -0,0 +1,877 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# This file is part of GNU Parted
+# Copyright (C) 1999, 2000, 2001, 2007 Free Software Foundation, Inc.
+#
+# This file may be modified and/or distributed without restriction.
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = libparted
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(libdir)"
+libLTLIBRARIES_INSTALL = $(INSTALL)
+LTLIBRARIES = $(lib_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libparted_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) fs/libfs.la \
+	labels/liblabels.la
+am_libparted_la_OBJECTS = debug.lo device.lo exception.lo filesys.lo \
+	libparted.lo timer.lo unit.lo disk.lo geom.lo constraint.lo \
+	natmath.lo $(OS).lo
+libparted_la_OBJECTS = $(am_libparted_la_OBJECTS)
+libparted_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(libparted_la_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/lib@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(libparted_la_SOURCES) $(EXTRA_libparted_la_SOURCES)
+DIST_SOURCES = $(libparted_la_SOURCES) $(EXTRA_libparted_la_SOURCES)
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+	html-recursive info-recursive install-data-recursive \
+	install-dvi-recursive install-exec-recursive \
+	install-html-recursive install-info-recursive \
+	install-pdf-recursive install-ps-recursive install-recursive \
+	installcheck-recursive installdirs-recursive pdf-recursive \
+	ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
+  distclean-recursive maintainer-clean-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = labels fs . tests
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+@HAVE_CHECK_FALSE@SUBDIRS_CHECK = 
+@HAVE_CHECK_TRUE@SUBDIRS_CHECK = tests
+SUBDIRS = labels fs . $(SUBDIRS_CHECK)
+partedincludedir = -I$(top_srcdir)/lib -I$(top_srcdir)/include
+lib_LTLIBRARIES = libparted.la
+libparted_la_LDFLAGS = -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
+						-release $(LT_RELEASE)
+
+libparted_la_SOURCES = debug.c			\
+			device.c		\
+			exception.c		\
+			filesys.c		\
+			libparted.c		\
+			timer.c			\
+			unit.c			\
+			disk.c			\
+			cs/geom.c		\
+			cs/constraint.c		\
+			cs/natmath.c		\
+			arch/blkpg.h		\
+			arch/$(OS).c
+
+EXTRA_libparted_la_SOURCES = arch/linux.c		\
+				arch/gnu.c \
+				arch/beos.c
+
+libparted_la_LIBADD = $(OS_LIBS)		\
+			$(DL_LIBS)		\
+			$(DM_LIBS)		\
+			$(SELINUX_LIBS)		\
+			$(INTLLIBS)		\
+			fs/libfs.la		\
+			labels/liblabels.la
+
+EXTRA_DIST = mbr.s
+INCLUDES = $(partedincludedir) $(INTLINCS)
+MAINTAINERCLEANFILES = Makefile.in
+all: all-recursive
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  libparted/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  libparted/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+	@$(NORMAL_INSTALL)
+	test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
+	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+	  if test -f $$p; then \
+	    f=$(am__strip_dir) \
+	    echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
+	    $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
+	  else :; fi; \
+	done
+
+uninstall-libLTLIBRARIES:
+	@$(NORMAL_UNINSTALL)
+	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+	  p=$(am__strip_dir) \
+	  echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
+	  $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
+	done
+
+clean-libLTLIBRARIES:
+	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libparted.la: $(libparted_la_OBJECTS) $(libparted_la_DEPENDENCIES) 
+	$(libparted_la_LINK) -rpath $(libdir) $(libparted_la_OBJECTS) $(libparted_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/$(OS).Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/beos.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/constraint.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/debug.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/device.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/disk.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exception.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filesys.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geom.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libparted.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linux.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/natmath.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timer.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+geom.lo: cs/geom.c
+@am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geom.lo -MD -MP -MF $(DEPDIR)/geom.Tpo -c -o geom.lo `test -f 'cs/geom.c' || echo '$(srcdir)/'`cs/geom.c
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/geom.Tpo $(DEPDIR)/geom.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='cs/geom.c' object='geom.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geom.lo `test -f 'cs/geom.c' || echo '$(srcdir)/'`cs/geom.c
+
+constraint.lo: cs/constraint.c
+@am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT constraint.lo -MD -MP -MF $(DEPDIR)/constraint.Tpo -c -o constraint.lo `test -f 'cs/constraint.c' || echo '$(srcdir)/'`cs/constraint.c
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/constraint.Tpo $(DEPDIR)/constraint.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='cs/constraint.c' object='constraint.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o constraint.lo `test -f 'cs/constraint.c' || echo '$(srcdir)/'`cs/constraint.c
+
+natmath.lo: cs/natmath.c
+@am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT natmath.lo -MD -MP -MF $(DEPDIR)/natmath.Tpo -c -o natmath.lo `test -f 'cs/natmath.c' || echo '$(srcdir)/'`cs/natmath.c
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/natmath.Tpo $(DEPDIR)/natmath.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='cs/natmath.c' object='natmath.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o natmath.lo `test -f 'cs/natmath.c' || echo '$(srcdir)/'`cs/natmath.c
+
+$(OS).lo: arch/$(OS).c
+@am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT $(OS).lo -MD -MP -MF $(DEPDIR)/$(OS).Tpo -c -o $(OS).lo `test -f 'arch/$(OS).c' || echo '$(srcdir)/'`arch/$(OS).c
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$(OS).Tpo $(DEPDIR)/$(OS).Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='arch/$(OS).c' object='$(OS).lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o $(OS).lo `test -f 'arch/$(OS).c' || echo '$(srcdir)/'`arch/$(OS).c
+
+linux.lo: arch/linux.c
+@am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT linux.lo -MD -MP -MF $(DEPDIR)/linux.Tpo -c -o linux.lo `test -f 'arch/linux.c' || echo '$(srcdir)/'`arch/linux.c
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/linux.Tpo $(DEPDIR)/linux.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='arch/linux.c' object='linux.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o linux.lo `test -f 'arch/linux.c' || echo '$(srcdir)/'`arch/linux.c
+
+gnu.lo: arch/gnu.c
+@am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gnu.lo -MD -MP -MF $(DEPDIR)/gnu.Tpo -c -o gnu.lo `test -f 'arch/gnu.c' || echo '$(srcdir)/'`arch/gnu.c
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/gnu.Tpo $(DEPDIR)/gnu.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='arch/gnu.c' object='gnu.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gnu.lo `test -f 'arch/gnu.c' || echo '$(srcdir)/'`arch/gnu.c
+
+beos.lo: arch/beos.c
+@am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT beos.lo -MD -MP -MF $(DEPDIR)/beos.Tpo -c -o beos.lo `test -f 'arch/beos.c' || echo '$(srcdir)/'`arch/beos.c
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/beos.Tpo $(DEPDIR)/beos.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='arch/beos.c' object='beos.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o beos.lo `test -f 'arch/beos.c' || echo '$(srcdir)/'`arch/beos.c
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	rev=''; for subdir in $$list; do \
+	  if test "$$subdir" = "."; then :; else \
+	    rev="$$subdir $$rev"; \
+	  fi; \
+	done; \
+	rev="$$rev ."; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done && test -z "$$fail"
+tags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+ctags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+	  include_option=--etags-include; \
+	  empty_fix=.; \
+	else \
+	  include_option=--include; \
+	  empty_fix=; \
+	fi; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test ! -f $$subdir/TAGS || \
+	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	  fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d "$(distdir)/$$subdir" \
+	    || $(MKDIR_P) "$(distdir)/$$subdir" \
+	    || exit 1; \
+	    distdir=`$(am__cd) $(distdir) && pwd`; \
+	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+	    (cd $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$$top_distdir" \
+	        distdir="$$distdir/$$subdir" \
+		am__remove_distdir=: \
+		am__skip_length_check=: \
+	        distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(LTLIBRARIES)
+installdirs: installdirs-recursive
+installdirs-am:
+	for dir in "$(DESTDIR)$(libdir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-recursive
+
+clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
+	mostlyclean-am
+
+distclean: distclean-recursive
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-exec-am: install-libLTLIBRARIES
+
+install-html: install-html-recursive
+
+install-info: install-info-recursive
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-ps: install-ps-recursive
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-libLTLIBRARIES
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+	install-strip
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+	all all-am check check-am clean clean-generic \
+	clean-libLTLIBRARIES clean-libtool ctags ctags-recursive \
+	distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-libLTLIBRARIES install-man install-pdf \
+	install-pdf-am install-ps install-ps-am install-strip \
+	installcheck installcheck-am installdirs installdirs-am \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
+	uninstall-libLTLIBRARIES
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/libparted/arch/beos.c b/parted-1.8.7/libparted/arch/beos.c
new file mode 100644
index 0000000..6b6c897
--- /dev/null
+++ b/parted-1.8.7/libparted/arch/beos.c
@@ -0,0 +1,640 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+#include <parted/beos.h>
+
+/* POSIX headers */
+#include <sys/stat.h>
+#include <dirent.h>
+#include <limits.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <errno.h>
+
+/* BeOS APIs */
+#include <drivers/Drivers.h>
+
+/* ZETA R1+ APIs */
+#if B_ZETA_VERSION >= B_ZETA_VERSION_1_0_0
+#  include <device/ata_info.h>
+#endif
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+static void
+_scan_for_disks(const char* path)
+{
+	char subdir[PATH_MAX];
+	dirent_t* entp;
+	size_t pos;
+	DIR* dirp;
+	
+	if ((dirp=opendir(path)) != NULL)
+	{
+		/* Build first part of path */
+		strcpy(subdir, path);
+		strcat(subdir, "/");
+		pos = strlen(subdir);
+
+		/* Check all directory entries.. */
+		while((entp=readdir(dirp)) != NULL)
+		{
+			/* If they start with '.' just skip */
+			if (entp->d_name[0] == '.')
+				continue;
+
+			strcpy(subdir+pos, entp->d_name);
+			
+			/* /dev/disk/.../raw are the complete disks
+				we're interested in */
+			if (strcmp(entp->d_name, "raw") == 0)
+				_ped_device_probe(subdir);
+			else	/* If not 'raw', it most often will
+						be another subdir */
+				_scan_for_disks(subdir);
+		}
+		
+		closedir(dirp);
+	}
+}
+
+static void
+_flush_cache(PedDevice* dev)
+{
+	int fd;
+	if ((fd=open(dev->path, O_RDONLY)) < 0)
+	{
+		ioctl(fd, B_FLUSH_DRIVE_CACHE);
+		close(fd);
+	}
+}
+
+#if B_ZETA_VERSION >= B_ZETA_VERSION_1_0_0
+static int
+_device_init_ata(PedDevice* dev)
+{
+	ata_device_infoblock ide_info;
+	int maxlen, len, idx, fd;
+	char buf[256];
+
+	/* Try and get information about device from ATA(PI) driver */	
+	if ((fd=open(dev->path, O_RDONLY)) < 0)
+		goto ata_error;
+	
+	if (ioctl(fd, B_ATA_GET_DEVICE_INFO, &ide_info, sizeof(ide_info)) < 0)
+		goto ata_error_close;
+
+	close(fd);
+	
+	/* Copy 'logical' dimensions */
+	dev->bios_geom.cylinders = ide_info.cylinders;
+	dev->bios_geom.heads = ide_info.heads;
+	dev->bios_geom.sectors = ide_info.sectors;
+	
+	/* Copy used dimensions */
+	dev->hw_geom.cylinders = ide_info.current_cylinders;
+	dev->hw_geom.heads = ide_info.current_heads;
+	dev->hw_geom.sectors = ide_info.current_sectors;
+
+	/* Copy total number of sectors */
+	if (ide_info._48_bit_addresses_supported)
+		dev->length = ide_info.LBA48_total_sectors;
+	else if (ide_info.LBA_supported)
+		dev->length = ide_info.LBA_total_sectors;
+	else
+		dev->length = ide_info.cylinders * 
+				ide_info.heads * 
+				ide_info.sectors;
+
+	dev->sector_size =
+	dev->phys_sector_size = PED_SECTOR_SIZE_DEFAULT;
+
+	/* Use sensible model */
+	maxlen=sizeof(ide_info.model_number);
+	strncpy(buf, ide_info.model_number, maxlen);
+	buf[maxlen] = '\0';
+	
+	for (len=-1, idx=maxlen-1; idx > 0 && len < 0; idx--)
+		if (buf[idx] > 0x20)
+			len = idx;
+	
+	buf[(len == -1) ? 0 : len+1] = '\0';				
+	
+	dev->model = strdup(buf);
+
+	return PED_DEVICE_IDE;
+
+ata_error_close:
+	close(fd);
+
+ata_error:
+	return 0;
+}
+#endif 
+
+static int
+_device_init_generic_blkdev(PedDevice* dev)
+{
+	device_geometry bios, os;
+	int got_bios_info = 0;
+	int fd;
+
+	/* Try and get information about device from ATA(PI) driver */	
+	if ((fd=open(dev->path, O_RDONLY)) < 0)
+		goto blkdev_error;
+	
+	/* B_GET_GEOMETRY is mandatory */
+	if (ioctl(fd, B_GET_GEOMETRY, &os, sizeof(os)) < 0)
+		goto blkdev_error_close;
+
+	/* B_GET_BIOS_GEOMETRY is optional */
+	if (!ioctl(fd, B_GET_BIOS_GEOMETRY, &bios, sizeof(bios)))
+		got_bios_info = 1;
+
+	close(fd);
+	
+	dev->hw_geom.cylinders = os.cylinder_count;
+	dev->hw_geom.heads = os.head_count;
+	dev->hw_geom.sectors = os.sectors_per_track;
+	
+	dev->sector_size =
+	dev->phys_sector_size = os.bytes_per_sector;
+	
+	if (got_bios_info)
+	{
+		dev->bios_geom.cylinders = bios.cylinder_count;
+		dev->bios_geom.heads = bios.head_count;
+		dev->bios_geom.sectors = bios.sectors_per_track;
+	}
+	else
+		dev->bios_geom = dev->hw_geom;
+
+	dev->model = strdup("");
+
+	return PED_DEVICE_IDE;
+	
+blkdev_error_close:
+	close(fd);
+	
+blkdev_error:
+	return 0;
+}
+
+static int
+_device_init_blkdev(PedDevice* dev)
+{
+	int type;
+
+#if B_ZETA_VERSION >= B_ZETA_VERSION_1_0_0
+	if (!(type=_device_init_ata(dev)))
+#endif
+	type = _device_init_generic_blkdev(dev);
+
+	return type;
+}
+
+static int
+_device_init_file(PedDevice* dev, struct stat* dev_statp)
+{
+	if (!dev_statp->st_size)
+		return 0;
+
+	dev->sector_size =
+	dev->phys_sector_size = PED_SECTOR_SIZE_DEFAULT;
+
+	dev->length = dev_statp->st_size / PED_SECTOR_SIZE_DEFAULT;
+
+	dev->bios_geom.cylinders = dev->length / (4 * 32);
+	dev->bios_geom.heads = 4;
+	dev->bios_geom.sectors = 32;
+	dev->hw_geom = dev->bios_geom;
+
+	dev->model = strdup(_("Disk Image"));
+	
+	return PED_DEVICE_FILE;
+}
+
+static int
+_device_init(PedDevice* dev)
+{
+	struct stat dev_stat;
+	int type = 0;
+	
+	/* Check if we're a regular file */	
+	if (stat(dev->path, &dev_stat) < 0)
+		goto done;
+
+	if (S_ISBLK(dev_stat.st_mode) || S_ISCHR(dev_stat.st_mode))
+		type = _device_init_blkdev(dev);
+	else if (S_ISREG(dev_stat.st_mode))
+		type = _device_init_file(dev,&dev_stat);
+
+done:
+	return type;
+}
+
+
+static PedDevice*
+beos_new (const char* path)
+{
+	struct stat stat_info;
+	PedDevice* dev;
+
+	PED_ASSERT(path != NULL, return NULL);
+
+	dev = (PedDevice*) ped_malloc (sizeof (PedDevice));
+	if (!dev)
+		goto error;
+
+	dev->path = strdup(path);
+	if (!dev->path)
+		goto error_free_dev;
+
+	dev->arch_specific 
+		= (BEOSSpecific*) ped_malloc(sizeof(BEOSSpecific));
+	if (dev->arch_specific == NULL)
+		goto error_free_path;
+
+	dev->open_count = 0;
+	dev->read_only = 0;
+	dev->external_mode = 0;
+	dev->dirty = 0;
+	dev->boot_dirty = 0;
+
+	if ((dev->type=_device_init(dev)) <= 0)
+		goto error_free_arch_specific;
+
+	/* All OK! */
+	return dev;
+	
+error_free_arch_specific:
+	ped_free (dev->arch_specific);
+	
+error_free_path:
+	ped_free (dev->path);
+	
+error_free_dev:
+	ped_free (dev);
+	
+error:
+	return NULL;
+}
+
+static void
+beos_destroy (PedDevice* dev)
+{
+	ped_free (dev->arch_specific);
+	ped_free (dev->path);
+	ped_free (dev->model);
+	ped_free (dev);
+}
+
+static int
+beos_is_busy (PedDevice* dev)
+{
+	return 1;
+}
+
+static int
+beos_open (PedDevice* dev)
+{
+	BEOSSpecific* arch_specific = BEOS_SPECIFIC(dev);
+
+retry:
+	arch_specific->fd = open(dev->path, O_RDWR);
+	if (arch_specific->fd == -1) {
+		char* rw_error_msg = strerror(errno);
+
+		arch_specific->fd = open (dev->path, O_RDONLY);
+		if (arch_specific->fd == -1) {
+			if (ped_exception_throw (
+					PED_EXCEPTION_ERROR,
+					PED_EXCEPTION_RETRY_CANCEL,
+					_("Error opening %s: %s"),
+					dev->path, strerror (errno))
+					!= PED_EXCEPTION_RETRY) {
+						return 0;
+					} else {
+						goto retry;
+					}
+		} else {
+			ped_exception_throw (
+				PED_EXCEPTION_WARNING,
+				PED_EXCEPTION_OK,
+				_("Unable to open %s read-write (%s).  %s has "
+					"been opened read-only."),
+				dev->path, rw_error_msg, dev->path);
+			dev->read_only = 1;
+		}
+	} else {
+		dev->read_only = 0;
+	}
+
+	_flush_cache (dev);
+
+	return 1;
+}
+
+static int
+beos_refresh_open (PedDevice* dev)
+{
+	return 1;
+}
+
+static int
+beos_close (PedDevice* dev)
+{
+	BEOSSpecific* arch_specific = BEOS_SPECIFIC(dev);
+
+	if (dev->dirty)
+		_flush_cache (dev);
+
+	close (arch_specific->fd);
+
+	return 1;
+}
+
+static int
+beos_refresh_close (PedDevice* dev)
+{
+	if (dev->dirty)
+		_flush_cache (dev);
+
+	return 1;
+}
+
+static int
+beos_read (const PedDevice* dev, void* buffer, PedSector start, PedSector count)
+{
+	BEOSSpecific* arch_specific = BEOS_SPECIFIC(dev);
+	int status;
+	PedExceptionOption ex_status;
+	size_t read_length = count * dev->sector_size;
+
+	PED_ASSERT(dev->sector_size % PED_SECTOR_SIZE_DEFAULT == 0, return 0);
+
+	/* First, try to seek */
+	while(1)
+	{
+		if (lseek(arch_specific->fd, start * dev->sector_size, SEEK_SET)
+			== start * dev->sector_size)
+			break;
+
+		ex_status = ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_RETRY_IGNORE_CANCEL,
+			_("%s during seek for read on %s"),
+			strerror (errno), dev->path);
+
+		switch (ex_status)
+		{
+			case PED_EXCEPTION_IGNORE:
+				return 1;
+			case PED_EXCEPTION_RETRY:
+				break /* out of switch */;
+			case PED_EXCEPTION_UNHANDLED:
+				ped_exception_catch ();
+			case PED_EXCEPTION_CANCEL:
+				return 0;
+		}
+	}
+	
+	/* If we seeked ok, now is the time to read */
+	while (1)
+	{
+		status = read(arch_specific->fd, buffer, read_length);
+		if (status == count * dev->sector_size)
+			break;
+		
+		if (status > 0)
+		{
+			read_length -= status;
+			buffer += status;
+			continue;
+		}
+
+		ex_status = ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_RETRY_IGNORE_CANCEL,
+			_("%s during read on %s"),
+			strerror (errno),
+			dev->path);
+
+		switch (ex_status)
+		{
+			case PED_EXCEPTION_IGNORE:
+				return 1;
+			case PED_EXCEPTION_RETRY:
+				break;
+			case PED_EXCEPTION_UNHANDLED:
+				ped_exception_catch ();
+			case PED_EXCEPTION_CANCEL:
+				return 0;
+		}
+	}
+
+	return 1;
+}
+
+static int
+beos_write (PedDevice* dev, const void* buffer, PedSector start,
+	PedSector count)
+{
+	BEOSSpecific* arch_specific = BEOS_SPECIFIC(dev);
+	int                     status;
+	PedExceptionOption      ex_status;
+	size_t                  write_length = count * dev->sector_size;
+
+	PED_ASSERT(dev->sector_size % PED_SECTOR_SIZE_DEFAULT == 0, return 0);
+
+	if (dev->read_only)
+	{
+		if (ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_IGNORE_CANCEL,
+			_("Can't write to %s, because it is opened read-only."),
+			dev->path)
+			!= PED_EXCEPTION_IGNORE)
+			return 0;
+		else
+			return 1;
+	}
+
+	while(1)
+	{
+		if (lseek(arch_specific->fd,start * dev->sector_size,SEEK_SET)
+			== start * dev->sector_size)
+			break;
+
+		ex_status = ped_exception_throw (
+			PED_EXCEPTION_ERROR, PED_EXCEPTION_RETRY_IGNORE_CANCEL,
+			_("%s during seek for write on %s"),
+			strerror (errno), dev->path);
+
+		switch (ex_status)
+		{
+			case PED_EXCEPTION_IGNORE:
+				return 1;
+			case PED_EXCEPTION_RETRY:
+				break;
+			case PED_EXCEPTION_UNHANDLED:
+				ped_exception_catch ();
+			case PED_EXCEPTION_CANCEL:
+				return 0;
+		}
+	}
+
+#ifdef READ_ONLY
+	printf ("ped_device_write (\"%s\", %p, %d, %d)\n",
+		dev->path, buffer, (int) start, (int) count);
+#else
+	dev->dirty = 1;
+	while(1)
+	{
+		status = write (arch_specific->fd, buffer, write_length);
+		if (status == count * dev->sector_size)
+			break;
+		
+		if (status > 0)
+		{
+			write_length -= status;
+			buffer += status;
+			continue;
+		}
+
+		ex_status = ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_RETRY_IGNORE_CANCEL,
+			_("%s during write on %s"),
+			strerror (errno), dev->path);
+
+		switch (ex_status)
+		{
+			case PED_EXCEPTION_IGNORE:
+				return 1;
+			case PED_EXCEPTION_RETRY:
+				break;
+			case PED_EXCEPTION_UNHANDLED:
+				ped_exception_catch ();
+			case PED_EXCEPTION_CANCEL:
+				return 0;
+		}
+	}
+#endif /* !READ_ONLY */
+	
+	return 1;
+}
+
+static PedSector
+beos_check (PedDevice* dev, void* buffer, PedSector start, PedSector count)
+{
+	BEOSSpecific*	arch_specific = BEOS_SPECIFIC(dev);
+	PedSector		done = 0;
+	int				status;
+
+	PED_ASSERT(dev != NULL, return 0);
+        
+	if (lseek(arch_specific->fd, start * dev->sector_size, SEEK_SET)
+		!= start * dev->sector_size)
+		return 0;
+
+	for (done = 0; done < count; done += status / dev->sector_size)
+	{
+		status = read (arch_specific->fd, buffer,
+                               (size_t) ((count-done) * dev->sector_size));
+		if (status < 0)
+			break;
+	}
+
+	return done;
+}
+
+static int
+beos_sync (PedDevice* dev)
+{
+	return 1;
+}
+
+static int
+beos_sync_fast (PedDevice* dev)
+{
+	return 1;
+}
+
+/* Probe for all available disks */
+static void
+beos_probe_all ()
+{
+	/* For BeOS/ZETA/Haiku, all disks are published under /dev/disk */
+	_scan_for_disks("/dev/disk");
+}
+
+static char*
+beos_partition_get_path (const PedPartition* part)
+{
+	return NULL;
+}
+
+static int
+beos_partition_is_busy (const PedPartition* part)
+{
+	return 0;
+}
+
+static int
+beos_disk_commit (PedDisk* disk)
+{
+	return 0;
+}
+
+static PedDeviceArchOps beos_dev_ops = {
+        _new:           beos_new,
+        destroy:        beos_destroy,
+        is_busy:        beos_is_busy,
+        open:           beos_open,
+        refresh_open:   beos_refresh_open,
+        close:          beos_close,
+        refresh_close:  beos_refresh_close,
+        read:           beos_read,
+        write:          beos_write,
+        check:          beos_check,
+        sync:           beos_sync,
+        sync_fast:      beos_sync_fast,
+        probe_all:      beos_probe_all
+};
+
+static PedDiskArchOps beos_disk_ops =  {
+        partition_get_path:     beos_partition_get_path,
+        partition_is_busy:      beos_partition_is_busy,
+        disk_commit:            beos_disk_commit
+};
+
+PedArchitecture ped_beos_arch = {
+        dev_ops:        &beos_dev_ops,
+        disk_ops:       &beos_disk_ops
+};
diff --git a/parted-1.8.7/libparted/arch/blkpg.h b/parted-1.8.7/libparted/arch/blkpg.h
new file mode 100644
index 0000000..2a5e4fb
--- /dev/null
+++ b/parted-1.8.7/libparted/arch/blkpg.h
@@ -0,0 +1,64 @@
+#ifndef _LINUX_BLKPG_H
+#define _LINUX_BLKPG_H
+
+/*
+ * Partition table and disk geometry handling
+ *
+ * A single ioctl with lots of subfunctions:
+ *
+ * Device number stuff:
+ *    get_whole_disk()		(given the device number of a partition,
+ *                               find the device number of the encompassing disk)
+ *    get_all_partitions()	(given the device number of a disk, return the
+ *				 device numbers of all its known partitions)
+ *
+ * Partition stuff:
+ *    add_partition()
+ *    delete_partition()
+ *    test_partition_in_use()	(also for test_disk_in_use)
+ *
+ * Geometry stuff:
+ *    get_geometry()
+ *    set_geometry()
+ *    get_bios_drivedata()
+ *
+ * For today, only the partition stuff - aeb, 990515
+ */
+#include <linux/ioctl.h>
+
+#define BLKPG      _IO(0x12,105)
+
+/* The argument structure */
+struct blkpg_ioctl_arg {
+        int op;
+        int flags;
+        int datalen;
+        void *data;
+};
+
+/* The subfunctions (for the op field) */
+#define BLKPG_ADD_PARTITION	1
+#define BLKPG_DEL_PARTITION	2
+
+/* Sizes of name fields. Unused at present. */
+#define BLKPG_DEVNAMELTH	64
+#define BLKPG_VOLNAMELTH	64
+
+/* The data structure for ADD_PARTITION and DEL_PARTITION */
+struct blkpg_partition {
+	long long start;		/* starting offset in bytes */
+	long long length;		/* length in bytes */
+	int pno;			/* partition number */
+	char devname[BLKPG_DEVNAMELTH];	/* partition name, like sda5 or c0d1p2,
+					   to be used in kernel messages */
+	char volname[BLKPG_VOLNAMELTH];	/* volume label */
+};
+
+#ifdef __KERNEL__
+
+extern char * partition_name(kdev_t dev);
+extern int blk_ioctl(kdev_t dev, unsigned int cmd, unsigned long arg);
+
+#endif /* __KERNEL__ */
+
+#endif /* _LINUX_BLKPG_H */
diff --git a/parted-1.8.7/libparted/arch/gnu.c b/parted-1.8.7/libparted/arch/gnu.c
new file mode 100644
index 0000000..badc747
--- /dev/null
+++ b/parted-1.8.7/libparted/arch/gnu.c
@@ -0,0 +1,875 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 1999, 2000, 2001, 2005, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+#include <parted/gnu.h>
+
+#include <errno.h>
+#include <hurd.h>
+#include <hurd/fs.h>
+#include <hurd/store.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+static int
+_device_get_sector_size (PedDevice* dev)
+{
+	GNUSpecific*	arch_specific = GNU_SPECIFIC (dev);
+	size_t		store_block_size = arch_specific->store->block_size;
+
+	return PED_SECTOR_SIZE_DEFAULT;
+}
+
+static PedSector
+_device_get_length (PedDevice* dev)
+{
+	GNUSpecific*	arch_specific = GNU_SPECIFIC (dev);
+	size_t		store_blocks = arch_specific->store->blocks;
+	size_t		store_block_size = arch_specific->store->block_size;
+
+	return ((long long) store_blocks * store_block_size) / PED_SECTOR_SIZE_DEFAULT;
+}
+
+static int
+_device_probe_geometry (PedDevice* dev)
+{
+	PedSector cyl_size;
+
+	dev->length = _device_get_length (dev);
+	if (!dev->length)
+		return 0;
+
+	dev->sector_size = _device_get_sector_size (dev);
+	if (!dev->sector_size)
+		return 0;
+
+	/* XXX: We have no way to get this!  */
+	dev->bios_geom.sectors = 63;
+	dev->bios_geom.heads = 255;
+	cyl_size = dev->bios_geom.sectors * dev->bios_geom.heads;
+	dev->bios_geom.cylinders = dev->length / cyl_size
+					* (dev->sector_size / PED_SECTOR_SIZE_DEFAULT);
+	dev->hw_geom = dev->bios_geom;
+
+	return 1;
+}
+
+static int
+init_file (PedDevice* dev)
+{
+	PedExceptionOption	ex_status;
+
+retry_open:
+	if (!ped_device_open (dev)) {
+		ex_status = ped_exception_throw (
+				PED_EXCEPTION_WARNING,
+				PED_EXCEPTION_RETRY_CANCEL,
+				_("Unable to open %s."),
+				dev->path);
+		switch (ex_status) {
+			case PED_EXCEPTION_RETRY:
+				goto retry_open;
+
+			case PED_EXCEPTION_UNHANDLED:
+				ped_exception_catch ();
+			case PED_EXCEPTION_CANCEL:
+				goto error;
+		}
+	
+		return 0;
+	}
+
+retry_probe:
+	if (!_device_probe_geometry (dev)) {
+		ex_status = ped_exception_throw (
+				PED_EXCEPTION_WARNING,
+				PED_EXCEPTION_RETRY_CANCEL,
+				_("Unable to probe store."));
+		switch (ex_status) {
+			case PED_EXCEPTION_RETRY:
+				goto retry_probe;
+
+			case PED_EXCEPTION_UNHANDLED:
+				ped_exception_catch ();
+			case PED_EXCEPTION_CANCEL:
+				goto error_close_dev;
+		}
+
+		return 0;
+	}
+
+	dev->model = "";
+
+	ped_device_close (dev);
+	return 1;
+
+error_close_dev:
+	ped_device_close (dev);
+error:
+	return 0;
+}
+
+static void
+_flush_cache (PedDevice* dev)
+{
+	GNUSpecific*	arch_specific = GNU_SPECIFIC (dev);
+
+	if (dev->read_only)
+		return;
+
+	/* Wait for a complete sync to finish.  */
+	file_sync (arch_specific->store->source, 1, 0);
+}
+
+/* Initialize by allocating memory and filling in a few defaults, a
+   PedDevice structure.  */
+static PedDevice*
+_init_device (const char *path)
+{
+	PedDevice *dev;
+	GNUSpecific*	arch_specific;
+
+	dev = (PedDevice*) ped_malloc (sizeof (PedDevice));
+	if (!dev)
+		goto error;
+
+	dev->path = strdup (path);
+	if (!dev->path)
+		goto error_free_dev;
+
+	dev->arch_specific
+		= (GNUSpecific*) ped_malloc (sizeof (GNUSpecific));
+	if (!dev->arch_specific)
+		goto error_free_path;
+
+	dev->type = PED_DEVICE_FILE;	/* FIXME? */
+	dev->open_count = 0;
+	dev->read_only = 0;
+	dev->external_mode = 0;
+	dev->dirty = 0;
+	dev->boot_dirty = 0;
+
+	return dev;
+
+error_free_arch_specific:
+	ped_free (dev->arch_specific);
+error_free_path:
+	ped_free (dev->path);
+error_free_dev:
+	ped_free (dev);
+error:
+	return NULL;
+}
+
+static int
+_kernel_reread_part_table (PedDevice* dev)
+{
+	/* XXX: We must wait for partfs to be finished.  */
+	return 1;
+}
+
+/* Free the memory associated with a PedDevice structure.  */
+static void
+_done_device (PedDevice *dev)
+{
+        ped_free (dev->arch_specific);
+	ped_free (dev->path);
+	ped_free (dev);
+}
+
+/* Release all resources that libparted owns in DEV.  */
+static void
+gnu_destroy (PedDevice* dev)
+{
+	GNUSpecific*	arch_specific = GNU_SPECIFIC (dev);
+
+	if (arch_specific->consume)
+	        store_free (arch_specific->store);
+
+	_done_device (dev);
+}
+
+static PedDevice*
+gnu_new (const char* path)
+{
+	PedDevice*	dev;
+	GNUSpecific*	arch_specific;
+	error_t         ro_err, rw_err;
+	int             ispath;
+
+	PED_ASSERT (path != NULL, return NULL);
+
+	dev = _init_device (path);
+	if (!dev)
+	        return NULL;
+
+	arch_specific = GNU_SPECIFIC (dev);
+	arch_specific->consume = 1;
+
+ retry_open:
+	/* Try read-write. */
+	if (strchr (dev->path, '/') != NULL) {
+	        /* We set this to prevent having to use strchr more then once. */
+	        ispath = 1; 
+
+	        rw_err = store_open (dev->path, 0, NULL, &arch_specific->store);
+	} else { 
+	        rw_err = store_typed_open (dev->path, 0, NULL, &arch_specific->store);
+	}        
+
+	/* Try readonly. */
+	if (rw_err) {
+	  if (ispath) {
+	        ro_err = store_open (dev->path, STORE_READONLY, NULL,
+				 &arch_specific->store);
+	  } else {
+	        ro_err = store_typed_open (dev->path, STORE_READONLY, NULL,
+				       &arch_specific->store);
+	  }
+                 
+	if (ro_err) {
+	        if (ped_exception_throw (
+			        PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_RETRY_CANCEL,
+				_("Error opening %s: %s"),
+				dev->path, strerror (ro_err))
+					!= PED_EXCEPTION_RETRY) {
+				return NULL;
+			} else
+				goto retry_open;
+		} else {
+			ped_exception_throw (
+				PED_EXCEPTION_WARNING,
+				PED_EXCEPTION_OK,
+				_("Unable to open %s read-write (%s).  %s has "
+				  "been opened read-only."),
+				dev->path, strerror (rw_err), dev->path);
+			dev->read_only = 1;
+		}
+	} else {
+		dev->read_only = 0;
+	}
+
+	_flush_cache (dev);
+
+	if (!init_file (dev)) {
+		gnu_destroy(dev);
+		return NULL;
+	}
+
+	return dev;
+}
+
+PedDevice*
+ped_device_new_from_store (struct store *source)
+{
+        PedDevice*      dev;
+	GNUSpecific*    arch_specific;
+
+	PED_ASSERT (source != NULL, return NULL);
+
+	dev = _init_device (source->name ?: "(unknown)");
+	if (!dev)
+	        return NULL;
+
+	arch_specific = GNU_SPECIFIC (dev);
+	arch_specific->store = source;
+	arch_specific->consume = 0;
+
+	dev->read_only = source->flags & (STORE_READONLY|STORE_HARD_READONLY);
+
+	if (!init_file (dev)) {
+	        _done_device (dev);
+		return NULL;
+	}
+
+	return dev;
+}
+
+static int
+gnu_is_busy (PedDevice* dev)
+{
+	return 0;
+}
+
+static int
+gnu_open (PedDevice* dev)
+{
+        return 1;
+}
+
+static int
+gnu_refresh_open (PedDevice* dev)
+{
+	return 1;
+}
+
+static int
+gnu_close (PedDevice* dev)
+{
+	GNUSpecific*	arch_specific = GNU_SPECIFIC (dev);
+	
+	_flush_cache (dev);
+
+	if (dev->dirty && dev->type != PED_DEVICE_FILE) {
+		if (_kernel_reread_part_table (dev))
+			dev->dirty = 0;
+	}
+
+#if 0
+	if (dev->dirty && dev->boot_dirty && dev->type != PED_DEVICE_FILE) {
+		/* ouch! */
+		ped_exception_throw (
+			PED_EXCEPTION_WARNING,
+			PED_EXCEPTION_OK,
+			_("The partition table cannot be re-read.  This means "
+			  "you need to reboot before mounting any "
+			  "modified partitions.  You also need to reinstall "
+			  "your boot loader before you reboot (which may "
+			  "require mounting modified partitions).  It is "
+			  "impossible do both things!  So you'll need to "
+			  "boot off a rescue disk, and reinstall your boot "
+			  "loader from the rescue disk.  Read section 4 of "
+			  "the Parted User documentation for more "
+			  "information."));
+		return 1;
+	}
+
+	if (dev->dirty && dev->type != PED_DEVICE_FILE) {
+		ped_exception_throw (
+			PED_EXCEPTION_WARNING,
+			PED_EXCEPTION_IGNORE,
+			_("The partition table on %s cannot be re-read "
+			  "(%s).  This means the Hurd knows nothing about any "
+			  "modifications you made.  You should reboot your "
+			  "computer before doing anything with %s."),
+			dev->path, strerror (errno), dev->path);
+	}
+
+	if (dev->boot_dirty && dev->type != PED_DEVICE_FILE) {
+		ped_exception_throw (
+			PED_EXCEPTION_WARNING,
+			PED_EXCEPTION_OK,
+			_("You should reinstall your boot loader before "
+			  "rebooting.  Read section 4 of the Parted User "
+			  "documentation for more information."));
+	}
+#endif
+
+	return 1;
+}
+
+static int
+gnu_refresh_close (PedDevice* dev)
+{
+	_flush_cache (dev);
+	return 1;
+}
+
+static int
+gnu_read (const PedDevice* dev, void* user_buffer, PedSector device_start,
+          PedSector count)
+{
+	GNUSpecific*		arch_specific = GNU_SPECIFIC (dev);
+	error_t			err;
+	PedExceptionOption	ex_status;
+	size_t			start;
+	size_t			store_start_block;
+	/* In bytes.  This can be larger than COUNT when store pages are
+	   larger than PED_SECTOR_SIZE_DEFAULT.  */
+	size_t			store_read_length;
+	char			local_buffer[PED_SECTOR_SIZE_DEFAULT];
+	void *			store_read_buffer;
+	size_t			have_read;
+	size_t			read_offset;
+	size_t			device_read_length = count * PED_SECTOR_SIZE_DEFAULT;
+
+	start = device_start * PED_SECTOR_SIZE_DEFAULT;
+	if (PED_SECTOR_SIZE_DEFAULT != arch_specific->store->block_size) {
+		store_start_block = start / arch_specific->store->block_size;
+		store_read_length = (device_read_length
+				     + arch_specific->store->block_size - 1)
+				    / arch_specific->store->block_size;
+	} else {
+		store_start_block = device_start;
+		store_read_length = device_read_length;
+	}
+
+	read_offset = start
+		      - store_start_block * arch_specific->store->block_size;
+
+	if (store_read_length % arch_specific->store->block_size != 0)
+		store_read_length = store_read_length
+				    + arch_specific->store->block_size
+				    - store_read_length % arch_specific->store->block_size;
+
+retry:
+	have_read = 0;
+	while (1) {
+		size_t	did_read;
+		size_t	offset;
+
+		store_read_buffer = local_buffer;
+		did_read = sizeof (local_buffer);
+
+		err = store_read (arch_specific->store, store_start_block,
+				  store_read_length - have_read,
+			  	  &store_read_buffer, &did_read);
+		if (err) {
+			ex_status = ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_RETRY_IGNORE_CANCEL,
+				_("%s during read on %s"),
+				strerror (err),
+				dev->path);
+
+			switch (ex_status) {
+				case PED_EXCEPTION_IGNORE:
+					return 1;
+
+				case PED_EXCEPTION_RETRY:
+					goto retry;
+
+				case PED_EXCEPTION_UNHANDLED:
+					ped_exception_catch ();
+				case PED_EXCEPTION_CANCEL:
+					return 0;
+			}
+		}
+
+		memcpy (user_buffer + have_read - read_offset,
+			store_read_buffer
+			+ (have_read >= read_offset
+				? 0 : read_offset - have_read),
+			have_read + did_read > device_read_length + read_offset
+				? device_read_length + read_offset - have_read
+				: did_read);
+
+		if (store_read_buffer != local_buffer)
+			vm_deallocate (mach_task_self (),
+				       (long) store_read_buffer, did_read);
+
+		have_read += did_read;
+		store_start_block += did_read
+		       			/ arch_specific->store->block_size;
+
+		if (have_read >= device_read_length)
+			break;
+	}
+
+	return 1;
+}
+
+static int
+gnu_write (PedDevice* dev, const void* buffer, PedSector start, PedSector count)
+{
+	GNUSpecific*		arch_specific = GNU_SPECIFIC (dev);
+	error_t			err;
+	PedExceptionOption	ex_status;
+	void *			temp;
+	char			local_buffer[PED_SECTOR_SIZE_DEFAULT];
+	size_t			did_read;
+	size_t			did_write;
+
+	/* Map a disk sector to a store sector.  */
+	#define PED_TO_STORE(store, sector) (((sector) * PED_SECTOR_SIZE_DEFAULT) \
+				      	/ (store)->block_size)
+
+	if (dev->read_only) {
+		if (ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_IGNORE_CANCEL,
+			_("Can't write to %s, because it is opened read-only."),
+			dev->path)
+				!= PED_EXCEPTION_IGNORE)
+			return 0;
+		else
+			return 1;
+	}
+
+#ifdef READ_ONLY
+	printf ("ped_device_write (\"%s\", %p, %d, %d)\n",
+		dev->path, buffer, (int) start, (int) count);
+#else
+	dev->dirty = 1;
+
+	/* If the first ``device'' block (PedSector) is not aligned on a
+	   store block, then we need to fetch the old block, copy in the
+	   overlaping area and finally, write the modified data out to the
+	   store.  */
+	if ((PED_SECTOR_SIZE_DEFAULT * start) % arch_specific->store->block_size
+	    != 0) {
+		size_t 		write_offset;
+		size_t 		flushing;
+
+doggy_first_block_read:
+		/* We do not bother looping as we are only reading a
+		   single block.  */
+		temp = local_buffer;
+		did_read = sizeof (local_buffer);
+		err = store_read (arch_specific->store,
+				  PED_TO_STORE (arch_specific->store, start),
+				  arch_specific->store->block_size, &temp,
+				  &did_read);
+		if (! err && did_read != arch_specific->store->block_size)
+			err = EIO;
+
+		if (err) {
+			ex_status = ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_RETRY_IGNORE_CANCEL,
+				_("%s during read on %s"),
+				strerror (err), dev->path);
+
+			switch (ex_status) {
+				case PED_EXCEPTION_IGNORE:
+					break;
+
+				case PED_EXCEPTION_RETRY:
+					goto doggy_first_block_read;
+
+				case PED_EXCEPTION_UNHANDLED:
+					ped_exception_catch ();
+				case PED_EXCEPTION_CANCEL:
+					return 0;
+			}
+		}
+
+		write_offset = (start * PED_SECTOR_SIZE_DEFAULT)
+			       % arch_specific->store->block_size;
+		flushing = arch_specific->store->block_size - write_offset;
+		if (flushing > count * PED_SECTOR_SIZE_DEFAULT)
+			flushing = count * PED_SECTOR_SIZE_DEFAULT;
+
+		memcpy (temp + write_offset, buffer, flushing);
+
+doggy_first_block_write:
+		err = store_write (arch_specific->store,
+		    		   PED_TO_STORE (arch_specific->store, start),
+				   temp, arch_specific->store->block_size, 
+				   &did_write);
+		if (! err && did_write != arch_specific->store->block_size)
+			err = EIO;
+
+		if (err) {
+			ex_status = ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_RETRY_IGNORE_CANCEL,
+				_("%s during write on %s"),
+				strerror (err), dev->path);
+
+			switch (ex_status) {
+				case PED_EXCEPTION_IGNORE:
+					break;
+
+				case PED_EXCEPTION_RETRY:
+					goto doggy_first_block_write;
+
+				case PED_EXCEPTION_UNHANDLED:
+					ped_exception_catch ();
+				case PED_EXCEPTION_CANCEL:
+					if (temp != local_buffer)
+						vm_deallocate (
+							mach_task_self (),
+							(long) temp,
+							did_read);
+					return 0;
+			}
+		}
+
+		start += flushing / PED_SECTOR_SIZE_DEFAULT;
+		count -= flushing / PED_SECTOR_SIZE_DEFAULT;
+		buffer += write_offset;
+
+		if (temp != local_buffer)
+			vm_deallocate (mach_task_self (), (long) temp,
+				       did_read);
+
+		if (count == 0)
+			return 1;
+	}
+
+	while (count > 0
+	   && count >= arch_specific->store->block_size / PED_SECTOR_SIZE_DEFAULT) {
+		err = store_write (arch_specific->store,
+				   PED_TO_STORE (arch_specific->store, start),
+				   buffer, count * PED_SECTOR_SIZE_DEFAULT,
+				   &did_write);
+
+		if (err) {
+			ex_status = ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_RETRY_IGNORE_CANCEL,
+				_("%s during write on %s"),
+				strerror (err), dev->path);
+
+			switch (ex_status) {
+				case PED_EXCEPTION_IGNORE:
+					break;
+
+				case PED_EXCEPTION_RETRY:
+					continue;
+
+				case PED_EXCEPTION_UNHANDLED:
+					ped_exception_catch ();
+				case PED_EXCEPTION_CANCEL:
+					return 0;
+			}
+		}
+
+		start += did_write / PED_SECTOR_SIZE_DEFAULT;
+		count -= did_write / PED_SECTOR_SIZE_DEFAULT;
+		buffer += did_write;
+	}
+
+	if (count == 0)
+		return 1;
+
+	/* We are now left with (strictly) less then a store block to write
+	   to disk.  Thus, we read the block, overlay the buffer and flush.  */
+	PED_ASSERT (count * PED_SECTOR_SIZE_DEFAULT
+			< arch_specific->store->block_size, return 0);
+
+doggy_last_block_read:
+	/* We do not bother looping as we are only reading a
+	   single block.  */
+	temp = local_buffer;
+	did_read = sizeof (local_buffer);
+	err = store_read (arch_specific->store,
+			  PED_TO_STORE (arch_specific->store, start),
+			  arch_specific->store->block_size, &temp,
+			  &did_read);
+	if (! err && did_read != arch_specific->store->block_size)
+		err = EIO;
+
+	if (err) {
+		ex_status = ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_RETRY_IGNORE_CANCEL,
+			_("%s during read on %s"),
+			strerror (err), dev->path);
+
+		switch (ex_status) {
+			case PED_EXCEPTION_IGNORE:
+				break;
+
+			case PED_EXCEPTION_RETRY:
+				goto doggy_last_block_read;
+
+			case PED_EXCEPTION_UNHANDLED:
+				ped_exception_catch ();
+			case PED_EXCEPTION_CANCEL:
+				return 0;
+		}
+	}
+
+	memcpy (temp, buffer, count * PED_SECTOR_SIZE_DEFAULT);
+
+doggy_last_block_write:
+	err = store_write (arch_specific->store,
+	    		   PED_TO_STORE (arch_specific->store, start),
+			   temp, arch_specific->store->block_size, 
+			   &did_write);
+	if (! err && did_write != arch_specific->store->block_size)
+		err = EIO;
+
+	if (err) {
+		ex_status = ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_RETRY_IGNORE_CANCEL,
+			_("%s during write on %s"),
+			strerror (err), dev->path);
+
+		switch (ex_status) {
+			case PED_EXCEPTION_IGNORE:
+				break;
+
+			case PED_EXCEPTION_RETRY:
+				goto doggy_last_block_write;
+
+			case PED_EXCEPTION_UNHANDLED:
+				ped_exception_catch ();
+			case PED_EXCEPTION_CANCEL:
+				if (temp != local_buffer)
+					vm_deallocate (mach_task_self (),
+					       	       (long) temp,
+					       	       did_read);
+				return 0;
+		}
+	}
+
+#endif /* !READ_ONLY */
+	return 1;
+}
+
+/* TODO: returns the number of sectors that are ok.
+ */
+static PedSector
+gnu_check (PedDevice* dev, void* buffer, PedSector start, PedSector count)
+{
+	int			status;
+	int			done = 0;
+
+	PED_ASSERT (dev != NULL, return 0);
+	PED_ASSERT (!dev->external_mode, return 0);
+	PED_ASSERT (buffer != NULL, return 0);
+
+	return count;
+}
+
+static int
+gnu_sync (PedDevice* dev)
+{
+	GNUSpecific*		arch_specific;
+	error_t			err;
+	PedExceptionOption	ex_status;
+	static char *last_failure = NULL;
+
+	PED_ASSERT (dev != NULL, return 0);
+	PED_ASSERT (!dev->external_mode, return 0);
+	
+	arch_specific = GNU_SPECIFIC (dev);
+
+	if (dev->read_only || ! dev->dirty)
+		return 1;
+
+	while (1) {
+		err = file_sync (arch_specific->store->source, 1, 0);
+		if (! err || err == EOPNOTSUPP || err == EPERM
+		    || (last_failure && strcmp (last_failure, dev->path) == 0))
+		  break;
+
+		ex_status = ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_RETRY_IGNORE_CANCEL,
+			_("%s trying to sync %s to disk"),
+			strerror (errno), dev->path);
+
+		switch (ex_status) {
+			case PED_EXCEPTION_IGNORE:
+				if (last_failure)
+					ped_free (last_failure);
+				last_failure = strdup (dev->path);
+				return 1;
+
+			case PED_EXCEPTION_RETRY:
+				break;
+
+			case PED_EXCEPTION_UNHANDLED:
+				ped_exception_catch ();
+			case PED_EXCEPTION_CANCEL:
+				return 0;
+		}
+	} 
+
+	return 1;
+}
+
+static int
+probe_standard_devices ()
+{
+	_ped_device_probe ("/dev/sd0");
+	_ped_device_probe ("/dev/sd1");
+	_ped_device_probe ("/dev/sd2");
+	_ped_device_probe ("/dev/sd3");
+	_ped_device_probe ("/dev/sd4");
+	_ped_device_probe ("/dev/sd5");
+
+	_ped_device_probe ("/dev/hd0");
+	_ped_device_probe ("/dev/hd1");
+	_ped_device_probe ("/dev/hd2");
+	_ped_device_probe ("/dev/hd3");
+	_ped_device_probe ("/dev/hd4");
+	_ped_device_probe ("/dev/hd5");
+	_ped_device_probe ("/dev/hd6");
+	_ped_device_probe ("/dev/hd7");
+
+	return 1;
+}
+
+static void
+gnu_probe_all ()
+{
+	probe_standard_devices ();
+}
+
+static char*
+gnu_partition_get_path (const PedPartition* part)
+{
+	const char*	dev_path = part->disk->dev->path;
+	int		result_len = strlen (dev_path) + 16;
+	char*		result;
+
+	result = (char*) ped_malloc (result_len);
+	if (!result)
+		return NULL;
+	snprintf (result, result_len, "%s%d", dev_path, part->num);
+	return result;
+}
+
+static int
+gnu_partition_is_busy (const PedPartition* part)
+{
+	return 0;
+}
+
+static int
+gnu_disk_commit (PedDisk* disk)
+{
+	return 1;
+}
+
+static PedDeviceArchOps gnu_dev_ops = {
+	_new:		gnu_new,
+	destroy:	gnu_destroy,
+	is_busy:	gnu_is_busy,
+	open:		gnu_open,
+	refresh_open:	gnu_refresh_open,
+	close:		gnu_close,
+	refresh_close:	gnu_refresh_close,
+	read:		gnu_read,
+	write:		gnu_write,
+	check:		gnu_check,
+	sync:		gnu_sync,
+	sync_fast:	gnu_sync,
+	probe_all:	gnu_probe_all
+};
+
+static PedDiskArchOps gnu_disk_ops = {
+	partition_get_path:	gnu_partition_get_path,
+	partition_is_busy:	gnu_partition_is_busy,
+	disk_commit:		gnu_disk_commit
+};
+
+PedArchitecture ped_gnu_arch = {
+	dev_ops:	&gnu_dev_ops,
+	disk_ops:	&gnu_disk_ops
+};
+
diff --git a/parted-1.8.7/libparted/arch/linux.c b/parted-1.8.7/libparted/arch/linux.c
new file mode 100644
index 0000000..4bd49cd
--- /dev/null
+++ b/parted-1.8.7/libparted/arch/linux.c
@@ -0,0 +1,2448 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 1999 - 2005, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#define PROC_DEVICES_BUFSIZ 16384
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+#include <parted/linux.h>
+
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <libgen.h>
+#include <stdio.h>
+#include <syscall.h>
+#include <unistd.h>
+#include <dirent.h>
+#include <sys/ioctl.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/utsname.h>        /* for uname() */
+#include <scsi/scsi.h>
+#ifdef ENABLE_DEVICE_MAPPER
+#include <libdevmapper.h>
+#endif
+
+#include "blkpg.h"
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
+
+#ifndef __NR__llseek
+#define __NR__llseek 140
+#endif
+
+#ifndef SCSI_IOCTL_SEND_COMMAND
+#define SCSI_IOCTL_SEND_COMMAND 1
+#endif
+
+/* from <linux/hdreg.h> */
+#define HDIO_GETGEO             0x0301  /* get device geometry */
+#define HDIO_GET_IDENTITY       0x030d  /* get IDE identification info */
+
+/* O_DIRECT mode not supported in Sapphire */
+#undef O_DIRECT
+#if defined(O_DIRECT) && (!defined(__s390__) || !defined(__s390x__))
+#define RD_MODE (O_RDONLY | O_DIRECT)
+#define WR_MODE (O_WRONLY | O_DIRECT)
+#define RW_MODE (O_RDWR | O_DIRECT)
+#else
+#define RD_MODE (O_RDONLY)
+#define WR_MODE (O_WRONLY)
+#define RW_MODE (O_RDWR)
+#endif
+
+struct hd_geometry {
+        unsigned char heads;
+        unsigned char sectors;
+        unsigned short cylinders;
+        unsigned long start;
+};
+
+struct ata7_sectinfo {
+        int valid1:1;
+        int valid2:1;
+        int rsv:26;
+        int multiplier:4;
+};
+
+/* structure returned by HDIO_GET_IDENTITY, as per ANSI ATA2 rev.2f spec */
+struct hd_driveid {
+        unsigned short  config;         /* lots of obsolete bit flags */
+        unsigned short  cyls;           /* "physical" cyls */
+        unsigned short  reserved2;      /* reserved (word 2) */
+        unsigned short  heads;          /* "physical" heads */
+        unsigned short  track_bytes;    /* unformatted bytes per track */
+        unsigned short  sector_bytes;   /* unformatted bytes per sector */
+        unsigned short  sectors;        /* "physical" sectors per track */
+        unsigned short  vendor0;        /* vendor unique */
+        unsigned short  vendor1;        /* vendor unique */
+        unsigned short  vendor2;        /* vendor unique */
+        unsigned char   serial_no[20];  /* 0 = not_specified */
+        unsigned short  buf_type;
+        unsigned short  buf_size;       /* 512 byte increments;
+                                                         0 = not_specified */
+        unsigned short  ecc_bytes;      /* for r/w long cmds;
+                                                         0 = not_specified */
+        unsigned char   fw_rev[8];      /* 0 = not_specified */
+        char            model[40];      /* 0 = not_specified */
+        unsigned char   max_multsect;   /* 0=not_implemented */
+        unsigned char   vendor3;        /* vendor unique */
+        unsigned short  dword_io;       /* 0=not_implemented; 1=implemented */
+        unsigned char   vendor4;        /* vendor unique */
+        unsigned char   capability;     /* bits 0:DMA 1:LBA 2:IORDYsw
+                                                3:IORDYsup*/
+        unsigned short  reserved50;     /* reserved (word 50) */
+        unsigned char   vendor5;        /* vendor unique */
+        unsigned char   tPIO;           /* 0=slow, 1=medium, 2=fast */
+        unsigned char   vendor6;        /* vendor unique */
+        unsigned char   tDMA;           /* 0=slow, 1=medium, 2=fast */
+        unsigned short  field_valid;    /* bits 0:cur_ok 1:eide_ok */
+        unsigned short  cur_cyls;       /* logical cylinders */
+        unsigned short  cur_heads;      /* logical heads */
+        unsigned short  cur_sectors;    /* logical sectors per track */
+        unsigned short  cur_capacity0;  /* logical total sectors on drive */
+        unsigned short  cur_capacity1;  /*  (2 words, misaligned int)     */
+        unsigned char   multsect;       /* current multiple sector count */
+        unsigned char   multsect_valid; /* when (bit0==1) multsect is ok */
+        unsigned int    lba_capacity;   /* total number of sectors */
+        unsigned short  dma_1word;      /* single-word dma info */
+        unsigned short  dma_mword;      /* multiple-word dma info */
+        unsigned short  eide_pio_modes; /* bits 0:mode3 1:mode4 */
+        unsigned short  eide_dma_min;   /* min mword dma cycle time (ns) */
+        unsigned short  eide_dma_time;  /* recommended mword dma cycle
+                                           time (ns) */
+        unsigned short  eide_pio;       /* min cycle time (ns), no IORDY  */
+        unsigned short  eide_pio_iordy; /* min cycle time (ns), with IORDY */
+        unsigned short  words69_70[2];  /* reserved words 69-70 */
+        /* HDIO_GET_IDENTITY currently returns only words 0 through 70 */
+        unsigned short  words71_74[4];  /* reserved words 71-74 */
+        unsigned short  queue_depth;    /*  */
+        unsigned short  words76_79[4];  /* reserved words 76-79 */
+        unsigned short  major_rev_num;  /*  */
+        unsigned short  minor_rev_num;  /*  */
+        unsigned short  command_set_1;  /* bits 0:Smart 1:Security 2:Removable
+                                                3:PM */
+        unsigned short  command_set_2;  /* bits 14:Smart Enabled 13:0 zero */
+        unsigned short  cfsse;          /* command set-feature supported
+                                           extensions */
+        unsigned short  cfs_enable_1;   /* command set-feature enabled */
+        unsigned short  cfs_enable_2;   /* command set-feature enabled */
+        unsigned short  csf_default;    /* command set-feature default */
+        unsigned short  dma_ultra;      /*  */
+        unsigned short  word89;         /* reserved (word 89) */
+        unsigned short  word90;         /* reserved (word 90) */
+        unsigned short  CurAPMvalues;   /* current APM values */
+        unsigned short  word92;         /* reserved (word 92) */
+        unsigned short  hw_config;      /* hardware config */
+        unsigned short  words94_105[12];/* reserved words 94-105 */
+        struct ata7_sectinfo ata7_sectinfo; /* ATAPI/ATA7 physical and logical
+                                               sector size */
+        unsigned short  words107_116[10];/* reserved words 107-116 */
+        unsigned int    logical_sectsize;/* ATAPI/ATA7 logical sector size */
+        unsigned short  words119_125[7];/* reserved words 119-125 */
+        unsigned short  last_lun;       /* reserved (word 126) */
+        unsigned short  word127;        /* reserved (word 127) */
+        unsigned short  dlf;            /* device lock function
+                                         * 15:9 reserved
+                                         * 8    security level 1:max 0:high
+                                         * 7:6  reserved
+                                         * 5    enhanced erase
+                                         * 4    expire
+                                         * 3    frozen
+                                         * 2    locked
+                                         * 1    en/disabled
+                                         * 0    capability
+                                         */
+        unsigned short  csfo;           /* current set features options
+                                         * 15:4 reserved
+                                         * 3    auto reassign
+                                         * 2    reverting
+                                         * 1    read-look-ahead
+                                         * 0    write cache
+                                         */
+        unsigned short  words130_155[26];/* reserved vendor words 130-155 */
+        unsigned short  word156;
+        unsigned short  words157_159[3]; /* reserved vendor words 157-159 */
+        unsigned short  words160_255[95];/* reserved words 160-255 */
+};
+
+/* from <linux/fs.h> */
+#define BLKRRPART  _IO(0x12,95) /* re-read partition table */
+#define BLKGETSIZE _IO(0x12,96) /* return device size */
+#define BLKFLSBUF  _IO(0x12,97) /* flush buffer cache */
+#define BLKSSZGET  _IO(0x12,104) /* get block device sector size */
+#define BLKGETLASTSECT  _IO(0x12,108) /* get last sector of block device */
+#define BLKSETLASTSECT  _IO(0x12,109) /* set last sector of block device */
+
+/* return device size in bytes (u64 *arg) */
+#define BLKGETSIZE64 _IOR(0x12,114,size_t)
+
+struct blkdev_ioctl_param {
+        unsigned int block;
+        size_t content_length;
+        char * block_contents;
+};
+
+/* from <linux/major.h> */
+#define IDE0_MAJOR              3
+#define IDE1_MAJOR              22
+#define IDE2_MAJOR              33
+#define IDE3_MAJOR              34
+#define IDE4_MAJOR              56
+#define IDE5_MAJOR              57
+#define SCSI_CDROM_MAJOR        11
+#define SCSI_DISK0_MAJOR        8
+#define SCSI_DISK1_MAJOR        65
+#define SCSI_DISK2_MAJOR        66
+#define SCSI_DISK3_MAJOR        67
+#define SCSI_DISK4_MAJOR        68
+#define SCSI_DISK5_MAJOR        69
+#define SCSI_DISK6_MAJOR        70
+#define SCSI_DISK7_MAJOR        71
+#define COMPAQ_SMART2_MAJOR     72
+#define COMPAQ_SMART2_MAJOR1    73
+#define COMPAQ_SMART2_MAJOR2    74
+#define COMPAQ_SMART2_MAJOR3    75
+#define COMPAQ_SMART2_MAJOR4    76
+#define COMPAQ_SMART2_MAJOR5    77
+#define COMPAQ_SMART2_MAJOR6    78
+#define COMPAQ_SMART2_MAJOR7    79
+#define COMPAQ_SMART_MAJOR      104
+#define COMPAQ_SMART_MAJOR1     105
+#define COMPAQ_SMART_MAJOR2     106
+#define COMPAQ_SMART_MAJOR3     107
+#define COMPAQ_SMART_MAJOR4     108
+#define COMPAQ_SMART_MAJOR5     109
+#define COMPAQ_SMART_MAJOR6     110
+#define COMPAQ_SMART_MAJOR7     111
+#define DAC960_MAJOR            48
+#define ATARAID_MAJOR           114
+#define I2O_MAJOR1              80
+#define I2O_MAJOR2              81
+#define I2O_MAJOR3              82
+#define I2O_MAJOR4              83
+#define I2O_MAJOR5              84
+#define I2O_MAJOR6              85
+#define I2O_MAJOR7              86
+#define I2O_MAJOR8              87
+#define UBD_MAJOR               98
+#define DASD_MAJOR              94
+#define VIODASD_MAJOR           112
+#define SX8_MAJOR1              160
+#define SX8_MAJOR2              161
+
+#define SCSI_BLK_MAJOR(M) (                                             \
+                (M) == SCSI_DISK0_MAJOR                                 \
+                || (M) == SCSI_CDROM_MAJOR                              \
+                || ((M) >= SCSI_DISK1_MAJOR && (M) <= SCSI_DISK7_MAJOR))
+
+static char* _device_get_part_path (PedDevice* dev, int num);
+static int _partition_is_mounted_by_path (const char* path);
+
+static int
+_is_ide_major (int major)
+{
+        switch (major) {
+                case IDE0_MAJOR:
+                case IDE1_MAJOR:
+                case IDE2_MAJOR:
+                case IDE3_MAJOR:
+                case IDE4_MAJOR:
+                case IDE5_MAJOR:
+                        return 1;
+
+                default:
+                        return 0;
+        }
+}
+
+static int
+_is_cpqarray_major (int major)
+{
+        return ((COMPAQ_SMART2_MAJOR <= major && major <= COMPAQ_SMART2_MAJOR7)
+             || (COMPAQ_SMART_MAJOR <= major && major <= COMPAQ_SMART_MAJOR7));
+}
+
+static int
+_is_i2o_major (int major)
+{
+        return (I2O_MAJOR1 <= major && major <= I2O_MAJOR8);
+}
+
+static int
+_is_sx8_major (int major)
+{
+        return (SX8_MAJOR1 <= major && major <= SX8_MAJOR2);
+}
+
+#ifdef ENABLE_DEVICE_MAPPER
+static int
+readFD (int fd, char **buf)
+{
+        char* p;
+        size_t size = PROC_DEVICES_BUFSIZ;
+        int s, filesize = 0;
+
+        *buf = malloc (size * sizeof (char));
+        if (*buf == 0) {
+                return -1;
+        }
+
+        do {
+                p = &(*buf) [filesize];
+                s = read (fd, p, PROC_DEVICES_BUFSIZ);
+                /* exit if there is an error or EOF is reached */
+                if (s <= 0)
+                        break;
+                filesize += s;
+                size += s;
+                *buf = realloc (*buf, size);
+        } while (1);
+
+        if (filesize == 0 && s < 0) {
+                free (*buf);
+                *buf = NULL;
+                return -1;
+        } else {
+                /* there is always some excess memory left unused */
+                *buf = realloc (*buf, filesize+1);
+                (*buf)[filesize] = '\0';
+        }
+
+        return filesize;
+}
+
+static int
+_is_dm_major (int major)
+{
+        int fd;
+        char* buf = NULL;
+        char* line;
+        char* end;
+        int bd = 0;
+        char c;
+
+        fd = open ("/proc/devices", O_RDONLY);
+        if (fd < 0)
+                return 0;
+
+        if (readFD(fd, &buf) < 0) {
+                close(fd);
+                return 0;
+        }
+
+        line = buf;
+        end = strchr(line, '\n');
+        while (end) {
+                char *name;
+                int maj;
+
+                c = *end;
+                *end = '\0';
+
+                if (!bd) {
+                        if (!strncmp(line, "Block devices:", 14))
+                                bd = 1;
+                        goto next;
+                }
+
+                name = strrchr(line, ' ');
+                if (!name || strcmp(name+1, "device-mapper"))
+                        goto next;
+
+                maj = strtol(line, &name, 10);
+                if (maj == major) {
+                        free(buf);
+                        close(fd);
+                        return 1;
+                }
+
+next:
+                *end = c;
+                line = end+1;
+                end = strchr(line, '\n');
+        }
+        free(buf);
+        close(fd);
+        return 0;
+}
+#endif
+
+static int
+_device_stat (PedDevice* dev, struct stat * dev_stat)
+{
+        PED_ASSERT (dev != NULL, return 0);
+        PED_ASSERT (!dev->external_mode, return 0);
+
+        while (1) {
+                if (!stat (dev->path, dev_stat)) {
+                        return 1;
+                } else {
+                        if (ped_exception_throw (
+                                PED_EXCEPTION_ERROR,
+                                PED_EXCEPTION_RETRY_CANCEL,
+                                _("Could not stat device %s - %s."),
+                                dev->path,
+                                strerror (errno))
+                                        != PED_EXCEPTION_RETRY)
+                                return 0;
+                }
+        }
+}
+
+static int
+_device_probe_type (PedDevice* dev)
+{
+        struct stat             dev_stat;
+        int                     dev_major;
+        int                     dev_minor;
+
+        if (!_device_stat (dev, &dev_stat))
+                return 0;
+
+        if (!S_ISBLK(dev_stat.st_mode)) {
+                dev->type = PED_DEVICE_FILE;
+                return 1;
+        }
+
+        dev_major = major (dev_stat.st_rdev);
+        dev_minor = minor (dev_stat.st_rdev);
+
+        if (SCSI_BLK_MAJOR (dev_major) && (dev_minor % 0x10 == 0)) {
+                dev->type = PED_DEVICE_SCSI;
+        } else if (_is_ide_major (dev_major) && (dev_minor % 0x40 == 0)) {
+                dev->type = PED_DEVICE_IDE;
+        } else if (dev_major == DAC960_MAJOR && (dev_minor % 0x8 == 0)) {
+                dev->type = PED_DEVICE_DAC960;
+        } else if (dev_major == ATARAID_MAJOR && (dev_minor % 0x10 == 0)) {
+                dev->type = PED_DEVICE_ATARAID;
+        } else if (dev_major == DASD_MAJOR && (dev_minor % 0x4 == 0)) {
+                dev->type = PED_DEVICE_DASD;
+        } else if (dev_major == VIODASD_MAJOR && (dev_minor % 0x8 == 0)) {
+                dev->type = PED_DEVICE_VIODASD;
+        } else if (_is_sx8_major(dev_major) && (dev_minor % 0x20 == 0)) {
+                dev->type = PED_DEVICE_SX8;
+        } else if (_is_i2o_major (dev_major) && (dev_minor % 0x10 == 0)) {
+                dev->type = PED_DEVICE_I2O;
+        } else if (_is_cpqarray_major (dev_major) && (dev_minor % 0x10 == 0)) {
+                dev->type = PED_DEVICE_CPQARRAY;
+        } else if (dev_major == UBD_MAJOR && (dev_minor % 0x10 == 0)) {
+                dev->type = PED_DEVICE_UBD;
+#ifdef ENABLE_DEVICE_MAPPER
+        } else if (_is_dm_major(dev_major)) {
+                dev->type = PED_DEVICE_DM;
+#endif
+        } else {
+                dev->type = PED_DEVICE_UNKNOWN;
+        }
+
+        return 1;
+}
+
+static int
+_get_linux_version ()
+{
+        static int kver = -1;
+
+        struct utsname uts;
+        int major;
+        int minor;
+        int teeny;
+
+        if (kver != -1)
+                return kver;
+
+        if (uname (&uts))
+                return kver = 0;
+        if (sscanf (uts.release, "%u.%u.%u", &major, &minor, &teeny) != 3)
+                return kver = 0;
+
+        return kver = KERNEL_VERSION (major, minor, teeny);
+}
+
+static int
+_have_devfs ()
+{
+        static int have_devfs = -1;
+        struct stat sb;
+
+        if (have_devfs != -1)
+                return have_devfs;
+
+        /* the presence of /dev/.devfsd implies that DevFS is active */
+        if (stat("/dev/.devfsd", &sb) < 0)
+                return have_devfs = 0;
+
+        return have_devfs = S_ISCHR(sb.st_mode) ? 1 : 0;
+}
+
+static void 
+_device_set_sector_size (PedDevice* dev)
+{
+        LinuxSpecific*  arch_specific = LINUX_SPECIFIC (dev);
+        int sector_size;
+        
+        dev->sector_size = PED_SECTOR_SIZE_DEFAULT;
+        dev->phys_sector_size = PED_SECTOR_SIZE_DEFAULT;
+
+        PED_ASSERT (dev->open_count, return);
+
+        if (_get_linux_version() < KERNEL_VERSION (2,3,0)) {
+                dev->sector_size = PED_SECTOR_SIZE_DEFAULT;
+                return;
+        }
+        
+        if (ioctl (arch_specific->fd, BLKSSZGET, &sector_size)) {
+                ped_exception_throw (
+                        PED_EXCEPTION_WARNING,
+                        PED_EXCEPTION_OK,
+                        _("Could not determine sector size for %s: %s.\n"
+                          "Using the default sector size (%lld)."),
+                        dev->path, strerror (errno), PED_SECTOR_SIZE_DEFAULT);
+        } else {
+                dev->sector_size = (long long)sector_size;
+        }
+
+        /* Return PED_SECTOR_SIZE_DEFAULT for DASDs. */
+        if (dev->type == PED_DEVICE_DASD) {
+                dev->sector_size = PED_SECTOR_SIZE_DEFAULT;
+        }
+
+        if (dev->sector_size != PED_SECTOR_SIZE_DEFAULT) {
+                ped_exception_throw (
+                        PED_EXCEPTION_WARNING,
+                        PED_EXCEPTION_OK,
+                        _("Device %s has a logical sector size of %lld.  Not "
+                          "all parts of GNU Parted support this at the moment, "
+                          "and the working code is HIGHLY EXPERIMENTAL.\n"),
+                        dev->path, dev->sector_size);
+        }
+}
+
+static int
+_kernel_has_blkgetsize64(void)
+{
+        int version = _get_linux_version();
+
+        if (version >= KERNEL_VERSION (2,5,4)) return 1;
+        if (version <  KERNEL_VERSION (2,5,0) &&
+            version >= KERNEL_VERSION (2,4,18)) return 1;
+        return 0;
+}
+
+/* TODO: do a binary search if BLKGETSIZE doesn't work?! */
+static PedSector
+_device_get_length (PedDevice* dev)
+{
+        unsigned long           size;
+        LinuxSpecific*          arch_specific = LINUX_SPECIFIC (dev);
+        uint64_t bytes=0;
+
+
+        PED_ASSERT (dev->open_count > 0, return 0);
+        PED_ASSERT (dev->sector_size % PED_SECTOR_SIZE_DEFAULT == 0, return 0);
+
+        if (_kernel_has_blkgetsize64()) {
+                if (ioctl(arch_specific->fd, BLKGETSIZE64, &bytes) == 0) {
+                        return bytes / dev->sector_size;
+                }
+        }
+
+        if (ioctl (arch_specific->fd, BLKGETSIZE, &size)) {
+                ped_exception_throw (
+                        PED_EXCEPTION_BUG,
+                        PED_EXCEPTION_CANCEL,
+                        _("Unable to determine the size of %s (%s)."),
+                        dev->path,
+                        strerror (errno));
+                return 0;
+        }
+
+        return size;
+}
+
+static int
+_device_probe_geometry (PedDevice* dev)
+{
+        LinuxSpecific*          arch_specific = LINUX_SPECIFIC (dev);
+        struct stat             dev_stat;
+        struct hd_geometry      geometry;
+
+        if (!_device_stat (dev, &dev_stat))
+                return 0;
+        PED_ASSERT (S_ISBLK (dev_stat.st_mode), return 0);
+
+        _device_set_sector_size (dev);
+        
+        dev->length = _device_get_length (dev);
+        if (!dev->length)
+                return 0;
+
+        /* The GETGEO ioctl is no longer useful (as of linux 2.6.x).  We could
+         * still use it in 2.4.x, but this is contentious.  Perhaps we should
+         * move to EDD. */
+        dev->bios_geom.sectors = 63;
+        dev->bios_geom.heads = 255;
+        dev->bios_geom.cylinders
+                = dev->length / (63 * 255);
+
+        /* FIXME: what should we put here?  (TODO: discuss on linux-kernel) */
+        if (!ioctl (arch_specific->fd, HDIO_GETGEO, &geometry)
+                        && geometry.sectors && geometry.heads) {
+                dev->hw_geom.sectors = geometry.sectors;
+                dev->hw_geom.heads = geometry.heads;
+                dev->hw_geom.cylinders
+                        = dev->length / (dev->hw_geom.heads
+                                         * dev->hw_geom.sectors);
+        } else {
+                dev->hw_geom = dev->bios_geom;
+        }
+
+        return 1;
+}
+
+static char*
+strip_name(char* str)
+{
+        int     i;
+        int     end = 0;
+
+        for (i = 0; str[i] != 0; i++) {
+                if (!isspace (str[i])
+                    || (isspace (str[i]) && !isspace (str[i+1]) && str[i+1])) {
+                        str [end] = str[i];
+                        end++;
+                }
+        }
+        str[end] = 0;
+        return strdup (str);
+}
+
+static int
+init_ide (PedDevice* dev)
+{
+        LinuxSpecific*          arch_specific = LINUX_SPECIFIC (dev);
+        struct stat             dev_stat;
+        int                     dev_major;
+        struct hd_driveid       hdi;
+        PedExceptionOption      ex_status;
+        char                    hdi_buf[41];
+        int                     sector_multiplier = 0;
+        
+        if (!_device_stat (dev, &dev_stat))
+                goto error;
+
+        dev_major = major (dev_stat.st_rdev);
+
+        if (!ped_device_open (dev))
+                goto error;
+
+        if (ioctl (arch_specific->fd, HDIO_GET_IDENTITY, &hdi)) {
+                ex_status = ped_exception_throw (
+                                PED_EXCEPTION_WARNING,
+                                PED_EXCEPTION_IGNORE_CANCEL,
+                                _("Could not get identity of device %s - %s"),
+                                dev->path, strerror (errno));
+                switch (ex_status) {
+                        case PED_EXCEPTION_CANCEL:
+                                goto error_close_dev;
+
+                        case PED_EXCEPTION_UNHANDLED:
+                                ped_exception_catch ();
+                        case PED_EXCEPTION_IGNORE:
+                                dev->model = strdup(_("Generic IDE"));
+                                break;
+                        default:
+                                PED_ASSERT (0, (void) 0);
+                                break;
+                }
+        } else {
+                /* hdi.model is not guaranteed to be NULL terminated */
+                memcpy (hdi_buf, hdi.model, 40);
+                hdi_buf[40] = '\0';
+                dev->model = strip_name (hdi_buf);
+                
+                if (!hdi.ata7_sectinfo.valid1 && hdi.ata7_sectinfo.valid2)
+                        sector_multiplier = hdi.ata7_sectinfo.multiplier;
+                else
+                        sector_multiplier = 1;
+                        
+                if (sector_multiplier != 1) {
+                        ex_status = ped_exception_throw (
+                                PED_EXCEPTION_WARNING,
+                                PED_EXCEPTION_IGNORE_CANCEL,
+                                _("Device %s has multiple (%d) logical sectors "
+                                  "per physical sector.\n"
+                                  "GNU Parted supports this EXPERIMENTALLY for "
+                                  "some special disk label/file system "
+                                  "combinations, e.g. GPT and ext2/3.\n"
+                                  "Please consult the web site for up-to-date "
+                                  "information."),
+                                dev->path, sector_multiplier);
+                        
+                        switch (ex_status) {
+                                case PED_EXCEPTION_CANCEL:
+                                        goto error_close_dev;
+
+                                case PED_EXCEPTION_UNHANDLED:
+                                        ped_exception_catch ();
+                                case PED_EXCEPTION_IGNORE:
+                                        break;
+                                default:
+                                        PED_ASSERT (0, (void) 0);
+                                        break;
+                        }
+                }
+                
+                /* XXX sector_size has not been set yet! */
+                /* dev->phys_sector_size = dev->sector_size
+                   * sector_multiplier;*/
+                dev->phys_sector_size = PED_SECTOR_SIZE_DEFAULT;
+        }
+
+        if (!_device_probe_geometry (dev))
+                goto error_close_dev;
+
+        ped_device_close (dev);
+        return 1;
+
+error_close_dev:
+        ped_device_close (dev);
+error:
+        return 0;
+}
+
+/* This function reads the /sys entry named "file" for device "dev". */
+static char *
+read_device_sysfs_file (PedDevice *dev, const char *file)
+{
+        FILE *f;
+        char name_buf[128];
+        char buf[256];
+
+        snprintf (name_buf, 127, "/sys/block/%s/device/%s",
+                  basename (dev->path), file);
+
+        if ((f = fopen (name_buf, "r")) == NULL)
+                return NULL;
+
+        if (fgets (buf, 255, f) == NULL)
+                return NULL;
+
+        fclose (f);
+        return strip_name (buf);
+}
+
+/* This function sends a query to a SCSI device for vendor and product
+ * information.  It uses the deprecated SCSI_IOCTL_SEND_COMMAND to
+ * issue this query.
+ */
+static int
+scsi_query_product_info (PedDevice* dev, char **vendor, char **product)
+{
+        /* The following are defined by the SCSI-2 specification. */
+        typedef struct _scsi_inquiry_cmd
+        {
+                uint8_t op;
+                uint8_t lun;          /* bits 5-7 denote the LUN */
+                uint8_t page_code;
+                uint8_t reserved;
+                uint8_t alloc_length;
+                uint8_t control;
+        } __attribute__((packed)) scsi_inquiry_cmd_t;
+
+        typedef struct _scsi_inquiry_data
+        {
+                uint8_t peripheral_info;
+                uint8_t device_info;
+                uint8_t version_info;
+                uint8_t _field1;
+                uint8_t additional_length;
+                uint8_t _reserved1;
+                uint8_t _reserved2;
+                uint8_t _field2;
+                uint8_t vendor_id[8];
+                uint8_t product_id[16];
+                uint8_t product_revision[4];
+                uint8_t vendor_specific[20];
+                uint8_t _reserved3[40];
+        } __attribute__((packed)) scsi_inquiry_data_t;
+
+        struct scsi_arg
+        {
+                unsigned int inlen;
+                unsigned int outlen;
+
+                union arg_data
+                {
+                        scsi_inquiry_data_t out;
+                        scsi_inquiry_cmd_t  in;
+                } data;
+        } arg;
+
+        LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev);
+        char    buf[32];
+
+        *vendor = NULL;
+        *product = NULL;
+
+        memset (&arg, 0x00, sizeof(struct scsi_arg));
+        arg.inlen  = 0;
+        arg.outlen = sizeof(scsi_inquiry_data_t);
+        arg.data.in.op  = INQUIRY;
+        arg.data.in.lun = dev->host << 5;
+        arg.data.in.alloc_length = sizeof(scsi_inquiry_data_t);
+        arg.data.in.page_code = 0;
+        arg.data.in.reserved = 0;
+        arg.data.in.control = 0;
+
+        if (ioctl (arch_specific->fd, SCSI_IOCTL_SEND_COMMAND, &arg) < 0)
+                return 0;
+
+        memcpy (buf, arg.data.out.vendor_id, 8);
+        buf[8] = '\0';
+        *vendor = strip_name (buf);
+
+        memcpy (buf, arg.data.out.product_id, 16);
+        buf[16] = '\0';
+        *product = strip_name (buf);
+
+        return 1;
+}
+
+/* This function provides the vendor and product name for a SCSI device.
+ * It supports both the modern /sys interface and direct queries
+ * via the deprecated ioctl, SCSI_IOCTL_SEND_COMMAND.
+ */
+static int
+scsi_get_product_info (PedDevice* dev, char **vendor, char **product)
+{
+        *vendor = read_device_sysfs_file (dev, "vendor");
+        *product = read_device_sysfs_file (dev, "model");
+        if (*vendor && *product)
+                return 1;
+
+        return scsi_query_product_info (dev, vendor, product);
+}
+
+static int
+init_scsi (PedDevice* dev)
+{
+        struct scsi_idlun
+        {
+                uint32_t dev_id;
+                uint32_t host_unique_id;
+        } idlun;
+
+        LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev);
+        char* vendor;
+        char* product;
+
+        if (!ped_device_open (dev))
+                goto error;
+
+        if (ioctl (arch_specific->fd, SCSI_IOCTL_GET_IDLUN, &idlun) < 0) {
+                dev->host = 0;
+                dev->did = 0;
+                if (ped_exception_throw (
+                        PED_EXCEPTION_ERROR, PED_EXCEPTION_IGNORE_CANCEL,
+                        _("Error initialising SCSI device %s - %s"),
+                        dev->path, strerror (errno))
+                                != PED_EXCEPTION_IGNORE)
+                        goto error_close_dev;
+                if (!_device_probe_geometry (dev))
+                        goto error_close_dev;
+                ped_device_close (dev);
+                return 1;
+        }
+
+        dev->host = idlun.host_unique_id;
+        dev->did  = idlun.dev_id;
+
+        dev->model = (char*) ped_malloc (8 + 16 + 2);
+        if (!dev->model)
+                goto error_close_dev;
+
+        if (scsi_get_product_info (dev, &vendor, &product)) {
+                sprintf (dev->model, "%.8s %.16s", vendor, product);
+                ped_free (vendor);
+                ped_free (product);
+        } else {
+                strcpy (dev->model, "Generic SCSI");
+        }
+
+        if (!_device_probe_geometry (dev))
+                goto error_close_dev;
+
+        ped_device_close (dev);
+        return 1;
+
+error_close_dev:
+        ped_device_close (dev);
+error:
+        return 0;
+}
+
+static int
+init_file (PedDevice* dev)
+{
+        struct stat     dev_stat;
+ 
+        if (!_device_stat (dev, &dev_stat))
+                goto error;
+        if (!ped_device_open (dev))
+                goto error;
+
+        if (S_ISBLK(dev_stat.st_mode))
+                dev->length = _device_get_length (dev);
+        else
+                dev->length = dev_stat.st_size / 512;
+        if (dev->length <= 0) {
+                ped_exception_throw (
+                        PED_EXCEPTION_ERROR,
+                        PED_EXCEPTION_CANCEL,
+                        _("The device %s has zero length, and can't possibly "
+                          "store a file system or partition table.  Perhaps "
+                          "you selected the wrong device?"),
+                        dev->path);
+                goto error_close_dev;
+        }
+
+        ped_device_close (dev);
+
+        dev->bios_geom.cylinders = dev->length / 4 / 32;
+        dev->bios_geom.heads = 4;
+        dev->bios_geom.sectors = 32;
+        dev->hw_geom = dev->bios_geom;
+        dev->sector_size = PED_SECTOR_SIZE_DEFAULT;
+        dev->phys_sector_size = PED_SECTOR_SIZE_DEFAULT;
+        dev->model = strdup ("");
+        
+        return 1;
+        
+error_close_dev:
+        ped_device_close (dev);
+error:
+        return 0;
+}
+
+static int
+init_dasd (PedDevice* dev, char* model_name)
+{
+        struct stat             dev_stat;
+        struct hd_geometry      geo;
+        char *errstr = 0;
+
+        if (!_device_stat (dev, &dev_stat))
+                goto error;
+
+        if (!ped_device_open (dev))
+                goto error;
+
+        LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev);
+
+        PED_ASSERT (S_ISBLK (dev_stat.st_mode), return 0);
+
+        _device_set_sector_size (dev);
+        if (!dev->sector_size)
+                goto error_close_dev;
+
+        dev->length = _device_get_length (dev);
+        if (!dev->length)
+                goto error_close_dev;
+
+        if (!ioctl (arch_specific->fd, HDIO_GETGEO, &geo)) {
+                dev->hw_geom.sectors = geo.sectors;
+                dev->hw_geom.heads = geo.heads;
+                dev->hw_geom.cylinders = dev->length
+                        / (dev->hw_geom.heads * dev->hw_geom.sectors)
+                        / (dev->sector_size / PED_SECTOR_SIZE_DEFAULT);
+                dev->bios_geom = dev->hw_geom;
+        } else {
+                dev->bios_geom.sectors = 12;
+                dev->bios_geom.heads = 15;
+                dev->bios_geom.cylinders = dev->length
+                        / (dev->hw_geom.heads * dev->hw_geom.sectors)
+                        / (dev->sector_size / PED_SECTOR_SIZE_DEFAULT);
+                dev->hw_geom = dev->bios_geom;
+        }
+
+        dev->model = strdup (model_name);
+
+        ped_device_close (dev);
+        return 1;
+
+        ped_exception_throw ( PED_EXCEPTION_ERROR,
+                              PED_EXCEPTION_IGNORE_CANCEL,
+                              errstr );
+
+error_close_dev:
+        ped_device_close (dev);
+error:
+        return 0;
+}
+
+static int
+init_generic (PedDevice* dev, char* model_name)
+{
+        struct stat             dev_stat;
+        PedExceptionOption      ex_status;
+
+        if (!_device_stat (dev, &dev_stat))
+                goto error;
+
+        if (!ped_device_open (dev))
+                goto error;
+
+        ped_exception_fetch_all ();
+        if (_device_probe_geometry (dev)) {
+                ped_exception_leave_all ();
+        } else {
+                /* hack to allow use of files, for testing */
+                ped_exception_catch ();
+                ped_exception_leave_all ();
+
+                ex_status = ped_exception_throw (
+                                PED_EXCEPTION_WARNING,
+                                PED_EXCEPTION_IGNORE_CANCEL,
+                                _("Unable to determine geometry of "
+                                "file/device %s.  You should not use Parted "
+                                "unless you REALLY know what you're doing!"),
+                                dev->path);
+                switch (ex_status) {
+                        case PED_EXCEPTION_CANCEL:
+                                goto error_close_dev;
+
+                        case PED_EXCEPTION_UNHANDLED:
+                                ped_exception_catch ();
+                        case PED_EXCEPTION_IGNORE:
+                                break;
+                        default:
+                                PED_ASSERT (0, (void) 0);
+                                break;
+                }
+
+                /* what should we stick in here? */
+                dev->length = dev_stat.st_size / PED_SECTOR_SIZE_DEFAULT;
+                dev->bios_geom.cylinders = dev->length / 4 / 32;
+                dev->bios_geom.heads = 4;
+                dev->bios_geom.sectors = 32;
+                dev->sector_size = PED_SECTOR_SIZE_DEFAULT;
+                dev->phys_sector_size = PED_SECTOR_SIZE_DEFAULT;
+        }
+
+        dev->model = strdup (model_name);
+
+        ped_device_close (dev);
+        return 1;
+
+error_close_dev:
+        ped_device_close (dev);
+error:
+        return 0;
+}
+
+static PedDevice*
+linux_new (const char* path)
+{
+        PedDevice*      dev;
+
+        PED_ASSERT (path != NULL, return NULL);
+
+        dev = (PedDevice*) ped_malloc (sizeof (PedDevice));
+        if (!dev)
+                goto error;
+
+        dev->path = strdup (path);
+        if (!dev->path)
+                goto error_free_dev;
+
+        dev->arch_specific
+                = (LinuxSpecific*) ped_malloc (sizeof (LinuxSpecific));
+        if (!dev->arch_specific)
+                goto error_free_path;
+
+        dev->open_count = 0;
+        dev->read_only = 0;
+        dev->external_mode = 0;
+        dev->dirty = 0;
+        dev->boot_dirty = 0;
+
+        if (!_device_probe_type (dev))
+                goto error_free_arch_specific;
+
+        switch (dev->type) {
+        case PED_DEVICE_IDE:
+                if (!init_ide (dev))
+                        goto error_free_arch_specific;
+                break;
+
+        case PED_DEVICE_SCSI:
+                if (!init_scsi (dev))
+                        goto error_free_arch_specific;
+                break;
+
+        case PED_DEVICE_DAC960:
+                if (!init_generic (dev, _("DAC960 RAID controller")))
+                        goto error_free_arch_specific;
+                break;
+
+        case PED_DEVICE_SX8:
+                if (!init_generic (dev, _("Promise SX8 SATA Device")))
+                        goto error_free_arch_specific;
+                break;
+
+        case PED_DEVICE_DASD:
+                if (!init_dasd (dev, _("IBM S390 DASD drive")))
+                        goto error_free_arch_specific;
+                break;
+
+        case PED_DEVICE_VIODASD:
+                if (!init_generic (dev, _("IBM iSeries Virtual DASD")))
+                        goto error_free_arch_specific;
+                break;
+
+        case PED_DEVICE_CPQARRAY:
+                if (!init_generic (dev, _("Compaq Smart Array")))
+                        goto error_free_arch_specific;
+                break;
+
+        case PED_DEVICE_ATARAID:
+                if (!init_generic (dev, _("ATARAID Controller")))
+                        goto error_free_arch_specific;
+                break;
+
+        case PED_DEVICE_I2O:
+                if (!init_generic (dev, _("I2O Controller")))
+                        goto error_free_arch_specific;
+                break;
+
+        case PED_DEVICE_UBD:
+                if (!init_generic (dev, _("User-Mode Linux UBD")))
+                        goto error_free_arch_specific;
+                break;
+
+        case PED_DEVICE_FILE:
+                if (!init_file (dev))
+                        goto error_free_arch_specific;
+                break;
+
+#ifdef ENABLE_DEVICE_MAPPER
+        case PED_DEVICE_DM:
+                if (!init_generic (dev, _("Linux device-mapper")))
+                        goto error_free_arch_specific;
+                break;
+#endif
+
+        case PED_DEVICE_UNKNOWN:
+                if (!init_generic (dev, _("Unknown")))
+                        goto error_free_arch_specific;
+                break;
+
+        default:
+                ped_exception_throw (PED_EXCEPTION_NO_FEATURE,
+                                PED_EXCEPTION_CANCEL,
+                                _("ped_device_new()  Unsupported device type"));
+                goto error_free_arch_specific;
+        }
+        return dev;
+
+error_free_arch_specific:
+        ped_free (dev->arch_specific);
+error_free_path:
+        ped_free (dev->path);
+error_free_dev:
+        ped_free (dev);
+error:
+        return NULL;
+}
+
+static void
+linux_destroy (PedDevice* dev)
+{
+        ped_free (dev->arch_specific);
+        ped_free (dev->path);
+        ped_free (dev->model);
+        ped_free (dev);
+}
+
+static int
+linux_is_busy (PedDevice* dev)
+{
+        int     i;
+        char*   part_name;
+
+        if (_partition_is_mounted_by_path (dev->path))
+                return 1;
+
+        for (i = 0; i < 32; i++) {
+                int status;
+
+                part_name = _device_get_part_path (dev, i);
+                if (!part_name)
+                        return 1;
+                status = _partition_is_mounted_by_path (part_name);
+                ped_free (part_name);
+
+                if (status)
+                        return 1;
+        }
+
+        return 0;
+}
+
+/* we need to flush the master device, and all the partition devices,
+ * because there is no coherency between the caches.
+ * We should only flush unmounted partition devices, because:
+ *  - there is never a need to flush them (we're not doing IO there)
+ *  - flushing a device that is mounted causes unnecessary IO, and can
+ * even screw journaling & friends up.  Even cause oopsen!
+ */
+static void
+_flush_cache (PedDevice* dev)
+{
+        LinuxSpecific*  arch_specific = LINUX_SPECIFIC (dev);
+        int             i;
+
+        if (dev->read_only)
+                return;
+        dev->dirty = 0;
+
+        ioctl (arch_specific->fd, BLKFLSBUF);
+
+        for (i = 1; i < 16; i++) {
+                char*           name;
+                int             fd;
+
+                name = _device_get_part_path (dev, i);
+                if (!name)
+                        break;
+                if (!_partition_is_mounted_by_path (name)) {
+                        fd = open (name, WR_MODE, 0);
+                        if (fd > 0) {
+                                ioctl (fd, BLKFLSBUF);
+                                close (fd);
+                        }
+                }
+                ped_free (name);
+        }
+}
+
+static int
+linux_open (PedDevice* dev)
+{
+        LinuxSpecific*  arch_specific = LINUX_SPECIFIC (dev);
+
+retry:
+        arch_specific->fd = open (dev->path, RW_MODE);
+
+        if (arch_specific->fd == -1) {
+                char*   rw_error_msg = strerror (errno);
+
+                arch_specific->fd = open (dev->path, RD_MODE);
+
+                if (arch_specific->fd == -1) {
+                        if (ped_exception_throw (
+                                PED_EXCEPTION_ERROR,
+                                PED_EXCEPTION_RETRY_CANCEL,
+                                _("Error opening %s: %s"),
+                                dev->path, strerror (errno))
+                                        != PED_EXCEPTION_RETRY) {
+                                return 0;
+                        } else {
+                                goto retry;
+                        }
+                } else {
+                        ped_exception_throw (
+                                PED_EXCEPTION_WARNING,
+                                PED_EXCEPTION_OK,
+                                _("Unable to open %s read-write (%s).  %s has "
+                                  "been opened read-only."),
+                                dev->path, rw_error_msg, dev->path);
+                        dev->read_only = 1;
+                }
+        } else {
+                dev->read_only = 0;
+        }
+
+        _flush_cache (dev);
+
+        return 1;
+}
+
+static int
+linux_refresh_open (PedDevice* dev)
+{
+        return 1;
+}
+
+static int
+linux_close (PedDevice* dev)
+{
+        LinuxSpecific*          arch_specific = LINUX_SPECIFIC (dev);
+
+        if (dev->dirty)
+                _flush_cache (dev);
+        close (arch_specific->fd);
+        return 1;
+}
+
+static int
+linux_refresh_close (PedDevice* dev)
+{
+        if (dev->dirty)
+                _flush_cache (dev);
+        return 1;
+}
+
+#if SIZEOF_OFF_T < 8
+
+static _syscall5(int,_llseek,
+                 unsigned int, fd,
+                 unsigned long, offset_high,
+                 unsigned long, offset_low,
+                 loff_t*, result,
+                 unsigned int, origin)
+
+loff_t
+llseek (unsigned int fd, loff_t offset, unsigned int whence)
+{
+        loff_t result;
+        int retval;
+
+        retval = _llseek(fd,
+                         ((unsigned long long)offset) >> 32,
+                         ((unsigned long long)offset) & 0xffffffff,
+                         &result,
+                         whence);
+        return (retval==-1 ? (loff_t) retval : result);
+}
+
+#endif /* SIZEOF_OFF_T < 8 */
+
+static int
+_device_seek (const PedDevice* dev, PedSector sector)
+{
+        LinuxSpecific*  arch_specific;
+        
+        PED_ASSERT (dev->sector_size % PED_SECTOR_SIZE_DEFAULT == 0, return 0);
+        PED_ASSERT (dev != NULL, return 0);
+        PED_ASSERT (!dev->external_mode, return 0);
+        
+        arch_specific = LINUX_SPECIFIC (dev);
+
+#if SIZEOF_OFF_T < 8
+        if (sizeof (off_t) < 8) {
+                loff_t  pos = (loff_t)(sector * dev->sector_size);
+                return llseek (arch_specific->fd, pos, SEEK_SET) == pos;
+        } else
+#endif
+        {
+                off_t   pos = sector * dev->sector_size;
+                return lseek (arch_specific->fd, pos, SEEK_SET) == pos;
+        }
+}
+
+static int
+_read_lastoddsector (const PedDevice* dev, void* buffer)
+{
+        LinuxSpecific*                  arch_specific;
+        struct blkdev_ioctl_param       ioctl_param;
+
+        PED_ASSERT(dev != NULL, return 0);
+        PED_ASSERT(buffer != NULL, return 0);
+        
+        arch_specific = LINUX_SPECIFIC (dev);
+
+retry:
+        ioctl_param.block = 0; /* read the last sector */
+        ioctl_param.content_length = dev->sector_size;
+        ioctl_param.block_contents = buffer;
+        
+        if (ioctl(arch_specific->fd, BLKGETLASTSECT, &ioctl_param) == -1) {
+                PedExceptionOption      opt;
+                opt = ped_exception_throw (
+                        PED_EXCEPTION_ERROR,
+                        PED_EXCEPTION_RETRY_IGNORE_CANCEL,
+                        _("%s during read on %s"),
+                        strerror (errno), dev->path);
+
+                if (opt == PED_EXCEPTION_CANCEL)
+                        return 0;
+                if (opt == PED_EXCEPTION_RETRY)
+                        goto retry;
+        }
+
+        return 1;
+}
+
+static int
+linux_read (const PedDevice* dev, void* buffer, PedSector start,
+            PedSector count)
+{
+        LinuxSpecific*          arch_specific = LINUX_SPECIFIC (dev);
+        int                     status;
+        PedExceptionOption      ex_status;
+        void*                   diobuf;
+
+        PED_ASSERT (dev->sector_size % PED_SECTOR_SIZE_DEFAULT == 0, return 0);
+
+        if (_get_linux_version() < KERNEL_VERSION (2,6,0)) {
+                /* Kludge.  This is necessary to read/write the last
+                   block of an odd-sized disk, until Linux 2.5.x kernel fixes.
+                */
+                if (dev->type != PED_DEVICE_FILE && (dev->length & 1)
+                    && start + count - 1 == dev->length - 1)
+                        return ped_device_read (dev, buffer, start, count - 1)
+                                && _read_lastoddsector (
+                                        dev, (char *) buffer + (count-1) * 512);
+        }
+        while (1) {
+                if (_device_seek (dev, start))
+                        break;
+
+                ex_status = ped_exception_throw (
+                        PED_EXCEPTION_ERROR,
+                        PED_EXCEPTION_RETRY_IGNORE_CANCEL,
+                        _("%s during seek for read on %s"),
+                        strerror (errno), dev->path);
+
+                switch (ex_status) {
+                        case PED_EXCEPTION_IGNORE:
+                                return 1;
+
+                        case PED_EXCEPTION_RETRY:
+                                break;
+
+                        case PED_EXCEPTION_UNHANDLED:
+                                ped_exception_catch ();
+                        case PED_EXCEPTION_CANCEL:
+                                return 0;
+                        default:
+                                PED_ASSERT (0, (void) 0);
+                                break;
+                }
+        }
+
+        size_t read_length = count * dev->sector_size;
+        if (posix_memalign (&diobuf, dev->sector_size, read_length) != 0)
+                return 0;
+
+        while (1) {
+                status = read (arch_specific->fd, diobuf, read_length);
+                if (status > 0)
+                        memcpy(buffer, diobuf, status);
+                if (status == count * dev->sector_size) break;
+                if (status > 0) {
+                        read_length -= status;
+                        buffer = (char *) buffer + status;
+                        continue;
+                }
+
+                ex_status = ped_exception_throw (
+                        PED_EXCEPTION_ERROR,
+                        PED_EXCEPTION_RETRY_IGNORE_CANCEL,
+                        _("%s during read on %s"),
+                        strerror (errno),
+                        dev->path);
+
+                switch (ex_status) {
+                        case PED_EXCEPTION_IGNORE:
+                                free(diobuf);
+                                return 1;
+
+                        case PED_EXCEPTION_RETRY:
+                                break;
+
+                        case PED_EXCEPTION_UNHANDLED:
+                                ped_exception_catch ();
+                        case PED_EXCEPTION_CANCEL:
+                                free(diobuf);
+                                return 0;
+                        default:
+                                PED_ASSERT (0, (void) 0);
+                                break;
+                }
+        }
+        free(diobuf);
+
+        return 1;
+}
+
+static int
+_write_lastoddsector (PedDevice* dev, const void* buffer)
+{
+        LinuxSpecific*                  arch_specific;
+        struct blkdev_ioctl_param       ioctl_param;
+
+        PED_ASSERT(dev != NULL, return 0);
+        PED_ASSERT(buffer != NULL, return 0);
+        
+        arch_specific = LINUX_SPECIFIC (dev);
+
+retry:
+        ioctl_param.block = 0; /* write the last sector */
+        ioctl_param.content_length = dev->sector_size;
+        ioctl_param.block_contents = (void*) buffer;
+        
+        if (ioctl(arch_specific->fd, BLKSETLASTSECT, &ioctl_param) == -1) {
+                PedExceptionOption      opt;
+                opt = ped_exception_throw (
+                        PED_EXCEPTION_ERROR,
+                        PED_EXCEPTION_RETRY_IGNORE_CANCEL,
+                        _("%s during write on %s"),
+                        strerror (errno), dev->path);
+
+                if (opt == PED_EXCEPTION_CANCEL)
+                        return 0;
+                if (opt == PED_EXCEPTION_RETRY)
+                        goto retry;
+        }
+
+        return 1;
+}
+
+static int
+linux_write (PedDevice* dev, const void* buffer, PedSector start,
+             PedSector count)
+{
+        LinuxSpecific*          arch_specific = LINUX_SPECIFIC (dev);
+        int                     status;
+        PedExceptionOption      ex_status;
+        size_t                  write_length = count * dev->sector_size;
+        void*                   diobuf;
+        void*                   diobuf_start;
+
+        PED_ASSERT(dev->sector_size % PED_SECTOR_SIZE_DEFAULT == 0, return 0);
+
+        if (dev->read_only) {
+                if (ped_exception_throw (
+                        PED_EXCEPTION_ERROR,
+                        PED_EXCEPTION_IGNORE_CANCEL,
+                        _("Can't write to %s, because it is opened read-only."),
+                        dev->path)
+                                != PED_EXCEPTION_IGNORE)
+                        return 0;
+                else
+                        return 1;
+        }
+
+        if (_get_linux_version() < KERNEL_VERSION (2,6,0)) {
+                /* Kludge.  This is necessary to read/write the last
+                   block of an odd-sized disk, until Linux 2.5.x kernel fixes.
+                */
+                if (dev->type != PED_DEVICE_FILE && (dev->length & 1)
+                    && start + count - 1 == dev->length - 1)
+                        return ped_device_write (dev, buffer, start, count - 1)
+                                && _write_lastoddsector (
+                                        dev, (char*) buffer + (count-1) * 512);
+        }
+        while (1) {
+                if (_device_seek (dev, start))
+                        break;
+
+                ex_status = ped_exception_throw (
+                        PED_EXCEPTION_ERROR, PED_EXCEPTION_RETRY_IGNORE_CANCEL,
+                        _("%s during seek for write on %s"),
+                        strerror (errno), dev->path);
+
+                switch (ex_status) {
+                        case PED_EXCEPTION_IGNORE:
+                                return 1;
+
+                        case PED_EXCEPTION_RETRY:
+                                break;
+
+                        case PED_EXCEPTION_UNHANDLED:
+                                ped_exception_catch ();
+                        case PED_EXCEPTION_CANCEL:
+                                return 0;
+                        default:
+                                PED_ASSERT (0, (void) 0);
+                                break;
+                }
+        }
+
+#ifdef READ_ONLY
+        printf ("ped_device_write (\"%s\", %p, %d, %d)\n",
+                dev->path, buffer, (int) start, (int) count);
+#else
+        dev->dirty = 1;
+        if (posix_memalign(&diobuf, PED_SECTOR_SIZE_DEFAULT,
+                           count * PED_SECTOR_SIZE_DEFAULT) != 0)
+                return 0;
+        memcpy(diobuf, buffer, count * PED_SECTOR_SIZE_DEFAULT);
+        diobuf_start = diobuf;
+        while (1) {
+                status = write (arch_specific->fd, diobuf, write_length);
+                if (status == count * dev->sector_size) break;
+                if (status > 0) {
+                        write_length -= status;
+                        diobuf = (char *) diobuf + status;
+                        continue;
+                }
+
+                ex_status = ped_exception_throw (
+                        PED_EXCEPTION_ERROR,
+                        PED_EXCEPTION_RETRY_IGNORE_CANCEL,
+                        _("%s during write on %s"),
+                        strerror (errno), dev->path);
+
+                switch (ex_status) {
+                        case PED_EXCEPTION_IGNORE:
+                                free(diobuf_start);
+                                return 1;
+
+                        case PED_EXCEPTION_RETRY:
+                                break;
+
+                        case PED_EXCEPTION_UNHANDLED:
+                                ped_exception_catch ();
+                        case PED_EXCEPTION_CANCEL:
+                                free(diobuf_start);
+                                return 0;
+                        default:
+                                PED_ASSERT (0, (void) 0);
+                                break;
+                }
+        }
+        free(diobuf_start);
+#endif /* !READ_ONLY */
+        return 1;
+}
+
+/* returns the number of sectors that are ok.
+ */
+static PedSector
+linux_check (PedDevice* dev, void* buffer, PedSector start, PedSector count)
+{
+        LinuxSpecific*  arch_specific = LINUX_SPECIFIC (dev);
+        PedSector       done = 0;
+        int             status;
+        void*           diobuf;
+
+        PED_ASSERT(dev != NULL, return 0);
+        
+        if (!_device_seek (dev, start))
+                return 0;
+
+        if (posix_memalign(&diobuf, PED_SECTOR_SIZE_DEFAULT,
+                           count * PED_SECTOR_SIZE_DEFAULT) != 0)
+                return 0;
+
+        for (done = 0; done < count; done += status / dev->sector_size) {
+                status = read (arch_specific->fd, diobuf,
+                               (size_t) ((count-done) * dev->sector_size));
+                if (status > 0)
+                        memcpy(buffer, diobuf, status);
+                if (status < 0)
+                        break;
+        }
+        free(diobuf);
+
+        return done;
+}
+
+static int
+_do_fsync (PedDevice* dev)
+{
+        LinuxSpecific*          arch_specific = LINUX_SPECIFIC (dev);
+        int                     status;
+        PedExceptionOption      ex_status;
+
+        while (1) {
+                status = fsync (arch_specific->fd);
+                if (status >= 0) break;
+
+                ex_status = ped_exception_throw (
+                        PED_EXCEPTION_ERROR,
+                        PED_EXCEPTION_RETRY_IGNORE_CANCEL,
+                        _("%s during write on %s"),
+                        strerror (errno), dev->path);
+
+                switch (ex_status) {
+                        case PED_EXCEPTION_IGNORE:
+                                return 1;
+
+                        case PED_EXCEPTION_RETRY:
+                                break;
+
+                        case PED_EXCEPTION_UNHANDLED:
+                                ped_exception_catch ();
+                        case PED_EXCEPTION_CANCEL:
+                                return 0;
+                        default:
+                                PED_ASSERT (0, (void) 0);
+                                break;
+                }
+        } 
+        return 1;
+}
+
+static int
+linux_sync (PedDevice* dev)
+{
+        PED_ASSERT (dev != NULL, return 0);
+        PED_ASSERT (!dev->external_mode, return 0);
+
+        if (dev->read_only)
+                return 1;
+        if (!_do_fsync (dev))
+                return 0;
+        _flush_cache (dev);
+        return 1;
+}
+
+static int
+linux_sync_fast (PedDevice* dev)
+{
+        PED_ASSERT (dev != NULL, return 0);
+        PED_ASSERT (!dev->external_mode, return 0);
+
+        if (dev->read_only)
+                return 1;
+        if (!_do_fsync (dev))
+                return 0;
+        /* no cache flush... */
+        return 1;
+}
+
+static inline int
+_compare_digit_state (char ch, int need_digit)
+{
+        return !!isdigit (ch) == need_digit;
+}
+
+/* matches the regexp "[^0-9]+[0-9]+[^0-9]+[0-9]+$".
+ * Motivation: accept devices looking like /dev/rd/c0d0, but
+ * not looking like /dev/hda1 and /dev/rd/c0d0p1
+ */
+static int
+_match_rd_device (const char* name)
+{
+        const char* pos;
+        int state;
+
+        /* exclude directory names from test */
+        pos = strrchr(name, '/') ?: name;
+
+        /* states:
+         *      0       non-digits
+         *      1       digits
+         *      2       non-digits
+         *      3       digits
+         */
+        for (state = 0; state < 4; state++) {
+                int want_digits = (state % 2 == 1);
+                do {
+                        if (!*pos)
+                                return 0;
+                        if (!_compare_digit_state (*pos, want_digits))
+                                return 0;
+                        pos++;
+                } while (_compare_digit_state (*pos, want_digits));
+        }
+
+        return *pos == 0;
+}
+
+static int
+_probe_proc_partitions ()
+{
+        FILE*           proc_part_file;
+        int             major, minor, size;
+        char            buf [512];
+        char            part_name [256];
+        char            dev_name [256];
+
+        proc_part_file = fopen ("/proc/partitions", "r");
+        if (!proc_part_file)
+                return 0;
+
+        if (fgets (buf, 256, proc_part_file) == NULL)
+                return 0;
+
+        if (fgets (buf, 256, proc_part_file) == NULL)
+                return 0;
+
+        while (fgets (buf, 512, proc_part_file)
+               && sscanf (buf, "%d %d %d %255s", &major, &minor, &size,
+                          part_name) == 4) {
+                /* Heuristic for telling partitions and devices apart
+                 * Probably needs to be improved
+                 */
+                if (!_match_rd_device (part_name)
+                    && isdigit (part_name [strlen (part_name) - 1]))
+                        continue;
+
+                strcpy (dev_name, "/dev/");
+                strcat (dev_name, part_name);
+                _ped_device_probe (dev_name);
+        }
+
+        fclose (proc_part_file);
+        return 1;
+}
+
+struct _entry {
+	const char *name;
+	size_t len;
+};
+
+static int
+_skip_entry (const char *name)
+{
+	struct _entry *i;
+	static struct _entry entries[] = {
+		{ ".",		sizeof (".") - 1	},
+		{ "..",		sizeof ("..") - 1	},
+		{ "dm-",	sizeof ("dm-") - 1	},
+		{ "loop",	sizeof ("loop") - 1	},
+		{ "ram",	sizeof ("ram") - 1	},
+		{ 0, 0 },
+	};
+
+	for (i = entries; i->name != 0; i++) {
+		if (strncmp (name, i->name, i->len) == 0)
+			return 1;
+	}
+
+	return 0;
+}
+
+static int
+_probe_sys_block ()
+{
+	DIR *blockdir;
+	struct dirent *dirent;
+	char dev_name [256];
+	char *ptr;
+
+	if (!(blockdir = opendir ("/sys/block")))
+		return 0;
+	while ((dirent = readdir (blockdir))) {
+		if (_skip_entry (dirent->d_name))
+			continue;
+
+		if (strlen (dirent->d_name) > sizeof (dev_name) - 6)
+			continue; /* device name too long! */
+
+		strcpy (dev_name, "/dev/");
+		strcat (dev_name, dirent->d_name);
+		/* in /sys/block, '/'s are replaced with '!' or '.' */
+		for (ptr = dev_name; *ptr != '\0'; ptr++) {
+			if (*ptr == '!' || *ptr == '.')
+				*ptr = '/';
+		}
+		_ped_device_probe (dev_name);
+	}
+	
+	closedir (blockdir);
+	return 1;
+}
+
+static int
+_probe_standard_devices ()
+{
+        _ped_device_probe ("/dev/hda");
+        _ped_device_probe ("/dev/hdb");
+        _ped_device_probe ("/dev/hdc");
+        _ped_device_probe ("/dev/hdd");
+        _ped_device_probe ("/dev/hde");
+        _ped_device_probe ("/dev/hdf");
+        _ped_device_probe ("/dev/hdg");
+        _ped_device_probe ("/dev/hdh");
+
+        _ped_device_probe ("/dev/sda");
+        _ped_device_probe ("/dev/sdb");
+        _ped_device_probe ("/dev/sdc");
+        _ped_device_probe ("/dev/sdd");
+        _ped_device_probe ("/dev/sde");
+        _ped_device_probe ("/dev/sdf");
+
+        return 1;
+}
+
+static void
+linux_probe_all ()
+{
+        /* we should probe the standard devs too, even with /proc/partitions,
+         * because /proc/partitions might return devfs stuff, and we might not
+         * have devfs available
+         */
+        _probe_standard_devices ();
+
+ 	/* /sys/block is more reliable and consistent; fall back to using
+ 	 * /proc/partitions if the former is unavailable, however.
+ 	 */
+ 	if (!_probe_sys_block ())
+ 		_probe_proc_partitions ();
+}
+
+static char*
+_device_get_part_path (PedDevice* dev, int num)
+{
+        int             path_len = strlen (dev->path);
+        int             result_len = path_len + 16;
+        char*           result;
+
+        result = (char*) ped_malloc (result_len);
+        if (!result)
+                return NULL;
+
+        /* Check for devfs-style /disc => /partN transformation
+           unconditionally; the system might be using udev with devfs rules,
+           and if not the test is harmless. */
+        if (!strcmp (dev->path + path_len - 5, "/disc")) {
+                /* replace /disc with /path%d */
+                strcpy (result, dev->path);
+                snprintf (result + path_len - 5, 16, "/part%d", num);
+        } else if (dev->type == PED_DEVICE_DAC960
+                        || dev->type == PED_DEVICE_CPQARRAY
+                        || dev->type == PED_DEVICE_ATARAID
+#ifdef ENABLE_DEVICE_MAPPER
+                        || dev->type == PED_DEVICE_DM
+#endif
+                        || isdigit (dev->path[path_len - 1]))
+                snprintf (result, result_len, "%sp%d", dev->path, num);
+        else
+                snprintf (result, result_len, "%s%d", dev->path, num);
+
+        return result;
+}
+
+static char*
+linux_partition_get_path (const PedPartition* part)
+{
+        return _device_get_part_path (part->disk->dev, part->num);
+}
+
+static dev_t
+_partition_get_part_dev (const PedPartition* part)
+{
+        struct stat dev_stat;
+        int dev_major, dev_minor;
+
+        if (!_device_stat (part->disk->dev, &dev_stat))
+                return (dev_t)0;
+        dev_major = major (dev_stat.st_rdev);
+        dev_minor = minor (dev_stat.st_rdev);
+        return (dev_t)makedev (dev_major, dev_minor + part->num);
+}
+
+static int
+_mount_table_search (const char* file_name, dev_t dev)
+{
+        struct stat part_stat;
+        char line[512];
+        char part_name[512];
+        FILE* file;
+        int junk;
+
+        file = fopen (file_name, "r");
+        if (!file)
+                return 0;
+        while (fgets (line, 512, file)) {
+                junk = sscanf (line, "%s", part_name);
+                if (stat (part_name, &part_stat) == 0) {
+                        if (part_stat.st_rdev == dev) {
+                                fclose (file);
+                                return 1;
+                        }
+                }
+        }
+        fclose (file);
+        return 0;
+}
+
+static int
+_partition_is_mounted_by_dev (dev_t dev)
+{
+        return  _mount_table_search( "/proc/mounts", dev)
+                || _mount_table_search( "/proc/swaps", dev)
+                || _mount_table_search( "/etc/mtab", dev);
+}
+
+static int
+_partition_is_mounted_by_path (const char *path)
+{
+        struct stat part_stat;
+        if (stat (path, &part_stat) != 0)
+                return 0;
+        if (!S_ISBLK(part_stat.st_mode))
+                return 0;
+        return _partition_is_mounted_by_dev (part_stat.st_rdev);
+}
+
+static int
+_partition_is_mounted (const PedPartition *part)
+{
+        dev_t dev;
+        if (!ped_partition_is_active (part))
+                return 0;
+        dev = _partition_get_part_dev (part);
+        return _partition_is_mounted_by_dev (dev);
+}
+
+static int
+linux_partition_is_busy (const PedPartition* part)
+{
+        PedPartition*   walk;
+
+        PED_ASSERT (part != NULL, return 0);
+
+        if (_partition_is_mounted (part))
+                return 1;
+        if (part->type == PED_PARTITION_EXTENDED) {
+                for (walk = part->part_list; walk; walk = walk->next) {
+                        if (linux_partition_is_busy (walk))
+                                return 1;
+                }
+        }
+        return 0;
+}
+
+static int
+_blkpg_part_command (PedDevice* dev, struct blkpg_partition* part, int op)
+{
+        LinuxSpecific*          arch_specific = LINUX_SPECIFIC (dev);
+        struct blkpg_ioctl_arg  ioctl_arg;
+
+        ioctl_arg.op = op;
+        ioctl_arg.flags = 0;
+        ioctl_arg.datalen = sizeof (struct blkpg_partition);
+        ioctl_arg.data = (void*) part;
+
+        return ioctl (arch_specific->fd, BLKPG, &ioctl_arg) == 0;
+}
+
+static int
+_blkpg_add_partition (PedDisk* disk, PedPartition* part)
+{
+        struct blkpg_partition  linux_part;
+        const char*             vol_name;
+        char*                   dev_name;
+
+        PED_ASSERT(disk != NULL, return 0);
+        PED_ASSERT(disk->dev->sector_size % PED_SECTOR_SIZE_DEFAULT == 0,
+                   return 0);
+
+        if (ped_disk_type_check_feature (disk->type,
+                                         PED_DISK_TYPE_PARTITION_NAME))
+                vol_name = ped_partition_get_name (part);
+        else
+                vol_name = NULL;
+
+        dev_name = _device_get_part_path (disk->dev, part->num);
+        if (!dev_name)
+                return 0;
+
+        memset (&linux_part, 0, sizeof (linux_part));
+        linux_part.start = part->geom.start * disk->dev->sector_size;
+        /* see fs/partitions/msdos.c:msdos_partition(): "leave room for LILO" */
+        if (part->type & PED_PARTITION_EXTENDED)
+                linux_part.length = part->geom.length == 1 ? 512 : 1024;
+        else
+                linux_part.length = part->geom.length * disk->dev->sector_size;
+        linux_part.pno = part->num;
+        strncpy (linux_part.devname, dev_name, BLKPG_DEVNAMELTH);
+        if (vol_name)
+                strncpy (linux_part.volname, vol_name, BLKPG_VOLNAMELTH);
+
+        ped_free (dev_name);
+
+        if (!_blkpg_part_command (disk->dev, &linux_part,
+                                  BLKPG_ADD_PARTITION)) {
+                return ped_exception_throw (
+                        PED_EXCEPTION_ERROR,
+                        PED_EXCEPTION_IGNORE_CANCEL,
+                        _("Error informing the kernel about modifications to "
+                          "partition %s -- %s.  This means Linux won't know "
+                          "about any changes you made to %s until you reboot "
+                          "-- so you shouldn't mount it or use it in any way "
+                          "before rebooting."),
+                        linux_part.devname,
+                        strerror (errno),
+                        linux_part.devname)
+                                == PED_EXCEPTION_IGNORE;
+        }
+
+        return 1;
+}
+
+static int
+_blkpg_remove_partition (PedDisk* disk, int n)
+{
+        struct blkpg_partition  linux_part;
+
+        memset (&linux_part, 0, sizeof (linux_part));
+        linux_part.pno = n;
+        return _blkpg_part_command (disk->dev, &linux_part,
+                                    BLKPG_DEL_PARTITION);
+}
+
+static int
+_disk_sync_part_table (PedDisk* disk)
+{
+        int     i;
+        int     last = PED_MAX (ped_disk_get_last_partition_num (disk), 16);
+        int*    rets = ped_malloc(sizeof(int) * last);
+        int*    errnums = ped_malloc(sizeof(int) * last);
+        int     ret = 1;
+
+        for (i = 1; i <= last; i++) {
+                rets[i - 1] = _blkpg_remove_partition (disk, i);
+                errnums[i - 1] = errno;
+        }
+
+        for (i = 1; i <= last; i++) {
+                PedPartition*           part;
+
+                part = ped_disk_get_partition (disk, i);
+                if (part) {
+                        /* busy... so we won't (can't!) disturb ;)  Prolly
+                         * doesn't matter anyway, because users shouldn't be
+                         * changing mounted partitions anyway...
+                         */
+                        if (!rets[i - 1] && errnums[i - 1] == EBUSY)
+                                        continue;
+
+                        /* add the (possibly modified or new) partition */
+                        if (!_blkpg_add_partition (disk, part))
+                                ret = 0;
+                }
+        }
+
+        return ret;
+}
+
+#ifdef ENABLE_DEVICE_MAPPER
+static int
+_dm_remove_map_name(char *name)
+{
+        struct dm_task  *task = NULL;
+        int             rc;
+
+        task = dm_task_create(DM_DEVICE_REMOVE);
+        if (!task)
+                return 1;
+
+        dm_task_set_name (task, name);
+
+        rc = dm_task_run(task);
+        dm_task_update_nodes();
+        dm_task_destroy(task);
+        if (rc < 0)
+                return 1;
+
+        return 0;
+}
+
+static int 
+_dm_is_part (struct dm_info *this, char *name)
+{
+        struct dm_task* task = NULL;
+        struct dm_info* info = alloca(sizeof *info);
+        struct dm_deps* deps = NULL;
+        int             rc = 0;
+        unsigned int    i;
+
+        task = dm_task_create(DM_DEVICE_DEPS);
+        if (!task)
+                return 0;
+        
+        dm_task_set_name(task, name);
+        rc = dm_task_run(task);
+        if (rc < 0) {
+                rc = 0;
+                goto err;
+        }
+        rc = 0;
+
+        memset(info, '\0', sizeof *info);
+        dm_task_get_info(task, info);
+        if (!info->exists)
+                goto err;
+
+        deps = dm_task_get_deps(task);
+        if (!deps)
+                goto err;
+
+        rc = 0;
+        for (i = 0; i < deps->count; i++) {
+                unsigned int ma = major(deps->device[i]),
+                             mi = minor(deps->device[i]);
+
+                if (ma == this->major && mi == this->minor)
+                        rc = 1;
+        }
+
+err:
+        dm_task_destroy(task);
+        return rc;
+}
+
+static int
+_dm_remove_parts (PedDevice* dev)
+{
+        struct stat             dev_stat;
+        struct dm_task*         task = NULL;
+        struct dm_info*         info = alloca(sizeof *info);
+        struct dm_names*        names = NULL;
+        unsigned int            next = 0;
+        int                     rc;
+
+        if (!_device_stat (dev, &dev_stat))
+                goto err;
+
+        task = dm_task_create(DM_DEVICE_LIST);
+        if (!task)
+                goto err;
+
+        dm_task_set_major (task, major (dev_stat.st_rdev));
+        dm_task_set_minor (task, minor (dev_stat.st_rdev));
+
+        rc = dm_task_run(task);
+        if (rc < 0)
+                goto err;
+
+        memset(info, '\0', sizeof *info);
+        dm_task_get_info(task, info);
+        if (!info->exists)
+                goto err;
+
+        names = dm_task_get_names(task);
+        if (!names)
+                goto err;
+
+        rc = 0;
+        do {
+                names = (void *)names + next;
+
+                if (_dm_is_part(info, names->name))
+                        rc += _dm_remove_map_name(names->name);
+
+                next = names->next;
+        } while (next);
+
+        dm_task_update_nodes();
+        dm_task_destroy(task);
+        task = NULL;
+
+        if (!rc)
+                return 1;
+err:
+        if (task)
+                dm_task_destroy(task);
+        ped_exception_throw (PED_EXCEPTION_WARNING, PED_EXCEPTION_IGNORE,
+                _("parted was unable to re-read the partition "
+                  "table on %s (%s).  This means Linux won't know "
+                  "anything about the modifications you made. "),
+                dev->path, strerror (errno));
+        return 0;
+}
+
+static int
+_dm_add_partition (PedDisk* disk, PedPartition* part)
+{
+        struct stat     dev_stat;
+        struct dm_task* task = NULL;
+        int             rc;
+        char*           vol_name = NULL;
+        char*           dev_name = NULL;
+        char*           params = NULL;
+
+        dev_name = _device_get_part_path (disk->dev, part->num);
+        if (!dev_name)
+                return 0;
+
+        vol_name = strrchr (dev_name, '/');
+        if (vol_name && *vol_name && *(++vol_name))
+                vol_name = strdup (vol_name);
+        else
+                vol_name = strdup (dev_name);
+        if (!vol_name)
+                return 0;
+
+        if (!_device_stat (disk->dev, &dev_stat))
+                goto err;
+
+        if (asprintf (&params, "%d:%d %lld", major (dev_stat.st_rdev),
+                      minor (dev_stat.st_rdev), part->geom.start) == -1)
+                goto err;
+
+        if (!params)
+                goto err;
+
+        task = dm_task_create (DM_DEVICE_CREATE);
+        if (!task)
+                goto err;
+
+        dm_task_set_name (task, vol_name);
+        dm_task_add_target (task, 0, part->geom.length,
+                "linear", params);
+        rc = dm_task_run(task);
+        if (rc >= 0) {
+                //printf("0 %ld linear %s\n", part->geom.length, params);
+                dm_task_update_nodes();
+                dm_task_destroy(task);
+                free(params);
+                free(vol_name);
+                return 1;
+        } else {
+                _dm_remove_map_name(vol_name);
+        }
+err:
+        dm_task_update_nodes();
+        if (task)
+                dm_task_destroy (task);
+        if (params)
+                free (params);
+        free (vol_name);
+        return 0;
+}
+
+static int
+_dm_reread_part_table (PedDisk* disk)
+{
+        int     rc = 1;
+        int     last = PED_MAX (ped_disk_get_last_partition_num (disk), 16);
+        int     i;
+
+        sync();
+        if (!_dm_remove_parts(disk->dev))
+                rc = 0;
+
+        for (i = 1; i <= last; i++) {
+                PedPartition*      part;
+
+                part = ped_disk_get_partition (disk, i);
+                if (!part)
+                        continue;
+
+                if (!_dm_add_partition (disk, part))
+                        rc = 0;
+        }
+        return rc;
+}
+#endif
+
+static int
+_kernel_reread_part_table (PedDevice* dev)
+{
+        LinuxSpecific*  arch_specific = LINUX_SPECIFIC (dev);
+        int             retry_count = 5;
+
+        sync();
+        while (ioctl (arch_specific->fd, BLKRRPART)) {
+                retry_count--;
+                sync();
+                if (!retry_count) {
+                        ped_exception_throw (
+                                PED_EXCEPTION_WARNING,
+                                PED_EXCEPTION_IGNORE,
+                        _("The kernel was unable to re-read the partition "
+                          "table on %s (%s).  This means Linux won't know "
+                          "anything about the modifications you made "
+                          "until you reboot.  You should reboot your computer "
+                          "before doing anything with %s."),
+                                dev->path, strerror (errno), dev->path);
+                        return 0;
+                }
+        }
+
+        return 1;
+}
+
+static int
+_have_blkpg ()
+{
+        static int have_blkpg = -1;
+        int kver;
+
+        if (have_blkpg != -1)
+                return have_blkpg;
+
+        kver = _get_linux_version();
+        return have_blkpg = kver >= KERNEL_VERSION (2,4,0) ? 1 : 0;
+}
+
+static int
+linux_disk_commit (PedDisk* disk)
+{
+#ifdef ENABLE_DEVICE_MAPPER
+        if (disk->dev->type == PED_DEVICE_DM)
+                return _dm_reread_part_table (disk);
+#endif
+        if (disk->dev->type != PED_DEVICE_FILE) {
+                /* The ioctl() command BLKPG_ADD_PARTITION does not notify
+                 * the devfs system; consequently, /proc/partitions will not
+                 * be up to date, and the proper links in /dev are not
+                 * created.  Therefore, if using DevFS, we must get the kernel
+                 * to re-read and grok the partition table.
+                 */
+                /* Work around kernel dasd problem so we really do BLKRRPART */
+                if (disk->dev->type != PED_DEVICE_DASD &&
+                    _have_blkpg () && !_have_devfs ()) {
+                        if (_disk_sync_part_table (disk))
+                                return 1;
+                }
+
+                return _kernel_reread_part_table (disk->dev);
+        }
+
+        return 1;
+}
+
+static PedDeviceArchOps linux_dev_ops = {
+        _new:           linux_new,
+        destroy:        linux_destroy,
+        is_busy:        linux_is_busy,
+        open:           linux_open,
+        refresh_open:   linux_refresh_open,
+        close:          linux_close,
+        refresh_close:  linux_refresh_close,
+        read:           linux_read,
+        write:          linux_write,
+        check:          linux_check,
+        sync:           linux_sync,
+        sync_fast:      linux_sync_fast,
+        probe_all:      linux_probe_all
+};
+
+PedDiskArchOps linux_disk_ops =  {
+        partition_get_path:     linux_partition_get_path,
+        partition_is_busy:      linux_partition_is_busy,
+        disk_commit:            linux_disk_commit
+};
+
+PedArchitecture ped_linux_arch = {
+        dev_ops:        &linux_dev_ops,
+        disk_ops:       &linux_disk_ops
+};
diff --git a/parted-1.8.7/libparted/cs/constraint.c b/parted-1.8.7/libparted/cs/constraint.c
new file mode 100644
index 0000000..6ba941a
--- /dev/null
+++ b/parted-1.8.7/libparted/cs/constraint.c
@@ -0,0 +1,530 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2000, 2001, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+/**
+ * \addtogroup PedConstraint
+ *
+ * \brief Constraint solver interface. 
+ * 
+ * Constraints are used to communicate restrictions on operations Constraints
+ * are restrictions on the location and alignment of the start and end of a
+ * partition, and the minimum and maximum size.
+ *
+ * Constraints are closed under intersection (for the proof see the source
+ * code).  For background information see the Chinese Remainder Theorem.
+ *
+ * This interface consists of construction constraints, finding the intersection
+ * of constraints, and finding solutions to constraints.
+ *
+ * The constraint solver allows you to specify constraints on where a partition
+ * or file system (or any PedGeometry) may be placed/resized/etc. For example,
+ * you might want to make sure that a file system is at least 10 Gb, or that it
+ * starts at the beginning of new cylinder.
+ *
+ * The constraint solver in this file unifies solver in geom.c (which allows you
+ * to specify constraints on ranges) and natmath.c (which allows you to specify
+ * alignment constraints).
+ *
+ * @{
+ */
+
+#include <config.h>
+#include <parted/parted.h>
+#include <parted/debug.h>
+
+/**
+ * Initializes a pre-allocated piece of memory to contain a constraint
+ * with the supplied default values.
+ *
+ * \return \c 0 on failure.
+ */
+int
+ped_constraint_init (
+	PedConstraint* constraint,
+	const PedAlignment* start_align,
+	const PedAlignment* end_align,
+	const PedGeometry* start_range,
+	const PedGeometry* end_range,
+	PedSector min_size,
+	PedSector max_size)
+{
+	PED_ASSERT (constraint != NULL, return 0);
+	PED_ASSERT (start_range != NULL, return 0);
+	PED_ASSERT (end_range != NULL, return 0);
+	PED_ASSERT (min_size > 0, return 0);
+	PED_ASSERT (max_size > 0, return 0);
+
+	constraint->start_align = ped_alignment_duplicate (start_align);
+	constraint->end_align = ped_alignment_duplicate (end_align);
+	constraint->start_range = ped_geometry_duplicate (start_range);
+	constraint->end_range = ped_geometry_duplicate (end_range);
+	constraint->min_size = min_size;
+	constraint->max_size = max_size;
+
+	return 1;
+}
+
+/**
+ * Convenience wrapper for ped_constraint_init().
+ *
+ * Allocates a new piece of memory and initializes the constraint.
+ *
+ * \return \c NULL on failure.
+ */
+PedConstraint*
+ped_constraint_new (
+	const PedAlignment* start_align,
+	const PedAlignment* end_align,
+	const PedGeometry* start_range,
+	const PedGeometry* end_range,
+	PedSector min_size,
+	PedSector max_size)
+{
+	PedConstraint*	constraint;
+
+	constraint = (PedConstraint*) ped_malloc (sizeof (PedConstraint));
+	if (!constraint)
+		goto error;
+	if (!ped_constraint_init (constraint, start_align, end_align,
+			          start_range, end_range, min_size, max_size))
+		goto error_free_constraint;
+	return constraint;
+
+error_free_constraint:
+	ped_free (constraint);
+error:
+	return NULL;
+}
+
+/**
+ * Return a constraint that requires a region to be entirely contained inside
+ * \p max, and to entirely contain \p min.
+ *
+ * \return \c NULL on failure.
+ */
+PedConstraint*
+ped_constraint_new_from_min_max (
+	const PedGeometry* min,
+	const PedGeometry* max)
+{
+	PedGeometry	start_range;
+	PedGeometry	end_range;
+
+	PED_ASSERT (min != NULL, return NULL);
+	PED_ASSERT (max != NULL, return NULL);
+	PED_ASSERT (ped_geometry_test_inside (max, min), return NULL);
+
+	ped_geometry_init (&start_range, min->dev, max->start,
+			   min->start - max->start + 1);
+	ped_geometry_init (&end_range, min->dev, min->end,
+			   max->end - min->end + 1);
+
+	return ped_constraint_new (
+			ped_alignment_any, ped_alignment_any,
+			&start_range, &end_range,
+			min->length, max->length);
+}
+
+/**
+ * Return a constraint that requires a region to entirely contain \p min.
+ *
+ * \return \c NULL on failure.
+ */
+PedConstraint*
+ped_constraint_new_from_min (const PedGeometry* min)
+{
+	PedGeometry	full_dev;
+
+	PED_ASSERT (min != NULL, return NULL);
+
+	ped_geometry_init (&full_dev, min->dev, 0, min->dev->length);
+	return ped_constraint_new_from_min_max (min, &full_dev);
+}
+
+/**
+ * Return a constraint that requires a region to be entirely contained inside
+ * \p max.
+ *
+ * \return \c NULL on failure.
+ */
+PedConstraint*
+ped_constraint_new_from_max (const PedGeometry* max)
+{
+	PED_ASSERT (max != NULL, return NULL);
+
+	return ped_constraint_new (
+			ped_alignment_any, ped_alignment_any,
+			max, max, 1, max->length);
+}
+
+/**
+ * Duplicate a constraint.
+ *
+ * \return \c NULL on failure.
+ */
+PedConstraint*
+ped_constraint_duplicate (const PedConstraint* constraint)
+{
+	PED_ASSERT (constraint != NULL, return NULL);
+
+	return ped_constraint_new (
+		constraint->start_align,
+		constraint->end_align,
+		constraint->start_range,
+		constraint->end_range,
+		constraint->min_size,
+		constraint->max_size);
+}
+
+/**
+ * Return a constraint that requires a region to satisfy both \p a and \p b.
+ *
+ * Moreover, any region satisfying \p a and \p b will also satisfy the returned
+ * constraint.
+ *
+ * \return \c NULL if no solution could be found (note that \c NULL is a valid
+ *         PedConstraint).
+ */
+PedConstraint*
+ped_constraint_intersect (const PedConstraint* a, const PedConstraint* b)
+{
+	PedAlignment*	start_align;
+	PedAlignment*	end_align;
+	PedGeometry*	start_range;
+	PedGeometry*	end_range;
+	PedSector	min_size;
+	PedSector	max_size;
+	PedConstraint*	constraint;
+
+	if (!a || !b)
+		return NULL;
+
+	start_align = ped_alignment_intersect (a->start_align, b->start_align);
+	if (!start_align)
+		goto empty;
+	end_align = ped_alignment_intersect (a->end_align, b->end_align);
+	if (!end_align)
+		goto empty_destroy_start_align;
+	start_range = ped_geometry_intersect (a->start_range, b->start_range);
+	if (!start_range)
+		goto empty_destroy_end_align;
+	end_range = ped_geometry_intersect (a->end_range, b->end_range);
+	if (!end_range)
+		goto empty_destroy_start_range;
+	min_size = PED_MAX (a->min_size, b->min_size);
+	max_size = PED_MIN (a->max_size, b->max_size);
+
+	constraint = ped_constraint_new (
+			start_align, end_align, start_range, end_range,
+			min_size, max_size);
+	if (!constraint)
+		goto empty_destroy_end_range;
+
+	ped_alignment_destroy (start_align);
+	ped_alignment_destroy (end_align);
+	ped_geometry_destroy (start_range);
+	ped_geometry_destroy (end_range);
+	return constraint;
+
+empty_destroy_end_range:
+	ped_geometry_destroy (end_range);
+empty_destroy_start_range:
+	ped_geometry_destroy (start_range);
+empty_destroy_end_align:
+	ped_alignment_destroy (end_align);
+empty_destroy_start_align:
+	ped_alignment_destroy (start_align);
+empty:
+	return NULL;
+}
+
+/**
+ * Release the memory allocated for a PedConstraint constructed with
+ * ped_constraint_init().
+ */
+void
+ped_constraint_done (PedConstraint* constraint)
+{
+	PED_ASSERT (constraint != NULL, return);
+
+	ped_alignment_destroy (constraint->start_align);
+	ped_alignment_destroy (constraint->end_align);
+	ped_geometry_destroy (constraint->start_range);
+	ped_geometry_destroy (constraint->end_range);
+}
+
+/**
+ * Release the memory allocated for a PedConstraint constructed with
+ * ped_constraint_new().
+ */
+void
+ped_constraint_destroy (PedConstraint* constraint)
+{
+	if (constraint) {
+		ped_constraint_done (constraint);
+		ped_free (constraint);
+	}
+}
+
+/*
+ * Return the region within which the start must lie
+ * in order to satisfy a constriant.  It takes into account
+ * constraint->start_range, constraint->min_size and constraint->max_size.
+ * All sectors in this range that also satisfy alignment requirements have
+ * an end, such that the (start, end) satisfy the constraint.
+ */
+static PedGeometry*
+_constraint_get_canonical_start_range (const PedConstraint* constraint)
+{
+	PedSector	first_end_soln;
+	PedSector	last_end_soln;
+	PedSector	min_start;
+	PedSector	max_start;
+	PedGeometry	start_min_max_range;
+
+	if (constraint->min_size > constraint->max_size)
+		return NULL;
+
+	first_end_soln = ped_alignment_align_down (
+			constraint->end_align, constraint->end_range,
+			constraint->end_range->start);
+	last_end_soln = ped_alignment_align_up (
+			constraint->end_align, constraint->end_range,
+			constraint->end_range->end);
+	if (first_end_soln == -1 || last_end_soln == -1
+	    || first_end_soln > last_end_soln
+	    || last_end_soln < constraint->min_size)
+		return NULL;
+
+	min_start = first_end_soln - constraint->max_size + 1;
+	if (min_start < 0)
+		min_start = 0;
+	max_start = last_end_soln - constraint->min_size + 1;
+	if (max_start < 0)
+		return NULL;
+
+	ped_geometry_init (
+		&start_min_max_range, constraint->start_range->dev,
+		min_start, max_start - min_start + 1);
+
+	return ped_geometry_intersect (&start_min_max_range,
+				       constraint->start_range);
+}
+
+/*
+ * Return the nearest start that will have at least one other end that
+ * together satisfy the constraint.
+ */
+static PedSector
+_constraint_get_nearest_start_soln (const PedConstraint* constraint,
+				    PedSector start)
+{
+	PedGeometry*	start_range;
+	PedSector	result;
+
+	start_range = _constraint_get_canonical_start_range (constraint);
+	if (!start_range)
+		return -1;
+	result = ped_alignment_align_nearest (
+			constraint->start_align, start_range, start);
+	ped_geometry_destroy (start_range);
+	return result;
+}
+
+/*
+ * Given a constraint and a start ("half of the solution"), find the
+ * range of all possible ends, such that all (start, end) are solutions
+ * to constraint (subject to additional alignment requirements).
+ */
+static PedGeometry*
+_constraint_get_end_range (const PedConstraint* constraint, PedSector start)
+{
+	PedDevice*	dev = constraint->end_range->dev;
+	PedSector	first_min_max_end;
+	PedSector	last_min_max_end;
+	PedGeometry	end_min_max_range;
+
+	if (start + constraint->min_size - 1 > dev->length - 1)
+		return NULL;
+
+	first_min_max_end = start + constraint->min_size - 1;
+	last_min_max_end = start + constraint->max_size - 1;
+	if (last_min_max_end > dev->length - 1)
+		last_min_max_end = dev->length - 1;
+
+	ped_geometry_init (&end_min_max_range, dev,
+			   first_min_max_end,
+			   last_min_max_end - first_min_max_end + 1);
+
+	return ped_geometry_intersect (&end_min_max_range,
+		       		       constraint->end_range);
+}
+
+/*
+ * Given "constraint" and "start", find the end that is nearest to
+ * "end", such that ("start", the end) together form a solution to
+ * "constraint".
+ */
+static PedSector
+_constraint_get_nearest_end_soln (const PedConstraint* constraint,
+				  PedSector start, PedSector end)
+{
+	PedGeometry*	end_range;
+	PedSector	result;
+
+	end_range = _constraint_get_end_range (constraint, start);
+	if (!end_range)
+		return -1;
+
+	result = ped_alignment_align_nearest (constraint->end_align, end_range,
+		       			      end);
+	ped_geometry_destroy (end_range);
+	return result;
+}
+
+/**
+ * Return the nearest region to \p geom that satisfy a \p constraint.
+ * 
+ * Note that "nearest" is somewhat ambiguous.  This function makes
+ * no guarantees about how this ambiguity is resovled.
+ *
+ * \return PedGeometry, or NULL when a \p constrain cannot be satisfied
+ */
+PedGeometry*
+ped_constraint_solve_nearest (
+	const PedConstraint* constraint, const PedGeometry* geom)
+{
+	PedSector	start;
+	PedSector	end;
+	PedGeometry*	result;
+
+	if (constraint == NULL)
+		return NULL;
+
+	PED_ASSERT (geom != NULL, return NULL);
+	PED_ASSERT (constraint->start_range->dev == geom->dev, return NULL);
+
+	start = _constraint_get_nearest_start_soln (constraint, geom->start);
+	if (start == -1)
+		return NULL;
+	end = _constraint_get_nearest_end_soln (constraint, start, geom->end);
+	if (end == -1)
+		return NULL;
+
+	result = ped_geometry_new (geom->dev, start, end - start + 1);
+	if (!result)
+		return NULL;
+	PED_ASSERT (ped_constraint_is_solution (constraint, result),
+		    return NULL);
+	return result;
+}
+
+/**
+ * Find the largest region that satisfies a constraint.
+ * 
+ * There might be more than one solution.  This function makes no
+ * guarantees about which solution it will choose in this case.
+ */
+PedGeometry*
+ped_constraint_solve_max (const PedConstraint* constraint)
+{
+	PedDevice*	dev;
+	PedGeometry	full_dev;
+
+	if (!constraint)
+		return NULL;
+	dev = constraint->start_range->dev;
+	ped_geometry_init (&full_dev, dev, 0, dev->length - 1);
+	return ped_constraint_solve_nearest (constraint, &full_dev);
+}
+
+/**
+ * Check whether \p geom satisfies the given constraint.
+ *
+ * \return \c 1 if it does.
+ **/
+int
+ped_constraint_is_solution (const PedConstraint* constraint,
+	       		    const PedGeometry* geom)
+{
+	PED_ASSERT (constraint != NULL, return 0);
+	PED_ASSERT (geom != NULL, return 0);
+
+	if (!ped_alignment_is_aligned (constraint->start_align, NULL,
+				       geom->start))
+		return 0;
+	if (!ped_alignment_is_aligned (constraint->end_align, NULL, geom->end))
+		return 0;
+	if (!ped_geometry_test_sector_inside (constraint->start_range,
+					      geom->start))
+		return 0;
+	if (!ped_geometry_test_sector_inside (constraint->end_range, geom->end))
+		return 0;
+	if (geom->length < constraint->min_size)
+		return 0;
+	if (geom->length > constraint->max_size)
+		return 0;
+	return 1;
+}
+
+/**
+ * Return a constraint that any region on the given device will satisfy.
+ */
+PedConstraint*
+ped_constraint_any (const PedDevice* dev)
+{
+	PedGeometry	full_dev;
+
+	if (!ped_geometry_init (&full_dev, dev, 0, dev->length))
+		return NULL;
+
+	return ped_constraint_new (
+			ped_alignment_any,
+		       	ped_alignment_any,
+			&full_dev,
+			&full_dev,
+		       	1,
+			dev->length);
+}
+
+/**
+ * Return a constraint that only the given region will satisfy.
+ */
+PedConstraint*
+ped_constraint_exact (const PedGeometry* geom)
+{
+	PedAlignment	start_align;
+	PedAlignment	end_align;
+	PedGeometry	start_sector;
+	PedGeometry	end_sector;
+
+	ped_alignment_init (&start_align, geom->start, 0);
+	ped_alignment_init (&end_align, geom->end, 0);
+	ped_geometry_init (&start_sector, geom->dev, geom->start, 1);
+	ped_geometry_init (&end_sector, geom->dev, geom->end, 1);
+
+	return ped_constraint_new (&start_align, &end_align,
+				   &start_sector, &end_sector, 1,
+				   geom->dev->length);
+}
+
+/**
+ * @}
+ */
+
diff --git a/parted-1.8.7/libparted/cs/geom.c b/parted-1.8.7/libparted/cs/geom.c
new file mode 100644
index 0000000..8a369bd
--- /dev/null
+++ b/parted-1.8.7/libparted/cs/geom.c
@@ -0,0 +1,475 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 1999, 2000, 2005, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+/** \file geom.c */
+
+
+/**
+ * \addtogroup PedGeometry
+ *
+ * \brief PedGeometry represents a continuous region on a device. All addressing
+ *      through a PedGeometry object is in terms of the start of the continuous
+ *      region.
+ *
+ * The following conditions are always true on a PedGeometry object manipulated
+ * with the GNU Parted API:
+ *
+ * - <tt>start + length - 1 == end</tt>
+ * - <tt>length > 0</tt>
+ * - <tt>start >= 0</tt>
+ * - <tt>end < dev->length</tt>
+ *
+ * @{
+ */
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+/**
+ * Initialize the previously allocated PedGeometry \p geom.
+ */
+int
+ped_geometry_init (PedGeometry* geom, const PedDevice* dev,
+		   PedSector start, PedSector length)
+{
+	PED_ASSERT (geom != NULL, return 0);
+	PED_ASSERT (dev != NULL, return 0);
+
+	geom->dev = (PedDevice*) dev;
+	return ped_geometry_set (geom, start, length);
+}
+
+/**
+ * Create a new PedGeometry object on \p disk, starting at \p start with a
+ * size of \p length sectors.
+ *
+ * \return NULL on failure.
+ */
+PedGeometry*
+ped_geometry_new (const PedDevice* dev, PedSector start, PedSector length)
+{
+	PedGeometry*	geom;
+
+	PED_ASSERT (dev != NULL, return NULL);
+
+	geom = (PedGeometry*) ped_malloc (sizeof (PedGeometry));
+	if (!geom)
+		goto error;
+	if (!ped_geometry_init (geom, dev, start, length))
+		goto error_free_geom;
+	return geom;
+
+error_free_geom:
+	ped_free (geom);
+error:
+	return NULL;
+}
+
+/**
+ * Duplicate a PedGeometry object.
+ *
+ * This function constructs a PedGeometry object that is an identical but
+ * independent copy of \p geom.  Both the input, \p geom, and the output
+ * should be destroyed with ped_geometry_destroy() when they are no
+ * longer needed.
+ * 
+ * \return NULL on failure.
+ */
+PedGeometry*
+ped_geometry_duplicate (const PedGeometry* geom)
+{
+	PED_ASSERT (geom != NULL, return NULL);
+	return ped_geometry_new (geom->dev, geom->start, geom->length);
+}
+
+/**
+ * Return a PedGeometry object that refers to the intersection of
+ * \p a and \p b.
+ *
+ * This function constructs a PedGeometry object that describes the
+ * region that is common to both a and b.  If there is no such common
+ * region, it returns NULL.  (This situation is not treated as an
+ * error by much of GNU Parted.)
+ */
+PedGeometry*
+ped_geometry_intersect (const PedGeometry* a, const PedGeometry* b)
+{
+	PedSector	start;
+	PedSector	end;
+
+	if (!a || !b || a->dev != b->dev)
+		return NULL;
+
+	start = PED_MAX (a->start, b->start);
+	end = PED_MIN (a->end, b->end);
+	if (start > end)
+		return NULL;
+
+	return ped_geometry_new (a->dev, start, end - start + 1);
+}
+
+/**
+ * Destroy a PedGeometry object.
+ */
+void
+ped_geometry_destroy (PedGeometry* geom)
+{
+	PED_ASSERT (geom != NULL, return);
+
+	ped_free (geom);
+}
+
+/**
+ * Assign a new \p start, \p end (implicitly) and \p length to \p geom.
+ *
+ * \p geom->end is calculated from \p start and \p length.
+ */
+int
+ped_geometry_set (PedGeometry* geom, PedSector start, PedSector length)
+{
+	PED_ASSERT (geom != NULL, return 0);
+	PED_ASSERT (geom->dev != NULL, return 0);
+
+	if (length < 1) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Can't have the end before the start!"));
+		return 0;
+	}
+	if (start < 0 || start + length - 1 >= geom->dev->length) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Can't have a partition outside the disk!"));
+		return 0;
+ 	}
+
+	geom->start = start;
+	geom->length = length;
+	geom->end = start + length - 1;
+
+	return 1;
+}
+
+/**
+ * Assign a new start to \p geom without changing \p geom->end.
+ *
+ * \p geom->length is updated accordingly.
+ */
+int
+ped_geometry_set_start (PedGeometry* geom, PedSector start)
+{
+	return ped_geometry_set (geom, start, geom->end - start + 1);
+}
+
+/**
+ * Assign a new end to \p geom without changing \p geom->start.
+ *
+ * \p geom->length is updated accordingly.
+ */
+int
+ped_geometry_set_end (PedGeometry* geom, PedSector end)
+{
+	return ped_geometry_set (geom, geom->start, end - geom->start + 1);
+}
+/**
+ * Test if \p a overlaps with \p b.
+ *
+ * That is, they lie on the same physical device, and they share
+ * the same physical region at least partially.
+ * 
+ * \return 1 if \p a and \p b overlap.
+ */
+int
+ped_geometry_test_overlap (const PedGeometry* a, const PedGeometry* b)
+{
+	PED_ASSERT (a != NULL, return 0);
+	PED_ASSERT (b != NULL, return 0);
+
+	if (a->dev != b->dev)
+		return 0;
+
+	if (a->start < b->start)
+		return a->end >= b->start;
+	else
+		return b->end >= a->start;
+}
+
+/**
+ * Tests if \p b lies completely within \p a.  That is, they lie on the same
+ * physical device, and all of the \p b's region is contained inside
+ * \p a's.
+ *
+ * \return 1 if the region \p b describes is contained entirely inside \p a
+*/
+int
+ped_geometry_test_inside (const PedGeometry* a, const PedGeometry* b)
+{
+	PED_ASSERT (a != NULL, return 0);
+	PED_ASSERT (b != NULL, return 0);
+
+	if (a->dev != b->dev)
+		return 0;
+
+	return b->start >= a->start && b->end <= a->end;
+}
+
+/**
+ * Tests if \a a and \p b refer to the same physical region.
+ * 
+ * \return 1 if \p a and \p b describe the same regions
+ *
+ */
+int
+ped_geometry_test_equal (const PedGeometry* a, const PedGeometry* b)
+{
+	PED_ASSERT (a != NULL, return 0);
+	PED_ASSERT (b != NULL, return 0);
+
+	return a->dev == b->dev
+	       && a->start == b->start
+	       && a->end == b->end;
+}
+
+/**
+ * Tests if \p sector is inside \p geom.
+ *
+ * \return 1 if sector lies within the \p region that \p geom describes
+ */
+int
+ped_geometry_test_sector_inside (const PedGeometry* geom, PedSector sector)
+{
+	PED_ASSERT (geom != NULL, return 0);
+
+	return sector >= geom->start && sector <= geom->end;
+}
+
+/** 
+ * Reads data from the region represented by \p geom.  \p offset is the
+ * location from within the region, not from the start of the disk.
+ * \p count sectors are read into \p buffer.
+ * This is essentially equivalent to:
+ * \code
+ * 	ped_device_read (geom->disk->dev, buffer, geom->start + offset, count)
+ * \endcode
+ *
+ * \throws PED_EXCEPTION_ERROR when attempting to read sectors outside of
+ * partition
+ *
+ * \return 0 on failure
+ */
+int
+ped_geometry_read (const PedGeometry* geom, void* buffer, PedSector offset,
+		   PedSector count)
+{
+	PedSector	real_start;
+
+	PED_ASSERT (geom != NULL, return 0);
+	PED_ASSERT (buffer != NULL, return 0);
+	PED_ASSERT (offset >= 0, return 0);
+	PED_ASSERT (count >= 0, return 0);
+	
+	real_start = geom->start + offset;
+
+	if (real_start + count - 1 > geom->end)
+		return 0;
+
+	if (!ped_device_read (geom->dev, buffer, real_start, count))
+		return 0;
+	return 1;
+}
+
+/**
+ * Flushes the cache on \p geom.
+ *  
+ * This function flushes all write-behind caches that might be holding
+ * writes made by ped_geometry_write() to \p geom.  It is slow, because
+ * it guarantees cache coherency among all relevant caches.
+ * 
+ * \return 0 on failure
+ */
+int
+ped_geometry_sync (PedGeometry* geom)
+{
+	PED_ASSERT (geom != NULL, return 0);
+	return ped_device_sync (geom->dev);
+}
+
+/**
+ * Flushes the cache on \p geom. 
+ *
+ * This function flushes all write-behind caches that might be holding writes
+ * made by ped_geometry_write() to \p geom.  It does NOT ensure cache coherency
+ * with other caches that cache data in the region described by \p geom. 
+ * If you need cache coherency, use ped_geometry_sync() instead.
+ * 
+ * \return 0 on failure
+ */
+int
+ped_geometry_sync_fast (PedGeometry* geom)
+{
+	PED_ASSERT (geom != NULL, return 0);
+	return ped_device_sync_fast (geom->dev);
+}
+
+/**
+ * Writes data into the region represented by \p geom.  \p offset is the
+ * location from within the region, not from the start of the disk.
+ * \p count sectors are written.
+ *
+ * \return 0 on failure
+ */
+int
+ped_geometry_write (PedGeometry* geom, const void* buffer, PedSector offset,
+		    PedSector count)
+{
+	int		exception_status;
+	PedSector	real_start;
+
+	PED_ASSERT (geom != NULL, return 0);
+	PED_ASSERT (buffer != NULL, return 0);
+	PED_ASSERT (offset >= 0, return 0);
+	PED_ASSERT (count >= 0, return 0);
+	
+	real_start = geom->start + offset;
+
+	if (real_start + count - 1 > geom->end) {
+		exception_status = ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_IGNORE_CANCEL,
+			_("Attempt to write sectors %ld-%ld outside of "
+			  "partition on %s."),
+			(long) offset, (long) (offset + count - 1),
+			geom->dev->path);
+		return exception_status == PED_EXCEPTION_IGNORE;
+	}
+
+	if (!ped_device_write (geom->dev, buffer, real_start, count))
+		return 0;
+	return 1;
+}
+
+/**
+ * Checks for physical disk errors.  \todo use ped_device_check()
+ *
+ * Checks a region for physical defects on \p geom.  \p buffer is used
+ * for temporary storage for ped_geometry_check(), and has an undefined
+ * value.  \p buffer is \p buffer_size sectors long.
+ * The region checked starts at \p offset sectors inside the
+ * region represented by \p geom, and is \p count sectors long.
+ * \p granularity specificies how sectors should be grouped
+ * together.  The first bad sector to be returned will always be in
+ * the form:
+ * 	<tt>offset + n * granularity</tt>
+ *
+ * \return the first bad sector, or 0 if there were no physical errors
+ */
+PedSector
+ped_geometry_check (PedGeometry* geom, void* buffer, PedSector buffer_size,
+		    PedSector offset, PedSector granularity, PedSector count,
+		    PedTimer* timer)
+{
+	PedSector	group;
+	PedSector	i;
+	PedSector	read_len;
+
+	PED_ASSERT (geom != NULL, return 0);
+	PED_ASSERT (buffer != NULL, return 0);
+
+	ped_timer_reset (timer);
+	ped_timer_set_state_name (timer, _("checking for bad blocks"));
+
+retry:
+	ped_exception_fetch_all();
+	for (group = offset; group < offset + count; group += buffer_size) {
+		ped_timer_update (timer, 1.0 * (group - offset) / count);
+		read_len = PED_MIN (buffer_size, offset + count - group);
+		if (!ped_geometry_read (geom, buffer, group, read_len))
+			goto found_error;
+	}
+	ped_exception_leave_all();
+	ped_timer_update (timer, 1.0);
+	return 0;
+
+found_error:
+	ped_exception_catch();
+	for (i = group; i + granularity < group + count; i += granularity) {
+		if (!ped_geometry_read (geom, buffer, i, granularity)) {
+			ped_exception_catch();
+			ped_exception_leave_all();
+			return i;
+		}
+	}
+	ped_exception_leave_all();
+	goto retry;   /* weird: failure on group read, but not individually */
+}
+
+/**
+ * This function takes a \p sector inside the region described by src, and
+ * returns that sector's address inside dst.  This means that
+ *
+ * \code
+ * 	ped_geometry_read (dst, buf, ped_geometry_map(dst, src, sector), 1)
+ * \endcode
+ *
+ * does the same thing as
+ * 
+ * \code
+ * 	ped_geometry_read (src, buf, sector, 1)
+ * \endcode
+ *
+ * Clearly, this will only work if \p src and \p dst overlap.  
+ *
+ * \return -1 if \p sector is not within \p dst's space, 
+ * 	or \p sector's address inside \p dst
+ * 
+ */
+PedSector
+ped_geometry_map (const PedGeometry* dst, const PedGeometry* src,
+		  PedSector sector)
+{
+	PedSector	result;
+
+	PED_ASSERT (dst != NULL, return 0);
+	PED_ASSERT (src != NULL, return 0);
+
+	if (!ped_geometry_test_sector_inside (src, sector))
+		return -1;
+	if (dst->dev != src->dev)
+		return -1;
+
+	result = src->start + sector - dst->start;
+	if (result < 0 || result > dst->length)
+		return -1;
+
+	return result;
+}
+
+/** @} */
+
diff --git a/parted-1.8.7/libparted/cs/natmath.c b/parted-1.8.7/libparted/cs/natmath.c
new file mode 100644
index 0000000..f725cbb
--- /dev/null
+++ b/parted-1.8.7/libparted/cs/natmath.c
@@ -0,0 +1,496 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2000, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+/**
+ * \file natmath.c
+ */
+
+/**
+ * \addtogroup PedAlignment
+ *
+ * \brief Alignment constraint model.
+ *
+ * This part of libparted models alignment constraints.
+ *
+ * @{
+ */
+
+#include <config.h>
+#include <stdlib.h>
+#include <parted/parted.h>
+#include <parted/debug.h>
+#include <parted/natmath.h>
+
+/* Arrrghhh!  Why doesn't C have tuples? */
+typedef struct {
+	PedSector	gcd;		/* "converges" to the gcd */
+	PedSector	x;
+	PedSector	y;
+} EuclidTriple;
+
+static const PedAlignment _any = {
+	offset:		0,
+	grain_size:	1
+};
+
+const PedAlignment* ped_alignment_any = &_any;
+const PedAlignment* ped_alignment_none = NULL;
+
+/* This function returns "a mod b", the way C should have done it!
+ * Mathematicians prefer -3 mod 4 to be 3.  Reason: division by N
+ * is all about adding or subtracting N, and we like our remainders
+ * to be between 0 and N - 1.
+ */
+PedSector
+abs_mod (PedSector a, PedSector b)
+{
+	if (a < 0)
+		return a % b + b;
+	else
+		return a % b;
+}
+
+/* Rounds a number down to the closest number that is a multiple of
+ * grain_size.
+ */
+PedSector
+ped_round_down_to (PedSector sector, PedSector grain_size)
+{
+	return sector - abs_mod (sector, grain_size);
+}
+
+inline PedSector
+ped_div_round_up (PedSector numerator, PedSector divisor)
+{
+                return (numerator + divisor - 1) / divisor;
+}
+
+inline PedSector
+ped_div_round_to_nearest (PedSector numerator, PedSector divisor)
+{
+                return (numerator + divisor/2) / divisor;
+}
+
+/* Rounds a number up to the closest number that is a multiple of
+ * grain_size.
+ */
+PedSector
+ped_round_up_to (PedSector sector, PedSector grain_size)
+{
+	if (sector % grain_size)
+		return ped_round_down_to (sector, grain_size) + grain_size;
+	else
+		return sector;
+}
+
+/* Rounds a number to the closest number that is a multiple of grain_size. */
+PedSector
+ped_round_to_nearest (PedSector sector, PedSector grain_size)
+{
+	if (sector % grain_size > grain_size/2)
+		return ped_round_up_to (sector, grain_size);
+	else
+		return ped_round_down_to (sector, grain_size);
+}
+
+/* This function returns the largest number that divides both a and b.
+ * It uses the ancient Euclidean algorithm.
+ */
+PedSector
+ped_greatest_common_divisor (PedSector a, PedSector b)
+{
+	PED_ASSERT (a >= 0, return 0);
+	PED_ASSERT (b >= 0, return 0);
+
+	/* Put the arguments in the "right" format.  (Recursive calls made by
+	 * this function are always in the right format.)
+	 */
+	if (b > a)
+		return ped_greatest_common_divisor (b, a);
+
+	if (b)
+		return ped_greatest_common_divisor (b, a % b);
+	else
+		return a;
+}
+
+/**
+ * Initialize a preallocated piece of memory for an alignment object
+ * (used by PedConstraint).
+ *
+ * The object will represent all sectors \e s for which the equation 
+ * <tt>s = offset + X * grain_size</tt> holds.
+ */
+int
+ped_alignment_init (PedAlignment* align, PedSector offset, PedSector grain_size)
+{
+	PED_ASSERT (align != NULL, return 0);
+
+	if (grain_size < 0)
+		return 0;
+
+	if (grain_size)
+		align->offset = abs_mod (offset, grain_size);
+	else
+		align->offset = offset;
+	align->grain_size = grain_size;
+
+	return 1;
+}
+
+/**
+ * Return an alignment object (used by PedConstraint), representing all
+ * PedSector's that are of the form <tt>offset + X * grain_size</tt>.
+ */
+PedAlignment*
+ped_alignment_new (PedSector offset, PedSector grain_size)
+{
+	PedAlignment*	align;
+
+	align = (PedAlignment*) ped_malloc (sizeof (PedAlignment));
+	if (!align)
+		goto error;
+
+	if (!ped_alignment_init (align, offset, grain_size))
+		goto error_free_align;
+
+	return align;
+
+error_free_align:
+	ped_free (align);
+error:
+	return NULL;
+}
+
+/**
+ * Free up memory associated with \p align.
+ */
+void
+ped_alignment_destroy (PedAlignment* align)
+{
+	if (align)
+		ped_free (align);
+}
+
+/**
+ * Return a duplicate of \p align.
+ */
+PedAlignment*
+ped_alignment_duplicate (const PedAlignment* align)
+{
+	if (!align)
+		return NULL;
+	return ped_alignment_new (align->offset, align->grain_size);
+}
+
+/* the extended Euclid algorithm.
+ *
+ * input:
+ * 	a and b, a > b
+ *
+ * output:
+ * 	gcd, x and y, such that:
+ *
+ * 	gcd = greatest common divisor of a and b
+ * 	gcd = x*a + y*b
+ */
+EuclidTriple
+extended_euclid (int a, int b)
+{
+	EuclidTriple	result;
+	EuclidTriple	tmp;
+
+	if (b == 0) {
+		result.gcd = a;
+		result.x = 1;
+		result.y = 0;
+		return result;
+	}
+
+	tmp = extended_euclid (b, a % b);
+	result.gcd = tmp.gcd;
+	result.x = tmp.y;
+	result.y = tmp.x - (a/b) * tmp.y;
+	return result;
+}
+
+/**
+ * This function computes a PedAlignment object that describes the
+ * intersection of two alignments.  That is, a sector satisfies the
+ * new alignment object if and only if it satisfies both of the original
+ * ones.  (See ped_alignment_is_aligned() for the meaning of "satisfies")
+ * 
+ * Apart from the trivial cases (where one or both of the alignment objects
+ * constraints have no sectors that satisfy them), this is what we're trying to
+ * do:
+ *  - two input constraints: \p a and \p b.
+ *  - the new grain_size is going to be the lowest common multiple of
+ *  \p a->grain_size and \p b->grain_size
+ *  - hard part - solve the simultaneous equations, for offset, where offset,
+ *  X and Y are variables.  (Note: offset can be obtained from either X or Y,
+ *  by substituing into either equation)
+ * 
+ * \code
+ *  	offset = \p a->offset + X * \p a->grain_size		(1)
+ *  	offset = \p b->offset + Y * \p b->grain_size		(2)
+ * \endcode
+ * 
+ * or, abbreviated:
+ *
+ * \code
+ *  	o = Ao + X*Ag		(1)
+ *  	o = Bo + Y*Bg		(2)
+ * 
+ *  =>	Ao + X*Ag    = Bo + Y*Bg     (1) = (2)
+ *  	X*Ag - Y*Bg  = Bo - Ao  (3)
+ * \endcode
+ *
+ * As it turns out, there only exists a solution if (Bo - Ao) is a multiple
+ * of the GCD of Ag and Bg.  Reason: all linear combinations of Ag and Bg are
+ * multiples of the GCD.
+ *
+ * Proof:
+ *
+ * \code
+ *	A * Ag + B * Bg
+ *	= A * (\p a * gcd) + B * (\p b * gcd)
+ *	= gcd * (A * \p a + B * \p b)
+ * \endcode
+ *
+ * gcd is a factor of the linear combination.  QED
+ * 
+ * Anyway, \p a * Ag + \p b * Bg = gcd can be solved (for \p a, \p b and gcd) 
+ * with Euclid's extended algorithm.  Then, we just multiply through by 
+ * (Bo - Ao) / gcd to get (3).
+ *
+ * i.e.
+ * \code
+ * 	A * Ag + B * Bg				= gcd
+ * 	A*(Bo-Ao)/gcd * Ag + B(Bo-Ao)/gcd * Bg	= gcd * (Bo-Ao)/gcd
+ * 	X*Ag - Y*Bg				= Bo - Ao		(3)
+ *
+ * 	X = A*(Bo-Ao)/gcd
+ * 	Y = - B*(Bo-Ao)/gcd
+ * \endcode
+ * 
+ * then:
+ * \code
+ *  	o = Ao + X*Ag			(1)
+ *	  = Ao + A*(Bo-Ao)/gcd*Ag
+ *  	o = Bo + Y*Bg			(2)
+ *	  = Bo - B*(Bo-Ao)/gcd*Ag
+ * \endcode
+ *
+ * Thanks go to Nathan Hurst (njh@hawthorn.csse.monash.edu.au) for figuring
+ * this algorithm out :-)
+ *
+ * \note Returned \c NULL is a valid PedAlignment object, and can be used
+	for ped_alignment_*() function.
+ *
+ * \return a PedAlignment on success, \c NULL on failure
+ */
+PedAlignment*
+ped_alignment_intersect (const PedAlignment* a, const PedAlignment* b)
+{
+	PedSector	new_grain_size;
+	PedSector	new_offset;
+	PedSector	delta_on_gcd;
+	EuclidTriple	gcd_factors;
+
+        
+	if (!a || !b)
+		return NULL;
+
+        /*PED_DEBUG (0x10, "intersecting alignments (%d,%d) and (%d,%d)",
+                        a->offset, a->grain_size, b->offset, b->grain_size);
+        */
+        
+	if (a->grain_size < b->grain_size) {
+		const PedAlignment*	tmp;
+	        tmp = a; a = b; b = tmp;
+	}
+
+	/* weird/trivial case: where the solution space for "a" or "b" is
+	 * either empty or contains exactly one solution
+	 */
+	if (a->grain_size == 0 && b->grain_size == 0) {
+		if (a->offset == b->offset)
+			return ped_alignment_duplicate (a);
+		else
+			return NULL;
+	}
+
+	/* general case */
+	gcd_factors = extended_euclid (a->grain_size, b->grain_size);
+
+	delta_on_gcd = (b->offset - a->offset) / gcd_factors.gcd;
+	new_offset = a->offset + gcd_factors.x * delta_on_gcd * a->grain_size;
+	new_grain_size = a->grain_size * b->grain_size / gcd_factors.gcd;
+
+	/* inconsistency => no solution */
+	if (new_offset
+	    != b->offset - gcd_factors.y * delta_on_gcd * b->grain_size)
+		return NULL;
+
+	return ped_alignment_new (new_offset, new_grain_size);
+}
+
+/* This function returns the sector closest to "sector" that lies inside
+ * geom and satisfies the alignment constraint.
+ */
+static PedSector
+_closest_inside_geometry (const PedAlignment* align, const PedGeometry* geom,
+			  PedSector sector)
+{
+	PED_ASSERT (align != NULL, return -1);
+
+	if (!align->grain_size) {
+		if (ped_alignment_is_aligned (align, geom, sector)
+		    && (!geom || ped_geometry_test_sector_inside (geom,
+				    				  sector)))
+			return sector;
+		else
+			return -1;
+	}
+
+	if (sector < geom->start)
+		sector += ped_round_up_to (geom->start - sector,
+					   align->grain_size);
+	if (sector > geom->end)
+		sector -= ped_round_up_to (sector - geom->end,
+					   align->grain_size);
+
+	if (!ped_geometry_test_sector_inside (geom, sector))
+		return -1;
+	return sector;
+}
+
+/**
+ * This function returns the closest sector to \p sector that lies inside
+ * \p geom that satisfies the given alignment constraint \p align.  It prefers
+ * sectors that are beyond \p sector (are not smaller than \p sector), 
+ * but does not guarantee that this.
+ *
+ * \return a PedSector on success, \c -1 on failure
+ */
+PedSector
+ped_alignment_align_up (const PedAlignment* align, const PedGeometry* geom,
+			PedSector sector)
+{
+	PedSector	result;
+
+	PED_ASSERT (align != NULL, return -1);
+
+	if (!align->grain_size)
+		result = align->offset;
+	else
+		result = ped_round_up_to (sector - align->offset,
+			       		  align->grain_size)
+			 + align->offset;
+
+	if (geom)
+		result = _closest_inside_geometry (align, geom, result);
+	return result;
+}
+
+/**
+ * This function returns the closest sector to \p sector that lies inside
+ * \p geom that satisfies the given alignment constraint \p align.  It prefers
+ * sectors that are before \p sector (are not larger than \p sector),
+ * but does not guarantee that this.
+ *
+ * \return a PedSector on success, \c -1 on failure
+ */
+PedSector
+ped_alignment_align_down (const PedAlignment* align, const PedGeometry* geom,
+			  PedSector sector)
+{
+	PedSector	result;
+
+	PED_ASSERT (align != NULL, return -1);
+
+	if (!align->grain_size)
+		result = align->offset;
+	else
+		result = ped_round_down_to (sector - align->offset,
+			      		    align->grain_size)
+			 + align->offset;
+
+	if (geom)
+		result = _closest_inside_geometry (align, geom, result);
+	return result;
+}
+
+/* Returns either a or b, depending on which is closest to "sector". */
+static PedSector
+closest (PedSector sector, PedSector a, PedSector b)
+{
+	if (a == -1)
+		return b;
+	if (b == -1)
+		return a;
+
+	if (abs (sector - a) < abs (sector - b))
+		return a;
+	else
+		return b;
+}
+
+/**
+ * This function returns the sector that is closest to \p sector, 
+ * satisfies the \p align constraint and lies inside \p geom.
+ *
+ * \return a PedSector on success, \c -1 on failure
+ */
+PedSector
+ped_alignment_align_nearest (const PedAlignment* align, const PedGeometry* geom,
+			     PedSector sector)
+{
+	PED_ASSERT (align != NULL, return -1);
+
+	return closest (sector, ped_alignment_align_up (align, geom, sector),
+			ped_alignment_align_down (align, geom, sector));
+}
+
+/**
+ * This function returns 1 if \p sector satisfies the alignment 
+ * constraint \p align and lies inside \p geom.
+ *
+ * \return \c 1 on success, \c 0 on failure
+ */
+int
+ped_alignment_is_aligned (const PedAlignment* align, const PedGeometry* geom,
+			  PedSector sector)
+{
+	if (!align)
+		return 0;
+
+	if (geom && !ped_geometry_test_sector_inside (geom, sector))
+		return 0;
+
+	if (align->grain_size)
+		return (sector - align->offset) % align->grain_size == 0;
+	else
+		return sector == align->offset;
+}
+
+/**
+ * @}
+ */
+
diff --git a/parted-1.8.7/libparted/debug.c b/parted-1.8.7/libparted/debug.c
new file mode 100644
index 0000000..82d05c4
--- /dev/null
+++ b/parted-1.8.7/libparted/debug.c
@@ -0,0 +1,121 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2000, 2005, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+#include <parted/parted.h>
+#include <parted/debug.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#ifdef DEBUG
+
+#if HAVE_BACKTRACE
+#include <execinfo.h>
+#endif
+
+static void default_handler ( const int level, const char* file, int line,
+                const char* function, const char* msg );
+static PedDebugHandler* debug_handler = &default_handler;
+
+
+/**
+ * Default debug handler.
+ * Will print all information to stderr.
+ */
+static void default_handler ( const int level, const char* file, int line,
+                const char* function, const char* msg )
+{
+        fprintf ( stderr, "[%d] %s:%d (%s): %s\n",
+                        level, file, line, function, msg );
+}
+
+/**
+ * Send a debug message.
+ * Do not call this directly -- use PED_DEBUG() instead.
+ *
+ * level        log level, 0 ~= "print definitely"
+ */
+void ped_debug ( const int level, const char* file, int line,
+                 const char* function, const char* msg, ... )
+{
+        va_list         arg_list;
+        char*           msg_concat = ped_malloc(8192);
+        
+        va_start ( arg_list, msg );
+                vsnprintf ( msg_concat, 8192, msg, arg_list );
+        va_end ( arg_list );
+        
+        debug_handler ( level, file, line, function, msg_concat );
+
+        ped_free ( msg_concat );
+}
+
+/*
+ * handler      debug handler; NULL for default handler
+ */
+void ped_debug_set_handler ( PedDebugHandler* handler )
+{
+        debug_handler = ( handler ? handler : default_handler );
+}
+
+/*
+ * Check an assertion.
+ * Do not call this directly -- use PED_ASSERT() instead.
+ */
+int ped_assert ( int cond, const char* cond_text,
+	    const char* file, int line, const char* function )
+{
+	PedExceptionOption	opt;
+
+	if ( cond )
+		return 1;
+
+#if HAVE_BACKTRACE
+	/* Print backtrace stack */
+	void *stack[20];
+	char **strings, **string;
+        int size = backtrace(stack, 20);
+	strings = backtrace_symbols(stack, size);
+
+	if (strings) {
+		printf(_("Backtrace has %d calls on stack:\n"), size);
+		for (string = strings; size > 0; size--, string++)
+			printf("  %d: %s\n", size, *string);
+
+		free(strings);
+	}
+#endif
+
+	/* Throw the exception */
+	opt = ped_exception_throw (
+		PED_EXCEPTION_BUG,
+		PED_EXCEPTION_IGNORE_CANCEL,
+		_("Assertion (%s) at %s:%d in function %s() failed."),
+		cond_text, file, line, function );
+
+	return ( opt == PED_EXCEPTION_IGNORE );
+}
+
+#endif /* DEBUG */
+
diff --git a/parted-1.8.7/libparted/device.c b/parted-1.8.7/libparted/device.c
new file mode 100644
index 0000000..e079fca
--- /dev/null
+++ b/parted-1.8.7/libparted/device.c
@@ -0,0 +1,443 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 1999 - 2001, 2005, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+/** \file device.c */
+
+/**
+ * \addtogroup PedDevice
+ *
+ * \brief Device access.
+ * 
+ * When ped_device_probe_all() is called, libparted attempts to detect all
+ * devices.  It constructs a list which can be accessed with
+ * ped_device_get_next().
+ * 
+ * If you want to use a device that isn't on the list, use
+ * ped_device_get().  Also, there may be OS-specific constructors, for creating
+ * devices from file descriptors, stores, etc.  For example,
+ * ped_device_new_from_store().
+ *
+ * @{
+ */
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+
+#include <limits.h>
+#include <unistd.h>
+#include <errno.h>
+
+static PedDevice*	devices; /* legal advice says: initialized to NULL,
+				    under section 6.7.8 part 10
+				    of ISO/EIC 9899:1999 */
+
+#ifndef HAVE_CANONICALIZE_FILE_NAME
+char *
+canonicalize_file_name (const char *name)
+{
+	char *	buf;
+	int	size;
+	char *	result;
+
+#ifdef PATH_MAX
+	size = PATH_MAX;
+#else
+	/* Bigger is better; realpath has no way todo bounds checking.  */
+	size = 4096;
+#endif
+
+	/* Just in case realpath does not NULL terminate the string
+	 * or it just fits in SIZE without a NULL terminator.  */
+	buf = calloc (size + 1, sizeof(char));
+	if (! buf) {
+		errno = ENOMEM;
+		return NULL;
+	}
+
+	result = realpath (name, buf);
+	if (! result)
+		free (buf);
+
+	return result;
+}
+#endif /* !HAVE_CANONICALIZE_FILE_NAME */
+
+static void
+_device_register (PedDevice* dev)
+{
+	PedDevice*	walk;
+	for (walk = devices; walk && walk->next; walk = walk->next);
+	if (walk)
+		walk->next = dev;
+	else
+		devices = dev;
+	dev->next = NULL;
+}
+
+static void
+_device_unregister (PedDevice* dev)
+{
+	PedDevice*	walk;
+	PedDevice*	last = NULL;
+
+	for (walk = devices; walk != NULL; last = walk, walk = walk->next) {
+		if (walk == dev) break;
+	}
+
+	if (last)
+		last->next = dev->next;
+	else
+		devices = dev->next;
+}
+
+/**
+ * Returns the next device that was detected by ped_device_probe_all(), or
+ * calls to ped_device_get_next().
+ * If dev is NULL, returns the first device.
+ *
+ * \return NULL if dev is the last device.
+ */
+PedDevice*
+ped_device_get_next (const PedDevice* dev)
+{
+	if (dev)
+		return dev->next;
+	else
+		return devices;
+}
+
+void
+_ped_device_probe (const char* path)
+{
+	PedDevice*	dev;
+
+	PED_ASSERT (path != NULL, return);
+
+	ped_exception_fetch_all ();
+	dev = ped_device_get (path);
+	if (!dev)
+		ped_exception_catch ();
+	ped_exception_leave_all ();
+}
+
+/**
+ * Attempts to detect all devices.
+ */
+void
+ped_device_probe_all ()
+{
+	ped_architecture->dev_ops->probe_all ();
+}
+
+/**
+ * Close/free all devices.
+ * Called by ped_done(), so you do not need to worry about it.
+ */
+void
+ped_device_free_all ()
+{
+	while (devices)
+		ped_device_destroy (devices);
+}
+
+/**
+ * Gets the device "name", where name is usually the block device, e.g.
+ * /dev/sdb.  If the device wasn't detected with ped_device_probe_all(),
+ * an attempt will be made to detect it again.  If it is found, it will
+ * be added to the list.
+ */
+PedDevice*
+ped_device_get (const char* path)
+{
+	PedDevice*	walk;
+	char*		normal_path;
+
+	PED_ASSERT (path != NULL, return NULL);
+	normal_path = canonicalize_file_name (path);
+	if (!normal_path)
+		/* Well, maybe it is just that the file does not exist.
+		 * Try it anyway.  */
+		normal_path = strdup (path);
+	if (!normal_path)
+		return NULL;
+
+	for (walk = devices; walk != NULL; walk = walk->next) {
+		if (!strcmp (walk->path, normal_path)) {
+			ped_free (normal_path);
+			return walk;
+		}
+	}
+
+	walk = ped_architecture->dev_ops->_new (normal_path);
+	ped_free (normal_path);
+	if (!walk)
+		return NULL;
+	_device_register (walk);
+	return walk;
+}
+
+/**
+ * Destroys a device and removes it from the device list, and frees
+ * all resources associated with the device (all resources allocated
+ * when the device was created).
+ */
+void
+ped_device_destroy (PedDevice* dev)
+{
+	_device_unregister (dev);
+
+	while (dev->open_count) {
+		if (!ped_device_close (dev))
+			break;
+	}
+
+	ped_architecture->dev_ops->destroy (dev);
+}
+
+void
+ped_device_cache_remove(PedDevice *dev)
+{
+	_device_unregister (dev);
+}
+
+int
+ped_device_is_busy (PedDevice* dev)
+{
+	return ped_architecture->dev_ops->is_busy (dev);
+}
+
+/**
+ * Attempt to open a device to allow use of read, write and sync functions.
+ *
+ * The meaning of "open" is architecture-dependent.  Apart from requesting
+ * access to the device from the operating system, it does things like flushing
+ * caches.
+ * \note May allocate resources.  Any resources allocated here will
+ * be freed by a final ped_device_close().  (ped_device_open() may be
+ * called multiple times -- it's a ref-count-like mechanism)
+ *
+ * \return zero on failure
+ */
+int
+ped_device_open (PedDevice* dev)
+{
+	int	status;
+
+	PED_ASSERT (dev != NULL, return 0);
+	PED_ASSERT (!dev->external_mode, return 0);
+
+	if (dev->open_count)
+		status = ped_architecture->dev_ops->refresh_open (dev);
+	else
+		status = ped_architecture->dev_ops->open (dev);
+	if (status)
+		dev->open_count++;
+	return status;
+}
+
+/**
+ * Close dev.
+ * If this is the final close, then resources allocated by
+ * ped_device_open() are freed.
+ *
+ * \return zero on failure
+ */
+int
+ped_device_close (PedDevice* dev)
+{
+	PED_ASSERT (dev != NULL, return 0);
+	PED_ASSERT (!dev->external_mode, return 0);
+	PED_ASSERT (dev->open_count > 0, return 0);
+
+	if (--dev->open_count)
+		return ped_architecture->dev_ops->refresh_close (dev);
+	else
+		return ped_architecture->dev_ops->close (dev);
+}
+
+/**
+ * Begins external access mode.  External access mode allows you to
+ * safely do IO on the device.  If a PedDevice is open, then you should
+ * not do any IO on that device, e.g. by calling an external program
+ * like e2fsck, unless you put it in external access mode.  You should
+ * not use any libparted commands that do IO to a device, e.g.
+ * ped_file_system_{open|resize|copy}, ped_disk_{read|write}), while
+ * a device is in external access mode.
+ * Also, you should not ped_device_close() a device, while it is
+ * in external access mode.
+ * Note: ped_device_begin_external_access_mode() does things like
+ * tell the kernel to flush its caches.
+ *
+ * Close a device while pretending it is still open.
+ * This is useful for temporarily suspending libparted access to the device
+ * in order for an external program to access it.
+ * (Running external programs while the device is open can cause cache
+ * coherency problems.)
+ *
+ * In particular, this function keeps track of dev->open_count, so that
+ * reference counting isn't screwed up.
+ *
+ * \return zero on failure.
+ */
+int
+ped_device_begin_external_access (PedDevice* dev)
+{
+	PED_ASSERT (dev != NULL, return 0);
+	PED_ASSERT (!dev->external_mode, return 0);
+
+	dev->external_mode = 1;
+	if (dev->open_count)
+		return ped_architecture->dev_ops->close (dev);
+	else
+		return 1;
+}
+
+/**
+ * \brief Complementary function to ped_device_begin_external_access.
+ *
+ * \note does things like tell the kernel to flush the device's cache.
+ *
+ * \return zero on failure.
+ */
+int
+ped_device_end_external_access (PedDevice* dev)
+{
+	PED_ASSERT (dev != NULL, return 0);
+	PED_ASSERT (dev->external_mode, return 0);
+
+	dev->external_mode = 0;
+	if (dev->open_count)
+		return ped_architecture->dev_ops->open (dev);
+	else
+		return 1;
+}
+
+/**
+ * \internal Read count sectors from dev into buffer, beginning with sector
+ * start.
+ * 
+ * \return zero on failure.
+ */
+int
+ped_device_read (const PedDevice* dev, void* buffer, PedSector start,
+		 PedSector count)
+{
+	PED_ASSERT (dev != NULL, return 0);
+	PED_ASSERT (buffer != NULL, return 0);
+	PED_ASSERT (!dev->external_mode, return 0);
+	PED_ASSERT (dev->open_count > 0, return 0);
+
+	return (ped_architecture->dev_ops->read) (dev, buffer, start, count);
+}
+
+/**
+ * \internal Write count sectors from buffer to dev, starting at sector
+ * start.
+ * 
+ * \return zero on failure.
+ *
+ * \sa PedDevice::sector_size
+ * \sa PedDevice::phys_sector_size
+ */
+int
+ped_device_write (PedDevice* dev, const void* buffer, PedSector start,
+		  PedSector count)
+{
+	PED_ASSERT (dev != NULL, return 0);
+	PED_ASSERT (buffer != NULL, return 0);
+	PED_ASSERT (!dev->external_mode, return 0);
+	PED_ASSERT (dev->open_count > 0, return 0);
+
+	return (ped_architecture->dev_ops->write) (dev, buffer, start, count);
+}
+
+PedSector
+ped_device_check (PedDevice* dev, void* buffer, PedSector start,
+		  PedSector count)
+{
+	PED_ASSERT (dev != NULL, return 0);
+	PED_ASSERT (!dev->external_mode, return 0);
+	PED_ASSERT (dev->open_count > 0, return 0);
+
+	return (ped_architecture->dev_ops->check) (dev, buffer, start, count);
+}
+
+/**
+ * \internal Flushes all write-behind caches that might be holding up
+ * writes.
+ * It is slow because it guarantees cache coherency among all relevant caches.
+ *
+ * \return zero on failure
+ */
+int
+ped_device_sync (PedDevice* dev)
+{
+	PED_ASSERT (dev != NULL, return 0);
+	PED_ASSERT (!dev->external_mode, return 0);
+	PED_ASSERT (dev->open_count > 0, return 0);
+
+	return ped_architecture->dev_ops->sync (dev);
+}
+
+/**
+ * \internal Flushes all write-behind caches that might be holding writes.
+ * \warning Does NOT ensure cache coherency with other caches.
+ * If you need cache coherency, use ped_device_sync() instead.
+ *
+ * \return zero on failure
+ */
+int
+ped_device_sync_fast (PedDevice* dev)
+{
+	PED_ASSERT (dev != NULL, return 0);
+	PED_ASSERT (!dev->external_mode, return 0);
+	PED_ASSERT (dev->open_count > 0, return 0);
+
+	return ped_architecture->dev_ops->sync_fast (dev);
+}
+
+/**
+ * Get a constraint that represents hardware requirements on alignment and
+ * geometry.
+ * This is, for example, important for media that have a physical sector
+ * size that is a multiple of the logical sector size.
+ *
+ * \warning This function is experimental for physical sector sizes not equal to
+ *          2^9.
+ */
+PedConstraint*
+ped_device_get_constraint (PedDevice* dev)
+{
+        int multiplier = dev->phys_sector_size / dev->sector_size;
+
+        PedAlignment* start_align = ped_alignment_new (multiplier, multiplier);
+        
+        PedConstraint* c = ped_constraint_new (
+                                start_align, ped_alignment_any,
+                                ped_geometry_new (dev, 0, dev->length),
+                                ped_geometry_new (dev, 0, dev->length),
+                                1, dev->length);
+
+        return c;
+}
+
+/** @} */
+
diff --git a/parted-1.8.7/libparted/disk.c b/parted-1.8.7/libparted/disk.c
new file mode 100644
index 0000000..9831702
--- /dev/null
+++ b/parted-1.8.7/libparted/disk.c
@@ -0,0 +1,2266 @@
+ /*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005, 2007
+                  Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+/** \file disk.c */
+
+/**
+ * \addtogroup PedDisk
+ *
+ * \brief Disk label access.
+ * 
+ * Most programs will need to use ped_disk_new() or ped_disk_new_fresh() to get
+ * anything done.  A PedDisk is always associated with a device and has a
+ * partition table.  There are different types of partition tables (or disk
+ * labels).  These are represented by the PedDiskType enumeration.
+ *
+ * @{
+ */
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#  define N_(String) (String)
+#else
+#  define _(String) (String)
+#  define N_(String) (String)
+#endif /* ENABLE_NLS */
+
+/* UPDATE MODE functions */
+#ifdef DEBUG
+static int _disk_check_sanity (PedDisk* disk);
+#endif
+static void _disk_push_update_mode (PedDisk* disk);
+static void _disk_pop_update_mode (PedDisk* disk);
+static int _disk_raw_insert_before (PedDisk* disk, PedPartition* loc,
+				    PedPartition* part);
+static int _disk_raw_insert_after (PedDisk* disk, PedPartition* loc,
+				   PedPartition* part);
+static int _disk_raw_remove (PedDisk* disk, PedPartition* part);
+static int _disk_raw_add (PedDisk* disk, PedPartition* part);
+
+static PedDiskType*	disk_types = NULL;
+
+void
+ped_disk_type_register (PedDiskType* disk_type)
+{
+	PED_ASSERT (disk_type != NULL, return);
+	PED_ASSERT (disk_type->ops != NULL, return);
+	PED_ASSERT (disk_type->name != NULL, return);
+	
+	/* pretend that "next" isn't part of the struct :-) */
+	((struct _PedDiskType*) disk_type)->next = disk_types;
+	disk_types = (struct _PedDiskType*) disk_type;
+}
+
+void
+ped_disk_type_unregister (PedDiskType* disk_type)
+{
+	PedDiskType*	walk;
+	PedDiskType*	last = NULL;
+
+	PED_ASSERT (disk_types != NULL, return);
+	PED_ASSERT (disk_type != NULL, return);
+
+	for (walk = disk_types; walk && walk != disk_type;
+                last = walk, walk = walk->next);
+
+	PED_ASSERT (walk != NULL, return);
+	if (last)
+		((struct _PedDiskType*) last)->next = disk_type->next;
+	else
+		disk_types = disk_type->next;
+}
+
+/**
+ * Deprecated: use ped_disk_type_regiser.
+ */
+void
+ped_register_disk_type (PedDiskType* disk_type)
+{
+        ped_disk_type_register (disk_type);
+}
+
+/**
+ * Deprecated: use ped_disk_type_unregiser.
+ */
+void
+ped_unregister_disk_type (PedDiskType* disk_type)
+{
+        ped_disk_type_unregister (disk_type);
+}
+
+/**
+ * Return the next disk type registers, after "type".  If "type" is
+ * NULL, returns the first disk type.
+ *
+ * \return Next disk; NULL if "type" is the last registered disk type.
+ */
+PedDiskType*
+ped_disk_type_get_next (PedDiskType* type)
+{
+	if (type)
+		return type->next;
+	else
+		return disk_types;
+}
+
+/**
+ * Return the disk type with a name of "name".
+ *
+ * \return Disk type; NULL if no match.
+ */
+PedDiskType*
+ped_disk_type_get (const char* name)
+{
+	PedDiskType*	walk = NULL;
+
+	PED_ASSERT (name != NULL, return NULL);
+
+	for (walk = ped_disk_type_get_next (NULL); walk;
+	     walk = ped_disk_type_get_next (walk))
+			if (strcasecmp (walk->name, name) == 0)
+					break;
+
+	return walk;
+}
+
+/**
+ * Return the type of partition table detected on "dev".
+ *
+ * \return Type; NULL if none was detected.
+ */
+PedDiskType*
+ped_disk_probe (PedDevice* dev)
+{
+        PedDiskType *walk = NULL;
+
+        PED_ASSERT (dev != NULL, return NULL);
+
+        if (!ped_device_open (dev))
+                return NULL;
+
+        ped_exception_fetch_all ();
+        for (walk = ped_disk_type_get_next (NULL); walk;
+             walk = ped_disk_type_get_next (walk)) {
+                if (walk->ops->probe (dev))
+                        break;
+        }
+
+        if (ped_exception)
+                ped_exception_catch ();
+        ped_exception_leave_all ();
+
+        ped_device_close (dev);
+        return walk;
+}
+
+/**
+ * Read the partition table off a device (if one is found). 
+ * 
+ * \warning May modify \p dev->cylinders, \p dev->heads and \p dev->sectors
+ *      if the partition table indicates that the existing values
+ *      are incorrect.
+ * 
+ * \return A new \link _PedDisk PedDisk \endlink object;
+ *         NULL on failure (e.g. partition table not detected).
+ */
+PedDisk*
+ped_disk_new (PedDevice* dev)
+{
+	PedDiskType*	type;
+	PedDisk*	disk;
+
+	PED_ASSERT (dev != NULL, return NULL);
+
+	if (!ped_device_open (dev))
+		goto error;
+
+	type = ped_disk_probe (dev);
+	if (!type) {
+		ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("Unable to open %s - unrecognised disk label."),
+			dev->path);
+		goto error_close_dev;
+	}
+	disk = ped_disk_new_fresh (dev, type);
+	if (!disk)
+		goto error_close_dev;
+	if (!type->ops->read (disk))
+		goto error_destroy_disk;
+	disk->needs_clobber = 0;
+	ped_device_close (dev);
+	return disk;
+
+error_destroy_disk:
+	ped_disk_destroy (disk);
+error_close_dev:
+	ped_device_close (dev);
+error:
+	return NULL;
+}
+
+static int
+_add_duplicate_part (PedDisk* disk, PedPartition* old_part)
+{
+	PedPartition*	new_part;
+	PedConstraint*	constraint_exact;
+
+	new_part = disk->type->ops->partition_duplicate (old_part);
+	if (!new_part)
+		goto error;
+	new_part->disk = disk;
+
+	constraint_exact = ped_constraint_exact (&new_part->geom);
+	if (!constraint_exact)
+		goto error_destroy_new_part;
+	if (!ped_disk_add_partition (disk, new_part, constraint_exact))
+       		goto error_destroy_constraint_exact;
+	ped_constraint_destroy (constraint_exact);
+	return 1;
+
+error_destroy_constraint_exact:
+	ped_constraint_destroy (constraint_exact);
+error_destroy_new_part:
+	ped_partition_destroy (new_part);
+error:
+	return 0;
+}
+
+/**
+ * Clone a \link _PedDisk PedDisk \endlink object.
+ *
+ * \return Deep copy of \p old_disk, NULL on failure.
+ */
+PedDisk*
+ped_disk_duplicate (const PedDisk* old_disk)
+{
+	PedDisk*	new_disk;
+	PedPartition*	old_part;
+
+	PED_ASSERT (old_disk != NULL, return NULL);
+	PED_ASSERT (!old_disk->update_mode, return NULL);
+	PED_ASSERT (old_disk->type->ops->duplicate != NULL, return NULL);
+	PED_ASSERT (old_disk->type->ops->partition_duplicate != NULL,
+		    return NULL);
+
+	new_disk = old_disk->type->ops->duplicate (old_disk);
+	if (!new_disk)
+		goto error;
+
+	_disk_push_update_mode (new_disk);
+	for (old_part = ped_disk_next_partition (old_disk, NULL); old_part;
+	     old_part = ped_disk_next_partition (old_disk, old_part)) {
+		if (ped_partition_is_active (old_part)) {
+			if (!_add_duplicate_part (new_disk, old_part))
+				goto error_destroy_new_disk;
+		}
+	}
+	_disk_pop_update_mode (new_disk);
+	return new_disk;
+
+error_destroy_new_disk:
+	ped_disk_destroy (new_disk);
+error:
+	return NULL;
+}
+
+/**
+ * Remove all identifying signatures of a partition table,
+ * except for partition tables of a given type.
+ * 
+ * \return 0 on error, 1 otherwise.
+ * 
+ * \sa ped_disk_clobber()
+ */
+int
+ped_disk_clobber_exclude (PedDevice* dev, const PedDiskType* exclude)
+{
+	PedDiskType*	walk;
+
+	PED_ASSERT (dev != NULL, goto error);
+
+	if (!ped_device_open (dev))
+		goto error;
+
+	for (walk = ped_disk_type_get_next (NULL); walk;
+	     walk = ped_disk_type_get_next (walk)) {
+		int	probed;
+
+		if (walk == exclude)
+			continue;
+
+		ped_exception_fetch_all ();
+		probed = walk->ops->probe (dev);
+		if (!probed)
+			ped_exception_catch ();
+		ped_exception_leave_all ();
+
+		if (probed && walk->ops->clobber) {
+			if (!walk->ops->clobber (dev))
+				goto error_close_dev;
+		}
+	}
+	ped_device_close (dev);
+	return 1;
+
+error_close_dev:
+	ped_device_close (dev);
+error:
+	return 0;
+}
+
+/** 
+ * Remove all identifying signatures of a partition table,
+ * 
+ * \return 0 on error, 1 otherwise.
+ * 
+ * \sa ped_disk_clobber_exclude()
+ */
+int
+ped_disk_clobber (PedDevice* dev)
+{
+	return ped_disk_clobber_exclude (dev, NULL);
+}
+
+/**
+ * Create a new partition table on \p dev.
+ *
+ * This new partition table is only created in-memory, and nothing is written
+ * to disk until ped_disk_commit_to_dev() is called.
+ * 
+ * \return The newly constructed \link _PedDisk PedDisk \endlink,
+ *      NULL on failure.
+ */
+PedDisk*
+ped_disk_new_fresh (PedDevice* dev, const PedDiskType* type)
+{
+	PedDisk*	disk;
+
+	PED_ASSERT (dev != NULL, return NULL);
+	PED_ASSERT (type != NULL, return NULL);
+	PED_ASSERT (type->ops->alloc != NULL, return NULL);
+
+	disk = type->ops->alloc (dev);
+	if (!disk)
+       		goto error;
+	_disk_pop_update_mode (disk);
+	PED_ASSERT (disk->update_mode == 0, goto error_destroy_disk);
+
+	disk->needs_clobber = 1;
+	return disk;
+
+error_destroy_disk:
+	ped_disk_destroy (disk);
+error:
+	return NULL;
+}
+
+PedDisk*
+_ped_disk_alloc (const PedDevice* dev, const PedDiskType* disk_type)
+{
+	PedDisk*	disk;
+
+	disk = (PedDisk*) ped_malloc (sizeof (PedDisk));
+	if (!disk)
+		goto error;
+
+	disk->dev = (PedDevice*)dev;
+	disk->type = disk_type;
+	disk->update_mode = 1;
+	disk->part_list = NULL;
+	return disk;
+
+	ped_free (disk);
+error:
+	return NULL;
+}
+
+void
+_ped_disk_free (PedDisk* disk)
+{
+	_disk_push_update_mode (disk);
+	ped_disk_delete_all (disk);
+	ped_free (disk);
+}
+
+/**
+ * Close \p disk.
+ *
+ * What this function does depends on the PedDiskType of \p disk,
+ * but you can generally assume that outstanding writes are flushed
+ * (this mainly means that _ped_disk_free is called).
+ */
+void
+ped_disk_destroy (PedDisk* disk)
+{
+	PED_ASSERT (disk != NULL, return);
+	PED_ASSERT (!disk->update_mode, return);
+
+	disk->type->ops->free (disk);
+}
+
+/**
+ * Tell the operating system kernel about the partition table layout
+ * of \p disk.
+ *
+ * This is rather loosely defined: for example, on old versions of Linux,
+ * it simply calls the BLKRRPART ioctl, which tells the kernel to
+ * reread the partition table. On newer versions (2.4.x), it will
+ * use the new blkpg interface to tell Linux where each partition
+ * starts/ends, etc. In this case, Linux does not need to have support for
+ * a specific type of partition table.
+ * 
+ * \return 0 on failure, 1 otherwise.
+ */
+int
+ped_disk_commit_to_os (PedDisk* disk)
+{
+	PED_ASSERT (disk != NULL, return 0);
+
+	if (!ped_device_open (disk->dev))
+		goto error;
+	if (!ped_architecture->disk_ops->disk_commit (disk))
+		goto error_close_dev;
+	ped_device_close (disk->dev);
+	return 1;
+
+error_close_dev:
+	ped_device_close (disk->dev);
+error:
+	return 0;
+}
+
+/**
+ * Write the changes made to the in-memory description
+ * of a partition table to the device.
+ *
+ * \return 0 on failure, 1 otherwise.
+ */
+int
+ped_disk_commit_to_dev (PedDisk* disk)
+{
+	PED_ASSERT (disk != NULL, goto error);
+	PED_ASSERT (!disk->update_mode, goto error);
+
+	if (!disk->type->ops->write) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("This libparted doesn't have write support for "
+			  "%s.  Perhaps it was compiled read-only."),
+			disk->type->name);
+		goto error;
+	}
+
+	if (!ped_device_open (disk->dev))
+		goto error;
+
+	if (disk->needs_clobber) {
+		if (!ped_disk_clobber_exclude (disk->dev, disk->type))
+			goto error_close_dev;
+		disk->needs_clobber = 0;
+	}
+	if (!disk->type->ops->write (disk))
+		goto error_close_dev;
+	ped_device_close (disk->dev);
+	return 1;
+
+error_close_dev:
+	ped_device_close (disk->dev);
+error:
+	return 0;
+}
+
+/*
+ * This function writes the in-memory changes to a partition table to
+ * disk and informs the operating system of the changes.
+ *
+ * \note Equivalent to calling first ped_disk_commit_to_dev(), then
+ *      ped_disk_commit_to_os().
+ *
+ * \return 0 on failure, 1 otherwise.
+ */
+int
+ped_disk_commit (PedDisk* disk)
+{
+	if (!ped_disk_commit_to_dev (disk))
+		return 0;
+	return ped_disk_commit_to_os (disk);
+}
+
+/**
+ * \addtogroup PedPartition
+ *
+ * @{
+ */
+
+/**
+ * Check whether a partition is mounted or busy in some
+ * other way.
+ *
+ * \note An extended partition is busy if any logical partitions are mounted.
+ *
+ * \return \c 1 if busy.
+ */
+int
+ped_partition_is_busy (const PedPartition* part)
+{
+	PED_ASSERT (part != NULL, return 1);
+
+	return ped_architecture->disk_ops->partition_is_busy (part);
+}
+
+/**
+ * Return a path that can be used to address the partition in the
+ * operating system.
+ */
+char*
+ped_partition_get_path (const PedPartition* part)
+{
+	PED_ASSERT (part != NULL, return NULL);
+
+	return ped_architecture->disk_ops->partition_get_path (part);
+}
+
+/** @} */
+
+/**
+ * \addtogroup PedDisk
+ *
+ * @{
+ */
+
+/**
+ * Perform a sanity check on a partition table.
+ *
+ * \note The check performed is generic (i.e. it does not depends on the label
+ *      type of the disk.
+ *
+ * \throws PED_EXCEPTION_WARNING if a partition type ID does not match the file
+ *      system on it.
+ *
+ * \return 0 if the check fails, 1 otherwise.
+ */
+int
+ped_disk_check (const PedDisk* disk)
+{
+	PedPartition*	walk;
+
+	PED_ASSERT (disk != NULL, return 0);
+
+	for (walk = disk->part_list; walk;
+	     walk = ped_disk_next_partition (disk, walk)) {
+		const PedFileSystemType*	fs_type = walk->fs_type;
+		PedGeometry*			geom;
+		PedSector			length_error;
+		PedSector			max_length_error;
+
+		if (!ped_partition_is_active (walk) || !fs_type)
+			continue;
+
+		geom = ped_file_system_probe_specific (fs_type, &walk->geom);
+		if (!geom)
+			continue;
+
+		length_error = abs (walk->geom.length - geom->length);
+		max_length_error = PED_MAX (4096, walk->geom.length / 100);
+		if (!ped_geometry_test_inside (&walk->geom, geom)
+		    || length_error > max_length_error) {
+			char* part_size = ped_unit_format (disk->dev, walk->geom.length);
+			char* fs_size = ped_unit_format (disk->dev, geom->length);
+			PedExceptionOption choice;
+
+			choice = ped_exception_throw (
+				PED_EXCEPTION_WARNING,
+				PED_EXCEPTION_IGNORE_CANCEL,
+				_("Partition %d is %s, but the file system is "
+				  "%s."),
+				walk->num, part_size, fs_size);
+
+			ped_free (part_size);
+			ped_free (fs_size);
+
+			if (choice != PED_EXCEPTION_IGNORE)
+				return 0;
+		}
+	}
+
+	return 1;
+}
+
+/**
+ * This function checks if a particular type of partition table supports
+ * a feature.
+ *
+ * \return 1 if \p disk_type supports \p feature, 0 otherwise.
+ */
+int
+ped_disk_type_check_feature (const PedDiskType* disk_type,
+			     PedDiskTypeFeature feature)
+{
+	return (disk_type->features & feature) != 0;
+}
+
+/**
+ * Get the number of primary partitions.
+ */
+int
+ped_disk_get_primary_partition_count (const PedDisk* disk)
+{
+	PedPartition*	walk;
+	int		count = 0;
+
+	PED_ASSERT (disk != NULL, return 0);
+
+	for (walk = disk->part_list; walk;
+	     walk = ped_disk_next_partition (disk, walk)) {
+		if (ped_partition_is_active (walk)
+				&& ! (walk->type & PED_PARTITION_LOGICAL))
+			count++;
+	}
+
+	return count;
+}
+
+/**
+ * Get the highest partition number on \p disk.
+ */
+int
+ped_disk_get_last_partition_num (const PedDisk* disk)
+{
+	PedPartition*	walk;
+	int		highest = -1;
+
+	PED_ASSERT (disk != NULL, return 0);
+
+	for (walk = disk->part_list; walk;
+	     walk = ped_disk_next_partition (disk, walk)) {
+		if (walk->num > highest)
+			highest = walk->num;
+	}
+
+	return highest;
+}
+
+/**
+ * Get the maximum number of (primary) partitions the disk label supports.
+ * 
+ * For example, MacIntosh partition maps can have different sizes,
+ * and accordingly support a different number of partitions.
+ */
+int
+ped_disk_get_max_primary_partition_count (const PedDisk* disk)
+{
+	PED_ASSERT (disk->type != NULL, return 0);
+	PED_ASSERT (disk->type->ops->get_max_primary_partition_count != NULL,
+		    return 0);
+
+	return disk->type->ops->get_max_primary_partition_count (disk);
+}
+
+/**
+ * \internal We turned a really nasty bureaucracy problem into an elegant maths
+ * problem :-)  Basically, there are some constraints to a partition's
+ * geometry:
+ *
+ * (1) it must start and end on a "disk" block, determined by the disk label
+ * (not the hardware).  (constraint represented by a PedAlignment)
+ *
+ * (2) if we're resizing a partition, we MIGHT need to keep each block aligned.
+ * Eg: if an ext2 file system has 4k blocks, then we can only move the start
+ * by a multiple of 4k.  (constraint represented by a PedAlignment)
+ *
+ * (3) we need to keep the start and end within the device's physical
+ * boundaries.  (constraint represented by a PedGeometry)
+ *
+ * Satisfying (1) and (2) simultaneously required a bit of fancy maths ;-)  See
+ * ped_alignment_intersect()
+ *
+ * The application of these constraints is in disk_*.c's *_partition_align()
+ * function.
+ */
+static int
+_partition_align (PedPartition* part, const PedConstraint* constraint)
+{
+	const PedDiskType*	disk_type;
+
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->num != -1, return 0);
+	PED_ASSERT (part->disk != NULL, return 0);
+	disk_type = part->disk->type;
+	PED_ASSERT (disk_type != NULL, return 0);
+	PED_ASSERT (disk_type->ops->partition_align != NULL, return 0);
+	PED_ASSERT (part->disk->update_mode, return 0);
+
+	return disk_type->ops->partition_align (part, constraint);
+}
+
+static int
+_partition_enumerate (PedPartition* part)
+{
+	const PedDiskType*	disk_type;
+
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk != NULL, return 0);
+	disk_type = part->disk->type;
+	PED_ASSERT (disk_type != NULL, return 0);
+	PED_ASSERT (disk_type->ops->partition_enumerate != NULL, return 0);
+
+	return disk_type->ops->partition_enumerate (part);
+}
+
+/**
+ * Gives all the (active) partitions a number.  It should preserve the numbers
+ * and orders as much as possible.
+ */
+static int
+ped_disk_enumerate_partitions (PedDisk* disk)
+{
+	PedPartition*	walk;
+	int		i;
+	int		end;
+
+	PED_ASSERT (disk != NULL, return 0);
+
+/* first "sort" already-numbered partitions.  (e.g. if a logical partition
+ * is removed, then all logical partitions that were number higher MUST be
+ * renumbered)
+ */
+	end = ped_disk_get_last_partition_num (disk);
+	for (i=1; i<=end; i++) {
+		walk = ped_disk_get_partition (disk, i);
+		if (walk) {
+			if (!_partition_enumerate (walk))
+				return 0;
+		}
+	}
+
+/* now, number un-numbered partitions */
+	for (walk = disk->part_list; walk;
+	     walk = ped_disk_next_partition (disk, walk)) {
+		if (ped_partition_is_active (walk) && walk->num == -1) {
+			if (!_partition_enumerate (walk))
+				return 0;
+		}
+	}
+
+	return 1;
+}
+
+static int
+_disk_remove_metadata (PedDisk* disk)
+{
+	PedPartition*	walk = NULL;
+	PedPartition*	next;
+
+	PED_ASSERT (disk != NULL, return 0);
+
+	next = ped_disk_next_partition (disk, walk);
+
+	while (next) {
+		walk = next;
+		while (1) {
+			next = ped_disk_next_partition (disk, next);
+			if (!next || next->type & PED_PARTITION_METADATA)
+				break;
+		}
+		if (walk->type & PED_PARTITION_METADATA)
+			ped_disk_delete_partition (disk, walk);
+	}
+	return 1;
+}
+
+static int
+_disk_alloc_metadata (PedDisk* disk)
+{
+	PED_ASSERT (disk != NULL, return 0);
+
+	if (!disk->update_mode)
+		_disk_remove_metadata (disk);
+
+	return disk->type->ops->alloc_metadata (disk);
+}
+
+static int
+_disk_remove_freespace (PedDisk* disk)
+{
+	PedPartition*	walk;
+	PedPartition*	next;
+
+	walk = ped_disk_next_partition (disk, NULL);
+	for (; walk; walk = next) {
+		next = ped_disk_next_partition (disk, walk);
+
+		if (walk->type & PED_PARTITION_FREESPACE) {
+			_disk_raw_remove (disk, walk);
+			ped_partition_destroy (walk);
+		}
+	}
+
+	return 1;
+}
+
+static int
+_alloc_extended_freespace (PedDisk* disk)
+{
+	PedSector	last_end;
+	PedPartition*	walk;
+	PedPartition*	last;
+	PedPartition*	free_space;
+	PedPartition*	extended_part;
+
+	extended_part = ped_disk_extended_partition (disk);
+	if (!extended_part)
+		return 1;
+
+	last_end = extended_part->geom.start;
+	last = NULL;
+	
+	for (walk = extended_part->part_list; walk; walk = walk->next) {
+		if (walk->geom.start > last_end + 1) {
+			free_space = ped_partition_new (
+					disk,
+					PED_PARTITION_FREESPACE
+						| PED_PARTITION_LOGICAL,
+					NULL,
+					last_end + 1, walk->geom.start - 1);
+			_disk_raw_insert_before (disk, walk, free_space);
+		}
+
+		last = walk;
+		last_end = last->geom.end;
+	}
+
+	if (last_end < extended_part->geom.end) {
+		free_space = ped_partition_new (
+				disk,
+				PED_PARTITION_FREESPACE | PED_PARTITION_LOGICAL,
+				NULL,
+				last_end + 1, extended_part->geom.end);
+
+		if (last)
+			return _disk_raw_insert_after (disk, last, free_space);
+		else
+			extended_part->part_list = free_space;
+	}
+
+	return 1;
+}
+
+static int
+_disk_alloc_freespace (PedDisk* disk)
+{
+	PedSector	last_end;
+	PedPartition*	walk;
+	PedPartition*	last;
+	PedPartition*	free_space;
+
+	if (!_disk_remove_freespace (disk))
+		return 0;
+	if (!_alloc_extended_freespace (disk))
+		return 0;
+
+	last = NULL;
+	last_end = -1;
+
+	for (walk = disk->part_list; walk; walk = walk->next) {
+		if (walk->geom.start > last_end + 1) {
+			free_space = ped_partition_new (disk,
+					PED_PARTITION_FREESPACE, NULL,
+					last_end + 1, walk->geom.start - 1);
+			_disk_raw_insert_before (disk, walk, free_space);
+		}
+
+		last = walk;
+		last_end = last->geom.end;
+	}
+
+	if (last_end < disk->dev->length - 1) {
+		free_space = ped_partition_new (disk,
+					PED_PARTITION_FREESPACE, NULL,
+					last_end + 1, disk->dev->length - 1);
+		if (last)
+			return _disk_raw_insert_after (disk, last, free_space);
+		else
+			disk->part_list = free_space;
+	}
+
+	return 1;
+}
+
+/**
+ * Update mode: used when updating the internal representation of the partition
+ * table.  In update mode, the metadata and freespace placeholder/virtual
+ * partitions are removed, making it much easier for various manipulation
+ * routines...
+ */
+static void
+_disk_push_update_mode (PedDisk* disk)
+{
+	if (!disk->update_mode) {
+#ifdef DEBUG
+		_disk_check_sanity (disk);
+#endif
+
+		_disk_remove_freespace (disk);
+		disk->update_mode++;
+		_disk_remove_metadata (disk);
+
+#ifdef DEBUG
+		_disk_check_sanity (disk);
+#endif
+	} else {
+		disk->update_mode++;
+	}
+}
+
+static void
+_disk_pop_update_mode (PedDisk* disk)
+{
+	PED_ASSERT (disk->update_mode, return);
+
+	if (disk->update_mode == 1) {
+	/* re-allocate metadata BEFORE leaving update mode, to prevent infinite
+	 * recursion (metadata allocation requires update mode)
+	 */
+#ifdef DEBUG
+		_disk_check_sanity (disk);
+#endif
+
+		_disk_alloc_metadata (disk);
+		disk->update_mode--;
+		_disk_alloc_freespace (disk);
+
+#ifdef DEBUG
+		_disk_check_sanity (disk);
+#endif
+	} else {
+		disk->update_mode--;
+	}
+}
+
+/** @} */
+
+/**
+ * \addtogroup PedPartition
+ *
+ * \brief Partition access.
+ * 
+ * @{
+ */
+
+PedPartition*
+_ped_partition_alloc (const PedDisk* disk, PedPartitionType type,
+		      const PedFileSystemType* fs_type,
+		      PedSector start, PedSector end)
+{
+	PedPartition*	part;
+
+	PED_ASSERT (disk != NULL, return 0);
+
+	part = (PedPartition*) ped_malloc (sizeof (PedPartition));
+	if (!part)
+		goto error;
+
+	part->prev = NULL;
+	part->next = NULL;
+
+	part->disk = (PedDisk*) disk;
+	if (!ped_geometry_init (&part->geom, disk->dev, start, end - start + 1))
+		goto error_free_part;
+
+	part->num = -1;
+	part->type = type;
+	part->part_list = NULL;
+	part->fs_type = fs_type;
+
+	return part;
+
+error_free_part:
+	ped_free (part);
+error:
+	return NULL;
+}
+
+void
+_ped_partition_free (PedPartition* part)
+{
+	ped_free (part);
+}
+
+int
+_ped_partition_attempt_align (PedPartition* part,
+			      const PedConstraint* external,
+			      PedConstraint* internal)
+{
+	PedConstraint*		intersection;
+	PedGeometry*		solution;
+
+	intersection = ped_constraint_intersect (external, internal);
+	ped_constraint_destroy (internal);
+	if (!intersection)
+		goto fail;
+
+	solution = ped_constraint_solve_nearest (intersection, &part->geom);
+	if (!solution)
+		goto fail_free_intersection;
+	ped_geometry_set (&part->geom, solution->start, solution->length);
+	ped_geometry_destroy (solution);
+	ped_constraint_destroy (intersection);
+	return 1;
+
+fail_free_intersection:
+	ped_constraint_destroy (intersection);
+fail:
+	return 0;
+}
+
+/**
+ * Create a new \link _PedPartition PedPartition \endlink on \p disk.
+ *
+ * \param type One of \p PED_PARTITION_NORMAL, \p PED_PARTITION_EXTENDED,
+ *      \p PED_PARTITION_LOGICAL.
+ *
+ * \note The constructed partition is not added to <tt>disk</tt>'s
+ *      partition table. Use ped_disk_add_partition() to do this.
+ * 
+ * \return A new \link _PedPartition PedPartition \endlink object,
+ *      NULL on failure.
+ *
+ * \throws PED_EXCEPTION_ERROR if \p type is \p EXTENDED or \p LOGICAL but the
+ *      label does not support this concept.
+ */ 
+PedPartition*
+ped_partition_new (const PedDisk* disk, PedPartitionType type,
+		   const PedFileSystemType* fs_type, PedSector start,
+		   PedSector end)
+{
+	int		supports_extended;
+	PedPartition*	part;
+
+	PED_ASSERT (disk != NULL, return NULL);
+	PED_ASSERT (disk->type->ops->partition_new != NULL, return NULL);
+
+	supports_extended = ped_disk_type_check_feature (disk->type,
+			    	PED_DISK_TYPE_EXTENDED);
+
+	if (!supports_extended
+	    && (type == PED_PARTITION_EXTENDED
+			|| type == PED_PARTITION_LOGICAL)) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("%s disk labels do not support extended "
+			  "partitions."),
+			disk->type->name);
+		goto error;
+	}
+
+	part = disk->type->ops->partition_new (disk, type, fs_type, start, end);
+	if (!part)
+		goto error;
+
+	if (fs_type || part->type == PED_PARTITION_EXTENDED) {
+		if (!ped_partition_set_system (part, fs_type))
+			goto error_destroy_part;
+	}
+	return part;
+
+error_destroy_part:
+	ped_partition_destroy (part);
+error:
+	return NULL;
+}
+
+/**
+ * Destroy a \link _PedPartition PedPartition \endlink object.
+ *
+ * \note Should not be called on a partition that is in a partition table.
+ *      Use ped_disk_delete_partition() instead.
+ */
+void
+ped_partition_destroy (PedPartition* part)
+{
+	PED_ASSERT (part != NULL, return);
+	PED_ASSERT (part->disk != NULL, return);
+	PED_ASSERT (part->disk->type->ops->partition_new != NULL, return);
+
+	part->disk->type->ops->partition_destroy (part);
+}
+
+
+/**
+ * Return whether or not the partition is "active".
+ *
+ * A partition is active if \p part->type is neither \p PED_PARTITION_METADATA
+ * nor \p PED_PARTITION_FREE.
+ */
+int
+ped_partition_is_active (const PedPartition* part)
+{
+	PED_ASSERT (part != NULL, return 0);
+
+	return !(part->type & PED_PARTITION_FREESPACE
+		 || part->type & PED_PARTITION_METADATA);
+}
+
+/**
+ * Set the state (\c 1 or \c 0) of a flag on a partition.
+ * 
+ * Flags are disk label specific, although they have a global
+ * "namespace": the flag PED_PARTITION_BOOT, for example, roughly means
+ * "this" partition is bootable". But this means different things on different
+ * disk labels (and may not be defined on some disk labels). For example,
+ * on MS-DOS disk labels, there can only be one boot partition, and this
+ * refers to the partition that will be booted from on startup. On PC98
+ * disk labels, the user can choose from any bootable partition on startup.
+ * 
+ * \note It is an error to call this on an unavailable flag -- use
+ * ped_partition_is_flag_available() to determine which flags are available
+ * for a given disk label.
+ *
+ * \throws PED_EXCEPTION_ERROR if the requested flag is not available for this
+ *      label.
+ */
+int
+ped_partition_set_flag (PedPartition* part, PedPartitionFlag flag, int state)
+{
+	PedDiskOps*	ops;
+
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk != NULL, return 0);
+	PED_ASSERT (ped_partition_is_active (part), return 0);
+
+	ops = part->disk->type->ops;
+	PED_ASSERT (ops->partition_set_flag != NULL, return 0);
+	PED_ASSERT (ops->partition_is_flag_available != NULL, return 0);
+
+	if (!ops->partition_is_flag_available (part, flag)) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			"The flag '%s' is not available for %s disk labels.",
+			ped_partition_flag_get_name (flag),
+			part->disk->type->name);
+		return 0;
+	}
+
+	return ops->partition_set_flag (part, flag, state);
+}
+
+/**
+ * Get the state (\c 1 or \c 0) of a flag on a partition.
+ *
+ * See ped_partition_set_flag() for conditions that must hold.
+ *
+ * \todo Where's the check for flag availability?
+ */
+int
+ped_partition_get_flag (const PedPartition* part, PedPartitionFlag flag)
+{
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk != NULL, return 0);
+	PED_ASSERT (part->disk->type->ops->partition_get_flag != NULL,
+		    return 0);
+	PED_ASSERT (ped_partition_is_active (part), return 0);
+
+	return part->disk->type->ops->partition_get_flag (part, flag);
+}
+
+/**
+ * Check whether a given flag is available on a partition.
+ *
+ * \return \c 1 if the flag is available.
+ */
+int
+ped_partition_is_flag_available (const PedPartition* part,
+	       			 PedPartitionFlag flag)
+{
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk != NULL, return 0);
+	PED_ASSERT (part->disk->type->ops->partition_is_flag_available != NULL,
+		    return 0);
+	PED_ASSERT (ped_partition_is_active (part), return 0);
+
+	return part->disk->type->ops->partition_is_flag_available (part, flag);
+}
+
+/**
+ * Sets the system type on the partition to \p fs_type.
+ *
+ * \note The file system may be opened, to get more information about the
+ * file system, e.g. to determine if it's FAT16 or FAT32.
+ *
+ * \return \c 0 on failure.
+ */
+int
+ped_partition_set_system (PedPartition* part, const PedFileSystemType* fs_type)
+{
+	const PedDiskType*	disk_type;
+
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (ped_partition_is_active (part), return 0);
+	PED_ASSERT (part->disk != NULL, return 0);
+	disk_type = part->disk->type;
+	PED_ASSERT (disk_type != NULL, return 0);
+	PED_ASSERT (disk_type->ops != NULL, return 0);
+	PED_ASSERT (disk_type->ops->partition_set_system != NULL, return 0);
+
+	return disk_type->ops->partition_set_system (part, fs_type);
+}
+
+static int
+_assert_partition_name_feature (const PedDiskType* disk_type)
+{
+	if (!ped_disk_type_check_feature (
+			disk_type, PED_DISK_TYPE_PARTITION_NAME)) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			"%s disk labels do not support partition names.",
+			disk_type->name);
+		return 0;
+	}
+	return 1;
+}
+
+/**
+ * Sets the name of a partition.
+ *
+ * \note This will only work if the disk label supports it.
+ *      You can use
+ *      \code
+ * ped_disk_type_check_feature (part->disk->type, PED_DISK_TYPE_PARTITION_NAME);
+ *      \endcode
+ *      to check whether this feature is enabled for a label.
+ *      
+ * \note \p name will not be modified by libparted. It can be freed
+ *      by the caller immediately after ped_partition_set_name() is called.
+ *
+ * \return \c 1 on success, \c 0 otherwise.
+ */
+int
+ped_partition_set_name (PedPartition* part, const char* name)
+{
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk != NULL, return 0);
+	PED_ASSERT (ped_partition_is_active (part), return 0);
+	PED_ASSERT (name != NULL, return 0);
+
+	if (!_assert_partition_name_feature (part->disk->type))
+		return 0;
+
+	PED_ASSERT (part->disk->type->ops->partition_set_name != NULL,
+		    return 0);
+	part->disk->type->ops->partition_set_name (part, name);
+	return 1;
+}
+
+/**
+ * Returns the name of a partition \p part.  This will only work if the disk
+ * label supports it.
+ *
+ * \note The returned string should not be modified.  It should
+ *	not be referenced after the partition is destroyed.
+ */
+const char*
+ped_partition_get_name (const PedPartition* part)
+{
+	PED_ASSERT (part != NULL, return NULL);
+	PED_ASSERT (part->disk != NULL, return 0);
+	PED_ASSERT (ped_partition_is_active (part), return 0);
+
+	if (!_assert_partition_name_feature (part->disk->type))
+		return NULL;
+
+	PED_ASSERT (part->disk->type->ops->partition_get_name != NULL,
+		    return NULL);
+	return part->disk->type->ops->partition_get_name (part);
+}
+
+/** @} */
+
+/**
+ * \addtogroup PedDisk
+ *
+ * @{
+ */
+
+PedPartition*
+ped_disk_extended_partition (const PedDisk* disk)
+{
+	PedPartition*		walk;
+
+	PED_ASSERT (disk != NULL, return 0);
+
+	for (walk = disk->part_list; walk; walk = walk->next) {
+		if (walk->type == PED_PARTITION_EXTENDED)
+			break;
+	}
+	return walk;
+}
+
+/** 
+ * Return the next partition after \p part on \p disk. If \p part is \c NULL,
+ * return the first partition. If \p part is the last partition, returns
+ * \c NULL. If \p part is an extended partition, returns the first logical
+ * partition. If this is called repeatedly passing the return value as \p part,
+ * a depth-first traversal is executed.
+ *
+ * \return The next partition, \c NULL if no more partitions left.
+ */
+PedPartition*
+ped_disk_next_partition (const PedDisk* disk, const PedPartition* part)
+{
+	PED_ASSERT (disk != NULL, return 0);
+
+	if (!part)
+		return disk->part_list;
+	if (part->type == PED_PARTITION_EXTENDED)
+		return part->part_list ? part->part_list : part->next;
+	if (part->next)
+		return part->next;
+	if (part->type & PED_PARTITION_LOGICAL)
+		return ped_disk_extended_partition (disk)->next;
+	return NULL;
+}
+
+/** @} */
+
+#ifdef DEBUG
+static int
+_disk_check_sanity (PedDisk* disk)
+{
+	PedPartition*	walk;
+
+	PED_ASSERT (disk != NULL, return 0);
+
+	for (walk = disk->part_list; walk; walk = walk->next) {
+		PED_ASSERT (!(walk->type & PED_PARTITION_LOGICAL), return 0);
+		PED_ASSERT (!walk->prev || walk->prev->next == walk, return 0);
+	}
+
+	if (!ped_disk_extended_partition (disk))
+		return 1;
+
+	for (walk = ped_disk_extended_partition (disk)->part_list; walk;
+	     walk = walk->next) {
+		PED_ASSERT (walk->type & PED_PARTITION_LOGICAL, return 0);
+		if (walk->prev)
+			PED_ASSERT (walk->prev->next == walk, return 0);
+	}
+	return 1;
+}
+#endif
+
+/**
+ * Returns the partition numbered \p num. 
+ *
+ * \return \c NULL if the specified partition does not exist.
+ */
+PedPartition*
+ped_disk_get_partition (const PedDisk* disk, int num)
+{
+	PedPartition*	walk;
+
+	PED_ASSERT (disk != NULL, return 0);
+
+	for (walk = disk->part_list; walk;
+	     walk = ped_disk_next_partition (disk, walk)) {
+		if (walk->num == num && !(walk->type & PED_PARTITION_FREESPACE))
+			return walk;
+	}
+
+	return NULL;
+}
+
+/**
+ * Returns the partition that contains sect.  If sect lies within a logical
+ * partition, then the logical partition is returned (not the extended
+ * partition).
+ */
+PedPartition*
+ped_disk_get_partition_by_sector (const PedDisk* disk, PedSector sect)
+{
+	PedPartition*	walk;
+
+	PED_ASSERT (disk != NULL, return 0);
+
+	for (walk = disk->part_list; walk;
+	     walk = ped_disk_next_partition (disk, walk)) {
+		if (ped_geometry_test_sector_inside (&walk->geom, sect)
+		    && walk->type != PED_PARTITION_EXTENDED)
+			return walk;
+	}
+
+	/* should never get here, unless sect is outside of disk's useable
+	 * part, or we're in "update mode", and the free space place-holders
+	 * have been removed with _disk_remove_freespace()
+	 */
+	return NULL;
+}
+
+/* I'm beginning to agree with Sedgewick :-/ */
+static int
+_disk_raw_insert_before (PedDisk* disk, PedPartition* loc, PedPartition* part)
+{
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (loc != NULL, return 0);
+	PED_ASSERT (part != NULL, return 0);
+
+	part->prev = loc->prev;
+	part->next = loc;
+	if (part->prev) {
+		part->prev->next = part;
+	} else {
+		if (loc->type & PED_PARTITION_LOGICAL)
+			ped_disk_extended_partition (disk)->part_list = part;
+		else
+			disk->part_list = part;
+	}
+	loc->prev = part;
+
+	return 1;
+}
+
+static int
+_disk_raw_insert_after (PedDisk* disk, PedPartition* loc, PedPartition* part)
+{
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (loc != NULL, return 0);
+	PED_ASSERT (part != NULL, return 0);
+
+	part->prev = loc;
+	part->next = loc->next;
+	if (loc->next)
+		loc->next->prev = part;
+	loc->next = part;
+
+	return 1;
+}
+
+static int
+_disk_raw_remove (PedDisk* disk, PedPartition* part)
+{
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (part != NULL, return 0);
+
+	if (part->prev) {
+		part->prev->next = part->next;
+		if (part->next)
+			part->next->prev = part->prev;
+	} else {
+		if (part->type & PED_PARTITION_LOGICAL) {
+			ped_disk_extended_partition (disk)->part_list
+				= part->next;
+		} else {
+			disk->part_list = part->next;
+		}
+		if (part->next)
+			part->next->prev = NULL;
+	}
+
+	return 1;
+}
+
+/*
+ *UPDATE MODE ONLY
+ */
+static int
+_disk_raw_add (PedDisk* disk, PedPartition* part)
+{
+	PedPartition*	walk;
+	PedPartition*	last;
+	PedPartition*	ext_part;
+
+	PED_ASSERT (disk->update_mode, return 0);
+
+	ext_part = ped_disk_extended_partition (disk);
+
+	last = NULL;
+	walk = (part->type & PED_PARTITION_LOGICAL) ?
+			ext_part->part_list : disk->part_list;
+
+	for (; walk; last = walk, walk = walk->next) {
+		if (walk->geom.start > part->geom.end)
+			break;
+	}
+
+	if (walk) {
+		return _disk_raw_insert_before (disk, walk, part);
+	} else {
+		if (last) {
+			return _disk_raw_insert_after (disk, last, part);
+		} else {
+			if (part->type & PED_PARTITION_LOGICAL)
+				ext_part->part_list = part;
+			else
+				disk->part_list = part;
+		} 
+	}
+
+	return 1;
+}
+
+static PedConstraint*
+_partition_get_overlap_constraint (PedPartition* part, PedGeometry* geom)
+{
+	PedSector	min_start;
+	PedSector	max_end;
+	PedPartition*	walk;
+	PedGeometry	free_space;
+
+	PED_ASSERT (part->disk->update_mode, return NULL);
+	PED_ASSERT (part->geom.dev == geom->dev, return NULL);
+
+	if (part->type & PED_PARTITION_LOGICAL) {
+		PedPartition* ext_part;
+		
+		ext_part = ped_disk_extended_partition (part->disk);
+		PED_ASSERT (ext_part != NULL, return NULL);
+
+		min_start = ext_part->geom.start;
+		max_end = ext_part->geom.end;
+		walk = ext_part->part_list;
+	} else {
+		min_start = 0;
+		max_end = part->disk->dev->length - 1;
+		walk = part->disk->part_list;
+	}
+
+	while (walk != NULL
+	       && (walk->geom.start < geom->start
+			    || min_start >= walk->geom.start)) {
+		if (walk != part)
+			min_start = walk->geom.end + 1;
+		walk = walk->next;
+	}
+
+	if (walk == part)
+		walk = walk->next;
+
+	if (walk)
+		max_end = walk->geom.start - 1;
+
+	if (min_start >= max_end)
+		return NULL;
+
+	ped_geometry_init (&free_space, part->disk->dev,
+			   min_start, max_end - min_start + 1);
+	return ped_constraint_new_from_max (&free_space);
+}
+
+/*
+ * Returns \c 0 if the partition, \p part overlaps with any partitions on the
+ * \p disk.  The geometry of \p part is taken to be \p geom, NOT \p part->geom
+ * (the idea here is to check if \p geom is valid, before changing \p part).
+ * 
+ * This is useful for seeing if a resized partitions new geometry is going to
+ * fit, without the existing geomtry getting in the way.
+ *
+ * Note: overlap with an extended partition is also allowed, provided that
+ * \p geom lies completely inside the extended partition.
+ */
+static int
+_disk_check_part_overlaps (PedDisk* disk, PedPartition* part)
+{
+	PedPartition*	walk;
+
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (part != NULL, return 0);
+
+	for (walk = ped_disk_next_partition (disk, NULL); walk;
+	     walk = ped_disk_next_partition (disk, walk)) {
+		if (walk->type & PED_PARTITION_FREESPACE)
+			continue;
+		if (walk == part)
+			continue;
+		if (part->type & PED_PARTITION_EXTENDED
+		    && walk->type & PED_PARTITION_LOGICAL)
+			continue;
+
+		if (ped_geometry_test_overlap (&walk->geom, &part->geom)) {
+			if (walk->type & PED_PARTITION_EXTENDED
+			    && part->type & PED_PARTITION_LOGICAL
+			    && ped_geometry_test_inside (&walk->geom,
+							 &part->geom))
+				continue;
+			return 0;
+		}
+	}
+
+	return 1;
+}
+
+static int
+_partition_check_basic_sanity (PedDisk* disk, PedPartition* part)
+{
+	PedPartition*	ext_part = ped_disk_extended_partition (disk);
+
+	PED_ASSERT (part->disk == disk, return 0);
+
+	PED_ASSERT (part->geom.start >= 0, return 0);
+	PED_ASSERT (part->geom.end < disk->dev->length, return 0);
+	PED_ASSERT (part->geom.start <= part->geom.end, return 0);
+
+	if (!ped_disk_type_check_feature (disk->type, PED_DISK_TYPE_EXTENDED)
+	    && (part->type == PED_PARTITION_EXTENDED
+		    || part->type == PED_PARTITION_LOGICAL)) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("%s disk labels don't support logical or extended "
+			  "partitions."),
+			disk->type->name);
+		return 0;
+	}
+
+	if (ped_partition_is_active (part)
+			&& ! (part->type & PED_PARTITION_LOGICAL)) {
+		if (ped_disk_get_primary_partition_count (disk) + 1
+		    > ped_disk_get_max_primary_partition_count (disk)) {
+			ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_CANCEL,
+				_("Too many primary partitions."));
+			return 0;
+		}
+	}
+
+	if ((part->type & PED_PARTITION_LOGICAL) && !ext_part) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Can't add a logical partition to %s, because "
+			"there is no extended partition."),
+			disk->dev->path);
+		return 0;
+	}
+
+	return 1;
+}
+
+static int
+_check_extended_partition (PedDisk* disk, PedPartition* part)
+{
+	PedPartition*		walk;
+	PedPartition*		ext_part;
+
+	PED_ASSERT (disk != NULL, return 0);
+	ext_part = ped_disk_extended_partition (disk);
+	if (!ext_part) ext_part = part;
+	PED_ASSERT (ext_part != NULL, return 0);
+
+	if (part != ext_part) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Can't have more than one extended partition on %s."),
+			disk->dev->path);
+		return 0;
+	}
+
+	for (walk = ext_part->part_list; walk; walk = walk->next) {
+		if (!ped_geometry_test_inside (&ext_part->geom, &walk->geom)) {
+			ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_CANCEL,
+				_("Can't have logical partitions outside of "
+				  "the extended partition."));
+			return 0;
+		}
+	}
+	return 1;
+}
+
+static int
+_check_partition (PedDisk* disk, PedPartition* part)
+{
+	PedPartition*	ext_part = ped_disk_extended_partition (disk);
+
+	PED_ASSERT (part->geom.start <= part->geom.end, return 0);
+
+	if (part->type == PED_PARTITION_EXTENDED) {
+		if (!_check_extended_partition (disk, part))
+			return 0;
+	}
+
+	if (part->type & PED_PARTITION_LOGICAL
+	    && !ped_geometry_test_inside (&ext_part->geom, &part->geom)) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Can't have a logical partition outside of the "
+			  "extended partition on %s."),
+			disk->dev->path);
+		return 0;
+	}
+
+	if (!_disk_check_part_overlaps (disk, part)) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Can't have overlapping partitions."));
+		return 0;
+	}
+
+	if (! (part->type & PED_PARTITION_LOGICAL)
+	    && ext_part && ext_part != part
+	    && ped_geometry_test_inside (&ext_part->geom, &part->geom)) {
+		ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("Can't have a primary partition inside an extended "
+			 "partition."));
+		return 0;
+	}
+
+	return 1;
+}
+
+/**
+ * Adds PedPartition \p part to PedPartition \p disk.
+ * 
+ * \warning The partition's geometry may be changed, subject to \p constraint.
+ * You could set \p constraint to <tt>ped_constraint_exact(&part->geom)</tt>,
+ * but many partition table schemes have special requirements on the start
+ * and end of partitions.  Therefore, having an overly strict constraint
+ * will probably mean that this function will fail (in which
+ * case \p part will be left unmodified)
+ * \p part is assigned a number (\p part->num) in this process.
+ * 
+ * \return \c 0 on failure.
+ */
+int
+ped_disk_add_partition (PedDisk* disk, PedPartition* part,
+			const PedConstraint* constraint)
+{
+	PedConstraint*	overlap_constraint = NULL;
+	PedConstraint*	constraints = NULL;
+
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (part != NULL, return 0);
+
+	if (!_partition_check_basic_sanity (disk, part))
+		return 0;
+
+	_disk_push_update_mode (disk);
+
+	if (ped_partition_is_active (part)) {
+		overlap_constraint
+			= _partition_get_overlap_constraint (part, &part->geom);
+		constraints = ped_constraint_intersect (overlap_constraint,
+							constraint);
+
+		if (!constraints && constraint) {
+			ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_CANCEL,
+				_("Can't have overlapping partitions."));
+			goto error;
+		}
+
+		if (!_partition_enumerate (part))
+			goto error;
+		if (!_partition_align (part, constraints))
+			goto error;
+	}
+	if (!_check_partition (disk, part))
+		goto error;
+	if (!_disk_raw_add (disk, part))
+		goto error;
+
+	ped_constraint_destroy (overlap_constraint);
+	ped_constraint_destroy (constraints);
+	_disk_pop_update_mode (disk);
+#ifdef DEBUG
+	if (!_disk_check_sanity (disk))
+		return 0;
+#endif
+	return 1;
+
+error:
+	ped_constraint_destroy (overlap_constraint);
+	ped_constraint_destroy (constraints);
+	_disk_pop_update_mode (disk);
+	return 0;
+}
+
+/**
+ * Removes PedPartition \p part from PedDisk \p disk.
+ *
+ * If \p part is an extended partition, it must not contain any logical
+ * partitions. \p part is *NOT* destroyed. The caller must call
+ * ped_partition_destroy(), or use ped_disk_delete_partition() instead.
+ *
+ * \return \c 0 on error.
+ */
+int
+ped_disk_remove_partition (PedDisk* disk, PedPartition* part)
+{
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (part != NULL, return 0);
+
+	_disk_push_update_mode (disk);
+	PED_ASSERT (part->part_list == NULL, goto error);
+	_disk_raw_remove (disk, part);
+	_disk_pop_update_mode (disk);
+	ped_disk_enumerate_partitions (disk);
+	return 1;
+
+error:
+	_disk_pop_update_mode (disk);
+	return 0;
+}
+
+static int
+ped_disk_delete_all_logical (PedDisk* disk);
+
+/**
+ * Removes \p part from \p disk, and destroys \p part.
+ *
+ * \return \c 0 on failure.
+ */
+int
+ped_disk_delete_partition (PedDisk* disk, PedPartition* part)
+{
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (part != NULL, return 0);
+
+	_disk_push_update_mode (disk);
+	if (part->type == PED_PARTITION_EXTENDED)
+		ped_disk_delete_all_logical (disk);
+	ped_disk_remove_partition (disk, part);
+	ped_partition_destroy (part);
+	_disk_pop_update_mode (disk);
+
+	return 1;
+}
+
+static int
+ped_disk_delete_all_logical (PedDisk* disk)
+{
+	PedPartition*		walk;
+	PedPartition*		next;
+	PedPartition*		ext_part;
+
+	PED_ASSERT (disk != NULL, return 0);
+	ext_part = ped_disk_extended_partition (disk);
+	PED_ASSERT (ext_part != NULL, return 0);
+
+	for (walk = ext_part->part_list; walk; walk = next) {
+		next = walk->next;
+
+		if (!ped_disk_delete_partition (disk, walk))
+			return 0;
+	}
+	return 1;
+}
+
+/**
+ * Removes and destroys all partitions on \p disk.
+ *
+ * \return \c 0 on failure.
+ */
+int
+ped_disk_delete_all (PedDisk* disk)
+{
+	PedPartition*		walk;
+	PedPartition*		next;
+
+	PED_ASSERT (disk != NULL, return 0);
+
+	_disk_push_update_mode (disk);
+
+	for (walk = disk->part_list; walk; walk = next) {
+		next = walk->next;
+
+		if (!ped_disk_delete_partition (disk, walk))
+			return 0;
+	}
+
+	_disk_pop_update_mode (disk);
+
+	return 1;
+}
+
+/**
+ * Sets the geometry of \p part (i.e. change a partitions location). This can
+ * fail for many reasons, e.g. can't overlap with other partitions. If it
+ * does fail, \p part will remain unchanged. Returns \c 0 on failure. \p part's
+ * geometry may be set to something different from \p start and \p end subject
+ * to \p constraint.
+ *
+ * \warning The constraint warning from ped_disk_add_partition() applies.
+ * 
+ * \note this function does not modify the contents of the partition.  You need
+ *       to call ped_file_system_resize() separately.
+ */
+int
+ped_disk_set_partition_geom (PedDisk* disk, PedPartition* part,
+			     const PedConstraint* constraint,
+			     PedSector start, PedSector end)
+{
+	PedConstraint*	overlap_constraint = NULL;
+	PedConstraint*	constraints = NULL;
+	PedGeometry	old_geom;
+	PedGeometry	new_geom;
+
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk == disk, return 0);
+
+	old_geom = part->geom;
+	ped_geometry_init (&new_geom, part->geom.dev, start, end - start + 1);
+
+	_disk_push_update_mode (disk);
+
+	overlap_constraint
+		= _partition_get_overlap_constraint (part, &new_geom);
+	constraints = ped_constraint_intersect (overlap_constraint, constraint);
+	if (!constraints && constraint) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Can't have overlapping partitions."));
+		goto error_pop_update_mode;
+	}
+
+	part->geom = new_geom;
+	if (!_partition_align (part, constraints))
+		goto error_pop_update_mode;
+	if (!_check_partition (disk, part))
+		goto error_pop_update_mode;
+
+	/* remove and add, to ensure the ordering gets updated if necessary */
+	_disk_raw_remove (disk, part);
+	_disk_raw_add (disk, part);
+
+	_disk_pop_update_mode (disk);
+
+	ped_constraint_destroy (overlap_constraint);
+	ped_constraint_destroy (constraints);
+	return 1;
+
+error_pop_update_mode:
+	_disk_pop_update_mode (disk);
+	ped_constraint_destroy (overlap_constraint);
+	ped_constraint_destroy (constraints);
+	part->geom = old_geom;
+	return 0;
+}
+
+/**
+ * Grow PedPartition \p part geometry to the maximum possible subject to
+ * \p constraint.  The new geometry will be a superset of the old geometry.
+ * 
+ * \return 0 on failure
+ */
+int
+ped_disk_maximize_partition (PedDisk* disk, PedPartition* part,
+			     const PedConstraint* constraint)
+{
+	PedGeometry	old_geom;
+	PedSector	global_min_start;
+	PedSector	global_max_end;
+	PedSector	new_start;
+	PedSector	new_end;
+	PedPartition*	ext_part = ped_disk_extended_partition (disk);
+	PedConstraint*	constraint_any;
+
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (part != NULL, return 0);
+
+	if (part->type & PED_PARTITION_LOGICAL) {
+		PED_ASSERT (ext_part != NULL, return 0);
+		global_min_start = ext_part->geom.start;
+		global_max_end = ext_part->geom.end;
+	} else {
+		global_min_start = 0;
+		global_max_end = disk->dev->length - 1;
+	}
+
+	old_geom = part->geom;
+
+	_disk_push_update_mode (disk);
+
+	if (part->prev)
+		new_start = part->prev->geom.end + 1;
+	else
+		new_start = global_min_start;
+
+	if (part->next)
+		new_end = part->next->geom.start - 1;
+	else
+		new_end = global_max_end;
+
+	if (!ped_disk_set_partition_geom (disk, part, constraint, new_start,
+					  new_end))
+		goto error;
+
+	_disk_pop_update_mode (disk);
+	return 1;
+
+error:
+	constraint_any = ped_constraint_any (disk->dev);
+	ped_disk_set_partition_geom (disk, part, constraint_any,
+				     old_geom.start, old_geom.end);
+	ped_constraint_destroy (constraint_any);
+	_disk_pop_update_mode (disk);
+	return 0;
+}
+
+/**
+ * Get the maximum geometry \p part can be grown to, subject to
+ * \p constraint.
+ *
+ * \return \c NULL on failure.
+ */
+PedGeometry*
+ped_disk_get_max_partition_geometry (PedDisk* disk, PedPartition* part,
+				     const PedConstraint* constraint)
+{
+	PedGeometry	old_geom;
+	PedGeometry*	max_geom;
+	PedConstraint*	constraint_exact;
+
+	PED_ASSERT(disk != NULL, return NULL);
+	PED_ASSERT(part != NULL, return NULL);
+	PED_ASSERT(ped_partition_is_active (part), return NULL);
+
+	old_geom = part->geom;
+	if (!ped_disk_maximize_partition (disk, part, constraint))
+		return NULL;
+	max_geom = ped_geometry_duplicate (&part->geom);
+
+	constraint_exact = ped_constraint_exact (&old_geom);
+	ped_disk_set_partition_geom (disk, part, constraint_exact,
+				     old_geom.start, old_geom.end);
+	ped_constraint_destroy (constraint_exact);
+
+	/* this assertion should never fail, because the old
+	 * geometry was valid
+	 */
+	PED_ASSERT (ped_geometry_test_equal (&part->geom, &old_geom),
+		    return NULL);
+
+	return max_geom;
+}
+
+/** 
+ * Reduce the size of the extended partition to a minimum while still wrapping
+ * its logical partitions.  If there are no logical partitions, remove the
+ * extended partition.
+ *
+ * \return 0 on failure.
+ */
+int
+ped_disk_minimize_extended_partition (PedDisk* disk)
+{
+	PedPartition*		first_logical;
+	PedPartition*		last_logical;
+	PedPartition*		walk;
+	PedPartition*		ext_part;
+	PedConstraint*		constraint;
+	int			status;
+
+	PED_ASSERT (disk != NULL, return 0);
+
+	ext_part = ped_disk_extended_partition (disk);
+	if (!ext_part)
+		return 1;
+
+	_disk_push_update_mode (disk);
+
+	first_logical = ext_part->part_list;
+	if (!first_logical) {
+		_disk_pop_update_mode (disk);
+		return ped_disk_delete_partition (disk, ext_part);
+	}
+
+	for (walk = first_logical; walk->next; walk = walk->next);
+	last_logical = walk;
+
+	constraint = ped_constraint_any (disk->dev);
+	status = ped_disk_set_partition_geom (disk, ext_part, constraint,
+					      first_logical->geom.start,
+					      last_logical->geom.end);
+	ped_constraint_destroy (constraint);
+
+	_disk_pop_update_mode (disk);
+	return status;
+}
+
+/**
+ * @}
+ */
+
+/**
+ * \addtogroup PedPartition
+ *
+ * @{
+ */
+
+/**
+ * Returns a name that seems mildly appropriate for a partition type \p type.
+ * 
+ * Eg, if you pass (PED_PARTITION_LOGICAL & PED_PARTITION_FREESPACE), it
+ * will return "free".  This isn't to be taken too seriously - it's just
+ * useful for user interfaces, so you can show the user something ;-)
+ * 
+ * \note The returned string will be in English.  However,
+ * translations are provided, so the caller can call
+ * dgettext("parted", RESULT) on the result.
+ *
+ */
+const char*
+ped_partition_type_get_name (PedPartitionType type)
+{
+	if (type & PED_PARTITION_METADATA)
+		return N_("metadata");
+	else if (type & PED_PARTITION_FREESPACE)
+		return N_("free");
+	else if (type & PED_PARTITION_EXTENDED)
+		return N_("extended");
+	else if (type & PED_PARTITION_LOGICAL)
+		return N_("logical");
+	else
+		return N_("primary");
+}
+
+
+/**
+ * Returns a name for a \p flag, e.g. PED_PARTITION_BOOT will return "boot".
+ * 
+ * \note The returned string will be in English.  However,
+ * translations are provided, so the caller can call
+ * dgettext("parted", RESULT) on the result.
+ */
+const char*
+ped_partition_flag_get_name (PedPartitionFlag flag)
+{
+	switch (flag) {
+	case PED_PARTITION_BOOT:
+		return N_("boot");
+	case PED_PARTITION_ROOT:
+		return N_("root");
+	case PED_PARTITION_SWAP:
+		return N_("swap");
+	case PED_PARTITION_HIDDEN:
+		return N_("hidden");
+	case PED_PARTITION_RAID:
+		return N_("raid");
+	case PED_PARTITION_LVM:
+		return N_("lvm");
+	case PED_PARTITION_LBA:
+		return N_("lba");
+	case PED_PARTITION_HPSERVICE:
+		return N_("hp-service");
+	case PED_PARTITION_PALO:
+		return N_("palo");
+	case PED_PARTITION_PREP:
+		return N_("prep");
+	case PED_PARTITION_MSFT_RESERVED:
+		return N_("msftres");
+
+	default:
+		ped_exception_throw (
+			PED_EXCEPTION_BUG,
+			PED_EXCEPTION_CANCEL,
+			_("Unknown partition flag, %d."),
+			flag);
+		return NULL;
+	}
+}
+
+/**
+ * Iterates through all flags. 
+ * 
+ * ped_partition_flag_next(0) returns the first flag
+ *
+ * \return the next flag, or 0 if there are no more flags
+ */
+PedPartitionFlag
+ped_partition_flag_next (PedPartitionFlag flag)
+{
+	return (flag + 1) % (PED_PARTITION_LAST_FLAG + 1);
+}
+
+/**
+ * Returns the flag associated with \p name.  
+ *
+ * \p name can be the English
+ * string, or the translation for the native language.
+ */
+PedPartitionFlag
+ped_partition_flag_get_by_name (const char* name)
+{
+	PedPartitionFlag	flag;
+	const char*		flag_name;
+
+	for (flag = ped_partition_flag_next (0); flag;
+	     		flag = ped_partition_flag_next (flag)) {
+		flag_name = ped_partition_flag_get_name (flag);
+		if (strcasecmp (name, flag_name) == 0
+		    || strcasecmp (name, _(flag_name)) == 0)
+			return flag;
+	}
+
+	return 0;
+}
+
+static void
+ped_partition_print (const PedPartition* part)
+{
+	PED_ASSERT (part != NULL, return);
+
+	printf ("  %-10s %02d  (%d->%d)\n",
+		ped_partition_type_get_name (part->type),
+		part->num,
+		(int) part->geom.start, (int) part->geom.end);
+}
+
+/** @} */
+
+/**
+ * \addtogroup PedDisk
+ *
+ * @{
+ */
+
+/**
+ * Prints a summary of disk's partitions.  Useful for debugging.
+ */
+void
+ped_disk_print (const PedDisk* disk)
+{
+	PedPartition*	part;
+
+	PED_ASSERT (disk != NULL, return);
+
+	for (part = disk->part_list; part;
+	     part = ped_disk_next_partition (disk, part))
+		ped_partition_print (part);
+}
+
+/** @} */
diff --git a/parted-1.8.7/libparted/exception.c b/parted-1.8.7/libparted/exception.c
new file mode 100644
index 0000000..d109209
--- /dev/null
+++ b/parted-1.8.7/libparted/exception.c
@@ -0,0 +1,313 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 1999, 2000, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+/** \file exception.c */
+
+/**
+ * \addtogroup PedException
+ *
+ * \brief Exception handling.
+ * 
+ * There are a few types of exceptions: PED_EXCEPTION_INFORMATION,
+ * PED_EXCEPTION_WARNING, PED_EXCEPTION_ERROR, PED_EXCEPTION_FATAL,
+ * PED_EXCEPTION_BUG.
+ *
+ * They are "thrown" when one of the above events occur while executing
+ * a libparted function. For example, if ped_device_open() fails
+ * because the device doesn't exist, an exception will be thrown.
+ * Exceptions contain text describing what the event was. It will give
+ * at least one option for resolving the exception: PED_EXCEPTION_FIX,
+ * PED_EXCEPTION_YES, PED_EXCEPTION_NO, PED_EXCEPTION_OK, PED_EXCEPTION_RETRY,
+ * PED_EXCEPTION_IGNORE, PED_EXCEPTION_CANCEL. After an exception is thrown,
+ * there are two things that can happen:
+ *
+ * -# an exception handler is called, which selects how the exception should be
+ *    resolved (usually by asking the user). Also note: an exception handler may
+ *    choose to return PED_EXCEPTION_UNHANDLED. In this case, a default action
+ *    will be taken by libparted (respectively the code that threw the
+ *    exception). In general, a default action will be "safe".
+ * -# the exception is not handled, because the caller of the function wants to
+ *    handle everything itself. In this case, PED_EXCEPTION_UNHANDLED is
+ *    returned.
+ *
+ * @{
+ */
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+
+#define N_(String) String
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#include <stdio.h>
+#include <stdarg.h>
+#include <stdlib.h>
+
+int				ped_exception = 0;
+
+static PedExceptionOption default_handler (PedException* ex);
+
+static PedExceptionHandler*	ex_handler = default_handler;
+static PedException*		ex = NULL;
+static int			ex_fetch_count = 0;
+
+static char*	type_strings [] = {
+	N_("Information"),
+	N_("Warning"),
+	N_("Error"),
+	N_("Fatal"),
+	N_("Bug"),
+	N_("No Implementation")
+};
+
+static char*	option_strings [] = {
+	N_("Fix"),
+	N_("Yes"),
+	N_("No"),
+	N_("OK"),
+	N_("Retry"),
+	N_("Ignore"),
+	N_("Cancel")
+};
+
+/**
+ *  Return a string describing an exception type.
+ */
+char*
+ped_exception_get_type_string (PedExceptionType ex_type)
+{
+	return type_strings [ex_type - 1];
+}
+
+/* FIXME: move this out to the prospective math.c */
+/* FIXME: this can probably be done more efficiently */
+static int
+ped_log2 (int n)
+{
+	int x;
+
+        PED_ASSERT (n > 0, return -1);
+
+	for (x=0; 1 << x <= n; x++);
+
+	return x - 1;
+}
+
+/**
+ * Return a string describing an exception option.
+ */
+char*
+ped_exception_get_option_string (PedExceptionOption ex_opt)
+{
+	return option_strings [ped_log2 (ex_opt)];
+}
+
+static PedExceptionOption
+default_handler (PedException* e)
+{
+	if (e->type == PED_EXCEPTION_BUG)
+		fprintf (stderr,
+			_("A bug has been detected in GNU Parted.  "
+			"Refer to the web site of parted "
+			"http://www.gnu.org/software/parted/parted.html "
+			"for more informations of what could be useful "
+			"for bug submitting!  "
+			"Please email a bug report to "
+			"bug-parted@gnu.org containing at least the "
+			"version (%s) and the following message:  "),
+			VERSION);
+	else
+		fprintf (stderr, "%s: ",
+			 ped_exception_get_type_string (e->type));
+	fprintf (stderr, "%s\n", e->message);
+
+	switch (e->options) {
+		case PED_EXCEPTION_OK:
+		case PED_EXCEPTION_CANCEL:
+		case PED_EXCEPTION_IGNORE:
+			return e->options;
+
+		default:
+			return PED_EXCEPTION_UNHANDLED;
+	}
+}
+
+/**
+ * Set the exception handler.
+ *
+ * The exception handler should return ONE of the options set in ex->options,
+ * indicating the way the event should be resolved.
+ */
+void
+ped_exception_set_handler (PedExceptionHandler* handler)
+{
+	if (handler)
+		ex_handler = handler;
+	else
+		ex_handler = default_handler;
+}
+
+/**
+ * Get the current exception handler.
+ */
+PedExceptionHandler *
+ped_exception_get_handler (void)
+{
+	if (ex_handler)
+		return ex_handler;
+	return default_handler;
+}
+
+/**
+ * Assert that the current exception has been resolved.
+ */
+void
+ped_exception_catch ()
+{
+	if (ped_exception) {
+		ped_exception = 0;
+
+		ped_free (ex->message);
+		ped_free (ex);
+		ex = NULL;
+	}
+}
+
+static PedExceptionOption
+do_throw ()
+{
+	PedExceptionOption	ex_opt;
+
+	ped_exception = 1;
+
+	if (ex_fetch_count) {
+		return PED_EXCEPTION_UNHANDLED;
+	} else {
+		ex_opt = ex_handler (ex);
+		ped_exception_catch ();
+		return ex_opt;
+	}
+}
+
+/**
+ * Throw an exception.
+ *
+ * You can also use this in a program using libparted.
+ * "message" is a printf-like format string, so you can do 
+ *
+ * \code
+ * ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_RETRY_CANCEL,
+ *      "Can't open %s", file_name);
+ * \endcode
+ *
+ * Returns the option selected to resolve the exception. If the exception was
+ * unhandled, PED_EXCEPTION_UNHANDLED is returned.
+ */
+PedExceptionOption
+ped_exception_throw (PedExceptionType ex_type,
+		     PedExceptionOption ex_opts, const char* message, ...)
+{
+	va_list		arg_list;
+	int result;
+	static int size = 1000;
+
+	if (ex)
+		ped_exception_catch ();
+
+	ex = (PedException*) malloc (sizeof (PedException));
+	if (!ex)
+		goto no_memory;
+
+	ex->type = ex_type;
+	ex->options = ex_opts;
+
+	while (1) {
+			ex->message = (char*) malloc (size);
+			if (!ex->message)
+					goto no_memory;
+
+			va_start (arg_list, message);
+			result = vsnprintf (ex->message, size, message, arg_list);
+			va_end (arg_list);
+
+			if (result > -1 && result < size)
+					break;
+
+			size += 10;
+	}
+
+	return do_throw ();
+
+no_memory:
+	fputs ("Out of memory in exception handler!\n", stderr);
+
+	va_start (arg_list, message);
+	vfprintf (stderr, message, arg_list);
+	va_end (arg_list);
+
+	return PED_EXCEPTION_UNHANDLED;
+}
+
+/**
+ * Rethrow an unhandled exception.
+ * This means repeating the last ped_exception_throw() statement.
+ */
+PedExceptionOption
+ped_exception_rethrow ()
+{
+	return do_throw ();
+}
+
+/**
+ * Indicates that exceptions should not go to the exception handler, but
+ * passed up to the calling function(s).  All calls to
+ * ped_exception_throw() will return PED_EXCEPTION_UNHANDLED.
+ */
+void
+ped_exception_fetch_all ()
+{
+	ex_fetch_count++;
+}
+
+/**
+ * Indicates that the calling function does not want to accept any
+ * responsibility for exceptions any more.
+ *
+ * \note a caller of that function may still want responsibility, so
+ *      ped_exception_throw() may not invoke the exception handler.
+ *
+ * \warning every call to this function must have a preceding
+ *      ped_exception_fetch_all().
+ */
+void
+ped_exception_leave_all ()
+{
+	PED_ASSERT (ex_fetch_count > 0, return);
+	ex_fetch_count--;
+}
+
+/** @} */
+
diff --git a/parted-1.8.7/libparted/filesys.c b/parted-1.8.7/libparted/filesys.c
new file mode 100644
index 0000000..cef277c
--- /dev/null
+++ b/parted-1.8.7/libparted/filesys.c
@@ -0,0 +1,783 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 1999, 2000, 2001, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+/** \file filesys.c */
+
+/**
+ * \addtogroup PedFileSystem
+ *
+ * \note File systems exist on a PedGeometry - NOT a PedPartition.
+ *
+ * @{
+ */
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#define BUFFER_SIZE	4096		/* in sectors */
+
+static PedFileSystemType*	fs_types = NULL;
+
+void
+ped_file_system_type_register (PedFileSystemType* fs_type)
+{
+	PED_ASSERT (fs_type != NULL, return);
+	PED_ASSERT (fs_type->ops != NULL, return);
+	PED_ASSERT (fs_type->name != NULL, return);
+	
+	/* pretend that "next" isn't part of the struct :-) */
+	((struct _PedFileSystemType*) fs_type)->next = fs_types;
+	fs_types = (struct _PedFileSystemType*) fs_type;
+}
+
+void
+ped_file_system_type_unregister (PedFileSystemType* fs_type)
+{
+	PedFileSystemType*	walk;
+	PedFileSystemType*	last = NULL;
+
+	PED_ASSERT (fs_types != NULL, return);
+	PED_ASSERT (fs_type != NULL, return);
+
+	for (walk = fs_types; walk && walk != fs_type;
+                last = walk, walk = walk->next);
+
+	PED_ASSERT (walk != NULL, return);
+	if (last)
+		((struct _PedFileSystemType*) last)->next = fs_type->next;
+	else
+		fs_types = fs_type->next;	
+}
+
+/**
+ * Get a PedFileSystemType by its @p name.
+ *
+ * @return @c NULL if none found.
+ */
+PedFileSystemType*
+ped_file_system_type_get (const char* name)
+{
+	PedFileSystemType*	walk;
+
+	PED_ASSERT (name != NULL, return NULL);
+
+	for (walk = fs_types; walk != NULL; walk = walk->next) {
+		if (!strcasecmp (walk->name, name))
+			break;
+	}
+	return walk;
+}
+
+/**
+ * Get the next PedFileSystemType after @p fs_type.
+ *
+ * @return @c NULL if @p fs_type is the last item in the list.
+ */
+PedFileSystemType*
+ped_file_system_type_get_next (const PedFileSystemType* fs_type)
+{
+	if (fs_type)
+		return fs_type->next;
+	else
+		return fs_types;
+}
+
+/**
+ * Attempt to find a file system and return the region it occupies.
+ *
+ * @param fs_type The file system type to probe for.
+ * @param geom The region to be searched.
+ *
+ * @return @p NULL if @p fs_type file system wasn't detected
+ */
+PedGeometry*
+ped_file_system_probe_specific (
+		const PedFileSystemType* fs_type, PedGeometry* geom)
+{
+	PedGeometry*	result;
+
+	PED_ASSERT (fs_type != NULL, return NULL);
+	PED_ASSERT (fs_type->ops->probe != NULL, return NULL);
+	PED_ASSERT (geom != NULL, return NULL);
+
+	if (!ped_device_open (geom->dev))
+		return 0;
+	result = fs_type->ops->probe (geom);
+	ped_device_close (geom->dev);
+	return result;
+}
+
+static int
+_test_open (PedFileSystemType* fs_type, PedGeometry* geom)
+{
+	PedFileSystem*		fs;
+
+	ped_exception_fetch_all ();
+	fs = fs_type->ops->open (geom);
+	if (fs)
+		fs_type->ops->close (fs);
+	else
+		ped_exception_catch ();
+	ped_exception_leave_all ();
+	return fs != NULL;
+}
+
+static PedFileSystemType*
+_probe_with_open (PedGeometry* geom, int detected_count,
+		  PedFileSystemType* detected[])
+{
+	int			i;
+	PedFileSystemType*	open_detected = NULL;
+
+	ped_device_open (geom->dev);
+
+	/* If one and only one file system that Parted is able to open
+	 * can be successfully opened on this geometry, return it.
+	 * If more than one can be, return NULL.
+	 */
+	for (i=0; i<detected_count; i++) {
+		if (!detected[i]->ops->open || !_test_open (detected [i], geom))
+			continue;
+
+		if (open_detected) {
+			ped_device_close (geom->dev);
+			return NULL;
+		} else {
+			open_detected = detected [i];
+		}
+	}
+
+	/* If no file system has been successfully opened, and
+	 * if Parted has detected at most one unopenable file system,
+	 * return it.
+	 */
+	if (!open_detected)
+	for (i=0; i<detected_count; i++) {
+		if (detected[i]->ops->open)
+			continue;
+		if (open_detected) {
+			ped_device_close (geom->dev);
+			return NULL;
+		} else {
+			open_detected = detected [i];
+		}
+	}	
+
+	ped_device_close (geom->dev);
+	return open_detected;
+}
+
+static int
+_geometry_error (const PedGeometry* a, const PedGeometry* b)
+{
+	PedSector	start_delta = a->start - b->start;
+	PedSector	end_delta = a->end - b->end;
+
+	return abs (start_delta) + abs (end_delta);
+}
+
+static PedFileSystemType*
+_best_match (const PedGeometry* geom, PedFileSystemType* detected [],
+	     const int detected_error [], int detected_count)
+{
+	int		best_match = 0;
+	int		i;
+	PedSector	min_error;
+
+	min_error = PED_MAX (4096, geom->length / 100);
+
+	for (i = 1; i < detected_count; i++) {
+		if (detected_error [i] < detected_error [best_match])
+			best_match = i;
+	}
+
+	/* make sure the best match is significantly better than all the
+	 * other matches
+	 */
+	for (i = 0; i < detected_count; i++) {
+		if (i == best_match)
+			continue;
+
+		if (abs (detected_error [best_match] - detected_error [i])
+				< min_error)
+			return NULL;
+	}
+
+	return detected [best_match];
+}
+
+
+/**
+ * Attempt to detect a file system in region \p geom. 
+ * This function tries to be clever at dealing with ambiguous
+ * situations, such as when one file system was not completely erased before a
+ * new file system was created on top of it.
+ *
+ * \return a new PedFileSystem on success, \c NULL on failure
+ */
+PedFileSystemType*
+ped_file_system_probe (PedGeometry* geom)
+{
+	PedFileSystemType*	detected[32];
+	int			detected_error[32];
+	int			detected_count = 0;
+	PedFileSystemType*	walk = NULL;
+
+	PED_ASSERT (geom != NULL, return NULL);
+
+	if (!ped_device_open (geom->dev))
+		return NULL;
+
+	ped_exception_fetch_all ();
+	while ( (walk = ped_file_system_type_get_next (walk)) ) {
+		PedGeometry*	probed;
+
+		probed = ped_file_system_probe_specific (walk, geom);
+		if (probed) {
+			detected [detected_count] = walk;
+			detected_error [detected_count]
+				= _geometry_error (geom, probed);
+			detected_count++;
+			ped_geometry_destroy (probed);
+		} else {
+			ped_exception_catch ();
+		}
+	}
+	ped_exception_leave_all ();
+
+	ped_device_close (geom->dev);
+
+	if (!detected_count)
+		return NULL;
+	walk = _best_match (geom, detected, detected_error, detected_count);
+	if (walk)
+		return walk;
+	return _probe_with_open (geom, detected_count, detected);
+}
+
+/**
+ * This function erases all file system signatures that indicate that a
+ * file system occupies a given region described by \p geom.
+ * After this operation ped_file_system_probe() won't detect any file system.
+ *
+ * \note ped_file_system_create() calls this before creating a new file system.
+ * 
+ * \return \c 1 on success, \c 0 on failure
+ */
+int
+ped_file_system_clobber (PedGeometry* geom)
+{
+	PedFileSystemType*	fs_type = NULL;
+
+	PED_ASSERT (geom != NULL, return 0);
+
+	if (!ped_device_open (geom->dev))
+		goto error;
+
+	ped_exception_fetch_all ();
+	while ((fs_type = ped_file_system_type_get_next (fs_type))) {
+		PedGeometry*	probed;
+
+		if (!fs_type->ops->clobber)
+			continue;
+
+		probed = ped_file_system_probe_specific (fs_type, geom);
+		if (!probed) {
+			ped_exception_catch ();
+			continue;
+		}
+		ped_geometry_destroy (probed);
+
+		if (fs_type->ops->clobber && !fs_type->ops->clobber (geom)) {
+			ped_exception_leave_all ();
+			goto error_close_dev;
+		}
+	}
+	ped_device_close (geom->dev);
+	ped_exception_leave_all ();
+	return 1;
+
+error_close_dev:
+	ped_device_close (geom->dev);
+error:
+	return 0;
+}
+
+/* This function erases all signatures that indicate the presence of
+ * a file system in a particular region, without erasing any data
+ * contained inside the "exclude" region.
+ */
+static int
+ped_file_system_clobber_exclude (PedGeometry* geom,
+				 const PedGeometry* exclude)
+{
+	PedGeometry*    clobber_geom;
+	int             status;
+
+	if (ped_geometry_test_sector_inside (exclude, geom->start))
+		return 1;
+
+	clobber_geom = ped_geometry_duplicate (geom);
+	if (ped_geometry_test_overlap (clobber_geom, exclude))
+		ped_geometry_set_end (clobber_geom, exclude->start - 1);
+
+	status = ped_file_system_clobber (clobber_geom);
+	ped_geometry_destroy (clobber_geom);
+	return status;
+}
+
+/**
+ * This function opens the file system stored on \p geom, if it
+ * can find one.
+ * It is often called in the following manner:
+ * \code
+ * 	fs = ped_file_system_open (&part.geom)
+ * \endcode
+ *
+ * \throws PED_EXCEPTION_ERROR if file system could not be detected
+ * \throws PED_EXCEPTION_ERROR if the file system is bigger than its volume
+ * \throws PED_EXCEPTION_NO_FEATURE if opening of a file system stored on 
+ * 	\p geom is not implemented
+ *
+ * \return a PedFileSystem on success, \c NULL on failure.
+ */
+PedFileSystem*
+ped_file_system_open (PedGeometry* geom)
+{
+	PedFileSystemType*	type;
+	PedFileSystem*		fs;
+	PedGeometry*		probed_geom;
+
+	PED_ASSERT (geom != NULL, return NULL);
+
+	if (!ped_device_open (geom->dev))
+		goto error;
+
+	type = ped_file_system_probe (geom);
+	if (!type) {
+		ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+				     _("Could not detect file system."));
+		goto error_close_dev;
+	}
+
+	probed_geom = ped_file_system_probe_specific (type, geom);
+	if (!probed_geom)
+		goto error_close_dev;
+	if (!ped_geometry_test_inside (geom, probed_geom)) {
+		if (ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_IGNORE_CANCEL,
+			_("The file system is bigger than its volume!"))
+				!= PED_EXCEPTION_IGNORE)
+			goto error_destroy_probed_geom;
+	}
+
+	if (!type->ops->open) {
+		ped_exception_throw (PED_EXCEPTION_NO_FEATURE,
+				     PED_EXCEPTION_CANCEL,
+				     _("Support for opening %s file systems "
+				       "is not implemented yet."),
+				     type->name);
+		goto error_destroy_probed_geom;
+	}
+
+	fs = type->ops->open (probed_geom);
+	if (!fs)
+		goto error_destroy_probed_geom;
+	ped_geometry_destroy (probed_geom);
+	return fs;
+
+error_destroy_probed_geom:
+	ped_geometry_destroy (probed_geom);
+error_close_dev:
+	ped_device_close (geom->dev);
+error:
+	return 0;
+}
+
+/**
+ * This function initializes a new file system of type \p type on 
+ * a region described by \p geom, writing out appropriate metadata and 
+ * signatures.  If \p timer is non-NULL, it is used as the progress meter.
+ *
+ * \throws PED_EXCEPTION_NO_FEATURE if creating file system type \p type 
+ * 	is not implemented yet
+ *
+ * \return a PedFileSystem on success, \c NULL on failure
+ */
+PedFileSystem*
+ped_file_system_create (PedGeometry* geom, const PedFileSystemType* type,
+			PedTimer* timer)
+{
+	PedFileSystem*	fs;
+
+	PED_ASSERT (geom != NULL, return NULL);
+	PED_ASSERT (type != NULL, return NULL);
+
+	if (!type->ops->create) {
+		ped_exception_throw (PED_EXCEPTION_NO_FEATURE,
+				     PED_EXCEPTION_CANCEL,
+				     _("Support for creating %s file systems "
+				       "is not implemented yet."),
+				     type->name);
+		goto error;
+	}
+
+	if (!ped_device_open (geom->dev))
+		goto error;
+
+	if (!ped_file_system_clobber (geom))
+		goto error_close_dev;
+	fs = type->ops->create (geom, timer);
+	if (!fs)
+		goto error_close_dev;
+	return fs;
+
+error_close_dev:
+	ped_device_close (geom->dev);
+error:
+	return 0;
+}
+
+/**
+ * Close file system \p fs.
+ *
+ * \return \c 1 on success, \c 0 on failure
+ */
+int
+ped_file_system_close (PedFileSystem* fs)
+{
+	PedDevice*	dev = fs->geom->dev;
+
+	PED_ASSERT (fs != NULL, goto error_close_dev);
+
+	if (!fs->type->ops->close (fs))
+		goto error_close_dev;
+	ped_device_close (dev);
+	return 1;
+
+error_close_dev:
+	ped_device_close (dev);
+	return 0;
+}
+
+/**
+ * Check \p fs file system for errors.
+ *
+ * \throws PED_EXCEPTION_NO_FEATURE if checking file system \p fs is 
+ * 	not implemented yet
+ *
+ * \return \c 0 on failure (i.e. unfixed errors)
+ */
+int
+ped_file_system_check (PedFileSystem* fs, PedTimer* timer)
+{
+	PED_ASSERT (fs != NULL, return 0);
+
+	if (!fs->type->ops->check) {
+		ped_exception_throw (PED_EXCEPTION_NO_FEATURE,
+				     PED_EXCEPTION_CANCEL,
+				     _("Support for checking %s file systems "
+				       "is not implemented yet."),
+				     fs->type->name);
+		return 0;
+	}
+	return fs->type->ops->check (fs, timer);
+}
+
+static int
+_raw_copy (const PedGeometry* src, PedGeometry* dest, PedTimer* timer)
+{
+	char*		buf;
+	PedSector	pos;
+
+	PED_ASSERT (src != NULL, goto error);
+	PED_ASSERT (dest != NULL, goto error);
+	PED_ASSERT (src->length <= dest->length, goto error);
+
+	buf = ped_malloc (BUFFER_SIZE * 512);		/* FIXME */
+	if (!buf)
+		goto error;
+
+	if (!ped_device_open (src->dev))
+		goto error_free_buf;
+	if (!ped_device_open (dest->dev))
+		goto error_close_src;
+
+	for (pos = 0; pos + BUFFER_SIZE < src->length; pos += BUFFER_SIZE) {
+		ped_timer_update (timer, 1.0 * pos / src->length);
+		if (!ped_geometry_read (src, buf, pos, BUFFER_SIZE))
+			goto error_close_dest;
+		if (!ped_geometry_write (dest, buf, pos, BUFFER_SIZE))
+			goto error_close_dest;
+	}
+	if (pos < src->length) {
+		ped_timer_update (timer, 1.0 * pos / src->length);
+		if (!ped_geometry_read (src, buf, pos, src->length - pos))
+			goto error_close_dest;
+		if (!ped_geometry_write (dest, buf, pos, src->length - pos))
+			goto error_close_dest;
+	}
+	ped_timer_update (timer, 1.0);
+
+	ped_device_close (src->dev);
+	ped_device_close (dest->dev);
+	ped_free (buf);
+	return 1;
+
+error_close_dest:
+	ped_device_close (dest->dev);
+error_close_src:
+	ped_device_close (src->dev);
+error_free_buf:
+	ped_free (buf);
+error:
+	return 0;
+}
+
+static PedFileSystem*
+_raw_copy_and_resize (const PedFileSystem* fs, PedGeometry* geom,
+		      PedTimer* timer)
+{
+	PedFileSystem*	new_fs;
+	PedTimer*	sub_timer = NULL;
+
+	ped_timer_reset (timer);
+	ped_timer_set_state_name (timer, _("raw block copying"));
+
+	sub_timer = ped_timer_new_nested (timer, 0.95);
+	if (!_raw_copy (fs->geom, geom, sub_timer))
+		goto error;
+	ped_timer_destroy_nested (sub_timer);
+
+	new_fs = ped_file_system_open (geom);
+	if (!new_fs)
+		goto error;
+
+	ped_timer_set_state_name (timer, _("growing file system"));
+
+	sub_timer = ped_timer_new_nested (timer, 0.05);
+	if (!ped_file_system_resize (new_fs, geom, sub_timer))
+		goto error_close_new_fs;
+	ped_timer_destroy_nested (sub_timer);
+	return new_fs;
+
+error_close_new_fs:
+	ped_file_system_close (new_fs);
+error:
+	ped_timer_destroy_nested (sub_timer);
+	return NULL;
+}
+
+/**
+ * Create a new file system (of the same type) on \p geom, and
+ * copy the contents of \p fs into the new filesystem.  
+ * If \p timer is non-NULL, it is used as the progress meter.
+ *
+ * \throws PED_EXCEPTION_ERROR when trying to copy onto an overlapping partition
+ * \throws PED_EXCEPTION_NO_FEATURE if copying of file system \p fs 
+ * 	is not implemented yet
+ *
+ * \return a new PedFileSystem on success, \c NULL on failure
+ */
+PedFileSystem*
+ped_file_system_copy (PedFileSystem* fs, PedGeometry* geom, PedTimer* timer)
+{
+	PedFileSystem* new_fs;
+
+	PED_ASSERT (fs != NULL, return 0);
+	PED_ASSERT (geom != NULL, return 0);
+
+	if (!ped_device_open (geom->dev))
+		goto error;
+
+	if (ped_geometry_test_overlap (fs->geom, geom)) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("Can't copy onto an overlapping partition."));
+		goto error_close_dev;
+	}
+
+	if (!fs->checked && fs->type->ops->check) {
+		if (!ped_file_system_check (fs, timer))
+			goto error_close_dev;
+	}
+
+	if (!ped_file_system_clobber_exclude (geom, fs->geom))
+		goto error_close_dev;
+
+	if (!fs->type->ops->copy) {
+		if (fs->type->ops->resize) {
+			if (fs->geom->length <= geom->length)
+				return _raw_copy_and_resize (
+						fs, (PedGeometry*) geom,
+						timer);
+				
+			ped_exception_throw (
+				PED_EXCEPTION_NO_FEATURE,
+				PED_EXCEPTION_CANCEL,
+				_("Direct support for copying file systems is "
+				  "not yet implemented for %s.  However, "
+				  "support for resizing is implemented.  "
+				  "Therefore, the file system can be copied if "
+				  "the new partition is at least as big as the "
+				  "old one.  So, either shrink the partition "
+				  "you are trying to copy, or copy to a bigger "
+				  "partition."),
+				fs->type->name);
+			goto error_close_dev;
+		} else {
+			ped_exception_throw (
+				PED_EXCEPTION_NO_FEATURE,
+				PED_EXCEPTION_CANCEL,
+				_("Support for copying %s file systems is not "
+				  "implemented yet."),
+				fs->type->name);
+			goto error_close_dev;
+		}
+	}
+	new_fs = fs->type->ops->copy (fs, geom, timer);
+	if (!new_fs)
+		goto error_close_dev;
+	return new_fs;
+
+error_close_dev:
+	ped_device_close (geom->dev);
+error:
+	return NULL;;
+}
+
+/**
+ * Resize \p fs to new geometry \p geom.
+ *
+ * \p geom should satisfy the ped_file_system_get_resize_constraint().
+ * (This isn't asserted, so it's not a bug not to... just it's likely
+ * to fail ;)  If \p timer is non-NULL, it is used as the progress meter.
+ *
+ * \throws PED_EXCEPTION_NO_FEATURE if resizing of file system \p fs 
+ * 	is not implemented yet
+ * 
+ * \return \c 0 on failure 
+ */
+int
+ped_file_system_resize (PedFileSystem* fs, PedGeometry* geom, PedTimer* timer)
+{
+	PED_ASSERT (fs != NULL, return 0);
+	PED_ASSERT (geom != NULL, return 0);
+
+	if (!fs->type->ops->resize) {
+		ped_exception_throw (PED_EXCEPTION_NO_FEATURE,
+				     PED_EXCEPTION_CANCEL,
+				     _("Support for resizing %s file systems "
+				       "is not implemented yet."),
+				     fs->type->name);
+		return 0;
+	}
+	if (!fs->checked && fs->type->ops->check) {
+		if (!ped_file_system_check (fs, timer))
+			return 0;
+	}
+	if (!ped_file_system_clobber_exclude (geom, fs->geom))
+		return 0;
+
+	return fs->type->ops->resize (fs, geom, timer);
+}
+
+/**
+ * This function returns a constraint on the region that all file systems
+ * of a particular type \p fs_type created on device \p dev with 
+ * ped_file_system_create() must satisfy. For example, FAT16 file systems must
+ * be at least 32 megabytes.
+ *
+ * \return \c NULL on failure
+ */
+PedConstraint*
+ped_file_system_get_create_constraint (const PedFileSystemType* fs_type,
+				       const PedDevice* dev)
+{
+	PED_ASSERT (fs_type != NULL, return NULL);
+	PED_ASSERT (dev != NULL, return NULL);
+
+	if (!fs_type->ops->get_create_constraint)
+		return NULL;
+	return fs_type->ops->get_create_constraint (dev);
+}
+/**
+ * Return a constraint, that represents all of the possible ways the
+ * file system \p fs can be resized with ped_file_system_resize().  
+ * This takes into account the amount of used space on
+ * the filesystem \p fs and the capabilities of the resize algorithm.
+ * Hints:
+ * -# if constraint->start_align->grain_size == 0, or
+ *    constraint->start_geom->length == 1, then the start can not be moved
+ * -# constraint->min_size is the minimum size you can resize the partition
+ *    to.  You might want to tell the user this ;-).
+ *    
+ * \return a PedConstraint on success, \c NULL on failure
+ */
+PedConstraint*
+ped_file_system_get_resize_constraint (const PedFileSystem* fs)
+{
+	PED_ASSERT (fs != NULL, return 0);
+
+	if (!fs->type->ops->get_resize_constraint)
+		return NULL;
+	return fs->type->ops->get_resize_constraint (fs);
+}
+
+/**
+ * Get the constraint on copying \p fs with ped_file_system_copy()
+ * to somewhere on \p dev.
+ *
+ * \return a PedConstraint on success, \c NULL on failure
+ */ 
+PedConstraint*
+ped_file_system_get_copy_constraint (const PedFileSystem* fs,
+				     const PedDevice* dev)
+{
+	PedGeometry	full_dev;
+
+	PED_ASSERT (fs != NULL, return NULL);
+	PED_ASSERT (dev != NULL, return NULL);
+
+	if (fs->type->ops->get_copy_constraint)
+		return fs->type->ops->get_copy_constraint (fs, dev);
+
+	if (fs->type->ops->resize) {
+		if (!ped_geometry_init (&full_dev, dev, 0, dev->length - 1))
+			return NULL;
+		return ped_constraint_new (
+				ped_alignment_any, ped_alignment_any,
+				&full_dev, &full_dev,
+				fs->geom->length, dev->length);
+	}
+
+	return NULL;
+}
+
+/** @} */
diff --git a/parted-1.8.7/libparted/fs/Makefile.am b/parted-1.8.7/libparted/fs/Makefile.am
new file mode 100644
index 0000000..96a5744
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/Makefile.am
@@ -0,0 +1,33 @@
+# This file is part of GNU Parted
+# Copyright (C) 1999, 2000, 2001, 2007 Free Software Foundation, Inc.
+#
+# This file may be modified and/or distributed without restriction.
+
+SUBDIRS       = amiga ext2 ufs fat ntfs hfs linux_swap xfs jfs reiserfs # bfs
+
+partedincludedir      =	-I$(top_srcdir)/include
+noinst_LTLIBRARIES    =	libfs.la
+libfs_la_LDFLAGS  = -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
+			-release $(LT_RELEASE)
+
+libfs_la_LIBADD   = $(UUID_LIBS)		\
+		    $(INTLLIBS)			\
+		    $(OS_LIBS)			\
+		    $(REISER_LIBS)		\
+		    amiga/libamigafs.la		\
+		    ext2/libext2.la		\
+		    ufs/libufs.la		\
+		    fat/libfat.la		\
+		    ntfs/libntfs.la		\
+		    hfs/libhfs.la		\
+		    linux_swap/liblinuxswap.la	\
+		    xfs/libxfs.la		\
+		    jfs/libjfs.la		\
+		    reiserfs/libreiserfs.la
+#		    bfs/libbfs.la
+
+libfs_la_SOURCES   =
+
+INCLUDES = $(partedincludedir) $(INTLINCS)
+
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/parted-1.8.7/libparted/fs/Makefile.in b/parted-1.8.7/libparted/fs/Makefile.in
new file mode 100644
index 0000000..c1ed4df
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/Makefile.in
@@ -0,0 +1,744 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# This file is part of GNU Parted
+# Copyright (C) 1999, 2000, 2001, 2007 Free Software Foundation, Inc.
+#
+# This file may be modified and/or distributed without restriction.
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = libparted/fs
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libfs_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	amiga/libamigafs.la ext2/libext2.la ufs/libufs.la \
+	fat/libfat.la ntfs/libntfs.la hfs/libhfs.la \
+	linux_swap/liblinuxswap.la xfs/libxfs.la jfs/libjfs.la \
+	reiserfs/libreiserfs.la
+am_libfs_la_OBJECTS =
+libfs_la_OBJECTS = $(am_libfs_la_OBJECTS)
+libfs_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(libfs_la_LDFLAGS) \
+	$(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/lib@am__isrc@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(libfs_la_SOURCES)
+DIST_SOURCES = $(libfs_la_SOURCES)
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+	html-recursive info-recursive install-data-recursive \
+	install-dvi-recursive install-exec-recursive \
+	install-html-recursive install-info-recursive \
+	install-pdf-recursive install-ps-recursive install-recursive \
+	installcheck-recursive installdirs-recursive pdf-recursive \
+	ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
+  distclean-recursive maintainer-clean-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = amiga ext2 ufs fat ntfs hfs linux_swap xfs jfs reiserfs # bfs
+partedincludedir = -I$(top_srcdir)/include
+noinst_LTLIBRARIES = libfs.la
+libfs_la_LDFLAGS = -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
+			-release $(LT_RELEASE)
+
+libfs_la_LIBADD = $(UUID_LIBS)		\
+		    $(INTLLIBS)			\
+		    $(OS_LIBS)			\
+		    $(REISER_LIBS)		\
+		    amiga/libamigafs.la		\
+		    ext2/libext2.la		\
+		    ufs/libufs.la		\
+		    fat/libfat.la		\
+		    ntfs/libntfs.la		\
+		    hfs/libhfs.la		\
+		    linux_swap/liblinuxswap.la	\
+		    xfs/libxfs.la		\
+		    jfs/libjfs.la		\
+		    reiserfs/libreiserfs.la
+
+#		    bfs/libbfs.la
+libfs_la_SOURCES = 
+INCLUDES = $(partedincludedir) $(INTLINCS)
+MAINTAINERCLEANFILES = Makefile.in
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  libparted/fs/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  libparted/fs/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libfs.la: $(libfs_la_OBJECTS) $(libfs_la_DEPENDENCIES) 
+	$(libfs_la_LINK)  $(libfs_la_OBJECTS) $(libfs_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	rev=''; for subdir in $$list; do \
+	  if test "$$subdir" = "."; then :; else \
+	    rev="$$subdir $$rev"; \
+	  fi; \
+	done; \
+	rev="$$rev ."; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done && test -z "$$fail"
+tags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+ctags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+	  include_option=--etags-include; \
+	  empty_fix=.; \
+	else \
+	  include_option=--include; \
+	  empty_fix=; \
+	fi; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test ! -f $$subdir/TAGS || \
+	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	  fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d "$(distdir)/$$subdir" \
+	    || $(MKDIR_P) "$(distdir)/$$subdir" \
+	    || exit 1; \
+	    distdir=`$(am__cd) $(distdir) && pwd`; \
+	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+	    (cd $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$$top_distdir" \
+	        distdir="$$distdir/$$subdir" \
+		am__remove_distdir=: \
+		am__skip_length_check=: \
+	        distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(LTLIBRARIES)
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-recursive
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-info: install-info-recursive
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-ps: install-ps-recursive
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+	install-strip
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+	all all-am check check-am clean clean-generic clean-libtool \
+	clean-noinstLTLIBRARIES ctags ctags-recursive distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
+	uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/libparted/fs/amiga/Makefile.am b/parted-1.8.7/libparted/fs/amiga/Makefile.am
new file mode 100644
index 0000000..599fec2
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/amiga/Makefile.am
@@ -0,0 +1,16 @@
+partedincludedir      =	-I$(top_srcdir)/include
+
+noinst_LTLIBRARIES    =	libamigafs.la
+libamigafs_la_SOURCES   =	amiga.h		\
+			amiga.c		\
+			affs.h		\
+			affs.c		\
+			asfs.h		\
+			asfs.c		\
+			apfs.h		\
+			apfs.c		\
+			interface.c
+
+INCLUDES = $(partedincludedir) $(INTLINCS)
+
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/parted-1.8.7/libparted/fs/amiga/Makefile.in b/parted-1.8.7/libparted/fs/amiga/Makefile.in
new file mode 100644
index 0000000..4b5ce57
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/amiga/Makefile.in
@@ -0,0 +1,638 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = libparted/fs/amiga
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+libamigafs_la_LIBADD =
+am_libamigafs_la_OBJECTS = amiga.lo affs.lo asfs.lo apfs.lo \
+	interface.lo
+libamigafs_la_OBJECTS = $(am_libamigafs_la_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/lib@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(libamigafs_la_SOURCES)
+DIST_SOURCES = $(libamigafs_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+partedincludedir = -I$(top_srcdir)/include
+noinst_LTLIBRARIES = libamigafs.la
+libamigafs_la_SOURCES = amiga.h		\
+			amiga.c		\
+			affs.h		\
+			affs.c		\
+			asfs.h		\
+			asfs.c		\
+			apfs.h		\
+			apfs.c		\
+			interface.c
+
+INCLUDES = $(partedincludedir) $(INTLINCS)
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  libparted/fs/amiga/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  libparted/fs/amiga/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libamigafs.la: $(libamigafs_la_OBJECTS) $(libamigafs_la_DEPENDENCIES) 
+	$(LINK)  $(libamigafs_la_OBJECTS) $(libamigafs_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/affs.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amiga.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/apfs.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asfs.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interface.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/libparted/fs/amiga/affs.c b/parted-1.8.7/libparted/fs/amiga/affs.c
new file mode 100644
index 0000000..c099faa
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/amiga/affs.c
@@ -0,0 +1,463 @@
+/*
+    affs.c -- parted support for affs file systems
+    Copyright (C) 1998-2000, 2007 Free Software Foundation, Inc.
+  
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+#include <parted/endian.h>
+
+#include "amiga.h"
+#include "affs.h"
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+static int
+_affs_probe_root (uint32_t *block, int blocksize) {
+	int i;
+	uint32_t sum;
+
+	if (PED_BE32_TO_CPU (block[0]) != 2) return 0;
+	if (PED_BE32_TO_CPU (block[128*blocksize-1]) != 1) return 0;
+	for (i = 0, sum = 0; i < 128*blocksize; i++)
+		sum += PED_BE32_TO_CPU (block[i]);
+	if (sum) return 0;
+	return 1;
+}
+
+static PedGeometry*
+_generic_affs_probe (PedGeometry* geom, uint32_t kind)
+{
+	uint32_t *block;
+	PedSector root, len, pos;
+	struct PartitionBlock * part;
+	int blocksize = 1, reserved = 2, prealloc = 0;
+
+	PED_ASSERT (geom != NULL, return NULL);
+	PED_ASSERT (geom->dev != NULL, return NULL);
+
+	/* Finds the blocksize, prealloc and reserved values of the partition block */
+	if (!(part = ped_malloc (PED_SECTOR_SIZE_DEFAULT*blocksize))) {
+		ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("%s : Failed to allocate partition block\n"), __func__);
+		goto error_part;
+	}
+	if (amiga_find_part(geom, part) != NULL) {
+		prealloc = PED_BE32_TO_CPU (part->de_PreAlloc);
+		reserved = PED_BE32_TO_CPU (part->de_Reserved);
+		reserved = reserved == 0 ? 1 : reserved;
+		blocksize = PED_BE32_TO_CPU (part->de_SizeBlock)
+			* PED_BE32_TO_CPU (part->de_SectorPerBlock) / 128;
+	}
+	ped_free (part);
+
+	/* Test boot block */
+	if (!(block = ped_malloc (PED_SECTOR_SIZE_DEFAULT*blocksize))) {
+		ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("%s : Failed to allocate block\n"), __func__);
+		goto error_block;
+	}
+	if (!ped_device_read (geom->dev, block, geom->start, blocksize)) {
+		ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("%s : Couldn't read boot block %llu\n"), __func__, geom->start);
+		goto error;
+	}
+	if (PED_BE32_TO_CPU (block[0]) != kind) {
+		goto error;
+	}
+
+	/* Find and test the root block */
+	len = geom->length / blocksize - reserved;
+	pos = (len - 1) / 2;
+	root = geom->start + (pos + reserved) * blocksize;
+	printf ("Pralloc = %d, Reserved = %d, blocksize = %d, root block at %llu\n",
+		prealloc, reserved, blocksize, root);
+
+	if (!ped_device_read (geom->dev, block, root, blocksize)) {
+		ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("%s : Couldn't read root block %llu\n"), __func__, root);
+		goto error;
+	}
+	if (_affs_probe_root(block, blocksize) == 1) {
+		ped_free (block);
+		return ped_geometry_duplicate (geom);
+	}
+
+error:
+	ped_free (block);
+error_block:
+error_part:
+	return NULL;
+}
+static PedGeometry*
+_affs0_probe (PedGeometry* geom) {
+	return _generic_affs_probe (geom, 0x444f5300);
+}
+static PedGeometry*
+_affs1_probe (PedGeometry* geom) {
+	return _generic_affs_probe (geom, 0x444f5301);
+}
+static PedGeometry*
+_affs2_probe (PedGeometry* geom) {
+	return _generic_affs_probe (geom, 0x444f5302);
+}
+static PedGeometry*
+_affs3_probe (PedGeometry* geom) {
+	return _generic_affs_probe (geom, 0x444f5303);
+}
+static PedGeometry*
+_affs4_probe (PedGeometry* geom) {
+	return _generic_affs_probe (geom, 0x444f5304);
+}
+static PedGeometry*
+_affs5_probe (PedGeometry* geom) {
+	return _generic_affs_probe (geom, 0x444f5305);
+}
+static PedGeometry*
+_affs6_probe (PedGeometry* geom) {
+	return _generic_affs_probe (geom, 0x444f5306);
+}
+static PedGeometry*
+_affs7_probe (PedGeometry* geom) {
+	return _generic_affs_probe (geom, 0x444f5307);
+}
+static PedGeometry*
+_amufs_probe (PedGeometry* geom) {
+	return _generic_affs_probe (geom, 0x6d754653);
+}
+static PedGeometry*
+_amufs0_probe (PedGeometry* geom) {
+	return _generic_affs_probe (geom, 0x6d754600);
+}
+static PedGeometry*
+_amufs1_probe (PedGeometry* geom) {
+	return _generic_affs_probe (geom, 0x6d754601);
+}
+static PedGeometry*
+_amufs2_probe (PedGeometry* geom) {
+	return _generic_affs_probe (geom, 0x6d754602);
+}
+static PedGeometry*
+_amufs3_probe (PedGeometry* geom) {
+	return _generic_affs_probe (geom, 0x6d754603);
+}
+static PedGeometry*
+_amufs4_probe (PedGeometry* geom) {
+	return _generic_affs_probe (geom, 0x6d754604);
+}
+static PedGeometry*
+_amufs5_probe (PedGeometry* geom) {
+	return _generic_affs_probe (geom, 0x6d754605);
+}
+
+static PedFileSystemOps _affs0_ops = {
+	probe:		_affs0_probe,
+	clobber:	NULL,
+	open:		NULL,
+	create:         NULL,
+	close:		NULL,
+	check:          NULL,
+	resize:		NULL,
+	copy:           NULL,
+	get_create_constraint:	NULL,
+	get_copy_constraint:	NULL,
+	get_resize_constraint:	NULL
+};
+static PedFileSystemOps _affs1_ops = {
+	probe:		_affs1_probe,
+	clobber:	NULL,
+	open:		NULL,
+	create:         NULL,
+	close:		NULL,
+	check:          NULL,
+	resize:		NULL,
+	copy:           NULL,
+	get_create_constraint:	NULL,
+	get_copy_constraint:	NULL,
+	get_resize_constraint:	NULL
+};
+static PedFileSystemOps _affs2_ops = {
+	probe:		_affs2_probe,
+	clobber:	NULL,
+	open:		NULL,
+	create:         NULL,
+	close:		NULL,
+	check:          NULL,
+	resize:		NULL,
+	copy:           NULL,
+	get_create_constraint:	NULL,
+	get_copy_constraint:	NULL,
+	get_resize_constraint:	NULL
+};
+static PedFileSystemOps _affs3_ops = {
+	probe:		_affs3_probe,
+	clobber:	NULL,
+	open:		NULL,
+	create:         NULL,
+	close:		NULL,
+	check:          NULL,
+	resize:		NULL,
+	copy:           NULL,
+	get_create_constraint:	NULL,
+	get_copy_constraint:	NULL,
+	get_resize_constraint:	NULL
+};
+static PedFileSystemOps _affs4_ops = {
+	probe:		_affs4_probe,
+	clobber:	NULL,
+	open:		NULL,
+	create:         NULL,
+	close:		NULL,
+	check:          NULL,
+	resize:		NULL,
+	copy:           NULL,
+	get_create_constraint:	NULL,
+	get_copy_constraint:	NULL,
+	get_resize_constraint:	NULL
+};
+static PedFileSystemOps _affs5_ops = {
+	probe:		_affs5_probe,
+	clobber:	NULL,
+	open:		NULL,
+	create:         NULL,
+	close:		NULL,
+	check:          NULL,
+	resize:		NULL,
+	copy:           NULL,
+	get_create_constraint:	NULL,
+	get_copy_constraint:	NULL,
+	get_resize_constraint:	NULL
+};
+static PedFileSystemOps _affs6_ops = {
+	probe:		_affs6_probe,
+	clobber:	NULL,
+	open:		NULL,
+	create:         NULL,
+	close:		NULL,
+	check:          NULL,
+	resize:		NULL,
+	copy:           NULL,
+	get_create_constraint:	NULL,
+	get_copy_constraint:	NULL,
+	get_resize_constraint:	NULL
+};
+static PedFileSystemOps _affs7_ops = {
+	probe:		_affs7_probe,
+	clobber:	NULL,
+	open:		NULL,
+	create:         NULL,
+	close:		NULL,
+	check:          NULL,
+	resize:		NULL,
+	copy:           NULL,
+	get_create_constraint:	NULL,
+	get_copy_constraint:	NULL,
+	get_resize_constraint:	NULL
+};
+static PedFileSystemOps _amufs_ops = {
+	probe:		_amufs_probe,
+	clobber:	NULL,
+	open:		NULL,
+	create:         NULL,
+	close:		NULL,
+	check:          NULL,
+	resize:		NULL,
+	copy:           NULL,
+	get_create_constraint:	NULL,
+	get_copy_constraint:	NULL,
+	get_resize_constraint:	NULL
+};
+static PedFileSystemOps _amufs0_ops = {
+	probe:		_amufs0_probe,
+	clobber:	NULL,
+	open:		NULL,
+	create:         NULL,
+	close:		NULL,
+	check:          NULL,
+	resize:		NULL,
+	copy:           NULL,
+	get_create_constraint:	NULL,
+	get_copy_constraint:	NULL,
+	get_resize_constraint:	NULL
+};
+static PedFileSystemOps _amufs1_ops = {
+	probe:		_amufs1_probe,
+	clobber:	NULL,
+	open:		NULL,
+	create:         NULL,
+	close:		NULL,
+	check:          NULL,
+	resize:		NULL,
+	copy:           NULL,
+	get_create_constraint:	NULL,
+	get_copy_constraint:	NULL,
+	get_resize_constraint:	NULL
+};
+static PedFileSystemOps _amufs2_ops = {
+	probe:		_amufs2_probe,
+	clobber:	NULL,
+	open:		NULL,
+	create:         NULL,
+	close:		NULL,
+	check:          NULL,
+	resize:		NULL,
+	copy:           NULL,
+	get_create_constraint:	NULL,
+	get_copy_constraint:	NULL,
+	get_resize_constraint:	NULL
+};
+static PedFileSystemOps _amufs3_ops = {
+	probe:		_amufs3_probe,
+	clobber:	NULL,
+	open:		NULL,
+	create:         NULL,
+	close:		NULL,
+	check:          NULL,
+	resize:		NULL,
+	copy:           NULL,
+	get_create_constraint:	NULL,
+	get_copy_constraint:	NULL,
+	get_resize_constraint:	NULL
+};
+static PedFileSystemOps _amufs4_ops = {
+	probe:		_amufs4_probe,
+	clobber:	NULL,
+	open:		NULL,
+	create:         NULL,
+	close:		NULL,
+	check:          NULL,
+	resize:		NULL,
+	copy:           NULL,
+	get_create_constraint:	NULL,
+	get_copy_constraint:	NULL,
+	get_resize_constraint:	NULL
+};
+static PedFileSystemOps _amufs5_ops = {
+	probe:		_amufs5_probe,
+	clobber:	NULL,
+	open:		NULL,
+	create:         NULL,
+	close:		NULL,
+	check:          NULL,
+	resize:		NULL,
+	copy:           NULL,
+	get_create_constraint:	NULL,
+	get_copy_constraint:	NULL,
+	get_resize_constraint:	NULL
+};
+
+#define AFFS_BLOCK_SIZES        ((int[5]){512, 1024, 2048, 4096, 0})
+#define AMUFS_BLOCK_SIZES       ((int[2]){512, 0})
+
+
+PedFileSystemType _affs0_type = {
+       next:		 NULL,
+       ops:		 &_affs0_ops,
+       name:		 "affs0",
+       block_sizes:      AFFS_BLOCK_SIZES
+};
+PedFileSystemType _affs1_type = {
+       next:		 NULL,
+       ops:		 &_affs1_ops,
+       name:		 "affs1",
+       block_sizes:      AFFS_BLOCK_SIZES
+};
+PedFileSystemType _affs2_type = {
+       next:		 NULL,
+       ops:		 &_affs2_ops,
+       name:		 "affs2",
+       block_sizes:      AFFS_BLOCK_SIZES
+};
+PedFileSystemType _affs3_type = {
+       next:		 NULL,
+       ops:		 &_affs3_ops,
+       name:		 "affs3",
+       block_sizes:      AFFS_BLOCK_SIZES
+};
+PedFileSystemType _affs4_type = {
+       next:		 NULL,
+       ops:		 &_affs4_ops,
+       name:		 "affs4",
+       block_sizes:      AFFS_BLOCK_SIZES
+};
+PedFileSystemType _affs5_type = {
+       next:		 NULL,
+       ops:		 &_affs5_ops,
+       name:		 "affs5",
+       block_sizes:      AFFS_BLOCK_SIZES
+};
+PedFileSystemType _affs6_type = {
+       next:		 NULL,
+       ops:		 &_affs6_ops,
+       name:		 "affs6",
+       block_sizes:      AFFS_BLOCK_SIZES
+};
+PedFileSystemType _affs7_type = {
+       next:		 NULL,
+       ops:		 &_affs7_ops,
+       name:		 "affs7",
+       block_sizes:      AFFS_BLOCK_SIZES
+};
+PedFileSystemType _amufs_type = {
+       next:		 NULL,
+       ops:		 &_amufs_ops,
+       name:		 "amufs",
+       block_sizes:      AMUFS_BLOCK_SIZES
+};
+PedFileSystemType _amufs0_type = {
+       next:		 NULL,
+       ops:		 &_amufs0_ops,
+       name:		 "amufs0",
+       block_sizes:      AMUFS_BLOCK_SIZES
+};
+PedFileSystemType _amufs1_type = {
+       next:		 NULL,
+       ops:		 &_amufs1_ops,
+       name:		 "amufs1",
+       block_sizes:      AMUFS_BLOCK_SIZES
+};
+PedFileSystemType _amufs2_type = {
+       next:		 NULL,
+       ops:		 &_amufs2_ops,
+       name:		 "amufs2",
+       block_sizes:      AMUFS_BLOCK_SIZES
+};
+PedFileSystemType _amufs3_type = {
+       next:		 NULL,
+       ops:		 &_amufs3_ops,
+       name:		 "amufs3",
+       block_sizes:      AMUFS_BLOCK_SIZES
+};
+PedFileSystemType _amufs4_type = {
+       next:		 NULL,
+       ops:		 &_amufs4_ops,
+       name:		 "amufs4",
+       block_sizes:      AMUFS_BLOCK_SIZES
+};
+PedFileSystemType _amufs5_type = {
+       next:		 NULL,
+       ops:		 &_amufs5_ops,
+       name:		 "amufs5",
+       block_sizes:      AMUFS_BLOCK_SIZES
+};
diff --git a/parted-1.8.7/libparted/fs/amiga/affs.h b/parted-1.8.7/libparted/fs/amiga/affs.h
new file mode 100644
index 0000000..ac12de6
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/amiga/affs.h
@@ -0,0 +1,20 @@
+
+/*
+    affs.h -- parted suppoer for affs filesystems header files
+    Copyright (C) 1998-2000 Free Software Foundation, Inc.
+  
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
diff --git a/parted-1.8.7/libparted/fs/amiga/amiga.c b/parted-1.8.7/libparted/fs/amiga/amiga.c
new file mode 100644
index 0000000..9fa2025
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/amiga/amiga.c
@@ -0,0 +1,350 @@
+/* 
+    libparted/fs_amiga - amiga file system support.
+    Copyright (C) 2000, 2001, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+
+    Contributor:  Sven Luther <luther@debian.org>
+*/
+
+#include <config.h>
+#include <parted/parted.h>
+#include <parted/debug.h>
+#include <parted/endian.h>
+
+#include "amiga.h"
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#define	IDNAME_RIGIDDISK	(uint32_t)0x5244534B	/* 'RDSK' */
+#define IDNAME_BADBLOCK		(uint32_t)0x42414442	/* 'BADB' */
+#define	IDNAME_PARTITION	(uint32_t)0x50415254	/* 'PART' */
+#define IDNAME_FILESYSHEADER	(uint32_t)0x46534844	/* 'FSHD' */
+#define IDNAME_LOADSEG		(uint32_t)0x4C534547	/* 'LSEG' */
+#define IDNAME_BOOT		(uint32_t)0x424f4f54	/* 'BOOT' */
+#define IDNAME_FREE		(uint32_t)0xffffffff	
+
+static const char *
+_amiga_block_id (uint32_t id) {
+	switch (id) {
+		case IDNAME_RIGIDDISK :
+			return "RDSK";
+		case IDNAME_BADBLOCK :
+			return "BADB";
+		case IDNAME_PARTITION :
+			return "PART";
+		case IDNAME_FILESYSHEADER :
+			return "FSHD";
+		case IDNAME_LOADSEG :
+			return "LSEG";
+		case IDNAME_BOOT :
+			return "BOOT";
+		case IDNAME_FREE :
+			return "<free>";
+		default :
+			return "<unknown>";
+	}
+}
+
+struct AmigaIds *
+_amiga_add_id (uint32_t id, struct AmigaIds *ids) {
+	struct AmigaIds *newid;
+
+	if ((newid=ped_malloc(sizeof (struct AmigaIds)))==NULL) {
+		ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("%s : Failed to allocate id list element\n"), __func__);
+		return 0;
+	}
+	newid->ID = id;
+	newid->next = ids;
+	return newid;
+}
+
+void
+_amiga_free_ids (struct AmigaIds *ids) {
+	struct AmigaIds *current, *next;
+
+	for (current = ids; current != NULL; current = next) {
+		next = current->next;
+		ped_free (current);
+	}
+}
+int
+_amiga_id_in_list (uint32_t id, struct AmigaIds *ids) {
+	struct AmigaIds *current;
+
+	for (current = ids; current != NULL; current = current->next) {
+		if (id == current->ID)
+			return 1;
+	}
+	return 0;
+}
+
+#define AMIGA_RDB_NOT_FOUND	((uint32_t)0xffffffff)
+
+struct AmigaBlock {
+    uint32_t	amiga_ID;		/* Identifier 32 bit word */
+    uint32_t	amiga_SummedLongss;	/* Size of the structure for checksums */
+    int32_t	amiga_ChkSum;		/* Checksum of the structure */
+};
+#define AMIGA(pos) ((struct AmigaBlock *)(pos)) 
+
+struct RigidDiskBlock {
+    uint32_t	rdb_ID;			/* Identifier 32 bit word : 'RDSK' */
+    uint32_t	rdb_SummedLongs;	/* Size of the structure for checksums */
+    int32_t	rdb_ChkSum;		/* Checksum of the structure */
+    uint32_t	rdb_HostID;		/* SCSI Target ID of host, not really used */
+    uint32_t	rdb_BlockBytes;		/* Size of disk blocks */
+    uint32_t	rdb_Flags;		/* RDB Flags */
+    /* block list heads */
+    uint32_t	rdb_BadBlockList;	/* Bad block list */
+    uint32_t	rdb_PartitionList;	/* Partition list */
+    uint32_t	rdb_FileSysHeaderList;	/* File system header list */
+    uint32_t	rdb_DriveInit;		/* Drive specific init code */
+    uint32_t	rdb_BootBlockList;	/* Amiga OS 4 Boot Blocks */
+    uint32_t	rdb_Reserved1[5];	/* Unused word, need to be set to $ffffffff */
+    /* physical drive characteristics */
+    uint32_t	rdb_Cylinders;		/* Number of the cylinders of the drive */
+    uint32_t	rdb_Sectors;		/* Number of sectors of the drive */
+    uint32_t	rdb_Heads;		/* Number of heads of the drive */
+    uint32_t	rdb_Interleave;		/* Interleave */
+    uint32_t	rdb_Park;		/* Head parking cylinder */
+    uint32_t	rdb_Reserved2[3];	/* Unused word, need to be set to $ffffffff */
+    uint32_t	rdb_WritePreComp;	/* Starting cylinder of write precompensation */
+    uint32_t	rdb_ReducedWrite;	/* Starting cylinder of reduced write current */
+    uint32_t	rdb_StepRate;		/* Step rate of the drive */
+    uint32_t	rdb_Reserved3[5];	/* Unused word, need to be set to $ffffffff */
+    /* logical drive characteristics */
+    uint32_t	rdb_RDBBlocksLo;	/* low block of range reserved for hardblocks */
+    uint32_t	rdb_RDBBlocksHi;	/* high block of range for these hardblocks */
+    uint32_t	rdb_LoCylinder;		/* low cylinder of partitionable disk area */
+    uint32_t	rdb_HiCylinder;		/* high cylinder of partitionable data area */
+    uint32_t	rdb_CylBlocks;		/* number of blocks available per cylinder */
+    uint32_t	rdb_AutoParkSeconds;	/* zero for no auto park */
+    uint32_t	rdb_HighRDSKBlock;	/* highest block used by RDSK */
+					/* (not including replacement bad blocks) */
+    uint32_t	rdb_Reserved4;
+    /* drive identification */
+    char	rdb_DiskVendor[8];
+    char	rdb_DiskProduct[16];
+    char	rdb_DiskRevision[4];
+    char	rdb_ControllerVendor[8];
+    char	rdb_ControllerProduct[16];
+    char	rdb_ControllerRevision[4];
+    uint32_t	rdb_Reserved5[10];
+};
+
+#define AMIGA_MAX_PARTITIONS	128
+#define	RDB_LOCATION_LIMIT	16
+#define RDSK(pos) ((struct RigidDiskBlock *)(pos)) 
+
+static int
+_amiga_checksum (struct AmigaBlock *blk) {
+	uint32_t *rdb = (uint32_t *) blk;
+	uint32_t sum;
+	int i, end;
+
+	sum = PED_BE32_TO_CPU (rdb[0]);
+	end = PED_BE32_TO_CPU (rdb[1]);
+
+	if (end > PED_SECTOR_SIZE_DEFAULT) end = PED_SECTOR_SIZE_DEFAULT;
+
+	for (i = 1; i < end; i++) sum += PED_BE32_TO_CPU (rdb[i]);
+
+	return sum;
+}
+
+static void
+_amiga_calculate_checksum (struct AmigaBlock *blk) {
+
+	blk->amiga_ChkSum = PED_CPU_TO_BE32(
+		PED_BE32_TO_CPU(blk->amiga_ChkSum) -
+		_amiga_checksum((struct AmigaBlock *) blk));
+	return;	
+}
+
+
+static struct AmigaBlock *
+_amiga_read_block (PedDevice *dev, struct AmigaBlock *blk, PedSector block, struct AmigaIds *ids) {
+	if (!ped_device_read (dev, blk, block, 1)) {
+		switch (ped_exception_throw(PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("%s : Couldn't read block %llu\n"), __func__, block))
+		{
+			case PED_EXCEPTION_CANCEL :
+			case PED_EXCEPTION_UNHANDLED :
+			default : 
+				return NULL;
+		}
+	}
+	if (ids && !_amiga_id_in_list(PED_BE32_TO_CPU(blk->amiga_ID), ids))
+		return NULL;
+	if (_amiga_checksum (blk) != 0) {
+		switch (ped_exception_throw(PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_FIX | PED_EXCEPTION_IGNORE | PED_EXCEPTION_CANCEL,
+			_("%s : Bad checksum on block %llu of type %s\n"),
+			__func__, block, _amiga_block_id(PED_BE32_TO_CPU(blk->amiga_ID))))
+		{
+			case PED_EXCEPTION_CANCEL :
+				return NULL;
+			case PED_EXCEPTION_FIX :
+				_amiga_calculate_checksum(AMIGA(blk));
+				if (!ped_device_write (dev, blk, block, 1)) {
+					switch (ped_exception_throw(PED_EXCEPTION_FATAL,
+						PED_EXCEPTION_CANCEL,
+						_("%s : Couldn't write block %d\n"), __func__, block))
+					{
+						case PED_EXCEPTION_CANCEL :
+						case PED_EXCEPTION_UNHANDLED :
+						default : 
+							return NULL;
+					}
+				}
+			case PED_EXCEPTION_IGNORE :
+			case PED_EXCEPTION_UNHANDLED :
+			default : 
+				return blk;
+		}
+	}
+	return blk;
+}
+
+static uint32_t
+_amiga_find_rdb (PedDevice *dev, struct RigidDiskBlock *rdb) {
+	int i;
+	struct AmigaIds *ids;
+	
+	ids = _amiga_add_id (IDNAME_RIGIDDISK, NULL);
+
+	for (i = 0; i<RDB_LOCATION_LIMIT; i++) {
+		if (!_amiga_read_block (dev, AMIGA(rdb), i, ids)) {
+			continue;
+		}
+		if (PED_BE32_TO_CPU (rdb->rdb_ID) == IDNAME_RIGIDDISK) {
+			_amiga_free_ids (ids);
+			return i;
+		}
+	}
+	_amiga_free_ids (ids);
+	return AMIGA_RDB_NOT_FOUND;
+}
+
+static int
+_amiga_loop_check (uint32_t block, uint32_t * blocklist, uint32_t max)
+{
+	uint32_t i;
+
+	for (i = 0; i < max; i++)
+		if (block == blocklist[i]) {
+			/* We are looping, let's stop.  */
+			return 1;
+		}
+	blocklist[max] = block;
+	return 0;
+}
+
+/* We have already allocated a rdb, we are now reading it from the disk */
+struct PartitionBlock *
+amiga_find_part (PedGeometry *geom, struct PartitionBlock *part)
+{
+	struct RigidDiskBlock *rdb;
+	uint32_t partblock;
+	uint32_t partlist[AMIGA_MAX_PARTITIONS];
+	int i;
+
+	PED_ASSERT(geom!= NULL, return NULL);
+	PED_ASSERT(geom->dev!= NULL, return NULL);
+
+	if (!(rdb = ped_malloc (PED_SECTOR_SIZE_DEFAULT))) {
+		switch (ped_exception_throw(PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("%s : Failed to allocate disk_specific rdb block\n"), __func__))
+		{
+			case PED_EXCEPTION_CANCEL :
+			case PED_EXCEPTION_UNHANDLED :
+			default : 
+				return NULL;
+		}
+	}
+	if (_amiga_find_rdb (geom->dev, rdb) == AMIGA_RDB_NOT_FOUND) {
+		switch (ped_exception_throw(PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("%s : Didn't find rdb block, should never happen\n"), __func__))
+		{
+			case PED_EXCEPTION_CANCEL :
+			case PED_EXCEPTION_UNHANDLED :
+			default : 
+				ped_free(rdb);
+				return NULL;
+		}
+	}
+
+	/* We initialize the hardblock free list to detect loops */
+	for (i = 0; i < AMIGA_MAX_PARTITIONS; i++) partlist[i] = IDNAME_FREE;
+
+	for (i = 1, partblock = PED_BE32_TO_CPU(rdb->rdb_PartitionList);
+		i < AMIGA_MAX_PARTITIONS && partblock != IDNAME_FREE;
+		i++, partblock = PED_BE32_TO_CPU(part->pb_Next))
+	{
+		PedSector start, end;
+		PedSector cylblocks;
+
+		/* Let's look for loops in the partition table */
+		if (_amiga_loop_check(partblock, partlist, i)) {
+			ped_free (rdb);
+			return NULL;
+		}
+		/* Let's read a partition block to get its geometry*/
+		if (!ped_device_read (geom->dev, part, (PedSector)partblock, 1)) {
+			switch (ped_exception_throw(PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_CANCEL,
+				_("%s : Failed to read partition block %llu\n"),
+				__func__, (PedSector)partblock))
+			{
+				case PED_EXCEPTION_CANCEL :
+				case PED_EXCEPTION_UNHANDLED :
+				default : 
+					ped_free(rdb);
+					return NULL;
+			}
+		}
+
+		/* Current block is not a Partition Block */
+		if (part->pb_ID != IDNAME_PARTITION) {
+			ped_free (rdb);
+			return NULL;
+		}
+
+		/* Calculate the geometry of the partition */
+		cylblocks = ((PedSector) PED_BE32_TO_CPU (part->de_Surfaces)) *
+			((PedSector) PED_BE32_TO_CPU (part->de_BlocksPerTrack));
+		start = ((PedSector) PED_BE32_TO_CPU (part->de_LowCyl)) * cylblocks;
+		end = ((((PedSector) PED_BE32_TO_CPU (part->de_HighCyl))+1) * (cylblocks))-1;
+
+		/* And check if it is the one we are searching for */
+		if (start == geom->start && end == geom->end) {
+			ped_free (rdb);
+			return part;
+		}
+	}
+
+	ped_free (rdb);
+	return NULL;
+}
diff --git a/parted-1.8.7/libparted/fs/amiga/amiga.h b/parted-1.8.7/libparted/fs/amiga/amiga.h
new file mode 100644
index 0000000..a7bc1f8
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/amiga/amiga.h
@@ -0,0 +1,71 @@
+/*
+    util.h -- amiga partition table headers.
+    Copyright (C) 1998-2000 Free Software Foundation, Inc.
+  
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+struct PartitionBlock {
+    uint32_t	pb_ID;			/* Identifier 32 bit word : 'PART' */
+    uint32_t	pb_SummedLongs;		/* Size of the structure for checksums */
+    int32_t	pb_ChkSum;		/* Checksum of the structure */
+    uint32_t	pb_HostID;		/* SCSI Target ID of host, not really used */
+    uint32_t	pb_Next;		/* Block number of the next PartitionBlock */
+    uint32_t	pb_Flags;		/* Part Flags (NOMOUNT and BOOTABLE) */
+    uint32_t	pb_Reserved1[2];
+    uint32_t	pb_DevFlags;		/* Preferred flags for OpenDevice */
+    uint8_t	pb_DriveName[32];	/* Preferred DOS device name: BSTR form */
+    uint32_t	pb_Reserved2[15];
+    uint32_t	de_TableSize;		/* Size of Environment vector */
+    uint32_t	de_SizeBlock;		/* Size of the blocks in 32 bit words, usually 128 */
+    uint32_t	de_SecOrg;	     	/* Not used; must be 0 */
+    uint32_t	de_Surfaces;		/* Number of heads (surfaces) */
+    uint32_t	de_SectorPerBlock;	/* Disk sectors per block, used with SizeBlock, usually 1 */
+    uint32_t	de_BlocksPerTrack;	/* Blocks per track. drive specific */
+    uint32_t	de_Reserved;		/* DOS reserved blocks at start of partition. */
+    uint32_t	de_PreAlloc;		/* DOS reserved blocks at end of partition */
+    uint32_t	de_Interleave;		/* Not used, usually 0 */
+    uint32_t	de_LowCyl;		/* First cylinder of the partition */
+    uint32_t	de_HighCyl;		/* Last cylinder of the partition */
+    uint32_t	de_NumBuffers;		/* Initial # DOS of buffers.  */
+    uint32_t	de_BufMemType;		/* Type of mem to allocate for buffers */
+    uint32_t	de_MaxTransfer;		/* Max number of bytes to transfer at a time */
+    uint32_t	de_Mask;		/* Address Mask to block out certain memory */
+    int32_t	de_BootPri;		/* Boot priority for autoboot */
+    uint32_t	de_DosType;		/* Dostype of the file system */
+    uint32_t	de_Baud;		/* Baud rate for serial handler */
+    uint32_t	de_Control;		/* Control word for handler/filesystem */
+    uint32_t	de_BootBlocks;		/* Number of blocks containing boot code */
+    uint32_t	pb_EReserved[12];
+};
+
+#define PART(pos) ((struct PartitionBlock *)(pos))
+
+#define	PBFB_BOOTABLE	0	/* this partition is intended to be bootable */
+#define	PBFF_BOOTABLE	1L	/*   (expected directories and files exist) */
+#define	PBFB_NOMOUNT	1	/* do not mount this partition (e.g. manually */
+#define	PBFF_NOMOUNT	2L	/*   mounted, but space reserved here) */
+
+struct PartitionBlock * amiga_find_part (PedGeometry *geom, struct PartitionBlock *part);
+
+struct AmigaIds {
+	uint32_t ID;
+	struct AmigaIds *next;
+};
+
+struct AmigaIds * _amiga_add_id (uint32_t id, struct AmigaIds *ids);
+void _amiga_free_ids (struct AmigaIds *ids);
+int _amiga_id_in_list (uint32_t id, struct AmigaIds *ids);
+
diff --git a/parted-1.8.7/libparted/fs/amiga/apfs.c b/parted-1.8.7/libparted/fs/amiga/apfs.c
new file mode 100644
index 0000000..d13ba8d
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/amiga/apfs.c
@@ -0,0 +1,151 @@
+/*
+    apfs.c -- parted support for apfs file systems
+    Copyright (C) 1998-2000, 2007 Free Software Foundation, Inc.
+  
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+#include <parted/endian.h>
+
+#include "amiga.h"
+#include "apfs.h"
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+static int
+_apfs_probe_root (uint32_t *block, uint32_t blocksize, uint32_t kind) {
+	if (PED_BE32_TO_CPU (block[0]) != kind) return 0;
+	return 1;
+}
+
+static PedGeometry*
+_generic_apfs_probe (PedGeometry* geom, uint32_t kind)
+{
+	uint32_t *block;
+	PedSector root;
+	struct PartitionBlock * part;
+	uint32_t blocksize = 1, reserved = 2, prealloc = 0;
+
+	PED_ASSERT (geom != NULL, return NULL);
+	PED_ASSERT (geom->dev != NULL, return NULL);
+
+	/* Finds the blocksize, prealloc and reserved values of the partition block */
+	if (!(part = ped_malloc (PED_SECTOR_SIZE_DEFAULT*blocksize))) {
+		ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("%s : Failed to allocate partition block\n"), __func__);
+		goto error_part;
+	}
+	if (amiga_find_part(geom, part) != NULL) {
+		prealloc = PED_BE32_TO_CPU (part->de_PreAlloc);
+		reserved = PED_BE32_TO_CPU (part->de_Reserved);
+		blocksize = PED_BE32_TO_CPU (part->de_SizeBlock)
+			* PED_BE32_TO_CPU (part->de_SectorPerBlock) / 128;
+	}
+	ped_free (part);
+
+	/* Test boot block */
+	if (!(block = ped_malloc (PED_SECTOR_SIZE_DEFAULT*blocksize))) {
+		ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("%s : Failed to allocate block\n"), __func__);
+		goto error_block;
+	}
+	if (!ped_device_read (geom->dev, block, geom->start, blocksize)) {
+		ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("%s : Couldn't read boot block %llu\n"), __func__, geom->start);
+		goto error;
+	}
+	if (PED_BE32_TO_CPU (block[0]) != kind) {
+		goto error;
+	}
+
+	/* Find and test the root block */
+	root = geom->start+reserved*blocksize;
+	if (!ped_device_read (geom->dev, block, root, blocksize)) {
+		ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("%s : Couldn't read root block %llu\n"), __func__, root);
+		goto error;
+	}
+	if (_apfs_probe_root(block, blocksize, kind) == 1) {
+		ped_free(block);
+		return ped_geometry_duplicate (geom);
+	}
+
+error:
+	ped_free (block);
+error_block:
+error_part:
+	return NULL;
+}
+
+static PedGeometry*
+_apfs1_probe (PedGeometry* geom) {
+	return _generic_apfs_probe (geom, 0x50463101);
+}
+
+static PedGeometry*
+_apfs2_probe (PedGeometry* geom) {
+	return _generic_apfs_probe (geom, 0x50463102);
+}
+
+static PedFileSystemOps _apfs1_ops = {
+	probe:		_apfs1_probe,
+	clobber:	NULL,
+	open:		NULL,
+	create:         NULL,
+	close:		NULL,
+	check:          NULL,
+	resize:		NULL,
+	copy:           NULL,
+	get_create_constraint:	NULL,
+	get_copy_constraint:	NULL,
+	get_resize_constraint:	NULL
+};
+static PedFileSystemOps _apfs2_ops = {
+	probe:		_apfs2_probe,
+	clobber:	NULL,
+	open:		NULL,
+	create:         NULL,
+	close:		NULL,
+	check:          NULL,
+	resize:		NULL,
+	copy:           NULL,
+	get_create_constraint:	NULL,
+	get_copy_constraint:	NULL,
+	get_resize_constraint:	NULL
+};
+
+#define APFS_BLOCK_SIZES ((int[2]){512, 0})
+
+PedFileSystemType _apfs1_type = {
+       next:		 NULL,
+       ops:		 &_apfs1_ops,
+       name:		 "apfs1",
+       block_sizes:      APFS_BLOCK_SIZES
+};
+PedFileSystemType _apfs2_type = {
+       next:		 NULL,
+       ops:		 &_apfs2_ops,
+       name:		 "apfs2",
+       block_sizes:      APFS_BLOCK_SIZES
+};
diff --git a/parted-1.8.7/libparted/fs/amiga/apfs.h b/parted-1.8.7/libparted/fs/amiga/apfs.h
new file mode 100644
index 0000000..543a509
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/amiga/apfs.h
@@ -0,0 +1,19 @@
+
+/*
+    apfs.h -- parted support for apfs file systems header files
+    Copyright (C) 1998-2000 Free Software Foundation, Inc.
+  
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
diff --git a/parted-1.8.7/libparted/fs/amiga/asfs.c b/parted-1.8.7/libparted/fs/amiga/asfs.c
new file mode 100644
index 0000000..cfd868f
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/amiga/asfs.c
@@ -0,0 +1,143 @@
+/*
+    asfs.c -- parted asfs filesystem support
+    Copyright (C) 1998-2000, 2007 Free Software Foundation, Inc.
+  
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+#include <parted/endian.h>
+
+#include "amiga.h"
+#include "asfs.h"
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+static int
+_asfs_probe_root (PedGeometry *geom, uint32_t *block, int blocksize, PedSector root) {
+	int i, sum;
+	PedSector start, end;
+
+	if (PED_BE32_TO_CPU (block[0]) != 0x53465300) return 0;
+	for (i = 0, sum = 1; i < 128*blocksize; i++) sum += PED_BE32_TO_CPU (block[i]);
+	if (sum != 0) return 0;
+	if (PED_BE32_TO_CPU (block[2]) * blocksize + geom->start != root) {
+		return 0;
+	}
+	start = ((((PedSector) PED_BE32_TO_CPU (block[8])) << 32)
+		+ (PedSector) PED_BE32_TO_CPU (block[9])) / 512;
+	end = (((((PedSector) PED_BE32_TO_CPU (block[10])) << 32)
+		+ (PedSector) PED_BE32_TO_CPU (block[11])) / 512) - 1;
+	if (start != geom->start || end != geom->end) return 0;
+	return 1;
+}
+
+static PedGeometry*
+_asfs_probe (PedGeometry* geom)
+{
+	uint32_t *block;
+	struct PartitionBlock * part;
+	int blocksize = 1, reserved = 1, prealloc = 1;
+        PedSector root;
+        int found = 0;
+
+	PED_ASSERT (geom != NULL, return NULL);
+	PED_ASSERT (geom->dev != NULL, return NULL);
+
+	/* Finds the blocksize, prealloc and reserved values of the partition block */
+	if (!(part = ped_malloc (PED_SECTOR_SIZE_DEFAULT*blocksize))) {
+		ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("%s : Failed to allocate partition block\n"), __func__);
+		goto error_part;
+	}
+	if (amiga_find_part(geom, part) != NULL) {
+		prealloc = PED_BE32_TO_CPU (part->de_PreAlloc) == 0 ?
+			1 : PED_BE32_TO_CPU (part->de_PreAlloc);
+		reserved = PED_BE32_TO_CPU (part->de_Reserved) == 0 ?
+			1 : PED_BE32_TO_CPU (part->de_Reserved);
+		blocksize = PED_BE32_TO_CPU (part->de_SizeBlock)
+			* PED_BE32_TO_CPU (part->de_SectorPerBlock) / 128;
+	}
+	ped_free (part);
+
+	/* Test boot block */
+	if (!(block = ped_malloc (PED_SECTOR_SIZE_DEFAULT*blocksize))) {
+		ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("%s : Failed to allocate block\n"), __func__);
+		goto error_block;
+	}
+	root = geom->start;
+	if (!ped_device_read (geom->dev, block, root, blocksize)) {
+		ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("%s : Couldn't read root block %llu\n"), __func__, root);
+		goto error;
+	}
+	if (PED_BE32_TO_CPU (block[0]) != 0x53465300) {
+		goto error;
+	}
+
+	/* Find and test the root blocks */
+	if (_asfs_probe_root(geom, block, blocksize, root)) {
+		found++;
+	}
+	root = geom->end - blocksize - (geom->length % blocksize) + 1;
+	if (!ped_device_read (geom->dev, block, root, 1)) {
+		ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("%s : Couldn't read root block %llu\n"), __func__, root);
+		goto error;
+	}
+	if (_asfs_probe_root(geom, block, blocksize, root)) {
+		found++;
+	}
+	if (found != 0) {
+		ped_free (block);
+		return ped_geometry_duplicate (geom);
+	}
+
+error:
+	ped_free (block);
+error_block:
+error_part:
+	return NULL;
+}
+
+static PedFileSystemOps _asfs_ops = {
+	probe:		_asfs_probe,
+	clobber:	NULL,
+	open:		NULL,
+	create:         NULL,
+	close:		NULL,
+	check:          NULL,
+	resize:		NULL,
+	copy:           NULL,
+	get_create_constraint:	NULL,
+	get_copy_constraint:	NULL,
+	get_resize_constraint:	NULL
+};
+
+PedFileSystemType _asfs_type = {
+       next:		 NULL,
+       ops:		 &_asfs_ops,
+       name:		 "asfs",
+       block_sizes:      ((int[2]){512, 0})
+};
diff --git a/parted-1.8.7/libparted/fs/amiga/asfs.h b/parted-1.8.7/libparted/fs/amiga/asfs.h
new file mode 100644
index 0000000..959fc16
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/amiga/asfs.h
@@ -0,0 +1,19 @@
+
+/*
+    asfs.h -- parted asfs filesystem support header files
+    Copyright (C) 1998-2000 Free Software Foundation, Inc.
+  
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
diff --git a/parted-1.8.7/libparted/fs/amiga/interface.c b/parted-1.8.7/libparted/fs/amiga/interface.c
new file mode 100644
index 0000000..32f48f4
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/amiga/interface.c
@@ -0,0 +1,88 @@
+/*
+    interface.c -- parted support amiga file systems
+    Copyright (C) 1998-2000 Free Software Foundation, Inc.
+  
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+#include <parted/endian.h>
+
+extern PedFileSystemType _affs0_type;
+extern PedFileSystemType _affs1_type;
+extern PedFileSystemType _affs2_type;
+extern PedFileSystemType _affs3_type;
+extern PedFileSystemType _affs4_type;
+extern PedFileSystemType _affs5_type;
+extern PedFileSystemType _affs6_type;
+extern PedFileSystemType _affs7_type;
+extern PedFileSystemType _amufs_type;
+extern PedFileSystemType _amufs0_type;
+extern PedFileSystemType _amufs1_type;
+extern PedFileSystemType _amufs2_type;
+extern PedFileSystemType _amufs3_type;
+extern PedFileSystemType _amufs4_type;
+extern PedFileSystemType _amufs5_type;
+extern PedFileSystemType _asfs_type;
+extern PedFileSystemType _apfs1_type;
+extern PedFileSystemType _apfs2_type;
+
+void ped_file_system_amiga_init ()
+{
+	ped_file_system_type_register (&_affs0_type);
+	ped_file_system_type_register (&_affs1_type);
+	ped_file_system_type_register (&_affs2_type);
+	ped_file_system_type_register (&_affs3_type);
+	ped_file_system_type_register (&_affs4_type);
+	ped_file_system_type_register (&_affs5_type);
+	ped_file_system_type_register (&_affs6_type);
+	ped_file_system_type_register (&_affs7_type);
+	ped_file_system_type_register (&_amufs_type);
+	ped_file_system_type_register (&_amufs0_type);
+	ped_file_system_type_register (&_amufs1_type);
+	ped_file_system_type_register (&_amufs2_type);
+	ped_file_system_type_register (&_amufs3_type);
+	ped_file_system_type_register (&_amufs4_type);
+	ped_file_system_type_register (&_amufs5_type);
+	ped_file_system_type_register (&_asfs_type);
+	ped_file_system_type_register (&_apfs1_type);
+	ped_file_system_type_register (&_apfs2_type);
+}
+
+void ped_file_system_amiga_done ()
+{
+	ped_file_system_type_unregister (&_affs0_type);
+	ped_file_system_type_unregister (&_affs1_type);
+	ped_file_system_type_unregister (&_affs2_type);
+	ped_file_system_type_unregister (&_affs3_type);
+	ped_file_system_type_unregister (&_affs4_type);
+	ped_file_system_type_unregister (&_affs5_type);
+	ped_file_system_type_unregister (&_affs6_type);
+	ped_file_system_type_unregister (&_affs7_type);
+	ped_file_system_type_unregister (&_amufs_type);
+	ped_file_system_type_unregister (&_amufs0_type);
+	ped_file_system_type_unregister (&_amufs1_type);
+	ped_file_system_type_unregister (&_amufs2_type);
+	ped_file_system_type_unregister (&_amufs3_type);
+	ped_file_system_type_unregister (&_amufs4_type);
+	ped_file_system_type_unregister (&_amufs5_type);
+	ped_file_system_type_unregister (&_asfs_type);
+	ped_file_system_type_unregister (&_apfs1_type);
+	ped_file_system_type_unregister (&_apfs2_type);
+}
diff --git a/parted-1.8.7/libparted/fs/ext2/Makefile.am b/parted-1.8.7/libparted/fs/ext2/Makefile.am
new file mode 100644
index 0000000..8ee3821
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/ext2/Makefile.am
@@ -0,0 +1,21 @@
+partedincludedir      =	-I$(top_srcdir)/include
+
+noinst_LTLIBRARIES    =	libext2.la
+libext2_la_SOURCES    =	ext2.c \
+			ext2.h \
+			ext2_fs.h \
+			ext2_block_relocator.c \
+			ext2_buffer.c \
+			ext2_inode_relocator.c \
+			ext2_meta.c \
+			ext2_mkfs.c \
+			ext2_resize.c \
+			interface.c \
+			parted_io.c \
+			parted_io.h \
+			tune.c \
+			tune.h
+
+INCLUDES = $(partedincludedir) $(INTLINCS)
+
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/parted-1.8.7/libparted/fs/ext2/Makefile.in b/parted-1.8.7/libparted/fs/ext2/Makefile.in
new file mode 100644
index 0000000..994acde
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/ext2/Makefile.in
@@ -0,0 +1,649 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = libparted/fs/ext2
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+libext2_la_LIBADD =
+am_libext2_la_OBJECTS = ext2.lo ext2_block_relocator.lo ext2_buffer.lo \
+	ext2_inode_relocator.lo ext2_meta.lo ext2_mkfs.lo \
+	ext2_resize.lo interface.lo parted_io.lo tune.lo
+libext2_la_OBJECTS = $(am_libext2_la_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/lib@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(libext2_la_SOURCES)
+DIST_SOURCES = $(libext2_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+partedincludedir = -I$(top_srcdir)/include
+noinst_LTLIBRARIES = libext2.la
+libext2_la_SOURCES = ext2.c \
+			ext2.h \
+			ext2_fs.h \
+			ext2_block_relocator.c \
+			ext2_buffer.c \
+			ext2_inode_relocator.c \
+			ext2_meta.c \
+			ext2_mkfs.c \
+			ext2_resize.c \
+			interface.c \
+			parted_io.c \
+			parted_io.h \
+			tune.c \
+			tune.h
+
+INCLUDES = $(partedincludedir) $(INTLINCS)
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  libparted/fs/ext2/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  libparted/fs/ext2/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libext2.la: $(libext2_la_OBJECTS) $(libext2_la_DEPENDENCIES) 
+	$(LINK)  $(libext2_la_OBJECTS) $(libext2_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ext2.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ext2_block_relocator.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ext2_buffer.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ext2_inode_relocator.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ext2_meta.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ext2_mkfs.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ext2_resize.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interface.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parted_io.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tune.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/libparted/fs/ext2/ext2.c b/parted-1.8.7/libparted/fs/ext2/ext2.c
new file mode 100644
index 0000000..2a60215
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/ext2/ext2.c
@@ -0,0 +1,793 @@
+/*
+    ext2.c -- generic ext2 stuff
+    Copyright (C) 1998, 1999, 2000, 2001, 2007 Free Software Foundation, Inc.
+  
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#include <config.h>
+
+#ifndef DISCOVER_ONLY
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <uuid/uuid.h>
+#include "ext2.h"
+
+/* ext2 stuff ****************************************************************/
+
+unsigned char _bitmap[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
+
+int ext2_copy_block(struct ext2_fs *fs, blk_t from, blk_t to)
+{
+	unsigned char* buf = ped_malloc (fs->blocksize);
+
+	if (!ext2_bcache_flush(fs, from)) return 0;
+	if (!ext2_bcache_flush(fs, to)) return 0;
+
+	if (!ext2_read_blocks(fs, buf, from, 1)) return 0;
+	if (!ext2_write_blocks(fs, buf, to, 1)) return 0;
+
+	return 1;
+}
+
+int ext2_get_block_state(struct ext2_fs *fs, blk_t block)
+{
+	struct ext2_buffer_head *bh;
+	int group;
+	int offset;
+	int state;
+
+	block -= EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb);
+	group = block / EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb);
+	offset = block % EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb);
+
+	bh = ext2_bread(fs, EXT2_GROUP_BLOCK_BITMAP(fs->gd[group]));
+	state = bh->data[offset>>3] & _bitmap[offset&7];
+	ext2_brelse(bh, 0);
+
+	return state;
+}
+
+blk_t ext2_find_free_block(struct ext2_fs *fs)
+{
+	int i;
+
+	for (i=0;i<fs->numgroups;i++)
+		if (EXT2_GROUP_FREE_BLOCKS_COUNT(fs->gd[i]))
+		{
+			blk_t j;
+			blk_t offset;
+
+			offset = i * EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb)
+				 + EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb);
+			for (j=fs->adminblocks;
+			     j<EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb);
+			     j++)
+				if (ext2_is_data_block(fs, offset + j) &&
+				    !ext2_get_block_state(fs, offset + j))
+					return offset + j;
+
+			ped_exception_throw (PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_CANCEL,
+				_("Inconsistent group descriptors!"));
+		}
+
+	ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			     _("File system full!"));
+	return 0;
+}
+
+ino_t ext2_find_free_inode(struct ext2_fs *fs)
+{
+	int i;
+
+	for (i=0;i<fs->numgroups;i++)
+		if (EXT2_GROUP_FREE_INODES_COUNT(fs->gd[i]))
+		{
+			ino_t j;
+			ino_t offset;
+
+			offset = i * EXT2_SUPER_INODES_PER_GROUP(fs->sb) + 1;
+			for (j=0;j<EXT2_SUPER_INODES_PER_GROUP(fs->sb);j++)
+				if (!ext2_get_inode_state(fs, offset + j))
+					return offset + j;
+
+			ped_exception_throw (PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_CANCEL,
+				_("Inconsistent group descriptors!"));
+		}
+
+	ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			     _("File system full!"));
+	return 0;
+}
+
+int ext2_move_blocks(struct ext2_fs *fs, blk_t src, blk_t num, blk_t dest)
+{
+	unsigned char *buf;
+	blk_t i;
+
+	ped_exception_fetch_all();
+	if ((buf = ped_malloc(num << fs->logsize)) != NULL)
+	{
+		ped_exception_leave_all();
+
+		if (!ext2_bcache_flush_range(fs, src, num)) return 0;
+		if (!ext2_bcache_flush_range(fs, dest, num)) return 0;
+
+		if (!ext2_read_blocks(fs, buf, src, num)) return 0;
+		if (!ext2_write_blocks(fs, buf, dest, num)) return 0;
+
+		ped_free(buf);
+		return 1;
+	}
+	ped_exception_catch();
+	ped_exception_leave_all();
+
+	if (src > dest)
+	{
+		for (i=0;i<num;i++)
+			if (!ext2_copy_block(fs, src+i, dest+i))
+				return 0;
+	}
+	else
+	{
+		for (i=num;i>0;i--)
+			if (!ext2_copy_block(fs, src+i, dest+i))
+				return 0;
+	}
+	return 1;
+}
+
+int ext2_read_blocks(struct ext2_fs *fs, void *ptr, blk_t block, blk_t num)
+{
+	return fs->devhandle->ops->read(fs->devhandle->cookie, ptr, block, num);
+}
+
+int ext2_set_block_state(struct ext2_fs *fs, blk_t block, int state, int updatemetadata)
+{
+	struct ext2_buffer_head *bh;
+	int                      group;
+	int                      offset;
+
+	block -= EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb);
+	group = block / EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb);
+	offset = block % EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb);
+
+	bh = ext2_bread(fs, EXT2_GROUP_BLOCK_BITMAP(fs->gd[group]));
+	bh->dirty = 1;
+	if (state)
+		bh->data[offset>>3] |= _bitmap[offset&7];
+	else
+		bh->data[offset>>3] &= ~_bitmap[offset&7];
+	ext2_brelse(bh, 0);
+
+	if (updatemetadata)
+	{
+		int diff;
+
+		diff = state ? -1 : 1;
+
+		fs->gd[group].bg_free_blocks_count = PED_CPU_TO_LE16
+			(EXT2_GROUP_FREE_BLOCKS_COUNT(fs->gd[group]) + diff);
+		fs->sb.s_free_blocks_count = PED_CPU_TO_LE32
+			(EXT2_SUPER_FREE_BLOCKS_COUNT(fs->sb) + diff);
+		fs->metadirty |= EXT2_META_SB | EXT2_META_GD;
+	}
+	return 1;
+}
+
+int ext2_write_blocks(struct ext2_fs *fs, void *ptr, blk_t block, blk_t num)
+{
+	return fs->devhandle->ops->write(fs->devhandle->cookie, ptr, block, num);
+}
+
+int ext2_zero_blocks(struct ext2_fs *fs, blk_t block, blk_t num)
+{
+	unsigned char *buf;
+	blk_t i;
+
+	ped_exception_fetch_all();
+	buf = ped_malloc (num << fs->logsize);
+	if (buf)
+	{
+		ped_exception_leave_all();
+
+		memset(buf, 0, num << fs->logsize);
+		if (!ext2_bcache_flush_range(fs, block, num))
+			goto error_free_buf;
+		if (!ext2_write_blocks(fs, buf, block, num))
+			goto error_free_buf;
+		ped_free(buf);
+		return 1;
+	}
+	ped_exception_catch();
+
+	buf = ped_malloc (fs->blocksize);
+	if (buf)
+	{
+		ped_exception_leave_all();
+
+		memset(buf, 0, fs->blocksize);
+
+		for (i=0;i<num;i++)
+		{
+			if (!ext2_bcache_flush(fs, block+i))
+				goto error_free_buf;
+			if (!ext2_write_blocks(fs, buf, block+i, 1))
+				goto error_free_buf;
+		}
+
+		ped_free(buf);
+		return 1;
+	}
+	ped_exception_catch();
+	ped_exception_leave_all();
+
+	for (i=0;i<num;i++)
+	{
+		struct ext2_buffer_head *bh;
+
+		bh = ext2_bcreate(fs, block+i);
+		if (!bh)
+			goto error;
+		bh->dirty = 1;
+		if (!ext2_brelse(bh, 1))
+			goto error;
+	}
+	return 1;
+
+error_free_buf:
+	ped_free(buf);
+error:
+	return 0;
+}
+
+off_t ext2_get_inode_offset(struct ext2_fs *fs, ino_t inode, blk_t *block)
+{
+	int group;
+	int offset;
+
+	inode--;
+
+	group = inode / EXT2_SUPER_INODES_PER_GROUP(fs->sb);
+	offset = (inode % EXT2_SUPER_INODES_PER_GROUP(fs->sb))
+	       	 * sizeof(struct ext2_inode);
+
+	*block = EXT2_GROUP_INODE_TABLE(fs->gd[group])
+	         + (offset >> fs->logsize);
+
+	return offset & (fs->blocksize - 1);
+}
+
+int ext2_get_inode_state(struct ext2_fs *fs, ino_t inode)
+{
+	struct ext2_buffer_head *bh;
+	int                      group;
+	int                      offset;
+	int                      ret;
+
+	inode--;
+	group = inode / EXT2_SUPER_INODES_PER_GROUP(fs->sb);
+	offset = inode % EXT2_SUPER_INODES_PER_GROUP(fs->sb);
+
+	bh = ext2_bread(fs, EXT2_GROUP_INODE_BITMAP(fs->gd[group]));
+	ret = bh->data[offset>>3] & _bitmap[offset&7];
+	ext2_brelse(bh, 0);
+
+	return ret;
+}
+
+int ext2_read_inode(struct ext2_fs *fs, ino_t inode, struct ext2_inode *data)
+{
+	struct ext2_buffer_head *bh;
+	blk_t			 blk;
+	off_t			 off;
+
+	off = ext2_get_inode_offset(fs, inode, &blk);
+
+	bh = ext2_bread(fs, blk);
+	if (!bh)
+		return 0;
+
+	memcpy(data, bh->data + off, sizeof(struct ext2_inode));
+	ext2_brelse(bh, 0);
+	return 1;
+}
+
+int ext2_set_inode_state(struct ext2_fs *fs, ino_t inode, int state, int updatemetadata)
+{
+	struct ext2_buffer_head *bh;
+	int                      group;
+	int                      offset;
+
+	inode--;
+	group = inode / EXT2_SUPER_INODES_PER_GROUP(fs->sb);
+	offset = inode % EXT2_SUPER_INODES_PER_GROUP(fs->sb);
+
+	bh = ext2_bread(fs, EXT2_GROUP_INODE_BITMAP(fs->gd[group]));
+	if (!bh)
+		return 0;
+	bh->dirty = 1;
+	if (state)
+		bh->data[offset>>3] |= _bitmap[offset&7];
+	else
+		bh->data[offset>>3] &= ~_bitmap[offset&7];
+	ext2_brelse(bh, 0);
+
+	if (updatemetadata)
+	{
+		int diff;
+
+		diff = state ? -1 : 1;
+
+		fs->gd[group].bg_free_inodes_count = PED_CPU_TO_LE16
+			(EXT2_GROUP_FREE_INODES_COUNT(fs->gd[group]) + diff);
+		fs->sb.s_free_inodes_count = PED_CPU_TO_LE32
+			(EXT2_SUPER_FREE_INODES_COUNT(fs->sb) + diff);
+		fs->metadirty = EXT2_META_SB | EXT2_META_GD;
+	}
+	return 1;
+}
+
+static void
+_inode_update_size(struct ext2_fs *fs, struct ext2_inode *inode, int delta)
+{
+	int		i512perblock = 1 << (fs->logsize - 9);
+	uint64_t	size;
+
+	/* i_blocks is in 512 byte blocks */
+	inode->i_blocks = PED_CPU_TO_LE32(EXT2_INODE_BLOCKS(*inode)
+		       			  + delta * i512perblock);
+	size = EXT2_INODE_SIZE(*inode) + delta * fs->blocksize;
+	inode->i_size = PED_CPU_TO_LE32(size % (1LL << 32));
+	inode->i_size_high = PED_CPU_TO_LE32(size / (1LL << 32));
+	inode->i_mtime = PED_CPU_TO_LE32(time(NULL));
+}
+
+int ext2_do_inode(struct ext2_fs *fs, struct ext2_inode *inode, blk_t block,
+		   int action)
+{
+	struct ext2_buffer_head *bh;
+	uint32_t		*udata;
+	blk_t			 count = 0;
+	int			 i;
+	int			 u32perblock = fs->blocksize >> 2;
+	int			 i512perblock = 1 << (fs->logsize - 9);
+
+	if (block == 0 || EXT2_INODE_MODE(*inode) == 0)
+		return -1;
+
+	if (fs->opt_debug)
+		switch (action)
+		{
+			case EXT2_ACTION_ADD:
+				fprintf(stderr,"adding 0x%04x to inode\n",
+					block);
+				break;
+			case EXT2_ACTION_DELETE:
+				fprintf(stderr,"deleting 0x%04x from inode\n",
+					block);
+				break;
+			case EXT2_ACTION_FIND:
+				fprintf(stderr,"finding 0x%04x in inode\n",
+					block);
+				break;
+		}
+
+	/* Direct blocks for first 12 blocks */
+	for (i = 0; i < EXT2_NDIR_BLOCKS; i++)
+	{
+		if (action == EXT2_ACTION_ADD && !EXT2_INODE_BLOCK(*inode, i))
+		{
+			inode->i_block[i] = PED_CPU_TO_LE32(block);
+			_inode_update_size (fs, inode, 1);
+			ext2_set_block_state(fs, block, 1, 1);
+			return i;
+		}
+		if (EXT2_INODE_BLOCK(*inode, i) == block)
+		{
+			if (action == EXT2_ACTION_DELETE)
+			{
+				inode->i_block[i] = 0;
+				_inode_update_size (fs, inode, -1);
+				ext2_set_block_state(fs, block, 0, 1);
+			}
+			return i;
+		}
+		if (EXT2_INODE_BLOCK(*inode, i))
+			count += i512perblock;
+	}
+
+	count += EXT2_INODE_BLOCK(*inode, EXT2_IND_BLOCK) ? i512perblock : 0;
+	count += EXT2_INODE_BLOCK(*inode, EXT2_DIND_BLOCK) ? i512perblock : 0;
+	count += EXT2_INODE_BLOCK(*inode, EXT2_TIND_BLOCK) ? i512perblock : 0;
+
+	if (!EXT2_INODE_BLOCK(*inode, EXT2_IND_BLOCK) ||
+	    (count >= EXT2_INODE_BLOCKS(*inode) && action != EXT2_ACTION_ADD))
+		return -1;
+
+	bh = ext2_bread(fs, EXT2_INODE_BLOCK(*inode, EXT2_IND_BLOCK));
+	udata = (uint32_t *)bh->data;
+
+	/* Indirect blocks for next 256/512/1024 blocks (for 1k/2k/4k blocks) */
+	for (i = 0; i < u32perblock; i++) {
+		if (action == EXT2_ACTION_ADD && !udata[i]) {
+			bh->dirty = 1;
+			udata[i] = PED_CPU_TO_LE32(block);
+			_inode_update_size (fs, inode, 1);
+			ext2_set_block_state(fs, block, 1, 1);
+			ext2_brelse(bh, 0);
+			return EXT2_NDIR_BLOCKS + i;
+		}
+		if (PED_LE32_TO_CPU(udata[i]) == block) {
+			if (action == EXT2_ACTION_DELETE) {
+				bh->dirty = 1;
+				udata[i] = 0;
+				_inode_update_size (fs, inode, -1);
+				ext2_set_block_state(fs, block, 0, 1);
+			}
+			ext2_brelse(bh, 0);
+			return EXT2_NDIR_BLOCKS + i;
+		}
+		if (udata[i])
+		{
+			count += i512perblock;
+			if (count >= EXT2_INODE_BLOCKS(*inode) &&
+			    action != EXT2_ACTION_ADD)
+				return -1;
+		}
+	}
+
+	ext2_brelse(bh, 0);
+
+	if (!EXT2_INODE_BLOCK(*inode, EXT2_DIND_BLOCK) ||
+	    (count >= EXT2_INODE_BLOCKS(*inode) && action != EXT2_ACTION_ADD))
+		return -1;
+	bh = ext2_bread(fs, EXT2_INODE_BLOCK(*inode, EXT2_DIND_BLOCK));
+	udata = (uint32_t *)bh->data;
+
+	/* Double indirect blocks for next 2^16/2^18/2^20 1k/2k/4k blocks */
+	for (i = 0; i < u32perblock; i++) {
+		struct ext2_buffer_head	*bh2;
+		uint32_t			*udata2;
+		int			 j;
+
+		if (!udata[i]) {
+			ext2_brelse(bh, 0);
+			return -1;
+		}
+		bh2 = ext2_bread(fs, PED_LE32_TO_CPU(udata[i]));
+		udata2 = (uint32_t *)bh2->data;
+		count += i512perblock;
+
+		for (j = 0; j < u32perblock; j++) {
+			if (action == EXT2_ACTION_ADD && !udata2[j]) {
+				bh2->dirty = 1;
+				udata2[j] = PED_CPU_TO_LE32(block);
+				_inode_update_size (fs, inode, 1);
+				ext2_set_block_state(fs, block, 1, 1);
+				ext2_brelse(bh, 0);
+				ext2_brelse(bh2, 0);
+				return EXT2_NDIR_BLOCKS + i * u32perblock + j;
+			}
+			if (PED_LE32_TO_CPU(udata2[j]) == block) {
+				if (action == EXT2_ACTION_DELETE) {
+					bh2->dirty = 1;
+					udata2[j] = 0;
+					_inode_update_size (fs, inode, -1);
+					ext2_set_block_state(fs, block, 0, 1);
+				}
+				ext2_brelse(bh, 0);
+				ext2_brelse(bh2, 0);
+				return EXT2_NDIR_BLOCKS + i * u32perblock + j;
+			}
+			if (udata2[j])
+			{
+				count += i512perblock;
+				if (count >= EXT2_INODE_BLOCKS(*inode) &&
+				    action != EXT2_ACTION_ADD)
+					return -1;
+			}
+		}
+		ext2_brelse(bh2, 0);
+	}
+	ext2_brelse(bh, 0);
+
+	/* FIXME: we should check for triple-indirect blocks here, but it
+	 * would be nice to have a better routine to traverse blocks, and
+	 * file systems that need triple-indirect blocks for the resize
+	 * inode are too big to worry about yet.
+	 */
+
+	return -1;
+}
+
+int ext2_write_inode(struct ext2_fs *fs, ino_t inode, const struct ext2_inode *data)
+{
+	struct ext2_buffer_head *bh;
+	blk_t			 blk;
+	off_t			 off;
+
+	off = ext2_get_inode_offset(fs, inode, &blk);
+
+	bh = ext2_bread(fs, blk);
+	if (!bh)
+		return 0;
+	bh->dirty = 1;
+	memcpy(bh->data + off, data, sizeof(struct ext2_inode));
+	ext2_brelse(bh, 0);
+
+	return 1;
+}
+
+int ext2_zero_inode(struct ext2_fs *fs, ino_t inode)
+{
+	struct ext2_inode buf;
+
+	memset(&buf, 0, sizeof(struct ext2_inode));
+	return ext2_write_inode(fs, inode, &buf);
+}
+
+
+
+
+
+/* check whether y is root of x
+ * (formula grabbed from linux ext2 kernel source) */
+static int is_root(int x, int y)
+{
+	if (!x)
+		return 1;
+
+	while (1)
+	{
+		if (x == 1)
+			return 1;
+
+		if (x % y)
+			return 0;
+
+		x /= y;
+	}
+}
+
+/* check whether group contains a superblock copy on file systems
+ * where not all groups have one (sparse superblock feature) */
+int ext2_is_group_sparse(struct ext2_fs *fs, int group)
+{       
+	if (!fs->sparse)
+		return 1;
+
+	if (is_root(group, 3) || is_root(group, 5) || is_root(group, 7))
+		return 1;
+
+	return 0;
+}
+
+void ext2_close(struct ext2_fs *fs)
+{
+	ext2_commit_metadata(fs, EXT2_META_PRIMARY | EXT2_META_BACKUP);
+	ext2_sync(fs);
+
+	ext2_bcache_deinit(fs);
+
+	fs->devhandle->ops->close(fs->devhandle->cookie);
+
+	ped_free(fs->gd);
+	ped_free(fs);
+}
+
+int ext2_commit_metadata(struct ext2_fs *fs, int copies)
+{
+	int		i;
+	int		num;
+	int		wmeta = fs->metadirty & copies;
+	unsigned char*	sb = ped_malloc(fs->blocksize);
+	struct ext2_super_block *sb_for_io;
+	int		sb_block;
+
+	/* See if there is even anything to write... */
+	if (wmeta == EXT2_META_CLEAN)
+		return 1;
+
+	fs->sb.s_r_blocks_count = PED_CPU_TO_LE32 (
+		fs->r_frac * (loff_t)EXT2_SUPER_BLOCKS_COUNT(fs->sb)
+				  / 100);
+
+	if (!ext2_read_blocks (fs, sb, 0, 1))
+		return 0;
+
+	if (EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb)) {
+		memcpy(sb, &fs->sb, 1024);
+		sb_for_io = (struct ext2_super_block *) sb;
+	} else {
+		memcpy(sb+1024, &fs->sb, 1024);
+		sb_for_io = (struct ext2_super_block *) (sb + 1024);
+	}
+
+	num = copies & EXT2_META_BACKUP ? fs->numgroups : 1;
+
+	for (i = 0, sb_block = EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb); i < num;
+	     i++, sb_block += EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb))
+	{
+
+		if (!ext2_is_group_sparse(fs, i))
+			continue;
+
+		if (fs->dynamic_version)
+			sb_for_io->s_block_group_nr = PED_CPU_TO_LE16 (i);
+
+		if ((i == 0 && wmeta & EXT2_META_PRIMARY_SB) ||
+		    (i != 0 && wmeta & EXT2_META_SB))
+		{
+			if (!ext2_bcache_flush_range(fs, sb_block, 1))
+				return 0;
+			if (!ext2_write_blocks(fs, sb, sb_block, 1))
+				return 0;
+		}
+		if ((i == 0 && wmeta & EXT2_META_PRIMARY_GD) ||
+		    (i != 0 && wmeta & EXT2_META_GD))
+		{
+			if (!ext2_bcache_flush_range(fs, sb_block + 1,
+						     fs->gdblocks))
+				return 0;
+			if (!ext2_write_blocks(fs, fs->gd, sb_block + 1,
+					       fs->gdblocks))
+				return 0;
+		}
+	}
+
+	sb_for_io->s_block_group_nr = 0;
+
+	/* Clear the flags of the components we just finished writing. */
+	fs->metadirty &= ~copies;
+
+	return 1;
+}
+
+int ext2_sync(struct ext2_fs *fs)
+{
+	if (!ext2_commit_metadata(fs, EXT2_META_PRIMARY)) return 0;
+	if (!ext2_bcache_sync(fs)) return 0;
+	if (!fs->devhandle->ops->sync(fs->devhandle->cookie)) return 0;
+	return 1;
+}
+
+struct ext2_fs *ext2_open(struct ext2_dev_handle *handle, int state)
+{
+	struct ext2_fs *fs;
+
+	if ((fs = (struct ext2_fs *) ped_malloc(sizeof(struct ext2_fs)))
+		== NULL)
+		goto error;
+
+	handle->ops->set_blocksize(handle->cookie, 10);
+
+	if (!handle->ops->read(handle->cookie, &fs->sb, 1, 1)
+	    || EXT2_SUPER_MAGIC(fs->sb) != EXT2_SUPER_MAGIC_CONST)
+	{
+		ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("Invalid superblock.  Are you sure this is an ext2 "
+			  "file system?"));
+		goto error_free_fs;
+	}
+
+
+	fs->opt_debug = 1;
+	fs->opt_safe = 1;
+	fs->opt_verbose = 0;
+
+	if (EXT2_SUPER_STATE(fs->sb) & EXT2_ERROR_FS & ~(state & EXT2_ERROR_FS))
+	{
+		if (ped_exception_throw (
+			PED_EXCEPTION_WARNING, PED_EXCEPTION_IGNORE_CANCEL,
+			_("File system has errors!  You should run e2fsck."))
+				== PED_EXCEPTION_CANCEL)
+			goto error_free_fs;
+	}
+
+	if (!((EXT2_SUPER_STATE(fs->sb) | state) & EXT2_VALID_FS)
+	    || (EXT2_SUPER_FEATURE_INCOMPAT(fs->sb)
+		& EXT3_FEATURE_INCOMPAT_RECOVER))
+	{
+		if (ped_exception_throw (
+			PED_EXCEPTION_ERROR, PED_EXCEPTION_IGNORE_CANCEL,
+			_("File system was not cleanly unmounted!  "
+			  "You should run e2fsck.  Modifying an unclean "
+			  "file system could cause severe corruption."))
+				!= PED_EXCEPTION_IGNORE)
+			goto error_free_fs;
+	}
+
+	fs->dynamic_version = EXT2_SUPER_REV_LEVEL (fs->sb) > 0;
+
+	if ((EXT2_SUPER_FEATURE_COMPAT(fs->sb)
+	                & ~(EXT3_FEATURE_COMPAT_HAS_JOURNAL |
+			    EXT2_FEATURE_COMPAT_HAS_DIR_INDEX)) ||
+	    (EXT2_SUPER_FEATURE_INCOMPAT(fs->sb)
+	    		& ~(EXT2_FEATURE_INCOMPAT_FILETYPE |
+			    EXT3_FEATURE_INCOMPAT_RECOVER)) ||
+	    (EXT2_SUPER_FEATURE_RO_COMPAT(fs->sb)
+			& ~(EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER |
+			    EXT2_FEATURE_RO_COMPAT_LARGE_FILE)))
+	{
+		ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+		     _("File system has an incompatible feature enabled."));
+		goto error_free_fs;
+	}
+
+	fs->devhandle = handle;
+	fs->logsize = EXT2_SUPER_LOG_BLOCK_SIZE(fs->sb) + 10;
+	handle->ops->set_blocksize(handle->cookie, fs->logsize);
+
+	if (!ext2_bcache_init(fs))
+	{
+		ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+				     _("Error allocating buffer cache."));
+		goto error_free_fs;
+	}
+
+	fs->blocksize = 1 << fs->logsize;
+
+	fs->numgroups = ped_div_round_up (EXT2_SUPER_BLOCKS_COUNT(fs->sb)
+		       		- EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb),
+				EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb));
+	fs->gdblocks = ped_div_round_up (fs->numgroups
+                        * sizeof(struct ext2_group_desc),
+			       fs->blocksize);
+	fs->inodeblocks = ped_div_round_up (EXT2_SUPER_INODES_PER_GROUP(fs->sb)
+		       		  * sizeof(struct ext2_inode),
+				  fs->blocksize);
+	fs->r_frac = ped_div_round_up (100 * (loff_t)EXT2_SUPER_R_BLOCKS_COUNT(fs->sb),
+		       	     EXT2_SUPER_BLOCKS_COUNT(fs->sb));
+	fs->adminblocks = 3 + fs->gdblocks + fs->inodeblocks;
+
+	fs->sparse = 0;
+	if (EXT2_SUPER_FEATURE_RO_COMPAT(fs->sb)
+			& EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER)
+		fs->sparse = 1;
+
+	fs->has_journal = 0 < (EXT2_SUPER_FEATURE_COMPAT(fs->sb)
+			       & EXT3_FEATURE_COMPAT_HAS_JOURNAL);
+	fs->has_internal_journal
+		= fs->has_journal
+			&& uuid_is_null(EXT2_SUPER_JOURNAL_UUID(fs->sb))
+			&& EXT2_SUPER_JOURNAL_INUM(fs->sb);
+
+	fs->gd = ped_malloc (fs->numgroups * sizeof (struct ext2_group_desc)
+			     	+ fs->blocksize);
+	if (!fs->gd)
+		goto error_deinit_bcache;
+
+	ext2_read_blocks(fs, fs->gd, EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb) + 1,
+			 fs->gdblocks);
+                
+	fs->metadirty = 0;
+	return fs;
+
+	ped_free(fs->gd);
+error_deinit_bcache:
+	ext2_bcache_deinit(fs);
+error_free_fs:
+	ped_free(fs);
+error:
+	return NULL;
+}
+
+#endif /* !DISCOVER_ONLY */
diff --git a/parted-1.8.7/libparted/fs/ext2/ext2.h b/parted-1.8.7/libparted/fs/ext2/ext2.h
new file mode 100644
index 0000000..e6cbfc3
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/ext2/ext2.h
@@ -0,0 +1,247 @@
+/*
+    ext2.h -- ext2 header
+    Copyright (C) 1998-2000 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#ifndef _EXT2_H
+#define _EXT2_H
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+#include <sys/types.h>
+#include "tune.h"
+
+#if HAVE_INTTYPES_H
+#  include <inttypes.h>
+#endif
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+
+/* Ehrm.... sorry, pedanticists! :-) */
+#ifndef offsetof
+#  define offsetof(type, field) ((size_t)(&(((type *)0)->field)))
+#endif
+
+#ifdef __BEOS__
+  typedef off_t loff_t;
+#endif
+
+typedef u_int32_t blk_t;
+
+#ifdef HAVE_LINUX_EXT2_FS_H
+#define _LINUX_TYPES_H
+#define i_version i_generation
+#include <linux/ext2_fs.h>
+#else
+#include "ext2_fs.h"
+#endif
+
+extern unsigned char _bitmap[8];
+
+struct ext2_buffer_cache
+{
+	struct ext2_buffer_head	 *cache;
+	struct ext2_buffer_head  *heads;
+	struct ext2_buffer_head **hash;
+	struct ext2_fs		 *fs;
+
+	int			  size;
+	int			  numalloc;
+	unsigned char		 *buffermem;
+};
+
+struct ext2_buffer_head
+{
+	struct ext2_buffer_head  *next;
+	struct ext2_buffer_head  *prev;
+	unsigned char		 *data;
+	blk_t			  block;
+
+	int			  usecount;
+	int			  dirty;
+
+	struct ext2_buffer_cache *bc;
+	int			  alloc;
+};
+
+struct ext2_dev_ops
+{
+	int	(*close)(void *cookie);
+	blk_t	(*get_size)(void *cookie);
+	int	(*read)(void *cookie, void *ptr, blk_t block, blk_t num);
+	int	(*set_blocksize)(void *cookie, int logsize);
+	int	(*sync)(void *cookie);
+	int	(*write)(void *cookie, void *ptr, blk_t block, blk_t num);
+};
+
+struct ext2_dev_handle
+{
+	struct ext2_dev_ops	*ops;
+	void			*cookie;
+};
+
+struct ext2_fs
+{      
+	struct ext2_dev_handle		 *devhandle;
+
+	struct ext2_super_block		  sb;
+	struct ext2_group_desc		 *gd;
+	struct ext2_buffer_cache	 *bc;
+	int				  metadirty;			/* 0:all sb&gd copies clean
+									   1:all sb&gd copies dirty
+									   2:only first sb&gd copy clean */
+
+	int				  dynamic_version;
+	int				  sparse;			/* sparse superblocks */
+	int				  has_journal;			/* journal */
+	int				  has_internal_journal;
+
+	int				  blocksize;
+	int				  logsize;
+	blk_t				  adminblocks;
+	blk_t				  gdblocks;
+	blk_t				  itoffset;
+	blk_t				  inodeblocks;
+	int				  numgroups;
+	int				  r_frac;			/* reserved % of blocks */
+
+	unsigned char			 *relocator_pool;
+	unsigned char			 *relocator_pool_end;
+
+	int				 opt_debug;
+	int				 opt_safe;
+	int				 opt_verbose;
+
+	void				 *journal;
+};
+
+
+#define EXT2_ACTION_ADD		1
+#define EXT2_ACTION_DELETE	2
+#define EXT2_ACTION_FIND	3
+
+#define EXT2_META_CLEAN		0
+#define EXT2_META_PRIMARY_SB	1
+#define EXT2_META_BACKUP_SB	2
+#define EXT2_META_PRIMARY_GD	4
+#define EXT2_META_BACKUP_GD	8
+
+#define EXT2_META_PRIMARY	(EXT2_META_PRIMARY_SB | EXT2_META_PRIMARY_GD)
+#define EXT2_META_BACKUP	(EXT2_META_BACKUP_SB | EXT2_META_BACKUP_GD)
+#define EXT2_META_SB		(EXT2_META_PRIMARY_SB | EXT2_META_BACKUP_SB)
+#define EXT2_META_GD		(EXT2_META_PRIMARY_GD | EXT2_META_BACKUP_GD)
+
+/* generic stuff */
+int		ext2_copy_block			(struct ext2_fs *fs, blk_t from, blk_t to);
+void		ext2_close			(struct ext2_fs *fs);
+int		ext2_commit_metadata		(struct ext2_fs *fs, int copies);
+off_t		ext2_get_inode_offset		(struct ext2_fs *fs, ino_t inode, blk_t *block);
+blk_t		ext2_find_free_block		(struct ext2_fs *fs);
+ino_t		ext2_find_free_inode		(struct ext2_fs *fs);
+int		ext2_get_inode_state		(struct ext2_fs *fs, ino_t inode);
+int		ext2_is_group_sparse		(struct ext2_fs *fs, int group);
+int		ext2_move_blocks		(struct ext2_fs *fs, blk_t src, blk_t num, blk_t dest);
+struct ext2_fs *ext2_open			(struct ext2_dev_handle *handle, int state);
+int		ext2_read_blocks		(struct ext2_fs *fs, void *ptr, blk_t block, blk_t numblocks);
+int		ext2_read_inode			(struct ext2_fs *fs, ino_t inode, struct ext2_inode *inodep);
+int		ext2_set_inode_state		(struct ext2_fs *fs, ino_t inode, int state, int updatemetadata);
+int		ext2_do_inode			(struct ext2_fs *fs, struct ext2_inode *inode, blk_t block, int action);
+int		ext2_sync			(struct ext2_fs *fs);
+int		ext2_write_blocks		(struct ext2_fs *fs, void *ptr, blk_t block, blk_t numblocks);
+int		ext2_write_inode		(struct ext2_fs *fs, ino_t inode, const struct ext2_inode *inodep);
+int		ext2_zero_blocks		(struct ext2_fs *fs, blk_t block, blk_t num);
+int		ext2_zero_inode			(struct ext2_fs *fs, ino_t inode);
+
+/* block related */
+void		ext2_bgbitmap_cache_deinit	(struct ext2_fs *fs);
+int		ext2_bgbitmap_cache_flush	(struct ext2_fs *fs);
+int		ext2_bgbitmap_cache_init	(struct ext2_fs *fs);
+int		ext2_get_block_state		(struct ext2_fs *, blk_t block);
+int		ext2_set_block_state		(struct ext2_fs *, blk_t block, int state, int updatemetadata);
+
+/* block relocator */
+int		ext2_block_relocate		(struct ext2_fs *fs, blk_t newsize);
+
+/* buffer */
+void		ext2_bcache_deinit		(struct ext2_fs *fs);
+void		ext2_bcache_dump		(struct ext2_fs *fs);
+int		ext2_bcache_flush		(struct ext2_fs *fs, blk_t block);
+int		ext2_bcache_flush_range		(struct ext2_fs *fs, blk_t first, blk_t last);
+int 		ext2_bcache_init		(struct ext2_fs *fs);
+int		ext2_bcache_sync		(struct ext2_fs *fs);
+struct ext2_buffer_head *ext2_bcreate		(struct ext2_fs *fs, blk_t block);
+struct ext2_buffer_head *ext2_bread		(struct ext2_fs *fs, blk_t block);
+int		ext2_brelse			(struct ext2_buffer_head *bh, int forget);
+
+/* inode relocator */
+int		ext2_inode_relocate		(struct ext2_fs *fs, int newgroups);
+
+/* journalling */
+void		ext2_journal_deinit		(struct ext2_fs *fs);
+int		ext2_journal_init		(struct ext2_fs *fs);
+
+/* metadata mover */
+int		ext2_metadata_push		(struct ext2_fs *fs, blk_t newsize);
+
+/* fs creation */
+struct ext2_fs *ext2_mkfs			(struct ext2_dev_handle *handle, blk_t numblocks, int log_block_size, blk_t blocks_per_group, int inodes_per_group, int sparse_sb, int reserved_block_percentage, PedTimer* timer);
+
+/* resize */
+int		ext2_resize_fs			(struct ext2_fs *fs, blk_t newsize, PedTimer* timer);
+
+/* unix I/O */
+struct ext2_dev_handle *ext2_make_dev_handle_from_file(char *dev);
+
+
+
+
+static __inline__ int ext2_is_data_block(struct ext2_fs *fs, blk_t block)
+{
+	blk_t blk;
+	int   group;
+
+	PED_ASSERT (block >= EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb), return 0);
+	PED_ASSERT (block < EXT2_SUPER_BLOCKS_COUNT(fs->sb), return 0);
+
+	blk = block - EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb);
+
+	group = blk / EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb);
+	blk %= EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb);
+
+	if (ext2_is_group_sparse(fs, group) && blk <= fs->gdblocks)
+		return 0;
+
+	if (block == EXT2_GROUP_BLOCK_BITMAP(fs->gd[group]) ||
+	    block == EXT2_GROUP_INODE_BITMAP(fs->gd[group]))
+		return 0;
+
+	if (block >= EXT2_GROUP_INODE_TABLE(fs->gd[group]) &&
+	    block < EXT2_GROUP_INODE_TABLE(fs->gd[group]) + fs->inodeblocks)
+		return 0;
+
+	return 1;
+}
+
+#endif
diff --git a/parted-1.8.7/libparted/fs/ext2/ext2_block_relocator.c b/parted-1.8.7/libparted/fs/ext2/ext2_block_relocator.c
new file mode 100644
index 0000000..1f71d10
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/ext2/ext2_block_relocator.c
@@ -0,0 +1,924 @@
+/*
+    ext2_block_relocator.c -- ext2 block relocator
+    Copyright (C) 1998-2000 Free Software Foundation, Inc.
+  
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#include <config.h>
+
+#ifndef DISCOVER_ONLY
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "ext2.h"
+
+
+/* This struct describes a single block that will be relocated.  The
+ * block's original location is "num", and its new location is "dest".
+ * The block is presumebly referred to by some other block in the file
+ * system, which is recorded as "refblock".  (Only one reference to
+ * the block is allowed by the block relocator.)  "refoffset" describes
+ * the location within the refblock in which the block is referenced.
+ * "isindirect" is 0 for direct, 1 for single-indirect, 2 for
+ * double-indirect, etc.
+ *
+ * The algorithms in the file fill the entries of this struct in this order:
+ * num, refblock/refoffset/isindirectblock, dest.
+ */
+struct ext2_block_entry
+{
+	blk_t		num;
+	blk_t		dest;
+	blk_t		refblock;
+	unsigned	refoffset:16;
+	unsigned	isindirectblock:16;
+};
+
+/* This struct contains all data structures relevant to the block relocator.
+ * 	- newallocoffset is the distance between the start of a block group,
+ * 	and the first data block in the group.  This can change when a
+ * 	filesystem is resized, because the size of the group descriptors is
+ * 	proportional to the size of the filesystem.
+ * 
+ * 	- allocentries is the size of the "block" array.  It is a tuneable
+ * 	parameter that determines how many blocks can be moved in each
+ * 	pass.
+ * 
+ * 	- usedentries says how many entries of the "block" array have been
+ * 	used.  That is, how many blocks have been scheduled so far to
+ * 	be moved.
+ *
+ * 	- resolvedentries is the number of blocks whose referencing block
+ * 	has been found and recorded in block[.]->refblock, etc.
+ *
+ * 	- block is an array that records which blocks need to be moved, and
+ * 	where they will be moved to, etc.  At some point in the algorithm, this
+ * 	array gets sorted (grep for qsort!) by indirectness.
+ *
+ * 	- start: each entry in this array corresponds to a level of
+ * 	indirectness (0-3).  Each level has two items: dst and num.  "num"
+ * 	is the number of blocks inside "block" of that level of indirectness.
+ * 	After doscan() is finished, and the level of indirectness of each
+ * 	block is known, "block" is sorted (see above).  The "dst" pointer
+ * 	is a pointer inside "block" that indicates the start of the portion
+ * 	of the array containg blocks of that level of indirectness.
+ */
+struct ext2_block_relocator_state
+{
+	blk_t			 newallocoffset;
+	blk_t			 allocentries;
+	blk_t			 usedentries;
+	blk_t			 resolvedentries;
+	struct ext2_block_entry *block;
+
+	struct {
+		struct ext2_block_entry *dst;
+		int			 num;
+	} start[4];
+};
+
+
+
+static int compare_block_entries(const void *x0, const void *x1)
+{
+	const struct ext2_block_entry *b0;
+	const struct ext2_block_entry *b1;
+
+	b0 = (const struct ext2_block_entry *)x0;
+	b1 = (const struct ext2_block_entry *)x1;
+
+	if (b0->num < b1->num)
+		return -1;
+
+	if (b0->num > b1->num)
+		return 1;
+
+	return 0;
+}
+
+static int compare_block_entries_ind(const void *x0, const void *x1)
+{
+	const struct ext2_block_entry *b0;
+	const struct ext2_block_entry *b1;
+
+	b0 = (const struct ext2_block_entry *)x0;
+	b1 = (const struct ext2_block_entry *)x1;
+
+	if (b0->isindirectblock > b1->isindirectblock)
+		return -1;
+
+	if (b0->isindirectblock < b1->isindirectblock)
+		return 1;
+
+	return 0;
+}
+
+static int compare_block_entries_ref(const void *x0, const void *x1)
+{
+	const struct ext2_block_entry *b0;
+	const struct ext2_block_entry *b1;
+
+	b0 = (const struct ext2_block_entry *)x0;
+	b1 = (const struct ext2_block_entry *)x1;
+
+	if (b0->refblock < b1->refblock)
+		return -1;
+
+	if (b0->refblock > b1->refblock)
+		return 1;
+
+	return 0;
+}
+
+struct ext2_block_entry *findit(struct ext2_block_relocator_state *state, blk_t block)
+{
+	int			 min;
+	int			 max;
+	struct ext2_block_entry *retv;
+	int			 t;
+	blk_t			 tval;
+
+	max = state->usedentries - 1;
+	min = 0;
+	retv = NULL;
+
+ repeat:
+	if (min > max)
+		goto out;
+
+	t = (min + max) >> 1;
+	tval = state->block[t].num;
+
+	if (tval > block)
+		max = t - 1;
+
+	if (tval < block)
+		min = t + 1;
+
+	if (tval != block)
+		goto repeat;
+
+	retv = &state->block[t];
+
+ out:
+	return retv;
+}
+
+/* This function adds records a reference to a block ("blk"), if that
+ * block is scheduled to be moved.
+ */
+static int doblock(struct ext2_fs *fs,
+		   struct ext2_block_relocator_state *state,
+		   blk_t blk,
+		   blk_t refblock,
+		   off_t refoffset,
+		   int indirect)
+{
+	struct ext2_block_entry *ent;
+
+	if ((ent = findit(state, blk)) == NULL)
+		return 1;
+
+	if (ent->refblock)
+	{
+		ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("Cross-linked blocks found!  Better go run e2fsck "
+			  "first!"));
+		return 0;
+	}
+
+	ent->refblock = refblock;
+	ent->refoffset = refoffset;
+	ent->isindirectblock = indirect;
+
+	state->resolvedentries++;
+	state->start[indirect].num++;
+
+	return 1;
+}
+
+static int doindblock(struct ext2_fs *fs,
+		      struct ext2_block_relocator_state *state,
+		      blk_t blk,
+		      blk_t refblock,
+		      off_t refoffset)
+{
+	struct ext2_buffer_head *bh;
+	int			 i;
+	uint32_t		*uptr;
+
+	if (!doblock(fs, state, blk, refblock, refoffset, 1))
+		return 0;
+
+	bh = ext2_bread(fs, blk);
+	if (!bh)
+		return 0;
+	uptr = (uint32_t *)bh->data;
+
+	for (i=0;i<(fs->blocksize >> 2);i++)
+		if (uptr[i])
+			if (!doblock(fs, state, PED_LE32_TO_CPU(uptr[i]), blk,
+				     i<<2, 0))
+				return 0;
+
+	if (!ext2_brelse(bh, 0))
+		return 0;
+
+	return 1;
+}
+
+static int dodindblock(struct ext2_fs *fs,
+		       struct ext2_block_relocator_state *state,
+		       blk_t blk,
+		       blk_t refblock,
+		       off_t refoffset)
+{
+	struct ext2_buffer_head *bh;
+	int			 i;
+	uint32_t		*uptr;
+
+	if (!doblock(fs, state, blk, refblock, refoffset, 2))
+		return 0;
+
+	bh = ext2_bread(fs, blk);
+	if (!bh)
+		return 0;
+	uptr = (uint32_t *)bh->data;
+
+	for (i=0;i<(fs->blocksize >> 2);i++)
+		if (uptr[i])
+			if (!doindblock(fs, state, PED_LE32_TO_CPU(uptr[i]),
+					blk, i<<2))
+				return 0;
+
+	if (!ext2_brelse(bh, 0))
+		return 0;
+
+	return 1;
+}
+
+static int dotindblock(struct ext2_fs *fs,
+		       struct ext2_block_relocator_state *state,
+		       blk_t blk,
+		       blk_t refblock,
+		       off_t refoffset)
+{
+	struct ext2_buffer_head *bh;
+	int			 i;
+	uint32_t		*uptr;
+
+	if (!doblock(fs, state, blk, refblock, refoffset, 3))
+		return 0;
+
+	bh = ext2_bread(fs, blk);
+	if (!bh)
+		return 0;
+	uptr = (uint32_t *)bh->data;
+
+	for (i=0;i<(fs->blocksize >> 2);i++)
+		if (uptr[i])
+			if (!dodindblock(fs, state, PED_LE32_TO_CPU(uptr[i]),
+					 blk, i<<2))
+				return 0;
+
+	if (!ext2_brelse(bh, 0))
+		return 0;
+
+	return 1;
+}
+
+
+/* This function records any block references from an inode to blocks that are
+ * scheduled to be moved.
+ */
+static int doinode(struct ext2_fs *fs, struct ext2_block_relocator_state *state, int inode)
+{
+	struct ext2_inode buf;
+
+	if (!ext2_read_inode(fs, inode, &buf))
+		return 0;
+
+	if (EXT2_INODE_BLOCKS(buf))
+	{
+		blk_t blk;
+		int   i;
+		off_t inodeoffset;
+		blk_t inodeblock;
+
+		inodeoffset = ext2_get_inode_offset(fs, inode, &inodeblock);
+
+		/* do Hurd block, if there is one... */
+		if (EXT2_SUPER_CREATOR_OS(fs->sb) == EXT2_OS_HURD
+		    && EXT2_INODE_TRANSLATOR(buf)) {
+			if (!doblock(fs,
+				     state,
+				     EXT2_INODE_TRANSLATOR(buf),
+				     inodeblock,
+				     inodeoffset + offsetof(struct ext2_inode,
+						osd1.hurd1.h_i_translator),
+				     0))
+				return 0;
+		}
+
+		for (i=0;i<EXT2_NDIR_BLOCKS;i++)
+			if ((blk = EXT2_INODE_BLOCK(buf, i)) != 0)
+				if (!doblock(fs,
+					     state,
+					     blk,
+					     inodeblock,
+					     inodeoffset + offsetof(struct ext2_inode, i_block[i]),
+					     0))
+					return 0;
+
+		if ((blk = EXT2_INODE_BLOCK(buf, EXT2_IND_BLOCK)) != 0)
+			if (!doindblock(fs,
+					state,
+					blk,
+					inodeblock,
+					inodeoffset + offsetof(struct ext2_inode, i_block[EXT2_IND_BLOCK])))
+				return 0;
+
+		if ((blk = EXT2_INODE_BLOCK(buf, EXT2_DIND_BLOCK)) != 0)
+			if (!dodindblock(fs,
+					 state,
+					 blk,
+					 inodeblock,
+					 inodeoffset + offsetof(struct ext2_inode, i_block[EXT2_DIND_BLOCK])))
+				return 0;
+
+		if ((blk = EXT2_INODE_BLOCK(buf, EXT2_TIND_BLOCK)) != 0)
+			if (!dotindblock(fs,
+					 state,
+					 blk,
+					 inodeblock,
+					 inodeoffset + offsetof(struct ext2_inode, i_block[EXT2_TIND_BLOCK])))
+				return 0;
+
+	}
+
+	return 1;
+}
+
+/* This function scans the entire filesystem, to find all references to blocks
+ * that are scheduled to be moved.
+ */
+static int doscan(struct ext2_fs *fs, struct ext2_block_relocator_state *state)
+{
+	int i;
+
+	state->start[0].num = 0;
+	state->start[1].num = 0;
+	state->start[2].num = 0;
+	state->start[3].num = 0;
+
+	for (i=0;i<fs->numgroups;i++)
+	{
+		struct ext2_buffer_head *bh;
+		unsigned int		 j;
+		int			 offset;
+
+		if (fs->opt_verbose)
+		{
+			fprintf(stderr, " scanning group %i.... ", i);
+			fflush(stderr);
+		}
+
+		bh = ext2_bread(fs, EXT2_GROUP_INODE_BITMAP(fs->gd[i]));
+		if (!bh)
+			return 0;
+		offset = i * EXT2_SUPER_INODES_PER_GROUP(fs->sb) + 1;
+
+		for (j=0;j<EXT2_SUPER_INODES_PER_GROUP(fs->sb);j++)
+			if (bh->data[j>>3] & _bitmap[j&7])
+			{
+				if (!doinode(fs, state, offset + j))
+				{
+					ext2_brelse(bh, 0);
+					return 0;
+				}
+
+				if (state->resolvedentries == state->usedentries)
+					break;
+			}
+
+		ext2_brelse(bh, 0);
+
+		if (fs->opt_verbose)
+		{
+			fprintf(stderr, "%i/%i blocks resolved\r",
+				state->resolvedentries,
+				state->usedentries);
+			fflush(stderr);
+		}
+
+		if (state->resolvedentries == state->usedentries)
+			break;
+	}
+
+	if (fs->opt_verbose)
+                fputc('\n', stderr);
+
+	state->start[3].dst = state->block;
+	state->start[2].dst = state->start[3].dst + state->start[3].num;
+	state->start[1].dst = state->start[2].dst + state->start[2].num;
+	state->start[0].dst = state->start[1].dst + state->start[1].num;
+
+	return 1;
+}
+
+
+
+
+
+static int ext2_block_relocator_copy(struct ext2_fs *fs, struct ext2_block_relocator_state *state)
+{
+	unsigned char *buf;
+
+	ped_exception_fetch_all();
+	buf = (unsigned char *) ped_malloc(MAXCONT << fs->logsize);
+	if (buf)
+	{
+		int num;
+		int numleft;
+		struct ext2_block_entry *ptr;
+
+		ped_exception_leave_all();
+
+		numleft = state->usedentries;
+		ptr = state->block;
+		while (numleft)
+		{
+			num = PED_MIN(numleft, MAXCONT);
+			while (num != 1)
+			{
+				if (ptr[0].num + num-1 == ptr[num-1].num &&
+				    ptr[0].dest + num-1 == ptr[num-1].dest)
+					break;
+
+				num >>= 1;
+			}
+
+			if (!ext2_bcache_flush_range(fs, ptr[0].num, num))
+				goto error_free_buf;
+			if (!ext2_bcache_flush_range(fs, ptr[0].dest, num))
+				goto error_free_buf;
+
+			if (!ext2_read_blocks(fs, buf, ptr[0].num, num))
+				goto error_free_buf;
+			if (!ext2_write_blocks(fs, buf, ptr[0].dest, num))
+				goto error_free_buf;
+
+			ptr += num;
+			numleft -= num;
+
+			if (fs->opt_verbose)
+			{
+				fprintf(stderr, "copied %i/%i blocks\r",
+					state->usedentries - numleft,
+					state->usedentries);
+				fflush(stderr);
+			}
+		}
+
+		ped_free(buf);
+
+		if (fs->opt_safe)
+			ext2_sync(fs);
+
+		if (fs->opt_verbose)
+                        fputc('\n', stderr);
+	}
+	else
+	{
+		blk_t i;
+
+		ped_exception_catch();
+		ped_exception_leave_all();
+
+		for (i=0;i<state->usedentries;i++)
+		{
+			struct ext2_block_entry *block;
+
+			block = &state->block[i];
+			if (!ext2_copy_block(fs, block->num, block->dest))
+				goto error;
+		}
+	}
+
+	return 1;
+
+error_free_buf:
+	ped_free(buf);
+error:
+	return 0;
+}
+
+static int ext2_block_relocator_ref(struct ext2_fs *fs, struct ext2_block_relocator_state *state, struct ext2_block_entry *block)
+{
+	struct ext2_buffer_head	*bh;
+	static int numerrors = 0;
+
+	if (!(block->refblock || block->refoffset))
+	{
+		ped_exception_throw (PED_EXCEPTION_BUG, PED_EXCEPTION_CANCEL,
+				     _("Block %i has no reference?  Weird."),
+				     block->num);
+		return 0;
+	}
+
+	bh = ext2_bread(fs, block->refblock);
+	if (!bh)
+		return 0;
+
+	if (fs->opt_debug)
+	{
+		if (PED_LE32_TO_CPU(*((uint32_t *)(bh->data + block->refoffset)))
+				!= block->num) {
+			fprintf(stderr,
+				"block %i ref error! (->%i {%i, %i})\n",
+				block->num,
+				block->dest,
+				block->refblock,
+				block->refoffset);
+			ext2_brelse(bh, 0);
+
+			if (numerrors++ < 4)
+				return 1;
+
+			fputs("all is not well!\n", stderr);
+			return 0;
+		}
+	}
+
+	*((uint32_t *)(bh->data + block->refoffset))
+		= PED_LE32_TO_CPU(block->dest);
+	bh->dirty = 1;
+	ext2_brelse(bh, 0);
+
+	ext2_set_block_state(fs, block->dest, 1, 1);
+	ext2_set_block_state(fs, block->num, 0, 1);
+
+	if (block->isindirectblock)
+	{
+		struct ext2_block_entry *dst;
+		int			 i;
+		int			 num;
+
+		dst = state->start[block->isindirectblock-1].dst;
+		num = state->start[block->isindirectblock-1].num;
+
+		for (i=0;i<num;i++)
+			if (dst[i].refblock == block->num)
+				dst[i].refblock = block->dest;
+	}
+
+	return 1;
+}
+
+/* This function allocates new locations for blocks that are scheduled to move
+ * (inside state->blocks).
+ *
+ * FIXME: doesn't seem to handle sparse block groups.  That is, there might be
+ * some free space that could be exploited in resizing that currently isn't...
+ *
+ * FIXME: should throw an exception if it fails to allocate blocks.
+ */
+static int ext2_block_relocator_grab_blocks(struct ext2_fs *fs, struct ext2_block_relocator_state *state)
+{
+	int i;
+	blk_t ptr;
+
+	ptr = 0;
+
+	for (i=0;i<fs->numgroups;i++)
+		if (EXT2_GROUP_FREE_BLOCKS_COUNT(fs->gd[i]))
+		{
+			struct ext2_buffer_head *bh;
+			unsigned int j;
+			int offset;
+
+			bh = ext2_bread(fs, EXT2_GROUP_BLOCK_BITMAP(fs->gd[i]));
+			offset = i * EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb)
+				 + EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb);
+
+			for (j=state->newallocoffset;
+			     j<EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb);
+			     j++)
+				if (!(bh->data[j>>3] & _bitmap[j&7]))
+				{
+					state->block[ptr++].dest = offset + j;
+
+					if (ptr == state->usedentries)
+					{
+						ext2_brelse(bh, 0);
+						return 1;
+					}
+				}
+
+			ext2_brelse(bh, 0);
+		}
+
+	return 0;
+}
+
+static int ext2_block_relocator_flush(struct ext2_fs *fs, struct ext2_block_relocator_state *state)
+{
+	int i;
+
+	if (!state->usedentries)
+		return 1;
+
+	if (fs->opt_verbose)
+                fputs("ext2_block_relocator_flush\n", stderr);
+
+	if (fs->opt_debug)
+	{
+	again:
+
+		for (i=0; (unsigned int) i < state->usedentries-1; i++)
+			if (state->block[i].num >= state->block[i+1].num)
+			{
+				fputs("ext2_block_relocator_flush: "
+				      "blocks not in order!\n", stderr);
+
+				qsort(state->block,
+				      state->usedentries,
+				      sizeof(struct ext2_block_entry),
+				      compare_block_entries);
+				goto again;
+			}
+	}
+
+	if (!doscan(fs, state))
+		return 0;
+
+	if (!ext2_block_relocator_grab_blocks(fs, state))
+		return 0;
+
+	if (!ext2_block_relocator_copy(fs, state))
+		return 0;
+
+	qsort(state->block,
+	      state->usedentries,
+	      sizeof(struct ext2_block_entry),
+	      compare_block_entries_ind);
+
+	for (i=3;i>=0;i--)
+	{
+		struct ext2_block_entry *dst;
+		int			 j;
+		int			 num;
+
+		dst = state->start[i].dst;
+		num = state->start[i].num;
+
+		if (!num)
+			continue;
+
+		if (fs->opt_verbose)
+		{
+			/* FIXXXME gross hack */
+			fprintf(stderr, "relocating %s blocks",
+				((char *[4]){"direct",
+						     "singly indirect",
+						     "doubly indirect",
+						     "triply indirect"})[i]);
+			fflush(stderr);
+		}
+
+		qsort(dst,
+		      num,
+		      sizeof(struct ext2_block_entry),
+		      compare_block_entries_ref);
+
+		for (j=0;j<num;j++)
+			if (!ext2_block_relocator_ref(fs, state, &dst[j]))
+				return 0;
+
+		if (fs->opt_safe) {
+			if (!ext2_sync(fs))
+				return 0;
+		}
+
+		if (fs->opt_verbose)
+		        fputc('\n', stderr);
+	}
+
+	state->usedentries = 0;
+	state->resolvedentries = 0;
+
+	return 1;
+}
+
+static int ext2_block_relocator_mark(struct ext2_fs *fs, struct ext2_block_relocator_state *state, blk_t block)
+{
+	int i;
+
+	if (fs->opt_debug)
+	{
+		if (!ext2_get_block_state(fs, block) ||
+		    !ext2_is_data_block(fs, block))
+		{
+			ped_exception_throw (PED_EXCEPTION_WARNING,
+				PED_EXCEPTION_IGNORE,
+				_("Block %i shouldn't have been marked "
+                                  "(%d, %d)!"), block,
+                                ext2_get_block_state(fs, block),
+                                ext2_is_data_block(fs, block));
+		}
+	}
+
+	if (state->usedentries == state->allocentries - 1)
+		if (!ext2_block_relocator_flush(fs, state))
+			return 0;
+
+	i = state->usedentries;
+	state->block[i].num = block;
+	state->block[i].dest = 0;
+	state->block[i].refblock = 0;
+	state->block[i].refoffset = 0;
+
+	state->usedentries++;
+	return 1;
+}
+
+static int ext2_block_relocate_grow(struct ext2_fs *fs, struct ext2_block_relocator_state *state, blk_t newsize)
+{
+	blk_t newgdblocks;
+	blk_t newitoffset;
+	int   i;
+
+	newgdblocks = ped_div_round_up (newsize
+                        - EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb),
+			      EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb));
+	newgdblocks = ped_div_round_up (newgdblocks
+                        * sizeof(struct ext2_group_desc),
+			      fs->blocksize);
+	if (newgdblocks == fs->gdblocks)
+		return 1;
+
+	newitoffset = newgdblocks + 3;
+	state->newallocoffset = newitoffset + fs->inodeblocks;
+
+	for (i=0;i<fs->numgroups;i++)
+	{
+		struct ext2_buffer_head *bh;
+		blk_t			 diff;
+		blk_t			 j;
+		blk_t			 start;
+		int			 sparse;
+
+		bh = ext2_bread(fs, EXT2_GROUP_BLOCK_BITMAP(fs->gd[i]));
+		start = (i * EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb))
+			+ EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb);
+		sparse = ext2_is_group_sparse(fs, i);
+
+		if (EXT2_GROUP_INODE_TABLE(fs->gd[i]) < start + newitoffset
+		    || (sparse && ((EXT2_GROUP_BLOCK_BITMAP(fs->gd[i])
+						< start + newitoffset - 2)
+			       || (EXT2_GROUP_INODE_BITMAP(fs->gd[i])
+						< start + newitoffset - 1))))
+		{
+			diff = newitoffset - (EXT2_GROUP_INODE_TABLE(fs->gd[i])
+					      - start);
+
+			for (j=0;j<diff;j++)
+			{
+				blk_t k;
+
+				k = EXT2_GROUP_INODE_TABLE(fs->gd[i])
+                                        + fs->inodeblocks + j;
+				if (bh->data[k>>3] & _bitmap[k&7])
+					if (!ext2_block_relocator_mark(fs,
+							    state, start + k))
+					{
+						ext2_brelse(bh, 0);
+						return 0;
+					}
+			}
+		}
+
+		ext2_brelse(bh, 0);
+	}
+
+	if (!ext2_block_relocator_flush(fs, state))
+		return 0;
+
+	return 1;
+}
+
+static int ext2_block_relocate_shrink(struct ext2_fs *fs, struct ext2_block_relocator_state *state, blk_t newsize)
+{
+	int diff;
+	int i;
+
+	diff = ped_div_round_up (newsize - EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb),
+		       EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb));
+	diff = ped_div_round_up (diff * sizeof(struct ext2_group_desc),
+                        fs->blocksize);
+	diff = fs->gdblocks - diff;
+
+	state->newallocoffset = fs->itoffset + fs->inodeblocks;
+
+	for (i=0;i<fs->numgroups;i++)
+	{
+		struct ext2_buffer_head *bh;
+		blk_t			 groupsize;
+		blk_t			 j;
+		blk_t			 offset;
+		int			 sparse;
+		blk_t			 start;
+		int			 type;
+
+		offset = i * EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb)
+			 + EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb);
+		sparse = ext2_is_group_sparse(fs, i);
+
+		if (newsize >= offset + EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb))
+			continue;		/* group will survive */
+
+		bh = ext2_bread(fs, EXT2_GROUP_BLOCK_BITMAP(fs->gd[i]));
+
+		if (newsize <= offset)
+			type = 2;		/* group is fully chopped off */
+		else
+			type = 1;		/* group is partly chopped off */
+
+		if (!sparse && type == 2)
+		{
+			for (j=EXT2_GROUP_INODE_BITMAP(fs->gd[i])+1;
+			     j<EXT2_GROUP_INODE_TABLE(fs->gd[i]);
+			     j++)
+			{
+				blk_t k;
+
+				k = j - offset;
+				if (bh->data[k>>3] & _bitmap[k&7])
+					if (!ext2_block_relocator_mark(fs, state, j))
+					{
+						ext2_brelse(bh, 0);
+						return 0;
+					}
+			}
+		}
+
+		start = newsize;
+		if (type == 2)
+			start = EXT2_GROUP_INODE_TABLE(fs->gd[i])
+				+ fs->inodeblocks;
+
+		start -= offset;
+
+		groupsize = EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb);
+		if (offset + groupsize > EXT2_SUPER_BLOCKS_COUNT(fs->sb))
+			groupsize = EXT2_SUPER_BLOCKS_COUNT(fs->sb) - offset;
+
+		for (j=start;j<groupsize;j++)
+			if (bh->data[j>>3] & _bitmap[j&7])
+				if (!ext2_block_relocator_mark(fs, state,
+							       offset + j))
+				{
+					ext2_brelse(bh, 0);
+					return 0;
+				}
+
+		ext2_brelse(bh, 0);
+	}
+
+	return ext2_block_relocator_flush(fs, state);
+}
+
+int ext2_block_relocate(struct ext2_fs *fs, blk_t newsize)
+{
+	struct ext2_block_relocator_state state;
+
+	if (fs->opt_verbose)
+                fputs("relocating blocks....\n", stderr);
+
+	state.newallocoffset = 0;
+	state.allocentries = (ext2_relocator_pool_size << 10) /
+		sizeof(struct ext2_block_entry);
+	state.usedentries = 0;
+	state.resolvedentries = 0;
+	state.block = (struct ext2_block_entry *)fs->relocator_pool;
+
+	if (newsize < EXT2_SUPER_BLOCKS_COUNT(fs->sb))
+		return ext2_block_relocate_shrink(fs, &state, newsize);
+
+	return ext2_block_relocate_grow(fs, &state, newsize);
+}
+
+#endif /* !DISCOVER_ONLY */
diff --git a/parted-1.8.7/libparted/fs/ext2/ext2_buffer.c b/parted-1.8.7/libparted/fs/ext2/ext2_buffer.c
new file mode 100644
index 0000000..85da20a
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/ext2/ext2_buffer.c
@@ -0,0 +1,447 @@
+/*
+    ext2_buffer.c -- ext2 buffer cache
+    Copyright (C) 1998-2000 Free Software Foundation, Inc.
+  
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#include <config.h>
+
+#ifndef DISCOVER_ONLY
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "ext2.h"
+
+/* pseudo-header */
+
+static __inline__ int ext2_block_hash(blk_t block)
+{
+	unsigned long x;
+
+	x = block ^ (block >> 8) ^ (block >> 16) ^ (block >> 24);
+	return x & ((1 << ext2_hash_bits) - 1);
+}
+
+static struct ext2_buffer_head *ext2_bh_alloc   (struct ext2_buffer_cache *, blk_t);
+static void                     ext2_bh_dealloc (struct ext2_buffer_head *);
+static struct ext2_buffer_head *ext2_bh_find    (struct ext2_buffer_cache *, blk_t);
+static int                      ext2_bh_do_read (struct ext2_buffer_head *);
+static int                      ext2_bh_do_write(struct ext2_buffer_head *);
+static void                     ext2_bh_hash    (struct ext2_buffer_head *);
+static void                     ext2_bh_unhash  (struct ext2_buffer_head *);
+
+
+
+static int try_to_flush(struct ext2_buffer_cache *bc)
+{
+	int i;
+
+	for (i=0;i<bc->size;i++)
+	{
+		struct ext2_buffer_head *bh;
+
+		bh = &bc->heads[i];
+	
+		if (bh->alloc && !bh->usecount && !bh->dirty)
+		{
+			ext2_bh_dealloc(bh);
+			return 1;
+		}
+	}
+
+	for (i=0;i<bc->size;i++)
+	{
+		struct ext2_buffer_head *bh;
+
+		bh = &bc->heads[i];
+
+		if (bh->alloc && !bh->usecount && bh->dirty)
+		{
+			ext2_bh_do_write(bh);
+			ext2_bh_dealloc(bh);
+			return 1;
+		}
+	}
+
+	if (ped_exception_throw (PED_EXCEPTION_ERROR,
+				 PED_EXCEPTION_IGNORE_CANCEL,
+				 _("Couldn't flush buffer cache!"))
+			!= PED_EXCEPTION_IGNORE)
+		return 0;
+	return 1;
+}
+
+
+
+
+
+static struct ext2_buffer_head *ext2_bh_alloc(struct ext2_buffer_cache *bc, blk_t block)
+{
+	struct ext2_buffer_head *bh;
+	int i;
+
+	bh = NULL;
+
+ tryagain:
+	for (i=0;i<bc->size;i++)
+	{
+		bh = &bc->heads[i];
+
+		if (!bh->alloc)
+			break;
+	}
+
+	if (i == bc->size)
+	{
+		try_to_flush(bc);
+		goto tryagain;
+	}
+
+	bh = &bc->heads[i];
+
+	bh->next = NULL;
+	bh->prev = NULL;
+	bh->block = block;
+	bh->usecount = 0;
+	bh->dirty = 0;
+	bh->alloc = 1;
+	bc->numalloc++;
+
+	ext2_bh_hash(bh);
+
+	return bh;
+}
+
+static void ext2_bh_dealloc(struct ext2_buffer_head *bh)
+{
+	if (bh->dirty)
+		ped_exception_throw (PED_EXCEPTION_BUG, PED_EXCEPTION_IGNORE,
+			"deallocing() a dirty buffer! %i\n", bh->block);
+
+	ext2_bh_unhash(bh);
+	bh->alloc = 0;
+	bh->bc->numalloc--;
+}
+
+static struct ext2_buffer_head *ext2_bh_find(struct ext2_buffer_cache *bc, blk_t block)
+{
+	struct ext2_buffer_head *a;
+	struct ext2_buffer_head *b;
+	int			 hash;
+
+	hash = ext2_block_hash(block);
+	a = bc->hash[hash];
+
+	if (a != NULL)
+	{
+		b = a;
+		do
+		{
+			if (a->block == block)
+				return a;
+
+			a = a->next;
+		} while (a != b);
+	}
+
+	return NULL;
+}
+
+static int ext2_bh_do_read(struct ext2_buffer_head *bh)
+{
+	return ext2_read_blocks(bh->bc->fs, bh->data, bh->block, 1);
+}
+
+static int ext2_bh_do_write(struct ext2_buffer_head *bh)
+{
+	if (!bh->alloc) {
+		ped_exception_throw (PED_EXCEPTION_BUG, PED_EXCEPTION_CANCEL,
+			"Attempt to write unallocated buffer.");
+		return 0;
+	}
+
+	ext2_write_blocks(bh->bc->fs, bh->data, bh->block, 1);
+	bh->dirty = 0;
+	return 1;
+}
+
+static void ext2_bh_hash(struct ext2_buffer_head *bh)
+{
+	int hash;
+
+	hash = ext2_block_hash(bh->block);
+	if (bh->bc->hash[hash] != NULL)
+	{
+		bh->next = bh->bc->hash[hash];
+		bh->prev = bh->next->prev;
+		bh->next->prev = bh;
+		bh->prev->next = bh;
+		return;
+	}
+
+	bh->bc->hash[hash] = bh;
+	bh->next = bh->prev = bh;
+}
+
+static void ext2_bh_unhash(struct ext2_buffer_head *bh)
+{
+	int hash;
+
+	hash = ext2_block_hash(bh->block);
+
+	bh->prev->next = bh->next;
+	bh->next->prev = bh->prev;
+
+	if (bh->bc->hash[hash] == bh)
+	{
+		if (bh->next != bh)
+			bh->bc->hash[hash] = bh->next;
+		else
+			bh->bc->hash[hash] = NULL;
+	}
+
+	bh->next = NULL;
+	bh->prev = NULL;
+}
+
+
+
+
+
+
+
+static int breadimmhits = 0;
+static int breadindhits = 0;
+static int breadmisses = 0;
+
+void ext2_bcache_deinit(struct ext2_fs *fs)
+{
+	ext2_bcache_sync(fs);
+	ped_free(fs->bc->buffermem);
+	ped_free(fs->bc->hash);
+	ped_free(fs->bc->heads);
+	ped_free(fs->bc);
+
+	if (fs->opt_verbose)
+		fprintf(stderr,
+			"direct hits: %i, indirect hits: %i, misses: %i\n",
+			breadimmhits,
+			breadindhits,
+			breadmisses);
+}
+
+void ext2_bcache_dump(struct ext2_fs *fs)
+{
+	int i;
+
+	fputs ("buffer cache dump:\n", stderr);
+
+	for (i=0;i<(1<<ext2_hash_bits);i++)
+		if (fs->bc->hash[i] != NULL)
+		{
+			struct ext2_buffer_head *a;
+			struct ext2_buffer_head *b;
+
+			fprintf(stderr, "%i: ", i);
+
+			a = b = fs->bc->hash[i];
+			do
+			{
+				fprintf(stderr, "%i ", a->block);
+				a = a->next;
+			} while (a != b);
+
+			fputc ('\n', stderr);
+		}
+}
+
+int ext2_bcache_flush(struct ext2_fs *fs, blk_t block)
+{
+	struct ext2_buffer_head *bh;
+
+	if ((bh = ext2_bh_find(fs->bc, block)) == NULL)
+		return 1;
+
+	if (bh->usecount) {
+		ped_exception_throw (PED_EXCEPTION_BUG, PED_EXCEPTION_CANCEL,
+			"Attempt to flush a buffer that's in use! [%i,%i]",
+			bh->block, bh->usecount);
+		return 0;
+	}
+
+	if (bh->dirty) {
+		if (!ext2_bh_do_write(bh))
+			return 0;
+	}
+
+	ext2_bh_dealloc(bh);
+	return 1;
+}
+
+int ext2_bcache_flush_range(struct ext2_fs *fs, blk_t block, blk_t num)
+{
+	blk_t end = block + num;
+
+	for (; block < end; block++) {
+		if (!ext2_bcache_flush(fs, block))
+			return 0;
+	}
+	return 1;
+}
+
+int ext2_bcache_init(struct ext2_fs *fs)
+{
+	struct ext2_buffer_cache *bc;
+	int i;
+	int size;
+
+	size = ext2_buffer_cache_pool_size >> (fs->logsize - 10);
+
+	if ((bc = (struct ext2_buffer_cache *) ped_malloc(sizeof(struct ext2_buffer_cache))) == NULL)
+		return 0;
+
+	if ((bc->heads = (struct ext2_buffer_head *) ped_malloc(size * sizeof(struct ext2_buffer_head))) == NULL)
+		return 0;
+
+	if ((bc->hash = (struct ext2_buffer_head **) ped_malloc(sizeof(struct ext2_buffer_head *) << ext2_hash_bits)) == NULL)
+	{
+		ped_free(bc->heads);
+		ped_free(bc);
+		return 0;
+	}
+
+	if ((bc->buffermem = (unsigned char *) ped_malloc(ext2_buffer_cache_pool_size << 10)) == NULL)
+	{
+		ped_free(bc->hash);
+		ped_free(bc->heads);
+		ped_free(bc);
+		return 0;
+	}
+
+	bc->cache = &bc->heads[0];
+	bc->fs = fs;
+	bc->size = size;
+	bc->numalloc = 0;
+
+	for (i=0;i<size;i++)
+	{
+		bc->heads[i].data = bc->buffermem + (i << fs->logsize);
+		bc->heads[i].bc = bc;
+		bc->heads[i].alloc = 0;
+	}
+
+	for (i=0;i<(1<<ext2_hash_bits);i++)
+		bc->hash[i] = NULL;
+
+	fs->bc = bc;
+
+	return 1;
+}
+
+int ext2_bcache_sync(struct ext2_fs *fs)
+{
+	int i;
+
+	for (i=0;i<fs->bc->size;i++)
+	{
+		struct ext2_buffer_head *bh;
+
+		bh = &fs->bc->heads[i];
+
+		if (bh->alloc && bh->dirty) {
+			if (!ext2_bh_do_write(bh))
+				return 0;
+		}
+	}
+	return 1;
+}
+
+
+
+
+
+
+
+
+struct ext2_buffer_head *ext2_bcreate(struct ext2_fs *fs, blk_t block)
+{
+	struct ext2_buffer_head *bh;
+
+	if ((bh = ext2_bh_find(fs->bc, block)) != NULL)
+	{
+		bh->usecount++;
+	}
+	else
+	{
+		bh = ext2_bh_alloc(fs->bc, block);
+		bh->usecount = 1;
+	}
+
+	memset(bh->data, 0, fs->blocksize);
+	bh->dirty = 1;
+
+	return bh;
+}
+
+struct ext2_buffer_head *ext2_bread(struct ext2_fs *fs, blk_t block)
+{
+	struct ext2_buffer_head *bh;
+
+	if ((bh = fs->bc->cache)->block == block)
+	{
+		breadimmhits++;
+		bh->usecount++;
+		return bh;
+	}
+
+	if ((bh = ext2_bh_find(fs->bc, block)) != NULL)
+	{
+		fs->bc->cache = bh;
+		breadindhits++;
+		bh->usecount++;
+		return bh;
+	}
+
+	breadmisses++;
+
+	bh = ext2_bh_alloc(fs->bc, block);
+	fs->bc->cache = bh;
+	bh->usecount = 1;
+	if (!ext2_bh_do_read(bh)) {
+		ext2_bh_dealloc(bh);
+		return NULL;
+	}
+
+	return bh;
+}
+
+int ext2_brelse(struct ext2_buffer_head *bh, int forget)
+{
+	if (bh->usecount-- == 1 && forget)
+	{
+		if (bh->dirty) {
+			if (!ext2_bh_do_write(bh))
+				return 0;
+		}
+
+		ext2_bh_dealloc(bh);
+	}
+	return 1;
+}
+
+#endif /* !DISCOVER_ONLY */
+
diff --git a/parted-1.8.7/libparted/fs/ext2/ext2_fs.h b/parted-1.8.7/libparted/fs/ext2/ext2_fs.h
new file mode 100644
index 0000000..713cc21
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/ext2/ext2_fs.h
@@ -0,0 +1,323 @@
+/*
+ *  linux/include/linux/ext2_fs.h
+ *
+ * Copyright (C) 1992, 1993, 1994, 1995
+ * Remy Card (card@masi.ibp.fr)
+ * Laboratoire MASI - Institut Blaise Pascal
+ * Universite Pierre et Marie Curie (Paris VI)
+ *
+ *  from
+ *
+ *  linux/include/linux/minix_fs.h
+ *
+ *  Copyright (C) 1991, 1992  Linus Torvalds
+ */
+
+/*
+ * EXT2_*_*() convienience macros added by Andrew Clausen <clausen@gnu.org>
+ * Copyright (C) 2000 Free Software Foundation, Inc.
+ */
+
+#ifndef _EXT2_FS_H
+#define _EXT2_FS_H
+
+#include <parted/endian.h>
+#include <stdint.h>
+
+/*
+ * The second extended file system constants/structures
+ */
+
+#define EXT2_SUPER_MAGIC_CONST	0xEF53
+#define EXT2_MIN_BLOCK_SIZE	1024
+#define EXT2_NDIR_BLOCKS	12
+#define EXT2_IND_BLOCK		EXT2_NDIR_BLOCKS
+#define EXT2_DIND_BLOCK		(EXT2_IND_BLOCK + 1)
+#define EXT2_TIND_BLOCK		(EXT2_DIND_BLOCK + 1)
+#define EXT2_N_BLOCKS		(EXT2_TIND_BLOCK + 1)
+#define EXT2_VALID_FS		0x0001
+#define EXT2_ERROR_FS		0x0002
+#define EXT2_RESERVED_INODE_COUNT	11
+
+/*
+ * Codes for operating systems
+ */
+#define EXT2_OS_LINUX		0
+#define EXT2_OS_HURD		1
+#define EXT2_OS_MASIX		2
+#define EXT2_OS_FREEBSD		3
+#define EXT2_OS_LITES		4
+
+/*
+ * Feature set definitions
+ */
+#define EXT3_FEATURE_COMPAT_HAS_JOURNAL		0x0004
+#define EXT2_FEATURE_COMPAT_HAS_DIR_INDEX	0x0020
+
+#define EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER	0x0001
+#define EXT2_FEATURE_RO_COMPAT_LARGE_FILE	0x0002
+
+#define EXT2_FEATURE_INCOMPAT_FILETYPE		0x0002
+#define EXT3_FEATURE_INCOMPAT_RECOVER		0x0004
+
+/*
+ * Special inodes numbers
+ */
+#define EXT2_BAD_INO		 1	/* Bad blocks inode */
+#define EXT2_ROOT_INO		 2	/* Root inode */
+#define EXT2_ACL_IDX_INO	 3	/* ACL inode */
+#define EXT2_ACL_DATA_INO	 4	/* ACL inode */
+#define EXT2_BOOT_LOADER_INO	 5	/* Boot loader inode */
+#define EXT2_UNDEL_DIR_INO	 6	/* Undelete directory inode */
+
+/*
+ * Ext2 directory file types.  Only the low 3 bits are used.  The
+ * other bits are reserved for now.
+ */
+#define EXT2_FT_UNKNOWN		0
+#define EXT2_FT_REG_FILE	1
+#define EXT2_FT_DIR		2
+#define EXT2_FT_CHRDEV		3
+#define EXT2_FT_BLKDEV 		4
+#define EXT2_FT_FIFO		5
+#define EXT2_FT_SOCK		6
+#define EXT2_FT_SYMLINK		7
+
+/*
+ * Behaviour when detecting errors
+ */
+#define EXT2_ERRORS_CONTINUE		1	/* Continue execution */
+#define EXT2_ERRORS_RO			2	/* Remount fs read-only */
+#define EXT2_ERRORS_PANIC		3	/* Panic */
+#define EXT2_ERRORS_DEFAULT		EXT2_ERRORS_CONTINUE
+
+struct ext2_dir_entry_2
+{
+	uint32_t	inode;
+	uint16_t	rec_len;
+	uint8_t		name_len;
+	uint8_t		file_type;
+	char		name[255];
+};
+
+struct ext2_group_desc
+{
+	uint32_t	bg_block_bitmap;
+	uint32_t	bg_inode_bitmap;
+	uint32_t	bg_inode_table;
+	uint16_t	bg_free_blocks_count;
+	uint16_t	bg_free_inodes_count;
+	uint16_t	bg_used_dirs_count;
+	uint16_t	bg_pad;
+	uint32_t	bg_reserved[3];
+};
+
+struct ext2_inode
+{
+	uint16_t	i_mode;		/* File mode */
+	uint16_t	i_uid;		/* Owner Uid */
+	uint32_t	i_size;		/* Size in bytes */
+	uint32_t	i_atime;	/* Access time */
+	uint32_t	i_ctime;	/* Creation time */
+	uint32_t	i_mtime;	/* Modification time */
+	uint32_t	i_dtime;	/* Deletion Time */
+	uint16_t	i_gid;		/* Group Id */
+	uint16_t	i_links_count;	/* Links count */
+	uint32_t	i_blocks;	/* Blocks count */
+	uint32_t	i_flags;	/* File flags */
+	union {
+		struct {
+			uint32_t	l_i_reserved1;
+		} linux1;
+		struct {
+			uint32_t	h_i_translator;
+		} hurd1;
+		struct {
+			uint32_t	m_i_reserved1;
+		} masix1;
+	} osd1;			/* OS dependent 1 */
+	uint32_t	i_block[EXT2_N_BLOCKS];/* Pointers to blocks */
+	uint32_t	i_generation;	/* File version (for NFS) */
+	uint32_t	i_file_acl;	/* File ACL */
+	uint32_t	i_dir_acl;	/* Directory ACL */
+	uint32_t	i_faddr;	/* Fragment address */
+	union {
+		struct {
+			uint8_t		l_i_frag;	/* Fragment number */
+			uint8_t		l_i_fsize;	/* Fragment size */
+			uint16_t	i_pad1;
+			uint32_t	l_i_reserved2[2];
+		} linux2;
+		struct {
+			uint8_t		h_i_frag;	/* Fragment number */
+			uint8_t		h_i_fsize;	/* Fragment size */
+			uint16_t	h_i_mode_high;
+			uint16_t	h_i_uid_high;
+			uint16_t	h_i_gid_high;
+			uint32_t	h_i_author;
+		} hurd2;
+		struct {
+			uint8_t		m_i_frag;	/* Fragment number */
+			uint8_t		m_i_fsize;	/* Fragment size */
+			uint16_t	m_pad1;
+			uint32_t	m_i_reserved2[2];
+		} masix2;
+	} osd2;					/* OS dependent 2 */
+};
+
+#define i_size_high	i_dir_acl
+
+struct ext2_super_block
+{
+	uint32_t	s_inodes_count;		/* Inodes count */
+	uint32_t	s_blocks_count;		/* Blocks count */
+	uint32_t	s_r_blocks_count;	/* Reserved blocks count */
+	uint32_t	s_free_blocks_count;	/* Free blocks count */
+	uint32_t	s_free_inodes_count;	/* Free inodes count */
+	uint32_t	s_first_data_block;	/* First Data Block */
+	uint32_t	s_log_block_size;	/* Block size */
+	int32_t		s_log_frag_size;	/* Fragment size */
+	uint32_t	s_blocks_per_group;	/* # Blocks per group */
+	uint32_t	s_frags_per_group;	/* # Fragments per group */
+	uint32_t	s_inodes_per_group;	/* # Inodes per group */
+	uint32_t	s_mtime;		/* Mount time */
+	uint32_t	s_wtime;		/* Write time */
+	uint16_t	s_mnt_count;		/* Mount count */
+	int16_t		s_max_mnt_count;	/* Maximal mount count */
+	uint16_t	s_magic;		/* Magic signature */
+	uint16_t	s_state;		/* File system state */
+	uint16_t	s_errors;		/* Behaviour when detecting errors */
+	uint16_t	s_minor_rev_level;	/* minor revision level */
+	uint32_t	s_lastcheck;		/* time of last check */
+	uint32_t	s_checkinterval;	/* max. time between checks */
+	uint32_t	s_creator_os;		/* OS */
+	uint32_t	s_rev_level;		/* Revision level */
+	uint16_t	s_def_resuid;		/* Default uid for reserved blocks */
+	uint16_t	s_def_resgid;		/* Default gid for reserved blocks */
+	/*
+	 * These fields are for EXT2_DYNAMIC_REV superblocks only.
+	 *
+	 * Note: the difference between the compatible feature set and
+	 * the incompatible feature set is that if there is a bit set
+	 * in the incompatible feature set that the kernel doesn't
+	 * know about, it should refuse to mount the file system.
+	 * 
+	 * e2fsck's requirements are more strict; if it doesn't know
+	 * about a feature in either the compatible or incompatible
+	 * feature set, it must abort and not try to meddle with
+	 * things it doesn't understand...
+	 */
+	uint32_t	s_first_ino;		/* First non-reserved inode */
+	uint16_t	s_inode_size;		/* size of inode structure */
+	uint16_t	s_block_group_nr;	/* block group # of this superblock */
+	uint32_t	s_feature_compat;	/* compatible feature set */
+	uint32_t	s_feature_incompat;	/* incompatible feature set */
+	uint32_t	s_feature_ro_compat;	/* readonly-compatible feature set */
+	uint8_t		s_uuid[16];		/* 128-bit uuid for volume */
+	char		s_volume_name[16];	/* volume name */
+	char		s_last_mounted[64];	/* directory where last mounted */
+	uint32_t	s_algorithm_usage_bitmap;  /* For compression */
+	/*
+	 * Performance hints.  Directory preallocation should only
+	 * happen if the EXT2_COMPAT_PREALLOC flag is on.
+	 */
+	uint8_t		s_prealloc_blocks;	/* Nr of blocks to try to preallocate*/
+	uint8_t		s_prealloc_dir_blocks;	/* Nr to preallocate for dirs */
+	uint16_t	s_padding1;
+	/*
+	 * Journaling support valid if EXT2_FEATURE_COMPAT_HAS_JOURNAL set.
+	 */
+	uint8_t		s_journal_uuid[16];	/* uuid of journal superblock */
+	uint32_t	s_journal_inum;		/* inode number of journal file */
+	uint32_t	s_journal_dev;		/* device number of journal file */
+	uint32_t	s_last_orphan;		/* start of list of inodes to delete */
+
+	uint32_t	s_reserved[197];	/* Padding to the end of the block */
+};
+
+#define EXT2_DIRENT_INODE(dir_ent)	(PED_LE32_TO_CPU((dir_ent).inode))
+#define EXT2_DIRENT_REC_LEN(dir_ent)	(PED_LE16_TO_CPU((dir_ent).rec_len))
+#define EXT2_DIRENT_NAME_LEN(dir_ent)	((dir_ent).name_len)
+#define EXT2_DIRENT_FILE_TYPE(dir_ent)	((dir_ent).file_type)
+
+#define EXT2_GROUP_BLOCK_BITMAP(gd)	(PED_LE32_TO_CPU((gd).bg_block_bitmap))
+#define EXT2_GROUP_INODE_BITMAP(gd)	(PED_LE32_TO_CPU((gd).bg_inode_bitmap))
+#define EXT2_GROUP_INODE_TABLE(gd)	(PED_LE32_TO_CPU((gd).bg_inode_table))
+#define EXT2_GROUP_FREE_BLOCKS_COUNT(gd) \
+		(PED_LE16_TO_CPU((gd).bg_free_blocks_count))
+#define EXT2_GROUP_FREE_INODES_COUNT(gd) \
+		(PED_LE16_TO_CPU((gd).bg_free_inodes_count))
+#define EXT2_GROUP_USED_DIRS_COUNT(gd) \
+		(PED_LE16_TO_CPU((gd).bg_used_dirs_count))
+
+#define EXT2_INODE_MODE(inode)		(PED_LE16_TO_CPU((inode).i_mode))
+#define EXT2_INODE_UID(inode)		(PED_LE16_TO_CPU((inode).i_uid))
+#define EXT2_INODE_SIZE(inode) \
+	((uint64_t) PED_LE32_TO_CPU((inode).i_size) \
+	+ ((uint64_t) PED_LE32_TO_CPU((inode).i_size_high) << 32))
+#define EXT2_INODE_ATIME(inode)		(PED_LE32_TO_CPU((inode).i_atime))
+#define EXT2_INODE_CTIME(inode)		(PED_LE32_TO_CPU((inode).i_ctime))
+#define EXT2_INODE_MTIME(inode)		(PED_LE32_TO_CPU((inode).i_mtime))
+#define EXT2_INODE_DTIME(inode)		(PED_LE32_TO_CPU((inode).i_dtime))
+#define EXT2_INODE_GID(inode)		(PED_LE16_TO_CPU((inode).i_gid))
+#define EXT2_INODE_LINKS_COUNT(inode)	(PED_LE16_TO_CPU((inode).i_links_count))
+#define EXT2_INODE_BLOCKS(inode)	(PED_LE32_TO_CPU((inode).i_blocks))
+#define EXT2_INODE_FLAGS(inode)		(PED_LE32_TO_CPU((inode).i_flags))
+#define EXT2_INODE_TRANSLATOR(inode)	(PED_LE32_TO_CPU((inode).osd1.hurd1.h_i_translator))
+#define EXT2_INODE_BLOCK(inode, blk)	(PED_LE32_TO_CPU((inode).i_block[blk]))
+
+#define EXT2_SUPER_INODES_COUNT(sb)	(PED_LE32_TO_CPU((sb).s_inodes_count))
+#define EXT2_SUPER_BLOCKS_COUNT(sb)	(PED_LE32_TO_CPU((sb).s_blocks_count))
+#define EXT2_SUPER_R_BLOCKS_COUNT(sb)	(PED_LE32_TO_CPU((sb).s_r_blocks_count))
+#define EXT2_SUPER_FREE_BLOCKS_COUNT(sb) \
+		(PED_LE32_TO_CPU((sb).s_free_blocks_count))
+#define EXT2_SUPER_FREE_INODES_COUNT(sb) \
+		(PED_LE32_TO_CPU((sb).s_free_inodes_count))
+#define EXT2_SUPER_FIRST_DATA_BLOCK(sb) \
+		(PED_LE32_TO_CPU((sb).s_first_data_block))
+#define EXT2_SUPER_LOG_BLOCK_SIZE(sb)	(PED_LE32_TO_CPU((sb).s_log_block_size))
+#define EXT2_SUPER_LOG_FRAG_SIZE(sb) \
+		((int32_t) PED_LE32_TO_CPU((sb).s_log_frag_size))
+#define EXT2_SUPER_BLOCKS_PER_GROUP(sb)	\
+		(PED_LE32_TO_CPU((sb).s_blocks_per_group))
+#define EXT2_SUPER_FRAGS_PER_GROUP(sb) \
+	(PED_LE32_TO_CPU((sb).s_frags_per_group))
+#define EXT2_SUPER_INODES_PER_GROUP(sb)	\
+	(PED_LE32_TO_CPU((sb).s_inodes_per_group))
+#define EXT2_SUPER_MTIME(sb)		(PED_LE32_TO_CPU((sb).s_mtime))
+#define EXT2_SUPER_WTIME(sb)		(PED_LE32_TO_CPU((sb).s_wtime))
+#define EXT2_SUPER_MNT_COUNT(sb)	(PED_LE16_TO_CPU((sb).s_mnt_count))
+#define EXT2_SUPER_MAX_MNT_COUNT(sb) \
+		((int16_t) PED_LE16_TO_CPU((sb).s_max_mnt_count))
+#define EXT2_SUPER_MAGIC(sb)		(PED_LE16_TO_CPU((sb).s_magic))
+#define EXT2_SUPER_STATE(sb)		(PED_LE16_TO_CPU((sb).s_state))
+#define EXT2_SUPER_ERRORS(sb)		(PED_LE16_TO_CPU((sb).s_errors))
+#define EXT2_SUPER_MINOR_REV_LEVEL(sb) \
+		(PED_LE16_TO_CPU((sb).s_minor_rev_level))
+#define EXT2_SUPER_LASTCHECK(sb)	(PED_LE32_TO_CPU((sb).s_lastcheck))
+#define EXT2_SUPER_CHECKINTERVAL(sb)	(PED_LE32_TO_CPU((sb).s_checkinterval))
+#define EXT2_SUPER_CREATOR_OS(sb)	(PED_LE32_TO_CPU((sb).s_creator_os))
+#define EXT2_SUPER_REV_LEVEL(sb)	(PED_LE32_TO_CPU((sb).s_rev_level))
+#define EXT2_SUPER_DEF_RESUID(sb)	(PED_LE16_TO_CPU((sb).s_def_resuid))
+#define EXT2_SUPER_DEF_RESGID(sb)	(PED_LE16_TO_CPU((sb).s_def_resgid))
+
+#define EXT2_SUPER_FIRST_INO(sb)	(PED_LE32_TO_CPU((sb).s_first_ino))
+#define EXT2_SUPER_INODE_SIZE(sb)	(PED_LE16_TO_CPU((sb).s_inode_size))
+#define EXT2_SUPER_BLOCK_GROUP_NR(sb)	(PED_LE16_TO_CPU((sb).s_block_group_nr))
+#define EXT2_SUPER_FEATURE_COMPAT(sb)	(PED_LE32_TO_CPU((sb).s_feature_compat))
+#define EXT2_SUPER_FEATURE_INCOMPAT(sb) \
+		(PED_LE32_TO_CPU((sb).s_feature_incompat))
+#define EXT2_SUPER_FEATURE_RO_COMPAT(sb) \
+		(PED_LE32_TO_CPU((sb).s_feature_ro_compat))
+#define EXT2_SUPER_UUID(sb)		((sb).s_uuid)
+#define EXT2_SUPER_VOLUME_NAME(sb)	((sb).s_volume_name)
+#define EXT2_SUPER_LAST_MOUNTED(sb)	((sb).s_last_mounted)
+#define EXT2_SUPER_ALGORITHM_USAGE_BITMAP(sb) \
+		(PED_LE32_TO_CPU((sb).s_algorithm_usage_bitmap))
+
+#define EXT2_SUPER_JOURNAL_UUID(sb)	((sb).s_journal_uuid)
+#define EXT2_SUPER_JOURNAL_INUM(sb)	(PED_LE32_TO_CPU((sb).s_journal_inum))
+#define EXT2_SUPER_JOURNAL_DEV(sb)	(PED_LE32_TO_CPU((sb).s_journal_dev))
+#define EXT2_SUPER_LAST_ORPHAN(sb)	(PED_LE32_TO_CPU((sb).s_last_orphan))
+
+#endif
diff --git a/parted-1.8.7/libparted/fs/ext2/ext2_inode_relocator.c b/parted-1.8.7/libparted/fs/ext2/ext2_inode_relocator.c
new file mode 100644
index 0000000..d8e7e03
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/ext2/ext2_inode_relocator.c
@@ -0,0 +1,600 @@
+/*
+    ext2_inode_relocator.c -- ext2 inode relocator
+    Copyright (C) 1998-2000 Free Software Foundation, Inc.
+  
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#include <config.h>
+
+#ifndef DISCOVER_ONLY
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/stat.h>	/* for S_ISDIR */
+#include "ext2.h"
+
+
+
+
+
+
+struct ext2_reference
+{
+	blk_t			 block;
+	off_t			 offset;
+};
+
+struct ext2_inode_entry
+{
+	ino_t			 num;
+	ino_t			 dest;
+	unsigned		 numreferences:16;
+	unsigned		 isdir:1;
+	struct ext2_reference	*ref;
+};
+
+struct ext2_inode_relocator_state
+{
+	int			 usedentries;
+	int			 resolvedentries;
+	struct ext2_inode_entry	*inode;
+	struct ext2_reference	*last;
+};
+
+
+
+
+
+static struct ext2_inode_entry *findit(struct ext2_inode_relocator_state *state, ino_t inode)
+{
+	int			 min;
+	int			 max;
+	struct ext2_inode_entry *retv;
+	int			 t;
+	blk_t			 tval;
+
+	max = state->usedentries - 1;
+	min = 0;
+	retv = NULL;
+
+ repeat:
+	if (min > max)
+		goto out;
+
+	t = (min + max) >> 1;
+	tval = state->inode[t].num;
+
+	t--;
+	if (tval > inode)
+		max = t;
+
+	t += 2;
+	if (tval < inode)
+		min = t;
+
+	t--;
+
+	if (tval != inode)
+		goto repeat;
+
+	retv = &state->inode[t];
+
+ out:
+	return retv;
+}
+
+static int addref(struct ext2_fs *fs, struct ext2_inode_relocator_state *state, ino_t inode, blk_t block, off_t offset)
+{
+	struct ext2_inode_entry *ent;
+	int i;
+
+	if ((ent = findit(state, inode)) == NULL)
+		return 1;
+
+	for (i=0;i<ent->numreferences;i++)
+		if (!ent->ref[i].block)
+			break;
+
+	if (i == ent->numreferences)
+	{
+		ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("Found an inode with a incorrect link count.  "
+			  "Better go run e2fsck first!"));
+		return 0;
+	}
+
+	if (i == ent->numreferences - 1)
+		state->resolvedentries++;
+
+	ent->ref[i].block = block;
+	ent->ref[i].offset = offset;
+
+	return 1;
+}
+
+static int doblock(struct ext2_fs *fs, struct ext2_inode_relocator_state *state, blk_t blockno)
+{
+	struct ext2_buffer_head *bh;
+	off_t                    offset;
+
+	bh = ext2_bread(fs, blockno);
+	if (!bh)
+		return 0;
+
+	offset = 0;
+	do
+	{
+		struct ext2_dir_entry_2 *ptr;
+
+		ptr = (struct ext2_dir_entry_2 *)(bh->data + offset);
+
+		if (ptr->name_len)
+			if (!addref(fs, state, EXT2_DIRENT_INODE(*ptr), blockno,
+				    offset))
+				return 0;
+
+		PED_ASSERT (ptr->rec_len > 0, return 0);
+		offset += EXT2_DIRENT_REC_LEN (*ptr);
+	} while (offset < fs->blocksize);
+
+	ext2_brelse(bh, 0);
+	return 1;
+}
+
+static int doindblock(struct ext2_fs *fs, struct ext2_inode_relocator_state *state, blk_t blockno)
+{
+	struct ext2_buffer_head *bh;
+	blk_t			 blk;
+	int                      i;
+
+	bh = ext2_bread(fs, blockno);
+
+	for (i=0;i<(fs->blocksize>>2);i++)
+		if ((blk = PED_LE32_TO_CPU(((uint32_t *)bh->data)[i])) != 0)
+			if (!doblock(fs, state, blk))
+				return 0;
+
+	ext2_brelse(bh, 0);
+	return 1;
+}
+
+static int dodindblock(struct ext2_fs *fs, struct ext2_inode_relocator_state *state, blk_t blockno)
+{
+	struct ext2_buffer_head *bh;
+	blk_t			 blk;
+	int                      i;
+
+	bh = ext2_bread(fs, blockno);
+	if (!bh)
+		return 0;
+
+	for (i=0;i<(fs->blocksize>>2);i++)
+		if ((blk = PED_LE32_TO_CPU(((uint32_t *)bh->data)[i])) != 0)
+			if (!doindblock(fs, state, blk))
+				return 0;
+
+	ext2_brelse(bh, 0);
+	return 1;
+}
+
+static int dotindblock(struct ext2_fs *fs, struct ext2_inode_relocator_state *state, blk_t blockno)
+{
+	struct ext2_buffer_head *bh;
+	blk_t			 blk;
+	int                      i;
+
+	bh = ext2_bread(fs, blockno);
+	if (!bh)
+		return 0;
+
+	for (i=0;i<(fs->blocksize>>2);i++)
+		if ((blk = PED_LE32_TO_CPU(((uint32_t *)bh->data)[i])) != 0)
+			if (!dodindblock(fs, state, blk))
+				return 0;
+
+	ext2_brelse(bh, 0);
+	return 1;
+}
+
+static int doinode(struct ext2_fs *fs, struct ext2_inode_relocator_state *state, ino_t inode)
+{
+	struct ext2_inode buf;
+	int		  i;
+
+	if (!ext2_read_inode(fs, inode, &buf))
+		return 0;
+	if (S_ISDIR(EXT2_INODE_MODE(buf)))
+	{
+		blk_t blk;
+
+		for (i=0;i<EXT2_NDIR_BLOCKS;i++)
+			if ((blk = EXT2_INODE_BLOCK(buf, i)) != 0)
+				if (!doblock(fs, state, blk))
+					return 0;
+
+		if ((blk = EXT2_INODE_BLOCK(buf, EXT2_IND_BLOCK)) != 0)
+			if (!doindblock(fs, state, blk))
+				return 0;
+
+		if ((blk = EXT2_INODE_BLOCK(buf, EXT2_DIND_BLOCK)) != 0)
+			if (!dodindblock(fs, state, blk))
+				return 0;
+
+		if ((blk = EXT2_INODE_BLOCK(buf, EXT2_TIND_BLOCK)) != 0)
+			if (!dotindblock(fs, state, blk))
+				return 0;
+	}
+
+	return 1;
+}
+
+static int doscangroup(struct ext2_fs *fs, struct ext2_inode_relocator_state *state, int group)
+{
+	struct ext2_buffer_head *bh;
+	unsigned int		 i;
+	int			 offset;
+
+	if (fs->opt_verbose)
+		fprintf(stderr, " scanning group %i.... ", group);
+
+	bh = ext2_bread(fs, EXT2_GROUP_INODE_BITMAP(fs->gd[group]));
+	offset = group * EXT2_SUPER_INODES_PER_GROUP(fs->sb) + 1;
+
+	for (i=0;i<EXT2_SUPER_INODES_PER_GROUP(fs->sb);i++)
+		if (bh->data[i>>3] & _bitmap[i&7])
+		{
+			if (!doinode(fs, state, offset + i))
+			{
+				ext2_brelse(bh, 0);
+				return 0;
+			}
+
+			if (state->resolvedentries == state->usedentries)
+				break;
+		}
+
+	ext2_brelse(bh, 0);
+
+	if (fs->opt_verbose)
+		fprintf(stderr,
+			"%i/%i inodes resolved\r",
+			state->resolvedentries,
+			state->usedentries);
+
+	return 1;
+}
+
+/* basically: this builds a dependency graph of the inodes in the entire file
+ * system.  inodes are only referenced by the directory tree (or the magic
+ * ones implicitly, like the bad blocks inode), so we just walk the directory
+ * tree adding references.
+ */
+static int doscan(struct ext2_fs *fs, struct ext2_inode_relocator_state *state)
+{
+	int i;
+
+	/* while the journal will usually be inode 8 (and therefore will never
+	 * need to be moved), we don't have any guarantee (grrr).  So, we
+	 * need to be prepared to move it... (and update the reference in the
+	 * super block)
+	 */
+	if (fs->has_internal_journal)
+		addref(fs, state, EXT2_SUPER_JOURNAL_INUM(fs->sb),
+		       1, offsetof(struct ext2_super_block, s_journal_inum));
+
+	if (!doscangroup(fs, state, 0))
+		return 0;
+
+	if (state->resolvedentries != state->usedentries)
+		for (i=fs->numgroups-1;i>0;i--)
+		{
+			if (!doscangroup(fs, state, i))
+				return 0;
+
+			if (state->resolvedentries == state->usedentries)
+				break;
+		}
+
+	if (fs->opt_verbose)
+                fputc ('\n', stderr);
+
+	return 1;
+}
+
+
+
+
+
+
+
+static int ext2_inode_relocator_copy(struct ext2_fs *fs, struct ext2_inode_relocator_state *state)
+{
+	int i;
+
+	for (i=0;i<state->usedentries;i++)
+	{
+		struct ext2_inode buf;
+		struct ext2_inode_entry *entry;
+
+		entry = &state->inode[i];
+
+		if (fs->opt_debug)
+			if (!ext2_get_inode_state(fs, entry->num) ||
+			    ext2_get_inode_state(fs, entry->dest))
+                                fputs ("inodebitmaperror\n", stderr);
+
+		if (!ext2_read_inode(fs, entry->num, &buf))
+			return 0;
+		if (!ext2_write_inode(fs, entry->dest, &buf))
+			return 0;
+
+		entry->isdir = S_ISDIR(EXT2_INODE_MODE(buf))?1:0;
+	}
+
+	if (fs->opt_safe)
+		if (!ext2_sync(fs))
+			return 0;
+	return 1;
+}
+
+static int ext2_inode_relocator_finish(struct ext2_fs *fs, struct ext2_inode_relocator_state *state)
+{
+	int i;
+
+	for (i=0;i<state->usedentries;i++)
+	{
+		struct ext2_inode_entry *entry;
+
+		entry = &state->inode[i];
+		ext2_set_inode_state(fs, entry->dest, 1, 1);
+		ext2_set_inode_state(fs, entry->num, 0, 1);
+		ext2_zero_inode(fs, entry->num);
+	}
+
+	if (fs->opt_safe)
+		if (!ext2_sync(fs))
+			return 0;
+	return 1;
+}
+
+static int ext2_inode_relocator_ref(struct ext2_fs *fs, struct ext2_inode_relocator_state *state)
+{
+	int		i;
+	static int	numerrors = 0;
+
+	for (i=0;i<state->usedentries;i++)
+	{
+		struct ext2_inode_entry *entry;
+		int			 j;
+		uint32_t		 t;
+
+		entry = &state->inode[i];
+		t = entry->dest;
+
+		for (j=0;j<entry->numreferences;j++)
+		{
+			struct ext2_buffer_head *bh;
+
+			bh = ext2_bread(fs, entry->ref[j].block);
+			if (!bh)
+				return 0;
+
+			if (fs->opt_debug)
+			{
+				if (PED_LE32_TO_CPU((*((uint32_t *)(bh->data + entry->ref[j].offset)))) != entry->num)
+				{
+ 					fprintf(stderr,
+ 						"inode %li ref error! (->%li, [%i]={%i, %i})\n",
+						(long) entry->num,
+						(long) entry->dest,
+ 						j,
+ 						entry->ref[j].block,
+						(int) entry->ref[j].offset);
+					ext2_brelse(bh, 0);
+
+					if (numerrors++ < 4)
+						continue;
+
+					fputs ("all is not well!\n", stderr);
+					return 0;
+				}
+			}
+
+			*((uint32_t *)(bh->data + entry->ref[j].offset))
+				= PED_CPU_TO_LE32(t);
+			bh->dirty = 1;
+
+			ext2_brelse(bh, 0);
+		}
+
+		if (entry->isdir)
+		{
+			int oldgroup;
+			int newgroup;
+
+			oldgroup = (entry->num  - 1)
+					/ EXT2_SUPER_INODES_PER_GROUP(fs->sb);
+			newgroup = (entry->dest - 1)
+					/ EXT2_SUPER_INODES_PER_GROUP(fs->sb);
+
+			fs->gd[oldgroup].bg_used_dirs_count = PED_CPU_TO_LE16 (
+				EXT2_GROUP_USED_DIRS_COUNT(fs->gd[oldgroup])
+				- 1);
+			fs->gd[newgroup].bg_used_dirs_count = PED_CPU_TO_LE16 (
+				EXT2_GROUP_USED_DIRS_COUNT(fs->gd[newgroup])
+				+ 1);
+
+			fs->metadirty = EXT2_META_GD;
+		}
+	}
+
+	if (fs->opt_safe)
+		if (!ext2_sync(fs))
+			return 0;
+
+	return 1;
+}
+
+static int ext2_inode_relocator_grab_inodes(struct ext2_fs *fs, struct ext2_inode_relocator_state *state)
+{
+	int i;
+	int ptr;
+
+	ptr = 0;
+
+	for (i=0;i<fs->numgroups;i++)
+		if (EXT2_GROUP_FREE_INODES_COUNT(fs->gd[i]))
+		{
+			struct ext2_buffer_head *bh;
+			unsigned int j;
+			int offset;
+
+			bh = ext2_bread(fs, EXT2_GROUP_INODE_BITMAP(fs->gd[i]));
+			if (!bh)
+				return 0;
+			offset = i * EXT2_SUPER_INODES_PER_GROUP(fs->sb) + 1;
+
+			j = i ? 0 : 13;
+			for (;j<EXT2_SUPER_INODES_PER_GROUP(fs->sb);j++)
+				if (!(bh->data[j>>3] & _bitmap[j&7]))
+				{
+					state->inode[ptr++].dest = offset + j;
+
+					if (ptr == state->usedentries)
+					{
+						ext2_brelse(bh, 0);
+						return 1;
+					}
+				}
+
+			ext2_brelse(bh, 0);
+		}
+
+	ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			     _("Not enough free inodes!"));
+	return 0;
+}
+
+static int ext2_inode_relocator_flush(struct ext2_fs *fs, struct ext2_inode_relocator_state *state)
+{
+	if (!state->usedentries)
+		return 1;
+
+	if (!doscan(fs, state))
+		return 0;
+
+	if (!ext2_inode_relocator_grab_inodes(fs, state))
+		return 0;
+
+	if (!ext2_inode_relocator_copy(fs, state))
+		return 0;
+
+	if (!ext2_inode_relocator_ref(fs, state))
+		return 0;
+
+	if (!ext2_inode_relocator_finish(fs, state))
+		return 0;
+
+	state->usedentries = 0;
+	state->resolvedentries = 0;
+	state->last = (struct ext2_reference *)fs->relocator_pool_end;
+
+	if (fs->opt_safe)
+		if (!ext2_sync(fs))
+			return 0;
+
+	return 1;
+}
+
+static int ext2_inode_relocator_mark(struct ext2_fs *fs, struct ext2_inode_relocator_state *state, ino_t inode)
+{
+	struct ext2_inode	 buf;
+	struct ext2_inode_entry *ent;
+	int			 i;
+
+	if (!ext2_read_inode(fs, inode, &buf))
+		return 0;
+
+	{
+		register void *adv;
+		register void *rec;
+
+		adv = state->inode + state->usedentries + 1;
+		rec = state->last - EXT2_INODE_LINKS_COUNT(buf);
+
+		if (adv >= rec)
+			ext2_inode_relocator_flush(fs, state);
+	}
+
+	state->last -= EXT2_INODE_LINKS_COUNT(buf);
+
+	ent = &state->inode[state->usedentries];
+	ent->num = inode;
+	ent->dest = 0;
+	ent->numreferences = EXT2_INODE_LINKS_COUNT(buf);
+	ent->ref = state->last;
+
+	for (i=0;i<ent->numreferences;i++)
+	{
+		ent->ref[i].block = 0;
+		ent->ref[i].offset = 0;
+	}
+
+	state->usedentries++;
+
+	return 1;
+}
+
+
+int ext2_inode_relocate(struct ext2_fs *fs, int newgroups)
+{
+	int i;
+	struct ext2_inode_relocator_state state;
+
+	if (fs->opt_verbose)
+                fputs ("ext2_inode_relocate\n", stderr);
+
+	state.usedentries = 0;
+	state.resolvedentries = 0;
+	state.inode = (struct ext2_inode_entry *)fs->relocator_pool;
+	state.last = (struct ext2_reference *)fs->relocator_pool_end;
+
+	for (i=newgroups;i<fs->numgroups;i++)
+	{
+		struct ext2_buffer_head *bh;
+		unsigned int		 j;
+		int			 offset;
+
+		bh = ext2_bread(fs, EXT2_GROUP_INODE_BITMAP(fs->gd[i]));
+		if (!bh)
+			return 0;
+		offset = i * EXT2_SUPER_INODES_PER_GROUP(fs->sb) + 1;
+
+		for (j=0;j<EXT2_SUPER_INODES_PER_GROUP(fs->sb);j++)
+			if (bh->data[j>>3] & _bitmap[j&7])
+				ext2_inode_relocator_mark(fs, &state,
+							  offset + j);
+
+		ext2_brelse(bh, 0);
+	}
+
+	if (!ext2_inode_relocator_flush(fs, &state))
+		return 0;
+
+	return 1;
+}
+#endif /* !DISCOVER_ONLY */
+
diff --git a/parted-1.8.7/libparted/fs/ext2/ext2_meta.c b/parted-1.8.7/libparted/fs/ext2/ext2_meta.c
new file mode 100644
index 0000000..d48097c
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/ext2/ext2_meta.c
@@ -0,0 +1,146 @@
+/*
+    ext2_meta.c -- ext2 metadata mover
+    Copyright (C) 1998-2000 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#include <config.h>
+
+#ifndef DISCOVER_ONLY
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "ext2.h"
+
+int ext2_metadata_push(struct ext2_fs *fs, blk_t newsize)
+{
+	int   i;
+	int   newgdblocks;
+	blk_t newitoffset;
+
+	newgdblocks = ped_div_round_up (newsize
+                        - EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb),
+			      EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb));
+	newgdblocks = ped_div_round_up (newgdblocks
+                        * sizeof(struct ext2_group_desc),
+			      fs->blocksize);
+	newitoffset = newgdblocks + 3;
+
+	if (newitoffset <= fs->itoffset)
+		return 1;
+
+	for (i=0;i<fs->numgroups;i++)
+	{
+		blk_t diff;
+		blk_t j;
+		blk_t fromblock;
+		blk_t start;
+
+		start = (i * EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb))
+			+ EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb);
+
+		if (EXT2_GROUP_INODE_TABLE(fs->gd[i]) >= start + newitoffset
+		    && EXT2_GROUP_BLOCK_BITMAP(fs->gd[i]) >= start + newitoffset - 2
+		    && EXT2_GROUP_INODE_BITMAP(fs->gd[i]) >= start + newitoffset - 1)
+			continue;
+
+		diff = newitoffset - (EXT2_GROUP_INODE_TABLE(fs->gd[i]) - start);
+
+		/* inode table */
+		fromblock = EXT2_GROUP_INODE_TABLE(fs->gd[i]) + fs->inodeblocks;
+
+		if (fs->opt_debug)
+		{
+			for (j=0;j<diff;j++)
+				if (ext2_get_block_state(fs, fromblock+j))
+				{
+					fprintf(stderr,
+						"error: block relocator "
+						"should have relocated "
+						"%i\n",
+						fromblock);
+
+					return 0;
+				}
+		}
+
+		for (j=0;j<diff;j++)
+			if (!ext2_set_block_state(fs, fromblock+j, 1, 0))
+				return 0;
+
+		if (!ext2_move_blocks(fs,
+				      EXT2_GROUP_INODE_TABLE(fs->gd[i]),
+				      fs->inodeblocks,
+				      EXT2_GROUP_INODE_TABLE(fs->gd[i]) + diff))
+			return 0;
+		fs->gd[i].bg_inode_table = PED_CPU_TO_LE32 (
+			EXT2_GROUP_INODE_TABLE(fs->gd[i]) + diff);
+		fs->metadirty |= EXT2_META_GD;
+
+		if (fs->opt_safe)
+			if (!ext2_sync(fs))
+				return 0;
+
+		/* block bitmap and inode bitmap */
+		fromblock = EXT2_GROUP_INODE_TABLE(fs->gd[i]);
+		if (ext2_is_group_sparse(fs, i))
+		{
+			if (!ext2_copy_block(fs,
+				EXT2_GROUP_INODE_BITMAP(fs->gd[i]),
+				EXT2_GROUP_INODE_BITMAP(fs->gd[i]) + diff))
+				return 0;
+			fs->gd[i].bg_inode_bitmap = PED_CPU_TO_LE32 (
+				EXT2_GROUP_INODE_BITMAP(fs->gd[i]) + diff);
+                        fs->metadirty |= EXT2_META_GD;
+
+			if (fs->opt_safe)
+				if (!ext2_sync(fs))
+					return 0;
+
+			if (!ext2_copy_block(fs,
+				EXT2_GROUP_BLOCK_BITMAP(fs->gd[i]),
+				EXT2_GROUP_BLOCK_BITMAP(fs->gd[i])+diff))
+				return 0;
+			fs->gd[i].bg_block_bitmap = PED_CPU_TO_LE32 (
+				EXT2_GROUP_BLOCK_BITMAP(fs->gd[i]) + diff);
+			fs->metadirty |= EXT2_META_GD;
+
+			if (fs->opt_safe)
+				if (!ext2_sync(fs))
+					return 0;
+
+			fromblock = EXT2_GROUP_BLOCK_BITMAP(fs->gd[i]);
+		}
+
+		ext2_zero_blocks(fs, fromblock-diff, diff);
+		for (j=0;j<diff;j++)
+			if (!ext2_set_block_state(fs, fromblock+j-diff, 0, 0))
+				return 0;
+
+		if (fs->opt_verbose)
+			fprintf(stderr,
+				"ext2_metadata_push: group %i/%i\r",
+				i+1, fs->numgroups);
+	}
+
+	fs->itoffset = newitoffset;
+
+	if (fs->opt_verbose)
+                fputc ('\n', stderr);
+
+	return 1;
+}
+#endif /* !DISCOVER_ONLY */
diff --git a/parted-1.8.7/libparted/fs/ext2/ext2_mkfs.c b/parted-1.8.7/libparted/fs/ext2/ext2_mkfs.c
new file mode 100644
index 0000000..86175a8
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/ext2/ext2_mkfs.c
@@ -0,0 +1,600 @@
+/*
+    ext2_mkfs.c -- ext2 fs creator
+    Copyright (C) 1999, 2000, 2001, 2007 Free Software Foundation, Inc.
+  
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#include <config.h>
+
+#ifndef DISCOVER_ONLY
+
+#define USE_EXT2_IS_DATA_BLOCK
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <time.h>
+#include <unistd.h>
+#include <uuid/uuid.h>
+#include "ext2.h"
+
+/* formula grabbed from linux ext2 kernel source
+ * 
+ * returns 1 iff:
+ * 	x == y^N,       N is some natural number
+ * OR	x == 0
+ */
+static __inline__ int is_root(int x, int y)
+{
+	if (!x) return 1;
+
+	while (1)
+	{
+		if (x == 1) return 1;
+
+		if (x % y) return 0;
+
+		x /= y;
+	}
+}
+
+static __inline__ int is_group_sparse(int sparsesbfs, int group)
+{
+	if (!sparsesbfs)
+		return 1;
+
+	if (is_root(group, 3) || is_root(group, 5) || is_root(group, 7))
+		return 1;
+
+	return 0;
+}
+
+/* has implicit parameter 'sb' !! */
+#define is_sparse(group) is_group_sparse(EXT2_SUPER_FEATURE_RO_COMPAT(*sb) \
+	       			& EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER, (group))
+
+static int ext2_mkfs_write_main(struct ext2_dev_handle *handle,
+				struct ext2_super_block *sb,
+				struct ext2_group_desc *gd)
+{
+	int freeit;
+	int i;
+	int numgroups;
+	int gdblocks;
+	unsigned char *sbbuf;
+	struct ext2_super_block *sb_for_io;
+
+	freeit = 0;
+	sbbuf = (unsigned char *)sb;
+	sb_for_io = sb;
+	if (EXT2_SUPER_LOG_BLOCK_SIZE(*sb))
+	{
+		sbbuf = ped_malloc(1024 << EXT2_SUPER_LOG_BLOCK_SIZE(*sb));
+		if (!(handle->ops->read)(handle->cookie, sbbuf, 0, 1))
+			return 0;
+		memcpy (sbbuf+1024, sb, 1024);
+		freeit = 1;
+		sb_for_io = (struct ext2_super_block*) (sbbuf + 1024);
+	}
+
+	numgroups = ped_div_round_up (EXT2_SUPER_BLOCKS_COUNT(*sb)
+			        - EXT2_SUPER_FIRST_DATA_BLOCK(*sb),
+			    EXT2_SUPER_BLOCKS_PER_GROUP(*sb));
+	gdblocks = ped_div_round_up (numgroups * sizeof(struct ext2_group_desc),
+			   1024 << EXT2_SUPER_LOG_BLOCK_SIZE(*sb));
+
+	for (i=0;i<numgroups;i++)
+	{
+		if (is_sparse(i))
+		{
+			int offset;
+
+			offset = EXT2_SUPER_FIRST_DATA_BLOCK(*sb)
+				 + i * EXT2_SUPER_BLOCKS_PER_GROUP(*sb);
+
+			sb_for_io->s_block_group_nr = PED_CPU_TO_LE16 (i);
+
+			if (!handle->ops->write(handle->cookie, sbbuf,
+					        offset, 1))
+				return 0;
+			if (!handle->ops->write(handle->cookie, gd, offset+1,
+						gdblocks))
+				return 0;
+		}
+	}
+
+	sb_for_io->s_block_group_nr = 0;
+
+	if (freeit)
+		ped_free(sbbuf);
+	return 1;
+}
+
+static int ext2_mkfs_write_meta(struct ext2_dev_handle *handle,
+				struct ext2_super_block *sb,
+				struct ext2_group_desc *gd,
+				PedTimer* timer)
+{
+	int blocksize;
+	int gdtsize;
+	int i;
+	int itsize;
+	int numgroups;
+	unsigned char *bb;
+	unsigned char *ib;
+	unsigned char *zero;
+
+	blocksize = 1 << (EXT2_SUPER_LOG_BLOCK_SIZE(*sb) + 13);
+
+	numgroups = ped_div_round_up (EXT2_SUPER_BLOCKS_COUNT(*sb)
+				- EXT2_SUPER_FIRST_DATA_BLOCK(*sb),
+			    EXT2_SUPER_BLOCKS_PER_GROUP(*sb));
+	itsize = ped_div_round_up (sizeof(struct ext2_inode)
+				* EXT2_SUPER_INODES_PER_GROUP(*sb),
+			 (1024 << EXT2_SUPER_LOG_BLOCK_SIZE(*sb)));
+	gdtsize = ped_div_round_up (sizeof(struct ext2_group_desc) * numgroups,
+			  (1024 << EXT2_SUPER_LOG_BLOCK_SIZE(*sb)));
+
+	bb = ped_malloc(1024 << EXT2_SUPER_LOG_BLOCK_SIZE(*sb));
+	if (!bb) goto error;
+	ib = ped_malloc(1024 << EXT2_SUPER_LOG_BLOCK_SIZE(*sb));
+	if (!ib) goto error_free_bb;
+	zero = ped_malloc((1024 << EXT2_SUPER_LOG_BLOCK_SIZE(*sb)) * itsize);
+	if (!zero) goto error_free_zero;
+
+	memset(zero, 0, (1024 << EXT2_SUPER_LOG_BLOCK_SIZE(*sb)) * itsize);
+
+	ped_timer_reset (timer);
+	ped_timer_set_state_name (timer, _("writing per-group metadata"));
+
+	for (i=0;i<numgroups;i++)
+	{
+		int admin;
+		blk_t bbblock;
+		int groupsize;
+		int groupoffset;
+		blk_t ibblock;
+		int j;
+
+		ped_timer_update (timer, 1.0 * i / numgroups);
+
+		groupoffset = i*EXT2_SUPER_BLOCKS_PER_GROUP(*sb)
+			      + EXT2_SUPER_FIRST_DATA_BLOCK(*sb);
+		groupsize = PED_MIN(EXT2_SUPER_BLOCKS_COUNT(*sb) - groupoffset,
+				    EXT2_SUPER_BLOCKS_PER_GROUP(*sb));
+
+		admin = itsize + 2;
+		bbblock = groupoffset;
+		ibblock = groupoffset + 1;
+		if (is_sparse(i))
+		{
+			admin += gdtsize + 1;
+			bbblock = groupoffset + gdtsize + 1;
+			ibblock = groupoffset + gdtsize + 2;
+		}
+
+		{
+			memset(bb, 0, 1024 << EXT2_SUPER_LOG_BLOCK_SIZE(*sb));
+			if (is_sparse(i))
+				for (j=0;j<gdtsize+1;j++)
+					bb[j>>3] |= _bitmap[j&7];
+
+			j = bbblock - groupoffset;
+			bb[j>>3] |= _bitmap[j&7];
+
+			j = ibblock - groupoffset;
+			bb[j>>3] |= _bitmap[j&7];
+
+			for (j=0;j<itsize;j++)
+			{
+				int k = j + gdtsize + 3;
+
+				bb[k>>3] |= _bitmap[k&7];
+			}
+
+			for (j=groupsize;j<blocksize;j++)
+				bb[j>>3] |= _bitmap[j&7];
+
+			if (!handle->ops->write(handle->cookie, bb, bbblock, 1))
+				goto error_free_zero;
+		}
+
+		{
+			memset(ib, 0, 1024 << EXT2_SUPER_LOG_BLOCK_SIZE(*sb));
+
+			for (j=EXT2_SUPER_INODES_PER_GROUP(*sb);j<blocksize;j++)
+				bb[j>>3] |= _bitmap[j&7];
+
+			if (!handle->ops->write(handle->cookie, ib, ibblock, 1))
+				goto error_free_zero;
+		}
+
+		if (!handle->ops->write(handle->cookie, zero,
+					groupoffset + gdtsize + 3, itsize))
+			goto error_free_zero;
+
+		gd[i].bg_block_bitmap = PED_CPU_TO_LE32(bbblock);
+		gd[i].bg_inode_bitmap = PED_CPU_TO_LE32(ibblock);
+		gd[i].bg_inode_table = PED_CPU_TO_LE32(groupoffset + gdtsize
+						       + 3);
+		gd[i].bg_free_blocks_count = PED_CPU_TO_LE16(groupsize - admin);
+		gd[i].bg_free_inodes_count = PED_CPU_TO_LE16(
+			EXT2_SUPER_INODES_PER_GROUP(*sb));
+		gd[i].bg_used_dirs_count = 0;
+		gd[i].bg_used_dirs_count = 0;
+		gd[i].bg_pad = 0;
+		gd[i].bg_reserved[0] = 0;
+		gd[i].bg_reserved[1] = 0;
+		gd[i].bg_reserved[2] = 0;
+
+		sb->s_free_blocks_count = PED_CPU_TO_LE32 (
+			EXT2_SUPER_FREE_BLOCKS_COUNT(*sb)
+			+ EXT2_GROUP_FREE_BLOCKS_COUNT(gd[i]));
+	}
+
+	ped_timer_update (timer, 1.0);
+
+	ped_free(zero);
+	ped_free(ib);
+	ped_free(bb);
+	return 1;
+
+error_free_zero:
+	ped_free(zero);
+	ped_free(ib);
+error_free_bb:
+	ped_free(bb);
+error:
+	return 0;
+}
+
+/* returns the offset into the buffer of the start of the next dir entry */
+static int _set_dirent(void* buf, int offset, int block_size, int is_last,
+		       uint32_t inode, char* name, int file_type)
+{
+	struct ext2_dir_entry_2 *dirent = (void*) (((char*)buf) + offset);
+	int name_len = strlen(name);
+	int rec_len;
+
+	if (is_last)
+		rec_len = block_size - offset;
+	else
+		rec_len = ped_round_up_to(name_len + 1 + 8, 4);
+
+	memset (dirent, 0, rec_len);
+
+	dirent->inode = PED_CPU_TO_LE32(inode);
+	dirent->name_len = name_len;
+	dirent->rec_len = PED_CPU_TO_LE16(rec_len);
+	dirent->file_type = file_type;
+	strcpy(dirent->name, name);
+
+	return offset + rec_len;
+}
+
+static int ext2_mkfs_create_lost_and_found_inode(struct ext2_fs *fs)
+{
+	struct ext2_buffer_head *bh;
+	blk_t blocks[12];
+	uint32_t* data = ped_malloc ((fs->blocksize / 4) * sizeof(uint32_t));
+	int i;
+	struct ext2_inode inode;
+	int offset;
+
+	for (i=0;i<12;i++)
+	{
+		if (!(blocks[i] = ext2_find_free_block(fs)))
+			return 0;
+
+		if (!ext2_set_block_state(fs, blocks[i], 1, 1))
+			return 0;
+	}
+
+	/* create the directory entries, preallocating lots of blocks */
+	/* first block contains . and .. */
+	bh = ext2_bcreate(fs, blocks[0]);
+	if (!bh)
+		return 0;
+	memset(bh->data, 0, fs->blocksize);
+	offset = _set_dirent(bh->data, 0, fs->blocksize, 0,
+			     11, ".", EXT2_FT_DIR);
+	offset = _set_dirent(bh->data, offset, fs->blocksize, 1,
+			     EXT2_ROOT_INO, "..", EXT2_FT_DIR);
+	bh->dirty = 1;
+	ext2_brelse(bh, 1);
+
+	/* subsequent blocks are empty */
+	memset(data, 0, fs->blocksize);
+	data[0] = 0;
+	data[1] = PED_CPU_TO_LE32(fs->blocksize);
+	for (i=1;i<12;i++)
+	{
+		bh = ext2_bcreate(fs, blocks[i]);
+		memcpy(bh->data, data, fs->blocksize);
+		bh->dirty = 1;
+		ext2_brelse(bh, 1);
+	}
+
+	/* create inode */
+	memset(&inode, 0, sizeof(struct ext2_inode));
+	inode.i_mode = PED_CPU_TO_LE16(S_IFDIR | 0755);
+	inode.i_uid = 0;
+	inode.i_size = PED_CPU_TO_LE32(12 * fs->blocksize);
+	inode.i_atime = PED_CPU_TO_LE32(time(NULL));
+	inode.i_ctime = PED_CPU_TO_LE32(time(NULL));
+	inode.i_mtime = PED_CPU_TO_LE32(time(NULL));
+	inode.i_dtime = 0;
+	inode.i_gid = 0;
+	inode.i_links_count = PED_CPU_TO_LE16(2);
+	inode.i_blocks = PED_CPU_TO_LE32((12 * fs->blocksize) >> 9);
+	inode.i_flags = 0;
+	for (i=0;i<12;i++)
+		inode.i_block[i] = PED_CPU_TO_LE32(blocks[i]);
+
+	if (!ext2_write_inode(fs, 11, &inode))
+		return 0;
+	fs->gd[0].bg_used_dirs_count = PED_CPU_TO_LE16(
+		EXT2_GROUP_USED_DIRS_COUNT(fs->gd[0]) + 1);
+	fs->metadirty |= EXT2_META_GD;
+
+	return 1;
+}
+
+static int ext2_mkfs_create_root_inode(struct ext2_fs *fs)
+{
+	struct ext2_buffer_head *bh;
+	blk_t block;
+	struct ext2_inode inode;
+	int offset;
+
+	if (!(block = ext2_find_free_block(fs)))
+		return 0;
+	if (!ext2_set_block_state(fs, block, 1, 1))
+		return 0;
+
+	/* create directory entries */
+	bh = ext2_bcreate(fs, block);
+	memset(bh->data, 0, fs->blocksize);
+	offset = _set_dirent(bh->data, 0, fs->blocksize, 0,
+			     EXT2_ROOT_INO, ".", EXT2_FT_DIR);
+	offset = _set_dirent(bh->data, offset, fs->blocksize, 0,
+			     EXT2_ROOT_INO, "..", EXT2_FT_DIR);
+	offset = _set_dirent(bh->data, offset, fs->blocksize, 1,
+			     11, "lost+found", EXT2_FT_DIR);
+	bh->dirty = 1;
+	if (!ext2_brelse(bh, 1))
+		return 0;
+
+	/* create inode */
+	memset(&inode, 0, sizeof(struct ext2_inode));
+	inode.i_mode = PED_CPU_TO_LE16(S_IFDIR | 0755);
+	inode.i_uid = 0;
+	inode.i_size = PED_CPU_TO_LE32(fs->blocksize);
+	inode.i_atime = PED_CPU_TO_LE32(time(NULL));
+	inode.i_ctime = PED_CPU_TO_LE32(time(NULL));
+	inode.i_mtime = PED_CPU_TO_LE32(time(NULL));
+	inode.i_dtime = 0;
+	inode.i_gid = 0;
+	inode.i_links_count = PED_CPU_TO_LE16(3);
+	inode.i_blocks = PED_CPU_TO_LE32(fs->blocksize >> 9);
+	inode.i_flags = 0;
+	inode.i_block[0] = PED_CPU_TO_LE32(block);
+
+	if (!ext2_write_inode(fs, 2, &inode))
+		return 0;
+	fs->gd[0].bg_used_dirs_count = PED_CPU_TO_LE16 (
+		EXT2_GROUP_USED_DIRS_COUNT(fs->gd[0]) + 1);
+	fs->metadirty |= EXT2_META_GD;
+
+	return 1;
+}
+
+static int ext2_reserve_inodes(struct ext2_fs *fs)
+{
+	int i;
+
+	for (i=1;i<12;i++)
+		if (!ext2_set_inode_state(fs, i, 1, 1))
+			return 0;
+	return 1;
+}
+
+static int ext2_mkfs_init_sb (struct ext2_super_block *sb, blk_t numblocks,
+			      int numgroups, int first_block,
+			      int log_block_size, blk_t blocks_per_group,
+			      int inodes_per_group, int sparse_sb,
+			      int reserved_block_percentage)
+{
+	/* catch a bug in gcc 2.95.2 */
+	PED_ASSERT(numgroups != 0, return 0);
+
+	memset(sb, 0, 1024);
+
+	sb->s_inodes_count = PED_CPU_TO_LE32(numgroups * inodes_per_group);
+	sb->s_blocks_count = PED_CPU_TO_LE32(numblocks);
+	sb->s_r_blocks_count = PED_CPU_TO_LE32(((uint64_t)numblocks
+				* reserved_block_percentage) / 100);
+
+	/* hack: this get's inc'd as we go through each group in
+	 * ext2_mkfs_write_meta()
+	 */
+	sb->s_free_blocks_count = 0;
+	sb->s_free_inodes_count = PED_CPU_TO_LE32 (numgroups
+							* inodes_per_group);
+	sb->s_first_data_block = PED_CPU_TO_LE32(first_block);
+	sb->s_log_block_size = PED_CPU_TO_LE32(log_block_size - 10);
+	sb->s_log_frag_size = sb->s_log_block_size;
+	sb->s_blocks_per_group = PED_CPU_TO_LE32(blocks_per_group);
+	sb->s_frags_per_group = PED_CPU_TO_LE32(blocks_per_group);
+	sb->s_inodes_per_group = PED_CPU_TO_LE32(inodes_per_group);
+	sb->s_mtime = 0;
+	sb->s_wtime = 0;
+	sb->s_mnt_count = 0;
+	sb->s_max_mnt_count = PED_CPU_TO_LE16(30);
+	sb->s_magic = PED_CPU_TO_LE16(0xEF53);
+	sb->s_state = PED_CPU_TO_LE16(EXT2_VALID_FS);
+	sb->s_errors = PED_CPU_TO_LE16(EXT2_ERRORS_DEFAULT);
+	sb->s_minor_rev_level = 0;
+	sb->s_lastcheck = 0;
+	sb->s_checkinterval = 0;
+	sb->s_creator_os = 0;
+	sb->s_rev_level = PED_CPU_TO_LE32(1);
+	sb->s_def_resuid = 0;
+	sb->s_def_resgid = 0;
+	sb->s_first_ino = PED_CPU_TO_LE32(11);
+	sb->s_inode_size = PED_CPU_TO_LE16(128);
+	sb->s_block_group_nr = 0;
+	sb->s_feature_compat = 0;
+	sb->s_feature_incompat = 0;
+	sb->s_feature_ro_compat = 0;
+	if (sparse_sb)
+		sb->s_feature_ro_compat
+			|= PED_CPU_TO_LE32(EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER);
+
+/* FIXME: let the user decide? _set_dirent() assumes FILETYPE */
+	sb->s_feature_incompat
+		|= PED_CPU_TO_LE32(EXT2_FEATURE_INCOMPAT_FILETYPE);
+
+	uuid_generate(sb->s_uuid);
+	memset(sb->s_volume_name, 0, 16);
+	memset(sb->s_last_mounted, 0, 64);
+	sb->s_algorithm_usage_bitmap = 0;
+	sb->s_prealloc_blocks = 0;
+	sb->s_prealloc_dir_blocks = 0;
+	sb->s_padding1 = 0;
+
+	return 1;
+}
+
+struct ext2_fs *ext2_mkfs(struct ext2_dev_handle *handle,
+			  blk_t numblocks,
+			  int log_block_size,
+			  blk_t blocks_per_group,
+			  int inodes_per_group,
+			  int sparse_sb,
+			  int reserved_block_percentage,
+			  PedTimer* timer)
+{
+	struct ext2_fs *fs;
+	struct ext2_super_block sb;
+	struct ext2_group_desc *gd;
+	int numgroups;
+	int first_block;
+	int non_sparse_admin;
+	int sparse_admin;
+	int last_group_blocks;
+	int last_group_admin;
+        
+	/* if the FS is > 512Mb, use 4k blocks, otherwise 1k blocks */
+	if (log_block_size == 0) {
+		handle->ops->set_blocksize(handle->cookie, 12);
+		if (handle->ops->get_size(handle->cookie) > (512 * 1024))
+			log_block_size = 12;
+		else
+			log_block_size = 10;
+	}
+
+        /* FIXME: block size must be > MAX(logicalbs, physicalbs)
+         * to avoid modify-on-write.
+         *      -- Leslie
+         */ 
+
+        
+	handle->ops->set_blocksize(handle->cookie, log_block_size);
+
+	if (numblocks == 0)
+		numblocks = handle->ops->get_size(handle->cookie);
+
+	if (blocks_per_group == (unsigned int) 0)
+		blocks_per_group = 8 << log_block_size;
+
+	first_block = (log_block_size == 10) ? 1 : 0;
+
+	numgroups = ped_div_round_up (numblocks
+                        - first_block, blocks_per_group);
+
+	if (inodes_per_group == 0)
+		inodes_per_group = ped_round_up_to (
+			numblocks / numgroups / 2,
+			(1 << log_block_size) / sizeof(struct ext2_inode));
+
+	if (sparse_sb == -1)
+		sparse_sb = 1;
+
+        /* FIXME: 5% not appropriate for modern drive sizes */
+	if (reserved_block_percentage == -1)
+		reserved_block_percentage = 5;
+
+	last_group_blocks = (numblocks - first_block) % blocks_per_group;
+	if (!last_group_blocks) last_group_blocks = blocks_per_group;
+	non_sparse_admin = 2
+			   + inodes_per_group * sizeof(struct ext2_inode)
+			   	/ (1 << log_block_size);
+	sparse_admin = non_sparse_admin
+		       + ped_div_round_up (numgroups
+                                       * sizeof(struct ext2_group_desc),
+				  1 << log_block_size);
+	last_group_admin = is_group_sparse(sparse_sb, numgroups - 1)
+			   ? sparse_admin : non_sparse_admin;
+	if (last_group_admin >= last_group_blocks) {
+		numgroups--;
+		numblocks -= last_group_blocks;
+	}
+	if (!numgroups
+	    || (numgroups == 1
+		    && (last_group_blocks - last_group_admin < 8
+	    		|| inodes_per_group < 16))) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("File system too small for ext2."));
+		goto error;
+	}
+
+	gd = ped_malloc(numgroups * sizeof(struct ext2_group_desc)
+			+ (1 << log_block_size));
+	if (!gd)
+		goto error;
+
+	if (!ext2_mkfs_init_sb(&sb, numblocks, numgroups, first_block,
+			       log_block_size, blocks_per_group,
+			       inodes_per_group, sparse_sb,
+			       reserved_block_percentage))
+       		goto error_free_gd;
+	if (!ext2_mkfs_write_meta(handle, &sb, gd, timer))
+       		goto error_free_gd;
+	if (!ext2_mkfs_write_main(handle, &sb, gd))
+       		goto error_free_gd;
+
+	fs = ext2_open(handle, 0);
+	if (!fs) goto error_close_fs;
+	if (!ext2_reserve_inodes(fs)) goto error_close_fs;
+	if (!ext2_mkfs_create_root_inode(fs)) goto error_close_fs;
+	if (!ext2_mkfs_create_lost_and_found_inode(fs))
+		goto error_close_fs;
+	if (!ext2_sync(fs)) goto error_close_fs;
+	ped_free(gd);
+	return fs;
+
+error_close_fs:
+	ext2_close(fs);
+error_free_gd:
+	ped_free (gd);
+error:
+	return NULL;
+}
+#endif /* !DISCOVER_ONLY */
diff --git a/parted-1.8.7/libparted/fs/ext2/ext2_resize.c b/parted-1.8.7/libparted/fs/ext2/ext2_resize.c
new file mode 100644
index 0000000..d6b3b14
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/ext2/ext2_resize.c
@@ -0,0 +1,731 @@
+/*
+    ext2_resize.c -- ext2 resizer
+    Copyright (C) 1998-2000 Free Software Foundation, Inc.
+  
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#include <config.h>
+
+#ifndef DISCOVER_ONLY
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "ext2.h"
+
+static int ext2_add_group(struct ext2_fs *fs, blk_t groupsize)
+{
+	blk_t admin;
+	int   group;
+	blk_t groupstart;
+	blk_t newgdblocks;
+	int   sparse;
+
+	if (fs->opt_verbose)
+                fputs ("ext2_add_group\n", stderr);
+
+	if (!ped_realloc ((void*) &fs->gd,
+			  (fs->numgroups+1) * sizeof(struct ext2_group_desc)
+			      + fs->blocksize))
+		return 0;
+
+	if (fs->opt_debug)
+	{
+		if (EXT2_SUPER_BLOCKS_COUNT(fs->sb) !=
+		    EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb)
+		    + fs->numgroups * EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb))
+		{
+                        fputs ("ext2_add_group: last (existing) group "
+                               "isn't complete!\n", stderr);
+
+			return 0;
+		}
+	}
+
+	group = fs->numgroups;
+	sparse = ext2_is_group_sparse(fs, group);
+	groupstart = EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb)
+		     + group * EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb);
+
+	admin = fs->adminblocks;
+	if (!sparse)
+		admin -= fs->gdblocks + 1;
+
+	if (fs->opt_debug)
+	{
+		if (groupsize < fs->adminblocks ||
+		    groupsize > EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb))
+		{
+			fprintf(stderr,
+				"ext2_add_group: groups of %i blocks are "
+				"impossible!\n", groupsize);
+
+			return 0;
+		}
+	}
+
+	newgdblocks = ped_div_round_up((fs->numgroups + 1)
+					* sizeof(struct ext2_group_desc),
+			      fs->blocksize);
+	if (newgdblocks != fs->gdblocks)
+	{
+		int i;
+
+		for (i=0;i<fs->numgroups;i++)
+			if (ext2_is_group_sparse(fs, i))
+			{
+				blk_t start;
+
+				start = EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb)
+				      + i * EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb);
+				ext2_set_block_state(fs,
+						start + fs->gdblocks + 1, 1, 1);
+			}
+
+		fs->gdblocks++;
+		fs->adminblocks++;
+		if (sparse)
+			admin++;
+	}
+
+	fs->numgroups++;
+
+	fs->sb.s_inodes_count = PED_CPU_TO_LE32(
+		EXT2_SUPER_INODES_COUNT(fs->sb)
+		+ EXT2_SUPER_INODES_PER_GROUP(fs->sb));
+	fs->sb.s_blocks_count = PED_CPU_TO_LE32(
+		EXT2_SUPER_BLOCKS_COUNT(fs->sb) + groupsize);
+	fs->sb.s_free_blocks_count = PED_CPU_TO_LE32(
+		EXT2_SUPER_FREE_BLOCKS_COUNT(fs->sb) + groupsize - admin);
+	fs->sb.s_free_inodes_count = PED_CPU_TO_LE32(
+		EXT2_SUPER_FREE_INODES_COUNT(fs->sb)
+	        + EXT2_SUPER_INODES_PER_GROUP(fs->sb));
+	fs->metadirty |= EXT2_META_SB;
+
+	{
+		blk_t off;
+		blk_t sparseoff;
+
+		off = groupstart;
+		sparseoff = off + fs->itoffset - 2;
+
+		if (sparse)
+		{
+			fs->gd[group].bg_block_bitmap
+				= PED_CPU_TO_LE32(sparseoff);
+			fs->gd[group].bg_inode_bitmap
+				= PED_CPU_TO_LE32(sparseoff + 1);
+		}
+		else
+		{
+			fs->gd[group].bg_block_bitmap
+				= PED_CPU_TO_LE32(off);
+			fs->gd[group].bg_inode_bitmap
+				= PED_CPU_TO_LE32(off + 1);
+		}
+
+		/* Hey, I don't know _why_ either */
+		fs->gd[group].bg_inode_table = PED_CPU_TO_LE32(sparseoff + 2);
+	}
+
+	fs->gd[group].bg_free_blocks_count = PED_CPU_TO_LE16(groupsize - admin);
+	fs->gd[group].bg_free_inodes_count = PED_CPU_TO_LE16(
+		EXT2_SUPER_INODES_PER_GROUP(fs->sb));
+	fs->gd[group].bg_used_dirs_count = 0;
+	fs->metadirty |= EXT2_META_SB | EXT2_META_GD;
+
+	{
+		struct ext2_buffer_head *bh;
+		blk_t i;
+
+		bh = ext2_bcreate(fs, EXT2_GROUP_BLOCK_BITMAP(fs->gd[group]));
+		if (!bh)
+			return 0;
+
+		if (sparse)
+		{
+			bh->data[0] |= _bitmap[0];
+			for (i=1;i<=fs->gdblocks;i++)
+				bh->data[i>>3] |= _bitmap[i&7];
+		}
+
+		i = EXT2_GROUP_BLOCK_BITMAP(fs->gd[group]) - groupstart;
+		bh->data[i>>3] |= _bitmap[i&7];
+
+		i = EXT2_GROUP_INODE_BITMAP(fs->gd[group]) - groupstart;
+		bh->data[i>>3] |= _bitmap[i&7];
+
+		for (i=0;i<fs->inodeblocks;i++)
+		{
+			blk_t j;
+
+			j = EXT2_GROUP_INODE_TABLE(fs->gd[group])
+			    - groupstart + i;
+			bh->data[j>>3] |= _bitmap[j&7];
+		}
+
+		for (i=groupsize;i<EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb);i++)
+			bh->data[i>>3] |= _bitmap[i&7];
+
+		ext2_brelse(bh, 0);         /* this is a block bitmap */
+	}
+
+	if (!ext2_zero_blocks(fs, EXT2_GROUP_INODE_BITMAP(fs->gd[group]), 1))
+		return 0;
+	if (!ext2_zero_blocks(fs, EXT2_GROUP_INODE_TABLE(fs->gd[group]),
+			      fs->inodeblocks))
+		return 0;
+
+	if (fs->opt_safe)
+		if (!ext2_sync(fs))
+			return 0;
+
+	return 1;
+}
+
+static int ext2_del_group(struct ext2_fs *fs)
+{
+	blk_t admin;
+	int   group;
+	blk_t groupsize;
+	blk_t newgdblocks;
+	int   sparse;
+
+	if (fs->opt_verbose)
+                fputs ("ext2_del_group\n", stderr);
+
+	group = fs->numgroups - 1;
+	sparse = ext2_is_group_sparse(fs, group);
+
+	admin = fs->adminblocks;
+	if (!sparse)
+		admin -= fs->gdblocks + 1;
+
+	groupsize = EXT2_SUPER_BLOCKS_COUNT(fs->sb)
+		  - EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb)
+		  - group * EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb);
+
+	if (EXT2_SUPER_FREE_BLOCKS_COUNT(fs->sb) < groupsize - admin)
+	{
+		ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("File system is too full to remove a group!"));
+
+		return 0;
+	}
+
+	if (EXT2_SUPER_FREE_INODES_COUNT(fs->sb)
+		< EXT2_SUPER_INODES_PER_GROUP(fs->sb))
+	{
+		ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("File system has too many allocated inodes to "
+			  "remove a group!"));
+		return 0;
+	}
+
+	if (fs->opt_debug)
+	{
+		if (EXT2_GROUP_FREE_INODES_COUNT(fs->gd[group]) !=
+		    EXT2_SUPER_INODES_PER_GROUP(fs->sb))
+		{
+                        fputs ("ext2_del_group: this should not "
+                               "happen anymore!\n", stderr);
+
+			return 0;
+		}
+	}
+
+	newgdblocks = ped_div_round_up((fs->numgroups - 1) *
+			      sizeof(struct ext2_group_desc), fs->blocksize);
+
+	if (newgdblocks != fs->gdblocks)
+	{
+		int i;
+
+		for (i=0;i<fs->numgroups;i++)
+			if (ext2_is_group_sparse(fs, i))
+			{
+				blk_t start;
+
+				start = EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb) +
+					i * EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb);
+				ext2_set_block_state(fs,
+						     start + fs->gdblocks,
+						     0, 1);
+			}
+
+		fs->gdblocks--;
+		fs->adminblocks--;
+		if (sparse)
+			admin--;
+	}
+
+	if (fs->opt_debug)
+	{
+		if (EXT2_GROUP_FREE_BLOCKS_COUNT(fs->gd[group])
+				!= groupsize - admin)
+		{
+			blk_t i;
+			blk_t num;
+			blk_t offset;
+
+			offset = EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb) +
+				group * EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb);
+			num = EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb);
+
+			for (i=0;i<num;i++)
+				if (ext2_is_data_block(fs, offset+i) &&
+				    ext2_get_block_state(fs, offset+i))
+				{
+					fprintf(stderr,
+						"error: block relocator "
+						"should have relocated "
+						"%i\n",
+						offset+i);
+
+					return 0;
+				}
+		}
+	}
+
+	fs->numgroups--;
+
+	fs->sb.s_inodes_count = PED_CPU_TO_LE32(
+		EXT2_SUPER_INODES_COUNT(fs->sb)
+		- EXT2_SUPER_INODES_PER_GROUP(fs->sb));
+	fs->sb.s_blocks_count = PED_CPU_TO_LE32(
+		EXT2_SUPER_BLOCKS_COUNT(fs->sb) - groupsize);
+	fs->sb.s_free_blocks_count = PED_CPU_TO_LE32(
+		EXT2_SUPER_FREE_BLOCKS_COUNT(fs->sb) - (groupsize - admin));
+	fs->sb.s_free_inodes_count = PED_CPU_TO_LE32(
+		EXT2_SUPER_FREE_INODES_COUNT(fs->sb)
+	        - EXT2_SUPER_INODES_PER_GROUP(fs->sb));
+	fs->metadirty |= EXT2_META_SB;
+
+	if (fs->opt_safe)
+		ext2_sync(fs);
+
+	ped_realloc ((void*) &fs->gd,
+		     fs->numgroups * sizeof(struct ext2_group_desc)
+			      + fs->blocksize);
+
+	return 1;
+}
+
+static int ext2_grow_group(struct ext2_fs *fs, blk_t newsize)
+{
+	int   group;
+	blk_t groupoff;
+	blk_t gblocks;
+	blk_t i;
+
+	if (fs->opt_verbose)
+                fputs ("ext2_grow_group\n", stderr);
+
+	group = fs->numgroups - 1;
+	groupoff = group * EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb)
+		   + EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb);
+	gblocks = EXT2_SUPER_BLOCKS_COUNT(fs->sb) - groupoff;
+
+	if (fs->opt_debug)
+	{
+		if (newsize < gblocks)
+		{
+                        fputs ("ext2_grow_group: called to shrink group!\n",
+                               stderr);
+
+			return 0;
+		}
+
+		if (gblocks == newsize)
+		{
+                        fputs ("ext2_grow_group: nothing to do!\n", stderr);
+			return 0;
+		}
+	}
+
+	for (i=gblocks;i<newsize;i++)
+		ext2_set_block_state(fs, groupoff + i, 0, 1);
+
+	fs->sb.s_blocks_count = PED_CPU_TO_LE32(
+		EXT2_SUPER_BLOCKS_COUNT(fs->sb) + newsize - gblocks);
+	fs->metadirty |= EXT2_META_SB;
+
+	if (fs->opt_safe)
+		ext2_sync(fs);
+
+	return 1;
+}
+
+static int ext2_shrink_group(struct ext2_fs *fs, blk_t newsize)
+{
+	blk_t admin;
+	int   group;
+	blk_t groupoff;
+	blk_t gblocks;
+	blk_t i;
+
+	if (fs->opt_verbose)
+                fputs ("ext2_shrink_group\n", stderr);
+
+	group = fs->numgroups - 1;
+
+	admin = fs->adminblocks;
+	if (!ext2_is_group_sparse(fs, group))
+		admin -= fs->gdblocks + 1;
+
+	groupoff = group * EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb)
+		   + EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb);
+	gblocks = EXT2_SUPER_BLOCKS_COUNT(fs->sb) - groupoff;
+
+	if (fs->opt_debug)
+	{
+		if (newsize < admin)
+		{
+			fprintf(stderr,
+				"ext2_shrink_group: cant shrink a group "
+				"to %i blocks\n", newsize);
+
+			return 0;
+		}
+
+		if (newsize > gblocks)
+		{
+                        fputs ("ext2_shrink_group: called to grow group!\n",
+                               stderr);
+
+			return 0;
+		}
+
+		if (gblocks == newsize)
+		{
+                        fputs ("ext2_shrink_group: nothing to do!\n",
+                               stderr);
+
+			return 0;
+		}
+	}
+
+	for (i=newsize;i<gblocks;i++)
+	{
+		if (fs->opt_debug && ext2_get_block_state(fs, groupoff + i))
+		{
+			fprintf(stderr,
+				"error: block relocator should have relocated "
+				"%i\n",
+				groupoff + i);
+
+			return 0;
+		}
+
+		ext2_set_block_state(fs, groupoff + i, 1, 0);
+	}
+
+	i = gblocks - newsize;
+	fs->sb.s_blocks_count = PED_CPU_TO_LE32(
+		EXT2_SUPER_BLOCKS_COUNT(fs->sb) - i);
+	fs->sb.s_free_blocks_count = PED_CPU_TO_LE32(
+		EXT2_SUPER_FREE_BLOCKS_COUNT(fs->sb) - i);
+	fs->gd[group].bg_free_blocks_count = PED_CPU_TO_LE16(
+		EXT2_GROUP_FREE_BLOCKS_COUNT(fs->gd[group]) - i);
+
+	fs->metadirty |= EXT2_META_SB | EXT2_META_GD;
+
+	if (fs->opt_safe)
+		ext2_sync(fs);
+
+	return 1;
+}
+
+
+
+
+
+
+static int ext2_grow_fs(struct ext2_fs *fs, blk_t newsize, PedTimer* timer)
+{
+	blk_t diff;
+	blk_t sizelast;
+	blk_t origsize = EXT2_SUPER_BLOCKS_COUNT(fs->sb);
+
+	if (fs->opt_verbose)
+                fputs ("ext2_grow_fs\n", stderr);
+
+	if (!ext2_block_relocate(fs, newsize))
+		return 0;
+
+	if (!ext2_metadata_push(fs, newsize))
+		return 0;
+
+	diff = newsize - EXT2_SUPER_BLOCKS_COUNT(fs->sb);
+	sizelast = EXT2_SUPER_BLOCKS_COUNT(fs->sb)
+		   - EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb)
+		   - (fs->numgroups-1) * EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb);
+
+	if (sizelast != EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb))
+	{
+		blk_t growto;
+
+		growto = sizelast + diff;
+		if (growto > EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb))
+			growto = EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb);
+
+		if (!ext2_grow_group(fs, growto))
+			return 0;
+
+		diff -= growto - sizelast;
+	}
+
+	ped_timer_reset (timer);
+	ped_timer_set_state_name (timer, _("adding groups"));
+
+	while (diff)
+	{
+		ped_timer_update (timer,
+			          1.0 - 1.0 * diff / (newsize - origsize));
+
+		sizelast = PED_MIN(diff, EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb));
+		if (!ext2_add_group(fs, sizelast))
+			return 0;
+
+		diff -= sizelast;
+	}
+
+	ped_timer_update (timer, 1.0);
+
+	return 1;
+}
+
+static int ext2_shrink_fs(struct ext2_fs *fs, blk_t newsize,
+			  PedTimer* timer)
+{
+	blk_t origsize = EXT2_SUPER_BLOCKS_COUNT (fs->sb);
+	blk_t diff;
+	int newgroups;
+	blk_t sizelast;
+
+	if (fs->opt_verbose)
+                fputs ("ext2_shrink_fs\n", stderr);
+
+	newgroups = ped_div_round_up (newsize
+                                - EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb),
+		        EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb));
+	if (EXT2_SUPER_BLOCKS_COUNT(fs->sb)
+	    - EXT2_SUPER_FREE_BLOCKS_COUNT(fs->sb) > newsize)
+	{
+		ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("Your file system is too full to resize it to %i "
+			  "blocks.  Sorry."), newsize);
+		return 0;
+	}
+
+	if (EXT2_SUPER_INODES_COUNT(fs->sb)
+	    - EXT2_SUPER_FREE_INODES_COUNT(fs->sb)
+	    		> newgroups * EXT2_SUPER_INODES_PER_GROUP(fs->sb))
+	{
+		ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("Your file system has too many occupied inodes to "
+			  "resize it to %i blocks.  Sorry."), newsize);
+		return 0;
+	}
+
+	if (!ext2_inode_relocate(fs, newgroups))
+		return 0;
+
+	if (!ext2_block_relocate(fs, newsize))
+		return 0;
+
+	diff = EXT2_SUPER_BLOCKS_COUNT(fs->sb) - newsize;
+
+	ped_timer_reset (timer);
+	ped_timer_set_state_name (timer, _("shrinking"));
+
+	while (diff > 0)
+	{
+		ped_timer_update (timer,
+				  1.0 - 1.0 * diff / (origsize - newsize));
+
+		sizelast = EXT2_SUPER_BLOCKS_COUNT(fs->sb)
+			   - EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb) -
+			   (fs->numgroups - 1)
+			   	* EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb);
+
+		if (diff < sizelast)
+		{
+			if (!ext2_shrink_group(fs, sizelast - diff))
+				return 0;
+
+			diff = 0;
+		}
+		else
+		{
+			if (!ext2_del_group(fs))
+				return 0;
+
+			diff -= sizelast;
+		}
+	}
+	
+	ped_timer_update (timer, 1.0);
+
+	return 1;
+}
+
+int ext2_determine_itoffset(struct ext2_fs *fs)
+{
+	int i;
+
+	fs->itoffset = EXT2_GROUP_INODE_TABLE(fs->gd[0])
+		       - EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb);
+
+        /*PED_DEBUG (0x20, "itoffset is %d", fs->itoffset);
+        
+        PED_DEBUG (0x20, "walking %d groups", fs->numgroups);*/
+
+	for (i=0;i<fs->numgroups;i++)
+	{
+		blk_t start;
+		blk_t bb;
+		blk_t ib;
+		blk_t it;
+
+		start = EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb)
+			+ (i * EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb));
+		it = start + fs->itoffset;
+
+                /*PED_DEBUG (0x21, "start = %d, it = %d", start, it);*/
+
+		if (ext2_is_group_sparse(fs, i))
+		{
+                        /*PED_DEBUG (0x21, "%d has a superblock copy", i);*/
+			bb = it - 2;
+			ib = it - 1;
+		}
+		else
+		{
+                        /*PED_DEBUG (0x21, "%d doesn't have a superblock copy",
+                            i);*/
+			bb = start;
+			ib = start + 1;
+		}
+
+		if (EXT2_GROUP_BLOCK_BITMAP(fs->gd[i]) != bb ||
+		    EXT2_GROUP_INODE_BITMAP(fs->gd[i]) != ib ||
+		    EXT2_GROUP_INODE_TABLE(fs->gd[i]) != it)
+		{
+		/*	ped_exception_throw (PED_EXCEPTION_NO_FEATURE,
+				PED_EXCEPTION_CANCEL,
+			_("This ext2 file system has a rather strange layout!  "
+			  "Parted can't resize this (yet)."));*/
+
+                 /*       PED_DEBUG (0x21, "calculated block bitmap to be %d, "
+                                         "but fs says %d.", bb,
+                                         EXT2_GROUP_BLOCK_BITMAP(fs->gd[i]));
+                        PED_DEBUG (0x21, "calculated inode bitmap to be %d, "
+                                         "but fs says %d.", ib,
+                                         EXT2_GROUP_INODE_BITMAP(fs->gd[i]));
+                        PED_DEBUG (0x21, "calculated inode table to be %d, "
+                                         "but fs says %d.", it,
+                                         EXT2_GROUP_INODE_TABLE(fs->gd[i]));*/
+                        
+			return 0;
+		}
+	}
+
+	return 1;
+}
+
+int ext2_resize_fs(struct ext2_fs *fs, blk_t newsize, PedTimer* timer)
+{
+	blk_t residue;
+	int status;
+
+	if (EXT2_SUPER_STATE(fs->sb) & EXT2_ERROR_FS)
+	{
+		ped_exception_throw (
+			PED_EXCEPTION_WARNING, PED_EXCEPTION_CANCEL,
+			_("File system has errors!  You should run e2fsck."));
+		return 0;
+	}
+
+	if (!(EXT2_SUPER_STATE(fs->sb) & EXT2_VALID_FS))
+	{
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("File system was not cleanly unmounted!  "
+			  "You should run e2fsck."));
+		return 0;
+	}
+
+	if (EXT2_SUPER_FEATURE_COMPAT(fs->sb)
+			& EXT2_FEATURE_COMPAT_HAS_DIR_INDEX) {
+		if (ped_exception_throw (
+			PED_EXCEPTION_WARNING, PED_EXCEPTION_IGNORE_CANCEL,
+			_("The file system has the 'dir_index' feature "
+			  "enabled.  Parted can only resize the file system "
+			  "if it disables this feature.  You can enable it "
+			  "later by running 'tune2fs -O dir_index DEVICE' "
+			  "and then 'e2fsck -fD DEVICE'."))
+				!= PED_EXCEPTION_IGNORE)
+			return 0;
+		fs->sb.s_feature_compat
+			= PED_CPU_TO_LE32(EXT2_SUPER_FEATURE_COMPAT(fs->sb)
+					  & ~EXT2_FEATURE_COMPAT_HAS_DIR_INDEX);
+		fs->metadirty |= EXT2_META_SB;
+	}
+
+	if (!ext2_determine_itoffset(fs) && ped_exception_throw (
+                        PED_EXCEPTION_WARNING,
+                        PED_EXCEPTION_OK_CANCEL,
+                        _("A resize operation on this file system will "
+                          "use EXPERIMENTAL code\n"
+                          "that MAY CORRUPT it (although no one has "
+                          "reported any such damage yet).\n"
+                          "You should at least backup your data first, "
+                          "and run 'e2fsck -f' afterwards."))
+                == PED_EXCEPTION_CANCEL)
+        {
+	        return 0;
+        }
+
+	if (fs->opt_verbose)
+                fputs ("ext2_resize_fs\n", stderr);
+
+	residue = (newsize - EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb))
+		   % EXT2_SUPER_BLOCKS_PER_GROUP(fs->sb);
+	if (residue && residue <= fs->adminblocks)
+		newsize -= residue;
+
+	if (newsize == EXT2_SUPER_BLOCKS_COUNT(fs->sb))
+		return 1;
+
+	fs->relocator_pool
+		= (unsigned char *)ped_malloc(ext2_relocator_pool_size << 10);
+	if (!fs->relocator_pool)
+		return 0;
+	fs->relocator_pool_end
+		= fs->relocator_pool + (ext2_relocator_pool_size << 10);
+
+	if (newsize < EXT2_SUPER_BLOCKS_COUNT(fs->sb))
+		status = ext2_shrink_fs(fs, newsize, timer);
+	else
+		status = ext2_grow_fs(fs, newsize, timer);
+
+	ped_free(fs->relocator_pool);
+	fs->relocator_pool = NULL;
+	fs->relocator_pool_end = NULL;
+
+	return status;
+}
+#endif /* !DISCOVER_ONLY */
diff --git a/parted-1.8.7/libparted/fs/ext2/interface.c b/parted-1.8.7/libparted/fs/ext2/interface.c
new file mode 100644
index 0000000..a56229f
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/ext2/interface.c
@@ -0,0 +1,353 @@
+/*
+    interface.c -- parted binding glue to libext2resize
+    Copyright (C) 1998-2000 Free Software Foundation, Inc.
+  
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/* VERSION: libext2resize 1.1.6 (by Lennert)
+ * merged 1.1.11 changes (by Andrew)
+ */
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include "ext2.h"
+#include "parted_io.h"
+
+static PedFileSystemType _ext2_type;
+static PedFileSystemType _ext3_type;
+
+struct ext2_dev_handle* ext2_make_dev_handle_from_parted_geometry(PedGeometry* geom);
+
+static PedGeometry*
+_ext2_generic_probe (PedGeometry* geom, int expect_ext3)
+{
+	struct ext2_super_block sb;
+
+	if (!ped_geometry_read(geom, &sb, 2, 2))
+		return NULL;
+
+	if (EXT2_SUPER_MAGIC(sb) == EXT2_SUPER_MAGIC_CONST) {
+		PedSector block_size = 1 << (EXT2_SUPER_LOG_BLOCK_SIZE(sb) + 1);
+		PedSector block_count = EXT2_SUPER_BLOCKS_COUNT(sb);
+		PedSector group_blocks = EXT2_SUPER_BLOCKS_PER_GROUP(sb);
+		PedSector group_nr = EXT2_SUPER_BLOCK_GROUP_NR(sb);
+		PedSector first_data_block = EXT2_SUPER_FIRST_DATA_BLOCK(sb);
+		int version = EXT2_SUPER_REV_LEVEL(sb);
+		int is_ext3 = (EXT2_SUPER_FEATURE_COMPAT(sb) 
+				& EXT3_FEATURE_COMPAT_HAS_JOURNAL) != 0;
+
+		if (expect_ext3 != is_ext3)
+			return NULL;
+
+		if (version > 0 && group_nr > 0) {
+			PedSector start;
+			PedGeometry probe_geom;
+
+			start = geom->start
+					- group_blocks * group_nr
+					- first_data_block;
+
+			if (start < 0)
+				return NULL;
+			ped_geometry_init (&probe_geom, geom->dev,
+					   start, block_count * block_size);
+			return _ext2_generic_probe (&probe_geom, expect_ext3);
+		} else {
+			return ped_geometry_new (geom->dev, geom->start,
+						 block_count * block_size);
+		}
+	}
+	return NULL;
+}
+
+static PedGeometry*
+_ext2_probe (PedGeometry* geom)
+{
+	return _ext2_generic_probe (geom, 0);
+}
+
+static PedGeometry*
+_ext3_probe (PedGeometry* geom)
+{
+	return _ext2_generic_probe (geom, 1);
+}
+
+#ifndef DISCOVER_ONLY
+static int
+_ext2_clobber (PedGeometry* geom)
+{
+	struct ext2_super_block sb;
+
+	if (!ped_geometry_read(geom, &sb, 2, 2))
+		return 0;
+	if (EXT2_SUPER_MAGIC(sb) != EXT2_SUPER_MAGIC_CONST)
+		return 1;
+
+	sb.s_magic = 0;
+	return ped_geometry_write(geom, &sb, 2, 2);
+}
+
+static PedFileSystem*
+_ext2_open (PedGeometry* geom)
+{
+	PedFileSystem*		fs;
+	struct ext2_fs*		fs_info;
+	struct ext2_dev_handle*	handle;
+
+	fs = (PedFileSystem*) ped_malloc (sizeof (PedFileSystem));
+	if (!fs) goto error;
+
+	fs->type = &_ext2_type;
+	fs->geom = ped_geometry_duplicate (geom);
+	fs->checked = 1;
+
+	handle = ext2_make_dev_handle_from_parted_geometry(fs->geom);
+	if (!handle) goto error_free_fs;
+
+	fs_info = (struct ext2_fs*) ext2_open(handle, 0);
+	if (!fs_info) goto error_free_handle;
+
+	fs->type_specific = (void*) fs_info;
+	fs_info->opt_verbose = 0;
+
+	return fs;
+
+error_free_handle:
+	ext2_destroy_dev_handle(handle);
+error_free_fs:
+	ped_free(fs);
+error:
+	return NULL;
+}
+
+static PedFileSystem*
+_ext2_create (PedGeometry* geom, PedTimer* timer)
+{
+	PedFileSystem*		fs;
+	struct ext2_fs*		fs_info;
+	struct ext2_dev_handle*	handle;
+
+	fs = (PedFileSystem*) ped_malloc (sizeof (PedFileSystem));
+	if (!fs) goto error;
+
+	fs->type = &_ext2_type;
+	fs->geom = ped_geometry_duplicate (geom);
+
+	handle = ext2_make_dev_handle_from_parted_geometry(fs->geom);
+	if (!handle) goto error_free_fs;
+
+	fs_info = ext2_mkfs (handle, 0, 0, 0, 0, -1, -1, timer);
+	if (!fs_info) goto error_free_handle;
+
+	fs->type_specific = (void*) fs_info;
+	fs_info->opt_verbose = 0;
+
+	return fs;
+
+error_free_handle:
+	ext2_destroy_dev_handle(handle);
+error_free_fs:
+	ped_free(fs);
+error:
+	return NULL;
+}
+
+static int
+_ext2_close (PedFileSystem *fs)
+{
+	struct ext2_dev_handle* handle;
+
+	handle = ((struct ext2_fs*)fs->type_specific)->devhandle;
+	ext2_close(fs->type_specific);
+	ext2_destroy_dev_handle(handle);
+
+	ped_free(fs);
+	return 1;
+}
+
+static int
+_ext2_check (PedFileSystem *fs, PedTimer* timer)
+{
+	ped_exception_throw (PED_EXCEPTION_INFORMATION, PED_EXCEPTION_OK,
+		_("The ext2 file system passed a basic check.  For a more "
+		  "comprehensive check, use the e2fsck program."));
+	return 1;
+}
+
+static int
+_ext2_resize (PedFileSystem* fs, PedGeometry* geom, PedTimer* timer)
+{
+	struct ext2_fs* f;
+	PedSector	old_length = fs->geom->length;
+
+	PED_ASSERT (fs->geom->dev == geom->dev, return 0);
+
+	if (fs->geom->start != geom->start)
+	{
+		ped_exception_throw (PED_EXCEPTION_NO_FEATURE,
+		      PED_EXCEPTION_CANCEL,
+		      _("Sorry, can't move the start of ext2 partitions yet!"));
+		return 0;
+	}
+
+	geom->dev->boot_dirty = 1;
+
+	f = (struct ext2_fs *) fs->type_specific;
+
+/* ensure that the geometry contains the new and old geometry */
+	if (old_length > geom->length) {
+		if (!ext2_resize_fs(f, geom->length >> (f->logsize - 9),
+				    timer))
+			goto error;
+
+		fs->geom->length = geom->length;
+		fs->geom->end = fs->geom->start + geom->length - 1;
+	} else {
+		fs->geom->length = geom->length;
+		fs->geom->end = fs->geom->start + geom->length - 1;
+
+		if (!ext2_resize_fs(f, geom->length >> (f->logsize - 9),
+				    timer))
+			goto error;
+	}
+	return 1;
+
+error:
+	return 0;
+}
+
+static PedConstraint*
+_ext2_get_create_constraint (const PedDevice* dev)
+{
+	PedGeometry	full_dev;
+
+	if (!ped_geometry_init (&full_dev, dev, 0, dev->length - 1))
+		return NULL;
+
+	return ped_constraint_new (
+			ped_alignment_any, ped_alignment_any,
+			&full_dev, &full_dev,
+			64, dev->length);
+}
+
+static PedConstraint*
+_ext2_get_resize_constraint (const PedFileSystem* fs)
+{
+	struct ext2_fs* f = (struct ext2_fs *) fs->type_specific;
+	PedDevice*	dev = fs->geom->dev;
+	PedAlignment	start_align;
+	PedGeometry	start_sector;
+	PedGeometry	full_dev;
+	PedSector	min_size;
+
+	if (!ped_alignment_init (&start_align, fs->geom->start, 0))
+		return NULL;
+	if (!ped_geometry_init (&full_dev, dev, 0, dev->length - 1))
+		return NULL;
+	if (!ped_geometry_init (&start_sector, dev, fs->geom->start, 1))
+		return NULL;
+	min_size = (EXT2_SUPER_BLOCKS_COUNT(f->sb)
+		   	- EXT2_SUPER_FREE_BLOCKS_COUNT(f->sb))
+		   * (f->blocksize / dev->sector_size);
+
+	return ped_constraint_new (&start_align, ped_alignment_any,
+				   &start_sector, &full_dev, min_size,
+				   dev->length);
+}
+#endif /* !DISCOVER_ONLY */
+
+static PedFileSystemOps _ext2_ops = {
+	probe:		_ext2_probe,
+#ifndef DISCOVER_ONLY
+	clobber:	_ext2_clobber,
+	open:		_ext2_open,
+	create:         _ext2_create,
+	close:		_ext2_close,
+	check:          _ext2_check,
+	resize:		_ext2_resize,
+	copy:           NULL,
+	get_create_constraint:	_ext2_get_create_constraint,
+	get_copy_constraint:	NULL,
+	get_resize_constraint:	_ext2_get_resize_constraint
+#else /* !DISCOVER_ONLY */
+	clobber:	NULL,
+	open:		NULL,
+	create:         NULL,
+	close:		NULL,
+	check:          NULL,
+	resize:		NULL,
+	copy:           NULL,
+	get_create_constraint:	NULL,
+	get_copy_constraint:	NULL,
+	get_resize_constraint:	NULL
+#endif /* !DISCOVER_ONLY */
+};
+
+static PedFileSystemOps _ext3_ops = {
+	probe:		_ext3_probe,
+#ifndef DISCOVER_ONLY
+	clobber:	_ext2_clobber,
+	open:		_ext2_open,
+	create:         NULL,
+	close:		_ext2_close,
+	check:          _ext2_check,
+	resize:		_ext2_resize,
+	copy:           NULL,
+	get_create_constraint:	_ext2_get_create_constraint,
+	get_copy_constraint:	NULL,
+	get_resize_constraint:	_ext2_get_resize_constraint
+#else /* !DISCOVER_ONLY */
+	clobber:	NULL,
+	open:		NULL,
+	create:         NULL,
+	close:		NULL,
+	check:          NULL,
+	resize:		NULL,
+	copy:           NULL,
+	get_create_constraint:	NULL,
+	get_copy_constraint:	NULL,
+	get_resize_constraint:	NULL
+#endif /* !DISCOVER_ONLY */
+};
+
+#define EXT23_BLOCK_SIZES ((int[6]){512, 1024, 2048, 4096, 8192, 0})
+
+static PedFileSystemType _ext2_type = {
+       next:		 NULL,
+       ops:		 &_ext2_ops,
+       name:		 "ext2",
+       block_sizes:      EXT23_BLOCK_SIZES
+};
+
+static PedFileSystemType _ext3_type = {
+       next:		 NULL,
+       ops:		 &_ext3_ops,
+       name:		 "ext3",
+       block_sizes:      EXT23_BLOCK_SIZES
+};
+
+void ped_file_system_ext2_init ()
+{
+	ped_file_system_type_register (&_ext2_type);
+	ped_file_system_type_register (&_ext3_type);
+}
+
+void ped_file_system_ext2_done ()
+{
+	ped_file_system_type_unregister (&_ext2_type);
+	ped_file_system_type_unregister (&_ext3_type);
+}
diff --git a/parted-1.8.7/libparted/fs/ext2/parted_io.c b/parted-1.8.7/libparted/fs/ext2/parted_io.c
new file mode 100644
index 0000000..1603b22
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/ext2/parted_io.c
@@ -0,0 +1,136 @@
+/*
+    parted_io.c -- parted I/O code interface for libext2resize
+    Copyright (C) 1998-2000 Free Software Foundation, Inc.
+  
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#include <config.h>
+
+#ifndef DISCOVER_ONLY
+
+#include <parted/parted.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "ext2.h"
+
+/* pseudo-header.... */
+
+loff_t llseek(unsigned int fd, loff_t offset, unsigned int whence);
+
+struct my_cookie
+{
+	int logsize;
+	PedGeometry* geom;
+};
+
+/* ...then this must be pseudo-code  :-) */
+
+static int   do_close        (void *cookie);
+static int   do_sync         (void *cookie);
+static blk_t do_get_size     (void *cookie);
+static int   do_read         (void *cookie, void *ptr, blk_t block, blk_t numblocks);
+static int   do_set_blocksize(void *cookie, int logsize);
+static int   do_write        (void *cookie, void *ptr, blk_t block, blk_t numblocks);
+
+struct ext2_dev_ops ops =
+{
+	close:		do_close,
+	get_size:	do_get_size,
+	read:		do_read,
+	set_blocksize:	do_set_blocksize,
+	sync:		do_sync,
+	write:		do_write
+};
+
+
+
+static int do_close(void *cookie)
+{
+	struct my_cookie *monster = cookie;
+
+	return ped_geometry_sync(monster->geom);
+}
+
+static int do_sync(void *cookie)
+{
+	struct my_cookie *monster = cookie;
+
+	return ped_geometry_sync(monster->geom);
+}
+
+static blk_t do_get_size(void *cookie)
+{
+	struct my_cookie *monster = cookie;
+
+	return monster->geom->length >> (monster->logsize - 9);
+}
+
+static int do_read(void *cookie, void *ptr, blk_t block, blk_t num)
+{
+	struct my_cookie *monster = cookie;
+
+	return ped_geometry_read(monster->geom, ptr, block << (monster->logsize - 9), num << (monster->logsize - 9));
+}
+
+static int do_set_blocksize(void *cookie, int logsize)
+{
+	struct my_cookie *monster = cookie;
+
+	monster->logsize = logsize;
+	return 1;
+} 
+
+static int do_write(void *cookie, void *ptr, blk_t block, blk_t num)
+{
+	struct my_cookie *monster = cookie;
+
+	return ped_geometry_write(monster->geom, ptr,
+				  block << (monster->logsize - 9),
+				  num << (monster->logsize - 9));
+}
+
+
+struct ext2_dev_handle *ext2_make_dev_handle_from_parted_geometry(PedGeometry* geom)
+{
+	struct ext2_dev_handle *dh;
+	struct my_cookie *monster;
+
+	if ((dh = ped_malloc(sizeof(struct ext2_dev_handle))) == NULL)
+		goto error;
+
+	if ((monster = ped_malloc(sizeof(struct my_cookie))) == NULL)
+		goto error_free_dh;
+
+	dh->ops = &ops;
+	dh->cookie = monster;
+	monster->logsize = 9;
+	monster->geom = geom;
+
+	return dh;
+
+error_free_dh:
+	ped_free(dh);
+error:
+	return NULL;
+}
+
+void ext2_destroy_dev_handle(struct ext2_dev_handle *handle)
+{
+	ped_geometry_destroy(((struct my_cookie *)handle->cookie)->geom);
+	ped_free(handle->cookie);
+	ped_free(handle);
+}
+#endif /* !DISCOVER_ONLY */
diff --git a/parted-1.8.7/libparted/fs/ext2/parted_io.h b/parted-1.8.7/libparted/fs/ext2/parted_io.h
new file mode 100644
index 0000000..f796138
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/ext2/parted_io.h
@@ -0,0 +1,28 @@
+/*
+    parted_io.h
+    Copyright (C) 1998-2000 Free Software Foundation, Inc.
+  
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#ifndef _PARTED_IO_H
+#define _PARTED_IO_H
+
+#include "ext2.h"
+
+void ext2_destroy_dev_handle(struct ext2_dev_handle *handle);
+
+#endif
+
diff --git a/parted-1.8.7/libparted/fs/ext2/tune.c b/parted-1.8.7/libparted/fs/ext2/tune.c
new file mode 100644
index 0000000..ebadb48
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/ext2/tune.c
@@ -0,0 +1,40 @@
+/*
+    tune.c -- tuneable stuff
+    Copyright (C) 1998-2000 Free Software Foundation, Inc.
+  
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#include <config.h>
+
+#ifndef DISCOVER_ONLY
+
+/*
+ * maybe i'll make this all command-line configurable one day
+ */
+
+/* The size of the buffer cache in kilobytes. Note that this is only
+   the actual buffer memory. On top of this amount additional memory
+   will be allocated for buffer cache bookkeeping. */
+int ext2_buffer_cache_pool_size = 512;
+
+/* The size of the buffer cache hash table (log2 of # of buckets). */
+int ext2_hash_bits = 8;
+
+/* The block/inode relocator pool size in kilobytes. Make this as big
+   as you can. The smaller this is, the more disk I/O is required for
+   doing relocations. */
+int ext2_relocator_pool_size = 4096;
+#endif /* !DISCOVER_ONLY */
diff --git a/parted-1.8.7/libparted/fs/ext2/tune.h b/parted-1.8.7/libparted/fs/ext2/tune.h
new file mode 100644
index 0000000..f6adece
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/ext2/tune.h
@@ -0,0 +1,30 @@
+/*
+    tune.h -- ext2 tunables header
+    Copyright (C) 1998-2000 Free Software Foundation, Inc.
+  
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#ifndef _TUNE_H
+#define _TUNE_H
+
+#define MAXCONT  256
+
+extern int ext2_buffer_cache_pool_size;
+extern int ext2_hash_bits;
+extern int ext2_max_groups;
+extern int ext2_relocator_pool_size;
+
+#endif
diff --git a/parted-1.8.7/libparted/fs/fat/Makefile.am b/parted-1.8.7/libparted/fs/fat/Makefile.am
new file mode 100644
index 0000000..f07fa74
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/fat/Makefile.am
@@ -0,0 +1,26 @@
+partedincludedir      =	-I$(top_srcdir)/include
+
+noinst_LTLIBRARIES    =	libfat.la
+libfat_la_SOURCES     = bootsector.c	\
+			bootsector.h	\
+			calc.c		\
+			calc.h		\
+			clstdup.c	\
+			clstdup.h	\
+			context.c	\
+			context.h	\
+			count.c		\
+			count.h		\
+			fat.c		\
+			fat.h		\
+			fatio.c		\
+			fatio.h		\
+			table.c		\
+			table.h		\
+			traverse.c	\
+			traverse.h	\
+			resize.c
+
+INCLUDES = $(partedincludedir) $(INTLINCS)
+
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/parted-1.8.7/libparted/fs/fat/Makefile.in b/parted-1.8.7/libparted/fs/fat/Makefile.in
new file mode 100644
index 0000000..a22b68b
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/fat/Makefile.in
@@ -0,0 +1,653 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = libparted/fs/fat
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+libfat_la_LIBADD =
+am_libfat_la_OBJECTS = bootsector.lo calc.lo clstdup.lo context.lo \
+	count.lo fat.lo fatio.lo table.lo traverse.lo resize.lo
+libfat_la_OBJECTS = $(am_libfat_la_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/lib@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(libfat_la_SOURCES)
+DIST_SOURCES = $(libfat_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+partedincludedir = -I$(top_srcdir)/include
+noinst_LTLIBRARIES = libfat.la
+libfat_la_SOURCES = bootsector.c	\
+			bootsector.h	\
+			calc.c		\
+			calc.h		\
+			clstdup.c	\
+			clstdup.h	\
+			context.c	\
+			context.h	\
+			count.c		\
+			count.h		\
+			fat.c		\
+			fat.h		\
+			fatio.c		\
+			fatio.h		\
+			table.c		\
+			table.h		\
+			traverse.c	\
+			traverse.h	\
+			resize.c
+
+INCLUDES = $(partedincludedir) $(INTLINCS)
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  libparted/fs/fat/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  libparted/fs/fat/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libfat.la: $(libfat_la_OBJECTS) $(libfat_la_DEPENDENCIES) 
+	$(LINK)  $(libfat_la_OBJECTS) $(libfat_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bootsector.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clstdup.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/context.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/count.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fat.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fatio.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/resize.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/table.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/traverse.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/libparted/fs/fat/bootsector.c b/parted-1.8.7/libparted/fs/fat/bootsector.c
new file mode 100644
index 0000000..23b34dc
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/fat/bootsector.c
@@ -0,0 +1,453 @@
+/*
+    libparted
+    Copyright (C) 1998, 1999, 2000, 2002, 2004, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+#include "fat.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <errno.h>
+
+/* Reads in the boot sector (superblock), and does a minimum of sanity
+ * checking.  The goals are:
+ *	- to detect fat file systems, even if they are damaged [i.e. not
+ * return an error / throw an exception]
+ *	- to fail detection if there's not enough information for
+ * fat_boot_sector_probe_type() to work (or possibly crash on a divide-by-zero)
+ */
+int
+fat_boot_sector_read (FatBootSector* bs, const PedGeometry *geom)
+{
+	PED_ASSERT (bs != NULL, return 0);
+	PED_ASSERT (geom != NULL, return 0);
+
+	if (!ped_geometry_read (geom, bs, 0, 1))
+		return 0;
+
+	if (PED_LE16_TO_CPU (bs->boot_sign) != 0xAA55) {
+		ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("File system has an invalid signature for a FAT "
+			  "file system."));
+		return 0;
+	}
+
+	if (!bs->system_id[0]) {
+		ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("File system has an invalid signature for a FAT "
+			  "file system."));
+		return 0;
+	}
+
+	if (!bs->sector_size
+            || PED_LE16_TO_CPU (bs->sector_size) % PED_SECTOR_SIZE_DEFAULT) {
+		ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("File system has an invalid sector size for a FAT "
+			  "file system."));
+		return 0;
+	}
+
+	if (!bs->cluster_size) {
+		ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("File system has an invalid cluster size for a FAT "
+			  "file system."));
+		return 0;
+	}
+
+	if (!bs->reserved) {
+		ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("File system has an invalid number of reserved "
+			  "sectors for a FAT file system."));
+		return 0;
+	}
+
+	if (bs->fats < 1 || bs->fats > 4) {
+		ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("File system has an invalid number of FATs."));
+		return 0;
+	}
+
+	return 1;
+}
+
+/*
+    Don't trust the FAT12, FAT16 or FAT32 label string.
+ */
+FatType
+fat_boot_sector_probe_type (const FatBootSector* bs, const PedGeometry* geom)
+{
+	PedSector	logical_sector_size;
+	PedSector	first_cluster_sector;
+	FatCluster	cluster_count;
+
+	if (!PED_LE16_TO_CPU (bs->dir_entries))
+		return FAT_TYPE_FAT32;
+
+	logical_sector_size = PED_LE16_TO_CPU (bs->sector_size) / 512;
+
+	first_cluster_sector
+		= PED_LE16_TO_CPU (bs->reserved) * logical_sector_size
+		  + 2 * PED_LE16_TO_CPU (bs->fat_length) * logical_sector_size
+		  + PED_LE16_TO_CPU (bs->dir_entries)
+			/ (512 / sizeof (FatDirEntry));
+	cluster_count = (geom->length - first_cluster_sector)
+			/ bs->cluster_size / logical_sector_size;
+	if (cluster_count > MAX_FAT12_CLUSTERS)
+		return FAT_TYPE_FAT16;
+	else
+		return FAT_TYPE_FAT12;
+}
+
+/* Analyses the boot sector, and sticks appropriate numbers in
+   fs->type_specific.
+
+   Note: you need to subtract (2 * cluster_sectors) off cluster offset,
+   because the first cluster is number 2.  (0 and 1 are not real clusters,
+   and referencing them is a bug)
+ */
+int
+fat_boot_sector_analyse (FatBootSector* bs, PedFileSystem* fs)
+{
+	FatSpecific*		fs_info = FAT_SPECIFIC (fs);
+	int			fat_entry_size;
+
+	PED_ASSERT (bs != NULL, return 0);
+	
+	if (PED_LE16_TO_CPU (bs->sector_size) != 512) {
+		if (ped_exception_throw (
+			PED_EXCEPTION_BUG,
+			PED_EXCEPTION_IGNORE_CANCEL,
+			_("This file system has a logical sector size of %d.  "
+			"GNU Parted is known not to work properly with sector "
+			"sizes other than 512 bytes."),
+			(int) PED_LE16_TO_CPU (bs->sector_size))
+				!= PED_EXCEPTION_IGNORE)
+			return 0;
+	}
+
+	fs_info->logical_sector_size = PED_LE16_TO_CPU (bs->sector_size) / 512;
+
+	fs_info->sectors_per_track = PED_LE16_TO_CPU (bs->secs_track);
+	fs_info->heads = PED_LE16_TO_CPU (bs->heads);
+	if (fs_info->sectors_per_track < 1 || fs_info->sectors_per_track > 63
+	    || fs_info->heads < 1 || fs_info->heads > 255) {
+		PedCHSGeometry* bios_geom = &fs->geom->dev->bios_geom;
+		int cyl_count = 0;
+
+		if (fs_info->heads > 0 && fs_info->sectors_per_track > 0)
+			cyl_count = fs->geom->dev->length / fs_info->heads
+					/ fs_info->sectors_per_track;
+
+		switch (ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_FIX + PED_EXCEPTION_IGNORE
+			+ PED_EXCEPTION_CANCEL,
+			_("The file system's CHS geometry is (%d, %d, %d), "
+			  "which is invalid.  The partition table's CHS "
+			  "geometry is (%d, %d, %d).  If you select Ignore, "
+			  "the file system's CHS geometry will be left "
+			  "unchanged.  If you select Fix, the file system's "
+			  "CHS geometry will be set to match the partition "
+			  "table's CHS geometry."),
+			 cyl_count, fs_info->heads, fs_info->sectors_per_track,
+			 bios_geom->cylinders, bios_geom->heads,
+			 bios_geom->sectors)) {
+
+		case PED_EXCEPTION_FIX:
+			fs_info->sectors_per_track = bios_geom->sectors;
+			fs_info->heads = bios_geom->heads;
+			bs->secs_track
+				= PED_CPU_TO_LE16 (fs_info->sectors_per_track);
+			bs->heads = PED_CPU_TO_LE16 (fs_info->heads);
+			if (!fat_boot_sector_write (bs, fs))
+				return 0;
+			break;
+
+		case PED_EXCEPTION_CANCEL:
+			return 0;
+
+		case PED_EXCEPTION_IGNORE:
+			break;
+
+                default:
+                        break;
+		}
+	}
+
+	if (bs->sectors)
+		fs_info->sector_count = PED_LE16_TO_CPU (bs->sectors)
+						* fs_info->logical_sector_size;
+	else
+		fs_info->sector_count = PED_LE32_TO_CPU (bs->sector_count)
+						* fs_info->logical_sector_size;
+
+	fs_info->fat_table_count = bs->fats;
+	fs_info->root_dir_entry_count = PED_LE16_TO_CPU (bs->dir_entries);
+	fs_info->fat_offset = PED_LE16_TO_CPU (bs->reserved)
+					* fs_info->logical_sector_size;
+	fs_info->cluster_sectors = bs->cluster_size
+				   * fs_info->logical_sector_size;
+	fs_info->cluster_size = fs_info->cluster_sectors * 512;
+
+	if (fs_info->logical_sector_size == 0) {
+		ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("FAT boot sector says logical sector size is 0.  "
+			  "This is weird. "));
+		return 0;
+	}
+	if (fs_info->fat_table_count == 0) {
+		ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("FAT boot sector says there are no FAT tables.  This "
+			  "is weird. "));
+		return 0;
+	}
+	if (fs_info->cluster_sectors == 0) {
+		ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("FAT boot sector says clusters are 0 sectors.  This "
+			  "is weird. "));
+		return 0;
+	}
+
+	fs_info->fat_type = fat_boot_sector_probe_type (bs, fs->geom);
+	if (fs_info->fat_type == FAT_TYPE_FAT12) {
+		ped_exception_throw (
+			PED_EXCEPTION_NO_FEATURE,
+			PED_EXCEPTION_CANCEL,
+			_("File system is FAT12, which is unsupported."));
+		return 0;
+	}
+	if (fs_info->fat_type == FAT_TYPE_FAT16) {
+		fs_info->fat_sectors = PED_LE16_TO_CPU (bs->fat_length)
+				       * fs_info->logical_sector_size;
+		fs_info->serial_number
+			= PED_LE32_TO_CPU (bs->u.fat16.serial_number);
+		fs_info->root_cluster = 0;
+		fs_info->root_dir_offset
+			= fs_info->fat_offset
+			  + fs_info->fat_sectors * fs_info->fat_table_count;
+		fs_info->root_dir_sector_count
+			= fs_info->root_dir_entry_count * sizeof (FatDirEntry)
+			  / (512 * fs_info->logical_sector_size);
+		fs_info->cluster_offset
+			= fs_info->root_dir_offset
+			  + fs_info->root_dir_sector_count;
+	}
+	if (fs_info->fat_type == FAT_TYPE_FAT32) {
+		fs_info->fat_sectors = PED_LE32_TO_CPU (bs->u.fat32.fat_length)
+					* fs_info->logical_sector_size;
+		fs_info->serial_number
+			= PED_LE32_TO_CPU (bs->u.fat32.serial_number);
+		fs_info->info_sector_offset
+		    = PED_LE16_TO_CPU (fs_info->boot_sector.u.fat32.info_sector)
+			  * fs_info->logical_sector_size;
+		fs_info->boot_sector_backup_offset
+		  = PED_LE16_TO_CPU (fs_info->boot_sector.u.fat32.backup_sector)
+			  * fs_info->logical_sector_size;
+		fs_info->root_cluster
+			= PED_LE32_TO_CPU (bs->u.fat32.root_dir_cluster);
+		fs_info->root_dir_offset = 0;
+		fs_info->root_dir_sector_count = 0;
+		fs_info->cluster_offset
+			= fs_info->fat_offset
+			  + fs_info->fat_sectors * fs_info->fat_table_count;
+	}
+
+	fs_info->cluster_count
+		= (fs_info->sector_count - fs_info->cluster_offset)
+		  / fs_info->cluster_sectors;
+
+	fat_entry_size = fat_table_entry_size (fs_info->fat_type);
+	if (fs_info->cluster_count + 2
+			> fs_info->fat_sectors * 512 / fat_entry_size)
+		fs_info->cluster_count
+			= fs_info->fat_sectors * 512 / fat_entry_size - 2;
+
+	fs_info->dir_entries_per_cluster
+		= fs_info->cluster_size / sizeof (FatDirEntry);
+	return 1;
+}
+
+#ifndef DISCOVER_ONLY
+int
+fat_boot_sector_set_boot_code (FatBootSector* bs)
+{
+	PED_ASSERT (bs != NULL, return 0);
+
+	memset (bs, 0, 512);
+	memcpy (bs->boot_jump, FAT_BOOT_JUMP, 3);
+	memcpy (bs->u.fat32.boot_code, FAT_BOOT_CODE, FAT_BOOT_CODE_LENGTH);
+	return 1;
+}
+
+int
+fat_boot_sector_generate (FatBootSector* bs, const PedFileSystem* fs)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+
+	PED_ASSERT (bs != NULL, return 0);
+
+	memcpy (bs->system_id, "MSWIN4.1", 8);
+	bs->sector_size = PED_CPU_TO_LE16 (fs_info->logical_sector_size * 512);
+	bs->cluster_size = fs_info->cluster_sectors
+				/ fs_info->logical_sector_size;
+	bs->reserved = PED_CPU_TO_LE16 (fs_info->fat_offset
+					/ fs_info->logical_sector_size);
+	bs->fats = fs_info->fat_table_count;
+
+	bs->dir_entries = (fs_info->fat_type == FAT_TYPE_FAT16)
+			  ? PED_CPU_TO_LE16 (fs_info->root_dir_entry_count)
+			  : 0;
+
+	if (fs_info->sector_count / fs_info->logical_sector_size > 0xffff
+		|| fs_info->fat_type == FAT_TYPE_FAT32) {
+		bs->sectors = 0;
+		bs->sector_count = PED_CPU_TO_LE32 (fs_info->sector_count
+						/ fs_info->logical_sector_size);
+	} else {
+		bs->sectors = PED_CPU_TO_LE16 (fs_info->sector_count
+					       / fs_info->logical_sector_size);
+		bs->sector_count = 0;
+	}
+
+	bs->media = 0xf8;
+
+	bs->secs_track = PED_CPU_TO_LE16 (fs_info->sectors_per_track);
+	bs->heads = PED_CPU_TO_LE16 (fs_info->heads);
+	bs->hidden = PED_CPU_TO_LE32 (fs->geom->start);
+
+	if (fs_info->fat_type == FAT_TYPE_FAT32) {
+		bs->fat_length = 0;
+		bs->u.fat32.fat_length = PED_CPU_TO_LE32 (fs_info->fat_sectors
+						/ fs_info->logical_sector_size);
+		bs->u.fat32.flags = 0;	/* FIXME: what the hell are these? */
+		bs->u.fat32.version = 0;  /* must be 0, for Win98 bootstrap */
+		bs->u.fat32.root_dir_cluster
+			= PED_CPU_TO_LE32 (fs_info->root_cluster);
+		bs->u.fat32.info_sector
+			= PED_CPU_TO_LE16 (fs_info->info_sector_offset
+					   / fs_info->logical_sector_size);
+		bs->u.fat32.backup_sector
+			= PED_CPU_TO_LE16 (fs_info->boot_sector_backup_offset
+					   / fs_info->logical_sector_size);
+
+		bs->u.fat32.drive_num = 0x80;	/* _ALWAYS_ 0x80.  silly DOS */
+
+		memset (bs->u.fat32.empty_1, 0, 12);
+
+		bs->u.fat32.ext_signature = 0x29;
+		bs->u.fat32.serial_number
+			= PED_CPU_TO_LE32 (fs_info->serial_number);
+		memcpy (bs->u.fat32.volume_name, "NO NAME    ", 11);
+		memcpy (bs->u.fat32.fat_name, "FAT32   ", 8);
+	} else {
+		bs->fat_length
+			= PED_CPU_TO_LE16 (fs_info->fat_sectors
+					   / fs_info->logical_sector_size);
+
+		bs->u.fat16.drive_num = 0x80;	/* _ALWAYS_ 0x80.  silly DOS */
+
+		bs->u.fat16.ext_signature = 0x29;
+		bs->u.fat16.serial_number
+			= PED_CPU_TO_LE32 (fs_info->serial_number);
+		memcpy (bs->u.fat16.volume_name, "NO NAME    ", 11);
+		memcpy (bs->u.fat16.fat_name, "FAT16   ", 8);
+	}
+
+	bs->boot_sign = PED_CPU_TO_LE16 (0xaa55);
+
+	return 1;
+}
+
+int
+fat_boot_sector_write (const FatBootSector* bs, PedFileSystem* fs)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+
+	PED_ASSERT (bs != NULL, return 0);
+
+	if (!ped_geometry_write (fs->geom, bs, 0, 1))
+		return 0;
+	if (fs_info->fat_type == FAT_TYPE_FAT32) {
+		if (!ped_geometry_write (fs->geom, bs,
+					 fs_info->boot_sector_backup_offset, 1))
+			return 0;
+	}
+	return ped_geometry_sync (fs->geom);
+}
+
+int
+fat_info_sector_read (FatInfoSector* is, const PedFileSystem* fs)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+	int		status;
+
+	PED_ASSERT (is != NULL, return 0);
+	
+	if (!ped_geometry_read (fs->geom, is, fs_info->info_sector_offset, 1))
+		return 0;
+
+	if (PED_LE32_TO_CPU (is->signature_2) != FAT32_INFO_MAGIC2) {
+		status = ped_exception_throw (PED_EXCEPTION_WARNING,
+				PED_EXCEPTION_IGNORE_CANCEL,
+				_("The information sector has the wrong "
+				"signature (%x).  Select cancel for now, "
+				"and send in a bug report.  If you're "
+				"desperate, it's probably safe to ignore."),
+				PED_LE32_TO_CPU (is->signature_2));
+		if (status == PED_EXCEPTION_CANCEL) return 0;
+	}
+	return 1;
+}
+
+int
+fat_info_sector_generate (FatInfoSector* is, const PedFileSystem* fs)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+
+	PED_ASSERT (is != NULL, return 0);
+	
+	fat_table_count_stats (fs_info->fat);
+
+	memset (is, 0, 512);
+
+	is->signature_1 = PED_CPU_TO_LE32 (FAT32_INFO_MAGIC1);
+	is->signature_2 = PED_CPU_TO_LE32 (FAT32_INFO_MAGIC2);
+	is->free_clusters = PED_CPU_TO_LE32 (fs_info->fat->free_cluster_count);
+	is->next_cluster = PED_CPU_TO_LE32 (fs_info->fat->last_alloc);
+	is->signature_3 = PED_CPU_TO_LE16 (FAT32_INFO_MAGIC3);
+
+	return 1;
+}
+
+int
+fat_info_sector_write (const FatInfoSector* is, PedFileSystem *fs)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+
+	PED_ASSERT (is != NULL, return 0);
+	
+	if (!ped_geometry_write (fs->geom, is, fs_info->info_sector_offset, 1))
+		return 0;
+	return ped_geometry_sync (fs->geom);
+}
+#endif /* !DISCOVER_ONLY */
+
diff --git a/parted-1.8.7/libparted/fs/fat/bootsector.h b/parted-1.8.7/libparted/fs/fat/bootsector.h
new file mode 100644
index 0000000..e800c59
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/fat/bootsector.h
@@ -0,0 +1,133 @@
+/*
+    libparted
+    Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef PED_FAT_BOOTSECTOR_H
+#define PED_FAT_BOOTSECTOR_H
+
+typedef struct _FatBootSector	FatBootSector;
+typedef struct _FatInfoSector	FatInfoSector;
+
+#include "fat.h"
+
+#define FAT32_INFO_MAGIC1	0x41615252
+#define FAT32_INFO_MAGIC2	0x61417272
+#define FAT32_INFO_MAGIC3	0xaa55
+
+/* stolen from mkdosfs, by Dave Hudson */
+
+#define FAT_BOOT_MESSAGE	\
+"This partition does not have an operating system loader installed on it.\n\r"\
+"Press a key to reboot..."
+
+#define FAT_BOOT_JUMP	"\xeb\x58\x90"		/* jmp	+5a */
+
+#define FAT_BOOT_CODE	"\x0e"			/* push cs */		\
+			"\x1f"			/* pop ds */		\
+			"\xbe\x74\x7e"		/* mov si, offset message */ \
+					/* write_msg_loop: */		\
+			"\xac"			/* lodsb */		\
+			"\x22\xc0"		/* and al, al */	\
+			"\x74\x06"		/* jz done (+8) */	\
+			"\xb4\x0e"		/* mov ah, 0x0e */	\
+			"\xcd\x10"		/* int 0x10 */		\
+			"\xeb\xf5"		/* jmp write_msg_loop */ \
+					/* done: */			\
+			"\xb4\x00"		/* mov ah, 0x00 */	\
+			"\xcd\x16"		/* int 0x16 */		\
+			"\xb4\x00"		/* mov ah, 0x00 */	\
+			"\xcd\x19"		/* int 0x19 */		\
+			"\xeb\xfe"		/* jmp +0 - in case int 0x19 */ \
+						/* doesn't work */	\
+					/* message: */			\
+			FAT_BOOT_MESSAGE
+
+#define FAT_BOOT_CODE_LENGTH 128
+
+struct __attribute__ ((packed)) _FatBootSector {
+        uint8_t		boot_jump[3];	/* 00: Boot strap short or near jump */
+        uint8_t		system_id[8];	/* 03: system name */
+        uint16_t	sector_size;	/* 0b: bytes per logical sector */
+        uint8_t		cluster_size;	/* 0d: sectors/cluster */
+        uint16_t	reserved;	/* 0e: reserved sectors */
+        uint8_t		fats;		/* 10: number of FATs */
+        uint16_t	dir_entries;	/* 11: number of root directory entries */
+        uint16_t	sectors;	/* 13: if 0, total_sect supersedes */
+        uint8_t		media;		/* 15: media code */
+        uint16_t	fat_length;	/* 16: sectors/FAT for FAT12/16 */
+        uint16_t	secs_track;	/* 18: sectors per track */
+        uint16_t	heads;		/* 1a: number of heads */
+        uint32_t	hidden;		/* 1c: hidden sectors (partition start) */
+        uint32_t	sector_count;	/* 20: no. of sectors (if sectors == 0) */
+
+        union __attribute__ ((packed)) {
+                /* FAT16 fields */
+                struct __attribute__ ((packed)) {
+                        uint8_t		drive_num;	/* 24: */
+                        uint8_t		empty_1;	/* 25: */
+                        uint8_t		ext_signature;	/* 26: always 0x29 */
+                        uint32_t	serial_number;	/* 27: */
+                        uint8_t		volume_name [11];       /* 2b: */
+                        uint8_t		fat_name [8];	/* 36: */
+                        uint8_t		boot_code[448];	/* 3f: Boot code (or message) */
+                } fat16;
+                /* FAT32 fields */
+                struct __attribute__ ((packed)) {
+                        uint32_t	fat_length;	/* 24: size of FAT in sectors */
+                        uint16_t	flags;		/* 28: bit8: fat mirroring, low4: active fat */
+                        uint16_t	version;        /* 2a: minor * 256 + major */
+                        uint32_t	root_dir_cluster;	/* 2c: */
+                        uint16_t	info_sector;    /* 30: */
+                        uint16_t	backup_sector;	/* 32: */
+                        uint8_t		empty_1 [12];	/* 34: */
+                        uint16_t	drive_num;	/* 40: */
+                        uint8_t		ext_signature;	/* 42: always 0x29 */
+                        uint32_t	serial_number;	/* 43: */
+                        uint8_t		volume_name [11];	/* 47: */
+                        uint8_t		fat_name [8];	/* 52: */
+                        uint8_t		boot_code[420];	/* 5a: Boot code (or message) */
+                } fat32;
+        } u;
+
+	uint16_t	boot_sign;	/* 1fe: always 0xAA55 */
+};
+
+struct __attribute__ ((packed)) _FatInfoSector {
+        uint32_t	signature_1;	/* should be 0x41615252 */
+        uint8_t		unused [480];
+        uint32_t	signature_2;	/* should be 0x61417272 */
+        uint32_t	free_clusters;
+        uint32_t	next_cluster;	/* most recently allocated cluster */
+        uint8_t		unused2 [0xe];
+        uint16_t	signature_3;	/* should be 0xaa55 */
+};
+
+int fat_boot_sector_read (FatBootSector* bs, const PedGeometry* geom);
+FatType fat_boot_sector_probe_type (const FatBootSector* bs,
+				    const PedGeometry* geom);
+int fat_boot_sector_analyse (FatBootSector* bs, PedFileSystem* fs);
+int fat_boot_sector_set_boot_code (FatBootSector* bs);
+int fat_boot_sector_generate (FatBootSector* bs, const PedFileSystem* fs);
+int fat_boot_sector_write (const FatBootSector* bs, PedFileSystem* fs);
+
+int fat_info_sector_read (FatInfoSector* is, const PedFileSystem* fs);
+int fat_info_sector_generate (FatInfoSector* is, const PedFileSystem* fs);
+int fat_info_sector_write (const FatInfoSector* is, PedFileSystem* fs);
+
+#endif /* PED_FAT_BOOTSECTOR_H */
+
diff --git a/parted-1.8.7/libparted/fs/fat/calc.c b/parted-1.8.7/libparted/fs/fat/calc.c
new file mode 100644
index 0000000..5f8a898
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/fat/calc.c
@@ -0,0 +1,436 @@
+/*
+    libparted
+    Copyright (C) 1998, 1999, 2000, 2002, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+#include "fat.h" 
+
+#ifndef DISCOVER_ONLY
+
+/* returns the minimum size of clusters for a given file system type */
+PedSector
+fat_min_cluster_size (FatType fat_type) {
+	switch (fat_type) {
+		case FAT_TYPE_FAT12: return 1;
+		case FAT_TYPE_FAT16: return 1024/512;
+		case FAT_TYPE_FAT32: return 4096/512;
+	}
+	return 0;
+}
+
+static PedSector
+_smallest_power2_over (PedSector ceiling)
+{
+	PedSector	result = 1;
+
+	while (result < ceiling)
+		result *= 2;
+
+	return result;
+}
+
+/* returns the minimum size of clusters for a given file system type */
+PedSector
+fat_recommend_min_cluster_size (FatType fat_type, PedSector size) {
+	switch (fat_type) {
+		case FAT_TYPE_FAT12: return 1;
+		case FAT_TYPE_FAT16: return fat_min_cluster_size(fat_type);
+		case FAT_TYPE_FAT32:
+			return PED_MAX(_smallest_power2_over(size
+						/ MAX_FAT32_CLUSTERS),
+				       fat_min_cluster_size (fat_type));
+	}
+	return 0;
+}
+
+/* returns the maxmimum size of clusters for a given file system type */
+PedSector
+fat_max_cluster_size (FatType fat_type) {
+	switch (fat_type) {
+		case FAT_TYPE_FAT12: return 1;	/* dunno... who cares? */
+		case FAT_TYPE_FAT16: return 32768/512;
+		case FAT_TYPE_FAT32: return 65536/512;
+	}
+	return 0;
+}
+
+/* returns the minimum number of clusters for a given file system type */
+FatCluster
+fat_min_cluster_count (FatType fat_type) {
+	switch (fat_type) {
+		case FAT_TYPE_FAT12:
+		case FAT_TYPE_FAT16:
+			return fat_max_cluster_count (fat_type) / 2;
+
+		case FAT_TYPE_FAT32: return 0xfff0;
+	}
+	return 0;
+}
+
+/* returns the maximum number of clusters for a given file system type */
+FatCluster
+fat_max_cluster_count (FatType fat_type) {
+	switch (fat_type) {
+		case FAT_TYPE_FAT12: return 0xff0;
+		case FAT_TYPE_FAT16: return 0xfff0;
+		case FAT_TYPE_FAT32: return 0x0ffffff0;
+	}
+	return 0;
+}
+
+/* what is this supposed to be?  What drugs are M$ on?  (Can I have some? :-) */
+PedSector
+fat_min_reserved_sector_count (FatType fat_type)
+{
+	return (fat_type == FAT_TYPE_FAT32) ? 32 : 1;
+}
+
+int
+fat_check_resize_geometry (const PedFileSystem* fs,
+			   const PedGeometry* geom,
+			   PedSector new_cluster_sectors,
+			   FatCluster new_cluster_count)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+	PedSector	free_space;
+	PedSector	min_free_space;
+	PedSector	total_space;
+	PedSector	new_total_space;
+	PedSector	dir_space;
+
+	PED_ASSERT (geom != NULL, return 0);
+
+	dir_space = fs_info->total_dir_clusters * fs_info->cluster_sectors;
+	free_space = fs_info->fat->free_cluster_count
+			* fs_info->cluster_sectors;
+	total_space = fs_info->fat->cluster_count * fs_info->cluster_sectors;
+	new_total_space = new_cluster_count * new_cluster_sectors;
+	min_free_space = total_space - new_total_space + dir_space;
+
+	PED_ASSERT (new_cluster_count
+			<= fat_max_cluster_count (FAT_TYPE_FAT32),
+		    return 0);
+
+	if (free_space < min_free_space) {
+		char* needed = ped_unit_format (geom->dev, min_free_space);
+		char* have = ped_unit_format (geom->dev, free_space);
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("You need %s of free disk space to shrink this "
+			  "partition to this size.  Currently, only %s is "
+			  "free."),
+			needed, have);
+		ped_free (needed);
+		ped_free (have);
+		return 0;
+	}
+
+	return 1;
+}
+
+
+/******************************************************************************/
+
+/* DO NOT EDIT THIS ALGORITHM!
+ * As far as I can tell, this is the same algorithm used by Microsoft to
+ * calculate the size of the file allocaion tables, and the number of clusters.
+ * I have not verified this by dissassembling Microsoft code - I came to this
+ * conclusion by empirical analysis (i.e. trial and error - this was HORRIBLE).
+ *
+ * If you think this code makes no sense, then you are right.  I will restrain
+ * the urge to inflict serious bodily harm on Microsoft people.
+ */
+
+static int
+entries_per_sector (FatType fat_type)
+{
+	switch (fat_type) {
+		case FAT_TYPE_FAT12:
+			return 512 * 3 / 2;
+		case FAT_TYPE_FAT16:
+			return 512 / 2;
+		case FAT_TYPE_FAT32:
+			return 512 / 4;
+	}
+	return 0;
+}
+
+static int
+calc_sizes (PedSector size, PedSector align, FatType fat_type,
+	    PedSector root_dir_sectors, PedSector cluster_sectors,
+	    FatCluster* out_cluster_count, PedSector* out_fat_size)
+{
+	PedSector	data_fat_space; /* space available to clusters + FAT */
+	PedSector	fat_space;	/* space taken by each FAT */
+	PedSector	cluster_space;	/* space taken by clusters */
+	FatCluster	cluster_count;
+	int		i;
+
+	PED_ASSERT (out_cluster_count != NULL, return 0);
+	PED_ASSERT (out_fat_size != NULL, return 0);
+
+	data_fat_space = size - fat_min_reserved_sector_count (fat_type)
+			 - align;
+	if (fat_type == FAT_TYPE_FAT16)
+		data_fat_space -= root_dir_sectors;
+
+	fat_space = 0;
+	for (i = 0; i < 2; i++) {
+		if (fat_type == FAT_TYPE_FAT32)
+			cluster_space = data_fat_space - fat_space;
+		else
+			cluster_space = data_fat_space - 2 * fat_space;
+
+		cluster_count = cluster_space / cluster_sectors;
+		fat_space = ped_div_round_up (cluster_count + 2,
+					      entries_per_sector (fat_type));
+	}
+
+	cluster_space = data_fat_space - 2 * fat_space;
+	cluster_count = cluster_space / cluster_sectors;
+
+	/* looks like this should be part of the loop condition?
+	 * Need to build the Big Table TM again to check
+	 */
+	if (fat_space < ped_div_round_up (cluster_count + 2,
+				          entries_per_sector (fat_type))) {
+		fat_space = ped_div_round_up (cluster_count + 2,
+					      entries_per_sector (fat_type));
+	}
+
+	if (cluster_count > fat_max_cluster_count (fat_type)
+	    || cluster_count < fat_min_cluster_count (fat_type))
+		return 0;
+
+	*out_cluster_count = cluster_count;
+	*out_fat_size = fat_space;
+
+	return 1;
+}
+
+/****************************************************************************/
+
+int
+fat_calc_sizes (PedSector size, PedSector align, FatType fat_type,
+		PedSector root_dir_sectors,
+		PedSector* out_cluster_sectors, FatCluster* out_cluster_count,
+		PedSector* out_fat_size)
+{
+	PedSector	cluster_sectors;
+
+	PED_ASSERT (out_cluster_sectors != NULL, return 0);
+	PED_ASSERT (out_cluster_count != NULL, return 0);
+	PED_ASSERT (out_fat_size != NULL, return 0);
+
+	for (cluster_sectors = fat_recommend_min_cluster_size (fat_type, size);
+	     cluster_sectors <= fat_max_cluster_size (fat_type);
+	     cluster_sectors *= 2) {
+		if (calc_sizes (size, align, fat_type, root_dir_sectors,
+				cluster_sectors,
+			        out_cluster_count, out_fat_size)) {
+			*out_cluster_sectors = cluster_sectors;
+			return 1;
+		}
+	}
+
+	for (cluster_sectors = fat_recommend_min_cluster_size (fat_type, size);
+	     cluster_sectors >= fat_min_cluster_size (fat_type);
+	     cluster_sectors /= 2) {
+		if (calc_sizes (size, align, fat_type, root_dir_sectors,
+				cluster_sectors,
+			        out_cluster_count, out_fat_size)) {
+			*out_cluster_sectors = cluster_sectors;
+			return 1;
+		}
+	}
+
+	/* only make the cluster size really small (<4k) if a bigger one is
+	 * isn't possible.  Windows never makes FS's like this, but it
+	 * seems to work...  (do more tests!)
+	 */
+	for (cluster_sectors = 4; cluster_sectors > 0; cluster_sectors /= 2) {
+		if (calc_sizes (size, align, fat_type, root_dir_sectors,
+				cluster_sectors,
+				out_cluster_count, out_fat_size)) {
+			*out_cluster_sectors = cluster_sectors;
+			return 1;
+		}
+	}
+
+	return 0;
+}
+
+/* Same as fat_calc_sizes, except it only attempts to match a particular
+ * cluster size.  This is useful, because the FAT resizer can only shrink the
+ * cluster size.
+ */
+int
+fat_calc_resize_sizes (
+	const PedGeometry* geom,
+	PedSector align,
+	FatType fat_type,
+	PedSector root_dir_sectors,
+	PedSector cluster_sectors,
+	PedSector* out_cluster_sectors,
+	FatCluster* out_cluster_count,
+	PedSector* out_fat_size)
+{
+	PED_ASSERT (geom != NULL, return 0);
+	PED_ASSERT (out_cluster_sectors != NULL, return 0);
+	PED_ASSERT (out_cluster_count != NULL, return 0);
+	PED_ASSERT (out_fat_size != NULL, return 0);
+
+/* libparted can only reduce the cluster size at this point */
+	for (*out_cluster_sectors = cluster_sectors;
+	     *out_cluster_sectors >= fat_min_cluster_size (fat_type);
+	     *out_cluster_sectors /= 2) {
+		if (calc_sizes (geom->length, align, fat_type, root_dir_sectors,
+				*out_cluster_sectors,
+				out_cluster_count, out_fat_size))
+			return 1;
+	}
+	return 0;
+}
+
+/*  Calculates the number of sectors needed to be added to cluster_offset,
+    to make the cluster on the new file system match up with the ones
+    on the old file system.
+	However, some space is reserved by fat_calc_resize_sizes() and
+    friends, to allow room for this space.  If too much of this space is left
+    over, everyone will complain, so we have to be greedy, and use it all up...
+ */
+PedSector
+fat_calc_align_sectors (const PedFileSystem* new_fs,
+			const PedFileSystem* old_fs)
+{
+	FatSpecific*	old_fs_info = FAT_SPECIFIC (old_fs);
+	FatSpecific*	new_fs_info = FAT_SPECIFIC (new_fs);
+	PedSector	raw_old_meta_data_end;
+	PedSector	new_meta_data_size;
+	PedSector	min_new_meta_data_end;
+	PedSector	new_data_size;
+	PedSector	new_clusters_size;
+	PedSector	align;
+
+	new_meta_data_size
+		= fat_min_reserved_sector_count (new_fs_info->fat_type) 
+		  + new_fs_info->fat_sectors * 2;
+
+	if (new_fs_info->fat_type == FAT_TYPE_FAT16)
+		new_meta_data_size += new_fs_info->root_dir_sector_count;
+
+	raw_old_meta_data_end = old_fs->geom->start
+				 + old_fs_info->cluster_offset;
+
+	min_new_meta_data_end = new_fs->geom->start + new_meta_data_size;
+
+	if (raw_old_meta_data_end > min_new_meta_data_end)
+		align = (raw_old_meta_data_end - min_new_meta_data_end)
+			% new_fs_info->cluster_sectors;
+	else
+		align = (new_fs_info->cluster_sectors
+		         - (   (min_new_meta_data_end - raw_old_meta_data_end)
+				% new_fs_info->cluster_sectors   ))
+			% new_fs_info->cluster_sectors;
+
+	new_data_size = new_fs->geom->length - new_meta_data_size;
+	new_clusters_size = new_fs_info->cluster_count
+				* new_fs_info->cluster_sectors;
+
+	while (new_clusters_size + align + new_fs_info->cluster_sectors
+			<= new_data_size)
+		align += new_fs_info->cluster_sectors;
+
+	return align;
+}
+
+int
+fat_is_sector_in_clusters (const PedFileSystem* fs, PedSector sector)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+
+	return sector >= fs_info->cluster_offset
+	       && sector < fs_info->cluster_offset
+	      		   + fs_info->cluster_sectors * fs_info->cluster_count;
+}
+
+FatFragment
+fat_cluster_to_frag (const PedFileSystem* fs, FatCluster cluster)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+
+	PED_ASSERT (cluster >= 2 && cluster < fs_info->cluster_count + 2,
+		    return 0);
+
+	return (cluster - 2) * fs_info->cluster_frags;
+}
+
+FatCluster
+fat_frag_to_cluster (const PedFileSystem* fs, FatFragment frag)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+
+	PED_ASSERT (frag >= 0 && frag < fs_info->frag_count, return 0);
+
+	return frag / fs_info->cluster_frags + 2;
+}
+
+PedSector
+fat_frag_to_sector (const PedFileSystem* fs, FatFragment frag)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+
+	PED_ASSERT (frag >= 0 && frag < fs_info->frag_count, return 0);
+
+	return frag * fs_info->frag_sectors + fs_info->cluster_offset;
+}
+
+FatFragment
+fat_sector_to_frag (const PedFileSystem* fs, PedSector sector)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+
+	PED_ASSERT (sector >= fs_info->cluster_offset, return 0);
+
+	return (sector - fs_info->cluster_offset) / fs_info->frag_sectors;
+}
+
+PedSector
+fat_cluster_to_sector (const PedFileSystem* fs, FatCluster cluster)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+
+	PED_ASSERT (cluster >= 2 && cluster < fs_info->cluster_count + 2,
+		    return 0);
+
+	return (cluster - 2) * fs_info->cluster_sectors
+		+ fs_info->cluster_offset;
+}
+
+FatCluster
+fat_sector_to_cluster (const PedFileSystem* fs, PedSector sector)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+
+	PED_ASSERT (sector >= fs_info->cluster_offset, return 0);
+
+	return (sector - fs_info->cluster_offset) / fs_info->cluster_sectors
+		+ 2;
+}
+#endif /* !DISCOVER_ONLY */
diff --git a/parted-1.8.7/libparted/fs/fat/calc.h b/parted-1.8.7/libparted/fs/fat/calc.h
new file mode 100644
index 0000000..cd126e5
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/fat/calc.h
@@ -0,0 +1,78 @@
+/*
+    libparted
+    Copyright (C) 1998, 1999, 2000  Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef PED_FAT_CALC_H
+#define PED_FAT_CALC_H
+
+extern PedSector fat_min_cluster_size (FatType fat_type);
+extern PedSector fat_max_cluster_size (FatType fat_type);
+extern FatCluster fat_min_cluster_count (FatType fat_type);
+extern FatCluster fat_max_cluster_count (FatType fat_type);
+
+extern PedSector fat_min_reserved_sector_count (FatType fat_type);
+
+extern int fat_check_resize_geometry (const PedFileSystem* fs,
+	       			      const PedGeometry* geom,
+				      PedSector new_cluster_sectors,
+				      FatCluster new_cluster_count);
+
+extern int fat_calc_sizes (PedSector size,
+			   PedSector align,
+			   FatType fat_type,
+			   PedSector root_dir_sectors,
+			   PedSector* out_cluster_sectors,
+			   FatCluster* out_cluster_count,
+			   PedSector* out_fat_size);
+
+extern int fat_calc_resize_sizes (const PedGeometry* geom,
+				  PedSector align,
+				  FatType fat_type,
+				  PedSector root_dir_sectors,
+				  PedSector cluster_sectors,
+				  PedSector* out_cluster_sectors,
+				  FatCluster* out_cluster_count,
+				  PedSector* out_fat_size);
+
+extern PedSector
+fat_calc_align_sectors (const PedFileSystem* new_fs,
+			const PedFileSystem* old_fs);
+
+extern int
+fat_is_sector_in_clusters (const PedFileSystem* fs, PedSector sector);
+
+extern FatFragment
+fat_cluster_to_frag (const PedFileSystem* fs, FatCluster cluster);
+
+extern FatCluster
+fat_frag_to_cluster (const PedFileSystem* fs, FatFragment frag);
+
+extern PedSector
+fat_frag_to_sector (const PedFileSystem* fs, FatFragment frag);
+
+extern FatFragment
+fat_sector_to_frag (const PedFileSystem* fs, PedSector sector);
+
+extern PedSector
+fat_cluster_to_sector (const PedFileSystem* fs, FatCluster cluster);
+
+extern FatCluster
+fat_sector_to_cluster (const PedFileSystem* fs, PedSector sector);
+
+#endif /* PED_FAT_CALC_H */
+
diff --git a/parted-1.8.7/libparted/fs/fat/clstdup.c b/parted-1.8.7/libparted/fs/fat/clstdup.c
new file mode 100644
index 0000000..a4795b3
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/fat/clstdup.c
@@ -0,0 +1,425 @@
+/*
+    libparted
+    Copyright (C) 1998, 1999, 2000, 2001, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+#include <string.h>
+
+#include "fat.h"
+
+#ifndef DISCOVER_ONLY
+
+static int
+needs_duplicating (const FatOpContext* ctx, FatFragment frag)
+{
+	FatSpecific*	old_fs_info = FAT_SPECIFIC (ctx->old_fs);
+	FatCluster	cluster = fat_frag_to_cluster (ctx->old_fs, frag);
+	FatClusterFlag	flag;
+
+	PED_ASSERT (cluster >= 2 && cluster < old_fs_info->cluster_count + 2,
+		    return 0);
+
+	flag = fat_get_fragment_flag (ctx->old_fs, frag);
+	switch (flag) {
+	case FAT_FLAG_FREE:
+		return 0;
+
+	case FAT_FLAG_DIRECTORY:
+		return 1;
+
+	case FAT_FLAG_FILE:
+		return fat_op_context_map_static_fragment (ctx, frag) == -1;
+	
+	case FAT_FLAG_BAD:
+		return 0;
+	}
+
+	return 0;
+}
+
+static int
+search_next_fragment (FatOpContext* ctx)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (ctx->old_fs);
+
+	for (; ctx->buffer_offset < fs_info->frag_count; ctx->buffer_offset++) {
+		if (needs_duplicating (ctx, ctx->buffer_offset))
+			return 1;
+	}
+	return 0;	/* all done! */
+}
+
+static int
+read_marked_fragments (FatOpContext* ctx, FatFragment length)
+{
+	FatSpecific*		fs_info = FAT_SPECIFIC (ctx->old_fs);
+	int			status;
+	FatFragment		i;
+
+	ped_exception_fetch_all ();
+	status = fat_read_fragments (ctx->old_fs, fs_info->buffer,
+				     ctx->buffer_offset, length);
+	ped_exception_leave_all ();
+	if (status)
+		return 1;
+
+	ped_exception_catch ();
+
+/* something bad happened, so read fragments one by one.  (The error may
+   have occurred on an unused fragment: who cares) */
+	for (i = 0; i < length; i++) {
+		if (ctx->buffer_map [i]) {
+			if (!fat_read_fragment (ctx->old_fs,
+			      fs_info->buffer + i * fs_info->frag_size,
+			      ctx->buffer_offset + i))
+				return 0;
+		}
+	}
+
+	return 1;
+}
+
+static int
+fetch_fragments (FatOpContext* ctx)
+{
+	FatSpecific*	old_fs_info = FAT_SPECIFIC (ctx->old_fs);
+	FatFragment	fetch_length = 0;
+	FatFragment	frag;
+
+	for (frag = 0; frag < ctx->buffer_frags; frag++)
+		ctx->buffer_map [frag] = -1;
+
+	for (frag = 0;
+	     frag < ctx->buffer_frags
+		&& ctx->buffer_offset + frag < old_fs_info->frag_count;
+	     frag++) {
+		if (needs_duplicating (ctx, ctx->buffer_offset + frag)) {
+			ctx->buffer_map [frag] = 1;
+			fetch_length = frag + 1;
+		}
+	}
+
+	if (!read_marked_fragments (ctx, fetch_length))
+		return 0;
+
+	return 1;
+}
+
+/*****************************************************************************
+ * here starts the write code.  All assumes that ctx->buffer_map [first] and
+ * ctx->buffer_map [last] are occupied by fragments that need to be duplicated.
+ *****************************************************************************/
+
+/* finds the first fragment that is not going to get overwritten (that needs to
+   get read in) */
+static FatFragment
+get_first_underlay (const FatOpContext* ctx, int first, int last)
+{
+	int		old;
+	FatFragment	new;
+
+	PED_ASSERT (first <= last, return 0);
+
+	new = ctx->buffer_map [first];
+	for (old = first + 1; old <= last; old++) {
+		if (ctx->buffer_map [old] == -1)
+			continue;
+		new++;
+		if (ctx->buffer_map [old] != new)
+			return new;
+	}
+	return -1;
+}
+
+/* finds the last fragment that is not going to get overwritten (that needs to
+   get read in) */
+static FatFragment
+get_last_underlay (const FatOpContext* ctx, int first, int last)
+{
+	int		old;
+	FatFragment	new;
+
+	PED_ASSERT (first <= last, return 0);
+
+	new = ctx->buffer_map [last];
+	for (old = last - 1; old >= first; old--) {
+		if (ctx->buffer_map [old] == -1)
+			continue;
+		new--;
+		if (ctx->buffer_map [old] != new)
+			return new;
+	}
+	return -1;
+}
+
+/* "underlay" refers to the "static" fragments, that remain unchanged.
+ * when writing large chunks at a time, we don't want to clobber these,
+ * so we read them in, and write them back again.  MUCH quicker that way.
+ */
+static int
+quick_group_write_read_underlay (FatOpContext* ctx, int first, int last)
+{
+	FatSpecific*	new_fs_info = FAT_SPECIFIC (ctx->new_fs);
+	FatFragment	first_underlay;
+	FatFragment	last_underlay;
+	FatFragment	underlay_length;
+
+	PED_ASSERT (first <= last, return 0);
+
+	first_underlay = get_first_underlay (ctx, first, last);
+	if (first_underlay == -1)
+		return 1;
+	last_underlay = get_last_underlay (ctx, first, last);
+
+	PED_ASSERT (first_underlay <= last_underlay, return 0);
+
+	underlay_length = last_underlay - first_underlay + 1;
+	if (!fat_read_fragments (ctx->new_fs,
+				new_fs_info->buffer 
+				   + (first_underlay - ctx->buffer_map [first])
+					* new_fs_info->frag_size,
+				first_underlay,
+				underlay_length))
+		return 0;
+	return 1;
+}
+
+/* quick_group_write() makes no attempt to recover from errors - just
+ * does things fast.  If there is an error, slow_group_write() is
+ * called.
+ *    Note: we do syncing writes, to make sure there isn't any
+ * error writing out.  It's rather difficult recovering from errors
+ * further on.
+ */
+static int
+quick_group_write (FatOpContext* ctx, int first, int last)
+{
+	FatSpecific*		old_fs_info = FAT_SPECIFIC (ctx->old_fs);
+	FatSpecific*		new_fs_info = FAT_SPECIFIC (ctx->new_fs);
+	int			active_length;
+	int			i;
+	int			offset;
+
+	PED_ASSERT (first <= last, return 0);
+
+	ped_exception_fetch_all ();
+	if (!quick_group_write_read_underlay (ctx, first, last))
+		goto error;
+
+	for (i = first; i <= last; i++) {
+		if (ctx->buffer_map [i] == -1)
+			continue;
+
+		offset = ctx->buffer_map [i] - ctx->buffer_map [first];
+		memcpy (new_fs_info->buffer + offset * new_fs_info->frag_size,
+			old_fs_info->buffer + i * new_fs_info->frag_size,
+			new_fs_info->frag_size);
+	}
+
+	active_length = ctx->buffer_map [last] - ctx->buffer_map [first] + 1;
+	if (!fat_write_sync_fragments (ctx->new_fs, new_fs_info->buffer,
+				       ctx->buffer_map [first], active_length))
+		goto error;
+
+	ped_exception_leave_all ();
+	return 1;
+
+error:
+	ped_exception_catch ();
+	ped_exception_leave_all ();
+	return 0;
+}
+
+/* Writes fragments out, one at a time, avoiding errors on redundant writes
+ * on damaged parts of the disk we already know about.  If there's an error
+ * on one of the required fragments, it gets marked as bad, and a replacement
+ * is found.
+ */
+static int
+slow_group_write (FatOpContext* ctx, int first, int last)
+{
+	FatSpecific*		old_fs_info = FAT_SPECIFIC (ctx->old_fs);
+	FatSpecific*		new_fs_info = FAT_SPECIFIC (ctx->new_fs);
+	int			i;
+
+	PED_ASSERT (first <= last, return 0);
+
+	for (i = first; i <= last; i++) {
+		if (ctx->buffer_map [i] == -1)
+			continue;
+
+		while (!fat_write_sync_fragment (ctx->new_fs,
+			      old_fs_info->buffer + i * old_fs_info->frag_size,
+			      ctx->buffer_map [i])) {
+			fat_table_set_bad (new_fs_info->fat,
+					   ctx->buffer_map [i]);
+			ctx->buffer_map [i] = fat_table_alloc_cluster
+						(new_fs_info->fat);
+			if (ctx->buffer_map [i] == 0)
+				return 0;
+		}
+	}
+	return 1;
+}
+
+static int
+update_remap (FatOpContext* ctx, int first, int last)
+{
+	int		i;
+
+	PED_ASSERT (first <= last, return 0);
+
+	for (i = first; i <= last; i++) {
+		if (ctx->buffer_map [i] == -1)
+			continue;
+		ctx->remap [ctx->buffer_offset + i] = ctx->buffer_map [i];
+	}
+
+	return 1;
+}
+
+static int
+group_write (FatOpContext* ctx, int first, int last)
+{
+	PED_ASSERT (first <= last, return 0);
+
+	if (!quick_group_write (ctx, first, last)) {
+		if (!slow_group_write (ctx, first, last))
+			return 0;
+	}
+	if (!update_remap (ctx, first, last))
+		return 0;
+	return 1;
+}
+
+/* assumes fragment size and new_fs's cluster size are equal */
+static int
+write_fragments (FatOpContext* ctx)
+{
+	FatSpecific*		old_fs_info = FAT_SPECIFIC (ctx->old_fs);
+	FatSpecific*		new_fs_info = FAT_SPECIFIC (ctx->new_fs);
+	int			group_start;
+	int			group_end = -1;	/* shut gcc up! */
+	FatFragment		mapped_length;
+	FatFragment		i;
+	FatCluster		new_cluster;
+
+	PED_ASSERT (ctx->buffer_offset < old_fs_info->frag_count, return 0);
+
+	group_start = -1;
+	for (i = 0; i < ctx->buffer_frags; i++) {
+		if (ctx->buffer_map [i] == -1)
+			continue;
+
+		ctx->frags_duped++;
+
+		new_cluster = fat_table_alloc_cluster (new_fs_info->fat);
+		if (!new_cluster)
+			return 0;
+		fat_table_set_eof (new_fs_info->fat, new_cluster);
+		ctx->buffer_map [i] = fat_cluster_to_frag (ctx->new_fs,
+							   new_cluster);
+
+		if (group_start == -1)
+			group_start = group_end = i;
+
+		PED_ASSERT (ctx->buffer_map [i]
+				>= ctx->buffer_map [group_start],
+			    return 0);
+
+		mapped_length = ctx->buffer_map [i]
+				- ctx->buffer_map [group_start] + 1;
+		if (mapped_length <= ctx->buffer_frags) {
+			group_end = i;
+		} else {
+			/* ran out of room in the buffer, so write this group,
+			 * and start a new one...
+			 */
+			if (!group_write (ctx, group_start, group_end))
+				return 0;
+			group_start = group_end = i;
+		}
+	}
+
+	PED_ASSERT (group_start != -1, return 0);
+
+	if (!group_write (ctx, group_start, group_end))
+		return 0;
+	return 1;
+}
+
+/*  default all fragments to unmoved
+ */
+static void
+init_remap (FatOpContext* ctx)
+{
+	FatSpecific*		old_fs_info = FAT_SPECIFIC (ctx->old_fs);
+	FatFragment		i;
+
+	for (i = 0; i < old_fs_info->frag_count; i++)
+		ctx->remap[i] = fat_op_context_map_static_fragment (ctx, i);
+}
+
+static FatFragment
+count_frags_to_dup (FatOpContext* ctx)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (ctx->old_fs);
+	FatFragment	i;
+	FatFragment	total;
+
+	total = 0;
+
+	for (i = 0; i < fs_info->frag_count; i++) {
+		if (needs_duplicating (ctx, i))
+			total++;
+	}
+
+	return total;
+}
+
+/*  duplicates unreachable file clusters, and all directory clusters
+ */
+int
+fat_duplicate_clusters (FatOpContext* ctx, PedTimer* timer)
+{
+	FatFragment	total_frags_to_dup;
+
+	init_remap (ctx);
+	total_frags_to_dup = count_frags_to_dup (ctx);
+
+	ped_timer_reset (timer);
+	ped_timer_set_state_name (timer, "moving data");
+
+	ctx->buffer_offset = 0;
+	ctx->frags_duped = 0;
+	while (search_next_fragment (ctx)) {
+		ped_timer_update (
+			timer, 1.0 * ctx->frags_duped / total_frags_to_dup);
+
+		if (!fetch_fragments (ctx))
+			return 0;
+		if (!write_fragments (ctx))
+			return 0;
+		ctx->buffer_offset += ctx->buffer_frags;
+	}
+
+	ped_timer_update (timer, 1.0);
+	return 1;
+}
+
+#endif /* !DISCOVER_ONLY */
diff --git a/parted-1.8.7/libparted/fs/fat/clstdup.h b/parted-1.8.7/libparted/fs/fat/clstdup.h
new file mode 100644
index 0000000..e99a2d3
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/fat/clstdup.h
@@ -0,0 +1,29 @@
+/*
+    libparted
+    Copyright (C) 1999 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef PED_FAT_CLSTDUP_H_INCLUDED
+#define PED_FAT_CLSTDUP_H_INCLUDED
+
+#include "context.h"
+
+/* the big important one :-) */
+extern int fat_duplicate_clusters (FatOpContext* ctx, PedTimer* timer);
+
+#endif /* PED_FAT_CLSTDUP_H_INCLUDED */
+
diff --git a/parted-1.8.7/libparted/fs/fat/context.c b/parted-1.8.7/libparted/fs/fat/context.c
new file mode 100644
index 0000000..bf0df16
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/fat/context.c
@@ -0,0 +1,261 @@
+/*
+    libparted
+    Copyright (C) 1998, 1999, 2000, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+#include <string.h>
+
+#include "fat.h"
+
+#ifndef DISCOVER_ONLY
+
+/* Note: this deals with file system start and end sectors, even if the physical
+ * devices are different (eg for fat_copy())  Perhaps this is a hack, but it
+ * works ;-)
+ */
+static int
+calc_deltas (FatOpContext* ctx)
+{
+	PedFileSystem*	old_fs = ctx->old_fs;
+	PedFileSystem*	new_fs = ctx->new_fs;
+	FatSpecific*	old_fs_info = FAT_SPECIFIC (old_fs);
+	FatSpecific*	new_fs_info = FAT_SPECIFIC (new_fs);
+	PedSector	old_cluster_ofs;
+	PedSector	new_cluster_ofs;
+	PedSector	sector_delta;
+
+	old_cluster_ofs = old_fs->geom->start + old_fs_info->cluster_offset;
+	new_cluster_ofs = new_fs->geom->start + new_fs_info->cluster_offset;
+
+	if (new_cluster_ofs > old_cluster_ofs) {
+		ctx->start_move_dir = FAT_DIR_FORWARD;
+		sector_delta = new_cluster_ofs - old_cluster_ofs;
+	} else {
+		ctx->start_move_dir = FAT_DIR_BACKWARD;
+		sector_delta = old_cluster_ofs - new_cluster_ofs;
+	}
+
+	if (sector_delta % new_fs_info->cluster_sectors) {
+		ped_exception_throw (
+			PED_EXCEPTION_BUG, PED_EXCEPTION_CANCEL,
+			_("Cluster start delta = %d, which is not a multiple "
+			  "of the cluster size %d."),
+			(int) sector_delta,
+			(int) new_fs_info->cluster_sectors);
+		return 0;
+	}
+	
+	ctx->start_move_delta = sector_delta / ctx->frag_sectors;
+
+#ifdef PED_VERBOSE
+	printf ("Start move delta is: %d %s.\n",
+		(int) ctx->start_move_delta,
+		(ctx->start_move_dir == FAT_DIR_FORWARD)?
+			"forwards" : "backwards");
+#endif
+
+	return 1;
+}
+
+FatOpContext*
+fat_op_context_new (PedFileSystem* new_fs, PedFileSystem* old_fs)
+{
+	FatSpecific*	old_fs_info = FAT_SPECIFIC (old_fs);
+	FatSpecific*	new_fs_info = FAT_SPECIFIC (new_fs);
+	FatOpContext*	ctx;
+
+	ctx = (FatOpContext*) ped_malloc (sizeof (FatOpContext));
+	if (!ctx)
+		goto error;
+
+	ctx->frag_sectors = PED_MIN (old_fs_info->cluster_sectors,
+				     new_fs_info->cluster_sectors);
+	if (!fat_set_frag_sectors (new_fs, ctx->frag_sectors))
+		goto error;
+	if (!fat_set_frag_sectors (old_fs, ctx->frag_sectors))
+		goto error;
+
+	ctx->buffer_frags = old_fs_info->buffer_sectors / ctx->frag_sectors;
+	ctx->buffer_map = (FatFragment*) ped_malloc (sizeof (FatFragment)
+						     * ctx->buffer_frags);
+	if (!ctx->buffer_map)
+		goto error_free_ctx;
+
+	ctx->remap = (FatFragment*) ped_malloc (sizeof (FatFragment)
+						   * old_fs_info->frag_count);
+	if (!ctx->remap)
+		goto error_free_buffer_map;
+
+	ctx->new_fs = new_fs;
+	ctx->old_fs = old_fs;
+	if (!calc_deltas (ctx))
+		goto error_free_buffer_map;
+
+	return ctx;
+
+error_free_buffer_map:
+	ped_free (ctx->buffer_map);
+error_free_ctx:
+	ped_free (ctx);
+error:
+	return NULL;
+}
+
+void
+fat_op_context_destroy (FatOpContext* ctx)
+{
+	ped_free (ctx->buffer_map);
+	ped_free (ctx->remap);
+	ped_free (ctx);
+}
+
+FatFragment
+fat_op_context_map_static_fragment (const FatOpContext* ctx, FatFragment frag)
+{
+	FatSpecific*	new_fs_info = FAT_SPECIFIC (ctx->new_fs);
+	FatFragment	result;
+
+	if (ctx->new_fs->geom->dev != ctx->old_fs->geom->dev)
+		return -1;
+
+	if (ctx->start_move_dir == FAT_DIR_FORWARD) {
+		if (frag < ctx->start_move_delta)
+			return -1;
+		result = frag - ctx->start_move_delta;
+	} else {
+		result = frag + ctx->start_move_delta;
+	}
+
+	if (result >= new_fs_info->frag_count)
+		return -1;
+
+	return result;
+}
+
+FatCluster
+fat_op_context_map_static_cluster (const FatOpContext* ctx, FatCluster clst)
+{
+	FatFragment	mapped_frag;
+
+	mapped_frag = fat_op_context_map_static_fragment (ctx,
+				fat_cluster_to_frag (ctx->old_fs, clst)); 
+	if (mapped_frag != -1)
+		return fat_frag_to_cluster (ctx->new_fs, mapped_frag);
+	else
+		return 0;
+}
+
+FatFragment
+fat_op_context_map_fragment (const FatOpContext* ctx, FatFragment frag)
+{
+	return ctx->remap [frag];
+}
+
+FatCluster
+fat_op_context_map_cluster (const FatOpContext* ctx, FatCluster clst)
+{
+	FatFragment	mapped_frag;
+
+	mapped_frag = fat_op_context_map_fragment (ctx,
+				fat_cluster_to_frag (ctx->old_fs, clst)); 
+	if (mapped_frag != -1)
+		return fat_frag_to_cluster (ctx->new_fs, mapped_frag);
+	else
+		return 0;
+}
+
+/* This function sets the initial fat for the new resized file system.
+   This is in *NO WAY* a proper FAT table - all it does is:
+	a) mark bad clusters as bad.
+	b) mark used clusters (that is, clusters from the original FS that are
+	   reachable from the resized one).  Marks as EOF (i.e. used, end of
+	   file chain).
+	c) mark original file system metadata as EOF (i.e. used), to prevent
+	   it from being clobbered.  This will leave the original file system
+	   intact, until the partition table is modified, if the start of
+	   the partition is moved.
+
+   The FATs are rebuilt *properly* after cluster relocation.  This here is
+   only to mark clusters as used, so when cluster relocation occurs, clusters
+   aren't relocated on top of ones marked in a, b or c.
+*/
+int
+fat_op_context_create_initial_fat (FatOpContext* ctx)
+{
+	FatSpecific*	old_fs_info = FAT_SPECIFIC (ctx->old_fs);
+	FatSpecific*	new_fs_info = FAT_SPECIFIC (ctx->new_fs);
+	FatCluster	clst;
+	FatCluster	new_clst;
+	PedSector	sect;
+	PedSector	new_sect;
+	FatFragment	frag;
+	FatFragment	new_frag;
+	FatClusterFlag	frag_flag;
+
+	new_fs_info->fat = fat_table_new (
+		new_fs_info->fat_type,
+		new_fs_info->fat_sectors * 512
+			/ fat_table_entry_size (new_fs_info->fat_type));
+	if (!new_fs_info->fat)
+		return 0;
+
+	if (!fat_table_set_cluster_count (new_fs_info->fat,
+					  new_fs_info->cluster_count))
+		return 0;
+
+/* mark bad and used clusters */
+	for (frag = 0; frag < old_fs_info->frag_count; frag++) {
+		frag_flag = fat_get_fragment_flag (ctx->old_fs, frag);
+		if (frag_flag == FAT_FLAG_FREE)
+			continue;
+
+		new_frag = fat_op_context_map_static_fragment (ctx, frag);
+		if (new_frag == -1)
+			continue;
+
+		new_clst = fat_frag_to_cluster (ctx->new_fs, new_frag);
+		PED_ASSERT (new_clst != 0, return 0);
+
+		if (frag_flag == FAT_FLAG_BAD) {
+			if (!fat_table_set_bad (new_fs_info->fat, new_clst))
+				return 0;
+		} else {
+			if (!fat_table_set_eof (new_fs_info->fat, new_clst))
+				return 0;
+		}
+	}
+
+/* mark metadata regions that map to clusters on the new FS */
+	for (sect = 0; sect < old_fs_info->cluster_offset; sect++) {
+		new_sect = ped_geometry_map (ctx->new_fs->geom,
+					     ctx->old_fs->geom, sect);
+		if (new_sect == -1
+		    || !fat_is_sector_in_clusters (ctx->new_fs, new_sect))
+			continue;
+
+		clst = fat_sector_to_cluster (ctx->new_fs, new_sect);
+		PED_ASSERT (clst != 0, return 0);
+
+		if (!fat_table_set_eof (new_fs_info->fat, clst))
+			return 0;
+	}
+
+	return 1;
+}
+
+#endif /* !DISCOVER_ONLY */
diff --git a/parted-1.8.7/libparted/fs/fat/context.h b/parted-1.8.7/libparted/fs/fat/context.h
new file mode 100644
index 0000000..f552bcb
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/fat/context.h
@@ -0,0 +1,70 @@
+/*
+    libparted
+    Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef PED_FAT_CONTEXT_H_INCLUDED
+#define PED_FAT_CONTEXT_H_INCLUDED
+
+#include "count.h"
+
+enum _FatDirection {
+	FAT_DIR_FORWARD,
+	FAT_DIR_BACKWARD
+};
+typedef enum _FatDirection FatDirection;
+
+struct _FatOpContext {
+	PedFileSystem*		old_fs;
+	PedFileSystem*		new_fs;
+
+	PedSector		frag_sectors;	/* should equal old_fs and
+						   new_fs's frag_sectors */
+
+	FatDirection		start_move_dir;
+	FatFragment		start_move_delta;
+
+	FatFragment		buffer_offset;
+	FatFragment		buffer_frags;
+	FatFragment*		buffer_map;
+
+	FatFragment		frags_duped;
+
+	FatFragment*		remap;
+
+	FatCluster		new_root_dir [32];
+};
+typedef struct _FatOpContext FatOpContext;
+
+extern FatOpContext* fat_op_context_new (PedFileSystem* new_fs,
+					 PedFileSystem* old_fs);
+
+extern void fat_op_context_destroy (FatOpContext* ctx);
+
+extern FatFragment fat_op_context_map_static_fragment (const FatOpContext* ctx,
+						       FatFragment frag);
+extern FatCluster fat_op_context_map_static_cluster (const FatOpContext* ctx,
+						     FatCluster clst);
+
+extern FatFragment fat_op_context_map_fragment (const FatOpContext* ctx,
+					        FatFragment frag);
+extern FatCluster fat_op_context_map_cluster (const FatOpContext* ctx,
+					      FatCluster clst);
+
+extern int fat_op_context_create_initial_fat (FatOpContext* ctx);
+
+#endif /* PED_FAT_CONTEXT_H_INCLUDED */
diff --git a/parted-1.8.7/libparted/fs/fat/count.c b/parted-1.8.7/libparted/fs/fat/count.c
new file mode 100644
index 0000000..1909c45
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/fat/count.c
@@ -0,0 +1,412 @@
+/*
+    libparted
+    Copyright (C) 1998, 1999, 2000, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+
+    I can also be contacted at:
+
+    Andrew Clausen
+    18 Shaw St
+    Ashwood, 3147
+    Victoria, Australia
+
+*/
+
+#include <config.h>
+#include "fat.h"
+#include "traverse.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifndef DISCOVER_ONLY
+
+#if 0
+/* extremely ugly hack: stick everything that obviously isn't an unmovable file
+ * in here.  Note: DAT is a bit dubious.  Unfortunately, it's used by the
+ * registry, so it'll be all over the place :-(
+ */
+static char*	movable_extensions[] = {
+	"",
+	"1ST",
+	"AVI",
+	"BAK", "BAT", "BMP",
+	"CFG", "COM", "CSS",
+	"DAT", "DLL", "DOC", "DRV",
+	"EXE",
+	"FAQ", "FLT", "FON",
+	"GID", "GIF",
+	"HLP", "HTT", "HTM",
+	"ICO", "INI",
+	"JPG",
+	"LNK", "LOG",
+	"KBD",
+	"ME", "MID", "MSG",
+	"OCX", "OLD",
+	"PIF", "PNG", "PRV",
+	"RTF",
+	"SCR", "SYS",
+	"TMP", "TTF", "TXT",
+	"URL",
+	"WAV",
+	"VBX", "VOC", "VXD",
+	NULL
+};
+
+static char*
+get_extension (char* file_name)
+{
+	char*		ext;
+
+	ext = strrchr (file_name, '.');
+	if (!ext)
+		return "";
+	if (strchr (ext, '\\'))
+		return "";
+	return ext + 1;
+}
+
+static int
+is_movable_system_file (char* file_name)
+{
+	char*		ext = get_extension (file_name);
+	int		i;
+
+	for (i = 0; movable_extensions [i]; i++) {
+		if (strcasecmp (ext, movable_extensions [i]) == 0)
+			return 1;
+	}
+
+	return 0;
+}
+#endif /* 0 */
+
+/*
+    prints out the sequence of clusters for a given file chain, beginning
+    at start_cluster.
+*/
+#ifdef PED_VERBOSE
+static void
+print_chain (PedFileSystem* fs, FatCluster start)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+	FatCluster	clst;
+	int		this_row;
+
+	this_row = 0;
+	for (clst = start; !fat_table_is_eof (fs_info->fat, clst);
+	     clst = fat_table_get (fs_info->fat, clst)) {
+		printf ("  %d", (int) clst);
+		if (++this_row == 7) {
+                        putchar ('\n');
+			this_row = 0;
+		}
+	}
+	putchar ('\n');
+}
+#endif /* PED_VERBOSE */
+
+static PedSector
+remainder_round_up (PedSector a, PedSector b)
+{
+	PedSector	result;
+
+	result = a % b;
+	if (!result)
+		result = b;
+	return result;
+}
+
+/*
+    traverse the FAT for a file/directory, marking each entry's flag
+    to "flag".
+*/
+static int
+flag_traverse_fat (PedFileSystem* fs, const char* chain_name, FatCluster start,
+		   FatClusterFlag flag, PedSector size)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+	FatCluster	clst;
+	FatCluster	prev_clst;
+	int		last_cluster_usage;
+	FatCluster	chain_length = 0;
+
+	if (fat_table_is_eof (fs_info->fat, start)) {
+		if (ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_IGNORE_CANCEL,
+			_("Bad directory entry for %s: first cluster is the "
+			  "end of file marker."),
+			chain_name)
+				!= PED_EXCEPTION_IGNORE)
+			return 0;
+	}
+
+	for (prev_clst = clst = start; !fat_table_is_eof (fs_info->fat, clst);
+	     prev_clst = clst, clst = fat_table_get (fs_info->fat, clst)) {
+		chain_length++;
+		if (!clst) {
+			ped_exception_throw (PED_EXCEPTION_FATAL,
+				PED_EXCEPTION_CANCEL,
+				_("Bad FAT: unterminated chain for %s.  You "
+				  "should run dosfsck or scandisk."),
+				chain_name);
+			return 0;
+		}
+
+		if (clst >= fs_info->fat->cluster_count + 2) {
+			ped_exception_throw (PED_EXCEPTION_FATAL,
+				PED_EXCEPTION_CANCEL,
+				_("Bad FAT: cluster %d outside file system "
+				  "in chain for %s.  You should run dosfsck "
+				  "or scandisk."),
+				(int) clst, chain_name);
+			return 0;
+		}
+
+		if (fs_info->cluster_info [clst].flag != FAT_FLAG_FREE ) {
+			ped_exception_throw (PED_EXCEPTION_FATAL,
+				PED_EXCEPTION_CANCEL,
+				_("Bad FAT: cluster %d is cross-linked for "
+				  "%s.  You should run dosfsck or scandisk."),
+				(int) clst, chain_name);
+			return 0;
+		}
+
+		if (flag == FAT_FLAG_DIRECTORY)
+			fs_info->total_dir_clusters++;
+
+		fs_info->cluster_info [clst].flag = flag;
+		fs_info->cluster_info [clst].units_used = 0;	/* 0 == 64 */
+	}
+
+	if (size
+	    && chain_length
+	    		!= ped_div_round_up (size, fs_info->cluster_sectors)) {
+		if (ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_IGNORE_CANCEL,
+			_("%s is %dk, but it has %d clusters (%dk)."),
+			chain_name,
+			(int) size / 2,
+			(int) chain_length,
+			(int) chain_length * fs_info->cluster_sectors / 2)
+				!= PED_EXCEPTION_IGNORE)
+			return 0;
+	}
+
+	last_cluster_usage
+		= ped_div_round_up (64 * remainder_round_up (size,
+						fs_info->cluster_sectors),
+				fs_info->cluster_sectors);
+
+	fs_info->cluster_info [prev_clst].units_used = last_cluster_usage;
+
+	return 1;
+}
+
+/*
+    recursively traverses a directory, flagging all clusters in the process.
+    It frees the traverse_info structure before returning.
+*/
+static int
+flag_traverse_dir (FatTraverseInfo* trav_info) {
+	PedFileSystem*		fs = trav_info->fs;
+	FatDirEntry*		this_entry;
+	FatTraverseInfo*	subdir_trav_info;
+	char			file_name [512];
+	char*			file_name_start;
+	FatCluster		first_cluster;
+	PedSector		size;
+
+	PED_ASSERT (trav_info != NULL, return 0);
+
+	strcpy (file_name, trav_info->dir_name);
+	file_name_start = file_name + strlen (file_name);
+
+	while ( (this_entry = fat_traverse_next_dir_entry (trav_info)) ) {
+		if (fat_dir_entry_is_null_term (this_entry))
+			break;
+		if (!fat_dir_entry_has_first_cluster (this_entry, fs))
+			continue;
+		if (this_entry->name [0] == '.')
+			continue;	/* skip . and .. entries */
+
+		fat_dir_entry_get_name (this_entry, file_name_start);
+		first_cluster = fat_dir_entry_get_first_cluster(this_entry, fs);
+		size = ped_div_round_up (fat_dir_entry_get_length (this_entry),
+					 512);
+
+#ifdef PED_VERBOSE
+		printf ("%s: ", file_name);
+		print_chain (fs, first_cluster);
+#endif
+
+#if 0
+		if (fat_dir_entry_is_system_file (this_entry)
+		    && !is_movable_system_file (file_name)) {
+                        PedExceptionOption ex_status;
+			ex_status = ped_exception_throw (
+				PED_EXCEPTION_WARNING,
+				PED_EXCEPTION_IGNORE_CANCEL,
+				_("The file %s is marked as a system file.  "
+				"This means moving it could cause some "
+				"programs to stop working."),
+				file_name);
+
+			switch (ex_status) {
+				case PED_EXCEPTION_CANCEL:
+					return 0;
+
+				case PED_EXCEPTION_UNHANDLED:
+					ped_exception_catch ();
+				case PED_EXCEPTION_IGNORE:
+			}
+		}
+#endif /* 0 */
+
+		if (fat_dir_entry_is_directory (this_entry)) {
+			if (!flag_traverse_fat (fs, file_name, first_cluster,
+						FAT_FLAG_DIRECTORY, size))
+				return 0;
+
+			subdir_trav_info = fat_traverse_directory (trav_info,
+								   this_entry);
+			if (!subdir_trav_info)
+				return 0;
+			if (!flag_traverse_dir (subdir_trav_info))
+				return 0;
+		} else if (fat_dir_entry_is_file (this_entry)) {
+			if (!flag_traverse_fat (fs, file_name, first_cluster,
+						FAT_FLAG_FILE, size)) 
+				return 0;
+		}
+	}
+
+	fat_traverse_complete (trav_info);
+	return 1;
+}
+
+static void
+_mark_bad_clusters (PedFileSystem* fs)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+	FatCluster	cluster;
+
+	for (cluster = 2; cluster < fs_info->cluster_count + 2; cluster++) {
+		if (fat_table_is_bad (fs_info->fat, cluster))
+			fs_info->cluster_info [cluster].flag = FAT_FLAG_BAD;
+	}
+}
+
+/*  
+    fills in cluster_info.  Each FAT entry (= cluster) is flagged as either
+    FAT_FLAG_FREE, FAT_FLAG_FILE or FAT_FLAG_DIRECTORY.
+
+    Also, the fraction of each cluster (x/64) is recorded
+*/
+int
+fat_collect_cluster_info (PedFileSystem* fs) {
+	FatSpecific*		fs_info = FAT_SPECIFIC (fs);
+	FatTraverseInfo*	trav_info;
+    
+	/* set all clusters to unused as a default */
+	memset (fs_info->cluster_info, 0, fs_info->fat->cluster_count + 2);
+	fs_info->total_dir_clusters = 0;
+
+	if (fs_info->fat_type == FAT_TYPE_FAT32) {
+		trav_info = fat_traverse_begin (fs, fs_info->root_cluster,
+						"\\");
+		if (!flag_traverse_dir (trav_info))
+			return 0;
+		if (!flag_traverse_fat (fs, "\\", fs_info->root_cluster,
+                                        FAT_FLAG_DIRECTORY, 0))
+			return 0;
+	} else {
+		trav_info = fat_traverse_begin (fs, FAT_ROOT, "\\");
+		if (!flag_traverse_dir (trav_info))
+			return 0;
+	}
+
+	_mark_bad_clusters (fs);
+	return 1;
+}
+
+FatClusterFlag
+fat_get_cluster_flag (PedFileSystem* fs, FatCluster cluster)
+{
+	FatSpecific*		fs_info = FAT_SPECIFIC (fs);
+
+	return fs_info->cluster_info [cluster].flag;
+}
+
+PedSector
+fat_get_cluster_usage (PedFileSystem* fs, FatCluster cluster)
+{
+	FatSpecific*		fs_info = FAT_SPECIFIC (fs);
+	int			fraction;
+
+	if (fs_info->cluster_info [cluster].flag == FAT_FLAG_FREE)
+		return 0;
+
+	fraction = fs_info->cluster_info [cluster].units_used;
+	if (fraction == 0)
+		fraction = 64;
+
+	return fraction * fs_info->cluster_sectors / 64;
+}
+
+FatClusterFlag
+fat_get_fragment_flag (PedFileSystem* fs, FatFragment frag)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+	FatCluster	cluster = fat_frag_to_cluster (fs, frag);
+	FatFragment	offset = frag % fs_info->cluster_frags;
+	FatFragment	last_frag_used;
+	FatClusterFlag	flag;
+
+	PED_ASSERT (cluster >= 2 && cluster < fs_info->cluster_count + 2,
+		    return 0);
+
+	flag = fat_get_cluster_flag (fs, cluster);
+	if (flag != FAT_FLAG_FILE && flag != FAT_FLAG_DIRECTORY)
+		return flag;
+	last_frag_used = (fat_get_cluster_usage (fs, cluster) - 1)
+				/ fs_info->frag_sectors;
+	if (offset > last_frag_used)
+		return FAT_FLAG_FREE;
+	else
+		return flag;
+}
+
+int
+fat_is_fragment_active (PedFileSystem* fs, FatFragment frag)
+{
+	switch (fat_get_fragment_flag (fs, frag)) {
+		case FAT_FLAG_FREE:
+		case FAT_FLAG_BAD:
+			return 0;
+
+		case FAT_FLAG_FILE:
+		case FAT_FLAG_DIRECTORY:
+			return 1;
+	}
+	return 0;
+}
+
+#endif /* !DISCOVER_ONLY */
+
diff --git a/parted-1.8.7/libparted/fs/fat/count.h b/parted-1.8.7/libparted/fs/fat/count.h
new file mode 100644
index 0000000..8099011
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/fat/count.h
@@ -0,0 +1,53 @@
+/*
+    libparted
+    Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+
+    I can also be contacted at:
+
+    Andrew Clausen
+    18 Shaw St
+    Ashwood, 3147
+    Victoria, Australia
+*/
+
+#ifndef COUNT_H_INCLUDED
+#define COUNT_H_INCLUDED
+
+typedef enum _FatClusterFlag FatClusterFlag;
+typedef struct _FatClusterInfo FatClusterInfo;
+
+enum _FatClusterFlag {
+	FAT_FLAG_FREE=0,
+	FAT_FLAG_FILE=1,
+	FAT_FLAG_DIRECTORY=2,
+	FAT_FLAG_BAD=3
+};
+
+struct __attribute__ ((packed)) _FatClusterInfo {
+	unsigned int    units_used:6;   /* 1 unit = cluster_size / 64 */
+	FatClusterFlag  flag:2;
+} fat16;
+
+extern int fat_collect_cluster_info (PedFileSystem *fs);
+extern FatClusterFlag fat_get_cluster_flag (PedFileSystem* fs,
+					    FatCluster cluster);
+extern PedSector fat_get_cluster_usage (PedFileSystem* fs, FatCluster cluster);
+extern FatClusterFlag fat_get_fragment_flag (PedFileSystem* fs,
+					     FatFragment frag);
+extern int fat_is_fragment_active (PedFileSystem* fs, FatFragment frag);
+
+#endif /* COUNT_H_INCLUDED */
diff --git a/parted-1.8.7/libparted/fs/fat/fat.c b/parted-1.8.7/libparted/fs/fat/fat.c
new file mode 100644
index 0000000..ebf023d
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/fat/fat.c
@@ -0,0 +1,888 @@
+/*
+    libparted
+    Copyright (C) 1998, 1999, 2000, 2001, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+#include <string.h>
+#include <uuid/uuid.h>
+
+#include "fat.h"
+#include "calc.h"
+
+PedFileSystem*
+fat_alloc (const PedGeometry* geom)
+{
+	PedFileSystem*		fs;
+
+	fs = (PedFileSystem*) ped_malloc (sizeof (PedFileSystem));
+	if (!fs)
+		goto error;
+
+	fs->type_specific = (FatSpecific*) ped_malloc (sizeof (FatSpecific));
+	if (!fs->type_specific)
+		goto error_free_fs;
+
+	fs->geom = ped_geometry_duplicate (geom);
+	if (!fs->geom)
+		goto error_free_type_specific;
+
+	fs->checked = 0;
+	return fs;
+
+error_free_type_specific:
+	ped_free (fs->type_specific);
+error_free_fs:
+	ped_free (fs);
+error:
+	return NULL;
+}
+
+/* Requires the boot sector to be analysed */
+int
+fat_alloc_buffers (PedFileSystem* fs)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+
+	fs_info->buffer_sectors = BUFFER_SIZE;
+        fs_info->buffer = ped_malloc (fs_info->buffer_sectors * 512);
+        if (!fs_info->buffer)
+		goto error;
+
+	fs_info->cluster_info = ped_malloc (fs_info->cluster_count + 2);
+	if (!fs_info->cluster_info)
+		goto error_free_buffer;
+
+	return 1;
+
+error_free_buffer:
+	ped_free (fs_info->buffer);
+error:
+	return 0;
+};
+
+void
+fat_free_buffers (PedFileSystem* fs)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+
+	ped_free (fs_info->cluster_info);
+	ped_free (fs_info->buffer);
+}
+
+void
+fat_free (PedFileSystem* fs)
+{
+	ped_geometry_destroy (fs->geom);
+	ped_free (fs->type_specific);
+	ped_free (fs);
+}
+
+int
+fat_set_frag_sectors (PedFileSystem* fs, PedSector frag_sectors)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+
+	PED_ASSERT (fs_info->cluster_sectors % frag_sectors == 0
+			&& frag_sectors <= fs_info->cluster_sectors,
+		    return 0);
+
+	fs_info->frag_size = frag_sectors * 512;
+	fs_info->frag_sectors = frag_sectors;
+	fs_info->buffer_frags = fs_info->buffer_sectors / frag_sectors;
+	fs_info->cluster_frags = fs_info->cluster_sectors / frag_sectors;
+	fs_info->frag_count = fs_info->cluster_count * fs_info->cluster_frags;
+
+	return 1;
+}
+
+PedGeometry*
+fat_probe (PedGeometry* geom, FatType* fat_type)
+{
+	PedFileSystem*		fs;
+	FatSpecific*		fs_info;
+	PedGeometry*		result;
+
+	fs = fat_alloc (geom);
+	if (!fs)
+		goto error;
+	fs_info = (FatSpecific*) fs->type_specific;
+
+	if (!fat_boot_sector_read (&fs_info->boot_sector, geom))
+		goto error_free_fs;
+	if (!fat_boot_sector_analyse (&fs_info->boot_sector, fs))
+		goto error_free_fs;
+
+	*fat_type = fs_info->fat_type;
+	result = ped_geometry_new (geom->dev, geom->start,
+				   fs_info->sector_count);
+
+	fat_free (fs);
+	return result;
+
+error_free_fs:
+	fat_free (fs);
+error:
+	return NULL;
+}
+
+PedGeometry*
+fat_probe_fat16 (PedGeometry* geom)
+{
+	FatType		fat_type;
+	PedGeometry*	probed_geom = fat_probe (geom, &fat_type);
+
+	if (probed_geom) {
+		if (fat_type == FAT_TYPE_FAT16)
+			return probed_geom;
+		ped_geometry_destroy (probed_geom);
+	}
+	return NULL;
+}
+
+PedGeometry*
+fat_probe_fat32 (PedGeometry* geom)
+{
+	FatType		fat_type;
+	PedGeometry*	probed_geom = fat_probe (geom, &fat_type);
+
+	if (probed_geom) {
+		if (fat_type == FAT_TYPE_FAT32)
+			return probed_geom;
+		ped_geometry_destroy (probed_geom);
+	}
+	return NULL;
+}
+
+#ifndef DISCOVER_ONLY
+int
+fat_clobber (PedGeometry* geom)
+{
+	FatBootSector		boot_sector;
+
+	if (!fat_boot_sector_read (&boot_sector, geom))
+		return 1;
+
+	boot_sector.system_id[0] = 0;
+	boot_sector.boot_sign = 0;
+	if (boot_sector.u.fat16.fat_name[0] == 'F')
+		boot_sector.u.fat16.fat_name[0] = 0;
+	if (boot_sector.u.fat32.fat_name[0] == 'F')
+		boot_sector.u.fat32.fat_name[0] = 0;
+
+        return ped_geometry_write (geom, &boot_sector, 0, 1);
+}
+
+static int
+_init_fats (PedFileSystem* fs)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+	FatCluster	table_size;
+
+	table_size = fs_info->fat_sectors * 512
+		     / fat_table_entry_size (fs_info->fat_type);
+	fs_info->fat = fat_table_new (fs_info->fat_type, table_size);
+	if (!fs_info->fat)
+		goto error;
+
+	if (!fat_table_read (fs_info->fat, fs, 0))
+		goto error_free_fat;
+
+	return 1;
+
+error_free_fat:
+	fat_table_destroy (fs_info->fat);
+error:
+	return 0;
+}
+
+PedFileSystem*
+fat_open (PedGeometry* geom)
+{
+	PedFileSystem*		fs;
+	FatSpecific*		fs_info;
+
+	fs = fat_alloc (geom);
+	if (!fs)
+		goto error;
+	fs_info = (FatSpecific*) fs->type_specific;
+
+	if (!fat_boot_sector_read (&fs_info->boot_sector, geom))
+		goto error_free_fs;
+	if (!fat_boot_sector_analyse (&fs_info->boot_sector, fs))
+		goto error_free_fs;
+	fs->type = (fs_info->fat_type == FAT_TYPE_FAT16)
+				? &fat16_type
+				: &fat32_type;
+	if (fs_info->fat_type == FAT_TYPE_FAT32) {
+		if (!fat_info_sector_read (&fs_info->info_sector, fs))
+			goto error_free_fs;
+	}
+
+	if (!_init_fats (fs))
+		goto error_free_fs;
+	if (!fat_alloc_buffers (fs)) 
+		goto error_free_fat_table;
+	if (!fat_collect_cluster_info (fs))
+		goto error_free_buffers;
+
+	return fs;
+
+error_free_buffers:
+	fat_free_buffers (fs);
+error_free_fat_table:
+	fat_table_destroy (fs_info->fat);
+error_free_fs:
+	fat_free (fs);
+error:
+	return NULL;
+}
+
+static int
+fat_root_dir_clear (PedFileSystem* fs)
+{
+	FatSpecific*		fs_info = FAT_SPECIFIC (fs);
+	memset (fs_info->buffer, 0, 512 * fs_info->root_dir_sector_count);
+	return ped_geometry_write (fs->geom, fs_info->buffer,
+				   fs_info->root_dir_offset,
+				   fs_info->root_dir_sector_count);
+}
+
+/* hack: use the ext2 uuid library to generate a reasonably random (hopefully
+ * with /dev/random) number.  Unfortunately, we can only use 4 bytes of it
+ */
+static uint32_t
+_gen_new_serial_number ()
+{
+	uuid_t		uuid;
+
+	uuid_generate (uuid);
+	return * (uint32_t*) &uuid [0];
+}
+
+PedFileSystem*
+fat_create (PedGeometry* geom, FatType fat_type, PedTimer* timer)
+{
+	PedFileSystem*		fs;
+	FatSpecific*		fs_info;
+	FatCluster		table_size;
+
+	fs = fat_alloc (geom);
+	if (!fs)
+		goto error;
+	fs_info = (FatSpecific*) fs->type_specific;
+
+	fs_info->logical_sector_size = 1;
+	fs_info->sectors_per_track = geom->dev->bios_geom.sectors;
+	fs_info->heads = geom->dev->bios_geom.heads;
+	fs_info->sector_count = fs->geom->length;
+	fs_info->fat_table_count = 2;
+/* some initial values, to be changed later */
+	fs_info->root_dir_sector_count = FAT_ROOT_DIR_ENTRY_COUNT
+					  / (512 / sizeof (FatDirEntry));
+	fs_info->root_dir_entry_count = FAT_ROOT_DIR_ENTRY_COUNT;
+
+	fs_info->fat_type = fat_type;
+	if (!fat_calc_sizes (fs->geom->length, 0,
+			fs_info->fat_type,
+			fs_info->root_dir_sector_count,
+			&fs_info->cluster_sectors,
+			&fs_info->cluster_count,
+			&fs_info->fat_sectors)) {
+		ped_exception_throw (PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Partition too big/small for a %s file system."),
+			(fat_type == FAT_TYPE_FAT16)
+		       		? fat16_type.name
+				: fat32_type.name);
+		goto error_free_fs;
+	}
+
+	fs_info->cluster_size = fs_info->cluster_sectors * 512;
+
+	fs_info->fat_offset = fat_min_reserved_sector_count (fs_info->fat_type);
+	fs_info->dir_entries_per_cluster
+		= fs_info->cluster_size / sizeof (FatDirEntry);
+
+	if (fs_info->fat_type == FAT_TYPE_FAT16) {
+		/* FAT16 */
+		fs->type = &fat16_type;
+
+		if (fs_info->cluster_count
+			> fat_max_cluster_count (fs_info->fat_type)) {
+			fs_info->cluster_count
+				= fat_max_cluster_count (fs_info->fat_type);
+		}
+
+		fs_info->root_dir_sector_count
+			= FAT_ROOT_DIR_ENTRY_COUNT
+				/ (512 / sizeof (FatDirEntry));
+		fs_info->root_dir_entry_count = FAT_ROOT_DIR_ENTRY_COUNT;
+                fs_info->root_dir_offset
+			= fs_info->fat_offset
+			+ fs_info->fat_sectors * fs_info->fat_table_count;
+		fs_info->cluster_offset
+			= fs_info->root_dir_offset
+			  + fs_info->root_dir_sector_count;
+	} else {
+		/* FAT32 */
+		fs->type = &fat32_type;
+
+		fs_info->info_sector_offset = 1;
+		fs_info->boot_sector_backup_offset = 6;
+
+		fs_info->root_dir_sector_count = 0;
+		fs_info->root_dir_entry_count = 0;
+		fs_info->root_dir_offset = 0;
+
+		fs_info->cluster_offset
+			= fs_info->fat_offset
+			  + fs_info->fat_sectors * fs_info->fat_table_count;
+	}
+
+	table_size = fs_info->fat_sectors * 512
+		     / fat_table_entry_size (fs_info->fat_type);
+	fs_info->fat = fat_table_new (fs_info->fat_type, table_size);
+	if (!fs_info->fat)
+		goto error_free_fs;
+	fat_table_set_cluster_count (fs_info->fat, fs_info->cluster_count);
+	if (!fat_alloc_buffers (fs)) 
+		goto error_free_fat_table;
+
+	if (fs_info->fat_type == FAT_TYPE_FAT32) {
+		fs_info->root_cluster
+			= fat_table_alloc_cluster (fs_info->fat);
+		fat_table_set_eof (fs_info->fat, fs_info->root_cluster);
+		memset (fs_info->buffer, 0, fs_info->cluster_size);
+		if (!fat_write_cluster (fs, fs_info->buffer,
+					fs_info->root_cluster))
+			return 0;
+	}
+
+	fs_info->serial_number = _gen_new_serial_number ();
+
+	if (!fat_boot_sector_set_boot_code (&fs_info->boot_sector))
+		goto error_free_buffers;
+	if (!fat_boot_sector_generate (&fs_info->boot_sector, fs))
+		goto error_free_buffers;
+	if (!fat_boot_sector_write (&fs_info->boot_sector, fs))
+		goto error_free_buffers;
+	if (fs_info->fat_type == FAT_TYPE_FAT32) {
+		if (!fat_info_sector_generate (&fs_info->info_sector, fs))
+			goto error_free_buffers;
+		if (!fat_info_sector_write (&fs_info->info_sector, fs))
+			goto error_free_buffers;
+	}
+
+	if (!fat_table_write_all (fs_info->fat, fs))
+		goto error_free_buffers;
+
+	if (fs_info->fat_type == FAT_TYPE_FAT16) {
+		if (!fat_root_dir_clear (fs))
+			goto error_free_buffers;
+	}
+
+	return fs;
+
+error_free_buffers:
+	fat_free_buffers (fs);
+error_free_fat_table:
+	fat_table_destroy (fs_info->fat);
+error_free_fs:
+	fat_free (fs);
+error:
+	return NULL;
+}
+
+PedFileSystem*
+fat_create_fat16 (PedGeometry* geom, PedTimer* timer)
+{
+	return fat_create (geom, FAT_TYPE_FAT16, timer);
+}
+
+PedFileSystem*
+fat_create_fat32 (PedGeometry* geom, PedTimer* timer)
+{
+	return fat_create (geom, FAT_TYPE_FAT32, timer);
+}
+
+int
+fat_close (PedFileSystem* fs)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+
+	fat_free_buffers (fs);
+	fat_table_destroy (fs_info->fat);
+	fat_free (fs);
+	return 1;
+}
+
+/* Hack: just resize the file system outside of its boundaries! */
+PedFileSystem*
+fat_copy (const PedFileSystem* fs, PedGeometry* geom, PedTimer* timer)
+{
+	PedFileSystem*		new_fs;
+
+	new_fs = ped_file_system_open (fs->geom);
+	if (!new_fs)
+		goto error;
+	if (!ped_file_system_resize (new_fs, geom, timer))
+		goto error_close_new_fs;
+	return new_fs;
+
+error_close_new_fs:
+	ped_file_system_close (new_fs);
+error:
+	return 0;
+}
+
+static int
+_compare_fats (PedFileSystem* fs)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+	FatTable*	table_copy;
+	FatCluster	table_size;
+	int		i;
+
+	table_size = fs_info->fat_sectors * 512
+		     / fat_table_entry_size (fs_info->fat_type);
+
+	table_copy = fat_table_new (fs_info->fat_type, table_size);
+	if (!table_copy)
+		goto error;
+
+	for (i = 1; i < fs_info->fat_table_count; i++) {
+		if (!fat_table_read (table_copy, fs, i))
+			goto error_free_table_copy;
+		if (!fat_table_compare (fs_info->fat, table_copy)) {
+			if (ped_exception_throw (PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_IGNORE_CANCEL,
+				_("The FATs don't match.  If you don't know "
+				  "what this means, then select cancel, run "
+				  "scandisk on the file system, and then come "
+				  "back."))
+			    != PED_EXCEPTION_IGNORE)
+				goto error_free_table_copy;
+		}
+	}
+
+	fat_table_destroy (table_copy);
+	return 1;
+
+error_free_table_copy:
+	fat_table_destroy (table_copy);
+error:
+	return 0;
+}
+
+int
+fat_check (PedFileSystem* fs, PedTimer* timer)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+	PedSector	cluster_sectors;
+	FatCluster	cluster_count;
+	PedSector	fat_sectors;
+	PedSector	align_sectors;
+	FatCluster	info_free_clusters;
+
+	align_sectors = fs_info->fat_offset
+			- fat_min_reserved_sector_count (fs_info->fat_type);
+
+	if (!fat_calc_sizes (fs->geom->length,
+			     align_sectors,
+			     fs_info->fat_type,
+			     fs_info->root_dir_sector_count,
+			     &cluster_sectors,
+			     &cluster_count,
+			     &fat_sectors)) {
+		if (ped_exception_throw (PED_EXCEPTION_BUG,
+			PED_EXCEPTION_IGNORE_CANCEL,
+			_("There are no possible configurations for this FAT "
+			  "type."))
+				!= PED_EXCEPTION_IGNORE)
+			goto error;
+	}
+
+	if (fs_info->fat_type == FAT_TYPE_FAT16) {
+		if (cluster_sectors != fs_info->cluster_sectors
+		    || cluster_count != fs_info->cluster_count
+		    || fat_sectors != fs_info->fat_sectors) {
+			if (ped_exception_throw (PED_EXCEPTION_WARNING,
+				PED_EXCEPTION_IGNORE_CANCEL,
+				_("File system doesn't have expected sizes for "
+				  "Windows to like it.  "
+				  "Cluster size is %dk (%dk expected); "
+				  "number of clusters is %d (%d expected); "
+				  "size of FATs is %d sectors (%d expected)."),
+				(int) fs_info->cluster_sectors / 2,
+					(int) cluster_sectors / 2,
+				(int) fs_info->cluster_count,
+					(int) cluster_count,
+				(int) fs_info->fat_sectors,
+					(int) fat_sectors)
+					!= PED_EXCEPTION_IGNORE)
+				goto error;
+		}
+	} 
+
+	if (fs_info->fat_type == FAT_TYPE_FAT32) {
+		info_free_clusters
+			= PED_LE32_TO_CPU (fs_info->info_sector.free_clusters);
+		if (info_free_clusters != (FatCluster) -1
+		    && info_free_clusters != fs_info->fat->free_cluster_count) {
+			if (ped_exception_throw (PED_EXCEPTION_WARNING,
+				PED_EXCEPTION_IGNORE_CANCEL,
+				_("File system is reporting the free space as "
+				  "%d clusters, not %d clusters."),
+				info_free_clusters,
+				fs_info->fat->free_cluster_count)
+					!= PED_EXCEPTION_IGNORE)
+				goto error;
+		}
+	}
+
+	if (!_compare_fats (fs))
+		goto error;
+
+	fs->checked = 1;
+	return 1;	/* existence of fs implies consistency ;-) */
+
+error:
+	return 0;
+}
+
+/* Calculates how much space there will be in clusters in:
+ * 	old_fs intersect the-new-fs
+ */
+static PedSector
+_calc_resize_data_size (
+	const PedFileSystem* old_fs,
+	PedSector new_cluster_sectors,
+	FatCluster new_cluster_count,
+	PedSector new_fat_size)
+{
+	FatSpecific*	old_fs_info = FAT_SPECIFIC (old_fs);
+	PedSector	fat_size_delta;
+
+	fat_size_delta = old_fs_info->fat_sectors - new_fat_size;
+	return new_cluster_sectors * new_cluster_count - fat_size_delta * 2;
+}
+
+static int
+_test_resize_size (const PedFileSystem* fs,
+		   PedSector length, PedSector min_data_size)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+	PedGeometry	geom;
+        PedSector	_cluster_sectors;
+	FatCluster	_cluster_count;
+	PedSector	_fat_size;
+
+	ped_geometry_init (&geom, fs->geom->dev, fs->geom->start, length);
+
+	if (fat_calc_resize_sizes (
+				&geom,
+				fs_info->cluster_sectors,
+				FAT_TYPE_FAT16,
+				fs_info->root_dir_sector_count,
+				fs_info->cluster_sectors,
+				&_cluster_sectors,
+				&_cluster_count,
+				&_fat_size)
+	    && _calc_resize_data_size (fs, _cluster_sectors, _cluster_count,
+		    		       _fat_size)
+	    		>= min_data_size)
+		return 1;
+
+	if (fat_calc_resize_sizes (
+				&geom,
+				fs_info->cluster_sectors,
+				FAT_TYPE_FAT32,
+				0,
+				fs_info->cluster_sectors,
+				&_cluster_sectors,
+				&_cluster_count,
+				&_fat_size)
+	    && _calc_resize_data_size (fs, _cluster_sectors, _cluster_count,
+		    		       _fat_size)
+	    		>= min_data_size)
+		return 1;
+
+	return 0;
+}
+
+/* does a binary search (!) for the mininum size.  Too hard to compute directly
+ * (see calc_sizes() for why!)
+ */
+static PedSector
+_get_min_resize_size (const PedFileSystem* fs, PedSector min_data_size)
+{
+	PedSector	min_length = 0;
+	PedSector	max_length = fs->geom->length;
+	PedSector	length;
+
+	while (min_length < max_length - 1) {
+		length = (min_length + max_length) / 2;
+		if (_test_resize_size (fs, length, min_data_size))
+			max_length = length;
+		else
+			min_length = length;
+	}
+
+/* adds a bit of leeway (64 sectors), for resolving extra issues, like root
+ * directory allocation, that aren't covered here. 
+ */
+	return max_length + 64;
+}
+
+PedConstraint*
+fat_get_copy_constraint (const PedFileSystem* fs, const PedDevice* dev)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+	PedGeometry	full_dev;
+	PedSector	min_cluster_count;
+	FatCluster	used_clusters;
+	PedSector	min_data_size;
+
+	if (!ped_geometry_init (&full_dev, dev, 0, dev->length - 1))
+		return NULL;
+
+	used_clusters = fs_info->fat->cluster_count
+			- fs_info->fat->free_cluster_count;
+	min_cluster_count = used_clusters + fs_info->total_dir_clusters;
+	min_data_size = min_cluster_count * fs_info->cluster_sectors;
+
+	return ped_constraint_new (ped_alignment_any, ped_alignment_any,
+				   &full_dev, &full_dev,
+				   _get_min_resize_size (fs, min_data_size),
+				   dev->length);
+}
+
+PedConstraint*
+fat_get_resize_constraint (const PedFileSystem* fs)
+{
+	return fat_get_copy_constraint (fs, fs->geom->dev);
+}
+
+/* FIXME: fat_calc_sizes() needs to say "too big" or "too small", or
+ * something.  This is a really difficult (maths) problem to do
+ * nicely...
+ * 	So, this algorithm works if dev->length / 2 is a valid fat_type
+ * size.  (Which is how I got the magic numbers below)
+ */
+#if 0
+/* returns: -1 too small, 0 ok, 1 too big */
+static int
+_test_create_size (PedSector length, FatType fat_type,
+		   PedSector cluster_sectors, PedSector cluster_count)
+{
+	PedSector	rootdir_sectors;
+	PedSector	_cluster_sectors;
+	FatCluster	_cluster_count;
+	PedSector	_fat_size;
+
+	rootdir_sectors = (fat_type == FAT_TYPE_FAT16) ? 16 : 0;
+
+	if (!fat_calc_sizes (length, 0, fat_type, rootdir_sectors,
+			     &_cluster_sectors, &_cluster_count, &_fat_size))
+		return -1; // XXX: doesn't work... can't see a better way!
+
+	if (_cluster_sectors < cluster_sectors)
+		return -1;
+	if (_cluster_sectors > cluster_sectors)
+		return 1;
+
+	if (_cluster_count < cluster_count)
+		return -1;
+	if (_cluster_count > cluster_count)
+		return 1;
+
+	return 0;
+}
+
+static PedSector
+_get_create_size (PedSector upper_bound, FatType fat_type,
+		  PedSector cluster_sectors, FatCluster cluster_count)
+{
+	PedSector	min_length = 0;
+	PedSector	max_length = upper_bound;
+	PedSector	length;
+
+	while (1) {
+		length = (min_length + max_length) / 2;
+		switch (_test_create_size (length, fat_type, cluster_sectors,
+					   cluster_count)) {
+			case -1: min_length = length; break;
+			case 0: return length;
+			case 1: max_length = length; break;
+		}
+		/* hack... won't always be able to get max cluster count
+		 * with max cluster size, etc. */
+		if (max_length - min_length == 1)
+			return min_length;
+	}
+
+	return 0;	/* shut gcc up */
+}
+#endif
+
+PedConstraint*
+fat_get_create_constraint_fat16 (const PedDevice* dev)
+{
+	PedGeometry	full_dev;
+	PedSector	min_size;
+	PedSector	max_size;
+
+	if (!ped_geometry_init (&full_dev, dev, 0, dev->length - 1))
+		return NULL;
+
+#if 0
+	min_size = _get_create_size (dev->length, FAT_TYPE_FAT16,
+		       		     fat_min_cluster_size (FAT_TYPE_FAT16),
+				     fat_min_cluster_count (FAT_TYPE_FAT16));
+	max_size = _get_create_size (dev->length, FAT_TYPE_FAT16,
+				     fat_max_cluster_size (FAT_TYPE_FAT16),
+				     fat_max_cluster_count (FAT_TYPE_FAT16));
+	if (!min_size)
+		return NULL;
+#else
+	min_size = 65794;
+	max_size = 2097153;
+#endif
+
+	return ped_constraint_new (
+			ped_alignment_any, ped_alignment_any,
+			&full_dev, &full_dev,
+			min_size, max_size);
+}
+
+PedConstraint*
+fat_get_create_constraint_fat32 (const PedDevice* dev)
+{
+	PedGeometry	full_dev;
+	PedSector	min_size;
+
+	if (!ped_geometry_init (&full_dev, dev, 0, dev->length - 1))
+		return NULL;
+
+#if 0
+	min_size = _get_create_size (dev->length, FAT_TYPE_FAT32,
+		       		     fat_min_cluster_size (FAT_TYPE_FAT32),
+				     fat_min_cluster_count (FAT_TYPE_FAT32));
+	if (!min_size)
+		return NULL;
+#else
+	min_size = 525224;
+#endif
+
+	return ped_constraint_new (
+			ped_alignment_any, ped_alignment_any,
+			&full_dev, &full_dev,
+			min_size, dev->length);
+}
+#endif /* !DISCOVER_ONLY */
+
+static PedFileSystemOps fat16_ops = {
+	probe:		fat_probe_fat16,
+#ifndef DISCOVER_ONLY
+	clobber:	fat_clobber,
+	open:		fat_open,
+	create:		fat_create_fat16,
+	close:		fat_close,
+	check:		fat_check,
+	resize:		fat_resize,
+	copy:		fat_copy,
+	get_create_constraint:	fat_get_create_constraint_fat16,
+	get_resize_constraint:	fat_get_resize_constraint,
+	get_copy_constraint:	fat_get_copy_constraint,
+#else /* !DISCOVER_ONLY */
+	clobber:	NULL,
+	open:		NULL,
+	create:		NULL,
+	close:		NULL,
+	check:		NULL,
+	resize:		NULL,
+	copy:		NULL,
+	get_create_constraint:	NULL,
+	get_resize_constraint:	NULL,
+	get_copy_constraint:	NULL,
+#endif /* !DISCOVER_ONLY */
+};
+
+static PedFileSystemOps fat32_ops = {
+	probe:		fat_probe_fat32,
+#ifndef DISCOVER_ONLY
+	clobber:	fat_clobber,
+	open:		fat_open,
+	create:		fat_create_fat32,
+	close:		fat_close,
+	check:		fat_check,
+	resize:		fat_resize,
+	copy:		fat_copy,
+	get_create_constraint:	fat_get_create_constraint_fat32,
+	get_resize_constraint:	fat_get_resize_constraint,
+	get_copy_constraint:	fat_get_copy_constraint,
+#else /* !DISCOVER_ONLY */
+	clobber:	NULL,
+	open:		NULL,
+	create:		NULL,
+	close:		NULL,
+	check:		NULL,
+	resize:		NULL,
+	copy:		NULL,
+	get_create_constraint:	NULL,
+	get_resize_constraint:	NULL,
+	get_copy_constraint:	NULL,
+#endif /* !DISCOVER_ONLY */
+};
+
+#define FAT_BLOCK_SIZES ((int[2]){512, 0})
+
+PedFileSystemType fat16_type = {
+	next:	        NULL,
+	ops:	        &fat16_ops,
+	name:	        "fat16",
+        block_sizes:    FAT_BLOCK_SIZES
+};
+
+PedFileSystemType fat32_type = {
+	next:	        NULL,
+	ops:	        &fat32_ops,
+	name:	        "fat32",
+        block_sizes:    FAT_BLOCK_SIZES
+};
+
+void
+ped_file_system_fat_init ()
+{
+	if (sizeof (FatBootSector) != 512) {
+		ped_exception_throw (PED_EXCEPTION_BUG, PED_EXCEPTION_CANCEL,
+			_("GNU Parted was miscompiled: the FAT boot sector "
+			"should be 512 bytes.  FAT support will be disabled."));
+	} else {
+		ped_file_system_type_register (&fat16_type);
+		ped_file_system_type_register (&fat32_type);
+	}
+}
+
+void
+ped_file_system_fat_done ()
+{
+	ped_file_system_type_unregister (&fat16_type);
+	ped_file_system_type_unregister (&fat32_type);
+}
+
diff --git a/parted-1.8.7/libparted/fs/fat/fat.h b/parted-1.8.7/libparted/fs/fat/fat.h
new file mode 100644
index 0000000..f101328
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/fat/fat.h
@@ -0,0 +1,161 @@
+/*
+    libparted
+    Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef FAT_H_INCLUDED
+#define FAT_H_INCLUDED
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/endian.h>
+#include <parted/debug.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+
+#define BUFFER_SIZE  1024	/* buffer size in sectors (512 bytes) */
+
+typedef uint32_t		FatCluster;
+typedef int32_t			FatFragment;
+
+enum _FatType {
+	FAT_TYPE_FAT12,
+	FAT_TYPE_FAT16,
+	FAT_TYPE_FAT32
+};
+typedef enum _FatType		FatType;
+
+typedef struct _FatSpecific	FatSpecific;
+typedef struct _FatDirEntry	FatDirEntry;
+
+/* FIXME: YUCKY */
+#include "table.h"
+#include "bootsector.h"
+#include "context.h"
+#include "fatio.h"
+#include "traverse.h"
+#include "calc.h"
+#include "count.h"
+#include "clstdup.h"
+
+struct __attribute__ ((packed)) _FatDirEntry {
+	char		name[8];
+	uint8_t		extension[3];
+	uint8_t		attributes;
+	uint8_t		is_upper_case_name;
+	uint8_t		creation_time_low;      /* milliseconds */
+	uint16_t	creation_time_high;
+	uint16_t	creation_date;
+	uint16_t	access_date;
+	uint16_t	first_cluster_high;     /* for FAT32 */
+	uint16_t	time;
+	uint16_t	date;
+	uint16_t	first_cluster;
+	uint32_t	length;
+};
+
+struct _FatSpecific {
+	FatBootSector	boot_sector;    /* structure of boot sector */
+	FatInfoSector	info_sector;    /* fat32-only information sector */
+
+	int		logical_sector_size;	/* illogical sector size :-) */
+	PedSector	sector_count;
+
+	int		sectors_per_track;	/* BIOS CHS stuff (S) */
+	int		heads;			/* BIOS CHS stuff (H) */
+
+	int		cluster_size;
+	PedSector	cluster_sectors;
+	FatCluster	cluster_count;
+	int		dir_entries_per_cluster;
+
+	FatType		fat_type;
+	int		fat_table_count;
+	PedSector	fat_sectors;
+
+	uint32_t	serial_number;
+
+	PedSector	info_sector_offset;     /* FAT32 only */
+	PedSector	fat_offset;
+	PedSector	root_dir_offset;	/* non-FAT32 */
+	PedSector	cluster_offset;
+	PedSector	boot_sector_backup_offset;
+
+	FatCluster	root_cluster;           /* FAT32 only */
+	int		root_dir_entry_count;   /* non-FAT32 */
+	PedSector	root_dir_sector_count;  /* non-FAT32 */
+	FatCluster	total_dir_clusters;
+
+	FatTable*	fat;
+	FatClusterInfo*	cluster_info;
+
+	PedSector	buffer_sectors;
+	char*		buffer;
+
+	int		frag_size;
+	PedSector	frag_sectors;
+	FatFragment	frag_count;
+	FatFragment	buffer_frags;
+	FatFragment	cluster_frags;
+};
+
+#define FAT_SPECIFIC(fs)	((FatSpecific*) fs->type_specific)
+
+#define FAT_ROOT		0
+
+#define DELETED_FLAG		0xe5
+
+#define READONLY_ATTR		0x01
+#define HIDDEN_ATTR		0x02
+#define SYSTEM_ATTR		0x04
+#define VOLUME_LABEL_ATTR	0x08
+#define VFAT_ATTR		0x0f
+#define DIRECTORY_ATTR		0x10
+#define ARCH_ATTR		0x20
+
+#define MAX_FAT12_CLUSTERS	4086      
+#define MAX_FAT16_CLUSTERS	65526
+#define MAX_FAT32_CLUSTERS	2000000
+
+#define FAT_ROOT_DIR_ENTRY_COUNT	512
+
+extern PedFileSystemType fat16_type;
+extern PedFileSystemType fat32_type;
+
+extern void fat_print (const PedFileSystem* fs);
+
+extern PedFileSystem* fat_alloc (const PedGeometry* geom);
+extern void fat_free (PedFileSystem* fs);
+extern int fat_alloc_buffers (PedFileSystem* fs);
+extern void fat_free_buffers (PedFileSystem* fs);
+
+extern int fat_resize (PedFileSystem* fs, PedGeometry* geom, PedTimer* timer);
+
+extern int fat_set_frag_sectors (PedFileSystem* fs, PedSector frag_sectors);
+
+#endif /* FAT_H_INCLUDED */
diff --git a/parted-1.8.7/libparted/fs/fat/fatio.c b/parted-1.8.7/libparted/fs/fat/fatio.c
new file mode 100644
index 0000000..98006dc
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/fat/fatio.c
@@ -0,0 +1,152 @@
+/*
+    libparted
+    Copyright (C) 1998, 1999, 2000, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+#include "fat.h"
+#include "fatio.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <ctype.h>
+
+#ifndef DISCOVER_ONLY
+
+int
+fat_read_fragments (PedFileSystem* fs, char* buf, FatFragment frag,
+		    FatFragment count)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+	PedSector	sector = fat_frag_to_sector (fs, frag);
+	PedSector	sector_count = count * fs_info->frag_sectors;
+
+	PED_ASSERT (frag >= 0 && frag < fs_info->frag_count, return 0);
+
+	return ped_geometry_read (fs->geom, buf, sector, sector_count);
+}
+
+int
+fat_read_fragment (PedFileSystem* fs, char* buf, FatFragment frag)
+{
+	return fat_read_fragments (fs, buf, frag, 1);
+}
+
+int
+fat_write_fragments (PedFileSystem* fs, char* buf, FatFragment frag,
+		     FatFragment count)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+	PedSector	sector = fat_frag_to_sector (fs, frag);
+	PedSector	sector_count = count * fs_info->frag_sectors;
+
+	PED_ASSERT (frag >= 0 && frag < fs_info->frag_count, return 0);
+
+	return ped_geometry_write (fs->geom, buf, sector, sector_count);
+}
+
+int
+fat_write_fragment (PedFileSystem* fs, char* buf, FatFragment frag)
+{
+	return fat_write_fragments (fs, buf, frag, 1);
+}
+
+int
+fat_write_sync_fragments (PedFileSystem* fs, char* buf, FatFragment frag,
+			  FatFragment count)
+{
+	if (!fat_write_fragments (fs, buf, frag, count))
+		return 0;
+	if (!ped_geometry_sync (fs->geom))
+		return 0;
+	return 1;
+}
+
+int
+fat_write_sync_fragment (PedFileSystem* fs, char* buf, FatFragment frag)
+{
+	return fat_write_sync_fragments (fs, buf, frag, 1);
+}
+
+int
+fat_read_clusters (PedFileSystem* fs, char *buf, FatCluster cluster,
+		   FatCluster count)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+	PedSector	sector = fat_cluster_to_sector (fs, cluster);
+	PedSector	sector_count = count * fs_info->cluster_sectors;
+
+	PED_ASSERT (cluster >= 2
+	    	    && cluster + count - 1 < fs_info->cluster_count + 2,
+		    return 0);
+
+	return ped_geometry_read (fs->geom, buf, sector, sector_count);
+}
+
+int
+fat_read_cluster (PedFileSystem* fs, char *buf, FatCluster cluster)
+{
+	return fat_read_clusters (fs, buf, cluster, 1);
+}
+
+int
+fat_write_clusters (PedFileSystem* fs, char *buf, FatCluster cluster,
+		    FatCluster count)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+	PedSector	sector = fat_cluster_to_sector (fs, cluster);
+	PedSector	sector_count = count * fs_info->cluster_sectors;
+
+	PED_ASSERT (cluster >= 2
+	    	    && cluster + count - 1 < fs_info->cluster_count + 2,
+		    return 0);
+
+	return ped_geometry_write (fs->geom, buf, sector, sector_count);
+}
+
+int
+fat_write_cluster (PedFileSystem* fs, char *buf, FatCluster cluster)
+{
+	return fat_write_clusters (fs, buf, cluster, 1);
+}
+
+int
+fat_write_sync_clusters (PedFileSystem* fs, char *buf, FatCluster cluster,
+			 FatCluster count)
+{
+	if (!fat_write_clusters (fs, buf, cluster, count))
+		return 0;
+	if (!ped_geometry_sync (fs->geom))
+		return 0;
+	return 1;
+}
+
+int
+fat_write_sync_cluster (PedFileSystem* fs, char *buf, FatCluster cluster)
+{
+	if (!fat_write_cluster (fs, buf, cluster))
+		return 0;
+	if (!ped_geometry_sync (fs->geom))
+		return 0;
+	return 1;
+}
+
+#endif /* !DISCOVER_ONLY */
diff --git a/parted-1.8.7/libparted/fs/fat/fatio.h b/parted-1.8.7/libparted/fs/fat/fatio.h
new file mode 100644
index 0000000..a37158a
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/fat/fatio.h
@@ -0,0 +1,49 @@
+/*
+    libparted
+    Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef FATIO_H_INCLUDED
+#define FATIO_H_INCLUDED
+
+#include "fat.h"
+
+extern int fat_read_fragments (PedFileSystem* fs, char* buf, FatFragment frag,
+			       FatFragment count);
+extern int fat_write_fragments (PedFileSystem* fs, char* buf, FatFragment frag,
+			        FatFragment count);
+extern int fat_write_sync_fragments (PedFileSystem* fs, char* buf,
+				     FatFragment frag, FatFragment count);
+
+extern int fat_read_fragment (PedFileSystem* fs, char* buf, FatFragment frag);
+extern int fat_write_fragment (PedFileSystem* fs, char* buf, FatFragment frag);
+extern int fat_write_sync_fragment (PedFileSystem* fs, char* buf,
+				    FatFragment frag);
+
+extern int fat_read_clusters (PedFileSystem* fs, char* buf, FatCluster cluster,
+			      FatCluster count);
+extern int fat_write_clusters (PedFileSystem* fs, char* buf, FatCluster cluster,
+			       FatCluster count);
+extern int fat_write_sync_clusters (PedFileSystem* fs, char* buf,
+				    FatCluster cluster, FatCluster count);
+
+extern int fat_read_cluster (PedFileSystem* fs, char *buf, FatCluster cluster);
+extern int fat_write_cluster (PedFileSystem* fs, char *buf, FatCluster cluster);
+extern int fat_write_sync_cluster (PedFileSystem* fs, char *buf,
+				   FatCluster cluster);
+
+#endif /* FATIO_H_INCLUDED */
diff --git a/parted-1.8.7/libparted/fs/fat/resize.c b/parted-1.8.7/libparted/fs/fat/resize.c
new file mode 100644
index 0000000..1fb1c8c
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/fat/resize.c
@@ -0,0 +1,878 @@
+/*
+    libparted
+    Copyright (C) 1998, 1999, 2000, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+#include "fat.h"
+#include "traverse.h"
+#include "count.h"
+#include "fatio.h"
+#include "calc.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <ctype.h>
+#include <stdarg.h>
+#include <string.h>
+
+#ifndef DISCOVER_ONLY
+
+/* Recursively builds (i.e. makes consistent) the duplicated directory tree
+ * (leaving the original directory tree in tact)
+ */
+static int
+fat_construct_directory (FatOpContext* ctx, FatTraverseInfo* trav_info)
+{
+	FatTraverseInfo*	sub_dir_info;
+	FatDirEntry*		dir_entry;
+	FatCluster		old_first_cluster;
+
+	while ( (dir_entry = fat_traverse_next_dir_entry (trav_info)) ) {
+		if (fat_dir_entry_is_null_term (dir_entry))
+			break;
+		if (!fat_dir_entry_has_first_cluster (dir_entry, ctx->old_fs))
+			continue;
+
+		fat_traverse_mark_dirty (trav_info);
+
+		old_first_cluster = fat_dir_entry_get_first_cluster (dir_entry,
+						ctx->old_fs);
+		fat_dir_entry_set_first_cluster (dir_entry, ctx->new_fs,
+			fat_op_context_map_cluster (ctx, old_first_cluster));
+
+		if (fat_dir_entry_is_directory (dir_entry)
+				&& dir_entry->name [0] != '.') {
+			sub_dir_info
+				= fat_traverse_directory (trav_info, dir_entry);
+			if (!sub_dir_info)
+				return 0;
+			if (!fat_construct_directory (ctx, sub_dir_info))
+				return 0;
+		}
+	}
+	/* remove "stale" entries at the end */
+	while ((dir_entry = fat_traverse_next_dir_entry (trav_info))) {
+		memset (dir_entry, 0, sizeof (FatDirEntry));
+		fat_traverse_mark_dirty (trav_info);
+	}
+	fat_traverse_complete (trav_info);
+	return 1;
+}
+
+static int
+duplicate_legacy_root_dir (FatOpContext* ctx)
+{
+	FatSpecific*		old_fs_info = FAT_SPECIFIC (ctx->old_fs);
+	FatSpecific*		new_fs_info = FAT_SPECIFIC (ctx->new_fs);
+
+	PED_ASSERT (old_fs_info->root_dir_sector_count
+			== new_fs_info->root_dir_sector_count, return 0);
+
+	if (!ped_geometry_read (ctx->old_fs->geom, old_fs_info->buffer,
+				old_fs_info->root_dir_offset,
+				old_fs_info->root_dir_sector_count))
+		return 0;
+
+	if (!ped_geometry_write (ctx->new_fs->geom, old_fs_info->buffer,
+				 new_fs_info->root_dir_offset,
+				 new_fs_info->root_dir_sector_count))
+		return 0;
+
+	return 1;
+}
+
+/*
+    Constructs the new directory tree for legacy (FAT16) file systems.
+*/
+static int
+fat_construct_legacy_root (FatOpContext* ctx)
+{
+	FatTraverseInfo*	trav_info;
+
+	if (!duplicate_legacy_root_dir (ctx))
+		return 0;
+	trav_info = fat_traverse_begin (ctx->new_fs, FAT_ROOT, "\\");
+	return fat_construct_directory (ctx, trav_info);
+}
+
+/*
+    Constructs the new directory tree for new (FAT32) file systems.
+*/
+static int
+fat_construct_root (FatOpContext* ctx)
+{
+	FatSpecific*		new_fs_info = FAT_SPECIFIC (ctx->new_fs);
+	FatTraverseInfo*	trav_info;
+
+	trav_info = fat_traverse_begin (ctx->new_fs, new_fs_info->root_cluster,
+					"\\");
+	fat_construct_directory (ctx, trav_info);
+	return 1;
+}
+
+/* Converts the root directory between FAT16 and FAT32.  NOTE: this code
+ * can also do no conversion.  I'm leaving fat_construct_directory(), because
+ * it's really pretty :-)  It also leaves a higher chance of deleted file
+ * recovery, because it doesn't remove redundant entries.  (We do this here,
+ * because brain-damaged FAT16 has an arbitary limit on root directory entries,
+ * so we save room)
+ */
+static int
+fat_convert_directory (FatOpContext* ctx, FatTraverseInfo* old_trav,
+		       FatTraverseInfo* new_trav)
+{
+	FatTraverseInfo*	sub_old_dir_trav;
+	FatTraverseInfo*	sub_new_dir_trav;
+	FatDirEntry*		new_dir_entry;
+	FatDirEntry*		old_dir_entry;
+	FatCluster		old_first_cluster;
+
+	while ( (old_dir_entry = fat_traverse_next_dir_entry (old_trav)) ) {
+		if (fat_dir_entry_is_null_term (old_dir_entry))
+			break;
+		if (!fat_dir_entry_is_active (old_dir_entry))
+			continue;
+
+		new_dir_entry = fat_traverse_next_dir_entry (new_trav);
+		if (!new_dir_entry) {
+			return ped_exception_throw (PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_IGNORE_CANCEL,
+				_("There's not enough room in the root "
+				  "directory for all of the files.  Either "
+				  "cancel, or ignore to lose the files."))
+					== PED_EXCEPTION_IGNORE;
+		}
+
+		*new_dir_entry = *old_dir_entry;
+		fat_traverse_mark_dirty (new_trav);
+
+		if (!fat_dir_entry_has_first_cluster (old_dir_entry,
+						      ctx->old_fs))
+			continue;
+
+		old_first_cluster = fat_dir_entry_get_first_cluster (
+						old_dir_entry, ctx->old_fs);
+		fat_dir_entry_set_first_cluster (new_dir_entry, ctx->new_fs,
+			fat_op_context_map_cluster (ctx, old_first_cluster));
+
+		if (fat_dir_entry_is_directory (old_dir_entry)
+				&& old_dir_entry->name [0] != '.') {
+			sub_old_dir_trav
+			    = fat_traverse_directory (old_trav, old_dir_entry);
+			sub_new_dir_trav
+			    = fat_traverse_directory (new_trav, new_dir_entry);
+			if (!sub_old_dir_trav || !sub_new_dir_trav)
+				return 0;
+
+			if (!fat_convert_directory (ctx, sub_old_dir_trav,
+						    sub_new_dir_trav))
+				return 0;
+		}
+	}
+
+	/* remove "stale" entries at the end, just in case there is some
+	 * overlap
+	 */
+	while ((new_dir_entry = fat_traverse_next_dir_entry (new_trav))) {
+		memset (new_dir_entry, 0, sizeof (FatDirEntry));
+		fat_traverse_mark_dirty (new_trav);
+	}
+
+	fat_traverse_complete (old_trav);
+	fat_traverse_complete (new_trav);
+	return 1;
+}
+
+static void
+clear_cluster (PedFileSystem* fs, FatCluster cluster)
+{
+	FatSpecific*		fs_info = FAT_SPECIFIC (fs);
+
+	memset (fs_info->buffer, 0, fs_info->cluster_size);
+	fat_write_cluster (fs, fs_info->buffer, cluster);
+}
+
+/* This MUST be called BEFORE the fat_construct_new_fat(), because cluster
+ * allocation depend on the old FAT.  The reason is, old clusters may
+ * still be needed during the resize, (particularly clusters in the directory
+ * tree) even if they will be discarded later.
+ */
+static int
+alloc_root_dir (FatOpContext* ctx)
+{
+	FatSpecific*		old_fs_info = FAT_SPECIFIC (ctx->old_fs);
+	FatSpecific*		new_fs_info = FAT_SPECIFIC (ctx->new_fs);
+	FatCluster		i;
+	FatCluster		cluster;
+	FatCluster		cluster_count;
+
+	PED_ASSERT (new_fs_info->fat_type == FAT_TYPE_FAT32, return 0);
+
+	cluster_count = ped_div_round_up (
+			   PED_MAX (16, old_fs_info->root_dir_sector_count),
+			   new_fs_info->cluster_sectors);
+
+	for (i = 0; i < cluster_count; i++) {
+		cluster = fat_table_alloc_check_cluster (new_fs_info->fat,
+							 ctx->new_fs);
+		if (!cluster)
+			return 0;
+		ctx->new_root_dir [i] = cluster;
+		clear_cluster (ctx->new_fs, cluster);
+	}
+	ctx->new_root_dir [i] = 0;
+	new_fs_info->root_cluster = ctx->new_root_dir [0];
+	return 1;
+}
+
+/* when converting FAT32 -> FAT16
+ * fat_duplicate clusters() duplicated the root directory unnecessarily.
+ * Let's free it.
+ *
+ * This must be called AFTER fat_construct_new_fat().  (otherwise, our
+ * changes just get overwritten)
+ */
+static int
+free_root_dir (FatOpContext* ctx)
+{
+	FatSpecific*		old_fs_info = FAT_SPECIFIC (ctx->old_fs);
+	FatSpecific*		new_fs_info = FAT_SPECIFIC (ctx->new_fs);
+	FatCluster		old_cluster;
+	FatFragment		i;
+
+	PED_ASSERT (old_fs_info->fat_type == FAT_TYPE_FAT32, return 0);
+	PED_ASSERT (new_fs_info->fat_type == FAT_TYPE_FAT16, return 0);
+
+	for (old_cluster = old_fs_info->root_cluster;
+	     !fat_table_is_eof (old_fs_info->fat, old_cluster);
+	     old_cluster = fat_table_get (old_fs_info->fat, old_cluster)) {
+		FatFragment old_frag;
+		old_frag = fat_cluster_to_frag (ctx->old_fs, old_cluster);
+		for (i = 0; i < new_fs_info->cluster_frags; i++) {
+			FatFragment new_frag;
+			FatCluster new_clst;
+			new_frag = fat_op_context_map_fragment (ctx,
+								old_frag + i);
+			new_clst = fat_frag_to_cluster (ctx->old_fs, new_frag);
+			if (!fat_table_set_avail (new_fs_info->fat, new_clst))
+				return 0;
+		}
+	}
+
+	return 1;
+}
+
+static int
+fat_clear_root_dir (PedFileSystem* fs)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+	int		i;
+
+	PED_ASSERT (fs_info->fat_type == FAT_TYPE_FAT16, return 0);
+	PED_ASSERT (fs_info->root_dir_sector_count, return 0);
+
+	memset (fs_info->buffer, 0, 512);
+
+	for (i = 0; i < fs_info->root_dir_sector_count; i++) {
+		if (!ped_geometry_write (fs->geom, fs_info->buffer,
+					 fs_info->root_dir_offset + i, 1)) {
+			if (ped_exception_throw (PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_IGNORE_CANCEL,
+				_("Error writing to the root directory."))
+					== PED_EXCEPTION_CANCEL)
+				return 0;
+		}
+	}
+	return 1;
+}
+
+static int
+fat_construct_converted_tree (FatOpContext* ctx)
+{
+	FatSpecific*		old_fs_info = FAT_SPECIFIC (ctx->old_fs);
+	FatSpecific*		new_fs_info = FAT_SPECIFIC (ctx->new_fs);
+	FatTraverseInfo*	old_trav_info;
+	FatTraverseInfo*	new_trav_info;
+
+	if (new_fs_info->fat_type == FAT_TYPE_FAT32) {
+		new_trav_info = fat_traverse_begin (ctx->new_fs,
+					    new_fs_info->root_cluster, "\\");
+		old_trav_info = fat_traverse_begin (ctx->old_fs, FAT_ROOT,
+						    "\\");
+	} else {
+		fat_clear_root_dir (ctx->new_fs);
+		new_trav_info = fat_traverse_begin (ctx->new_fs, FAT_ROOT,
+						    "\\");
+		old_trav_info = fat_traverse_begin (ctx->old_fs,
+					    old_fs_info->root_cluster, "\\");
+	}
+	if (!new_trav_info || !old_trav_info)
+		return 0;
+	if (!fat_convert_directory (ctx, old_trav_info, new_trav_info))
+		return 0;
+	return 1;
+}
+
+/*
+    Constructs the new directory tree to match the new file locations.
+*/
+static int
+fat_construct_dir_tree (FatOpContext* ctx)
+{
+	FatSpecific*		new_fs_info = FAT_SPECIFIC (ctx->new_fs);
+	FatSpecific*		old_fs_info = FAT_SPECIFIC (ctx->old_fs);
+
+	if (new_fs_info->fat_type == old_fs_info->fat_type) {
+		switch (old_fs_info->fat_type) {
+                        case FAT_TYPE_FAT12:
+                        PED_ASSERT (0, (void) 0);
+                        break;
+
+			case FAT_TYPE_FAT16:
+			return fat_construct_legacy_root (ctx);
+
+			case FAT_TYPE_FAT32:
+			return fat_construct_root (ctx);
+		}
+	} else {
+		return fat_construct_converted_tree (ctx);
+	}
+
+	return 0;
+}
+
+static FatFragment
+_get_next_old_frag (FatOpContext* ctx, FatFragment frag)
+{
+	FatSpecific*	old_fs_info = FAT_SPECIFIC (ctx->old_fs);
+	FatCluster	cluster;
+	FatCluster	next_cluster;
+
+	if ((frag + 1) % old_fs_info->cluster_frags != 0) {
+		if (fat_is_fragment_active (ctx->old_fs, frag + 1))
+			return frag + 1;
+		else
+			return -1;
+	} else {
+		cluster = fat_frag_to_cluster (ctx->old_fs, frag);
+		next_cluster = fat_table_get (old_fs_info->fat, cluster);
+
+		if (fat_table_is_eof (old_fs_info->fat, next_cluster))
+			return -1;
+		else
+			return fat_cluster_to_frag (ctx->old_fs, next_cluster);
+	}
+}
+
+/*
+    Constructs the new fat for the resized file system.
+*/
+static int
+fat_construct_new_fat (FatOpContext* ctx)
+{
+	FatSpecific*	old_fs_info = FAT_SPECIFIC (ctx->old_fs);
+	FatSpecific*	new_fs_info = FAT_SPECIFIC (ctx->new_fs);
+	FatFragment	old_frag;
+	FatCluster	new_cluster;
+	FatFragment	new_frag;
+	FatFragment	old_next_frag;
+	FatFragment	new_next_frag;
+	FatCluster	new_next_cluster;
+	FatClusterFlag	flag;
+	int		i;
+
+	fat_table_clear (new_fs_info->fat);
+	if (!fat_table_set_cluster_count (new_fs_info->fat,
+					  new_fs_info->cluster_count))
+		return 0;
+
+	for (old_frag = 0; old_frag < old_fs_info->frag_count; old_frag++) {
+		flag = fat_get_fragment_flag (ctx->old_fs, old_frag);
+		if (flag == FAT_FLAG_FREE)
+			continue;
+		if (flag == FAT_FLAG_BAD) {
+			new_frag = fat_op_context_map_static_fragment (
+						ctx, old_frag);
+			if (new_frag == -1)
+				continue;
+			new_cluster = fat_frag_to_cluster (ctx->new_fs,
+							   new_frag);
+			fat_table_set_bad (new_fs_info->fat, new_cluster);
+			continue;
+		}
+
+		new_frag = fat_op_context_map_fragment (ctx, old_frag);
+		new_cluster = fat_frag_to_cluster (ctx->new_fs, new_frag);
+
+		old_next_frag = _get_next_old_frag (ctx, old_frag);
+		if (old_next_frag == -1) {
+			fat_table_set_eof (new_fs_info->fat, new_cluster);
+			continue;
+		}
+
+		new_next_frag = fat_op_context_map_fragment (ctx,
+							     old_next_frag);
+		PED_ASSERT (new_next_frag != -1, return 0);
+
+		new_next_cluster = fat_frag_to_cluster (ctx->new_fs,
+							new_next_frag);
+		PED_ASSERT (new_next_cluster != new_cluster, return 0);
+
+		fat_table_set (new_fs_info->fat, new_cluster, new_next_cluster);
+	}
+
+#if 0
+#ifdef PED_VERBOSE
+	for (old_cluster=2; old_cluster < old_fs_info->cluster_count+2;
+	     old_cluster++) {
+		if (fat_table_is_available (old_fs_info->fat, old_cluster))
+			continue;
+
+		printf ("%d->%d\t(next: %d->%d)\n",
+			old_cluster,
+			ctx->remap [old_cluster],
+			fat_table_get (old_fs_info->fat, old_cluster),
+			fat_table_get (new_fs_info->fat,
+				       ctx->remap [old_cluster]));
+	}
+#endif /* PED_VERBOSE */
+#endif
+
+	if (old_fs_info->fat_type == FAT_TYPE_FAT32
+	    && new_fs_info->fat_type == FAT_TYPE_FAT32) {
+		new_fs_info->root_cluster
+			= fat_op_context_map_cluster (ctx,
+					old_fs_info->root_cluster);
+	}
+
+	if (old_fs_info->fat_type == FAT_TYPE_FAT16
+	    && new_fs_info->fat_type == FAT_TYPE_FAT32) {
+		for (i=0; ctx->new_root_dir[i+1]; i++) {
+			fat_table_set (new_fs_info->fat,
+				       ctx->new_root_dir[i],
+				       ctx->new_root_dir[i+1]);
+		}
+		fat_table_set_eof (new_fs_info->fat, ctx->new_root_dir[i]);
+	}
+
+	return 1;
+}
+
+static int
+ask_type (PedFileSystem* fs, int fat16_ok, int fat32_ok, FatType* out_fat_type)
+{
+	FatSpecific*		fs_info = FAT_SPECIFIC (fs);
+	PedExceptionOption	status;
+	char*			fat16_msg;
+	char*			fat32_msg;
+
+	if (fs_info->fat_type == FAT_TYPE_FAT16)
+		fat16_msg = _("If you leave your file system as FAT16, "
+			      "then you will have no problems.");
+	else
+		fat16_msg = _("If you convert to FAT16, and MS Windows "
+			      "is installed on this partition, then "
+			      "you must re-install the MS Windows boot "
+			      "loader.  If you want to do this, you "
+			      "should consult the Parted manual (or "
+			      "your distribution's manual).");
+
+	if (fs_info->fat_type == FAT_TYPE_FAT32)
+		fat32_msg = _("If you leave your file system as FAT32, "
+			      "then you will not introduce any new "
+			      "problems.");
+	else
+		fat32_msg = _("If you convert to FAT32, and MS Windows "
+			      "is installed on this partition, then "
+			      "you must re-install the MS Windows boot "
+			      "loader.  If you want to do this, you "
+			      "should consult the Parted manual (or "
+			      "your distribution's manual).  Also, "
+			      "converting to FAT32 will make the file "
+			      "system unreadable by MS DOS, MS Windows "
+			      "95a, and MS Windows NT.");
+
+	if (fat16_ok && fat32_ok) {
+		status = ped_exception_throw (
+			 PED_EXCEPTION_INFORMATION,
+			 PED_EXCEPTION_YES_NO_CANCEL,
+			 _("%s  %s  %s"),
+			 _("Would you like to use FAT32?"),
+			 fat16_msg,
+			 fat32_msg);
+
+		switch (status) {
+		case PED_EXCEPTION_YES:
+			*out_fat_type = FAT_TYPE_FAT32;
+			return 1;
+
+		case PED_EXCEPTION_NO:
+			*out_fat_type = FAT_TYPE_FAT16;
+			return 1;
+
+		case PED_EXCEPTION_UNHANDLED:
+			*out_fat_type = fs_info->fat_type;
+			return 1;
+
+		case PED_EXCEPTION_CANCEL:
+			return 0;
+
+                default:
+                        PED_ASSERT (0, (void) 0);
+                        break;
+		}
+	}
+
+	if (fat16_ok) {
+		if (fs_info->fat_type != FAT_TYPE_FAT16) {
+			status = ped_exception_throw (
+				PED_EXCEPTION_WARNING,
+				PED_EXCEPTION_OK_CANCEL,
+				_("%s  %s"),
+				_("The file system can only be resized to this "
+				  "size by converting to FAT16."),
+				fat16_msg);
+			if (status == PED_EXCEPTION_CANCEL)
+				return 0;
+		}
+		*out_fat_type = FAT_TYPE_FAT16;
+		return 1;
+	}
+
+	if (fat32_ok) {
+		if (fs_info->fat_type != FAT_TYPE_FAT32) {
+			status = ped_exception_throw (
+				PED_EXCEPTION_WARNING,
+				PED_EXCEPTION_OK_CANCEL,
+				_("%s  %s"),
+				_("The file system can only be resized to this "
+				  "size by converting to FAT32."),
+				fat32_msg);
+			if (status == PED_EXCEPTION_CANCEL)
+				return 0;
+		}
+		*out_fat_type = FAT_TYPE_FAT32;
+		return 1;
+	}
+	
+	ped_exception_throw (
+		PED_EXCEPTION_NO_FEATURE,
+		PED_EXCEPTION_CANCEL,
+		_("GNU Parted cannot resize this partition to this size.  "
+		  "We're working on it!"));
+
+	return 0;
+}
+
+/*  For resize operations: determine if the file system must be FAT16 or FAT32,
+ *  or either.  If the new file system must be FAT32, then query for
+ *  confirmation.  If either file system can be used, query for which one.
+ */
+static int
+get_fat_type (PedFileSystem* fs, const PedGeometry* new_geom,
+	      FatType* out_fat_type)
+{
+	FatSpecific*		fs_info = FAT_SPECIFIC (fs);
+	PedSector		fat16_cluster_sectors;
+	PedSector		fat32_cluster_sectors;
+	FatCluster		dummy_cluster_count;
+	PedSector		dummy_fat_sectors;
+	int			fat16_ok;
+	int			fat32_ok;
+
+	fat16_ok = fat_calc_resize_sizes (
+				    new_geom,
+				    fs_info->cluster_sectors,
+				    FAT_TYPE_FAT16,
+				    fs_info->root_dir_sector_count,
+				    fs_info->cluster_sectors,
+				    &fat16_cluster_sectors,
+				    &dummy_cluster_count,
+				    &dummy_fat_sectors);
+
+	fat32_ok = fat_calc_resize_sizes (
+				    new_geom,
+				    fs_info->cluster_sectors,
+				    FAT_TYPE_FAT32,
+				    fs_info->root_dir_sector_count,
+				    fs_info->cluster_sectors,
+				    &fat32_cluster_sectors,
+				    &dummy_cluster_count,
+				    &dummy_fat_sectors);
+
+	return ask_type (fs, fat16_ok, fat32_ok, out_fat_type);
+}
+
+/*  Creates the PedFileSystem struct for the new resized file system, and
+    sticks it in a FatOpContext.  At the end of the process, the original
+    (ctx->old_fs) is destroyed, and replaced with the new one (ctx->new_fs).
+ */
+static FatOpContext*
+create_resize_context (PedFileSystem* fs, const PedGeometry* new_geom)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+	FatSpecific*	new_fs_info;
+	PedFileSystem*	new_fs;
+	PedSector	new_cluster_sectors;
+	FatCluster	new_cluster_count;
+	PedSector	new_fat_sectors;
+	FatType		new_fat_type;
+	PedSector	root_dir_sector_count;
+	FatOpContext*	context;
+
+	/* hypothetical number of root dir sectors, if we end up using
+	 * FAT16
+	 */
+	if (fs_info->root_dir_sector_count)
+		root_dir_sector_count = fs_info->root_dir_sector_count;
+	else
+		root_dir_sector_count = FAT_ROOT_DIR_ENTRY_COUNT
+						* sizeof (FatDirEntry) / 512;
+
+	if (!get_fat_type (fs, new_geom, &new_fat_type))
+		return 0;
+
+	fat_calc_resize_sizes (new_geom, fs_info->cluster_sectors, new_fat_type,
+		root_dir_sector_count, fs_info->cluster_sectors,
+		&new_cluster_sectors, &new_cluster_count, &new_fat_sectors);
+
+	if (!fat_check_resize_geometry (fs, new_geom, new_cluster_sectors,
+				        new_cluster_count))
+		goto error;
+
+	new_fs = fat_alloc (new_geom);
+	if (!new_fs)
+		goto error;
+
+	new_fs_info = FAT_SPECIFIC (new_fs);
+	if (!new_fs_info)
+		goto error_free_new_fs;
+
+/* preserve boot code, etc. */
+	memcpy (&new_fs_info->boot_sector, &fs_info->boot_sector,
+		sizeof (FatBootSector));
+	memcpy (&new_fs_info->info_sector, &fs_info->info_sector,
+		sizeof (FatInfoSector));
+
+	new_fs_info->logical_sector_size = fs_info->logical_sector_size;
+	new_fs_info->sector_count = new_geom->length;
+
+	new_fs_info->sectors_per_track = fs_info->sectors_per_track;
+	new_fs_info->heads = fs_info->heads;
+
+	new_fs_info->cluster_size = new_cluster_sectors * 512;
+	new_fs_info->cluster_sectors = new_cluster_sectors;
+	new_fs_info->cluster_count = new_cluster_count;
+	new_fs_info->dir_entries_per_cluster = fs_info->dir_entries_per_cluster;
+
+	new_fs_info->fat_type = new_fat_type; 
+	new_fs_info->fat_table_count = 2;
+	new_fs_info->fat_sectors = new_fat_sectors;
+
+	/* what about copying? */
+	new_fs_info->serial_number = fs_info->serial_number;
+
+	if (new_fs_info->fat_type == FAT_TYPE_FAT32) {
+		new_fs_info->info_sector_offset	= 1;
+		new_fs_info->boot_sector_backup_offset = 6;
+
+		new_fs_info->root_dir_offset = 0;
+		new_fs_info->root_dir_entry_count = 0;
+		new_fs_info->root_dir_sector_count = 0;
+
+		/* we add calc_align_sectors to push the cluster_offset
+		   forward, to keep the clusters aligned between the new
+		   and old file systems
+		 */
+		new_fs_info->fat_offset
+			= fat_min_reserved_sector_count (FAT_TYPE_FAT32)
+			  + fat_calc_align_sectors (new_fs, fs);
+
+		new_fs_info->cluster_offset
+			= new_fs_info->fat_offset
+			  + 2 * new_fs_info->fat_sectors;
+	} else {
+		new_fs_info->root_dir_sector_count = root_dir_sector_count;
+		new_fs_info->root_dir_entry_count 
+			= root_dir_sector_count * 512 / sizeof (FatDirEntry);
+
+		new_fs_info->fat_offset
+			= fat_min_reserved_sector_count (FAT_TYPE_FAT16)
+			  + fat_calc_align_sectors (new_fs, fs);
+
+		new_fs_info->root_dir_offset = new_fs_info->fat_offset
+					       + 2 * new_fs_info->fat_sectors;
+
+		new_fs_info->cluster_offset = new_fs_info->root_dir_offset
+					  + new_fs_info->root_dir_sector_count;
+	}
+	
+	new_fs_info->total_dir_clusters = fs_info->total_dir_clusters;
+
+	context = fat_op_context_new (new_fs, fs);
+	if (!context)
+		goto error_free_new_fs_info;
+
+	if (!fat_op_context_create_initial_fat (context))
+		goto error_free_context;
+
+	if (!fat_alloc_buffers (new_fs))
+		goto error_free_fat;
+
+	return context;
+
+error_free_fat:
+	fat_table_destroy (new_fs_info->fat);
+error_free_context:
+	ped_free (context);
+error_free_new_fs_info:
+	ped_free (new_fs_info);
+error_free_new_fs:
+	ped_free (new_fs);
+error:
+	return NULL;
+}
+
+static int
+resize_context_assimilate (FatOpContext* ctx)
+{
+	FatSpecific*	old_fs_info = FAT_SPECIFIC (ctx->old_fs);
+	FatSpecific*	new_fs_info = FAT_SPECIFIC (ctx->new_fs);
+
+	fat_free_buffers (ctx->old_fs);
+	fat_table_destroy (old_fs_info->fat);
+	ped_free (old_fs_info);
+	ped_geometry_destroy (ctx->old_fs->geom);
+
+	ctx->old_fs->type_specific = ctx->new_fs->type_specific;
+	ctx->old_fs->geom = ctx->new_fs->geom;
+	ctx->old_fs->type = (new_fs_info->fat_type == FAT_TYPE_FAT16)
+				? &fat16_type
+			       	: &fat32_type;
+
+	ped_free (ctx->new_fs);
+
+	fat_op_context_destroy (ctx);
+
+	return 1;
+}
+
+static int
+resize_context_abort (FatOpContext* ctx)
+{
+	FatSpecific*	new_fs_info = FAT_SPECIFIC (ctx->new_fs);
+
+	fat_free_buffers (ctx->new_fs);
+	fat_table_destroy (new_fs_info->fat);
+	ped_free (new_fs_info);
+	ped_geometry_destroy (ctx->new_fs->geom);
+	ped_free (ctx->new_fs);
+
+	fat_op_context_destroy (ctx);
+
+	return 1;
+}
+
+/* copies the "hidden" sectors, between the boot sector and the FAT.  Required,
+ * for the Windows 98 FAT32 boot loader
+ */
+int
+_copy_hidden_sectors (FatOpContext* ctx)
+{
+	FatSpecific*    old_fs_info = FAT_SPECIFIC (ctx->old_fs);
+	FatSpecific*    new_fs_info = FAT_SPECIFIC (ctx->new_fs);
+	PedSector       first = 1;
+	PedSector       last;
+	PedSector       count;
+
+	/* nothing to copy for FAT16 */
+	if (old_fs_info->fat_type == FAT_TYPE_FAT16
+			|| new_fs_info->fat_type == FAT_TYPE_FAT16)
+		return 1;
+
+	last = PED_MIN (old_fs_info->fat_offset, new_fs_info->fat_offset) - 1;
+	count = last - first + 1;
+
+	PED_ASSERT (count < BUFFER_SIZE, return 0);
+
+	if (!ped_geometry_read (ctx->old_fs->geom, old_fs_info->buffer,
+				first, count))
+		return 0;
+	if (!ped_geometry_write (ctx->new_fs->geom, old_fs_info->buffer,
+				 first, count))
+		return 0;
+	return 1;
+}
+
+int
+fat_resize (PedFileSystem* fs, PedGeometry* geom, PedTimer* timer)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+	FatSpecific*	new_fs_info;
+	FatOpContext*	ctx;
+	PedFileSystem*	new_fs;
+
+	ctx = create_resize_context (fs, geom);
+	if (!ctx)
+		goto error;
+	new_fs = ctx->new_fs;
+	new_fs_info = FAT_SPECIFIC (new_fs);
+
+	if (!fat_duplicate_clusters (ctx, timer))
+		goto error_abort_ctx;
+	if (fs_info->fat_type == FAT_TYPE_FAT16
+			&& new_fs_info->fat_type == FAT_TYPE_FAT32) {
+		if (!alloc_root_dir (ctx))
+			goto error_abort_ctx;
+	}
+	if (!fat_construct_new_fat (ctx))
+		goto error_abort_ctx;
+	if (fs_info->fat_type == FAT_TYPE_FAT32
+			&& new_fs_info->fat_type == FAT_TYPE_FAT16) {
+		if (!free_root_dir (ctx))
+			goto error_abort_ctx;
+	}
+	if (!fat_construct_dir_tree (ctx))
+		goto error_abort_ctx;
+	if (!fat_table_write_all (new_fs_info->fat, new_fs))
+		goto error_abort_ctx;
+
+	_copy_hidden_sectors (ctx);
+	fat_boot_sector_generate (&new_fs_info->boot_sector, new_fs);
+	fat_boot_sector_write (&new_fs_info->boot_sector, new_fs);
+	if (new_fs_info->fat_type == FAT_TYPE_FAT32) {
+		fat_info_sector_generate (&new_fs_info->info_sector, new_fs);
+		fat_info_sector_write (&new_fs_info->info_sector, new_fs);
+	}
+
+	if (!resize_context_assimilate (ctx))
+		goto error;
+
+	return 1;
+
+error_abort_ctx:
+	resize_context_abort (ctx);
+error:
+	return 0;
+}
+
+#endif /* !DISCOVER_ONLY */
diff --git a/parted-1.8.7/libparted/fs/fat/table.c b/parted-1.8.7/libparted/fs/fat/table.c
new file mode 100644
index 0000000..3db6127
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/fat/table.c
@@ -0,0 +1,482 @@
+/*
+    libparted
+    Copyright (C) 1998, 1999, 2000, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+#include <parted/endian.h>
+#include "fat.h"
+
+#ifndef DISCOVER_ONLY
+
+FatTable*
+fat_table_new (FatType fat_type, FatCluster size)
+{
+	FatTable*	ft;
+	int		entry_size = fat_table_entry_size (fat_type);
+
+	ft = (FatTable*) ped_malloc (sizeof (FatTable));
+	if (!ft) return NULL;
+
+	ft->cluster_count = ft->free_cluster_count = size - 2;
+
+/* ensure there's some free room on the end, to finish off the sector */
+	ft->size = ped_div_round_up (size * entry_size, 512) * 512 / entry_size;
+	ft->fat_type = fat_type;
+	ft->raw_size = ft->size * entry_size;
+
+	ft->table = ped_malloc (ft->raw_size);
+	if (!ft->table) {
+		ped_free (ft);
+		return NULL;
+	}
+
+	fat_table_clear (ft);
+	return ft;
+}
+
+void
+fat_table_destroy (FatTable* ft)
+{
+	ped_free (ft->table);
+	ped_free (ft);
+}
+
+FatTable*
+fat_table_duplicate (const FatTable* ft)
+{
+	FatTable*	dup;
+
+	dup = fat_table_new (ft->fat_type, ft->size);
+	if (!dup) return NULL;
+
+	dup->cluster_count	= ft->cluster_count;
+	dup->free_cluster_count	= ft->free_cluster_count;
+	dup->bad_cluster_count	= ft->bad_cluster_count;
+	dup->last_alloc		= ft->last_alloc;
+
+	memcpy (dup->table, ft->table, ft->raw_size);
+
+	return dup;
+}
+
+void
+fat_table_clear (FatTable* ft)
+{
+	memset (ft->table, 0, ft->raw_size);
+
+	fat_table_set (ft, 0, 0x0ffffff8);
+	fat_table_set (ft, 1, 0x0fffffff);
+
+	ft->free_cluster_count = ft->cluster_count;
+	ft->bad_cluster_count = 0;
+	ft->last_alloc = 1;
+}
+
+int
+fat_table_set_cluster_count (FatTable* ft, FatCluster new_cluster_count)
+{
+	PED_ASSERT (new_cluster_count + 2 <= ft->size, return 0);
+
+	ft->cluster_count = new_cluster_count;
+	return fat_table_count_stats (ft);
+}
+
+int
+fat_table_count_stats (FatTable* ft)
+{
+	FatCluster	i;
+
+	PED_ASSERT (ft->cluster_count + 2 <= ft->size, return 0);
+
+	ft->free_cluster_count = 0;
+	ft->bad_cluster_count = 0;
+
+	for (i=2; i < ft->cluster_count + 2; i++) {
+		if (fat_table_is_available (ft, i))
+			ft->free_cluster_count++;
+		if (fat_table_is_bad (ft, i))
+			ft->bad_cluster_count++;
+	}
+	return 1;
+}
+
+int
+fat_table_read (FatTable* ft, const PedFileSystem* fs, int table_num)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+
+	PED_ASSERT (ft->raw_size >= fs_info->fat_sectors * 512, return 0);
+
+	memset (ft->table, 0, ft->raw_size);
+
+        if (!ped_geometry_read (fs->geom, (void *) ft->table,
+				fs_info->fat_offset
+					+ table_num * fs_info->fat_sectors,
+				fs_info->fat_sectors))
+		return 0;
+
+        if ( *((unsigned char*) ft->table) != fs_info->boot_sector.media) {
+		if (ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_IGNORE_CANCEL,
+			_("FAT %d media %x doesn't match the boot sector's "
+			  "media %x.  You should probably run scandisk."),
+			(int) table_num + 1,
+			(int) *((unsigned char*) ft->table),
+			(int) fs_info->boot_sector.media)
+				!= PED_EXCEPTION_IGNORE)
+			return 0;
+        }
+
+	ft->cluster_count = fs_info->cluster_count;
+
+	fat_table_count_stats (ft);
+
+	return 1;
+}
+
+int
+fat_table_write (const FatTable* ft, PedFileSystem* fs, int table_num)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+
+	PED_ASSERT (ft->raw_size >= fs_info->fat_sectors * 512, return 0);
+
+        if (!ped_geometry_write (fs->geom, (void *) ft->table,
+				 fs_info->fat_offset
+					+ table_num * fs_info->fat_sectors,
+				 fs_info->fat_sectors))
+		return 0;
+	if (!ped_geometry_sync (fs->geom))
+		return 0;
+
+	return 1;
+}
+
+int
+fat_table_write_all (const FatTable* ft, PedFileSystem* fs)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+	int		i;
+
+	for (i = 0; i < fs_info->fat_table_count; i++) {
+		if (!fat_table_write (ft, fs, i))
+			return 0;
+	}
+
+	return 1;
+}
+
+int
+fat_table_compare (const FatTable* a, const FatTable* b)
+{
+	FatCluster	i;
+
+	if (a->cluster_count != b->cluster_count)
+		return 0;
+
+	for (i = 0; i < a->cluster_count + 2; i++) {
+		if (fat_table_get (a, i) != fat_table_get (b, i))
+			return 0;
+	}
+
+	return 1;
+}
+
+static int
+_test_code_available (const FatTable* ft, FatCluster code)
+{
+	return code == 0;
+}
+
+static int
+_test_code_bad (const FatTable* ft, FatCluster code)
+{
+	switch (ft->fat_type) {
+                case FAT_TYPE_FAT12:
+                if (code == 0xff7) return 1;
+                break;
+
+		case FAT_TYPE_FAT16:
+		if (code == 0xfff7) return 1;
+		break;
+
+		case FAT_TYPE_FAT32:
+		if (code == 0x0ffffff7) return 1;
+		break;
+	}
+	return 0;
+}
+
+static int
+_test_code_eof (const FatTable* ft, FatCluster code)
+{
+	switch (ft->fat_type) {
+                case FAT_TYPE_FAT12:
+                if (code >= 0xff7) return 1;
+                break;
+
+		case FAT_TYPE_FAT16:
+		if (code >= 0xfff7) return 1;
+		break;
+
+		case FAT_TYPE_FAT32:
+		if (code >= 0x0ffffff7) return 1;
+		break;
+	}
+	return 0;
+}
+
+void
+_update_stats (FatTable* ft, FatCluster cluster, FatCluster value)
+{
+	if (_test_code_available (ft, value)
+	    && !fat_table_is_available (ft, cluster)) {
+		ft->free_cluster_count++;
+		if (fat_table_is_bad (ft, cluster))
+			ft->bad_cluster_count--;
+	}
+
+	if (!_test_code_available (ft, value)
+	    && fat_table_is_available (ft, cluster)) {
+		ft->free_cluster_count--;
+		if (_test_code_bad (ft, cluster))
+			ft->bad_cluster_count--;
+	}
+}
+
+int
+fat_table_set (FatTable* ft, FatCluster cluster, FatCluster value)
+{
+	if (cluster >= ft->cluster_count + 2) {
+		ped_exception_throw (PED_EXCEPTION_BUG,
+				     PED_EXCEPTION_CANCEL,
+				     _("fat_table_set: cluster %ld outside "
+				       "file system"),
+				     (long) cluster);
+		return 0;
+	}
+
+	_update_stats (ft, cluster, value);
+
+	switch (ft->fat_type) {
+                case FAT_TYPE_FAT12:
+                PED_ASSERT (0, (void) 0);
+                break;
+
+		case FAT_TYPE_FAT16:
+		((unsigned short *) ft->table) [cluster]
+			= PED_CPU_TO_LE16 (value);
+		break;
+
+		case FAT_TYPE_FAT32:
+		((unsigned int *) ft->table) [cluster]
+			= PED_CPU_TO_LE32 (value);
+		break;
+	}
+	return 1;
+}
+
+FatCluster 
+fat_table_get (const FatTable* ft, FatCluster cluster)
+{
+	if (cluster >= ft->cluster_count + 2) {
+		ped_exception_throw (PED_EXCEPTION_BUG,
+				     PED_EXCEPTION_CANCEL,
+				     _("fat_table_get: cluster %ld outside "
+				       "file system"),
+				     (long) cluster);
+		exit (1);	/* FIXME */
+	}
+
+	switch (ft->fat_type) {
+                case FAT_TYPE_FAT12:
+                PED_ASSERT (0, (void) 0);
+                break;
+
+		case FAT_TYPE_FAT16:
+		return PED_LE16_TO_CPU
+			(((unsigned short *) ft->table) [cluster]);
+
+		case FAT_TYPE_FAT32:
+		return PED_LE32_TO_CPU
+			(((unsigned int *) ft->table) [cluster]);
+	}
+
+	return 0;
+}
+
+FatCluster
+fat_table_alloc_cluster (FatTable* ft)
+{
+	FatCluster	i;
+	FatCluster	cluster;
+
+/* hack: assumes the first two FAT entries are marked as used (which they
+ * always should be)
+ */
+	for (i=1; i < ft->cluster_count + 1; i++) {
+		cluster = (i + ft->last_alloc) % ft->cluster_count;
+		if (fat_table_is_available (ft, cluster)) {
+			ft->last_alloc = cluster;
+			return cluster;
+		}
+	}
+
+	ped_exception_throw (PED_EXCEPTION_ERROR,
+			     PED_EXCEPTION_CANCEL,
+			     _("fat_table_alloc_cluster: no free clusters"));
+	return 0;
+}
+
+FatCluster
+fat_table_alloc_check_cluster (FatTable* ft, PedFileSystem* fs)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+	FatCluster	result;
+
+	while (1) {
+		result = fat_table_alloc_cluster (ft);
+		if (!result)
+			return 0;
+		if (fat_read_cluster (fs, fs_info->buffer, result))
+			return result;
+		fat_table_set_bad (ft, result);
+	}
+}
+
+/*
+    returns true if <cluster> is marked as bad
+*/
+int
+fat_table_is_bad (const FatTable* ft, FatCluster cluster)
+{
+	return _test_code_bad (ft, fat_table_get (ft, cluster));
+}
+
+/*
+    returns true if <cluster> represents an EOF marker
+*/
+int
+fat_table_is_eof (const FatTable* ft, FatCluster cluster)
+{
+	return _test_code_eof (ft, cluster);
+}
+
+/*
+    returns true if <cluster> is available.
+*/
+int
+fat_table_is_available (const FatTable* ft, FatCluster cluster)
+{
+	return _test_code_available (ft, fat_table_get (ft, cluster));
+}
+
+/*
+    returns true if <cluster> is empty.  Note that this includes bad clusters.
+*/
+int
+fat_table_is_empty (const FatTable* ft, FatCluster cluster)
+{
+	return fat_table_is_available (ft, cluster)
+		|| fat_table_is_bad (ft, cluster);
+}
+
+/*
+    returns true if <cluster> is being used for something constructive.
+*/
+int
+fat_table_is_active (const FatTable* ft, FatCluster cluster)
+{
+	return !fat_table_is_bad (ft, cluster)
+		&& !fat_table_is_available (ft, cluster);
+}
+
+/*
+    marks <cluster> as the last cluster in the chain
+*/
+int
+fat_table_set_eof (FatTable* ft, FatCluster cluster)
+{
+
+	switch (ft->fat_type) {
+                case FAT_TYPE_FAT12:
+                PED_ASSERT (0, (void) 0);
+                break;
+
+		case FAT_TYPE_FAT16:
+		return fat_table_set (ft, cluster, 0xfff8);
+        
+		case FAT_TYPE_FAT32:
+		return fat_table_set (ft, cluster, 0x0fffffff);
+	}
+
+	return 0;
+}
+
+/*
+	Marks a clusters as unusable, due to physical disk damage.
+*/
+int
+fat_table_set_bad (FatTable* ft, FatCluster cluster)
+{
+	if (!fat_table_is_bad (ft, cluster))
+		ft->bad_cluster_count++;
+
+	switch (ft->fat_type) {
+                case FAT_TYPE_FAT12:
+		return fat_table_set (ft, cluster, 0xff7);
+
+		case FAT_TYPE_FAT16:
+		return fat_table_set (ft, cluster, 0xfff7);
+        
+		case FAT_TYPE_FAT32:
+		return fat_table_set (ft, cluster, 0x0ffffff7);
+	}
+
+	return 0;
+}
+
+/*
+    marks <cluster> as unused/free/available
+*/
+int
+fat_table_set_avail (FatTable* ft, FatCluster cluster)
+{
+	return fat_table_set (ft, cluster, 0);
+}
+
+#endif /* !DISCOVER_ONLY */
+
+int
+fat_table_entry_size (FatType fat_type)
+{
+	switch (fat_type) {
+		case FAT_TYPE_FAT12:
+		return 2;		/* FIXME: how? */
+
+		case FAT_TYPE_FAT16:
+		return 2;
+
+		case FAT_TYPE_FAT32:
+		return 4;
+	}
+
+	return 0;
+}
+
diff --git a/parted-1.8.7/libparted/fs/fat/table.h b/parted-1.8.7/libparted/fs/fat/table.h
new file mode 100644
index 0000000..9d2501b
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/fat/table.h
@@ -0,0 +1,75 @@
+/*
+    libparted
+    Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef PED_FAT_TABLE_H_INCLUDED
+#define PED_FAT_TABLE_H_INCLUDED
+
+typedef struct _FatTable	FatTable;
+
+#include "fat.h"
+
+struct _FatTable {
+	void*		table;
+	FatCluster	size;
+	int		raw_size;
+
+	FatType		fat_type;
+	FatCluster	cluster_count;
+	FatCluster	free_cluster_count;
+	FatCluster	bad_cluster_count;
+
+	FatCluster	last_alloc;
+};
+
+extern FatTable* fat_table_new (FatType fat_type, FatCluster size);
+extern FatTable* fat_table_duplicate (const FatTable* ft);
+extern void fat_table_destroy (FatTable* ft);
+extern void fat_table_clear (FatTable* ft);
+extern int fat_table_set_cluster_count (FatTable* ft,
+					FatCluster new_cluster_count);
+
+extern int fat_table_read (FatTable* ft, const PedFileSystem* fs,
+			   int table_num);
+extern int fat_table_write (const FatTable* ft, PedFileSystem* fs,
+			    int table_num);
+extern int fat_table_write_all (const FatTable* ft, PedFileSystem* fs);
+extern int fat_table_compare (const FatTable* a, const FatTable* b);
+extern int fat_table_count_stats (FatTable* ft);
+
+extern FatCluster fat_table_get (const FatTable* ft, FatCluster cluster);
+extern int fat_table_set (FatTable* ft, FatCluster cluster, FatCluster value);
+
+extern FatCluster fat_table_alloc_cluster (FatTable* ft);
+extern FatCluster fat_table_alloc_check_cluster (FatTable* ft,
+						 PedFileSystem* fs);
+
+extern int fat_table_is_bad (const FatTable* ft, FatCluster cluster);
+extern int fat_table_is_eof (const FatTable* ft, FatCluster cluster);
+extern int fat_table_is_empty (const FatTable* ft, FatCluster cluster);
+extern int fat_table_is_available (const FatTable* ft, FatCluster cluster);
+extern int fat_table_is_active (const FatTable* ft, FatCluster cluster);
+
+extern int fat_table_set_eof (FatTable* ft, FatCluster cluster);
+extern int fat_table_set_avail (FatTable* ft, FatCluster cluster);
+extern int fat_table_set_bad (FatTable* ft, FatCluster cluster);
+
+extern int fat_table_entry_size (FatType fat_type);
+
+#endif /* PED_FAT_TABLE_H_INCLUDED */
+
diff --git a/parted-1.8.7/libparted/fs/fat/traverse.c b/parted-1.8.7/libparted/fs/fat/traverse.c
new file mode 100644
index 0000000..da63964
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/fat/traverse.c
@@ -0,0 +1,374 @@
+/*
+    libparted
+    Copyright (C) 1998, 1999, 2000, 2005, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+
+    I can also be contacted at:
+
+    Andrew Clausen
+    18 Shaw St
+    Ashwood, 3147
+    Victoria, Australia
+
+*/
+
+#include <config.h>
+#include "fat.h"
+#include "traverse.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifndef DISCOVER_ONLY
+
+#define NO_CLUSTER -1
+
+static char tmp_buffer [4096];
+
+int
+fat_traverse_entries_per_buffer (FatTraverseInfo* trav_info)
+{
+	return trav_info->buffer_size / sizeof (FatDirEntry);
+}
+
+/* returns 1 if there are no more directory entries in the directory being
+ * traversed, 0 otherwise.
+ */
+static int
+is_last_buffer (FatTraverseInfo* trav_info) {
+	FatSpecific*	fs_info = FAT_SPECIFIC (trav_info->fs);
+    
+	if (trav_info->is_legacy_root_dir)
+		return 1;
+	else
+		return fat_table_is_eof (fs_info->fat, trav_info->next_buffer);
+}
+
+static int
+write_root_dir (FatTraverseInfo* trav_info)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (trav_info->fs);
+	
+	if (!ped_geometry_write (trav_info->fs->geom, trav_info->dir_entries,
+				 fs_info->root_dir_offset,
+				 fs_info->root_dir_sector_count))
+		return 0;
+	if (!ped_geometry_sync (trav_info->fs->geom))
+		return 0;
+	trav_info->dirty = 0;
+	return 1;
+}
+
+static int
+write_dir_cluster (FatTraverseInfo* trav_info)
+{
+	if (!fat_write_sync_cluster (trav_info->fs,
+				     (void*) trav_info->dir_entries,
+				     trav_info->this_buffer))
+		return 0;
+	trav_info->dirty = 0;
+	return 1;
+}
+
+static int
+write_dir_buffer (FatTraverseInfo* trav_info)
+{
+	if (trav_info->is_legacy_root_dir)
+		return write_root_dir (trav_info);
+	else
+		return write_dir_cluster (trav_info);
+}
+
+static int
+read_next_dir_buffer (FatTraverseInfo* trav_info)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (trav_info->fs);
+
+	PED_ASSERT (!trav_info->is_legacy_root_dir, return 0);
+
+	trav_info->this_buffer = trav_info->next_buffer;
+
+	if (trav_info->this_buffer < 2
+	    || trav_info->this_buffer >= fs_info->cluster_count + 2) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			"Cluster %ld in directory %s is outside file system!",
+			(long) trav_info->this_buffer,
+			trav_info->dir_name);
+		return 0;
+	}
+
+	trav_info->next_buffer
+		= fat_table_get (fs_info->fat, trav_info->this_buffer);
+
+	return fat_read_cluster (trav_info->fs, (void *) trav_info->dir_entries,
+				 trav_info->this_buffer);
+}
+
+/* FIXME: put into fat_dir_entry_* operations */
+void
+fat_traverse_mark_dirty (FatTraverseInfo* trav_info)
+{
+	trav_info->dirty = 1;
+}
+
+FatTraverseInfo*
+fat_traverse_begin (PedFileSystem* fs, FatCluster start_cluster,
+		    char* dir_name)
+{
+	FatSpecific*		fs_info = FAT_SPECIFIC (fs);
+	FatTraverseInfo*	trav_info;
+
+	trav_info = (FatTraverseInfo*) ped_malloc (sizeof (FatTraverseInfo));
+	if (!trav_info)
+		goto error;
+
+	trav_info->dir_name = strdup (dir_name);
+	if (!trav_info->dir_name)
+		goto error_free_trav_info;
+
+	trav_info->fs = fs;
+	trav_info->is_legacy_root_dir
+		= (fs_info->fat_type == FAT_TYPE_FAT16) && (start_cluster == 0);
+	trav_info->dirty = 0;
+	trav_info->eof = 0;
+	trav_info->current_entry = -1;
+
+	if (trav_info->is_legacy_root_dir) {
+		trav_info->buffer_size = 512 * fs_info->root_dir_sector_count;
+	} else {
+		trav_info->next_buffer = start_cluster;
+		trav_info->buffer_size = fs_info->cluster_size;
+	}
+
+	trav_info->dir_entries
+		= (FatDirEntry*) ped_malloc (trav_info->buffer_size);
+	if (!trav_info->dir_entries)
+		goto error_free_dir_name;
+
+	if (trav_info->is_legacy_root_dir) {
+		if (!ped_geometry_read (fs->geom, trav_info->dir_entries,
+					fs_info->root_dir_offset,
+					fs_info->root_dir_sector_count))
+			goto error_free_dir_entries;
+	} else {
+		if (!read_next_dir_buffer (trav_info))
+			goto error_free_dir_entries;
+	}
+
+	return trav_info;
+
+error_free_dir_entries:
+	ped_free (trav_info->dir_entries);
+error_free_dir_name:
+	ped_free (trav_info->dir_name);
+error_free_trav_info:
+	ped_free (trav_info);
+error:
+	return NULL;
+}
+
+int
+fat_traverse_complete (FatTraverseInfo* trav_info)
+{
+	if (trav_info->dirty) {
+		if (!write_dir_buffer (trav_info))
+			return 0;
+	}
+	ped_free (trav_info->dir_entries);
+	ped_free (trav_info->dir_name);
+	ped_free (trav_info);
+	return 1;
+}
+
+FatTraverseInfo*
+fat_traverse_directory (FatTraverseInfo *trav_info, FatDirEntry* parent)
+{
+	strcpy (tmp_buffer, trav_info->dir_name);
+	fat_dir_entry_get_name (parent,
+				tmp_buffer + strlen (trav_info->dir_name));
+	strcat (tmp_buffer, "\\");
+
+	return fat_traverse_begin (trav_info->fs,
+			fat_dir_entry_get_first_cluster (parent, trav_info->fs),
+			tmp_buffer);
+}
+
+FatDirEntry*
+fat_traverse_next_dir_entry (FatTraverseInfo *trav_info)
+{
+	if (trav_info->eof)
+		return NULL;
+
+	trav_info->current_entry++;
+	if (trav_info->current_entry
+			>= fat_traverse_entries_per_buffer (trav_info)) {
+		if (trav_info->dirty) {
+			if (!write_dir_buffer (trav_info))
+				return NULL;
+		}
+
+		trav_info->current_entry = 0;
+		if (is_last_buffer (trav_info)) {
+			trav_info->eof = 1;
+			return NULL;
+		}
+		if (!read_next_dir_buffer (trav_info))
+			return NULL;
+	}
+	return trav_info->dir_entries + trav_info->current_entry;
+}
+
+FatCluster
+fat_dir_entry_get_first_cluster (FatDirEntry* dir_entry, PedFileSystem *fs)
+{
+	FatSpecific*		fs_info = FAT_SPECIFIC (fs);
+
+	switch (fs_info->fat_type) {
+	case FAT_TYPE_FAT12:
+	case FAT_TYPE_FAT16:
+		return PED_LE16_TO_CPU (dir_entry->first_cluster);
+
+        case FAT_TYPE_FAT32:
+		return PED_LE16_TO_CPU (dir_entry->first_cluster_high)
+				* 65536L
+			  + PED_LE16_TO_CPU (dir_entry->first_cluster);
+	}
+
+	return 0;
+}
+
+void
+fat_dir_entry_set_first_cluster (FatDirEntry* dir_entry, PedFileSystem* fs,
+				 FatCluster cluster)
+{
+	FatSpecific*		fs_info = FAT_SPECIFIC (fs);
+
+	switch (fs_info->fat_type) {
+                case FAT_TYPE_FAT12:
+                PED_ASSERT (0, (void) 0);
+                break;
+
+		case FAT_TYPE_FAT16:
+		dir_entry->first_cluster = PED_CPU_TO_LE16 (cluster);
+		break;
+            
+		case FAT_TYPE_FAT32:
+		dir_entry->first_cluster
+			= PED_CPU_TO_LE16 (cluster & 0xffff);
+		dir_entry->first_cluster_high
+			= PED_CPU_TO_LE16 (cluster / 0x10000);
+		break;
+	}
+}
+
+uint32_t
+fat_dir_entry_get_length (FatDirEntry* dir_entry)
+{
+	return PED_LE32_TO_CPU (dir_entry->length);
+}
+
+int
+fat_dir_entry_is_null_term (const FatDirEntry* dir_entry)
+{
+	FatDirEntry	null_entry;
+
+	memset (&null_entry, 0, sizeof (null_entry));
+	return memcmp (&null_entry, dir_entry, sizeof (null_entry)) == 0;
+}
+
+int
+fat_dir_entry_is_active (FatDirEntry* dir_entry)
+{
+	if ((unsigned char) dir_entry->name[0] == DELETED_FLAG) return 0;
+	if ((unsigned char) dir_entry->name[0] == 0) return 0;
+	if ((unsigned char) dir_entry->name[0] == 0xF6) return 0;
+	return 1;
+}
+
+int
+fat_dir_entry_is_file (FatDirEntry* dir_entry) {
+	if (dir_entry->attributes == VFAT_ATTR) return 0;
+	if (dir_entry->attributes & VOLUME_LABEL_ATTR) return 0;
+	if (!fat_dir_entry_is_active (dir_entry)) return 0;
+	if ((dir_entry->attributes & DIRECTORY_ATTR) == DIRECTORY_ATTR) return 0;
+	return 1;
+}
+
+int
+fat_dir_entry_is_system_file (FatDirEntry* dir_entry)
+{
+	if (!fat_dir_entry_is_file (dir_entry)) return 0;
+	return (dir_entry->attributes & SYSTEM_ATTR)
+		|| (dir_entry->attributes & HIDDEN_ATTR);
+}
+
+int
+fat_dir_entry_is_directory (FatDirEntry* dir_entry)
+{
+	if (dir_entry->attributes == VFAT_ATTR) return 0;
+	if (dir_entry->attributes & VOLUME_LABEL_ATTR) return 0;
+	if (!fat_dir_entry_is_active (dir_entry)) return 0;
+	return (dir_entry->attributes & DIRECTORY_ATTR) == DIRECTORY_ATTR;
+}
+
+int
+fat_dir_entry_has_first_cluster (FatDirEntry* dir_entry, PedFileSystem* fs)
+{
+	FatSpecific*	fs_info = FAT_SPECIFIC (fs);
+	FatCluster	first_cluster;
+    
+	if (!fat_dir_entry_is_file (dir_entry)
+		&& !fat_dir_entry_is_directory (dir_entry))
+		return 0;
+
+	first_cluster = fat_dir_entry_get_first_cluster (dir_entry, fs);
+	if (first_cluster == 0
+		|| fat_table_is_eof (fs_info->fat, first_cluster))
+		return 0;
+
+	return 1;
+}
+
+/*
+    decrypts silly DOS names to FILENAME.EXT
+*/
+void
+fat_dir_entry_get_name (FatDirEntry*dir_entry, char *result) {
+	int     i;
+	char   *src;
+
+	src = dir_entry->name;
+
+	for (i=0; i<8; i++) {
+		if (src[i] == ' ' || src[i] == 0) break;
+		*result++ = src[i];
+	}
+
+	if (src[8] != ' ' && src[8] != 0) {
+		*result++ = '.';
+		for (i=8; i<11; i++) {
+			if (src[i] == ' ' || src[i] == 0) break;
+			*result++ = src[i];
+		}
+	}
+
+	*result = 0;
+}
+
+#endif /* !DISCOVER_ONLY */
diff --git a/parted-1.8.7/libparted/fs/fat/traverse.h b/parted-1.8.7/libparted/fs/fat/traverse.h
new file mode 100644
index 0000000..b88302c
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/fat/traverse.h
@@ -0,0 +1,81 @@
+/*
+    libparted
+    Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+
+    I can also be contacted at:
+
+    Andrew Clausen
+    18 Shaw St
+    Ashwood, 3147
+    Victoria, Australia
+*/
+
+#ifndef TRAVERSE_H_INCLUDED
+#define TRAVERSE_H_INCLUDED
+
+#include "fatio.h"
+
+typedef struct _FatTraverseInfo		FatTraverseInfo;
+
+struct _FatTraverseInfo {
+	PedFileSystem*		fs;
+	char*			dir_name;
+
+	int			is_legacy_root_dir;
+	int			dirty;
+	int			eof;
+
+	FatDirEntry*		dir_entries;
+	int			current_entry;
+	FatCluster		this_buffer, next_buffer;
+	int			buffer_size;
+};
+
+extern int fat_traverse_entries_per_buffer (FatTraverseInfo* trav_info);
+
+/* starts traversal at an arbitary cluster.  if start_cluster==0, then uses
+   root directory */
+extern FatTraverseInfo* fat_traverse_begin (PedFileSystem* fs,
+				     FatCluster start_cluster, char* dir_name);
+
+extern int fat_traverse_complete (FatTraverseInfo* trav_info);
+
+extern FatTraverseInfo* fat_traverse_directory (FatTraverseInfo* trav_info,
+						FatDirEntry* parent);
+
+extern void fat_traverse_mark_dirty (FatTraverseInfo* trav_info);
+
+extern FatDirEntry* fat_traverse_next_dir_entry (FatTraverseInfo* trav_info);
+
+extern FatCluster fat_dir_entry_get_first_cluster (FatDirEntry* dir_entry,
+						   PedFileSystem* fs);
+
+extern void fat_dir_entry_set_first_cluster (FatDirEntry* dir_entry,
+					PedFileSystem* fs, FatCluster cluster);
+
+extern uint32_t fat_dir_entry_get_length (FatDirEntry* dir_entry);
+
+extern int fat_dir_entry_is_null_term (const FatDirEntry* dir_entry);
+extern int fat_dir_entry_is_file (FatDirEntry* dir_entry);
+extern int fat_dir_entry_is_system_file (FatDirEntry* dir_entry);
+extern int fat_dir_entry_is_directory (FatDirEntry* dir_entry);
+extern void fat_dir_entry_get_name (FatDirEntry* dir_entry, char* result);
+extern int fat_dir_entry_is_active (FatDirEntry* dir_entry);
+extern int fat_dir_entry_has_first_cluster (FatDirEntry* dir_entry,
+					    PedFileSystem* fs);
+
+#endif /* TRAVERSE_H_INCLUDED */
diff --git a/parted-1.8.7/libparted/fs/hfs/Makefile.am b/parted-1.8.7/libparted/fs/hfs/Makefile.am
new file mode 100644
index 0000000..00cefe4
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/hfs/Makefile.am
@@ -0,0 +1,17 @@
+partedincludedir	= -I$(top_srcdir)/include
+
+noinst_LTLIBRARIES	= libhfs.la
+libhfs_la_SOURCES	= hfs.c hfs.h \
+			  probe.c probe.h \
+			  cache.c cache.h \
+			  advfs.c advfs.h \
+			  file.c file.h \
+			  reloc.c reloc.h \
+			  advfs_plus.c advfs_plus.h \
+			  file_plus.c file_plus.h \
+			  reloc_plus.c reloc_plus.h \
+			  journal.c journal.h
+
+INCLUDES = $(partedincludedir) $(INTLINCS)
+
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/parted-1.8.7/libparted/fs/hfs/Makefile.in b/parted-1.8.7/libparted/fs/hfs/Makefile.in
new file mode 100644
index 0000000..aacb1e4
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/hfs/Makefile.in
@@ -0,0 +1,644 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = libparted/fs/hfs
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in TODO
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+libhfs_la_LIBADD =
+am_libhfs_la_OBJECTS = hfs.lo probe.lo cache.lo advfs.lo file.lo \
+	reloc.lo advfs_plus.lo file_plus.lo reloc_plus.lo journal.lo
+libhfs_la_OBJECTS = $(am_libhfs_la_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/lib@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(libhfs_la_SOURCES)
+DIST_SOURCES = $(libhfs_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+partedincludedir = -I$(top_srcdir)/include
+noinst_LTLIBRARIES = libhfs.la
+libhfs_la_SOURCES = hfs.c hfs.h \
+			  probe.c probe.h \
+			  cache.c cache.h \
+			  advfs.c advfs.h \
+			  file.c file.h \
+			  reloc.c reloc.h \
+			  advfs_plus.c advfs_plus.h \
+			  file_plus.c file_plus.h \
+			  reloc_plus.c reloc_plus.h \
+			  journal.c journal.h
+
+INCLUDES = $(partedincludedir) $(INTLINCS)
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  libparted/fs/hfs/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  libparted/fs/hfs/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libhfs.la: $(libhfs_la_OBJECTS) $(libhfs_la_DEPENDENCIES) 
+	$(LINK)  $(libhfs_la_OBJECTS) $(libhfs_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/advfs.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/advfs_plus.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cache.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_plus.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hfs.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/journal.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/probe.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reloc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reloc_plus.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/libparted/fs/hfs/TODO b/parted-1.8.7/libparted/fs/hfs/TODO
new file mode 100644
index 0000000..13bca9c
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/hfs/TODO
@@ -0,0 +1,27 @@
+--- TODO ---
+
+   * Continue to write regressions tests and try on 2.6 kernel  -- (high)
+   * Fix timer progression calculation, according to the new
+     caching code						-- (high)
+   * write doc, website, ...					-- (high)
+   * Check block allocation in linux 2.4 and remove
+     compatibility code if possible				-- (high)
+  
+   * In hfs(plus)_btree_search , use a static variable to detect
+     illegal recursion and abort in that case. (find the right
+     number of recursion before reporting bug) -- easy		-- (medium)
+   * Finish the HFS Extractor					-- (medium)
+     (add mdb & vh extraction, and maybe journal)    
+
+   * Write code to allow enlarging and moving HFS[+x]		-- (low)
+   * Use a bitmap to internaly store the bad blocks		-- (low)
+   * Less bitmap saves ?					-- (low)
+   * Continue to change the relocation algorithm
+     for a better one :)					-- (low)
+
+--- NOT todo ---
+
+   * debug HFS(+) Linux implementation (block allocation for HFS+,
+     hard and sym links for HFS+, filename length for HFS, ...)	-- (dont)
+	/// Linux 2.6 contains HFS(+) implementations with less bugs
+	/// Linux 2.4 should not be used anymore to access HFS(+)
diff --git a/parted-1.8.7/libparted/fs/hfs/advfs.c b/parted-1.8.7/libparted/fs/hfs/advfs.c
new file mode 100644
index 0000000..5a57e95
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/hfs/advfs.c
@@ -0,0 +1,329 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef DISCOVER_ONLY
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/endian.h>
+#include <parted/debug.h>
+#include <stdint.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#include "hfs.h"
+#include "file.h"
+
+#include "advfs.h"
+
+/* - if a < b, 0 if a == b, + if a > b */
+/* Comparaison is done in the following order : */
+/* CNID, then fork type, then start block */
+/* Note that HFS implementation in linux has a bug */
+/* in this function */
+static int
+hfs_extent_key_cmp(HfsPrivateGenericKey* a, HfsPrivateGenericKey* b)
+{
+	HfsExtentKey* key1 = (HfsExtentKey*) a;
+	HfsExtentKey* key2 = (HfsExtentKey*) b;
+
+	/* do NOT use a substraction, because */
+	/* 0xFFFFFFFF - 1 = 0xFFFFFFFE so this */
+	/* would return -2, despite the fact */
+	/* 0xFFFFFFFF > 1 !!! (this is the 2.4 bug) */
+	if (key1->file_ID != key2->file_ID)
+		return PED_BE32_TO_CPU(key1->file_ID) <
+		       PED_BE32_TO_CPU(key2->file_ID) ? 
+				-1 : +1;
+
+	if (key1->type != key2->type)
+		return (int)(key1->type - key2->type);
+
+	if (key1->start == key2->start)
+		return 0;
+	/* the whole thing wont work with 16 bits ints */
+	/* anyway */
+	return (int)( PED_BE16_TO_CPU(key1->start) - 
+		      PED_BE16_TO_CPU(key2->start) );
+}
+
+/* do a B-Tree lookup */
+/* read the first record immediatly inferior or egal to the given key */
+/* return 0 on error */
+/* record_out _must_ be large enough to receive record_size bytes */
+/* WARNING : the compare function called only handle Extents BTree */
+/*	     so modify this function if you want to do lookup in */
+/* 	     other BTrees has well */
+int
+hfs_btree_search (HfsPrivateFile* b_tree_file, HfsPrivateGenericKey* key,
+		  void *record_out, unsigned int record_size,
+		  HfsCPrivateLeafRec* record_ref)
+{
+	uint8_t			node[PED_SECTOR_SIZE_DEFAULT];
+	HfsHeaderRecord*	header;
+	HfsNodeDescriptor*	desc = (HfsNodeDescriptor*) node;
+	HfsPrivateGenericKey*	record_key = NULL;
+	unsigned int		node_number, record_number;
+	int			i;
+
+	/* Read the header node */
+	if (!hfs_file_read_sector(b_tree_file, node, 0))
+		return 0;
+	header = ((HfsHeaderRecord*) (node + PED_BE16_TO_CPU(*((uint16_t *)
+						(node+(PED_SECTOR_SIZE_DEFAULT-2))))));
+
+	/* Get the node number of the root */
+	node_number = PED_BE32_TO_CPU(header->root_node);
+	if (!node_number)
+		return 0;
+
+	/* Read the root node */
+	if (!hfs_file_read_sector(b_tree_file, node, node_number))
+		return 0;
+
+	/* Follow the white rabbit */
+	while (1) {
+		record_number = PED_BE16_TO_CPU (desc->rec_nb);
+		for (i = record_number; i; i--) {
+			record_key = (HfsPrivateGenericKey*)
+				(node + PED_BE16_TO_CPU(*((uint16_t *)
+					    (node+(PED_SECTOR_SIZE_DEFAULT - 2*i)))));
+			/* check for obvious error in FS */
+			if (((uint8_t*)record_key - node < HFS_FIRST_REC)
+			    || ((uint8_t*)record_key - node
+				>= PED_SECTOR_SIZE_DEFAULT
+				   - 2 * (signed)(record_number+1))) {
+				ped_exception_throw (
+					PED_EXCEPTION_ERROR,
+					PED_EXCEPTION_CANCEL,
+					_("The file system contains errors."));
+				return 0;
+			}
+			if (hfs_extent_key_cmp(record_key, key) <= 0)
+				break;
+		}
+		if (!i) return 0;
+		if (desc->type == HFS_IDX_NODE) {
+			unsigned int 	skip;
+
+			skip = (1 + record_key->key_length + 1) & ~1;
+			node_number = PED_BE32_TO_CPU (*((uint32_t *)
+					(((uint8_t *) record_key) + skip)));
+			if (!hfs_file_read_sector(b_tree_file, node,
+						  node_number))
+				return 0;
+		} else 
+			break;
+	}
+
+	/* copy the result if needed */
+	if (record_size)
+		memcpy (record_out, record_key, record_size);
+
+	/* send record reference if needed */
+	if (record_ref) {
+		record_ref->node_size = 1;	/* in sectors */
+		record_ref->node_number = node_number;
+		record_ref->record_pos = (uint8_t*)record_key - node;
+		record_ref->record_number = i;
+	}
+
+	/* success */
+	return 1;
+}
+
+/* free the bad blocks linked list */
+void
+hfs_free_bad_blocks_list(HfsPrivateLinkExtent* first)
+{
+	HfsPrivateLinkExtent*	next;
+
+	while (first) {
+		next = first->next;
+		ped_free (first);
+		first = next;
+	}
+}
+
+/* This function reads bad blocks extents in the extents file
+   and store it in f.s. specific data of fs */
+int
+hfs_read_bad_blocks (const PedFileSystem *fs)
+{
+	HfsPrivateFSData* 	priv_data = (HfsPrivateFSData*)
+						fs->type_specific;
+
+	if (priv_data->bad_blocks_loaded)
+		return 1;
+
+	{
+	uint8_t			record[sizeof (HfsExtentKey) 
+					       + sizeof (HfsExtDataRec)];
+	HfsExtentKey		search;
+	HfsExtentKey*		ret_key = (HfsExtentKey*) record;
+	HfsExtDescriptor*	ret_cache = (HfsExtDescriptor*)
+					     (record + sizeof (HfsExtentKey));
+	unsigned int		block, last_start, first_pass = 1;
+
+	search.key_length = sizeof (HfsExtentKey) - 1;
+	search.type = HFS_DATA_FORK;
+	search.file_ID = PED_CPU_TO_BE32 (HFS_BAD_BLOCK_ID);
+
+	last_start = -1; block = 0;
+	while (1) {
+		int i;
+
+		search.start = PED_CPU_TO_BE16 (block);
+		if (!hfs_btree_search (priv_data->extent_file,
+				       (HfsPrivateGenericKey*) &search,
+				       record, sizeof (record), NULL)
+		    || ret_key->file_ID != search.file_ID
+		    || ret_key->type != search.type) {
+			if (first_pass)
+				break;
+			else
+				goto errbb;
+		}
+		if (PED_BE16_TO_CPU (ret_key->start) == last_start)
+		    break;
+
+		last_start = PED_BE16_TO_CPU (ret_key->start);
+		for (i = 0; i < HFS_EXT_NB; i++) {
+			if (ret_cache[i].block_count) {
+				HfsPrivateLinkExtent*	new_xt =
+				   (HfsPrivateLinkExtent*) ped_malloc (
+					sizeof (HfsPrivateLinkExtent));
+				if (!new_xt)
+					goto errbb;
+				new_xt->next = priv_data->bad_blocks_xtent_list;
+				memcpy(&(new_xt->extent), ret_cache+i,
+					sizeof (HfsExtDescriptor));
+				priv_data->bad_blocks_xtent_list = new_xt;
+				priv_data->bad_blocks_xtent_nb++;
+				block += PED_BE16_TO_CPU (
+						ret_cache[i].block_count);
+			}
+		}
+		first_pass = 0;
+	}
+
+	priv_data->bad_blocks_loaded = 1;
+	return 1;}
+
+errbb:	hfs_free_bad_blocks_list(priv_data->bad_blocks_xtent_list);
+	priv_data->bad_blocks_xtent_list=NULL;
+	priv_data->bad_blocks_xtent_nb=0;
+	return 0;
+}
+
+/* This function check if fblock is a bad block */
+int
+hfs_is_bad_block (const PedFileSystem *fs, unsigned int fblock)
+{
+	HfsPrivateFSData* 	priv_data = (HfsPrivateFSData*)
+						fs->type_specific;
+	HfsPrivateLinkExtent*	walk;
+
+	for (walk = priv_data->bad_blocks_xtent_list; walk; walk = walk->next) {
+		/* Won't compile without the strange cast ! gcc bug ? */
+		/* or maybe C subtilties... */
+		if ((fblock >= PED_BE16_TO_CPU (walk->extent.start_block)) && 
+		    (fblock <  (unsigned int) (PED_BE16_TO_CPU (
+						    walk->extent.start_block)
+					       + PED_BE16_TO_CPU (
+						    walk->extent.block_count))))
+			return 1;
+	}
+
+	return 0;
+}
+
+/* This function returns the first sector of the last free block of an
+   HFS volume we can get after a hfs_pack_free_space_from_block call */
+/* On error this function returns 0 */
+PedSector
+hfs_get_empty_end (const PedFileSystem *fs)
+{
+	HfsPrivateFSData* 	priv_data = (HfsPrivateFSData*)
+						fs->type_specific;
+	HfsMasterDirectoryBlock* mdb = priv_data->mdb;
+	HfsPrivateLinkExtent*	link;
+	unsigned int		block, last_bad, end_free_blocks;
+
+	/* find the next block to the last bad block of the volume */
+	if (!hfs_read_bad_blocks (fs))
+		return 0;
+
+	last_bad = 0;
+	for (link = priv_data->bad_blocks_xtent_list; link; link = link->next) {
+		if ((unsigned int) PED_BE16_TO_CPU (link->extent.start_block)
+		    + PED_BE16_TO_CPU (link->extent.block_count) > last_bad)
+			last_bad = PED_BE16_TO_CPU (link->extent.start_block)
+			           + PED_BE16_TO_CPU (link->extent.block_count);
+	}
+
+	/* Count the free blocks from last_bad to the end of the volume */
+	end_free_blocks = 0;
+	for (block = last_bad;
+	     block < PED_BE16_TO_CPU (mdb->total_blocks);
+	     block++) {
+		if (!TST_BLOC_OCCUPATION(priv_data->alloc_map,block))
+			end_free_blocks++;
+	}
+
+	/* Calculate the block that will by the first free at the
+	   end of the volume */
+	block = PED_BE16_TO_CPU (mdb->total_blocks) - end_free_blocks;
+
+	return (PedSector) PED_BE16_TO_CPU (mdb->start_block)
+		+ (PedSector) block * (PED_BE32_TO_CPU (mdb->block_size)
+				       / PED_SECTOR_SIZE_DEFAULT);
+}
+
+/* return the block which should be used to pack data to have at
+   least free fblock blocks at the end of the volume */
+unsigned int
+hfs_find_start_pack (const PedFileSystem *fs, unsigned int fblock)
+{
+	HfsPrivateFSData* 	priv_data = (HfsPrivateFSData*)
+						fs->type_specific;
+	unsigned int		block;
+
+	for (block = PED_BE16_TO_CPU (priv_data->mdb->total_blocks) - 1;
+	     block && fblock;
+	     block--) {
+		if (!TST_BLOC_OCCUPATION(priv_data->alloc_map,block))
+			fblock--;
+	}
+
+	while (block && !TST_BLOC_OCCUPATION(priv_data->alloc_map,block))
+		block--;
+	if (TST_BLOC_OCCUPATION(priv_data->alloc_map,block))
+		block++;
+
+	return block;
+}
+
+#endif /* !DISCOVER_ONLY */
diff --git a/parted-1.8.7/libparted/fs/hfs/advfs.h b/parted-1.8.7/libparted/fs/hfs/advfs.h
new file mode 100644
index 0000000..8e23fb6
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/hfs/advfs.h
@@ -0,0 +1,49 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2004 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef _ADVFS_H
+#define _ADVFS_H
+
+#include <parted/parted.h>
+#include <parted/endian.h>
+#include <parted/debug.h>
+
+#include "hfs.h"
+
+int
+hfs_btree_search (HfsPrivateFile* b_tree_file, HfsPrivateGenericKey* key,
+		  void *record_out, unsigned int record_size,
+		  HfsCPrivateLeafRec* record_ref);
+
+void
+hfs_free_bad_blocks_list(HfsPrivateLinkExtent* first);
+
+int
+hfs_read_bad_blocks (const PedFileSystem *fs);
+
+int
+hfs_is_bad_block (const PedFileSystem *fs, unsigned int fblock);
+
+PedSector
+hfs_get_empty_end (const PedFileSystem *fs);
+
+unsigned int
+hfs_find_start_pack (const PedFileSystem *fs, unsigned int fblock);
+
+#endif /* _ADVFS_H */
diff --git a/parted-1.8.7/libparted/fs/hfs/advfs_plus.c b/parted-1.8.7/libparted/fs/hfs/advfs_plus.c
new file mode 100644
index 0000000..c6eae59
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/hfs/advfs_plus.c
@@ -0,0 +1,384 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef DISCOVER_ONLY
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/endian.h>
+#include <parted/debug.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#include "hfs.h"
+#include "advfs.h"
+#include "file_plus.h"
+
+#include "advfs_plus.h"
+
+/* - if a < b, 0 if a == b, + if a > b */
+/* Comparaison is done in the following order : */
+/* CNID, then fork type, then start block */
+static int
+hfsplus_extent_key_cmp(HfsPPrivateGenericKey* a, HfsPPrivateGenericKey* b)
+{
+	HfsPExtentKey* key1 = (HfsPExtentKey*) a;
+	HfsPExtentKey* key2 = (HfsPExtentKey*) b;
+
+	if (key1->file_ID != key2->file_ID)
+		return PED_BE32_TO_CPU(key1->file_ID) <
+		       PED_BE32_TO_CPU(key2->file_ID) ? 
+				-1 : +1;
+
+	if (key1->type != key2->type)
+		return (int)(key1->type - key2->type);
+
+	if (key1->start == key2->start)
+		return 0;
+	return PED_BE32_TO_CPU(key1->start) < 
+	       PED_BE32_TO_CPU(key2->start) ?
+			-1 : +1;
+}
+
+/* do a B-Tree lookup */
+/* read the first record immediatly inferior or egal to the given key */
+/* return 0 on error */
+/* record_out _must_ be large enough to receive the whole record (key + data) */
+/* WARNING : the search function called only handle Extents BTree */
+/*	     so modify this function if you want to do lookup in */
+/* 	     other BTrees has well */
+int
+hfsplus_btree_search (HfsPPrivateFile* b_tree_file, HfsPPrivateGenericKey* key,
+		      void *record_out, unsigned int record_size,
+		      HfsCPrivateLeafRec* record_ref)
+{
+	uint8_t			node_1[PED_SECTOR_SIZE_DEFAULT];
+	uint8_t*		node;
+	HfsPHeaderRecord*	header;
+	HfsPNodeDescriptor*	desc = (HfsPNodeDescriptor*) node_1;
+	HfsPPrivateGenericKey*	record_key = NULL;
+	unsigned int		node_number, record_number, size, bsize;
+	int			i;
+
+	/* Read the header node */
+	if (!hfsplus_file_read_sector(b_tree_file, node_1, 0))
+		return 0;
+	header = (HfsPHeaderRecord*) (node_1 + HFS_FIRST_REC);
+
+	/* Get the node number of the root */
+	node_number = PED_BE32_TO_CPU (header->root_node);
+	if (!node_number)
+		return 0;
+
+	/* Get the size of a node in sectors and allocate buffer */
+	size = (bsize = PED_BE16_TO_CPU (header->node_size)) / PED_SECTOR_SIZE_DEFAULT;
+	node = (uint8_t*) ped_malloc (bsize);
+	if (!node)
+		return 0;
+	desc = (HfsPNodeDescriptor*) node;
+
+	/* Read the root node */
+	if (!hfsplus_file_read (b_tree_file, node,
+				(PedSector) node_number * size, size))
+		return 0;
+
+	/* Follow the white rabbit */
+	while (1) {
+		record_number = PED_BE16_TO_CPU (desc->rec_nb);
+		for (i = record_number; i; i--) {
+			record_key = (HfsPPrivateGenericKey*)
+			    (node + PED_BE16_TO_CPU(*((uint16_t *)
+					(node+(bsize - 2*i)))));
+			/* check for obvious error in FS */
+			if (((uint8_t*)record_key - node < HFS_FIRST_REC)
+			    || ((uint8_t*)record_key - node
+				>= (signed)bsize
+				   - 2 * (signed)(record_number+1))) {
+				ped_exception_throw (
+					PED_EXCEPTION_ERROR,
+					PED_EXCEPTION_CANCEL,
+					_("The file system contains errors."));
+				ped_free (node);
+				return 0;
+			}
+			if (hfsplus_extent_key_cmp(record_key, key) <= 0)
+				break;
+		}
+		if (!i) { ped_free (node); return 0; }
+		if (desc->type == HFS_IDX_NODE) {
+			unsigned int 	skip;
+
+			skip = ( 2 + PED_BE16_TO_CPU (record_key->key_length)
+			         + 1 ) & ~1;
+			node_number = PED_BE32_TO_CPU (*((uint32_t *)
+					(((uint8_t *) record_key) + skip)));
+			if (!hfsplus_file_read(b_tree_file, node,
+					       (PedSector) node_number * size,
+					       size)) {
+				ped_free (node);
+				return 0;
+			}
+		} else 
+			break;
+	}
+
+	/* copy the result if needed */
+	if (record_size)
+		memcpy (record_out, record_key, record_size);
+
+	/* send record reference if needed */
+	if (record_ref) {
+		record_ref->node_size = size;	/* in sectors */
+		record_ref->node_number = node_number;
+		record_ref->record_pos = (uint8_t*)record_key - node;
+		record_ref->record_number = i;
+	}
+
+	/* success */
+	ped_free (node);
+	return 1;
+}
+
+/* free the bad blocks linked list */
+void
+hfsplus_free_bad_blocks_list(HfsPPrivateLinkExtent* first)
+{
+	HfsPPrivateLinkExtent*	next;
+
+	while (first) {
+		next = first->next;
+		ped_free (first);
+		first = next;
+	}
+}
+
+/* This function reads bad blocks extents in the extents file
+   and store it in f.s. specific data of fs */
+int
+hfsplus_read_bad_blocks (const PedFileSystem *fs)
+{
+	HfsPPrivateFSData* 	priv_data = (HfsPPrivateFSData*)
+						    fs->type_specific;
+
+	if (priv_data->bad_blocks_loaded)
+		return 1;
+
+	{
+	uint8_t			record[sizeof (HfsPExtentKey)
+				       + sizeof (HfsPExtDataRec)];
+	HfsPExtentKey		search;
+	HfsPExtentKey*		ret_key = (HfsPExtentKey*) record;
+	HfsPExtDescriptor*	ret_cache = (HfsPExtDescriptor*)
+				    (record + sizeof (HfsPExtentKey));
+	int			block, first_pass = 1;
+	unsigned int		last_start;
+
+	search.key_length = sizeof (HfsExtentKey) - 2;
+	search.type = HFS_DATA_FORK;
+	search.pad = 0;
+	search.file_ID = PED_CPU_TO_BE32 (HFS_BAD_BLOCK_ID);
+
+	last_start = -1; block = 0;
+	while (1) {
+		int i;
+
+		search.start = PED_CPU_TO_BE32 (block);
+		if (!hfsplus_btree_search (priv_data->extents_file,
+					   (HfsPPrivateGenericKey*) &search,
+					   record, sizeof (record), NULL)
+		    || ret_key->file_ID != search.file_ID
+		    || ret_key->type != search.type) {
+			if (first_pass)
+				break;
+			else
+				goto errbbp;
+		}
+		if (PED_BE32_TO_CPU (ret_key->start) == last_start)
+			break;
+
+		last_start = PED_BE32_TO_CPU (ret_key->start);
+		for (i = 0; i < HFSP_EXT_NB; i++) {
+			if (ret_cache[i].block_count) {
+				HfsPPrivateLinkExtent*	new_xt =
+				  (HfsPPrivateLinkExtent*) ped_malloc (
+				    sizeof (HfsPPrivateLinkExtent));
+				if (!new_xt)
+					goto errbbp;
+				new_xt->next = priv_data->bad_blocks_xtent_list;
+				memcpy (&(new_xt->extent), ret_cache+i,
+					sizeof (HfsPExtDescriptor));
+				priv_data->bad_blocks_xtent_list = new_xt;
+				priv_data->bad_blocks_xtent_nb++;
+				block += PED_BE32_TO_CPU (
+						ret_cache[i].block_count);
+			}
+		}
+		first_pass = 0;
+	}
+
+	priv_data->bad_blocks_loaded = 1;
+	return 1;}
+
+errbbp: hfsplus_free_bad_blocks_list(priv_data->bad_blocks_xtent_list);
+	priv_data->bad_blocks_xtent_list=NULL;
+	priv_data->bad_blocks_xtent_nb=0;
+	return 0;
+}
+
+/* This function check if fblock is a bad block */
+int
+hfsplus_is_bad_block (const PedFileSystem *fs, unsigned int fblock)
+{
+	HfsPPrivateFSData* 	priv_data = (HfsPPrivateFSData*)
+						fs->type_specific;
+	HfsPPrivateLinkExtent*	walk;
+
+	for (walk = priv_data->bad_blocks_xtent_list; walk; walk = walk->next) {
+		/* Won't compile without the strange cast ! gcc bug ? */
+		/* or maybe C subtilties... */
+		if ((fblock >= PED_BE32_TO_CPU (walk->extent.start_block)) && 
+		    (fblock <  (unsigned int)(PED_BE32_TO_CPU (
+						walk->extent.start_block)
+			       + PED_BE32_TO_CPU (walk->extent.block_count))))
+			return 1;
+	}
+
+	return 0;
+}
+
+/* This function returns the first sector of the last free block of
+   an HFS+ volume we can get after a hfsplus_pack_free_space_from_block call */
+PedSector
+hfsplus_get_empty_end (const PedFileSystem *fs)
+{
+	HfsPPrivateFSData* 	priv_data = (HfsPPrivateFSData*)
+						    fs->type_specific;
+	HfsPVolumeHeader* 	vh = priv_data->vh;
+	HfsPPrivateLinkExtent*	link;
+	unsigned int		block, last_bad, end_free_blocks;
+
+	/* find the next block to the last bad block of the volume */
+	if (!hfsplus_read_bad_blocks (fs)) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Bad blocks could not be read."));
+		return 0;
+	}
+
+	last_bad = 0;
+	for (link = priv_data->bad_blocks_xtent_list; link; link = link->next) {
+		if ((unsigned int) PED_BE32_TO_CPU (link->extent.start_block)
+		    + PED_BE32_TO_CPU (link->extent.block_count) > last_bad)
+			last_bad = PED_BE32_TO_CPU (link->extent.start_block)
+			           + PED_BE32_TO_CPU (link->extent.block_count);
+	}
+
+	/* Count the free blocks from last_bad to the end of the volume */
+	end_free_blocks = 0;
+	for (block = last_bad;
+	     block < PED_BE32_TO_CPU (vh->total_blocks);
+	     block++) {
+		if (!TST_BLOC_OCCUPATION(priv_data->alloc_map,block))
+			end_free_blocks++;
+	}
+
+	/* Calculate the block that will by the first free at
+	   the end of the volume */
+	block = PED_BE32_TO_CPU (vh->total_blocks) - end_free_blocks;
+
+	return (PedSector) block * ( PED_BE32_TO_CPU (vh->block_size)
+				     / PED_SECTOR_SIZE_DEFAULT );
+}
+
+/* On error, returns 0 */
+PedSector
+hfsplus_get_min_size (const PedFileSystem *fs)
+{
+	HfsPPrivateFSData* 	priv_data = (HfsPPrivateFSData*)
+						fs->type_specific;
+	PedSector		min_size;
+
+	/* don't need to add anything because every sector
+	   can be part of allocation blocks in HFS+, and
+	   the last block _must_ be reserved */
+	min_size = hfsplus_get_empty_end(fs);
+	if (!min_size) return 0;
+
+	if (priv_data->wrapper) {
+		HfsPrivateFSData* 	hfs_priv_data = (HfsPrivateFSData*)
+					    priv_data->wrapper->type_specific;
+		unsigned int		hfs_sect_block;
+		PedSector		hgee;
+		hfs_sect_block =
+		    PED_BE32_TO_CPU (hfs_priv_data->mdb->block_size)
+		    / PED_SECTOR_SIZE_DEFAULT;
+		/* 
+		 * if hfs+ is embedded in an hfs wrapper then the new size is :
+		 * the new size of the hfs+ volume rounded up to the size 
+		 *     of hfs blocks
+		 * + the minimum size of the hfs wrapper without any hfs+
+		 *     modification
+		 * - the current size of the hfs+ volume in the hfs wrapper
+		 */
+		hgee = hfs_get_empty_end(priv_data->wrapper);
+		if (!hgee) return 0;
+		min_size = ((min_size + hfs_sect_block - 1) / hfs_sect_block)
+			   * hfs_sect_block
+			 + hgee + 2
+			 - (PedSector) PED_BE16_TO_CPU ( hfs_priv_data->mdb
+							->old_new.embedded
+							.location.block_count )
+			   * hfs_sect_block;
+	}
+
+	return min_size;
+}
+
+/* return the block which should be used to pack data to have
+   at least free fblock blocks at the end of the volume */
+unsigned int
+hfsplus_find_start_pack (const PedFileSystem *fs, unsigned int fblock)
+{
+	HfsPPrivateFSData* 	priv_data = (HfsPPrivateFSData*)
+						fs->type_specific;
+	unsigned int		block;
+
+	for (block = PED_BE32_TO_CPU (priv_data->vh->total_blocks) - 1;
+	     block && fblock;
+	     block--) {
+		if (!TST_BLOC_OCCUPATION(priv_data->alloc_map,block))
+			fblock--;
+	}
+
+	while (block && !TST_BLOC_OCCUPATION(priv_data->alloc_map,block))
+		block--;
+	if (TST_BLOC_OCCUPATION(priv_data->alloc_map,block))
+		block++;
+
+	return block;
+}
+
+#endif /* !DISCOVER_ONLY */
diff --git a/parted-1.8.7/libparted/fs/hfs/advfs_plus.h b/parted-1.8.7/libparted/fs/hfs/advfs_plus.h
new file mode 100644
index 0000000..3d5ece4
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/hfs/advfs_plus.h
@@ -0,0 +1,52 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2004 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef _ADVFS_PLUS_H
+#define _ADVFS_PLUS_H
+
+#include <parted/parted.h>
+#include <parted/endian.h>
+#include <parted/debug.h>
+
+#include "hfs.h"
+
+int
+hfsplus_btree_search (HfsPPrivateFile* b_tree_file, HfsPPrivateGenericKey* key,
+		      void *record_out, unsigned int record_size,
+		      HfsCPrivateLeafRec* record_ref);
+
+void
+hfsplus_free_bad_blocks_list(HfsPPrivateLinkExtent* first);
+
+int
+hfsplus_read_bad_blocks (const PedFileSystem *fs);
+
+int
+hfsplus_is_bad_block (const PedFileSystem *fs, unsigned int fblock);
+
+PedSector
+hfsplus_get_empty_end (const PedFileSystem *fs);
+
+PedSector
+hfsplus_get_min_size (const PedFileSystem *fs);
+
+unsigned int
+hfsplus_find_start_pack (const PedFileSystem *fs, unsigned int fblock);
+
+#endif /* _ADVFS_PLUS_H */
diff --git a/parted-1.8.7/libparted/fs/hfs/cache.c b/parted-1.8.7/libparted/fs/hfs/cache.c
new file mode 100644
index 0000000..115b4b7
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/hfs/cache.c
@@ -0,0 +1,239 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef DISCOVER_ONLY
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/endian.h>
+#include <parted/debug.h>
+#include <stdint.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#include "hfs.h"
+
+#include "cache.h"
+
+static HfsCPrivateCacheTable*
+hfsc_new_cachetable(unsigned int size)
+{
+	HfsCPrivateCacheTable* ret;
+
+	ret = (HfsCPrivateCacheTable*) ped_malloc(sizeof(*ret));
+	if (!ret) return NULL;
+
+	ret->next_cache = NULL;
+	ret->table_size = size;
+	ret->table_first_free = 0;
+
+	ret->table = ped_malloc(sizeof(*ret->table)*size);
+	if (!ret->table) { ped_free(ret); return NULL; }
+	memset(ret->table, 0, sizeof(*ret->table)*size);
+
+	return ret;
+}
+
+HfsCPrivateCache*
+hfsc_new_cache(unsigned int block_number, unsigned int file_number)
+{
+	unsigned int		cachetable_size, i;
+	HfsCPrivateCache*	ret;
+
+	ret = (HfsCPrivateCache*) ped_malloc(sizeof(*ret));
+	if (!ret) return NULL;
+	ret->block_number = block_number;
+	/* following code avoid integer overflow */
+	ret->linked_ref_size = block_number > block_number + ((1<<CR_SHIFT)-1) ?
+				( block_number >> CR_SHIFT ) + 1 :
+				( block_number + ((1<<CR_SHIFT)-1) ) >> CR_SHIFT
+			     ;
+
+	ret->linked_ref = (HfsCPrivateExtent**)
+			   ped_malloc( sizeof(*ret->linked_ref)
+			   		* ret->linked_ref_size );
+	if (!ret->linked_ref) { ped_free(ret); return NULL; }
+
+	cachetable_size = file_number + file_number / CR_OVER_DIV + CR_ADD_CST;
+	if (cachetable_size < file_number) cachetable_size = (unsigned) -1;
+	ret->first_cachetable_size = cachetable_size;
+	ret->table_list = hfsc_new_cachetable(cachetable_size);
+	if (!ret->table_list) {
+		ped_free(ret->linked_ref);
+		ped_free(ret);
+		return NULL;
+	}
+	ret->last_table = ret->table_list;
+
+	for (i = 0; i < ret->linked_ref_size; ++i)
+		ret->linked_ref[i] = NULL;
+
+	ret->needed_alloc_size = 0;
+
+	return ret;
+}
+
+static void
+hfsc_delete_cachetable(HfsCPrivateCacheTable* list)
+{
+	HfsCPrivateCacheTable* next;
+
+	while (list) {
+		ped_free (list->table);
+		next = list->next_cache;
+		ped_free (list);
+		list = next;
+	}
+}
+
+void
+hfsc_delete_cache(HfsCPrivateCache* cache)
+{
+	hfsc_delete_cachetable(cache->table_list);
+	ped_free(cache->linked_ref);
+	ped_free(cache);
+}
+
+HfsCPrivateExtent*
+hfsc_cache_add_extent(HfsCPrivateCache* cache, uint32_t start, uint32_t length,
+		      uint32_t block, uint16_t offset, uint8_t sbb,
+		      uint8_t where, uint8_t ref_index)
+{
+	HfsCPrivateExtent*	ext;
+	unsigned int		idx = start >> CR_SHIFT;
+
+	PED_ASSERT(idx < cache->linked_ref_size, return NULL);
+
+	for (ext = cache->linked_ref[idx];
+	     ext && start != ext->ext_start;
+	     ext = ext->next);
+
+	if (ext) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Trying to register an extent starting at block "
+			  "0x%X, but another one already exists at this "
+			  "position.  You should check the file system!"),
+			start);
+		return NULL;
+	}
+
+	if ( cache->last_table->table_first_free 
+	     == cache->last_table->table_size ) {
+		cache->last_table->next_cache = 
+			hfsc_new_cachetable( ( cache->first_cachetable_size
+					       / CR_NEW_ALLOC_DIV )
+					     + CR_ADD_CST );
+		if (!cache->last_table->next_cache)
+			return NULL;
+		cache->last_table = cache->last_table->next_cache;
+	}
+
+	ext = cache->last_table->table+(cache->last_table->table_first_free++);
+
+	ext->ext_start = start;
+	ext->ext_length = length;
+	ext->ref_block = block;
+	ext->ref_offset = offset;
+	ext->sect_by_block = sbb;
+	ext->where = where;
+	ext->ref_index = ref_index;
+
+	ext->next = cache->linked_ref[idx];
+	cache->linked_ref[idx] = ext;
+
+	cache->needed_alloc_size = cache->needed_alloc_size >
+				   (unsigned) PED_SECTOR_SIZE_DEFAULT * sbb ?
+				   cache->needed_alloc_size :
+				   (unsigned) PED_SECTOR_SIZE_DEFAULT * sbb;
+
+	return ext;
+}
+
+HfsCPrivateExtent*
+hfsc_cache_search_extent(HfsCPrivateCache* cache, uint32_t start)
+{
+	HfsCPrivateExtent*	ret;
+	unsigned int	idx = start >> CR_SHIFT;
+
+	PED_ASSERT(idx < cache->linked_ref_size, return NULL);
+
+	for (ret = cache->linked_ref[idx];
+	     ret && start != ret->ext_start;
+	     ret = ret->next);
+
+	return ret;
+}
+
+/* Can't fail if extent begining at old_start exists */
+/* Returns 0 if no such extent, or on error */
+HfsCPrivateExtent*
+hfsc_cache_move_extent(HfsCPrivateCache* cache, uint32_t old_start,
+			uint32_t new_start)
+{
+	HfsCPrivateExtent**	ppext;
+	HfsCPrivateExtent*	pext;
+
+	unsigned int 		idx1 = old_start >> CR_SHIFT;
+	unsigned int		idx2 = new_start >> CR_SHIFT;
+
+	PED_ASSERT(idx1 < cache->linked_ref_size, return NULL);
+	PED_ASSERT(idx2 < cache->linked_ref_size, return NULL);
+
+	for (pext = cache->linked_ref[idx2];
+	     pext && new_start != pext->ext_start;
+	     pext = pext->next);
+
+	if (pext) {
+		ped_exception_throw (
+			PED_EXCEPTION_BUG,
+			PED_EXCEPTION_CANCEL,
+			_("Trying to move an extent from block Ox%X to block "
+			  "Ox%X, but another one already exists at this "
+			  "position.  This should not happen!"),
+			old_start, new_start);
+		return NULL;
+	}
+
+	for (ppext = &(cache->linked_ref[idx1]);
+	     (*ppext) && old_start != (*ppext)->ext_start;
+	     ppext = &((*ppext)->next));
+
+	if (!(*ppext)) return NULL;
+
+	/* removing the extent from the cache */
+	pext = *ppext;
+	(*ppext) = pext->next;
+
+	/* change ext_start and insert the extent again */
+	pext->ext_start = new_start;
+	pext->next = cache->linked_ref[idx2];
+	cache->linked_ref[idx2] = pext;
+
+	return pext;
+}
+
+#endif /* DISCOVER_ONLY */
diff --git a/parted-1.8.7/libparted/fs/hfs/cache.h b/parted-1.8.7/libparted/fs/hfs/cache.h
new file mode 100644
index 0000000..9e49ef8
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/hfs/cache.h
@@ -0,0 +1,118 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef _CACHE_H
+#define _CACHE_H
+
+#include <parted/parted.h>
+#include <parted/endian.h>
+#include <parted/debug.h>
+
+#include "hfs.h"
+
+/* CR => CACHE REF */
+#define CR_NULL			 0 /* reserved */
+#define CR_PRIM_CAT		 1
+#define CR_PRIM_EXT		 2
+#define CR_PRIM_ATTR		 3
+#define CR_PRIM_ALLOC		 4
+#define CR_PRIM_START		 5
+#define CR_BTREE_CAT		 6
+#define CR_BTREE_ATTR		 7
+#define CR_BTREE_EXT_0		 8
+#define CR_BTREE_EXT_CAT	 9
+#define CR_BTREE_EXT_EXT	10 /* should not happen ! */
+#define CR_BTREE_EXT_ATTR	11
+#define CR_BTREE_EXT_ALLOC	12
+#define CR_BTREE_EXT_START	13 /* unneeded in current code */
+#define CR_BTREE_CAT_JIB	14 /* journal info block */
+#define CR_BTREE_CAT_JL		15 /* journal */
+/* 16 -> 31 || high order bit */   /* reserved */
+
+/* tuning */
+#define CR_SHIFT		 8 /* number of bits to shift start_block by */
+				   /* to get the index of the linked list */
+#define CR_OVER_DIV		16 /* alloc a table for (1+1/CR_OVER_DIV) * 
+				      file_number + CR_ADD_CST */
+#define CR_ADD_CST		16
+#define CR_NEW_ALLOC_DIV	 4 /* divide the size of the first alloc table 
+				      by this value to allocate next tables */
+
+/* See DOC for an explaination of this structure */
+/* Access read only from outside cache.c */
+struct _HfsCPrivateExtent {
+	struct _HfsCPrivateExtent*	next;
+	uint32_t			ext_start;
+	uint32_t			ext_length;
+	uint32_t			ref_block;
+	uint16_t			ref_offset;
+	uint8_t				sect_by_block;
+	unsigned			where : 5;
+	unsigned			ref_index : 3; /* 0 -> 7 */
+};
+typedef struct _HfsCPrivateExtent HfsCPrivateExtent;
+
+/* Internaly used by cache.c for custom memory managment only */
+struct _HfsCPrivateCacheTable {
+	struct _HfsCPrivateCacheTable*	next_cache;
+	HfsCPrivateExtent*		table;
+	unsigned int			table_size;
+	unsigned int			table_first_free;
+	/* first_elemt ? */
+};
+typedef struct _HfsCPrivateCacheTable HfsCPrivateCacheTable;
+
+/* Internaly used by cache.c for custom memory managment 
+   and cache handling only */
+struct _HfsCPrivateCache {
+	HfsCPrivateCacheTable*		table_list;
+	HfsCPrivateCacheTable*		last_table;
+	HfsCPrivateExtent**		linked_ref;
+	unsigned int			linked_ref_size;
+	unsigned int			block_number;
+	unsigned int			first_cachetable_size;
+	unsigned int			needed_alloc_size;
+};
+typedef struct _HfsCPrivateCache HfsCPrivateCache;
+
+HfsCPrivateCache*
+hfsc_new_cache(unsigned int block_number, unsigned int file_number);
+
+void
+hfsc_delete_cache(HfsCPrivateCache* cache);
+
+HfsCPrivateExtent*
+hfsc_cache_add_extent(HfsCPrivateCache* cache, uint32_t start, uint32_t length,
+		      uint32_t block, uint16_t offset, uint8_t sbb,
+		      uint8_t where, uint8_t index);
+
+HfsCPrivateExtent*
+hfsc_cache_search_extent(HfsCPrivateCache* cache, uint32_t start);
+
+HfsCPrivateExtent*
+hfsc_cache_move_extent(HfsCPrivateCache* cache, uint32_t old_start,
+			uint32_t new_start);
+
+static __inline__ unsigned int
+hfsc_cache_needed_buffer(HfsCPrivateCache* cache)
+{
+	return cache->needed_alloc_size;
+}
+
+#endif /* _CACHE_H */
diff --git a/parted-1.8.7/libparted/fs/hfs/file.c b/parted-1.8.7/libparted/fs/hfs/file.c
new file mode 100644
index 0000000..c12f253
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/hfs/file.c
@@ -0,0 +1,229 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef DISCOVER_ONLY
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/endian.h>
+#include <parted/debug.h>
+#include <stdint.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#include "hfs.h"
+#include "advfs.h"
+
+#include "file.h"
+
+/* Open the data fork of a file with its first three extents and its CNID */
+HfsPrivateFile*
+hfs_file_open (PedFileSystem *fs, uint32_t CNID,
+	       HfsExtDataRec ext_desc, PedSector sect_nb)
+{
+	HfsPrivateFile* file;
+
+	file = (HfsPrivateFile*) ped_malloc (sizeof (HfsPrivateFile));
+	if (!file) return NULL;
+
+	file->fs = fs;
+	file->sect_nb = sect_nb;
+	file->CNID = CNID;
+	memcpy(file->first, ext_desc, sizeof (HfsExtDataRec));
+	file->start_cache = 0;
+	
+	return file;
+}
+
+/* Close an HFS file */
+void
+hfs_file_close (HfsPrivateFile* file)
+{
+	ped_free (file);
+}
+
+/* warning : only works on data forks */
+static int
+hfs_get_extent_containing (HfsPrivateFile* file, unsigned int block,
+			   HfsExtDataRec cache, uint16_t* ptr_start_cache)
+{
+	uint8_t			record[sizeof (HfsExtentKey)
+				       + sizeof (HfsExtDataRec)];
+	HfsExtentKey		search;
+	HfsExtentKey*		ret_key = (HfsExtentKey*) record;
+	HfsExtDescriptor*	ret_cache = (HfsExtDescriptor*)
+					      (record + sizeof (HfsExtentKey));
+	HfsPrivateFSData* 	priv_data = (HfsPrivateFSData*)
+					      file->fs->type_specific;
+
+	search.key_length = sizeof (HfsExtentKey) - 1;
+	search.type = HFS_DATA_FORK;
+	search.file_ID = file->CNID;
+	search.start = PED_CPU_TO_BE16 (block);
+
+	if (!hfs_btree_search (priv_data->extent_file, 
+			       (HfsPrivateGenericKey*) &search,
+			       record, sizeof (record), NULL))
+		return 0;
+
+	if (ret_key->file_ID != search.file_ID || ret_key->type != search.type)
+		return 0;
+
+	memcpy (cache, ret_cache, sizeof(HfsExtDataRec));
+	*ptr_start_cache = PED_BE16_TO_CPU (ret_key->start);
+
+	return 1;
+}
+
+/* find and return the nth sector of a file */
+/* return 0 on error */
+static PedSector
+hfs_file_find_sector (HfsPrivateFile* file, PedSector sector)
+{
+	HfsPrivateFSData* priv_data = (HfsPrivateFSData*)
+				      file->fs->type_specific;
+	unsigned int 	sect_by_block = PED_BE32_TO_CPU (
+					    priv_data->mdb->block_size)
+					/ PED_SECTOR_SIZE_DEFAULT;
+	unsigned int 	i, s, vol_block;
+	unsigned int 	block  = sector / sect_by_block;
+	unsigned int	offset = sector % sect_by_block;
+
+	/* in the three first extent */
+	for (s = 0, i = 0; i < HFS_EXT_NB; i++) {
+			if ((block >= s) && ( block < s + PED_BE16_TO_CPU (
+						file->first[i].block_count))) {
+			vol_block = (block - s) + PED_BE16_TO_CPU (
+						    file->first[i].start_block);
+			goto sector_found;
+		}
+		s += PED_BE16_TO_CPU (file->first[i].block_count);
+	}
+
+	/* in the three cached extent */
+	if (file->start_cache && block >= file->start_cache)
+	for (s = file->start_cache, i = 0; i < HFS_EXT_NB; i++) {
+		if ((block >= s) && (block < s + PED_BE16_TO_CPU (
+						file->cache[i].block_count))) {
+			vol_block = (block - s) + PED_BE16_TO_CPU (
+						    file->cache[i].start_block);
+			goto sector_found;
+		}
+		s += PED_BE16_TO_CPU (file->cache[i].block_count);
+	}
+
+	/* update cache */
+	if (!hfs_get_extent_containing (file, block, file->cache,
+					&(file->start_cache))) {
+		ped_exception_throw (
+			PED_EXCEPTION_WARNING,
+			PED_EXCEPTION_CANCEL,
+			_("Could not update the extent cache for HFS file with "
+			  "CNID %X."),
+			PED_BE32_TO_CPU(file->CNID));
+		return 0;
+	}
+
+	/* in the three cached extent */
+	PED_ASSERT(file->start_cache && block >= file->start_cache, return 0);
+	for (s = file->start_cache, i = 0; i < HFS_EXT_NB; i++) {
+		if ((block >= s) && (block < s + PED_BE16_TO_CPU (
+						file->cache[i].block_count))) {
+			vol_block = (block - s) + PED_BE16_TO_CPU (
+						    file->cache[i].start_block);
+			goto sector_found;
+		}
+		s += PED_BE16_TO_CPU (file->cache[i].block_count);
+	}
+
+	return 0;
+
+    sector_found:
+	return (PedSector) PED_BE16_TO_CPU (priv_data->mdb->start_block)
+		+ (PedSector) vol_block * sect_by_block
+		+ offset;
+}
+
+/* Read the nth sector of a file */
+/* return 0 on error */
+int
+hfs_file_read_sector (HfsPrivateFile* file, void *buf, PedSector sector)
+{
+	PedSector	abs_sector;
+
+	if (sector >= file->sect_nb) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Trying to read HFS file with CNID %X behind EOF."),
+			PED_BE32_TO_CPU(file->CNID));
+		return 0;
+	}
+
+	abs_sector = hfs_file_find_sector (file, sector);
+	if (!abs_sector) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Could not find sector %lli of HFS file with "
+			  "CNID %X."),
+			sector, PED_BE32_TO_CPU(file->CNID));
+		return 0;
+	}
+
+	return ped_geometry_read (file->fs->geom, buf, abs_sector, 1);
+}
+
+/* Write the nth sector of a file */
+/* return 0 on error */
+int
+hfs_file_write_sector (HfsPrivateFile* file, void *buf, PedSector sector)
+{
+	PedSector	abs_sector;
+
+	if (sector >= file->sect_nb) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Trying to write HFS file with CNID %X behind EOF."),
+			  PED_BE32_TO_CPU(file->CNID));		
+		return 0;
+	}
+
+	abs_sector = hfs_file_find_sector (file, sector);
+	if (!abs_sector) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Could not find sector %lli of HFS file with "
+			  "CNID %X."),
+			sector, PED_BE32_TO_CPU(file->CNID));
+		return 0;
+	}
+
+	return ped_geometry_write (file->fs->geom, buf, abs_sector, 1);
+}
+
+#endif /* !DISCOVER_ONLY */
diff --git a/parted-1.8.7/libparted/fs/hfs/file.h b/parted-1.8.7/libparted/fs/hfs/file.h
new file mode 100644
index 0000000..7fcd21c
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/hfs/file.h
@@ -0,0 +1,42 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2004 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef _FILE_H
+#define _FILE_H
+
+#include <parted/parted.h>
+#include <parted/endian.h>
+#include <parted/debug.h>
+
+#include "hfs.h"
+
+HfsPrivateFile*
+hfs_file_open (PedFileSystem *fs, uint32_t CNID,
+	       HfsExtDataRec ext_desc, PedSector sect_nb);
+
+void
+hfs_file_close (HfsPrivateFile* file);
+
+int
+hfs_file_read_sector (HfsPrivateFile* file, void *buf, PedSector sector);
+
+int
+hfs_file_write_sector (HfsPrivateFile* file, void *buf, PedSector sector);
+
+#endif /* _FILE_H */
diff --git a/parted-1.8.7/libparted/fs/hfs/file_plus.c b/parted-1.8.7/libparted/fs/hfs/file_plus.c
new file mode 100644
index 0000000..c226a65
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/hfs/file_plus.c
@@ -0,0 +1,274 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef DISCOVER_ONLY
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/endian.h>
+#include <parted/debug.h>
+#include <stdint.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#include "hfs.h"
+#include "advfs_plus.h"
+
+#include "file_plus.h"
+
+/* Open the data fork of a file with its first eight extents and its CNID */
+/* CNID and ext_desc must be in disc order, sect_nb in CPU order */
+/* return null on failure */
+HfsPPrivateFile*
+hfsplus_file_open (PedFileSystem *fs, HfsPNodeID CNID,
+		   HfsPExtDataRec ext_desc, PedSector sect_nb)
+{
+	HfsPPrivateFile* file;
+
+	file = (HfsPPrivateFile*) ped_malloc (sizeof (HfsPPrivateFile));
+	if (!file) return NULL;
+
+	file->fs = fs;
+	file->sect_nb = sect_nb;
+	file->CNID = CNID;
+	memcpy(file->first, ext_desc, sizeof (HfsPExtDataRec));
+	file->start_cache = 0;
+
+	return file;
+}
+
+/* Close an HFS+ file */
+void
+hfsplus_file_close (HfsPPrivateFile* file)
+{
+	ped_free (file);
+}
+
+/* warning : only works on data forks */
+static int
+hfsplus_get_extent_containing (HfsPPrivateFile* file, unsigned int block,
+			       HfsPExtDataRec cache, uint32_t* ptr_start_cache)
+{
+	uint8_t			record[sizeof (HfsPExtentKey)
+				       + sizeof (HfsPExtDataRec)];
+	HfsPExtentKey		search;
+	HfsPExtentKey*		ret_key = (HfsPExtentKey*) record;
+	HfsPExtDescriptor*	ret_cache = (HfsPExtDescriptor*)
+					      (record + sizeof (HfsPExtentKey));
+	HfsPPrivateFSData* 	priv_data = (HfsPPrivateFSData*)
+						file->fs->type_specific;
+
+	search.key_length = PED_CPU_TO_BE16 (sizeof (HfsPExtentKey) - 2);
+	search.type = HFS_DATA_FORK;
+	search.pad = 0;
+	search.file_ID = file->CNID;
+	search.start = PED_CPU_TO_BE32 (block);
+
+	if (!hfsplus_btree_search (priv_data->extents_file,
+				   (HfsPPrivateGenericKey*) &search,
+				   record, sizeof (record), NULL))
+		return 0;
+
+	if (ret_key->file_ID != search.file_ID || ret_key->type != search.type)
+		return 0;
+
+	memcpy (cache, ret_cache, sizeof(HfsPExtDataRec));
+	*ptr_start_cache = PED_BE32_TO_CPU (ret_key->start);
+
+	return 1;
+}
+
+/* find a sub extent contained in the desired area */
+/* and with the same starting point */
+/* return 0 in sector_count on error, or the physical area */
+/* on the volume corresponding to the logical area in the file */
+static HfsPPrivateExtent
+hfsplus_file_find_extent (HfsPPrivateFile* file, PedSector sector,
+			  unsigned int nb)
+{
+	HfsPPrivateExtent ret = {0,0};
+	HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*)
+					file->fs->type_specific;
+	unsigned int	sect_by_block = PED_BE32_TO_CPU (
+					    priv_data->vh->block_size)
+					/ PED_SECTOR_SIZE_DEFAULT;
+	unsigned int	i, s, vol_block, size;
+	PedSector	sect_size;
+	unsigned int	block  = sector / sect_by_block;
+	unsigned int	offset = sector % sect_by_block;
+
+	/* in the 8 first extent */
+	for (s = 0, i = 0; i < HFSP_EXT_NB; i++) {
+		if ((block >= s) && (block < s + PED_BE32_TO_CPU (
+						file->first[i].block_count))) {
+			vol_block = (block - s)
+				    + PED_BE32_TO_CPU (file->first[i]
+						       .start_block);
+			size = PED_BE32_TO_CPU (file->first[i].block_count)
+				+ s - block;
+			goto plus_sector_found;
+		}
+		s += PED_BE32_TO_CPU (file->first[i].block_count);
+	}
+
+	/* in the 8 cached extent */
+	if (file->start_cache && block >= file->start_cache)
+	for (s = file->start_cache, i = 0; i < HFSP_EXT_NB; i++) {
+		if ((block >= s) && (block < s + PED_BE32_TO_CPU (
+						file->cache[i].block_count))) {
+			vol_block = (block - s)
+				    + PED_BE32_TO_CPU (file->cache[i]
+						       .start_block);
+			size = PED_BE32_TO_CPU (file->cache[i].block_count)
+				+ s - block;
+			goto plus_sector_found;
+		}
+		s += PED_BE32_TO_CPU (file->cache[i].block_count);
+	}
+
+	/* update cache */
+	if (!hfsplus_get_extent_containing (file, block, file->cache,
+					    &(file->start_cache))) {
+		ped_exception_throw (
+			PED_EXCEPTION_WARNING,
+			PED_EXCEPTION_CANCEL,
+			_("Could not update the extent cache for HFS+ file "
+			  "with CNID %X."),
+			PED_BE32_TO_CPU(file->CNID));
+		return ret; /* ret == {0,0} */
+	}
+
+	/* ret == {0,0} */
+	PED_ASSERT(file->start_cache && block >= file->start_cache, return ret);
+
+	for (s = file->start_cache, i = 0; i < HFSP_EXT_NB; i++) {
+		if ((block >= s) && (block < s + PED_BE32_TO_CPU (
+						file->cache[i].block_count))) {
+			vol_block = (block - s)
+				    + PED_BE32_TO_CPU (file->cache[i]
+						       .start_block);
+			size = PED_BE32_TO_CPU (file->cache[i].block_count)
+				+ s - block;
+			goto plus_sector_found;
+		}
+		s += PED_BE32_TO_CPU (file->cache[i].block_count);
+	}
+
+	return ret;
+
+plus_sector_found:
+	sect_size = (PedSector) size * sect_by_block - offset;
+	ret.start_sector = vol_block * sect_by_block + offset;
+	ret.sector_count = (sect_size < nb) ? sect_size : nb;
+	return ret;
+}
+
+int
+hfsplus_file_read(HfsPPrivateFile* file, void *buf, PedSector sector,
+		  unsigned int nb)
+{
+	HfsPPrivateExtent phy_area;
+	HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*)
+					file->fs->type_specific;
+        char *b = buf;
+
+	if (sector+nb < sector /* detect overflow */
+	    || sector+nb > file->sect_nb) /* out of file */ {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Trying to read HFS+ file with CNID %X behind EOF."),
+			PED_BE32_TO_CPU(file->CNID));
+		return 0;
+	}
+
+	while (nb) {
+		phy_area = hfsplus_file_find_extent(file, sector, nb);
+		if (phy_area.sector_count == 0) {
+			ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_CANCEL,
+				_("Could not find sector %lli of HFS+ file "
+				  "with CNID %X."),
+				sector, PED_BE32_TO_CPU(file->CNID));
+			return 0;
+		}
+                if (!ped_geometry_read(priv_data->plus_geom, b,
+				       phy_area.start_sector,
+				       phy_area.sector_count))
+			return 0;
+
+		nb -= phy_area.sector_count; /* < nb anyway ... */
+		sector += phy_area.sector_count;
+                b += phy_area.sector_count * PED_SECTOR_SIZE_DEFAULT;
+	}
+
+	return 1;
+}
+
+int
+hfsplus_file_write(HfsPPrivateFile* file, void *buf, PedSector sector,
+		  unsigned int nb)
+{
+	HfsPPrivateExtent phy_area;
+	HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*)
+					file->fs->type_specific;
+        char *b = buf;
+
+	if (sector+nb < sector /* detect overflow */
+	    || sector+nb > file->sect_nb) /* out of file */ {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Trying to write HFS+ file with CNID %X behind EOF."),
+			PED_BE32_TO_CPU(file->CNID));
+		return 0;
+	}
+
+	while (nb) {
+		phy_area = hfsplus_file_find_extent(file, sector, nb);
+		if (phy_area.sector_count == 0) {
+			ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_CANCEL,
+				_("Could not find sector %lli of HFS+ file "
+				  "with CNID %X."),
+				sector, PED_BE32_TO_CPU(file->CNID));
+			return 0;
+		}
+                if (!ped_geometry_write(priv_data->plus_geom, b,
+				       phy_area.start_sector,
+				       phy_area.sector_count))
+			return 0;
+
+		nb -= phy_area.sector_count; /* < nb anyway ... */
+		sector += phy_area.sector_count;
+                b += phy_area.sector_count * PED_SECTOR_SIZE_DEFAULT;
+	}
+
+	return 1;
+}
+
+#endif /* !DISCOVER_ONLY */
diff --git a/parted-1.8.7/libparted/fs/hfs/file_plus.h b/parted-1.8.7/libparted/fs/hfs/file_plus.h
new file mode 100644
index 0000000..5f48554
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/hfs/file_plus.h
@@ -0,0 +1,61 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2004 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef _FILE_PLUS_H
+#define _FILE_PLUS_H
+
+#include <parted/parted.h>
+#include <parted/endian.h>
+#include <parted/debug.h>
+
+#include "hfs.h"
+
+HfsPPrivateFile*
+hfsplus_file_open (PedFileSystem *fs, HfsPNodeID CNID,
+		   HfsPExtDataRec ext_desc, PedSector sect_nb);
+
+void
+hfsplus_file_close (HfsPPrivateFile* file);
+
+int
+hfsplus_file_read(HfsPPrivateFile* file, void *buf,
+		  PedSector sector, unsigned int nb);
+
+int
+hfsplus_file_write(HfsPPrivateFile* file, void *buf,
+		  PedSector sector, unsigned int nb);
+
+/* Read the nth sector of a file */
+/* return 0 on error */
+static __inline__ int
+hfsplus_file_read_sector (HfsPPrivateFile* file, void *buf, PedSector sector)
+{
+	return hfsplus_file_read(file, buf, sector, 1);
+}
+
+/* Write the nth sector of a file */
+/* return 0 on error */
+static __inline__ int
+hfsplus_file_write_sector (HfsPPrivateFile* file, void *buf, PedSector sector)
+{
+	return hfsplus_file_write(file, buf, sector, 1);
+}
+
+
+#endif /* _FILE_PLUS_H */
diff --git a/parted-1.8.7/libparted/fs/hfs/hfs.c b/parted-1.8.7/libparted/fs/hfs/hfs.c
new file mode 100644
index 0000000..3323cc0
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/hfs/hfs.c
@@ -0,0 +1,1354 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2000, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+/* 
+   Author : Guillaume Knispel <k_guillaume@libertysurf.fr> 
+   Report bug to <bug-parted@gnu.org>
+*/
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/endian.h>
+#include <parted/debug.h>
+#include <stdint.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#include "hfs.h"
+#include "probe.h"
+
+uint8_t* hfs_block = NULL;
+uint8_t* hfsp_block = NULL;
+unsigned hfs_block_count;
+unsigned hfsp_block_count;
+
+#define HFS_BLOCK_SIZES       ((int[2]){512, 0})
+#define HFSP_BLOCK_SIZES       ((int[2]){512, 0})
+#define HFSX_BLOCK_SIZES       ((int[2]){512, 0})
+
+#ifndef DISCOVER_ONLY
+#include "file.h"
+#include "reloc.h"
+#include "advfs.h"
+
+static PedFileSystemType hfs_type;
+static PedFileSystemType hfsplus_type;
+
+
+/* ----- HFS ----- */
+
+/* This is a very unundoable operation */
+/* Maybe I shouldn't touch the alternate MDB ? */
+/* Anyway clobber is call before other fs creation */
+/* So this is a non-issue */
+static int
+hfs_clobber (PedGeometry* geom)
+{
+	uint8_t	buf[PED_SECTOR_SIZE_DEFAULT];
+
+	memset (buf, 0, PED_SECTOR_SIZE_DEFAULT);
+	
+	/* destroy boot blocks, mdb, alternate mdb ... */
+	return	(!!ped_geometry_write (geom, buf, 0, 1)) &
+		(!!ped_geometry_write (geom, buf, 1, 1)) &
+		(!!ped_geometry_write (geom, buf, 2, 1)) &
+		(!!ped_geometry_write (geom, buf, geom->length - 2, 1)) &
+		(!!ped_geometry_write (geom, buf, geom->length - 1, 1)) &
+		(!!ped_geometry_sync  (geom));
+}
+
+static PedFileSystem*
+hfs_open (PedGeometry* geom)
+{
+	uint8_t			buf[PED_SECTOR_SIZE_DEFAULT];
+	PedFileSystem*		fs;
+	HfsMasterDirectoryBlock* mdb;
+	HfsPrivateFSData* 	priv_data;
+
+	if (!hfsc_can_use_geom (geom))
+		return NULL;
+
+	/* Read MDB */
+	if (!ped_geometry_read (geom, buf, 2, 1))
+		return NULL;
+	
+	/* Allocate memory */
+	fs = (PedFileSystem*) ped_malloc (sizeof (PedFileSystem));
+	if (!fs) goto ho;
+	mdb = (HfsMasterDirectoryBlock*)
+		ped_malloc (sizeof (HfsMasterDirectoryBlock));
+	if (!mdb) goto ho_fs;
+	priv_data = (HfsPrivateFSData*)
+		ped_malloc (sizeof (HfsPrivateFSData));
+	if (!priv_data) goto ho_mdb;
+
+	memcpy (mdb, buf, sizeof (HfsMasterDirectoryBlock));
+
+	/* init structures */
+	priv_data->mdb = mdb;
+	priv_data->bad_blocks_loaded = 0;
+	priv_data->bad_blocks_xtent_nb = 0;
+	priv_data->bad_blocks_xtent_list = NULL;
+	priv_data->extent_file =
+	    hfs_file_open (fs, PED_CPU_TO_BE32 (HFS_XTENT_ID),
+			   mdb->extents_file_rec,
+			   PED_CPU_TO_BE32 (mdb->extents_file_size)
+			   / PED_SECTOR_SIZE_DEFAULT);
+	if (!priv_data->extent_file) goto ho_pd;
+	priv_data->catalog_file =
+	    hfs_file_open (fs, PED_CPU_TO_BE32 (HFS_CATALOG_ID),
+			   mdb->catalog_file_rec,
+			   PED_CPU_TO_BE32 (mdb->catalog_file_size)
+			   / PED_SECTOR_SIZE_DEFAULT);
+	if (!priv_data->catalog_file) goto ho_ce;
+	/* Read allocation blocks */
+	if (!ped_geometry_read(geom, priv_data->alloc_map,
+			       PED_BE16_TO_CPU (mdb->volume_bitmap_block),
+			       ( PED_BE16_TO_CPU (mdb->total_blocks)
+			         + PED_SECTOR_SIZE_DEFAULT * 8 - 1 )
+			       / (PED_SECTOR_SIZE_DEFAULT * 8) ) )
+		goto ho_cf;
+
+	fs->type = &hfs_type;
+	fs->geom = ped_geometry_duplicate (geom);
+	if (!fs->geom) goto ho_cf;
+	fs->type_specific = (void*) priv_data;
+	fs->checked = ( PED_BE16_TO_CPU (mdb->volume_attributes)
+			>> HFS_UNMOUNTED ) & 1;
+
+	return fs;
+
+/*--- clean error handling ---*/
+ho_cf:	hfs_file_close(priv_data->catalog_file);
+ho_ce:	hfs_file_close(priv_data->extent_file);
+ho_pd:	ped_free(priv_data);
+ho_mdb: ped_free(mdb);
+ho_fs:	ped_free(fs);
+ho:	return NULL;
+}
+
+static int
+hfs_close (PedFileSystem *fs)
+{
+	HfsPrivateFSData* priv_data = (HfsPrivateFSData*) fs->type_specific;
+
+	hfs_file_close (priv_data->extent_file);
+	hfs_file_close (priv_data->catalog_file);
+	if (priv_data->bad_blocks_loaded)
+		hfs_free_bad_blocks_list (priv_data->bad_blocks_xtent_list);
+	ped_free (priv_data->mdb);
+	ped_free (priv_data);
+	ped_geometry_destroy (fs->geom);
+	ped_free (fs);
+
+	return 1;
+}
+
+static PedConstraint* 
+hfs_get_resize_constraint (const PedFileSystem *fs)
+{
+	PedDevice*	dev = fs->geom->dev;
+	PedAlignment	start_align;
+	PedGeometry	start_sector;
+	PedGeometry	full_dev;
+	PedSector	min_size;
+
+	if (!ped_alignment_init (&start_align, fs->geom->start, 0))
+		return NULL;
+	if (!ped_geometry_init (&start_sector, dev, fs->geom->start, 1))
+		return NULL;
+	if (!ped_geometry_init (&full_dev, dev, 0, dev->length - 1))
+		return NULL;
+	/* 2 = last two sectors (alternate MDB and unused sector) */
+	min_size = hfs_get_empty_end(fs) + 2;
+	if (min_size == 2) return NULL;
+
+	return ped_constraint_new (&start_align, ped_alignment_any,
+				   &start_sector, &full_dev, min_size,
+				   fs->geom->length);
+}
+
+static int
+hfs_resize (PedFileSystem* fs, PedGeometry* geom, PedTimer* timer)
+{
+	uint8_t			buf[PED_SECTOR_SIZE_DEFAULT];
+	unsigned int		nblock, nfree;
+	unsigned int		block, to_free;
+	HfsPrivateFSData* 	priv_data;
+	HfsMasterDirectoryBlock* mdb;
+	int			resize = 1;
+	unsigned int		hfs_sect_block;
+	PedSector		hgee;
+
+	/* check preconditions */
+	PED_ASSERT (fs != NULL, return 0);
+	PED_ASSERT (fs->geom != NULL, return 0);
+	PED_ASSERT (geom != NULL, return 0);
+#ifdef DEBUG
+        PED_ASSERT ((hgee = hfs_get_empty_end(fs)) != 0, return 0);
+#else
+        if ((hgee = hfs_get_empty_end(fs)) == 0)
+                return 0;
+#endif
+
+	PED_ASSERT ((hgee = hfs_get_empty_end(fs)) != 0, return 0);
+
+	if (ped_geometry_test_equal(fs->geom, geom))
+		return 1;
+
+	priv_data = (HfsPrivateFSData*) fs->type_specific;
+	mdb = priv_data->mdb;
+	hfs_sect_block = PED_BE32_TO_CPU (mdb->block_size)
+			 / PED_SECTOR_SIZE_DEFAULT;
+
+	if (fs->geom->start != geom->start
+	    || geom->length > fs->geom->length
+	    || geom->length < hgee + 2) {
+		ped_exception_throw (
+			PED_EXCEPTION_NO_FEATURE,
+			PED_EXCEPTION_CANCEL,
+			_("Sorry, HFS cannot be resized that way yet."));
+		return 0;
+	}
+
+	/* Flush caches */
+	if (!ped_geometry_sync(fs->geom))
+		return 0;
+
+	/* Clear the unmounted bit */
+	mdb->volume_attributes &= PED_CPU_TO_BE16 (~( 1 << HFS_UNMOUNTED ));
+	if (!ped_geometry_read (fs->geom, buf, 2, 1))
+		return 0;
+	memcpy (buf, mdb, sizeof (HfsMasterDirectoryBlock));
+	if (   !ped_geometry_write (fs->geom, buf, 2, 1)
+	    || !ped_geometry_sync  (fs->geom))
+		return 0;
+
+	ped_timer_reset (timer);
+	ped_timer_set_state_name(timer, _("shrinking"));
+	ped_timer_update(timer, 0.0);
+	/* relocate data */
+	to_free = ( fs->geom->length - geom->length
+		    + hfs_sect_block - 1 )
+		  / hfs_sect_block ;
+	block = hfs_find_start_pack (fs, to_free);
+	if (!hfs_pack_free_space_from_block (fs, block,	timer, to_free)) {
+		resize = 0;
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Data relocation has failed."));
+		goto write_MDB;
+	}
+
+	/* Calculate new block number and other MDB field */
+	nblock = ( geom->length - (PED_BE16_TO_CPU (mdb->start_block) + 2) )
+		 / hfs_sect_block;
+	nfree = PED_BE16_TO_CPU (mdb->free_blocks)
+		- ( PED_BE16_TO_CPU (mdb->total_blocks) - nblock );
+
+	/* Check that all block after future end are really free */
+	for (block = nblock;
+	     block < PED_BE16_TO_CPU (mdb->total_blocks);
+	     block++) {
+		if (TST_BLOC_OCCUPATION(priv_data->alloc_map,block)) {
+			resize = 0;
+			ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_CANCEL,
+				_("Data relocation left some data in the end "
+				  "of the volume."));
+			goto write_MDB;
+		}
+	}
+
+	/* Mark out of volume blocks as used
+	(broken implementations compatibility) */
+	for ( block = nblock; block < (1 << 16); ++block)
+		SET_BLOC_OCCUPATION(priv_data->alloc_map,block);
+
+	/* save the allocation map
+	I do not write until start of allocation blocks 
+	but only until pre-resize end of bitmap blocks
+	because the specifications do _not_ assert that everything
+	until allocation blocks is boot, mdb and alloc */
+	ped_geometry_write(fs->geom, priv_data->alloc_map,
+		PED_BE16_TO_CPU (priv_data->mdb->volume_bitmap_block),
+		( PED_BE16_TO_CPU (priv_data->mdb->total_blocks)
+		  + PED_SECTOR_SIZE_DEFAULT * 8 - 1)
+		/ (PED_SECTOR_SIZE_DEFAULT * 8));
+
+	/* Update geometry */
+	if (resize) {
+		/* update in fs structure */
+		if (PED_BE16_TO_CPU (mdb->next_allocation) >= nblock)
+			mdb->next_allocation = PED_CPU_TO_BE16 (0);
+		mdb->total_blocks = PED_CPU_TO_BE16 (nblock);
+		mdb->free_blocks = PED_CPU_TO_BE16 (nfree);
+		/* update parted structure */
+		fs->geom->length = geom->length;
+		fs->geom->end = fs->geom->start + geom->length - 1;
+	}
+
+	/* Set the unmounted bit */
+	mdb->volume_attributes |= PED_CPU_TO_BE16 ( 1 << HFS_UNMOUNTED );
+
+	/* Effective write */
+    write_MDB:
+	ped_timer_set_state_name(timer,_("writing HFS Master Directory Block"));
+
+	if (!hfs_update_mdb(fs)) {
+		ped_geometry_sync(geom);
+		return 0;
+	}
+
+	if (!ped_geometry_sync(geom))
+		return 0;
+
+	ped_timer_update(timer, 1.0);
+
+	return (resize);
+}
+
+/* ----- HFS+ ----- */
+
+#include "file_plus.h"
+#include "advfs_plus.h"
+#include "reloc_plus.h"
+#include "journal.h"
+
+static int
+hfsplus_clobber (PedGeometry* geom)
+{
+	unsigned int i = 1;
+	uint8_t				buf[PED_SECTOR_SIZE_DEFAULT];
+	HfsMasterDirectoryBlock		*mdb;
+
+	mdb = (HfsMasterDirectoryBlock *) buf;
+
+	if (!ped_geometry_read (geom, buf, 2, 1))
+		return 0;
+
+	if (PED_BE16_TO_CPU (mdb->signature) == HFS_SIGNATURE) {
+		/* embedded hfs+ */
+		PedGeometry	*embedded;
+
+		i = PED_BE32_TO_CPU(mdb->block_size) / PED_SECTOR_SIZE_DEFAULT;
+		embedded = ped_geometry_new (
+		    geom->dev,
+		    (PedSector) geom->start
+		     + PED_BE16_TO_CPU (mdb->start_block)
+		     + (PedSector) PED_BE16_TO_CPU (
+			mdb->old_new.embedded.location.start_block ) * i, 
+		    (PedSector) PED_BE16_TO_CPU (
+			mdb->old_new.embedded.location.block_count ) * i );
+		if (!embedded) i = 0;
+		else {
+			i = hfs_clobber (embedded);
+			ped_geometry_destroy (embedded);
+		}
+	}
+
+	/* non-embedded or envelop destroy as hfs */
+	return ( hfs_clobber (geom) && i );
+}
+
+static int
+hfsplus_close (PedFileSystem *fs)
+{
+	HfsPPrivateFSData* 	priv_data = (HfsPPrivateFSData*)
+						fs->type_specific;
+
+	if (priv_data->bad_blocks_loaded)
+		hfsplus_free_bad_blocks_list(priv_data->bad_blocks_xtent_list);
+	ped_free(priv_data->alloc_map);
+	ped_free(priv_data->dirty_alloc_map);
+	hfsplus_file_close (priv_data->allocation_file);
+	hfsplus_file_close (priv_data->attributes_file);
+	hfsplus_file_close (priv_data->catalog_file);
+	hfsplus_file_close (priv_data->extents_file);
+	if (priv_data->free_geom) ped_geometry_destroy (priv_data->plus_geom);
+	if (priv_data->wrapper) hfs_close(priv_data->wrapper);
+	ped_geometry_destroy (fs->geom);
+	ped_free(priv_data->vh);
+	ped_free(priv_data);
+	ped_free(fs);
+
+	return 1;
+}
+
+static PedFileSystem*
+hfsplus_open (PedGeometry* geom)
+{
+	uint8_t			buf[PED_SECTOR_SIZE_DEFAULT];
+	PedFileSystem*		fs;
+	HfsPVolumeHeader*	vh;
+	HfsPPrivateFSData* 	priv_data;
+	PedGeometry*		wrapper_geom;
+	unsigned int		map_sectors;
+
+	if (!hfsc_can_use_geom (geom))
+		return NULL;
+
+	fs = (PedFileSystem*) ped_malloc (sizeof (PedFileSystem));
+	if (!fs) goto hpo;
+	vh = (HfsPVolumeHeader*) ped_malloc (sizeof (HfsPVolumeHeader));
+	if (!vh) goto hpo_fs;
+	priv_data = (HfsPPrivateFSData*)ped_malloc (sizeof (HfsPPrivateFSData));
+	if (!priv_data) goto hpo_vh;
+
+	fs->geom = ped_geometry_duplicate (geom);
+	if (!fs->geom) goto hpo_pd;
+	fs->type_specific = (void*) priv_data;
+
+	if ((wrapper_geom = hfs_and_wrapper_probe (geom))) {
+		HfsPrivateFSData* 	hfs_priv_data;
+		PedSector		abs_sect, length;
+		unsigned int		bs;
+
+		ped_geometry_destroy (wrapper_geom);
+		priv_data->wrapper = hfs_open(geom);
+		if (!priv_data->wrapper) goto hpo_gm;
+		hfs_priv_data = (HfsPrivateFSData*)
+			priv_data->wrapper->type_specific;
+		bs = PED_BE32_TO_CPU (hfs_priv_data->mdb->block_size)
+		     / PED_SECTOR_SIZE_DEFAULT;
+		abs_sect = (PedSector) geom->start
+			   + (PedSector) PED_BE16_TO_CPU (
+					    hfs_priv_data->mdb->start_block)
+			   + (PedSector) PED_BE16_TO_CPU (
+					    hfs_priv_data->mdb->old_new
+					    .embedded.location.start_block )
+			                 * bs;
+		length = (PedSector) PED_BE16_TO_CPU (
+					    hfs_priv_data->mdb->old_new
+					    .embedded.location.block_count)
+				     * bs;
+		priv_data->plus_geom = ped_geometry_new (geom->dev, abs_sect,
+							 length);
+		if (!priv_data->plus_geom) goto hpo_wr;
+		priv_data->free_geom = 1;
+	} else {
+		priv_data->wrapper = NULL;
+		priv_data->plus_geom = fs->geom;
+		priv_data->free_geom = 0;
+	}
+
+	if (!ped_geometry_read (priv_data->plus_geom, buf, 2, 1)) goto hpo_pg;
+	memcpy (vh, buf, sizeof (HfsPVolumeHeader));
+	priv_data->vh = vh;
+
+	if (vh->signature != PED_CPU_TO_BE16(HFSP_SIGNATURE)
+	    && vh->signature != PED_CPU_TO_BE16(HFSX_SIGNATURE)) {
+		ped_exception_throw (
+			PED_EXCEPTION_BUG,
+			PED_EXCEPTION_CANCEL,
+			_("No valid HFS[+X] signature has been found while "
+			  "opening."));
+		goto hpo_pg;
+	}
+
+	if (vh->signature == PED_CPU_TO_BE16(HFSP_SIGNATURE)
+	    && vh->version != PED_CPU_TO_BE16(HFSP_VERSION)) {
+		if (ped_exception_throw (
+			PED_EXCEPTION_NO_FEATURE,
+			PED_EXCEPTION_IGNORE_CANCEL,
+			_("Version %d of HFS+ isn't supported."),
+			PED_BE16_TO_CPU(vh->version))
+				!= PED_EXCEPTION_IGNORE)
+			goto hpo_pg;
+	}
+
+	if (vh->signature == PED_CPU_TO_BE16(HFSX_SIGNATURE)
+	    && vh->version != PED_CPU_TO_BE16(HFSX_VERSION)) {
+		if (ped_exception_throw (
+			PED_EXCEPTION_NO_FEATURE,
+			PED_EXCEPTION_IGNORE_CANCEL,
+			_("Version %d of HFSX isn't supported."),
+			PED_BE16_TO_CPU(vh->version))
+				!= PED_EXCEPTION_IGNORE)
+			goto hpo_pg;
+	}
+
+	priv_data->jib_start_block = 0;
+	priv_data->jl_start_block = 0;
+	if (vh->attributes & PED_CPU_TO_BE32(1<<HFSP_JOURNALED)) {
+		if (!hfsj_replay_journal(fs))
+			goto hpo_pg;
+	}
+
+	priv_data->bad_blocks_loaded = 0;
+	priv_data->bad_blocks_xtent_nb = 0;
+	priv_data->bad_blocks_xtent_list = NULL;
+	priv_data->extents_file =
+		hfsplus_file_open (fs, PED_CPU_TO_BE32 (HFS_XTENT_ID),
+				   vh->extents_file.extents,
+				   PED_BE64_TO_CPU (
+					vh->extents_file.logical_size )
+				   / PED_SECTOR_SIZE_DEFAULT);
+	if (!priv_data->extents_file) goto hpo_pg;
+	priv_data->catalog_file =
+		hfsplus_file_open (fs, PED_CPU_TO_BE32 (HFS_CATALOG_ID),
+				   vh->catalog_file.extents,
+				   PED_BE64_TO_CPU (
+					vh->catalog_file.logical_size )
+				   / PED_SECTOR_SIZE_DEFAULT);
+	if (!priv_data->catalog_file) goto hpo_ce;
+	priv_data->attributes_file =
+		hfsplus_file_open (fs, PED_CPU_TO_BE32 (HFSP_ATTRIB_ID),
+				   vh->attributes_file.extents,
+				   PED_BE64_TO_CPU (
+					vh->attributes_file.logical_size)
+				   / PED_SECTOR_SIZE_DEFAULT);
+	if (!priv_data->attributes_file) goto hpo_cc;
+
+	map_sectors = ( PED_BE32_TO_CPU (vh->total_blocks) 
+	                + PED_SECTOR_SIZE_DEFAULT * 8 - 1 )
+		      / (PED_SECTOR_SIZE_DEFAULT * 8);
+	priv_data->dirty_alloc_map = (uint8_t*)
+		ped_malloc ((map_sectors + 7) / 8);
+	if (!priv_data->dirty_alloc_map) goto hpo_cl;
+	memset(priv_data->dirty_alloc_map, 0, (map_sectors + 7) / 8);
+	priv_data->alloc_map = (uint8_t*)
+		ped_malloc (map_sectors * PED_SECTOR_SIZE_DEFAULT);
+	if (!priv_data->alloc_map) goto hpo_dm;
+
+	priv_data->allocation_file =
+		hfsplus_file_open (fs, PED_CPU_TO_BE32 (HFSP_ALLOC_ID),
+				   vh->allocation_file.extents,
+				   PED_BE64_TO_CPU (
+					vh->allocation_file.logical_size)
+				   / PED_SECTOR_SIZE_DEFAULT);
+	if (!priv_data->allocation_file) goto hpo_am;
+	if (!hfsplus_file_read (priv_data->allocation_file,
+				priv_data->alloc_map, 0, map_sectors)) {
+		hfsplus_close(fs);
+		return NULL;
+	}
+
+	fs->type = &hfsplus_type;
+	fs->checked = ((PED_BE32_TO_CPU (vh->attributes) >> HFS_UNMOUNTED) & 1)
+	      && !((PED_BE32_TO_CPU (vh->attributes) >> HFSP_INCONSISTENT) & 1);
+
+	return fs;
+
+/*--- clean error handling ---*/
+hpo_am: ped_free(priv_data->alloc_map);
+hpo_dm: ped_free(priv_data->dirty_alloc_map);
+hpo_cl: hfsplus_file_close (priv_data->attributes_file);
+hpo_cc:	hfsplus_file_close (priv_data->catalog_file);
+hpo_ce:	hfsplus_file_close (priv_data->extents_file);
+hpo_pg: if (priv_data->free_geom) ped_geometry_destroy (priv_data->plus_geom);
+hpo_wr: if (priv_data->wrapper) hfs_close(priv_data->wrapper);
+hpo_gm: ped_geometry_destroy (fs->geom);
+hpo_pd: ped_free(priv_data);
+hpo_vh: ped_free(vh);
+hpo_fs: ped_free(fs);
+hpo:	return NULL;
+}
+
+static PedConstraint* 
+hfsplus_get_resize_constraint (const PedFileSystem *fs)
+{
+	PedDevice*	dev = fs->geom->dev;
+	PedAlignment	start_align;
+	PedGeometry	start_sector;
+	PedGeometry	full_dev;
+	PedSector	min_size;
+
+	if (!ped_alignment_init (&start_align, fs->geom->start, 0))
+		return NULL;
+	if (!ped_geometry_init (&start_sector, dev, fs->geom->start, 1))
+		return NULL;
+	if (!ped_geometry_init (&full_dev, dev, 0, dev->length - 1))
+		return NULL;
+
+	min_size = hfsplus_get_min_size (fs);
+	if (!min_size) return NULL;
+
+	return ped_constraint_new (&start_align, ped_alignment_any,
+				   &start_sector, &full_dev, min_size,
+				   fs->geom->length);
+}
+
+static int
+hfsplus_volume_resize (PedFileSystem* fs, PedGeometry* geom, PedTimer* timer)
+{
+	uint8_t			buf[PED_SECTOR_SIZE_DEFAULT];
+	unsigned int		nblock, nfree, mblock;
+	unsigned int		block, to_free, old_blocks;
+	HfsPPrivateFSData* 	priv_data = (HfsPPrivateFSData*)
+						fs->type_specific;
+	HfsPVolumeHeader* 	vh = priv_data->vh;
+	int			resize = 1;
+	unsigned int		hfsp_sect_block =
+				    ( PED_BE32_TO_CPU (vh->block_size)
+				      / PED_SECTOR_SIZE_DEFAULT );
+	unsigned int		map_sectors;
+
+	old_blocks = PED_BE32_TO_CPU (vh->total_blocks);
+
+	/* Flush caches */
+	if (!ped_geometry_sync(priv_data->plus_geom))
+		return 0;
+
+	/* Clear the unmounted bit */
+	/* and set the implementation code (Apple Creator Code) */
+	vh->attributes &= PED_CPU_TO_BE32 (~( 1 << HFS_UNMOUNTED ));
+	vh->last_mounted_version = PED_CPU_TO_BE32(HFSP_IMPL_Shnk);
+	if (!ped_geometry_read (priv_data->plus_geom, buf, 2, 1))
+		return 0;
+	memcpy (buf, vh, sizeof (HfsPVolumeHeader));
+	if (   !ped_geometry_write (priv_data->plus_geom, buf, 2, 1)
+	    || !ped_geometry_sync (priv_data->plus_geom))
+		return 0;
+
+	ped_timer_reset (timer);
+	ped_timer_set_state_name(timer, _("shrinking"));
+	ped_timer_update(timer, 0.0);
+	/* relocate data */
+	to_free = ( priv_data->plus_geom->length 
+	          - geom->length + hfsp_sect_block
+		  - 1 ) / hfsp_sect_block;
+	block = hfsplus_find_start_pack (fs, to_free);
+	if (!hfsplus_pack_free_space_from_block (fs, block, timer, to_free)) {
+		resize = 0;
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Data relocation has failed."));
+		goto write_VH;
+	}
+
+	/* Calculate new block number and other VH field */
+	/* nblock must be rounded _down_ */
+	nblock = geom->length / hfsp_sect_block;
+	nfree = PED_BE32_TO_CPU (vh->free_blocks) 
+		- (old_blocks - nblock);
+	/* free block readjustement is only needed when incorrect nblock
+	   was used by my previous implementation, so detect the case */
+	if (priv_data->plus_geom->length < old_blocks
+					   * ( PED_BE32_TO_CPU (vh->block_size)
+					       / PED_SECTOR_SIZE_DEFAULT) ) {
+		if (priv_data->plus_geom->length % hfsp_sect_block == 1)
+			nfree++;
+	}
+
+	/* Check that all block after future end are really free */
+	mblock = ( priv_data->plus_geom->length - 2 )
+		 / hfsp_sect_block;
+	if (mblock > old_blocks - 1)
+		mblock = old_blocks - 1;
+	for ( block = nblock;
+	      block < mblock;
+	      block++ ) {
+		if (TST_BLOC_OCCUPATION(priv_data->alloc_map,block)) {
+			resize = 0;
+			ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_CANCEL,
+				_("Data relocation left some data at the end "
+				  "of the volume."));
+			goto write_VH;
+		}
+	}
+
+	/* Mark out of volume blocks as used */
+	map_sectors = ( ( old_blocks + PED_SECTOR_SIZE_DEFAULT * 8 - 1 )
+	                / (PED_SECTOR_SIZE_DEFAULT * 8) )
+		      * (PED_SECTOR_SIZE_DEFAULT * 8);
+	for ( block = nblock; block < map_sectors; ++block)
+		SET_BLOC_OCCUPATION(priv_data->alloc_map, block);
+
+	/* Update geometry */
+	if (resize) {
+		/* update in fs structure */
+		if (PED_BE32_TO_CPU (vh->next_allocation) >= nblock)
+			vh->next_allocation = PED_CPU_TO_BE32 (0);
+		vh->total_blocks = PED_CPU_TO_BE32 (nblock);
+		vh->free_blocks = PED_CPU_TO_BE32 (nfree);
+		/* update parted structure */
+		priv_data->plus_geom->length = geom->length;
+		priv_data->plus_geom->end = priv_data->plus_geom->start
+					    + geom->length - 1;
+	}
+
+	/* Effective write */
+    write_VH:
+    	/* lasts two sectors are allocated by the alternate VH
+	   and a reserved sector, and last block is always reserved */
+	block = (priv_data->plus_geom->length - 1) / hfsp_sect_block;
+	if (block < PED_BE32_TO_CPU (vh->total_blocks))
+		SET_BLOC_OCCUPATION(priv_data->alloc_map, block);
+	block = (priv_data->plus_geom->length - 2) / hfsp_sect_block;
+	if (block < PED_BE32_TO_CPU (vh->total_blocks))
+		SET_BLOC_OCCUPATION(priv_data->alloc_map, block);
+	SET_BLOC_OCCUPATION(priv_data->alloc_map,
+			    PED_BE32_TO_CPU (vh->total_blocks) - 1);
+
+	/* Write the _old_ area to set out of volume blocks as used */
+	map_sectors = ( old_blocks + PED_SECTOR_SIZE_DEFAULT * 8 - 1 )
+	              / (PED_SECTOR_SIZE_DEFAULT * 8);
+	if (!hfsplus_file_write (priv_data->allocation_file,
+				 priv_data->alloc_map, 0, map_sectors)) {
+		resize = 0;
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Error while writing the allocation file."));
+	} else {
+	/* Write remaining part of allocation bitmap */
+	/* This is necessary to handle pre patch-11 and third party */
+	/* implementations */
+		memset(buf, 0xFF, PED_SECTOR_SIZE_DEFAULT);
+		for (block = map_sectors;
+		     block < priv_data->allocation_file->sect_nb;
+		     ++block) {
+			if (!hfsplus_file_write_sector (
+					priv_data->allocation_file,
+					buf, block)) {
+				ped_exception_throw (
+					PED_EXCEPTION_WARNING,
+					PED_EXCEPTION_IGNORE,
+					_("Error while writing the "
+					  "compatibility part of the "
+					  "allocation file."));
+				break;
+			}
+		}
+	}
+	ped_geometry_sync (priv_data->plus_geom);
+
+	if (resize) {
+		/* Set the unmounted bit and clear the inconsistent bit */
+		vh->attributes |= PED_CPU_TO_BE32 ( 1 << HFS_UNMOUNTED );
+		vh->attributes &= ~ PED_CPU_TO_BE32 ( 1 << HFSP_INCONSISTENT );
+	}
+
+	ped_timer_set_state_name(timer, _("writing HFS+ Volume Header"));
+	if (!hfsplus_update_vh(fs)) {
+		ped_geometry_sync(priv_data->plus_geom);
+		return 0;
+	}
+
+	if (!ped_geometry_sync(priv_data->plus_geom))
+		return 0;
+
+	ped_timer_update(timer, 1.0);
+
+	return (resize);
+}
+
+/* Update the HFS wrapper mdb and bad blocks file to reflect
+   the new geometry of the embedded HFS+ volume */
+static int
+hfsplus_wrapper_update (PedFileSystem* fs)
+{
+	uint8_t			node[PED_SECTOR_SIZE_DEFAULT];
+	HfsCPrivateLeafRec	ref;
+	HfsExtentKey		key;
+	HfsNodeDescriptor*	node_desc = (HfsNodeDescriptor*) node;
+	HfsExtentKey*		ret_key;
+	HfsExtDescriptor*	ret_data;
+	unsigned int		i;
+	HfsPPrivateFSData* 	priv_data = (HfsPPrivateFSData*)
+						fs->type_specific;
+	HfsPrivateFSData* 	hfs_priv_data = (HfsPrivateFSData*)
+					    priv_data->wrapper->type_specific;
+	unsigned int		hfs_sect_block =
+			PED_BE32_TO_CPU (hfs_priv_data->mdb->block_size)
+			/ PED_SECTOR_SIZE_DEFAULT ;
+	PedSector		hfsplus_sect = (PedSector)
+			PED_BE32_TO_CPU (priv_data->vh->total_blocks)
+			* ( PED_BE32_TO_CPU (priv_data->vh->block_size)
+			    / PED_SECTOR_SIZE_DEFAULT );
+	unsigned int		hfs_blocks_embedded =
+				    (hfsplus_sect + hfs_sect_block - 1)
+				    / hfs_sect_block;
+	unsigned int		hfs_blocks_embedded_old;
+
+	/* update HFS wrapper MDB */
+	hfs_blocks_embedded_old = PED_BE16_TO_CPU (
+					hfs_priv_data->mdb->old_new
+					.embedded.location.block_count );
+	hfs_priv_data->mdb->old_new.embedded.location.block_count =
+		PED_CPU_TO_BE16 (hfs_blocks_embedded);
+	/* maybe macOS will boot with this */
+	/* update : yes it does \o/ :) */
+	hfs_priv_data->mdb->free_blocks =
+	    PED_CPU_TO_BE16 ( PED_BE16_TO_CPU (hfs_priv_data->mdb->free_blocks)
+	                    + hfs_blocks_embedded_old
+			    - hfs_blocks_embedded );
+
+	if (!hfs_update_mdb(priv_data->wrapper))
+		return 0;
+
+	/* force reload bad block list */
+	if (hfs_priv_data->bad_blocks_loaded) {
+		hfs_free_bad_blocks_list (hfs_priv_data->bad_blocks_xtent_list);
+		hfs_priv_data->bad_blocks_xtent_list = NULL;
+		hfs_priv_data->bad_blocks_xtent_nb = 0;
+		hfs_priv_data->bad_blocks_loaded = 0;
+	}
+
+	/* clean HFS wrapper allocation map */
+	for (i = PED_BE16_TO_CPU (
+			hfs_priv_data->mdb->old_new.embedded
+			.location.start_block )
+		 + hfs_blocks_embedded;
+	     i < PED_BE16_TO_CPU (
+	    		hfs_priv_data->mdb->old_new.embedded
+			.location.start_block )
+		 + hfs_blocks_embedded_old;
+	     i++ ) {
+		CLR_BLOC_OCCUPATION(hfs_priv_data->alloc_map, i);
+	}
+	/* and save it */
+	if (!ped_geometry_write (fs->geom, hfs_priv_data->alloc_map,
+				 PED_BE16_TO_CPU (
+				      hfs_priv_data->mdb->volume_bitmap_block ),
+				 ( PED_BE16_TO_CPU (
+				        hfs_priv_data->mdb->total_blocks ) 
+				   + PED_SECTOR_SIZE_DEFAULT * 8 - 1 )
+				 / (PED_SECTOR_SIZE_DEFAULT * 8)))
+		return 0;
+	if (!ped_geometry_sync (fs->geom))
+		return 0;
+
+	/* search and update the bad blocks file */
+	key.key_length = sizeof(key) - 1;
+	key.type = HFS_DATA_FORK;
+	key.file_ID = PED_CPU_TO_BE32 (HFS_BAD_BLOCK_ID);
+	key.start = 0;
+	if (!hfs_btree_search (hfs_priv_data->extent_file,
+			       (HfsPrivateGenericKey*) &key, NULL, 0, &ref)) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("An error occurred while looking for the mandatory "
+			  "bad blocks file."));
+		return 0;
+	}
+	if (!hfs_file_read_sector (hfs_priv_data->extent_file, node,
+				   ref.node_number))
+		return 0;
+	ret_key = (HfsExtentKey*) (node + ref.record_pos);
+	ret_data = (HfsExtDescriptor*) ( node + ref.record_pos
+					 + sizeof (HfsExtentKey) );
+
+	while (ret_key->type == key.type && ret_key->file_ID == key.file_ID) {
+		for (i = 0; i < HFS_EXT_NB; i++) {
+			if ( ret_data[i].start_block 
+			     == hfs_priv_data->mdb->old_new
+			        .embedded.location.start_block) {
+				ret_data[i].block_count =
+				    hfs_priv_data->mdb->old_new
+				    .embedded.location.block_count;
+				/* found ! : update */
+				if (!hfs_file_write_sector (
+					  hfs_priv_data->extent_file,
+					  node, ref.node_number)
+				    || !ped_geometry_sync(fs->geom))
+					return 0;
+				return 1;
+			}
+		}
+
+		if (ref.record_number < PED_BE16_TO_CPU (node_desc->rec_nb)) {
+			ref.record_number++;
+		} else {
+			ref.node_number = PED_BE32_TO_CPU (node_desc->next);
+			if (!ref.node_number
+			    || !hfs_file_read_sector(hfs_priv_data->extent_file,
+						     node, ref.node_number))
+				goto bb_not_found;
+			ref.record_number = 1;
+		}
+
+		ref.record_pos =
+			PED_BE16_TO_CPU (*((uint16_t *)
+				(node + (PED_SECTOR_SIZE_DEFAULT
+				         - 2*ref.record_number))));
+		ret_key = (HfsExtentKey*) (node + ref.record_pos);
+		ret_data = (HfsExtDescriptor*) ( node + ref.record_pos
+						 + sizeof (HfsExtentKey) );
+	}
+
+bb_not_found:
+	/* not found : not a valid hfs+ wrapper : failure */
+	ped_exception_throw (
+		PED_EXCEPTION_ERROR,
+		PED_EXCEPTION_CANCEL,
+		_("It seems there is an error in the HFS wrapper: the bad "
+		  "blocks file doesn't contain the embedded HFS+ volume."));
+	return 0;
+}
+
+static int
+hfsplus_resize (PedFileSystem* fs, PedGeometry* geom, PedTimer* timer)
+{
+	HfsPPrivateFSData* 	priv_data;
+	PedTimer*		timer_plus;
+	PedGeometry*		embedded_geom;
+	PedSector		hgms;
+
+	/* check preconditions */
+	PED_ASSERT (fs != NULL, return 0);
+	PED_ASSERT (fs->geom != NULL, return 0); 
+	PED_ASSERT (geom != NULL, return 0);
+	PED_ASSERT (fs->geom->dev == geom->dev, return 0);
+#ifdef DEBUG
+        PED_ASSERT ((hgms = hfsplus_get_min_size (fs)) != 0, return 0);
+#else
+        if ((hgms = hfsplus_get_min_size (fs)) == 0)
+                return 0;
+#endif
+
+	if (ped_geometry_test_equal(fs->geom, geom))
+		return 1;
+
+	priv_data = (HfsPPrivateFSData*) fs->type_specific;
+
+	if (fs->geom->start != geom->start
+	    || geom->length > fs->geom->length
+	    || geom->length < hgms) {
+		ped_exception_throw (
+			PED_EXCEPTION_NO_FEATURE,
+			PED_EXCEPTION_CANCEL,
+			_("Sorry, HFS+ cannot be resized that way yet."));
+		return 0;
+	}
+
+	if (priv_data->wrapper) {
+		PedSector		red, hgee;
+		HfsPrivateFSData* 	hfs_priv_data = (HfsPrivateFSData*)
+					    priv_data->wrapper->type_specific;
+		unsigned int		hfs_sect_block =
+			    PED_BE32_TO_CPU (hfs_priv_data->mdb->block_size)
+			    / PED_SECTOR_SIZE_DEFAULT;
+
+		/* There is a wrapper so we must calculate the new geometry
+		   of the embedded HFS+ volume */
+		red = ( (fs->geom->length - geom->length + hfs_sect_block - 1)
+			/ hfs_sect_block ) * hfs_sect_block;
+		/* Can't we shrink the hfs+ volume by the desired size ? */
+		hgee = hfsplus_get_empty_end (fs);
+		if (!hgee) return 0;
+		if (red > priv_data->plus_geom->length - hgee) {
+			/* No, shrink hfs+ by the greatest possible value */
+			hgee = ((hgee + hfs_sect_block - 1) / hfs_sect_block)
+			       * hfs_sect_block;
+			red = priv_data->plus_geom->length - hgee;
+		}
+		embedded_geom = ped_geometry_new (geom->dev,
+						  priv_data->plus_geom->start,
+						  priv_data->plus_geom->length
+						  - red);
+
+		/* There is a wrapper so the resize process is a two stages
+		   process (embedded resizing then wrapper resizing) :
+		   we create a sub timer */
+		ped_timer_reset (timer);
+		ped_timer_set_state_name (timer,
+					  _("shrinking embedded HFS+ volume"));
+		ped_timer_update(timer, 0.0);
+		timer_plus = ped_timer_new_nested (timer, 0.98);
+	} else {
+		/* No wrapper : the desired geometry is the desired
+		   HFS+ volume geometry */
+		embedded_geom = geom;
+		timer_plus = timer;
+	}
+
+	/* Resize the HFS+ volume */
+	if (!hfsplus_volume_resize (fs, embedded_geom, timer_plus)) {
+		if (timer_plus != timer) ped_timer_destroy_nested (timer_plus);
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Resizing the HFS+ volume has failed."));
+		return 0;
+	}
+
+	if (priv_data->wrapper) {
+		ped_geometry_destroy (embedded_geom);
+		ped_timer_destroy_nested (timer_plus);
+		ped_timer_set_state_name(timer, _("shrinking HFS wrapper"));
+		timer_plus = ped_timer_new_nested (timer, 0.02);
+		/* There's a wrapper : second stage = resizing it */
+		if (!hfsplus_wrapper_update (fs)
+		    || !hfs_resize (priv_data->wrapper, geom, timer_plus)) {
+			ped_timer_destroy_nested (timer_plus);
+			ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_CANCEL,
+				_("Updating the HFS wrapper has failed."));
+			return 0;
+		}
+		ped_timer_destroy_nested (timer_plus);
+	}
+	ped_timer_update(timer, 1.0);
+
+	return 1;
+}
+
+#ifdef HFS_EXTRACT_FS
+/* The following is for debugging purpose only, NOT for packaging */
+
+#include <stdio.h>
+
+uint8_t* extract_buffer = NULL;
+
+static int
+hfs_extract_file(const char* filename, HfsPrivateFile* hfs_file)
+{
+	FILE*		fout;
+	PedSector	sect;
+
+	fout = fopen(filename, "w");
+	if (!fout) return 0;
+
+	for (sect = 0; sect < hfs_file->sect_nb; ++sect) {
+		if (!hfs_file_read_sector(hfs_file, extract_buffer, sect))
+			goto err_close;
+		if (!fwrite(extract_buffer, PED_SECTOR_SIZE_DEFAULT, 1, fout))
+			goto err_close;
+	}
+
+	return (fclose(fout) == 0 ? 1 : 0);
+
+err_close:
+	fclose(fout);
+	return 0;
+}
+
+static int
+hfs_extract_bitmap(const char* filename, PedFileSystem* fs)
+{
+	HfsPrivateFSData*		priv_data = (HfsPrivateFSData*)
+						fs->type_specific;
+	HfsMasterDirectoryBlock*	mdb = priv_data->mdb;
+	unsigned int 	count;
+	FILE*		fout;
+	PedSector	sect;
+
+	fout = fopen(filename, "w");
+	if (!fout) return 0;
+
+	for (sect = PED_BE16_TO_CPU(mdb->volume_bitmap_block);
+	     sect < PED_BE16_TO_CPU(mdb->start_block);
+	     sect += count) {
+		uint16_t st_block = PED_BE16_TO_CPU(mdb->start_block);
+		count = (st_block-sect) < BLOCK_MAX_BUFF ?
+			(st_block-sect) : BLOCK_MAX_BUFF;
+		if (!ped_geometry_read(fs->geom, extract_buffer, sect, count))
+			goto err_close;
+		if (!fwrite (extract_buffer, count * PED_SECTOR_SIZE_DEFAULT,
+			     1, fout))
+			goto err_close;
+	}
+
+	return (fclose(fout) == 0 ? 1 : 0);
+
+err_close:
+	fclose(fout);
+	return 0;
+}
+
+static int
+hfs_extract_mdb (const char* filename, PedFileSystem* fs)
+{
+	FILE*		fout;
+
+	fout = fopen(filename, "w");
+	if (!fout) return 0;
+
+	if (!ped_geometry_read(fs->geom, extract_buffer, 2, 1))
+		goto err_close;
+	if (!fwrite(extract_buffer, PED_SECTOR_SIZE_DEFAULT, 1, fout))
+		goto err_close;
+
+	return (fclose(fout) == 0 ? 1 : 0);
+
+err_close:
+	fclose(fout);
+	return 0;
+}
+
+static int
+hfs_extract (PedFileSystem* fs, PedTimer* timer)
+{
+	HfsPrivateFSData*	priv_data = (HfsPrivateFSData*)
+						fs->type_specific;
+
+	ped_exception_throw (
+		PED_EXCEPTION_INFORMATION,
+		PED_EXCEPTION_OK,
+		_("This is not a real %s check.  This is going to extract "
+		  "special low level files for debugging purposes."),
+		"HFS");
+
+	extract_buffer = ped_malloc(BLOCK_MAX_BUFF * PED_SECTOR_SIZE_DEFAULT);
+	if (!extract_buffer) return 0;
+
+	hfs_extract_mdb(HFS_MDB_FILENAME, fs);
+	hfs_extract_file(HFS_CATALOG_FILENAME, priv_data->catalog_file);
+	hfs_extract_file(HFS_EXTENTS_FILENAME, priv_data->extent_file);
+	hfs_extract_bitmap(HFS_BITMAP_FILENAME, fs);
+
+	ped_free(extract_buffer); extract_buffer = NULL;
+	return 0; /* nothing has been fixed by us ! */
+}
+
+static int
+hfsplus_extract_file(const char* filename, HfsPPrivateFile* hfsp_file)
+{
+	FILE*		fout;
+	unsigned int	cp_sect;
+	PedSector	rem_sect;
+
+	fout = fopen(filename, "w");
+	if (!fout) return 0;
+
+	for (rem_sect = hfsp_file->sect_nb; rem_sect; rem_sect -= cp_sect) {
+		cp_sect = rem_sect < BLOCK_MAX_BUFF ? rem_sect : BLOCK_MAX_BUFF;
+		if (!hfsplus_file_read(hfsp_file, extract_buffer, 
+				       hfsp_file->sect_nb - rem_sect, cp_sect))
+			goto err_close;
+		if (!fwrite (extract_buffer, cp_sect * PED_SECTOR_SIZE_DEFAULT,
+			     1, fout))
+			goto err_close;
+	}
+
+	return (fclose(fout) == 0 ? 1 : 0);
+
+err_close:
+	fclose(fout);
+	return 0;
+}
+
+static int
+hfsplus_extract_vh (const char* filename, PedFileSystem* fs)
+{
+	HfsPPrivateFSData* 	priv_data = (HfsPPrivateFSData*)
+						fs->type_specific;
+	FILE*		fout;
+	PedGeometry*	geom = priv_data->plus_geom;
+
+
+	fout = fopen(filename, "w");
+	if (!fout) return 0;
+
+	if (!ped_geometry_read(geom, extract_buffer, 2, 1))
+		goto err_close;
+	if (!fwrite(extract_buffer, PED_SECTOR_SIZE_DEFAULT, 1, fout))
+		goto err_close;
+
+	return (fclose(fout) == 0 ? 1 : 0);
+
+err_close:
+	fclose(fout);
+	return 0;
+}
+
+/* TODO : use the timer to report what is happening */
+/* TODO : use exceptions to report errors */
+static int
+hfsplus_extract (PedFileSystem* fs, PedTimer* timer)
+{
+	HfsPPrivateFSData* 	priv_data = (HfsPPrivateFSData*)
+						fs->type_specific;
+	HfsPVolumeHeader*	vh = priv_data->vh;
+	HfsPPrivateFile*	startup_file;
+
+	if (priv_data->wrapper) {
+		/* TODO : create nested timer */
+		hfs_extract (priv_data->wrapper, timer);
+	}
+
+	ped_exception_throw (
+		PED_EXCEPTION_INFORMATION,
+		PED_EXCEPTION_OK,
+		_("This is not a real %s check.  This is going to extract "
+		  "special low level files for debugging purposes."),
+		"HFS+");
+
+	extract_buffer = ped_malloc(BLOCK_MAX_BUFF * PED_SECTOR_SIZE_DEFAULT);
+	if (!extract_buffer) return 0;
+
+	hfsplus_extract_vh(HFSP_VH_FILENAME, fs);
+	hfsplus_extract_file(HFSP_CATALOG_FILENAME, priv_data->catalog_file);
+	hfsplus_extract_file(HFSP_EXTENTS_FILENAME, priv_data->extents_file);
+	hfsplus_extract_file(HFSP_ATTRIB_FILENAME, priv_data->attributes_file);
+	hfsplus_extract_file(HFSP_BITMAP_FILENAME, priv_data->allocation_file);
+
+	startup_file = hfsplus_file_open(fs, PED_CPU_TO_BE32(HFSP_STARTUP_ID),
+					vh->startup_file.extents,
+					PED_BE64_TO_CPU (
+					   vh->startup_file.logical_size)
+					/ PED_SECTOR_SIZE_DEFAULT);
+	if (startup_file) {
+		hfsplus_extract_file(HFSP_STARTUP_FILENAME, startup_file);
+		hfsplus_file_close(startup_file); startup_file = NULL;
+	}
+
+	ped_free(extract_buffer); extract_buffer = NULL;
+	return 0; /* nothing has been fixed by us ! */
+}
+#endif /* HFS_EXTRACT_FS */
+
+#endif /* !DISCOVER_ONLY */
+
+static PedFileSystemOps hfs_ops = {
+	probe:		hfs_probe,
+#ifndef DISCOVER_ONLY
+	clobber:	hfs_clobber,
+	open:		hfs_open,
+	create:		NULL,
+	close:		hfs_close,
+#ifndef HFS_EXTRACT_FS
+	check:		NULL,
+#else
+	check:		hfs_extract,
+#endif
+	copy:		NULL,
+	resize:		hfs_resize,
+	get_create_constraint:	NULL,
+	get_resize_constraint:	hfs_get_resize_constraint,
+	get_copy_constraint:	NULL,
+#else /* DISCOVER_ONLY */
+	clobber:	NULL,
+	open:		NULL,
+	create:		NULL,
+	close:		NULL,
+	check:		NULL,
+	copy:		NULL,
+	resize:		NULL,
+	get_create_constraint:	NULL,
+	get_resize_constraint:	NULL,
+	get_copy_constraint:	NULL,
+#endif /* DISCOVER_ONLY */
+};
+
+static PedFileSystemOps hfsplus_ops = {
+	probe:		hfsplus_probe,
+#ifndef DISCOVER_ONLY
+	clobber:	hfsplus_clobber,
+	open:		hfsplus_open,
+	create:		NULL,
+	close:		hfsplus_close,
+#ifndef HFS_EXTRACT_FS
+	check:		NULL,
+#else
+	check:		hfsplus_extract,
+#endif
+	copy:		NULL,
+	resize:		hfsplus_resize,
+	get_create_constraint:	NULL,
+	get_resize_constraint:	hfsplus_get_resize_constraint,
+	get_copy_constraint:	NULL,
+#else /* DISCOVER_ONLY */
+	clobber:	NULL,
+	open:		NULL,
+	create:		NULL,
+	close:		NULL,
+	check:		NULL,
+	copy:		NULL,
+	resize:		NULL,
+	get_create_constraint:	NULL,
+	get_resize_constraint:	NULL,
+	get_copy_constraint:	NULL,
+#endif /* DISCOVER_ONLY */
+};
+
+static PedFileSystemOps hfsx_ops = {
+	probe:		hfsx_probe,
+#ifndef DISCOVER_ONLY
+	clobber:	hfs_clobber, /* NOT hfsplus_clobber !
+					HFSX can't be embedded */
+	open:		hfsplus_open,
+	create:		NULL,
+	close:		hfsplus_close,
+#ifndef HFS_EXTRACT_FS
+	check:		NULL,
+#else
+	check:		hfsplus_extract,
+#endif
+	copy:		NULL,
+	resize:		hfsplus_resize,
+	get_create_constraint:	NULL,
+	get_resize_constraint:	hfsplus_get_resize_constraint,
+	get_copy_constraint:	NULL,
+#else /* DISCOVER_ONLY */
+	clobber:	NULL,
+	open:		NULL,
+	create:		NULL,
+	close:		NULL,
+	check:		NULL,
+	copy:		NULL,
+	resize:		NULL,
+	get_create_constraint:	NULL,
+	get_resize_constraint:	NULL,
+	get_copy_constraint:	NULL,
+#endif /* DISCOVER_ONLY */
+};
+
+
+static PedFileSystemType hfs_type = {
+	next:	NULL,
+	ops:	&hfs_ops,
+	name:	"hfs",
+	block_sizes: HFS_BLOCK_SIZES
+};
+
+static PedFileSystemType hfsplus_type = {
+	next:	NULL,
+	ops:	&hfsplus_ops,
+	name:	"hfs+",
+	block_sizes: HFSP_BLOCK_SIZES
+};
+
+static PedFileSystemType hfsx_type = {
+	next:	NULL,
+	ops:	&hfsx_ops,
+	name:	"hfsx",
+	block_sizes: HFSX_BLOCK_SIZES
+};
+
+void
+ped_file_system_hfs_init ()
+{
+	ped_file_system_type_register (&hfs_type);
+	ped_file_system_type_register (&hfsplus_type);
+	ped_file_system_type_register (&hfsx_type);
+}
+
+void
+ped_file_system_hfs_done ()
+{
+	ped_file_system_type_unregister (&hfs_type);
+	ped_file_system_type_unregister (&hfsplus_type);
+	ped_file_system_type_unregister (&hfsx_type);
+}
diff --git a/parted-1.8.7/libparted/fs/hfs/hfs.h b/parted-1.8.7/libparted/fs/hfs/hfs.h
new file mode 100644
index 0000000..bb6d50d
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/hfs/hfs.h
@@ -0,0 +1,648 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef _HFS_H
+#define _HFS_H
+
+/* WARNING : bn is used 2 times in theses macro */
+/* so _never_ use side effect operators when using them */
+#define TST_BLOC_OCCUPATION(tab,bn) \
+	(((tab)[(bn)/8])  &  (1<<(7-((bn)&7))))
+#define SET_BLOC_OCCUPATION(tab,bn) \
+	(((tab)[(bn)/8]) |=  (1<<(7-((bn)&7))))
+#define CLR_BLOC_OCCUPATION(tab,bn) \
+	(((tab)[(bn)/8]) &= ~(1<<(7-((bn)&7))))
+
+/* Maximum number of blocks for the copy buffers */
+#define BLOCK_MAX_BUFF	256
+/* Maximum size of the copy buffers, in bytes */
+#define BYTES_MAX_BUFF	8388608
+
+/* Apple Creator Codes follow */
+#define HFSP_IMPL_Shnk	0x53686e6b	/* in use */
+#define HFSP_IMPL_Xpnd	0x58706e64	/* reserved */
+#define HFSP_IMPL_Resz	0x5265737a	/* reserved */
+#define HFSP_IMPL_PHpx	0x50482b78	/* reserved */
+#define HFSP_IMPL_traP  0x74726150	/* reserved */
+#define HFSP_IMPL_GnuP  0x476e7550	/* reserved */
+
+#define HFS_SIGNATURE	0x4244		/* 'BD' */
+#define HFSP_SIGNATURE	0x482B		/* 'H+' */
+#define HFSX_SIGNATURE  0x4858		/* 'HX' */
+
+#define HFSP_VERSION	 4
+#define HFSX_VERSION	 5
+
+#define HFS_HARD_LOCK	 7
+#define HFS_UNMOUNTED	 8
+#define HFS_BAD_SPARED	 9
+#define HFS_SOFT_LOCK	15
+#define HFSP_NO_CACHE	10
+#define HFSP_INCONSISTENT 11
+#define HFSP_REUSE_CNID	12
+#define HFSP_JOURNALED	13
+
+#define HFS_IDX_NODE	0x00
+#define HFS_HDR_NODE	0x01
+#define HFS_MAP_NODE	0x02
+#define HFS_LEAF_NODE	0xFF
+
+#define HFS_FIRST_REC	0x0E
+#define HFS_NSD_HD_REC	0x78
+#define HFS_MAP_REC	0xF8
+
+#define HFS_DATA_FORK	0x00
+#define HFS_RES_FORK	0xFF
+
+#define HFS_CAT_DIR	0x01
+#define HFS_CAT_FILE	0x02
+#define HFS_CAT_DIR_TH	0x03
+#define HFS_CAT_FILE_TH	0x04
+
+#define HFSP_ATTR_INLINE	0x10
+#define HFSP_ATTR_FORK		0x20
+#define HFSP_ATTR_EXTENTS	0x30
+
+#define HFS_ROOT_PAR_ID		0x01
+#define HFS_ROOT_DIR_ID		0x02
+#define HFS_XTENT_ID		0x03
+#define HFS_CATALOG_ID		0x04
+#define HFS_BAD_BLOCK_ID	0x05
+#define HFSP_ALLOC_ID		0x06
+#define HFSP_STARTUP_ID		0x07
+#define HFSP_ATTRIB_ID		0x08
+#define HFSP_BOGUS_ID		0x0F
+#define HFSP_FIRST_AV_ID	0x10
+
+#define HFSJ_JOURN_IN_FS	0x00
+#define HFSJ_JOURN_OTHER_DEV	0x01
+#define HFSJ_JOURN_NEED_INIT	0x02
+
+#define HFSJ_HEADER_MAGIC	0x4a4e4c78
+#define HFSJ_ENDIAN_MAGIC	0x12345678
+
+#define HFSX_CASE_FOLDING	0xCF	/* case insensitive HFSX */
+#define HFSX_BINARY_COMPARE	0xBC	/* case sensitive   HFSX */
+
+#define HFS_EXT_NB	3
+#define HFSP_EXT_NB	8
+
+/* Define the filenames used by the FS extractor */
+#ifdef HFS_EXTRACT_FS
+
+#define HFS_MDB_FILENAME	"mdb.hfs"
+#define HFS_CATALOG_FILENAME	"catalog.hfs"
+#define HFS_EXTENTS_FILENAME	"extents.hfs"
+#define HFS_BITMAP_FILENAME	"bitmap.hfs"
+
+#define HFSP_VH_FILENAME	"vh.hfsplus"
+#define HFSP_CATALOG_FILENAME	"catalog.hfsplus"
+#define HFSP_EXTENTS_FILENAME	"extents.hfsplus"
+#define HFSP_BITMAP_FILENAME	"bitmap.hfsplus"
+#define HFSP_ATTRIB_FILENAME	"attributes.hfsplus"
+#define HFSP_STARTUP_FILENAME	"startup.hfsplus"
+
+#endif /* HFS_EXTRACT_FS */
+
+
+
+/* ----------------------------------- */
+/* --      HFS DATA STRUCTURES      -- */
+/* ----------------------------------- */
+
+/* Extent descriptor */
+struct __attribute__ ((packed)) _HfsExtDescriptor {
+        uint16_t	start_block;
+        uint16_t	block_count;
+};
+typedef struct _HfsExtDescriptor HfsExtDescriptor;
+typedef HfsExtDescriptor HfsExtDataRec[HFS_EXT_NB];
+
+/* Volume header */
+struct __attribute__ ((packed)) _HfsMasterDirectoryBlock {
+        uint16_t         signature;
+        uint32_t         create_date;
+        uint32_t         modify_date;
+        uint16_t         volume_attributes;
+        uint16_t         files_in_root;
+        uint16_t         volume_bitmap_block;       /* in sectors */
+        uint16_t         next_allocation;
+        uint16_t         total_blocks;
+        uint32_t         block_size;                /* in bytes */
+        uint32_t         def_clump_size;            /* in bytes */
+        uint16_t         start_block;               /* in sectors */
+        uint32_t         next_free_node;
+        uint16_t         free_blocks;
+        uint8_t          name_length;
+        char             name[27];
+        uint32_t         backup_date;
+        uint16_t         backup_number;
+        uint32_t         write_count;
+        uint32_t         extents_clump;
+        uint32_t         catalog_clump;
+        uint16_t         dirs_in_root;
+        uint32_t         file_count;
+        uint32_t         dir_count;
+        uint32_t         finder_info[8];
+        union __attribute__ ((packed)) {
+                struct __attribute__ ((packed)) {
+                        uint16_t    volume_cache_size;    /* in blocks */
+                        uint16_t    bitmap_cache_size;    /* in blocks */
+                        uint16_t    common_cache_size;    /* in blocks */
+                } legacy;
+                struct __attribute__ ((packed)) {
+                        uint16_t            signature;
+                        HfsExtDescriptor    location;
+                } embedded;
+        } old_new;
+        uint32_t         extents_file_size;  /* in bytes, block size multiple */
+        HfsExtDataRec    extents_file_rec;
+        uint32_t         catalog_file_size;  /* in bytes, block size multiple */
+        HfsExtDataRec    catalog_file_rec;
+};
+typedef struct _HfsMasterDirectoryBlock HfsMasterDirectoryBlock;
+
+/* B*-Tree Node Descriptor */
+struct __attribute__ ((packed)) _HfsNodeDescriptor {
+        uint32_t        next;
+        uint32_t        previous;
+        int8_t          type;
+        uint8_t         height;
+        uint16_t        rec_nb;
+        uint16_t        reserved;
+};
+typedef struct _HfsNodeDescriptor HfsNodeDescriptor;
+
+/* Header record of a whole B*-Tree */
+struct __attribute__ ((packed)) _HfsHeaderRecord {
+        uint16_t        depth;
+        uint32_t        root_node;
+        uint32_t        leaf_records;
+        uint32_t        first_leaf_node;
+        uint32_t        last_leaf_node;
+        uint16_t        node_size;
+        uint16_t        max_key_len;
+        uint32_t        total_nodes;
+        uint32_t        free_nodes;
+        int8_t          reserved[76];
+};
+typedef struct _HfsHeaderRecord HfsHeaderRecord;
+
+/* Catalog key for B*-Tree lookup in the catalog file */
+struct __attribute__ ((packed)) _HfsCatalogKey {
+        uint8_t         key_length; /* length of the key without key_length */
+        uint8_t         reserved;
+        uint32_t        parent_ID;
+        uint8_t         name_length;
+        char            name[31];   /* in fact physicaly 1 upto 31 */
+};
+typedef struct _HfsCatalogKey HfsCatalogKey;
+
+/* Extents overflow key for B*-Tree lookup */
+struct __attribute__ ((packed)) _HfsExtentKey {
+        uint8_t         key_length; /* length of the key without key_length */
+        uint8_t         type;       /* data or ressource fork */
+        uint32_t        file_ID;
+        uint16_t        start;
+};
+typedef struct _HfsExtentKey HfsExtentKey;
+
+/* Catalog subdata case directory */
+struct __attribute__ ((packed)) _HfsDir {
+        uint16_t        flags;
+        uint16_t        valence;        /* number of files in this directory */
+        uint32_t        dir_ID;
+        uint32_t        create_date;
+        uint32_t        modify_date;
+        uint32_t        backup_date;
+        int8_t          DInfo[16];      /* used by Finder, handle as reserved */
+        int8_t          DXInfo[16];     /* used by Finder, handle as reserved */
+        uint32_t        reserved[4];
+};
+typedef struct _HfsDir HfsDir;
+
+/* Catalog subdata case file */
+struct __attribute__ ((packed)) _HfsFile {
+        int8_t          flags;
+        int8_t          type;           /* should be 0 */
+        int8_t          FInfo[16];      /* used by Finder, handle as reserved */
+        uint32_t        file_ID;
+        uint16_t        data_start_block;
+        uint32_t        data_sz_byte;
+        uint32_t        data_sz_block;
+        uint16_t        res_start_block;
+        uint32_t        res_sz_byte;
+        uint32_t        res_sz_block;
+        uint32_t        create_date;
+        uint32_t        modify_date;
+        uint32_t        backup_date;
+        int8_t          FXInfo[16];     /* used by Finder, handle as reserved */
+        uint16_t        clump_size;
+        HfsExtDataRec   extents_data;
+        HfsExtDataRec   extents_res;
+        uint32_t        reserved;
+};
+typedef struct _HfsFile HfsFile;
+
+/* Catalog subdata case directory thread */
+struct __attribute__ ((packed)) _HfsDirTh {
+        uint32_t        reserved[2];
+        uint32_t        parent_ID;
+        int8_t          name_length;
+        char            name[31];
+};
+typedef struct _HfsDirTh HfsDirTh;
+
+/* Catalog subdata case file thread */
+typedef struct _HfsDirTh HfsFileTh;        /* same as directory thread */
+
+/* Catalog data */
+struct __attribute__ ((packed)) _HfsCatalog {
+        int8_t          type;
+        int8_t          reserved;
+        union {
+                HfsDir       dir;
+                HfsFile      file;
+                HfsDirTh     dir_th;
+                HfsFileTh    file_th;
+        } sel;
+};
+typedef struct _HfsCatalog HfsCatalog;
+
+
+
+/* ------------------------------------ */
+/* --      HFS+ DATA STRUCTURES      -- */
+/* ------------------------------------ */
+
+/* documented since 2004 in tn1150 */
+struct __attribute__ ((packed)) _HfsPPerms {
+        uint32_t        owner_ID;
+        uint32_t        group_ID;
+        uint32_t        permissions;
+        uint32_t        special_devices;
+};
+typedef struct _HfsPPerms HfsPPerms;
+
+/* HFS+ extent descriptor*/
+struct __attribute__ ((packed)) _HfsPExtDescriptor {
+        uint32_t        start_block;
+        uint32_t        block_count;
+};
+typedef struct _HfsPExtDescriptor HfsPExtDescriptor;
+typedef HfsPExtDescriptor HfsPExtDataRec[HFSP_EXT_NB];
+
+/* HFS+ fork data structure */
+struct __attribute__ ((packed)) _HfsPForkData {
+        uint64_t        logical_size;
+        uint32_t        clump_size;
+        uint32_t        total_blocks;
+        HfsPExtDataRec  extents;
+};
+typedef struct _HfsPForkData HfsPForkData;
+
+/* HFS+ catalog node ID */
+typedef uint32_t HfsPNodeID;
+
+/* HFS+ file names */
+typedef uint16_t unichar;
+struct __attribute__ ((packed)) _HfsPUniStr255 {
+        uint16_t        length;
+        unichar         unicode[255];        /* 1 upto 255 */
+};
+typedef struct _HfsPUniStr255 HfsPUniStr255;
+
+/* HFS+ volume header */
+struct __attribute__ ((packed)) _HfsPVolumeHeader {
+        uint16_t        signature;
+        uint16_t        version;
+        uint32_t        attributes;
+        uint32_t        last_mounted_version;
+        uint32_t        journal_info_block;
+        
+        uint32_t        create_date;
+        uint32_t        modify_date;
+        uint32_t        backup_date;
+        uint32_t        checked_date;
+        
+        uint32_t        file_count;
+        uint32_t        dir_count;
+        
+        uint32_t        block_size;
+        uint32_t        total_blocks;
+        uint32_t        free_blocks;
+        
+        uint32_t        next_allocation;
+        uint32_t        res_clump_size;
+        uint32_t        data_clump_size;
+        HfsPNodeID      next_catalog_ID;
+        
+        uint32_t        write_count;
+        uint64_t        encodings_bitmap;
+        
+        uint8_t         finder_info[32];
+        
+        HfsPForkData    allocation_file;
+        HfsPForkData    extents_file;
+        HfsPForkData    catalog_file;
+        HfsPForkData    attributes_file;
+        HfsPForkData    startup_file;
+};
+typedef struct _HfsPVolumeHeader HfsPVolumeHeader;
+
+/* HFS+ B-Tree Node Descriptor. Same as HFS btree. */
+struct __attribute__ ((packed)) _HfsPNodeDescriptor {
+        uint32_t        next;
+        uint32_t        previous;
+        int8_t          type;
+        uint8_t         height;
+        uint16_t        rec_nb;
+        uint16_t        reserved;
+};
+typedef struct _HfsPNodeDescriptor HfsPNodeDescriptor;
+
+/* Header record of a whole HFS+ B-Tree. */
+struct __attribute__ ((packed)) _HfsPHeaderRecord {
+        uint16_t        depth;
+        uint32_t        root_node;
+        uint32_t        leaf_records;
+        uint32_t        first_leaf_node;
+        uint32_t        last_leaf_node;
+        uint16_t        node_size;
+        uint16_t        max_key_len;
+        uint32_t        total_nodes;
+        uint32_t        free_nodes;        /* same as hfs btree until here */
+        uint16_t        reserved1;
+        
+        uint32_t        clump_size;
+        uint8_t         btree_type;        /* must be 0 for HFS+ B-Tree */
+        uint8_t         key_compare_type; /* hfsx => 0xCF = case folding */
+                                          /*         0xBC = binary compare */
+                                          /* otherwise, reserved */
+        uint32_t        attributes;
+        uint32_t        reserved3[16];
+};
+typedef struct _HfsPHeaderRecord HfsPHeaderRecord;
+
+/* Catalog key for B-Tree lookup in the HFS+ catalog file */
+struct __attribute__ ((packed)) _HfsPCatalogKey {
+        uint16_t        key_length;
+        HfsPNodeID      parent_ID;
+        HfsPUniStr255   node_name;
+};
+typedef struct _HfsPCatalogKey HfsPCatalogKey;
+
+/* HFS+ catalog subdata case dir */
+struct __attribute__ ((packed)) _HfsPDir {
+        uint16_t        flags;
+        uint32_t        valence;
+        HfsPNodeID      dir_ID;
+        uint32_t        create_date;
+        uint32_t        modify_date;
+        uint32_t        attrib_mod_date;
+        uint32_t        access_date;
+        uint32_t        backup_date;
+        HfsPPerms       permissions;
+        int8_t          DInfo[16];        /* used by Finder, handle as reserved */
+        int8_t          DXInfo[16];       /* used by Finder, handle as reserved */
+        uint32_t        text_encoding;
+        uint32_t        reserved;
+};
+typedef struct _HfsPDir HfsPDir;
+
+/* HFS+ catalog subdata case file */
+struct __attribute__ ((packed)) _HfsPFile {
+        uint16_t        flags;
+        uint32_t        reserved1;
+        HfsPNodeID      file_ID;
+        uint32_t        create_date;
+        uint32_t        modify_date;
+        uint32_t        attrib_mod_date;
+        uint32_t        access_date;
+        uint32_t        backup_date;
+        HfsPPerms       permissions;
+        int8_t          FInfo[16];        /* used by Finder, handle as reserved */
+        int8_t          FXInfo[16];       /* used by Finder, handle as reserved */
+        uint32_t        text_encoding;
+        uint32_t        reserved2;
+        
+        HfsPForkData    data_fork;
+        HfsPForkData    res_fork;
+};
+typedef struct _HfsPFile HfsPFile;
+
+/* HFS+ catalog subdata case thread */
+struct __attribute__ ((packed)) _HfsPThread {
+        int16_t         reserved;
+        HfsPNodeID      parent_ID;
+        HfsPUniStr255   node_name;
+};
+typedef struct _HfsPThread HfsPDirTh;
+typedef struct _HfsPThread HfsPFileTh;
+
+/* HFS+ Catalog leaf data */
+struct __attribute__ ((packed)) _HfsPCatalog {
+        int16_t         type;
+        union {
+                HfsPDir         dir;
+                HfsPFile        file;
+                HfsPDirTh       dir_th;
+                HfsPFileTh      file_th;
+        } sel;
+};
+typedef struct _HfsPCatalog HfsPCatalog;
+
+/* HFS+ extents file key */
+struct __attribute__ ((packed)) _HfsPExtentKey {
+        uint16_t        key_length;
+        uint8_t         type;
+        uint8_t         pad;
+        HfsPNodeID      file_ID;
+        uint32_t        start;
+};
+typedef struct _HfsPExtentKey HfsPExtentKey;
+
+/* extent file data is HfsPExtDataRec */
+
+/* Fork data attribute file */
+struct __attribute__ ((packed)) _HfsPForkDataAttr {
+        uint32_t        record_type;
+        uint32_t        reserved;
+        union __attribute__ ((packed)) {
+                HfsPForkData        fork;
+                HfsPExtDataRec      extents;
+        } fork_res;
+};
+typedef struct _HfsPForkDataAttr HfsPForkDataAttr;
+
+
+/* ----------- Journal data structures ----------- */
+
+/* Info block : stored in a block # defined in the VH */
+struct __attribute__ ((packed)) _HfsJJournalInfoBlock {
+        uint32_t        flags;
+        uint32_t        device_signature[8];
+        uint64_t        offset;
+        uint64_t        size;
+        uint32_t        reserved[32];
+};
+typedef struct _HfsJJournalInfoBlock HfsJJournalInfoBlock;
+
+struct __attribute__ ((packed)) _HfsJJournalHeader {
+        uint32_t        magic;
+        uint32_t        endian;
+        uint64_t        start;
+        uint64_t        end;
+        uint64_t        size;
+        uint32_t        blhdr_size;
+        uint32_t        checksum;
+        uint32_t        jhdr_size;
+};
+typedef struct _HfsJJournalHeader HfsJJournalHeader;
+
+struct __attribute__ ((packed)) _HfsJBlockInfo {
+        uint64_t        bnum;          /* sector number */
+        uint32_t        bsize;         /* size in bytes */
+        uint32_t        next;
+};
+typedef struct _HfsJBlockInfo HfsJBlockInfo;
+
+struct __attribute__ ((packed)) _HfsJBlockListHeader {
+        uint16_t        max_blocks;    /* reserved */
+        uint16_t        num_blocks;
+        uint32_t        bytes_used;
+        uint32_t        checksum;
+        uint32_t        pad;
+        HfsJBlockInfo   binfo[1];
+};
+typedef struct _HfsJBlockListHeader HfsJBlockListHeader;
+
+
+
+/* ---------------------------------------- */
+/* --      INTERNAL DATA STRUCTURES      -- */
+/* ---------------------------------------- */
+
+/* Data of an opened HFS file */
+struct _HfsPrivateFile {
+        PedSector       sect_nb;
+        PedFileSystem*  fs;
+        uint32_t        CNID;          /* disk order (BE) */
+        HfsExtDataRec   first;         /* disk order (BE) */
+        HfsExtDataRec   cache;         /* disk order (BE) */
+        uint16_t        start_cache;   /* CPU order */
+};
+typedef struct _HfsPrivateFile HfsPrivateFile;
+
+/* To store bad block list */
+struct _HfsPrivateLinkExtent {
+        HfsExtDescriptor                 extent;
+        struct _HfsPrivateLinkExtent*    next;
+};
+typedef struct _HfsPrivateLinkExtent HfsPrivateLinkExtent;
+
+/* HFS Filesystem specific data */
+struct _HfsPrivateFSData {
+        uint8_t                     alloc_map[(1<<16) / 8];
+        HfsMasterDirectoryBlock*    mdb;
+        HfsPrivateFile*             extent_file;
+        HfsPrivateFile*             catalog_file;
+        HfsPrivateLinkExtent*       bad_blocks_xtent_list;
+        unsigned int                bad_blocks_xtent_nb;
+        char                        bad_blocks_loaded;
+};
+typedef struct _HfsPrivateFSData HfsPrivateFSData;
+
+/* Generic btree key */
+struct __attribute__ ((packed)) _HfsPrivateGenericKey {
+        uint8_t         key_length;
+        uint8_t         key_content[1];                /* we use 1 as a minimum size */
+};
+typedef struct _HfsPrivateGenericKey HfsPrivateGenericKey;
+
+/* ----- HFS+ ----- */
+
+/* Data of an opened HFS file */
+struct _HfsPPrivateFile {
+        PedSector       sect_nb;
+        PedFileSystem*  fs;
+        HfsPNodeID      CNID;          /* disk order (BE) */
+        HfsPExtDataRec  first;         /* disk order (BE) */
+        HfsPExtDataRec  cache;         /* disk order (BE) */
+        uint32_t        start_cache;   /* CPU order */
+};
+typedef struct _HfsPPrivateFile HfsPPrivateFile;
+
+struct _HfsPPrivateExtent {
+        PedSector       start_sector;
+        PedSector       sector_count;
+};
+typedef struct _HfsPPrivateExtent HfsPPrivateExtent;
+
+/* To store bad block list */
+struct _HfsPPrivateLinkExtent {
+        HfsPExtDescriptor                 extent;
+        struct _HfsPPrivateLinkExtent*    next;
+};
+typedef struct _HfsPPrivateLinkExtent HfsPPrivateLinkExtent;
+
+/* HFS+ file system specific data */
+struct _HfsPPrivateFSData {
+        PedFileSystem*          wrapper;      /* NULL if hfs+ is not embedded */
+        PedGeometry*            plus_geom;    /* Geometry of HFS+ _volume_ */
+        uint8_t*                alloc_map;
+        uint8_t*                dirty_alloc_map;
+        HfsPVolumeHeader*       vh;
+        HfsPPrivateFile*        extents_file;
+        HfsPPrivateFile*        catalog_file;
+        HfsPPrivateFile*        attributes_file;
+        HfsPPrivateFile*        allocation_file;
+        HfsPPrivateLinkExtent*  bad_blocks_xtent_list;
+        uint32_t                jib_start_block;
+        uint32_t                jl_start_block;
+        unsigned int            bad_blocks_xtent_nb;
+        char                    bad_blocks_loaded;
+        char                    free_geom;    /* 1 = plus_geom must be freed */
+};
+typedef struct _HfsPPrivateFSData HfsPPrivateFSData;
+
+/* Generic + btree key */
+struct __attribute__ ((packed)) _HfsPPrivateGenericKey {
+        uint16_t        key_length;
+        uint8_t         key_content[1];       /* we use 1 as a minimum size */
+};
+typedef struct _HfsPPrivateGenericKey HfsPPrivateGenericKey;
+
+/* ---- common ---- */
+
+/* node and lead record reference for a BTree search */
+struct _HfsCPrivateLeafRec {
+        unsigned int    node_size;     /* in sectors */
+        unsigned int    node_number;
+        unsigned int    record_pos;
+        unsigned int    record_number;
+};
+typedef struct _HfsCPrivateLeafRec HfsCPrivateLeafRec;
+
+extern uint8_t*    hfs_block;
+extern uint8_t*    hfsp_block;
+extern unsigned    hfs_block_count;
+extern unsigned    hfsp_block_count;
+
+#endif /* _HFS_H */
diff --git a/parted-1.8.7/libparted/fs/hfs/journal.c b/parted-1.8.7/libparted/fs/hfs/journal.c
new file mode 100644
index 0000000..5d26216
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/hfs/journal.c
@@ -0,0 +1,390 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef DISCOVER_ONLY
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/endian.h>
+#include <parted/debug.h>
+#include <stdint.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#include "hfs.h"
+#include "reloc_plus.h"
+
+#include "journal.h"
+
+static int hfsj_vh_replayed = 0;
+static int is_le = 0;
+
+static uint32_t
+hfsj_calc_checksum(uint8_t *ptr, int len)
+{
+	int	 i;
+	uint32_t cksum=0;
+
+	for (i=0; i < len; i++, ptr++) {
+		cksum = (cksum << 8) ^ (cksum + *ptr);
+	}
+
+	return (~cksum);
+}
+
+int
+hfsj_update_jib(PedFileSystem* fs, uint32_t block)
+{
+	HfsPPrivateFSData* 	priv_data = (HfsPPrivateFSData*)
+						    fs->type_specific;
+
+	priv_data->vh->journal_info_block = PED_CPU_TO_BE32(block);
+
+	if (!hfsplus_update_vh (fs))
+		return 0;
+
+	priv_data->jib_start_block = block;
+	return 1;
+}
+
+int
+hfsj_update_jl(PedFileSystem* fs, uint32_t block)
+{
+	uint8_t			buf[PED_SECTOR_SIZE_DEFAULT];
+	PedSector		sector;
+	uint64_t		offset;
+	HfsPPrivateFSData* 	priv_data = (HfsPPrivateFSData*)
+						    fs->type_specific;
+	HfsJJournalInfoBlock*	jib;
+	int			binsect;
+
+	binsect = HFS_32_TO_CPU(priv_data->vh->block_size, is_le) / PED_SECTOR_SIZE_DEFAULT;
+	sector = (PedSector) priv_data->jib_start_block * binsect;
+	if (!ped_geometry_read(priv_data->plus_geom, buf, sector, 1))
+		return 0;
+	jib = (HfsJJournalInfoBlock*) buf;
+
+	offset = (uint64_t)block * PED_SECTOR_SIZE_DEFAULT * binsect;
+	jib->offset = HFS_CPU_TO_64(offset, is_le);
+
+	if (!ped_geometry_write(priv_data->plus_geom, buf, sector, 1)
+	    || !ped_geometry_sync(priv_data->plus_geom))
+		return 0;
+
+	priv_data->jl_start_block = block;
+	return 1;
+}
+
+/* Return the sector in the journal that is after the area read */
+/* or 0 on error */
+static PedSector
+hfsj_journal_read(PedGeometry* geom, HfsJJournalHeader* jh,
+		  PedSector journ_sect, PedSector journ_length,
+		  PedSector read_sect, unsigned int nb_sect,
+		  void* buf)
+{
+	int r;
+
+	while (nb_sect--) {
+		r = ped_geometry_read(geom, buf, journ_sect + read_sect, 1);
+		if (!r) return 0;
+
+		buf = ((uint8_t*)buf) + PED_SECTOR_SIZE_DEFAULT;
+		read_sect++;
+		if (read_sect == journ_length)
+			read_sect = 1; /* skip journal header
+					  which is asserted to be 
+					  1 sector long */
+	}
+
+	return read_sect;
+}
+
+static int
+hfsj_replay_transaction(PedFileSystem* fs, HfsJJournalHeader* jh,
+			PedSector jsector, PedSector jlength)
+{
+	PedSector		start, sector;
+	HfsPPrivateFSData* 	priv_data = (HfsPPrivateFSData*)
+						fs->type_specific;
+	HfsJBlockListHeader*	blhdr;
+	uint8_t*		block;
+	unsigned int		blhdr_nbsect;
+	int			i, r;
+	uint32_t		cksum, size;
+
+	blhdr_nbsect = HFS_32_TO_CPU(jh->blhdr_size, is_le) / PED_SECTOR_SIZE_DEFAULT;
+	blhdr = (HfsJBlockListHeader*)
+		  ped_malloc (blhdr_nbsect * PED_SECTOR_SIZE_DEFAULT);
+	if (!blhdr) return 0;
+
+	start = HFS_64_TO_CPU(jh->start, is_le) / PED_SECTOR_SIZE_DEFAULT;
+	do {
+		start = hfsj_journal_read(priv_data->plus_geom, jh, jsector,
+					  jlength, start, blhdr_nbsect, blhdr);
+		if (!start) goto err_replay;
+		
+		cksum = HFS_32_TO_CPU(blhdr->checksum, is_le);
+		blhdr->checksum = 0;
+		if (cksum!=hfsj_calc_checksum((uint8_t*)blhdr, sizeof(*blhdr))){
+			ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_CANCEL,
+				_("Bad block list header checksum."));
+			goto err_replay;
+		}
+		blhdr->checksum = HFS_CPU_TO_32(cksum, is_le);
+		
+		for (i=1; i < HFS_16_TO_CPU(blhdr->num_blocks, is_le); ++i) {
+			size = HFS_32_TO_CPU(blhdr->binfo[i].bsize, is_le);
+			sector = HFS_64_TO_CPU(blhdr->binfo[i].bnum, is_le);
+			if (!size) continue;
+			if (size % PED_SECTOR_SIZE_DEFAULT) {
+				ped_exception_throw(
+					PED_EXCEPTION_ERROR,
+					PED_EXCEPTION_CANCEL,
+					_("Invalid size of a transaction "
+					  "block while replaying the journal "
+					  "(%i bytes)."),
+					size);
+				goto err_replay;
+			}
+			block = (uint8_t*) ped_malloc(size);
+			if (!block) goto err_replay;
+			start = hfsj_journal_read(priv_data->plus_geom, jh,
+						  jsector, jlength, start,
+						  size / PED_SECTOR_SIZE_DEFAULT,
+						  block);
+			if (!start) {
+				ped_free (block);
+				goto err_replay;
+			}
+			/* the sector stored in the journal seems to be
+			   relative to the begin of the block device which
+			   contains the hfs+ journaled volume */
+			if (sector != ~0LL)
+				r = ped_geometry_write (fs->geom, block, sector,
+							size / PED_SECTOR_SIZE_DEFAULT);
+			else
+				r = 1;
+			ped_free (block);
+			/* check if wrapper mdb or vh with no wrapper has
+			   changed */
+			if (   (sector != ~0LL)
+			    && (2 >= sector)
+			    && (2 < sector + size / PED_SECTOR_SIZE_DEFAULT) )
+				hfsj_vh_replayed = 1;
+			/* check if vh of embedded hfs+ has changed */
+			if (   (sector != ~0LL)
+			    && (priv_data->plus_geom != fs->geom)
+			    && (sector
+			        + fs->geom->start
+				- priv_data->plus_geom->start <= 2)
+			    && (sector
+			        + size / PED_SECTOR_SIZE_DEFAULT
+				+ fs->geom->start
+				- priv_data->plus_geom->start > 2) )
+				hfsj_vh_replayed = 1;
+			if (!r) goto err_replay;
+		}
+	} while (blhdr->binfo[0].next);
+
+	jh->start = HFS_CPU_TO_64(start * PED_SECTOR_SIZE_DEFAULT, is_le);
+
+	ped_free (blhdr);
+	return (ped_geometry_sync (fs->geom));
+
+err_replay:
+	ped_free (blhdr);
+	return 0;
+}
+
+/* 0 => Failure, don't continue to open ! */
+/* 1 => Success, the journal has been completly replayed, or don't need to */
+int
+hfsj_replay_journal(PedFileSystem* fs)
+{
+	uint8_t			buf[PED_SECTOR_SIZE_DEFAULT];
+	PedSector		sector, length;
+	HfsPPrivateFSData* 	priv_data = (HfsPPrivateFSData*)
+						    fs->type_specific;
+	HfsJJournalInfoBlock*	jib;
+	HfsJJournalHeader*	jh;
+	int			binsect;
+	uint32_t		cksum;
+
+	binsect = PED_BE32_TO_CPU(priv_data->vh->block_size) / PED_SECTOR_SIZE_DEFAULT;
+	priv_data->jib_start_block =
+		PED_BE32_TO_CPU(priv_data->vh->journal_info_block);
+	sector  = (PedSector) priv_data->jib_start_block * binsect;
+	if (!ped_geometry_read(priv_data->plus_geom, buf, sector, 1))
+		return 0;
+	jib = (HfsJJournalInfoBlock*) buf;
+	
+	if (    (jib->flags & PED_CPU_TO_BE32(1 << HFSJ_JOURN_IN_FS))
+	    && !(jib->flags & PED_CPU_TO_BE32(1 << HFSJ_JOURN_OTHER_DEV)) ) {
+		priv_data->jl_start_block = HFS_64_TO_CPU(jib->offset, is_le) 
+					    / ( PED_SECTOR_SIZE_DEFAULT * binsect );
+	}
+
+	if (jib->flags & PED_CPU_TO_BE32(1 << HFSJ_JOURN_NEED_INIT))
+		return 1;
+
+	if (  !(jib->flags & PED_CPU_TO_BE32(1 << HFSJ_JOURN_IN_FS))
+	    || (jib->flags & PED_CPU_TO_BE32(1 << HFSJ_JOURN_OTHER_DEV)) ) {
+		ped_exception_throw (
+			PED_EXCEPTION_NO_FEATURE,
+			PED_EXCEPTION_CANCEL,
+			_("Journal stored outside of the volume are "
+			  "not supported.  Try to desactivate the "
+			  "journal and run Parted again."));
+		return 0;
+	}
+
+	if (   (PED_BE64_TO_CPU(jib->offset) % PED_SECTOR_SIZE_DEFAULT)
+	    || (PED_BE64_TO_CPU(jib->size)   % PED_SECTOR_SIZE_DEFAULT) ) {
+		ped_exception_throw (
+			PED_EXCEPTION_NO_FEATURE,
+			PED_EXCEPTION_CANCEL,
+			_("Journal offset or size is not multiple of "
+			  "the sector size."));
+		return 0;
+	}
+
+	sector = PED_BE64_TO_CPU(jib->offset) / PED_SECTOR_SIZE_DEFAULT;
+	length = PED_BE64_TO_CPU(jib->size)   / PED_SECTOR_SIZE_DEFAULT;
+
+	jib = NULL;
+	if (!ped_geometry_read(priv_data->plus_geom, buf, sector, 1))
+		return 0;
+	jh = (HfsJJournalHeader*) buf;
+
+	if (jh->endian == PED_LE32_TO_CPU(HFSJ_ENDIAN_MAGIC))
+	    is_le = 1;
+
+	if (   (jh->magic  != HFS_32_TO_CPU(HFSJ_HEADER_MAGIC, is_le))
+	    || (jh->endian != HFS_32_TO_CPU(HFSJ_ENDIAN_MAGIC, is_le)) ) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Incorrect magic values in the journal header."));
+		return 0;
+	}
+
+	if ( (HFS_64_TO_CPU(jh->size, is_le)%PED_SECTOR_SIZE_DEFAULT)
+	  || (HFS_64_TO_CPU(jh->size, is_le)/PED_SECTOR_SIZE_DEFAULT
+		  != (uint64_t)length) ) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Journal size mismatch between journal info block "
+			  "and journal header."));
+		return 0;
+	}
+
+	if (   (HFS_64_TO_CPU(jh->start, is_le) % PED_SECTOR_SIZE_DEFAULT)
+	    || (HFS_64_TO_CPU(jh->end, is_le)   % PED_SECTOR_SIZE_DEFAULT)
+	    || (HFS_32_TO_CPU(jh->blhdr_size, is_le) % PED_SECTOR_SIZE_DEFAULT)
+	    || (HFS_32_TO_CPU(jh->jhdr_size, is_le)  % PED_SECTOR_SIZE_DEFAULT) ) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Some header fields are not multiple of the sector "
+			  "size."));
+		return 0;
+	}
+
+	if (HFS_32_TO_CPU(jh->jhdr_size, is_le) != PED_SECTOR_SIZE_DEFAULT) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("The sector size stored in the journal is not 512 "
+			  "bytes.  Parted only supports 512 bytes length "
+			  "sectors."));
+		return 0;	
+	}
+
+	cksum = HFS_32_TO_CPU(jh->checksum, is_le);
+	jh->checksum = 0;
+	if (cksum != hfsj_calc_checksum((uint8_t*)jh, sizeof(*jh))) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Bad journal checksum."));
+		return 0;
+	}
+	jh->checksum = HFS_CPU_TO_32(cksum, is_le);
+
+	/* The 2 following test are in the XNU Darwin source code */
+	/* so I assume they're needed */
+	if (jh->start == jh->size)
+		jh->start = HFS_CPU_TO_64(PED_SECTOR_SIZE_DEFAULT, is_le);
+	if (jh->end   == jh->size)
+		jh->start = HFS_CPU_TO_64(PED_SECTOR_SIZE_DEFAULT, is_le);
+
+	if (jh->start == jh->end)
+		return 1;
+
+	if (ped_exception_throw (
+		PED_EXCEPTION_WARNING,
+		PED_EXCEPTION_FIX | PED_EXCEPTION_CANCEL,
+		_("The journal is not empty.  Parted must replay the "
+		  "transactions before opening the file system.  This will "
+		  "modify the file system."))
+			!= PED_EXCEPTION_FIX)
+		return 0;
+
+	while (jh->start != jh->end) {
+		/* Replay one complete transaction */
+		if (!hfsj_replay_transaction(fs, jh, sector, length))
+			return 0;
+
+		/* Recalculate cksum of the journal header */
+		jh->checksum = 0; /* need to be 0 while calculating the cksum */
+		cksum = hfsj_calc_checksum((uint8_t*)jh, sizeof(*jh));
+		jh->checksum = HFS_CPU_TO_32(cksum, is_le);
+
+		/* Update the Journal Header */
+		if (!ped_geometry_write(priv_data->plus_geom, buf, sector, 1)
+		    || !ped_geometry_sync(priv_data->plus_geom))
+			return 0;
+	}
+
+	if (hfsj_vh_replayed) {
+		/* probe could have reported incorrect info ! */
+		/* is there a way to ask parted to quit ? */
+		ped_exception_throw(
+			PED_EXCEPTION_WARNING,
+			PED_EXCEPTION_OK,
+			_("The volume header or the master directory block has "
+			  "changed while replaying the journal.  You should "
+			  "restart Parted."));
+		return 0;
+	}
+
+	return 1;
+}
+
+#endif /* DISCOVER_ONLY */
diff --git a/parted-1.8.7/libparted/fs/hfs/journal.h b/parted-1.8.7/libparted/fs/hfs/journal.h
new file mode 100644
index 0000000..b8bea61
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/hfs/journal.h
@@ -0,0 +1,45 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2004 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef _JOURNAL_H
+#define _JOURNAL_H
+
+#include <parted/parted.h>
+#include <parted/endian.h>
+#include <parted/debug.h>
+
+#include "hfs.h"
+
+int
+hfsj_replay_journal(PedFileSystem* fs);
+
+int
+hfsj_update_jib(PedFileSystem* fs, uint32_t block);
+
+int
+hfsj_update_jl(PedFileSystem* fs, uint32_t block);
+
+#define HFS_16_TO_CPU(x, is_little_endian) ((is_little_endian) ? (uint16_t)PED_LE16_TO_CPU(x) : (uint16_t)PED_BE16_TO_CPU(x))
+#define HFS_32_TO_CPU(x, is_little_endian) ((is_little_endian) ? (uint32_t)PED_LE32_TO_CPU(x) : (uint32_t)PED_BE32_TO_CPU(x))
+#define HFS_64_TO_CPU(x, is_little_endian) ((is_little_endian) ? (uint64_t)PED_LE64_TO_CPU(x) : (uint64_t)PED_BE64_TO_CPU(x))
+#define HFS_CPU_TO_16(x, is_little_endian) ((is_little_endian) ? (uint16_t)PED_CPU_TO_LE16(x) : (uint16_t)PED_CPU_TO_BE16(x))
+#define HFS_CPU_TO_32(x, is_little_endian) ((is_little_endian) ? (uint32_t)PED_CPU_TO_LE32(x) : (uint32_t)PED_CPU_TO_BE32(x))
+#define HFS_CPU_TO_64(x, is_little_endian) ((is_little_endian) ? (uint64_t)PED_CPU_TO_LE64(x) : (uint64_t)PED_CPU_TO_BE64(x))
+
+#endif /* _JOURNAL_H */
diff --git a/parted-1.8.7/libparted/fs/hfs/probe.c b/parted-1.8.7/libparted/fs/hfs/probe.c
new file mode 100644
index 0000000..b9232f9
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/hfs/probe.c
@@ -0,0 +1,231 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/endian.h>
+#include <parted/debug.h>
+#include <stdint.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#include "hfs.h"
+
+#include "probe.h"
+
+int
+hfsc_can_use_geom (PedGeometry* geom)
+{
+	PedDevice* dev;
+
+	dev = geom->dev;
+	PED_ASSERT (geom != NULL, return 0);
+	PED_ASSERT (dev != NULL, return 0);
+
+	if (dev->sector_size != PED_SECTOR_SIZE_DEFAULT) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Parted can't use HFS file systems on disks "
+			  "with a sector size not equal to %d bytes."),
+			(int)PED_SECTOR_SIZE_DEFAULT );
+		return 0;
+	}
+
+	return 1;
+}
+
+/* Probe an HFS volume, detecting it even if
+it is in fact a wrapper to an HFS+ volume */
+/* Used by hfsplus_probe and hfs_probe */
+PedGeometry*
+hfs_and_wrapper_probe (PedGeometry* geom)
+{
+	uint8_t		buf[PED_SECTOR_SIZE_DEFAULT];
+	HfsMasterDirectoryBlock	*mdb;
+	PedGeometry*	geom_ret;
+	PedSector	search, max;
+
+	PED_ASSERT (geom != NULL, return NULL);
+	PED_ASSERT (hfsc_can_use_geom (geom), return NULL);
+
+	mdb = (HfsMasterDirectoryBlock *) buf;
+
+	/* is 5 an intelligent value ? */
+	if ((geom->length < 5)
+	    || (!ped_geometry_read (geom, buf, 2, 1))
+	    || (mdb->signature != PED_CPU_TO_BE16 (HFS_SIGNATURE)) )
+		return NULL;
+
+	search = ((PedSector) PED_BE16_TO_CPU (mdb->start_block)
+		  + ((PedSector) PED_BE16_TO_CPU (mdb->total_blocks)
+		     * (PED_BE32_TO_CPU (mdb->block_size) / PED_SECTOR_SIZE_DEFAULT )));
+	max = search + (PED_BE32_TO_CPU (mdb->block_size) / PED_SECTOR_SIZE_DEFAULT);
+	if (!(geom_ret = ped_geometry_new (geom->dev, geom->start, search + 2)))
+		return NULL;
+
+	for (; search < max; search++) {
+		if (!ped_geometry_set (geom_ret, geom_ret->start, search + 2)
+		    || !ped_geometry_read (geom_ret, buf, search, 1))
+			break;
+		if (mdb->signature == PED_CPU_TO_BE16 (HFS_SIGNATURE))
+			return geom_ret;
+	}
+
+	ped_geometry_destroy (geom_ret);
+	return NULL;
+}
+
+PedGeometry*
+hfsplus_probe (PedGeometry* geom)
+{
+	PedGeometry*	geom_ret;
+	uint8_t		buf[PED_SECTOR_SIZE_DEFAULT];
+
+	PED_ASSERT (geom != NULL, return NULL);
+
+	if (!hfsc_can_use_geom (geom))
+		return NULL;
+
+	if ((geom_ret = hfs_and_wrapper_probe(geom))) {
+		/* HFS+ is embedded in an HFS volume ? */
+		HfsMasterDirectoryBlock	*mdb;
+		mdb = (HfsMasterDirectoryBlock *) buf;
+
+		if (!ped_geometry_read (geom, buf, 2, 1)
+		    || (mdb->old_new.embedded.signature
+			!= PED_CPU_TO_BE16 (HFSP_SIGNATURE))) {
+			ped_geometry_destroy (geom_ret);
+			return NULL;
+		} else
+			return geom_ret;
+	} else {
+		/* This is a standalone HFS+ volume ? */
+		PedSector	search, max;
+		HfsPVolumeHeader *vh;
+		vh = (HfsPVolumeHeader *) buf;
+
+		if ((geom->length < 5)
+		    || !ped_geometry_read (geom, buf, 2, 1)
+		    || (vh->signature != PED_CPU_TO_BE16 (HFSP_SIGNATURE)))
+			return NULL;
+
+		/* Correct range is indeed [ blocks*sz-2;(blocs+1)*sz-2 ( */
+		/* But previous versions of my implementation used to */
+		/* assume range is [(blocks-1)*sz-1;(blocks*sz) ( */
+		/* (blocks-1)*sz-1 has to be scanned last, because */
+		/* it can belong to a regular file */
+		max = ((PedSector) PED_BE32_TO_CPU (vh->total_blocks) + 1)
+		      * ( PED_BE32_TO_CPU (vh->block_size) / PED_SECTOR_SIZE_DEFAULT )
+		      - 2;
+		search = max - 2 * ( PED_BE32_TO_CPU (vh->block_size)
+				     / PED_SECTOR_SIZE_DEFAULT ) + 2;
+		if (!(geom_ret = ped_geometry_new (geom->dev, geom->start,
+						   search + 2)))
+			return NULL;
+
+		for (; search < max; search++) {
+			if (!ped_geometry_set (geom_ret, geom_ret->start,
+					       search + 2)
+			    || !ped_geometry_read (geom_ret, buf, search, 1))
+				break;
+			if (vh->signature == PED_CPU_TO_BE16 (HFSP_SIGNATURE))
+				return geom_ret;
+		}
+		search = ((PedSector) PED_BE32_TO_CPU (vh->total_blocks) - 1)
+		      * ( PED_BE32_TO_CPU (vh->block_size) / PED_SECTOR_SIZE_DEFAULT )
+		      - 1;
+		if (!ped_geometry_set (geom_ret, geom_ret->start,
+					       search + 2)
+		    || !ped_geometry_read (geom_ret, buf, search, 1)
+		    || vh->signature != PED_CPU_TO_BE16 (HFSP_SIGNATURE)) {
+		    	ped_geometry_destroy (geom_ret);
+			return NULL;
+		} else
+			return geom_ret;
+	}
+}
+
+PedGeometry*
+hfs_probe (PedGeometry* geom)
+{
+	PedGeometry*	geom_base;
+	PedGeometry*	geom_plus = NULL;
+	
+	PED_ASSERT (geom != NULL, return NULL);
+	
+	if (!hfsc_can_use_geom (geom))
+		return NULL;
+
+	if ((geom_base = hfs_and_wrapper_probe(geom))
+	    && (!(geom_plus = hfsplus_probe(geom_base))))
+		return geom_base;
+	else {
+		if (geom_base) ped_geometry_destroy (geom_base);
+		if (geom_plus) ped_geometry_destroy (geom_plus);
+		return NULL;
+	}
+}
+
+PedGeometry*
+hfsx_probe (PedGeometry* geom)
+{
+	PedGeometry*	geom_ret;
+	uint8_t		buf[PED_SECTOR_SIZE_DEFAULT];
+	PedSector	search, max;
+	HfsPVolumeHeader *vh = (HfsPVolumeHeader *) buf;
+
+	PED_ASSERT (geom != NULL, return NULL);
+
+	if (!hfsc_can_use_geom (geom))
+		return NULL;
+
+	if ((geom->length < 5)
+	    || !ped_geometry_read (geom, buf, 2, 1)
+	    || (vh->signature != PED_CPU_TO_BE16 (HFSX_SIGNATURE)))
+		return NULL;
+
+	/* unlike the hfs+ code, which should be kept compatible
+	with my old previous implementations, we only care here
+	about legal alternate VH positions, like TN1150 describes them */
+	max = ((PedSector) PED_BE32_TO_CPU (vh->total_blocks) + 1)
+		      * ( PED_BE32_TO_CPU (vh->block_size) / PED_SECTOR_SIZE_DEFAULT )
+		      - 2;
+	search = max - ( PED_BE32_TO_CPU (vh->block_size) / PED_SECTOR_SIZE_DEFAULT );
+	if (!(geom_ret = ped_geometry_new (geom->dev, geom->start,
+					   search + 2)))
+		return NULL;
+	for (; search < max; search++) {
+		if (!ped_geometry_set (geom_ret, geom_ret->start,
+				       search + 2)
+		    || !ped_geometry_read (geom_ret, buf, search, 1))
+			break;
+		if (vh->signature == PED_CPU_TO_BE16 (HFSX_SIGNATURE))
+			return geom_ret;
+	}
+
+	ped_geometry_destroy (geom_ret);
+	return NULL;
+}
diff --git a/parted-1.8.7/libparted/fs/hfs/probe.h b/parted-1.8.7/libparted/fs/hfs/probe.h
new file mode 100644
index 0000000..3001006
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/hfs/probe.h
@@ -0,0 +1,44 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef _PROBE_H
+#define _PROBE_H
+
+#include <parted/parted.h>
+#include <parted/endian.h>
+#include <parted/debug.h>
+
+#include "hfs.h"
+
+int
+hfsc_can_use_geom (PedGeometry* geom);
+
+PedGeometry*
+hfs_and_wrapper_probe (PedGeometry* geom);
+
+PedGeometry*
+hfsplus_probe (PedGeometry* geom);
+
+PedGeometry*
+hfs_probe (PedGeometry* geom);
+
+PedGeometry*
+hfsx_probe (PedGeometry* geom);
+
+#endif /* _PROBE_H */
diff --git a/parted-1.8.7/libparted/fs/hfs/reloc.c b/parted-1.8.7/libparted/fs/hfs/reloc.c
new file mode 100644
index 0000000..edd15e7
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/hfs/reloc.c
@@ -0,0 +1,671 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef DISCOVER_ONLY
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/endian.h>
+#include <parted/debug.h>
+#include <stdint.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#include "hfs.h"
+#include "file.h"
+#include "advfs.h"
+#include "cache.h"
+
+#include "reloc.h"
+
+/* This function moves data of size blocks starting
+   at block *ptr_fblock to block *ptr_to_fblock */
+/* return new start or -1 on failure */
+static int
+hfs_effect_move_extent (PedFileSystem *fs, unsigned int *ptr_fblock,
+			unsigned int *ptr_to_fblock, unsigned int size)
+{
+	HfsPrivateFSData* 	priv_data = (HfsPrivateFSData*)
+						fs->type_specific;
+	unsigned int		i, ok = 0;
+	unsigned int		next_to_fblock;
+	unsigned int		start, stop;
+
+	PED_ASSERT (hfs_block != NULL, return -1);
+	PED_ASSERT (*ptr_to_fblock <= *ptr_fblock, return -1);
+	/* quiet gcc */
+	next_to_fblock = start = stop = 0;
+
+/*
+	Try to fit the extent AT or _BEFORE_ the wanted place,
+	or then in the gap between dest and source.
+	If failed try to fit the extent after source, for 2 pass relocation
+	The extent is always copied in a non overlapping way
+*/
+
+	/* Backward search */
+	/* 1 pass relocation AT or BEFORE *ptr_to_fblock */
+	if (*ptr_to_fblock != *ptr_fblock) {
+		start = stop = *ptr_fblock < *ptr_to_fblock+size ?
+			       *ptr_fblock : *ptr_to_fblock+size;
+		while (start && stop-start != size) {
+			--start;
+			if (TST_BLOC_OCCUPATION(priv_data->alloc_map,start))
+				stop = start;
+		}
+		ok = (stop-start == size);
+	}
+	
+	/* Forward search */
+	/* 1 pass relocation in the gap merged with 2 pass reloc after source */
+	if (!ok && *ptr_to_fblock != *ptr_fblock) {
+		start = stop = *ptr_to_fblock+1;
+		while (stop < PED_BE16_TO_CPU(priv_data->mdb->total_blocks)
+		       && stop-start != size) {
+			if (TST_BLOC_OCCUPATION(priv_data->alloc_map,stop))
+				start = stop + 1;
+			++stop;
+		}
+		ok = (stop-start == size);
+	}
+
+	/* new non overlapping room has been found ? */
+	if (ok) {
+		/* enough room */
+		unsigned int j;
+		unsigned int start_block =
+			PED_BE16_TO_CPU (priv_data->mdb->start_block );
+		unsigned int block_sz = 
+			(PED_BE32_TO_CPU (priv_data->mdb->block_size)
+			 / PED_SECTOR_SIZE_DEFAULT);
+
+		if (stop > *ptr_to_fblock && stop <= *ptr_fblock)
+			/* Fit in the gap */
+			next_to_fblock = stop;
+		else
+			/* Before or after the gap */
+			next_to_fblock = *ptr_to_fblock;
+
+		/* move blocks */
+		for (i = 0; i < size; /*i+=j*/) {
+			PedSector 	abs_sector;
+			unsigned int	ai;
+
+			j = size - i; j = (j < hfs_block_count) ?
+					   j : hfs_block_count ;
+
+			abs_sector = start_block
+				     + (PedSector) (*ptr_fblock + i) * block_sz;
+			if (!ped_geometry_read (fs->geom, hfs_block, abs_sector,
+						block_sz * j))
+				return -1;
+
+			abs_sector = start_block
+				     + (PedSector) (start + i) * block_sz;
+			if (!ped_geometry_write (fs->geom,hfs_block,abs_sector,
+						 block_sz * j))
+				return -1;
+
+			for (ai = i+j; i < ai; i++) {
+				/* free source block */
+				CLR_BLOC_OCCUPATION(priv_data->alloc_map,
+						    *ptr_fblock + i);
+
+				/* set dest block */
+				SET_BLOC_OCCUPATION(priv_data->alloc_map,
+						    start + i);
+			}
+		}
+		if (!ped_geometry_sync_fast (fs->geom))
+			return -1;
+
+		*ptr_fblock += size;
+		*ptr_to_fblock = next_to_fblock;
+	} else {
+		if (*ptr_fblock != *ptr_to_fblock)
+			/* not enough room, but try to continue */
+			ped_exception_throw (PED_EXCEPTION_WARNING,
+					PED_EXCEPTION_IGNORE,
+					_("An extent has not been relocated."));
+		start = *ptr_fblock;
+		*ptr_fblock = *ptr_to_fblock = start + size;
+	}
+
+	return start;
+}
+
+/* Update MDB */
+/* Return 0 if an error occurred */
+/* Return 1 if everything ok */
+int
+hfs_update_mdb (PedFileSystem *fs)
+{
+	HfsPrivateFSData* 	priv_data = (HfsPrivateFSData*)
+						fs->type_specific;
+	uint8_t			node[PED_SECTOR_SIZE_DEFAULT];
+
+    	if (!ped_geometry_read (fs->geom, node, 2, 1))
+		return 0;
+	memcpy (node, priv_data->mdb, sizeof (HfsMasterDirectoryBlock));
+	if (   !ped_geometry_write (fs->geom, node, 2, 1)
+	    || !ped_geometry_write (fs->geom, node, fs->geom->length - 2, 1)
+	    || !ped_geometry_sync_fast (fs->geom))
+		return 0;
+	return 1;
+}
+
+/* Generic relocator */
+/* replace previous hfs_do_move_* */
+static int
+hfs_do_move (PedFileSystem* fs, unsigned int *ptr_src,
+	     unsigned int *ptr_dest, HfsCPrivateCache* cache,
+	     HfsCPrivateExtent* ref)
+{
+	uint8_t			node[PED_SECTOR_SIZE_DEFAULT];
+	HfsPrivateFSData* 	priv_data = (HfsPrivateFSData*)
+						fs->type_specific;
+	HfsPrivateFile*		file;
+	HfsExtDescriptor*	extent;
+	HfsCPrivateExtent*	move;
+	int			new_start;
+
+	new_start = hfs_effect_move_extent (fs, ptr_src, ptr_dest, 
+					    ref->ext_length);
+	if (new_start == -1) return -1;
+
+	if (ref->ext_start != (unsigned) new_start) {
+		/* Load, modify & save */
+		switch (ref->where) {
+		/******** MDB *********/
+		    case CR_PRIM_CAT :
+			priv_data->catalog_file
+			->first[ref->ref_index].start_block = 
+				PED_CPU_TO_BE16(new_start);
+			goto CR_PRIM;
+		    case CR_PRIM_EXT :
+			priv_data->extent_file
+			->first[ref->ref_index].start_block = 
+				PED_CPU_TO_BE16(new_start);		    
+		    CR_PRIM :
+			extent = ( HfsExtDescriptor* )
+				 ( (uint8_t*)priv_data->mdb + ref->ref_offset );
+			extent[ref->ref_index].start_block =
+				PED_CPU_TO_BE16(new_start);
+			if (!hfs_update_mdb(fs)) return -1;
+			break;
+
+		/********* BTREE *******/
+		    case CR_BTREE_EXT_CAT :
+			if (priv_data->catalog_file
+			    ->cache[ref->ref_index].start_block
+			    == PED_CPU_TO_BE16(ref->ext_start))
+				priv_data->catalog_file
+				->cache[ref->ref_index].start_block =
+				PED_CPU_TO_BE16(new_start);
+		    case CR_BTREE_EXT_0 :
+			file = priv_data->extent_file;
+			goto CR_BTREE;
+		    case CR_BTREE_CAT :
+			file = priv_data->catalog_file;
+		    CR_BTREE:
+			PED_ASSERT(ref->sect_by_block == 1
+			           && ref->ref_offset < PED_SECTOR_SIZE_DEFAULT,
+				   return -1);
+			if (!hfs_file_read_sector(file, node, ref->ref_block))
+				return -1;
+			extent = ( HfsExtDescriptor* ) (node + ref->ref_offset);
+			extent[ref->ref_index].start_block =
+				PED_CPU_TO_BE16(new_start);
+			if (!hfs_file_write_sector(file, node, ref->ref_block)
+			    || !ped_geometry_sync_fast (fs->geom))
+				return -1;
+			break;
+
+		/********** BUG ********/
+		    default :
+			ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_CANCEL,
+				_("A reference to an extent comes from a place "
+				  "it should not.  You should check the file "
+				  "system!"));
+			return -1;
+			break;
+		}
+
+		/* Update the cache */
+		move = hfsc_cache_move_extent(cache, ref->ext_start, new_start);
+		if (!move) return -1; /* "cleanly" fail */
+		PED_ASSERT(move == ref, return -1); /* generate a bug */
+	}
+
+	return new_start;
+}
+
+/* 0 error, 1 ok */
+static int
+hfs_save_allocation(PedFileSystem* fs)
+{
+	HfsPrivateFSData*	priv_data = (HfsPrivateFSData*)
+						fs->type_specific;
+	unsigned int		map_sectors;
+
+	map_sectors = ( PED_BE16_TO_CPU (priv_data->mdb->total_blocks)
+			+ PED_SECTOR_SIZE_DEFAULT * 8 - 1 )
+		      / (PED_SECTOR_SIZE_DEFAULT * 8);
+	return ( ped_geometry_write (fs->geom, priv_data->alloc_map,
+			PED_BE16_TO_CPU (priv_data->mdb->volume_bitmap_block),
+			map_sectors) );
+}
+
+/* This function moves an extent starting at block fblock to block to_fblock
+   if there's enough room */
+/* Return 1 if everything was fine */
+/* Return -1 if an error occurred */
+/* Return 0 if no extent was found */
+/* Generic search thanks to the file system cache */
+static int
+hfs_move_extent_starting_at (PedFileSystem *fs, unsigned int *ptr_fblock,
+			     unsigned int *ptr_to_fblock, 
+			     HfsCPrivateCache* cache)
+{
+	HfsCPrivateExtent*	ref;
+	unsigned int		old_start, new_start;
+	
+	/* Reference search powered by the cache... */
+	/* This is the optimisation secret :) */
+	ref = hfsc_cache_search_extent(cache, *ptr_fblock);
+	if (!ref) return 0; /* not found */
+
+	old_start = *ptr_fblock;
+	new_start = hfs_do_move(fs, ptr_fblock, ptr_to_fblock, cache, ref);
+	if (new_start == (unsigned int) -1) return -1;
+	if (new_start > old_start) { /* detect 2 pass reloc */
+		new_start = hfs_do_move(fs,&new_start,ptr_to_fblock,cache,ref);
+		if (new_start == (unsigned int) -1 || new_start > old_start)
+			return -1;
+	}
+
+	/* allocation bitmap save is not atomic with data relocation */
+	/* so we only do it a few times, and without syncing */
+	/* The unmounted bit protect us anyway */
+	hfs_save_allocation(fs);
+	return 1;
+}
+
+static int
+hfs_cache_from_mdb(HfsCPrivateCache* cache, PedFileSystem* fs,
+		   PedTimer* timer)
+{
+	HfsPrivateFSData* 	priv_data = (HfsPrivateFSData*)
+						fs->type_specific;
+	HfsExtDescriptor*	extent;
+	unsigned int		j;
+
+	extent = priv_data->mdb->extents_file_rec;
+    	for (j = 0; j < HFS_EXT_NB; ++j) {
+		if (!extent[j].block_count) break;
+		if (!hfsc_cache_add_extent(
+			cache,
+			PED_BE16_TO_CPU(extent[j].start_block),
+			PED_BE16_TO_CPU(extent[j].block_count),
+			0, /* unused for mdb */
+			((uint8_t*)extent) - ((uint8_t*)priv_data->mdb),
+			1, /* load/save only 1 sector */
+			CR_PRIM_EXT,
+			j )
+		   )
+			return 0;
+	}
+
+	extent = priv_data->mdb->catalog_file_rec;
+	for (j = 0; j < HFS_EXT_NB; ++j) {
+		if (!extent[j].block_count) break;
+		if (!hfsc_cache_add_extent(
+			cache,
+			PED_BE16_TO_CPU(extent[j].start_block),
+			PED_BE16_TO_CPU(extent[j].block_count),
+			0,
+			((uint8_t*)extent) - ((uint8_t*)priv_data->mdb),
+			1,
+			CR_PRIM_CAT,
+			j )
+		   )
+			return 0;
+	}
+
+	return 1;
+}
+
+static int
+hfs_cache_from_catalog(HfsCPrivateCache* cache, PedFileSystem* fs,
+		   PedTimer* timer)
+{
+	HfsPrivateFSData* 	priv_data = (HfsPrivateFSData*)
+						fs->type_specific;
+	uint8_t			node[PED_SECTOR_SIZE_DEFAULT];
+	HfsHeaderRecord*	header;
+	HfsNodeDescriptor*	desc = (HfsNodeDescriptor*) node;
+	HfsCatalogKey*		catalog_key;
+	HfsCatalog*		catalog_data;
+	HfsExtDescriptor*	extent;
+	unsigned int		leaf_node, record_number;
+	unsigned int		i, j;
+
+	if (!priv_data->catalog_file->sect_nb) {
+		ped_exception_throw (
+			PED_EXCEPTION_INFORMATION,
+			PED_EXCEPTION_OK,
+			_("This HFS volume has no catalog file.  "
+			  "This is very unusual!"));
+		return 1;
+	}
+
+	if (!hfs_file_read_sector (priv_data->catalog_file, node, 0))
+		return 0;
+	header = (HfsHeaderRecord*)(node +  PED_BE16_TO_CPU(*((uint16_t*)
+						(node+(PED_SECTOR_SIZE_DEFAULT-2)))));
+
+	for (leaf_node = PED_BE32_TO_CPU (header->first_leaf_node);
+	     leaf_node;
+	     leaf_node = PED_BE32_TO_CPU (desc->next)) {
+		if (!hfs_file_read_sector (priv_data->catalog_file,
+					   node, leaf_node))
+			return 0;
+		record_number = PED_BE16_TO_CPU (desc->rec_nb);
+		for (i = 1; i <= record_number; ++i) {
+		       /* undocumented alignement */
+			unsigned int skip;
+			catalog_key = (HfsCatalogKey*) (node + PED_BE16_TO_CPU(
+				*((uint16_t*)(node+(PED_SECTOR_SIZE_DEFAULT - 2*i)))));
+			skip = (1 + catalog_key->key_length + 1) & ~1;
+			catalog_data = (HfsCatalog*)( ((uint8_t*)catalog_key)
+							+ skip );
+			/* check for obvious error in FS */
+			if (((uint8_t*)catalog_key - node < HFS_FIRST_REC)
+			    || ((uint8_t*)catalog_data - node
+				>= PED_SECTOR_SIZE_DEFAULT 
+				   - 2 * (signed)(record_number+1))) {
+				ped_exception_throw (
+					PED_EXCEPTION_ERROR,
+					PED_EXCEPTION_CANCEL,
+					_("The file system contains errors."));
+				return 0;
+			}
+
+			if (catalog_data->type != HFS_CAT_FILE) continue;
+
+			extent = catalog_data->sel.file.extents_data;
+			for (j = 0; j < HFS_EXT_NB; ++j) {
+				if (!extent[j].block_count) break;
+				if (!hfsc_cache_add_extent(
+					cache,
+					PED_BE16_TO_CPU(extent[j].start_block),
+					PED_BE16_TO_CPU(extent[j].block_count),
+					leaf_node,
+					(uint8_t*)extent - node,
+					1, /* hfs => btree block = 512 b */
+					CR_BTREE_CAT,
+					j )
+				   )
+					return 0;
+			}
+
+			extent = catalog_data->sel.file.extents_res;
+			for (j = 0; j < HFS_EXT_NB; ++j) {
+				if (!extent[j].block_count) break;
+				if (!hfsc_cache_add_extent(
+					cache,
+					PED_BE16_TO_CPU(extent[j].start_block),
+					PED_BE16_TO_CPU(extent[j].block_count),
+					leaf_node,
+					(uint8_t*)extent - node,
+					1, /* hfs => btree block = 512 b */
+					CR_BTREE_CAT,
+					j )
+				   )
+					return 0;
+			}
+		}
+	}
+
+	return 1;
+}
+
+static int
+hfs_cache_from_extent(HfsCPrivateCache* cache, PedFileSystem* fs,
+		   PedTimer* timer)
+{
+	HfsPrivateFSData* 	priv_data = (HfsPrivateFSData*)
+						fs->type_specific;
+	uint8_t			node[PED_SECTOR_SIZE_DEFAULT];
+	HfsHeaderRecord*	header;
+	HfsNodeDescriptor*	desc = (HfsNodeDescriptor*) node;
+	HfsExtentKey*		extent_key;
+	HfsExtDescriptor*	extent;
+	unsigned int		leaf_node, record_number;
+	unsigned int		i, j;
+
+	if (!priv_data->extent_file->sect_nb) {
+		ped_exception_throw (
+			PED_EXCEPTION_INFORMATION,
+			PED_EXCEPTION_OK,
+			_("This HFS volume has no extents overflow "
+			  "file.  This is quite unusual!"));
+		return 1;
+	}
+
+	if (!hfs_file_read_sector (priv_data->extent_file, node, 0))
+		return 0;
+	header = ((HfsHeaderRecord*) (node + PED_BE16_TO_CPU(*((uint16_t *)
+						(node+(PED_SECTOR_SIZE_DEFAULT-2))))));
+
+	for (leaf_node = PED_BE32_TO_CPU (header->first_leaf_node);
+	     leaf_node;
+	     leaf_node = PED_BE32_TO_CPU (desc->next)) {
+		if (!hfs_file_read_sector (priv_data->extent_file, node,
+					   leaf_node))
+			return 0;
+		record_number = PED_BE16_TO_CPU (desc->rec_nb);
+		for (i = 1; i <= record_number; i++) {
+			uint8_t	where;
+			extent_key = (HfsExtentKey*)
+					(node + PED_BE16_TO_CPU(*((uint16_t *)
+					      (node+(PED_SECTOR_SIZE_DEFAULT - 2*i)))));
+			/* size is cst */
+			extent = (HfsExtDescriptor*)(((uint8_t*)extent_key)
+						       + sizeof (HfsExtentKey));
+			/* check for obvious error in FS */
+			if (((uint8_t*)extent_key - node < HFS_FIRST_REC)
+			    || ((uint8_t*)extent - node 
+			        >= PED_SECTOR_SIZE_DEFAULT
+				   - 2 * (signed)(record_number+1))) {
+				ped_exception_throw (
+					PED_EXCEPTION_ERROR,
+					PED_EXCEPTION_CANCEL,
+					_("The file system contains errors."));
+				return 0;
+			}
+
+			switch (extent_key->file_ID) {
+			    case PED_CPU_TO_BE32 (HFS_XTENT_ID) :
+				if (ped_exception_throw (
+					PED_EXCEPTION_WARNING,
+					PED_EXCEPTION_IGNORE_CANCEL,
+					_("The extents overflow file should not"
+					  " contain its own extents!  You "
+					  "should check the file system."))
+						!= PED_EXCEPTION_IGNORE)
+					return 0;
+				where = CR_BTREE_EXT_EXT;
+				break;
+			    case PED_CPU_TO_BE32 (HFS_CATALOG_ID) :
+				where = CR_BTREE_EXT_CAT;
+				break;
+			    default :
+				where = CR_BTREE_EXT_0;
+				break;
+			}
+
+			for (j = 0; j < HFS_EXT_NB; ++j) {
+				if (!extent[j].block_count) break;
+				if (!hfsc_cache_add_extent(
+					cache,
+					PED_BE16_TO_CPU(extent[j].start_block),
+					PED_BE16_TO_CPU(extent[j].block_count),
+					leaf_node,
+					(uint8_t*)extent - node,
+					1, /* hfs => btree block = 512 b */
+					where,
+					j )
+				   )
+					return 0;
+			}
+		}
+	}
+
+	return 1;
+}
+
+/* This function cache every extents start and length stored in any
+   fs structure into the adt defined in cache.[ch]
+   Returns NULL on failure */
+static HfsCPrivateCache*
+hfs_cache_extents(PedFileSystem *fs, PedTimer* timer)
+{
+	HfsPrivateFSData* 	priv_data = (HfsPrivateFSData*)
+						fs->type_specific;
+	HfsCPrivateCache*	ret;
+	unsigned int		file_number, block_number;
+
+	file_number = PED_BE32_TO_CPU(priv_data->mdb->file_count);
+	block_number = PED_BE16_TO_CPU(priv_data->mdb->total_blocks);
+	ret = hfsc_new_cache(block_number, file_number);
+	if (!ret) return NULL;
+
+	if (!hfs_cache_from_mdb(ret, fs, timer) ||
+	    !hfs_cache_from_catalog(ret, fs, timer) ||
+	    !hfs_cache_from_extent(ret, fs, timer)) {
+		ped_exception_throw(
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Could not cache the file system in memory."));
+		hfsc_delete_cache(ret);
+		return NULL;
+	}
+
+	return ret;
+}
+
+/* This function moves file's data to compact used and free space,
+   starting at fblock block */
+/* return 0 on error */
+int
+hfs_pack_free_space_from_block (PedFileSystem *fs, unsigned int fblock,
+			        PedTimer* timer, unsigned int to_free)
+{
+	PedSector		bytes_buff;
+	HfsPrivateFSData* 	priv_data = (HfsPrivateFSData*)
+						fs->type_specific;
+	HfsMasterDirectoryBlock* mdb = priv_data->mdb;
+	HfsCPrivateCache*	cache;
+	unsigned int 		to_fblock = fblock;
+	unsigned int		start = fblock;
+	unsigned int		divisor = PED_BE16_TO_CPU (mdb->total_blocks)
+				          + 1 - start - to_free;
+	int			ret;
+
+	PED_ASSERT (!hfs_block, return 0);
+
+	cache = hfs_cache_extents (fs, timer);
+	if (!cache)
+		return 0;
+
+	/* Calculate the size of the copy buffer :
+	 * Takes BLOCK_MAX_BUFF HFS blocks, but if > BYTES_MAX_BUFF
+	 * takes the maximum number of HFS blocks so that the buffer
+	 * will remain smaller than or equal to BYTES_MAX_BUFF, with
+	 * a minimum of 1 HFS block */
+	bytes_buff = PED_BE32_TO_CPU (priv_data->mdb->block_size)
+		     * (PedSector) BLOCK_MAX_BUFF;
+	if (bytes_buff > BYTES_MAX_BUFF) {
+		hfs_block_count = BYTES_MAX_BUFF
+				 / PED_BE32_TO_CPU (priv_data->mdb->block_size);
+		if (!hfs_block_count)
+			hfs_block_count = 1;
+		bytes_buff = (PedSector) hfs_block_count
+			     * PED_BE32_TO_CPU (priv_data->mdb->block_size);
+	} else
+		hfs_block_count = BLOCK_MAX_BUFF;
+
+	/* If the cache code requests more space, give it to him */
+	if (bytes_buff < hfsc_cache_needed_buffer (cache))
+		bytes_buff = hfsc_cache_needed_buffer (cache);
+
+	hfs_block = (uint8_t*) ped_malloc (bytes_buff);
+	if (!hfs_block)
+		goto error_cache;
+
+	if (!hfs_read_bad_blocks (fs)) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Bad blocks list could not be loaded."));
+		goto error_alloc;
+	}
+
+	while (fblock < PED_BE16_TO_CPU (mdb->total_blocks)) {
+		if (TST_BLOC_OCCUPATION(priv_data->alloc_map,fblock)
+		    && (!hfs_is_bad_block (fs, fblock))) {
+			if (!(ret = hfs_move_extent_starting_at (fs, &fblock,
+						&to_fblock, cache)))
+				to_fblock = ++fblock;
+			else if (ret == -1) {
+				ped_exception_throw (
+					PED_EXCEPTION_ERROR,
+					PED_EXCEPTION_CANCEL,
+					_("An error occurred during extent "
+					  "relocation."));
+				goto error_alloc;
+			}
+		} else {
+			fblock++;
+		}
+
+		ped_timer_update(timer, (float)(to_fblock - start)/divisor);
+	}
+
+	ped_free (hfs_block); hfs_block = NULL; hfs_block_count = 0;
+	hfsc_delete_cache (cache);
+	return 1;
+
+error_alloc:
+	ped_free (hfs_block); hfs_block = NULL; hfs_block_count = 0;
+error_cache:
+	hfsc_delete_cache (cache);
+	return 0;
+}
+
+#endif /* !DISCOVER_ONLY */
diff --git a/parted-1.8.7/libparted/fs/hfs/reloc.h b/parted-1.8.7/libparted/fs/hfs/reloc.h
new file mode 100644
index 0000000..627dd0c
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/hfs/reloc.h
@@ -0,0 +1,36 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2004 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef _RELOC_H
+#define _RELOC_H
+
+#include <parted/parted.h>
+#include <parted/endian.h>
+#include <parted/debug.h>
+
+#include "hfs.h"
+
+int
+hfs_update_mdb (PedFileSystem *fs);
+
+int
+hfs_pack_free_space_from_block (PedFileSystem *fs, unsigned int fblock,
+			        PedTimer* timer, unsigned int to_free);
+
+#endif /* _RELOC_H */
diff --git a/parted-1.8.7/libparted/fs/hfs/reloc_plus.c b/parted-1.8.7/libparted/fs/hfs/reloc_plus.c
new file mode 100644
index 0000000..2274b28
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/hfs/reloc_plus.c
@@ -0,0 +1,946 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef DISCOVER_ONLY
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/endian.h>
+#include <parted/debug.h>
+#include <stdint.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#include "hfs.h"
+#include "file_plus.h"
+#include "advfs_plus.h"
+#include "cache.h"
+#include "journal.h"
+
+#include "reloc_plus.h"
+
+/* This function moves data of size blocks starting at block *ptr_fblock
+   to block *ptr_to_fblock */
+/* return new start or -1 on failure */
+/* -1 is ok because there can only be 2^32-1 blocks, so the max possible
+   last one is 2^32-2 (and anyway it contains Alternate VH), so
+   -1 (== 2^32-1[2^32]) never represent a valid block */
+static int
+hfsplus_effect_move_extent (PedFileSystem *fs, unsigned int *ptr_fblock,
+			    unsigned int *ptr_to_fblock, unsigned int size)
+{
+	HfsPPrivateFSData* 	priv_data = (HfsPPrivateFSData*)
+						fs->type_specific;
+	unsigned int		i, ok = 0;
+	unsigned int		next_to_fblock;
+	unsigned int		start, stop;
+
+	PED_ASSERT (hfsp_block != NULL, return -1);
+	PED_ASSERT (*ptr_to_fblock <= *ptr_fblock, return -1);
+	/* quiet GCC */
+	next_to_fblock = start = stop = 0;
+
+/*
+	Try to fit the extent AT or _BEFORE_ the wanted place,
+	or then in the gap between dest and source.
+	If failed try to fit the extent after source, for 2 pass relocation
+	The extent is always copied in a non overlapping way
+*/
+
+	/* Backward search */
+	/* 1 pass relocation AT or BEFORE *ptr_to_fblock */
+	if (*ptr_to_fblock != *ptr_fblock) {
+		start = stop = *ptr_fblock < *ptr_to_fblock+size ?
+			       *ptr_fblock : *ptr_to_fblock+size;
+		while (start && stop-start != size) {
+			--start;
+			if (TST_BLOC_OCCUPATION(priv_data->alloc_map,start))
+				stop = start;
+		}
+		ok = (stop-start == size);
+	}
+	
+	/* Forward search */
+	/* 1 pass relocation in the gap merged with 2 pass reloc after source */
+	if (!ok && *ptr_to_fblock != *ptr_fblock) {
+		start = stop = *ptr_to_fblock+1;
+		while (stop < PED_BE32_TO_CPU(priv_data->vh->total_blocks)
+		       && stop-start != size) {
+			if (TST_BLOC_OCCUPATION(priv_data->alloc_map,stop))
+				start = stop + 1;
+			++stop;
+		}
+		ok = (stop-start == size);
+	}
+
+	/* new non overlapping room has been found ? */
+	if (ok) {
+		/* enough room */
+		PedSector	abs_sector;
+		unsigned int	ai, j, block;
+		unsigned int 	block_sz = (PED_BE32_TO_CPU (
+					priv_data->vh->block_size)
+					/ PED_SECTOR_SIZE_DEFAULT);
+
+		if (stop > *ptr_to_fblock && stop <= *ptr_fblock)
+			/* Fit in the gap */
+			next_to_fblock = stop;
+		else
+			/* Before or after the gap */
+			next_to_fblock = *ptr_to_fblock;
+
+		/* move blocks */
+		for (i = 0; i < size; /*i++*/) {
+			j = size - i; j = (j < hfsp_block_count) ?
+					   j : hfsp_block_count ;
+
+			abs_sector = (PedSector) (*ptr_fblock + i) * block_sz;
+			if (!ped_geometry_read (priv_data->plus_geom,
+						hfsp_block, abs_sector,
+						block_sz * j))
+				return -1;
+
+			abs_sector = (PedSector) (start + i) * block_sz;
+			if (!ped_geometry_write (priv_data->plus_geom,
+						 hfsp_block, abs_sector,
+						 block_sz * j))
+				return -1;
+
+			for (ai = i+j; i < ai; i++) {
+				/* free source block */
+				block = *ptr_fblock + i;
+				CLR_BLOC_OCCUPATION(priv_data->alloc_map,block);
+				SET_BLOC_OCCUPATION(priv_data->dirty_alloc_map,
+						    block/(PED_SECTOR_SIZE_DEFAULT*8));
+
+				/* set dest block */
+				block = start + i;
+				SET_BLOC_OCCUPATION(priv_data->alloc_map,block);
+				SET_BLOC_OCCUPATION(priv_data->dirty_alloc_map,
+						    block/(PED_SECTOR_SIZE_DEFAULT*8));
+			}
+		}
+		if (!ped_geometry_sync_fast (priv_data->plus_geom))
+			return -1;
+
+		*ptr_fblock += size;
+		*ptr_to_fblock = next_to_fblock;
+	} else {
+		if (*ptr_fblock != *ptr_to_fblock)
+			/* not enough room */
+			ped_exception_throw (PED_EXCEPTION_WARNING,
+			      PED_EXCEPTION_IGNORE,
+			      _("An extent has not been relocated."));
+		start = *ptr_fblock;
+		*ptr_fblock = *ptr_to_fblock = start + size;
+	}
+
+	return start;
+}
+
+/* Returns 0 on error */
+/*         1 on succes */
+int
+hfsplus_update_vh (PedFileSystem *fs)
+{
+	HfsPPrivateFSData* 	priv_data = (HfsPPrivateFSData*)
+						fs->type_specific;
+	uint8_t			node[PED_SECTOR_SIZE_DEFAULT];
+
+    	if (!ped_geometry_read (priv_data->plus_geom, node, 2, 1))
+		return 0;
+	memcpy (node, priv_data->vh, sizeof (HfsPVolumeHeader));
+	if (!ped_geometry_write (priv_data->plus_geom, node, 2, 1)
+	    || !ped_geometry_write (priv_data->plus_geom, node,
+				 priv_data->plus_geom->length - 2, 1)
+	    || !ped_geometry_sync_fast (priv_data->plus_geom))
+		return 0;
+	return 1;
+}
+
+static int
+hfsplus_do_move (PedFileSystem* fs, unsigned int *ptr_src,
+		 unsigned int *ptr_dest, HfsCPrivateCache* cache,
+		 HfsCPrivateExtent* ref)
+{
+	HfsPPrivateFSData*	priv_data = (HfsPPrivateFSData*)
+						fs->type_specific;
+	HfsPPrivateFile*	file;
+	HfsPExtDescriptor*	extent;
+	HfsCPrivateExtent*	move;
+	int			new_start;
+
+	new_start = hfsplus_effect_move_extent (fs, ptr_src, ptr_dest,
+						ref->ext_length);
+
+	if (new_start == -1) return -1;
+	
+	if (ref->ext_start != (unsigned) new_start) {
+		switch (ref->where) {
+		/************ VH ************/
+		    case CR_PRIM_CAT :
+			priv_data->catalog_file
+			->first[ref->ref_index].start_block = 
+				PED_CPU_TO_BE32(new_start);
+			goto CR_PRIM;
+		    case CR_PRIM_EXT :
+			priv_data->extents_file
+			->first[ref->ref_index].start_block =
+				PED_CPU_TO_BE32(new_start);
+			goto CR_PRIM;
+		    case CR_PRIM_ATTR :
+			priv_data->attributes_file
+			->first[ref->ref_index].start_block =
+				PED_CPU_TO_BE32(new_start);
+			goto CR_PRIM;
+		    case CR_PRIM_ALLOC :
+			priv_data->allocation_file
+			->first[ref->ref_index].start_block =
+				PED_CPU_TO_BE32(new_start);
+			goto CR_PRIM;
+		    case CR_PRIM_START :
+			/* No startup file opened */
+		    CR_PRIM :
+			extent = ( HfsPExtDescriptor* )
+				 ( (uint8_t*)priv_data->vh + ref->ref_offset );
+			extent[ref->ref_index].start_block =
+				PED_CPU_TO_BE32(new_start);
+			if (!hfsplus_update_vh(fs))
+				return -1;
+			break;
+
+		/************** BTREE *************/
+		    case CR_BTREE_CAT_JIB :
+			if (!hfsj_update_jib(fs, new_start))
+				return -1;
+			goto BTREE_CAT;
+
+		    case CR_BTREE_CAT_JL :
+			if (!hfsj_update_jl(fs, new_start))
+				return -1;
+			goto BTREE_CAT;
+
+		    BTREE_CAT:
+		    case CR_BTREE_CAT :
+			file = priv_data->catalog_file;
+			goto CR_BTREE;
+
+		    case CR_BTREE_ATTR :
+			file = priv_data->attributes_file;
+			goto CR_BTREE;
+
+		    case CR_BTREE_EXT_ATTR :
+			if (priv_data->attributes_file
+			    ->cache[ref->ref_index].start_block
+			    == PED_CPU_TO_BE32(ref->ext_start))
+				priv_data->attributes_file
+				->cache[ref->ref_index].start_block =
+				PED_CPU_TO_BE32(new_start);
+			goto CR_BTREE_EXT;
+		    case CR_BTREE_EXT_CAT :
+			if (priv_data->catalog_file
+			    ->cache[ref->ref_index].start_block
+			    == PED_CPU_TO_BE32(ref->ext_start))
+				priv_data->catalog_file
+				->cache[ref->ref_index].start_block =
+				PED_CPU_TO_BE32(new_start);
+			goto CR_BTREE_EXT;
+		    case CR_BTREE_EXT_ALLOC :
+			if (priv_data->allocation_file
+			    ->cache[ref->ref_index].start_block
+			    == PED_CPU_TO_BE32(ref->ext_start))
+				priv_data->allocation_file
+				->cache[ref->ref_index].start_block =
+				PED_CPU_TO_BE32(new_start);
+			goto CR_BTREE_EXT;
+		    case CR_BTREE_EXT_START :
+		    	/* No startup file opened */
+		    CR_BTREE_EXT :
+		    case CR_BTREE_EXT_0 :
+			file = priv_data->extents_file;
+
+		    CR_BTREE :
+			PED_ASSERT(PED_SECTOR_SIZE_DEFAULT * ref->sect_by_block
+				   > ref->ref_offset, return -1 );
+			if (!hfsplus_file_read(file, hfsp_block, 
+				(PedSector)ref->ref_block * ref->sect_by_block,
+				ref->sect_by_block))
+				return -1;
+			extent = ( HfsPExtDescriptor* )
+				( hfsp_block + ref->ref_offset );
+			extent[ref->ref_index].start_block =
+				PED_CPU_TO_BE32(new_start);
+			if (!hfsplus_file_write(file, hfsp_block,
+				(PedSector)ref->ref_block * ref->sect_by_block,
+				ref->sect_by_block)
+			    || !ped_geometry_sync_fast (priv_data->plus_geom))
+				return -1;
+			break;
+
+		    /********** BUG *********/
+		    default :
+			ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_CANCEL,
+				_("A reference to an extent comes from a place "
+				  "it should not.  You should check the file "
+				  "system!"));
+			return -1;
+			break;
+		}
+
+		move = hfsc_cache_move_extent(cache, ref->ext_start, new_start);
+		if (!move) return -1;
+		PED_ASSERT(move == ref, return -1);
+	}
+
+	return new_start;
+}
+
+/* save any dirty sector of the allocation bitmap file */
+static int
+hfsplus_save_allocation(PedFileSystem *fs)
+{
+	HfsPPrivateFSData*	priv_data = (HfsPPrivateFSData*)
+						fs->type_specific;
+	unsigned int		map_sectors, i, j;
+	int			ret = 1;
+
+	map_sectors = ( PED_BE32_TO_CPU (priv_data->vh->total_blocks) 
+			+ PED_SECTOR_SIZE_DEFAULT * 8 - 1 ) / (PED_SECTOR_SIZE_DEFAULT * 8);
+
+	for (i = 0; i < map_sectors;) {
+		for (j = i; 
+		     (TST_BLOC_OCCUPATION(priv_data->dirty_alloc_map,j));
+		     ++j)
+			CLR_BLOC_OCCUPATION(priv_data->dirty_alloc_map,j);
+		if (j-i) {
+			ret = hfsplus_file_write(priv_data->allocation_file,
+				    priv_data->alloc_map + i * PED_SECTOR_SIZE_DEFAULT,
+				    i, j-i) && ret;
+			i = j;
+		} else
+			++i;
+	}
+
+	return ret;
+}
+
+/* This function moves an extent starting at block fblock
+   to block to_fblock if there's enough room */
+/* Return 1 if everything was fine */
+/* Return -1 if an error occurred */
+/* Return 0 if no extent was found */
+static int
+hfsplus_move_extent_starting_at (PedFileSystem *fs, unsigned int *ptr_fblock,
+				 unsigned int *ptr_to_fblock,
+				 HfsCPrivateCache* cache)
+{
+	HfsCPrivateExtent*	ref;
+	unsigned int		old_start, new_start;
+
+	ref = hfsc_cache_search_extent(cache, *ptr_fblock);
+	if (!ref) return 0;
+
+	old_start = *ptr_fblock;
+	new_start = hfsplus_do_move(fs, ptr_fblock, ptr_to_fblock, cache, ref);
+	if (new_start == (unsigned)-1) return -1;
+	if (new_start > old_start) {
+		new_start = hfsplus_do_move(fs, &new_start, ptr_to_fblock,
+					    cache, ref);
+		if (new_start == (unsigned)-1 || new_start > old_start)
+			return -1;
+	}
+
+	hfsplus_save_allocation(fs);
+	return 1;
+}
+
+static int
+hfsplus_cache_from_vh(HfsCPrivateCache* cache, PedFileSystem* fs,
+		      PedTimer* timer)
+{
+	HfsPPrivateFSData* 	priv_data = (HfsPPrivateFSData*)
+						fs->type_specific;
+	HfsPExtDescriptor*	extent;
+	unsigned int		j;
+
+	extent = priv_data->vh->allocation_file.extents;
+	for (j = 0; j < HFSP_EXT_NB; ++j) {
+		if (!extent[j].block_count) break;
+		if (!hfsc_cache_add_extent(
+			cache,
+			PED_BE32_TO_CPU(extent[j].start_block),
+			PED_BE32_TO_CPU(extent[j].block_count),
+			0, /* unused for vh */
+			((uint8_t*)extent) - ((uint8_t*)priv_data->vh),
+			1, /* load / save 1 sector */
+			CR_PRIM_ALLOC,
+			j )
+		   )
+			return 0;
+	}
+
+	extent = priv_data->vh->extents_file.extents;
+	for (j = 0; j < HFSP_EXT_NB; ++j) {
+		if (!extent[j].block_count) break;
+		if (!hfsc_cache_add_extent(
+			cache,
+			PED_BE32_TO_CPU(extent[j].start_block),
+			PED_BE32_TO_CPU(extent[j].block_count),
+			0, /* unused for vh */
+			((uint8_t*)extent) - ((uint8_t*)priv_data->vh),
+			1, /* load / save 1 sector */
+			CR_PRIM_EXT,
+			j )
+		   )
+			return 0;
+	}
+
+	extent = priv_data->vh->catalog_file.extents;
+	for (j = 0; j < HFSP_EXT_NB; ++j) {
+		if (!extent[j].block_count) break;
+		if (!hfsc_cache_add_extent(
+			cache,
+			PED_BE32_TO_CPU(extent[j].start_block),
+			PED_BE32_TO_CPU(extent[j].block_count),
+			0, /* unused for vh */
+			((uint8_t*)extent) - ((uint8_t*)priv_data->vh),
+			1, /* load / save 1 sector */
+			CR_PRIM_CAT,
+			j )
+		   )
+			return 0;
+	}
+
+	extent = priv_data->vh->attributes_file.extents;
+	for (j = 0; j < HFSP_EXT_NB; ++j) {
+		if (!extent[j].block_count) break;
+		if (!hfsc_cache_add_extent(
+			cache,
+			PED_BE32_TO_CPU(extent[j].start_block),
+			PED_BE32_TO_CPU(extent[j].block_count),
+			0, /* unused for vh */
+			((uint8_t*)extent) - ((uint8_t*)priv_data->vh),
+			1, /* load / save 1 sector */
+			CR_PRIM_ATTR,
+			j )
+		   )
+			return 0;
+	}
+
+	extent = priv_data->vh->startup_file.extents;
+	for (j = 0; j < HFSP_EXT_NB; ++j) {
+		if (!extent[j].block_count) break;
+		if (!hfsc_cache_add_extent(
+			cache,
+			PED_BE32_TO_CPU(extent[j].start_block),
+			PED_BE32_TO_CPU(extent[j].block_count),
+			0, /* unused for vh */
+			((uint8_t*)extent) - ((uint8_t*)priv_data->vh),
+			1, /* load / save 1 sector */
+			CR_PRIM_START,
+			j )
+		   )
+			return 0;
+	}
+
+	return 1;
+}
+
+static int
+hfsplus_cache_from_catalog(HfsCPrivateCache* cache, PedFileSystem* fs,
+			   PedTimer* timer)
+{
+	HfsPPrivateFSData* 	priv_data = (HfsPPrivateFSData*)
+						fs->type_specific;
+	uint8_t			node_1[PED_SECTOR_SIZE_DEFAULT];
+	uint8_t*		node;
+	HfsPHeaderRecord*	header;
+	HfsPNodeDescriptor*	desc = (HfsPNodeDescriptor*) node_1;
+	HfsPCatalogKey*		catalog_key;
+	HfsPCatalog*		catalog_data;
+	HfsPExtDescriptor*	extent;
+	unsigned int		leaf_node, record_number;
+	unsigned int		i, j, size, bsize;
+	uint32_t		jib = priv_data->jib_start_block,
+				jl  = priv_data->jl_start_block;
+
+	if (!priv_data->catalog_file->sect_nb) {
+		ped_exception_throw (
+			PED_EXCEPTION_INFORMATION,
+			PED_EXCEPTION_OK,
+			_("This HFS+ volume has no catalog file.  "
+			  "This is very unusual!"));
+		return 1;
+	}
+
+	/* Search the extent starting at *ptr_block in the catalog file */
+	if (!hfsplus_file_read_sector (priv_data->catalog_file, node_1, 0))
+		return 0;
+	header = (HfsPHeaderRecord*) (node_1 + HFS_FIRST_REC);
+	leaf_node = PED_BE32_TO_CPU (header->first_leaf_node);
+	bsize = PED_BE16_TO_CPU (header->node_size);
+	size = bsize / PED_SECTOR_SIZE_DEFAULT;
+	PED_ASSERT(size < 256, return 0);
+
+	node = (uint8_t*) ped_malloc(bsize);
+	if (!node) return 0;
+	desc = (HfsPNodeDescriptor*) node;
+
+	for (; leaf_node; leaf_node = PED_BE32_TO_CPU (desc->next)) {
+		if (!hfsplus_file_read (priv_data->catalog_file, node,
+					(PedSector) leaf_node * size, size)) {
+			ped_free (node);
+			return 0;
+		}
+		record_number = PED_BE16_TO_CPU (desc->rec_nb);
+		for (i = 1; i <= record_number; i++) {
+			unsigned int	skip;
+			uint8_t		where;
+
+			catalog_key = (HfsPCatalogKey*)
+			    ( node + PED_BE16_TO_CPU (*((uint16_t *)
+					(node+(bsize - 2*i)))) );
+			skip = ( 2 + PED_BE16_TO_CPU (catalog_key->key_length)
+				 + 1) & ~1;
+			catalog_data = (HfsPCatalog*)
+					    (((uint8_t*)catalog_key) + skip);
+			/* check for obvious error in FS */
+			if (((uint8_t*)catalog_key - node < HFS_FIRST_REC)
+			    || ((uint8_t*)catalog_data - node
+			        >= (signed) bsize
+				   - 2 * (signed)(record_number+1))) {
+				ped_exception_throw (
+					PED_EXCEPTION_ERROR,
+					PED_EXCEPTION_CANCEL,
+					_("The file system contains errors."));
+				ped_free (node);
+				return 0;
+			}
+
+			if (PED_BE16_TO_CPU(catalog_data->type)!=HFS_CAT_FILE)
+				continue;
+
+			extent = catalog_data->sel.file.data_fork.extents;
+			for (j = 0; j < HFSP_EXT_NB; ++j) {
+				if (!extent[j].block_count) break;
+				where = CR_BTREE_CAT;
+				if ( PED_BE32_TO_CPU(extent[j].start_block)
+				     == jib ) {
+					jib = 0;
+					where = CR_BTREE_CAT_JIB;
+				} else
+				  if ( PED_BE32_TO_CPU(extent[j].start_block)
+				       == jl ) {
+					jl = 0;
+					where = CR_BTREE_CAT_JL;
+				}
+				if (!hfsc_cache_add_extent(
+					cache,
+					PED_BE32_TO_CPU(extent[j].start_block),
+					PED_BE32_TO_CPU(extent[j].block_count),
+					leaf_node,
+					(uint8_t*)extent - node,
+					size,
+					where,
+					j )
+				   ) {
+					ped_free (node);
+				 	return 0;
+				}
+			}
+
+			extent = catalog_data->sel.file.res_fork.extents;
+			for (j = 0; j < HFSP_EXT_NB; ++j) {
+				if (!extent[j].block_count) break;
+				if (!hfsc_cache_add_extent(
+					cache,
+					PED_BE32_TO_CPU(extent[j].start_block),
+					PED_BE32_TO_CPU(extent[j].block_count),
+					leaf_node,
+					(uint8_t*)extent - node,
+					size,
+					CR_BTREE_CAT,
+					j )
+				   ) {
+					ped_free (node);
+				 	return 0;
+				}
+			}
+		}
+	}
+
+	ped_free (node);
+	return 1;
+}
+
+static int
+hfsplus_cache_from_extent(HfsCPrivateCache* cache, PedFileSystem* fs,
+			  PedTimer* timer)
+{
+	HfsPPrivateFSData* 	priv_data = (HfsPPrivateFSData*)
+						fs->type_specific;
+	uint8_t			node_1[PED_SECTOR_SIZE_DEFAULT];
+	uint8_t*		node;
+	HfsPHeaderRecord*	header;
+	HfsPNodeDescriptor*	desc = (HfsPNodeDescriptor*) node_1;
+	HfsPExtentKey*		extent_key;
+	HfsPExtDescriptor*	extent;
+	unsigned int		leaf_node, record_number;
+	unsigned int		i, j, size, bsize;
+
+	if (!priv_data->extents_file->sect_nb) {
+		ped_exception_throw (
+			PED_EXCEPTION_INFORMATION,
+			PED_EXCEPTION_OK,
+			_("This HFS+ volume has no extents overflow "
+			  "file.  This is quite unusual!"));
+		return 1;
+	}
+
+	if (!hfsplus_file_read_sector (priv_data->extents_file, node_1, 0))
+		return 0;
+	header = ((HfsPHeaderRecord*) (node_1 + HFS_FIRST_REC));
+	leaf_node = PED_BE32_TO_CPU (header->first_leaf_node);
+	bsize = PED_BE16_TO_CPU (header->node_size);
+	size = bsize / PED_SECTOR_SIZE_DEFAULT;
+	PED_ASSERT(size < 256, return 0);
+
+	node = (uint8_t*) ped_malloc (bsize);
+	if (!node) return -1;
+	desc = (HfsPNodeDescriptor*) node;
+
+	for (; leaf_node; leaf_node = PED_BE32_TO_CPU (desc->next)) {
+		if (!hfsplus_file_read (priv_data->extents_file, node,
+					(PedSector) leaf_node * size, size)) {
+			ped_free (node);
+			return 0;
+		}
+		record_number = PED_BE16_TO_CPU (desc->rec_nb);
+		for (i = 1; i <= record_number; i++) {
+			uint8_t where;
+			extent_key = (HfsPExtentKey*)
+			    (node + PED_BE16_TO_CPU(*((uint16_t *)
+					    (node+(bsize - 2*i)))));
+			extent = (HfsPExtDescriptor*)
+			    (((uint8_t*)extent_key) + sizeof (HfsPExtentKey));
+			/* check for obvious error in FS */
+			if (((uint8_t*)extent_key - node < HFS_FIRST_REC)
+			    || ((uint8_t*)extent - node
+			        >= (signed)bsize
+				   - 2 * (signed)(record_number+1))) {
+				ped_exception_throw (
+					PED_EXCEPTION_ERROR,
+					PED_EXCEPTION_CANCEL,
+					_("The file system contains errors."));
+				ped_free (node);
+				return -1;
+			}
+			
+			switch (extent_key->file_ID) {
+			    case PED_CPU_TO_BE32 (HFS_XTENT_ID) :
+				if (ped_exception_throw (
+					PED_EXCEPTION_WARNING,
+					PED_EXCEPTION_IGNORE_CANCEL,
+					_("The extents overflow file should not"
+					" contain its own extents!  You should "
+					"check the file system."))
+						!= PED_EXCEPTION_IGNORE)
+					return 0;
+				where = CR_BTREE_EXT_EXT;
+				break;
+			    case PED_CPU_TO_BE32 (HFS_CATALOG_ID) :
+				where = CR_BTREE_EXT_CAT;
+				break;
+			    case PED_CPU_TO_BE32 (HFSP_ALLOC_ID) :
+				where = CR_BTREE_EXT_ALLOC;
+				break;
+			    case PED_CPU_TO_BE32 (HFSP_STARTUP_ID) :
+				where = CR_BTREE_EXT_START;
+				break;
+			    case PED_CPU_TO_BE32 (HFSP_ATTRIB_ID) :
+			    	where = CR_BTREE_EXT_ATTR;
+				break;
+			    default :
+			    	where = CR_BTREE_EXT_0;
+				break;
+			}
+			
+			for (j = 0; j < HFSP_EXT_NB; ++j) {
+				if (!extent[j].block_count) break;
+				if (!hfsc_cache_add_extent(
+					cache,
+					PED_BE32_TO_CPU(extent[j].start_block),
+					PED_BE32_TO_CPU(extent[j].block_count),
+					leaf_node,
+					(uint8_t*)extent - node,
+					size,
+					where,
+					j )
+				   ) {
+					ped_free (node);
+					return 0;
+				}
+			}
+		}
+	}
+	
+	ped_free (node);
+	return 1;
+}
+
+static int
+hfsplus_cache_from_attributes(HfsCPrivateCache* cache, PedFileSystem* fs,
+			      PedTimer* timer)
+{
+	HfsPPrivateFSData* 	priv_data = (HfsPPrivateFSData*)
+						fs->type_specific;
+	uint8_t			node_1[PED_SECTOR_SIZE_DEFAULT];
+	uint8_t*		node;
+	HfsPHeaderRecord*	header;
+	HfsPNodeDescriptor*	desc = (HfsPNodeDescriptor*) node_1;
+	HfsPPrivateGenericKey*	generic_key;
+	HfsPForkDataAttr*	fork_ext_data;
+	HfsPExtDescriptor*	extent;
+	unsigned int		leaf_node, record_number;
+	unsigned int		i, j, size, bsize;
+
+	/* attributes file is facultative */
+	if (!priv_data->attributes_file->sect_nb)
+		return 1;
+
+	/* Search the extent starting at *ptr_block in the catalog file */
+	if (!hfsplus_file_read_sector (priv_data->attributes_file, node_1, 0))
+		return 0;
+	header = ((HfsPHeaderRecord*) (node_1 + HFS_FIRST_REC));
+	leaf_node = PED_BE32_TO_CPU (header->first_leaf_node);
+	bsize = PED_BE16_TO_CPU (header->node_size);
+	size = bsize / PED_SECTOR_SIZE_DEFAULT;
+	PED_ASSERT(size < 256, return 0);
+
+	node = (uint8_t*) ped_malloc(bsize);
+	if (!node) return 0;
+	desc = (HfsPNodeDescriptor*) node;
+
+	for (; leaf_node; leaf_node = PED_BE32_TO_CPU (desc->next)) {
+		if (!hfsplus_file_read (priv_data->attributes_file, node,
+					(PedSector) leaf_node * size, size)) {
+			ped_free (node);
+			return 0;
+		}
+		record_number = PED_BE16_TO_CPU (desc->rec_nb);
+		for (i = 1; i <= record_number; i++) {
+			unsigned int	skip;
+			generic_key = (HfsPPrivateGenericKey*)
+				(node + PED_BE16_TO_CPU(*((uint16_t *)
+					    (node+(bsize - 2*i)))));
+			skip = ( 2 + PED_BE16_TO_CPU (generic_key->key_length)
+			         + 1 ) & ~1;
+			fork_ext_data = (HfsPForkDataAttr*)
+					    (((uint8_t*)generic_key) + skip);
+			/* check for obvious error in FS */
+			if (((uint8_t*)generic_key - node < HFS_FIRST_REC)
+			    || ((uint8_t*)fork_ext_data - node
+			        >= (signed) bsize
+				   - 2 * (signed)(record_number+1))) {
+				ped_exception_throw (
+					PED_EXCEPTION_ERROR,
+					PED_EXCEPTION_CANCEL,
+					_("The file system contains errors."));
+				ped_free (node);
+				return 0;
+			}
+
+			if (fork_ext_data->record_type
+			    == PED_CPU_TO_BE32 ( HFSP_ATTR_FORK ) ) {
+				extent = fork_ext_data->fork_res.fork.extents;
+				for (j = 0; j < HFSP_EXT_NB; ++j) {
+					if (!extent[j].block_count) break;
+					if (!hfsc_cache_add_extent(
+						cache,
+						PED_BE32_TO_CPU (
+							extent[j].start_block ),
+						PED_BE32_TO_CPU (
+							extent[j].block_count ),
+						leaf_node,
+						(uint8_t*)extent-node,
+						size,
+						CR_BTREE_ATTR,
+						j )
+					   ) {
+						ped_free(node);
+						return 0;
+					}
+				}
+			} else if (fork_ext_data->record_type
+			    == PED_CPU_TO_BE32 ( HFSP_ATTR_EXTENTS ) ) {
+				extent = fork_ext_data->fork_res.extents;
+				for (j = 0; j < HFSP_EXT_NB; ++j) {
+					if (!extent[j].block_count) break;
+					if (!hfsc_cache_add_extent(
+						cache,
+						PED_BE32_TO_CPU (
+							extent[j].start_block ),
+						PED_BE32_TO_CPU (
+							extent[j].block_count ),
+						leaf_node,
+						(uint8_t*)extent-node,
+						size,
+						CR_BTREE_ATTR,
+						j )
+					   ) {
+						ped_free(node);
+						return 0;
+					}
+				}
+			} else continue;
+		}
+	}
+
+	ped_free (node);
+	return 1;
+}
+
+static HfsCPrivateCache*
+hfsplus_cache_extents(PedFileSystem* fs, PedTimer* timer)
+{
+	HfsPPrivateFSData*	priv_data = (HfsPPrivateFSData*)
+						fs->type_specific;
+	HfsCPrivateCache*	ret;
+	unsigned int		file_number, block_number;
+
+	file_number = PED_BE32_TO_CPU(priv_data->vh->file_count);
+	block_number = PED_BE32_TO_CPU(priv_data->vh->total_blocks);
+	ret = hfsc_new_cache(block_number, file_number);
+	if (!ret) return NULL;
+
+	if (!hfsplus_cache_from_vh(ret, fs, timer) ||
+	    !hfsplus_cache_from_catalog(ret, fs, timer) ||
+	    !hfsplus_cache_from_extent(ret, fs, timer) ||
+	    !hfsplus_cache_from_attributes(ret, fs, timer)) {
+		ped_exception_throw(
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Could not cache the file system in memory."));
+		hfsc_delete_cache(ret);
+		return NULL;
+	}
+
+	return ret;
+}
+
+/* This function moves file's data to compact used and free space,
+   starting at fblock block */
+/* return 0 on error */
+int
+hfsplus_pack_free_space_from_block (PedFileSystem *fs, unsigned int fblock,
+				    PedTimer* timer, unsigned int to_free)
+{
+	PedSector		bytes_buff;
+	HfsPPrivateFSData* 	priv_data = (HfsPPrivateFSData*)
+						fs->type_specific;
+	HfsPVolumeHeader*	vh = priv_data->vh;
+	HfsCPrivateCache*	cache;
+	unsigned int 		to_fblock = fblock;
+	unsigned int		start = fblock;
+	unsigned int		divisor = PED_BE32_TO_CPU (vh->total_blocks)
+				          + 1 - start - to_free;
+	int			ret;
+
+	PED_ASSERT (!hfsp_block, return 0);
+
+	cache = hfsplus_cache_extents (fs, timer);
+	if (!cache)
+		return 0;
+
+	/* Calculate the size of the copy buffer :
+	 * Takes BLOCK_MAX_BUFF HFS blocks, but if > BYTES_MAX_BUFF
+	 * takes the maximum number of HFS blocks so that the buffer
+	 * will remain smaller than or equal to BYTES_MAX_BUFF, with
+	 * a minimum of 1 HFS block */
+	bytes_buff = PED_BE32_TO_CPU (priv_data->vh->block_size)
+		     * (PedSector) BLOCK_MAX_BUFF;
+	if (bytes_buff > BYTES_MAX_BUFF) {
+		hfsp_block_count = BYTES_MAX_BUFF
+				 / PED_BE32_TO_CPU (priv_data->vh->block_size);
+		if (!hfsp_block_count)
+			hfsp_block_count = 1;
+		bytes_buff = (PedSector) hfsp_block_count
+			     * PED_BE32_TO_CPU (priv_data->vh->block_size);
+	} else
+		hfsp_block_count = BLOCK_MAX_BUFF;
+
+	/* If the cache code requests more space, give it to him */
+	if (bytes_buff < hfsc_cache_needed_buffer (cache))
+		bytes_buff = hfsc_cache_needed_buffer (cache);
+
+	hfsp_block = (uint8_t*) ped_malloc (bytes_buff);
+	if (!hfsp_block)
+		goto error_cache;
+
+	if (!hfsplus_read_bad_blocks (fs)) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Bad blocks list could not be loaded."));
+		goto error_alloc;
+	}
+
+	while ( fblock < ( priv_data->plus_geom->length - 2 )
+			 / ( PED_BE32_TO_CPU (vh->block_size)
+			     / PED_SECTOR_SIZE_DEFAULT ) ) {
+		if (TST_BLOC_OCCUPATION (priv_data->alloc_map, fblock)
+		    && (!hfsplus_is_bad_block (fs, fblock))) {
+			if (!(ret = hfsplus_move_extent_starting_at (fs,
+						&fblock, &to_fblock, cache)))
+				to_fblock = ++fblock;
+			else if (ret == -1) {
+				ped_exception_throw (
+					PED_EXCEPTION_ERROR,
+					PED_EXCEPTION_CANCEL,
+					_("An error occurred during extent "
+					  "relocation."));
+				goto error_alloc;
+			}
+		} else {
+			fblock++;
+		}
+
+		ped_timer_update(timer, (float)(to_fblock - start) / divisor);
+	}
+
+	ped_free (hfsp_block); hfsp_block = NULL; hfsp_block_count = 0;
+	hfsc_delete_cache (cache);
+	return 1;
+
+error_alloc:
+	ped_free (hfsp_block); hfsp_block = NULL; hfsp_block_count = 0;
+error_cache:
+	hfsc_delete_cache (cache);
+	return 0;
+}
+
+#endif /* !DISCOVER_ONLY */
diff --git a/parted-1.8.7/libparted/fs/hfs/reloc_plus.h b/parted-1.8.7/libparted/fs/hfs/reloc_plus.h
new file mode 100644
index 0000000..07db0aa
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/hfs/reloc_plus.h
@@ -0,0 +1,37 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2004 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef _RELOC_PLUS_H
+#define _RELOC_PLUS_H
+
+#include <parted/parted.h>
+#include <parted/endian.h>
+#include <parted/debug.h>
+
+#include "hfs.h"
+
+int
+hfsplus_update_vh (PedFileSystem *fs);
+
+int
+hfsplus_pack_free_space_from_block (PedFileSystem *fs, unsigned int fblock,
+				    PedTimer* timer, unsigned int to_free);
+
+
+#endif /* _RELOC_PLUS_H */
diff --git a/parted-1.8.7/libparted/fs/jfs/Makefile.am b/parted-1.8.7/libparted/fs/jfs/Makefile.am
new file mode 100644
index 0000000..0218667
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/jfs/Makefile.am
@@ -0,0 +1,8 @@
+partedincludedir	= -I$(top_srcdir)/include
+
+noinst_LTLIBRARIES	= libjfs.la
+libjfs_la_SOURCES	= jfs.c jfs_superblock.h jfs_types.h
+
+INCLUDES = $(partedincludedir) $(INTLINCS)
+
+MAINTAINERCLEANFILES = Makefile.in
\ No newline at end of file
diff --git a/parted-1.8.7/libparted/fs/jfs/Makefile.in b/parted-1.8.7/libparted/fs/jfs/Makefile.in
new file mode 100644
index 0000000..c7e2afd
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/jfs/Makefile.in
@@ -0,0 +1,624 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = libparted/fs/jfs
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+libjfs_la_LIBADD =
+am_libjfs_la_OBJECTS = jfs.lo
+libjfs_la_OBJECTS = $(am_libjfs_la_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/lib@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(libjfs_la_SOURCES)
+DIST_SOURCES = $(libjfs_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+partedincludedir = -I$(top_srcdir)/include
+noinst_LTLIBRARIES = libjfs.la
+libjfs_la_SOURCES = jfs.c jfs_superblock.h jfs_types.h
+INCLUDES = $(partedincludedir) $(INTLINCS)
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  libparted/fs/jfs/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  libparted/fs/jfs/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libjfs.la: $(libjfs_la_OBJECTS) $(libjfs_la_DEPENDENCIES) 
+	$(LINK)  $(libjfs_la_OBJECTS) $(libjfs_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jfs.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/libparted/fs/jfs/jfs.c b/parted-1.8.7/libparted/fs/jfs/jfs.c
new file mode 100644
index 0000000..259158c
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/jfs/jfs.c
@@ -0,0 +1,110 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2001 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/endian.h>
+
+#define _JFS_UTILITY
+#include "jfs_types.h"
+#include "jfs_superblock.h"
+
+#define JFS_SUPER_SECTOR 64
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#define JFS_BLOCK_SIZES		((int[2]){512, 0})
+
+static PedGeometry*
+jfs_probe (PedGeometry* geom)
+{
+	union {
+		struct superblock	sb;
+		char			bytes[512];
+	} buf;
+
+	if (geom->length < JFS_SUPER_SECTOR + 1)
+		return NULL;
+	if (!ped_geometry_read (geom, &buf, JFS_SUPER_SECTOR, 1))
+		return NULL;
+
+	if (strncmp (buf.sb.s_magic, JFS_MAGIC, 4) == 0) {
+		PedSector block_size = PED_LE32_TO_CPU (buf.sb.s_pbsize) / 512;
+		PedSector block_count = PED_LE64_TO_CPU (buf.sb.s_size);
+
+		return ped_geometry_new (geom->dev, geom->start,
+					 block_size * block_count);
+	} else {
+		return NULL;
+	}
+}
+
+#ifndef DISCOVER_ONLY
+static int
+jfs_clobber (PedGeometry* geom)
+{
+	char	buf[512];
+
+	memset (buf, 0, 512);
+	return ped_geometry_write (geom, buf, JFS_SUPER_SECTOR, 1);
+}
+#endif /* !DISCOVER_ONLY */
+
+static PedFileSystemOps jfs_ops = {
+	probe:		jfs_probe,
+#ifndef DISCOVER_ONLY
+	clobber:	jfs_clobber,
+#else
+	clobber:	NULL,
+#endif
+	open:		NULL,
+	create:		NULL,
+	close:		NULL,
+	check:		NULL,
+	copy:		NULL,
+	resize:		NULL,
+	get_create_constraint:	NULL,
+	get_resize_constraint:	NULL,
+	get_copy_constraint:	NULL
+};
+
+static PedFileSystemType jfs_type = {
+	next:	NULL,
+	ops:	&jfs_ops,
+	name:	"jfs",
+	block_sizes: JFS_BLOCK_SIZES
+};
+
+void
+ped_file_system_jfs_init ()
+{
+	ped_file_system_type_register (&jfs_type);
+}
+
+void
+ped_file_system_jfs_done ()
+{
+	ped_file_system_type_unregister (&jfs_type);
+}
diff --git a/parted-1.8.7/libparted/fs/jfs/jfs_superblock.h b/parted-1.8.7/libparted/fs/jfs/jfs_superblock.h
new file mode 100644
index 0000000..c61dc24
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/jfs/jfs_superblock.h
@@ -0,0 +1,145 @@
+/*
+ *   Copyright (c) International Business Machines  Corp., 2000
+ *
+ *   This program is free software;  you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or 
+ *   (at your option) any later version.
+ * 
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY;  without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
+ *   the GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program;  if not, write to the Free Software 
+ *   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ *
+ */
+#ifndef	_H_JFS_SUPERBLOCK
+#define _H_JFS_SUPERBLOCK
+/*
+ *	jfs_superblock.h
+ */
+
+/*
+ * make the magic number something a human could read
+ */
+#define JFS_MAGIC 	"JFS1"	/* Magic word: Version 1 */
+
+#define JFS_VERSION	1	/* Version number: Version 1 */
+
+#define LV_NAME_SIZE	11	/* MUST BE 11 for OS/2 boot sector */
+
+/* 
+ *	aggregate superblock 
+ *
+ * The name superblock is too close to super_block, so the name has been
+ * changed to jfs_superblock.  The utilities are still using the old name.
+ */
+#ifdef _JFS_UTILITY
+struct superblock
+#else
+struct jfs_superblock
+#endif
+{
+	char s_magic[4];	/* 4: magic number */
+	u32 s_version;		/* 4: version number */
+
+	s64 s_size;		/* 8: aggregate size in hardware/LVM blocks;
+				 * VFS: number of blocks
+				 */
+	s32 s_bsize;		/* 4: aggregate block size in bytes; 
+				 * VFS: fragment size
+				 */
+	s16 s_l2bsize;		/* 2: log2 of s_bsize */
+	s16 s_l2bfactor;	/* 2: log2(s_bsize/hardware block size) */
+	s32 s_pbsize;		/* 4: hardware/LVM block size in bytes */
+	s16 s_l2pbsize;		/* 2: log2 of s_pbsize */
+	s16 pad;		/* 2: padding necessary for alignment */
+
+	u32 s_agsize;		/* 4: allocation group size in aggr. blocks */
+
+	u32 s_flag;		/* 4: aggregate attributes:
+				 *    see jfs_filsys.h
+				 */
+	u32 s_state;		/* 4: mount/unmount/recovery state: 
+				 *    see jfs_filsys.h
+				 */
+	s32 s_compress;		/* 4: > 0 if data compression */
+
+	pxd_t s_ait2;		/* 8: first extent of secondary
+				 *    aggregate inode table
+				 */
+
+	pxd_t s_aim2;		/* 8: first extent of secondary
+				 *    aggregate inode map
+				 */
+	u32 s_logdev;		/* 4: device address of log */
+	s32 s_logserial;	/* 4: log serial number at aggregate mount */
+	pxd_t s_logpxd;		/* 8: inline log extent */
+
+	pxd_t s_fsckpxd;	/* 8: inline fsck work space extent */
+
+	struct timestruc_t s_time;	/* 8: time last updated */
+
+	s32 s_fsckloglen;	/* 4: Number of file system blocks reserved for
+				 *    the fsck service log.  
+				 *    N.B. These blocks are divided among the
+				 *         versions kept.  This is not a per
+				 *         version size.
+				 *    N.B. These blocks are included in the 
+				 *         length field of s_fsckpxd.
+				 */
+	s8 s_fscklog;		/* 1: which fsck service log is most recent
+				 *    0 => no service log data yet
+				 *    1 => the first one
+				 *    2 => the 2nd one
+				 */
+	char s_fpack[11];	/* 11: file system volume name 
+				 *     N.B. This must be 11 bytes to
+				 *          conform with the OS/2 BootSector
+				 *          requirements
+				 */
+
+	/* extendfs() parameter under s_state & FM_EXTENDFS */
+	s64 s_xsize;		/* 8: extendfs s_size */
+	pxd_t s_xfsckpxd;	/* 8: extendfs fsckpxd */
+	pxd_t s_xlogpxd;	/* 8: extendfs logpxd */
+	/* - 128 byte boundary - */
+
+	/*
+	 *      DFS VFS support (preliminary) 
+	 */
+	char s_attach;		/* 1: VFS: flag: set when aggregate is attached
+				 */
+	u8 rsrvd4[7];		/* 7: reserved - set to 0 */
+
+	u64 totalUsable;	/* 8: VFS: total of 1K blocks which are
+				 * available to "normal" (non-root) users.
+				 */
+	u64 minFree;		/* 8: VFS: # of 1K blocks held in reserve for 
+				 * exclusive use of root.  This value can be 0,
+				 * and if it is then totalUsable will be equal 
+				 * to # of blocks in aggregate.  I believe this
+				 * means that minFree + totalUsable = # blocks.
+				 * In that case, we don't need to store both 
+				 * totalUsable and minFree since we can compute
+				 * one from the other.  I would guess minFree 
+				 * would be the one we should store, and 
+				 * totalUsable would be the one we should 
+				 * compute.  (Just a guess...)
+				 */
+
+	u64 realFree;		/* 8: VFS: # of free 1K blocks can be used by 
+				 * "normal" users.  It may be this is something
+				 * we should compute when asked for instead of 
+				 * storing in the superblock.  I don't know how
+				 * often this information is needed.
+				 */
+	/*
+	 *      graffiti area
+	 */
+};
+
+#endif /*_H_JFS_SUPERBLOCK */
diff --git a/parted-1.8.7/libparted/fs/jfs/jfs_types.h b/parted-1.8.7/libparted/fs/jfs/jfs_types.h
new file mode 100644
index 0000000..7177f2a
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/jfs/jfs_types.h
@@ -0,0 +1,528 @@
+/*
+ *   Copyright (c) International Business Machines  Corp., 2000
+ *
+ *   This program is free software;  you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY;  without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
+ *   the GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program;  if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _H_JFS_TYPES
+#define	_H_JFS_TYPES
+
+/*
+ *	jfs_types.h:
+ *
+ * basic type/utility  definitions
+ *
+ * note: this header file must be the 1st include file
+ * of JFS include list in all JFS .c file.
+ */
+
+#ifdef _JFS_UTILITY
+/* this is defined in asm/byteorder.h for i386, but
+ * is NOT defined in asm/byteorder.h for ppc (non-kernel).
+ * Until that is changed, we'll define it here.    */
+#define __BYTEORDER_HAS_U64__
+
+#include <sys/types.h>
+//#include <asm/byteorder.h>
+typedef unsigned short UniChar;
+#else
+#include <linux/types.h>
+#include <linux/jfs_fs.h>
+#include <linux/nls.h>
+
+#ifndef _ULS_UNICHAR_DEFINED
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,3,0))
+typedef wchar_t UniChar;
+#else
+typedef unsigned short UniChar;
+#endif
+#define _ULS_UNICHAR_DEFINED
+#endif
+#endif
+/* #include "endian24.h" */
+
+/*
+ *	primitive types
+ */
+#ifdef _JFS_UTILITY
+typedef int8_t s8;
+typedef uint8_t u8;
+typedef int16_t s16;
+typedef uint16_t u16;
+typedef int32_t s32;
+typedef uint32_t u32;
+typedef int64_t s64;
+typedef uint64_t u64;
+
+#ifndef _UINT_TYPES
+	/*      unicode includes also define these */
+typedef u16 uint16;
+typedef u32 uint32;
+#define _UINT_TYPES
+#endif
+
+typedef s8 int8;
+typedef u8 uint8;
+typedef s16 int16;
+typedef s32 int32;
+typedef s64 int64;
+typedef u64 uint64;
+
+#endif				/* _JFS_UTILITY */
+/*
+ * Holdovers from OS/2.  Try to get away from using these altogether.
+ */
+typedef unsigned long ULONG;
+typedef unsigned short USHORT;
+typedef unsigned char UCHAR;
+typedef void *PVOID;
+#define MAXPATHLEN      255
+
+
+/*
+ * Almost identical to Linux's timespec, but not quite
+ */
+struct timestruc_t {
+	u32 tv_sec;
+	u32 tv_nsec;
+};
+
+/*
+ *	handy
+ */
+#undef MIN
+#define	MIN(a,b) (((a)<(b))?(a):(b))
+#undef MAX
+#define	MAX(a,b) (((a)>(b))?(a):(b))
+#undef ROUNDUP
+#define	ROUNDUP(x, y)	( ((x) + ((y) - 1)) & ~((y) - 1) )
+
+#define LEFTMOSTONE	0x80000000
+#define	HIGHORDER	0x80000000u	/* high order bit on            */
+#define	ONES		0xffffffffu	/* all bit on                   */
+
+typedef int boolean_t;
+#define TRUE 1
+#define FALSE 0
+
+/*
+ *	logical xd (lxd)
+ */
+typedef struct {
+	unsigned len:24;
+	unsigned off1:8;
+	u32 off2;
+} lxd_t;
+
+/* lxd_t field construction */
+#define	LXDlength(lxd, length32)	( (lxd)->len = length32 )
+#define	LXDoffset(lxd, offset64)\
+{\
+	(lxd)->off1 = ((s64)offset64) >> 32;\
+	(lxd)->off2 = (offset64) & 0xffffffff;\
+}
+
+/* lxd_t field extraction */
+#define	lengthLXD(lxd)	( (lxd)->len )
+#define	offsetLXD(lxd)\
+	( ((s64)((lxd)->off1)) << 32 | (lxd)->off2 )
+
+/* lxd list */
+typedef struct {
+	s16 maxnlxd;
+	s16 nlxd;
+	lxd_t *lxd;
+} lxdlist_t;
+
+/*
+ *	physical xd (pxd)
+ */
+typedef struct {
+	unsigned len:24;
+	unsigned addr1:8;
+	u32 addr2;
+} pxd_t;
+
+/* xd_t field construction */
+
+#define	PXDlength(pxd, length32)	((pxd)->len = __cpu_to_le24(length32))
+#define	PXDaddress(pxd, address64)\
+{\
+	(pxd)->addr1 = ((s64)address64) >> 32;\
+	(pxd)->addr2 = __cpu_to_le32((address64) & 0xffffffff);\
+}
+
+/* xd_t field extraction */
+#define	lengthPXD(pxd)	__le24_to_cpu((pxd)->len)
+#define	addressPXD(pxd)\
+	( ((s64)((pxd)->addr1)) << 32 | __le32_to_cpu((pxd)->addr2))
+
+/* pxd list */
+typedef struct {
+	s16 maxnpxd;
+	s16 npxd;
+	pxd_t pxd[8];
+} pxdlist_t;
+
+
+/*
+ *	data extent descriptor (dxd)
+ */
+typedef struct {
+	unsigned flag:8;	/* 1: flags */
+	unsigned rsrvd:24;	/* 3: */
+	u32 size;		/* 4: size in byte */
+	unsigned len:24;	/* 3: length in unit of fsblksize */
+	unsigned addr1:8;	/* 1: address in unit of fsblksize */
+	u32 addr2;		/* 4: address in unit of fsblksize */
+} dxd_t;			/* - 16 - */
+
+/* dxd_t flags */
+#define	DXD_INDEX	0x80	/* B+-tree index */
+#define	DXD_INLINE	0x40	/* in-line data extent */
+#define	DXD_EXTENT	0x20	/* out-of-line single extent */
+#define	DXD_FILE	0x10	/* out-of-line file (inode) */
+#define DXD_CORRUPT	0x08	/* Inconsistency detected */
+
+/* dxd_t field construction
+ *	Conveniently, the PXD macros work for DXD
+ */
+#define	DXDlength	PXDlength
+#define	DXDaddress	PXDaddress
+#define	lengthDXD	lengthPXD
+#define	addressDXD	addressPXD
+
+/*
+ *      directory entry argument
+ */
+typedef struct component_name {
+	int namlen;
+	UniChar *name;
+} component_t;
+
+
+/*
+ *	DASD limit information - stored in directory inode
+ */
+typedef struct dasd {
+	u8 thresh;		/* Alert Threshold (in percent) */
+	u8 delta;		/* Alert Threshold delta (in percent)   */
+	u8 rsrvd1;
+	u8 limit_hi;		/* DASD limit (in logical blocks)       */
+	u32 limit_lo;		/* DASD limit (in logical blocks)       */
+	u8 rsrvd2[3];
+	u8 used_hi;		/* DASD usage (in logical blocks)       */
+	u32 used_lo;		/* DASD usage (in logical blocks)       */
+} dasd_t;
+
+#define DASDLIMIT(dasdp) \
+	(((u64)((dasdp)->limit_hi) << 32) + __le32_to_cpu((dasdp)->limit_lo))
+#define setDASDLIMIT(dasdp, limit)\
+{\
+	(dasdp)->limit_hi = ((u64)limit) >> 32;\
+	(dasdp)->limit_lo = __cpu_to_le32(limit);\
+}
+#define DASDUSED(dasdp) \
+	(((u64)((dasdp)->used_hi) << 32) + __le32_to_cpu((dasdp)->used_lo))
+#define setDASDUSED(dasdp, used)\
+{\
+	(dasdp)->used_hi = ((u64)used) >> 32;\
+	(dasdp)->used_lo = __cpu_to_le32(used);\
+}
+
+/*
+ *		circular doubly-linked list (cdll)
+ *
+ * A circular doubly-linked list (cdll) is anchored by a pair of pointers,
+ * one to the head of the list and the other to the tail of the list.
+ * The elements are doubly linked so that an arbitrary element can be
+ * removed without a need to traverse the list.
+ * New elements can be added to the list before or after an existing element,
+ * at the head of the list, or at the tail of the list.
+ * A circle queue may be traversed in either direction.
+ *
+ * +----------+        +-------------------------------------+
+ * |          |        |                                     |
+ * +->+-----+ |        +->+-----+  +->+-----+    +->+-----+  |
+ * |  |  h  +-+        |  |  h  +--+  |  n  +----+  |  n  +--+
+ * |  +-----+          |  +-----+  |  +-----+    |  +-----+
+ * |  |  t  +-+     +-----+  t  |  |  |  p  +--+ |  |  p  +--+
+ * |  +-----+ |     |  |  +-----+  |  +-----+  | |  +-----+  |
+ * +----------+     |  +-----------------------+ |           |
+ *                  |              |             |           |
+ *                  |              +-------------------------+
+ *                  |                            |
+ *                  +----------------------------+
+ */
+/*
+ *	define header
+ *
+ * list header field definition in header element:
+ *
+ * type - type of list element struct embedding the link field
+ */
+#define CDLL_HEADER(type)\
+struct {\
+	struct type *head;\
+	struct type *tail;\
+}
+
+struct cdll_header {
+	struct cdll_header *head;
+	struct cdll_header *tail;
+};
+
+/*
+ *	define link
+ *
+ * list link field definition in list element:
+ *
+ * type - type of parent list element struct embedding the link field
+ */
+#define CDLL_ENTRY(type)\
+struct {\
+	struct type *next;\
+	struct type *prev;\
+}
+
+struct cdll_entry {
+	struct cdll_entry *next;
+	struct cdll_entry *prev;
+};
+
+/*
+ *	initialize header
+ *
+ * header - ptr to the header field in the header element
+ */
+#define	CDLL_INIT(header) {\
+	(header)->head = (void *)(header);\
+	(header)->tail = (void *)(header);\
+}
+
+/*
+ *	scan list
+ *
+ * header - ptr to the header field in the header element
+ * elm - ptr to the element to be inserted
+ * field - name of the link field in the list element
+ *
+ * struct header_container	*container;
+ * struct header_type	*header;
+ * struct element_type	*elm;
+ *
+ * header = &container->header_field;
+ * for (elm = header->head; elm != (void *)header; elm = elm->field.next)
+ */
+
+/*
+ *	insert <elm> at head of list anchored at <header>
+ *
+ * header - ptr to the header field in the header element
+ * elm - ptr to the list element to be inserted
+ * field - name of the link field in the list element
+ */
+#define CDLL_INSERT_HEAD(header, elm, field) {\
+	(elm)->field.next = (header)->head;\
+	(elm)->field.prev = (void *)(header);\
+	if ((header)->tail == (void *)(header))\
+		(header)->tail = (elm);\
+	else\
+		(header)->head->field.prev = (elm);\
+	(header)->head = (elm);\
+}
+
+/*
+ *	insert <elm> at tail of list anchored at <header>
+ *
+ * header - ptr to the header field in the header element
+ * elm - ptr to the list element to be inserted
+ * field - name of the link field in the list element
+ */
+#define CDLL_INSERT_TAIL(header, elm, field) {\
+	(elm)->field.next = (void *)(header);\
+	(elm)->field.prev = (header)->tail;\
+	if ((header)->head == (void *)(header))\
+		(header)->head = (elm);\
+	else\
+		(header)->tail->field.next = (elm);\
+	(header)->tail = (elm);\
+}
+
+/*
+ *	insert <elm> after <listelm> of list anchored at <header>
+ *
+ * header - ptr to the header field in the header element
+ * listelm - ptr to the list element at insertion point
+ * elm - ptr to the list element to be inserted
+ * field - name of the link field in the list element
+ */
+#define CDLL_INSERT_AFTER(header, listelm, elm, field) {\
+	(elm)->field.next = (listelm)->field.next;\
+	(elm)->field.prev = (listelm);\
+	if ((listelm)->field.next == (void *)(header))\
+		(header)->tail = (elm);\
+	else\
+		(listelm)->field.next->field.prev = (elm);\
+	(listelm)->field.next = (elm);\
+}
+
+/*
+ *	insert <elm> before <listelm> of list anchored at <header>
+ *
+ * header - ptr to the header field in the header element
+ * listelm - ptr to list element at insertion point
+ * elm - ptr to the element to be inserted
+ * field - name of the link field in the list element
+ */
+#define CDLL_INSERT_BEFORE(header, listelm, elm, field) {\
+	(elm)->field.next = (listelm);\
+	(elm)->field.prev = (listelm)->field.prev;\
+	if ((listelm)->field.prev == (void *)(header))\
+		(header)->head = (elm);\
+	else\
+		(listelm)->field.prev->field.next = (elm);\
+	(listelm)->field.prev = (elm);\
+}
+
+/*
+ *	remove <elm> from list anchored at <header>
+ *
+ * header - ptr to the header field in the header element
+ * elm - ptr to the list element to be removed
+ * field - name of the link field in the list element
+ */
+#define	CDLL_REMOVE(header, elm, field) {\
+	if ((elm)->field.next == (void *)(header))\
+		(header)->tail = (elm)->field.prev;\
+	else\
+		(elm)->field.next->field.prev = (elm)->field.prev;\
+	if ((elm)->field.prev == (void *)(header))\
+		(header)->head = (elm)->field.next;\
+	else\
+		(elm)->field.prev->field.next = (elm)->field.next;\
+}
+
+#define CDLL_MOVE_TO_HEAD(header, elm, field) {\
+	if ((elm)->field.prev != (void *)(header))\
+	{\
+		if ((elm)->field.next == (void *)(header))\
+			(header)->tail = (elm)->field.prev;\
+		else\
+			(elm)->field.next->field.prev = (elm)->field.prev;\
+		(elm)->field.prev->field.next = (elm)->field.next;\
+		(elm)->field.next = (header)->head;\
+		(elm)->field.prev = (void *)(header);\
+		(header)->head->field.prev = (elm);\
+		(header)->head = (elm);\
+	}\
+}
+
+#define CDLL_MOVE_TO_TAIL(header, elm, field) {\
+	if ((elm)->field.next != (void *)(header))\
+	{\
+		(elm)->field.next->field.prev = (elm)->field.prev;\
+		if ((elm)->field.prev == (void *)(header))\
+			(header)->head = (elm)->field.next;\
+		else\
+			(elm)->field.prev->field.next = (elm)->field.next;\
+		(elm)->field.next = (void *)(header);\
+		(elm)->field.prev = (header)->tail;\
+		(header)->tail->field.next = (elm);\
+		(header)->tail = (elm);\
+	}\
+}
+
+/*
+ *	orphan list element
+ */
+#define	CDLL_SELF(elm, field)\
+	(elm)->field.next = (elm)->field.prev = (elm);
+
+
+/*
+ *		single head doubly-linked list
+ *
+ * A list is headed by a single head pointer.
+ * The elements are doubly linked so that an arbitrary element can be
+ * removed without a need to traverse the list.
+ * New elements can be added to the list at the head of the list, or
+ * after an existing element (NO insert at tail).
+ * A list may only be traversed in the forward direction.
+ * (note: the list is NULL terminated in next field.)
+ *
+ *   +-----+          +->+-----+  +->+-----+    +->+-----+
+ *   | NULL|          |  |  h  +--+  |  n  +----+  | NULL|
+ *   +-----+          |  +-----+  |  +-----+       +-----+
+ *                    |           |  |  p  +--+    |  p  +--+
+ *                    |           |  +-----+  |    +-----+  |
+ *                    +-----------------------+             |
+ *                                |                         |
+ *                                +-------------------------+
+ */
+#define LIST_HEADER(type)\
+struct {\
+	struct type *head;\
+}
+
+#define LIST_ENTRY(type)\
+struct {\
+	struct type *next;\
+	struct type **prev;\
+}
+
+#define	LIST_INIT(header)	{ (header)->head = NULL; }
+
+/*
+ *	scan list
+ *
+ * header - ptr to the header (field in header element)
+ * elm - ptr to the element to be inserted
+ * field - name of the link field in list element
+ *
+ * struct header_container	*container;
+ * struct header_type	*header;
+ * struct element_type	*elm;
+ *
+ * header = &container->header_field;
+ * for (elm = header->head; elm; elm = elm->field.next)
+ */
+
+#define LIST_INSERT_HEAD(header, elm, field) {\
+	if (((elm)->field.next = (header)->head) != NULL)\
+		(header)->head->field.prev = &(elm)->field.next;\
+	(header)->head = (elm);\
+	(elm)->field.prev = &(header)->head;\
+}
+
+#define LIST_INSERT_AFTER(listelm, elm, field) {\
+	if (((elm)->field.next = (listelm)->field.next) != NULL)\
+		(listelm)->field.next->field.prev = &(elm)->field.next;\
+	(listelm)->field.next = (elm);\
+	(elm)->field.prev = &(listelm)->field.next;\
+}
+
+#define LIST_REMOVE(elm, field) {\
+	if ((elm)->field.next != NULL)\
+		(elm)->field.next->field.prev = (elm)->field.prev;\
+	*(elm)->field.prev = (elm)->field.next;\
+}
+
+#define LIST_SELF(elm, field) {\
+	(elm)->field.next = NULL;\
+	(elm)->field.prev = &(elm)->field.next;\
+}
+
+#endif				/* !_H_JFS_TYPES */
diff --git a/parted-1.8.7/libparted/fs/linux_swap/Makefile.am b/parted-1.8.7/libparted/fs/linux_swap/Makefile.am
new file mode 100644
index 0000000..a366fc6
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/linux_swap/Makefile.am
@@ -0,0 +1,8 @@
+partedincludedir	= -I$(top_srcdir)/include
+
+noinst_LTLIBRARIES	= liblinuxswap.la
+liblinuxswap_la_SOURCES	= linux_swap.c
+
+INCLUDES = $(partedincludedir) $(INTLINCS)
+
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/parted-1.8.7/libparted/fs/linux_swap/Makefile.in b/parted-1.8.7/libparted/fs/linux_swap/Makefile.in
new file mode 100644
index 0000000..41aac73
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/linux_swap/Makefile.in
@@ -0,0 +1,624 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = libparted/fs/linux_swap
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+liblinuxswap_la_LIBADD =
+am_liblinuxswap_la_OBJECTS = linux_swap.lo
+liblinuxswap_la_OBJECTS = $(am_liblinuxswap_la_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/lib@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(liblinuxswap_la_SOURCES)
+DIST_SOURCES = $(liblinuxswap_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+partedincludedir = -I$(top_srcdir)/include
+noinst_LTLIBRARIES = liblinuxswap.la
+liblinuxswap_la_SOURCES = linux_swap.c
+INCLUDES = $(partedincludedir) $(INTLINCS)
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  libparted/fs/linux_swap/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  libparted/fs/linux_swap/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+liblinuxswap.la: $(liblinuxswap_la_OBJECTS) $(liblinuxswap_la_DEPENDENCIES) 
+	$(LINK)  $(liblinuxswap_la_OBJECTS) $(liblinuxswap_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linux_swap.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/libparted/fs/linux_swap/linux_swap.c b/parted-1.8.7/libparted/fs/linux_swap/linux_swap.c
new file mode 100644
index 0000000..a8e95fd
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/linux_swap/linux_swap.c
@@ -0,0 +1,743 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 1999, 2000, 2002, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+/* It's a bit silly calling a swap partition a file system.  Oh well...  */
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/endian.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#include <unistd.h>
+
+#define SWAP_SPECIFIC(fs) ((SwapSpecific*) (fs->type_specific))
+#define BUFFER_SIZE 128
+
+#define LINUXSWAP_BLOCK_SIZES       ((int[2]){512, 0})
+
+typedef struct {
+	char		page_map[1];
+} SwapOldHeader;
+
+/* ripped from mkswap */
+typedef struct {
+        char            bootbits[1024];    /* Space for disklabel etc. */
+        uint32_t        version;
+        uint32_t        last_page;
+        uint32_t        nr_badpages;
+        unsigned char   sws_uuid[16];
+        unsigned char   sws_volume[16];
+        uint32_t        padding[117];
+        uint32_t        badpages[1];
+} SwapNewHeader;
+
+typedef struct {
+	union {
+		SwapNewHeader	new;
+		SwapOldHeader	old;
+	}* header;
+
+	void*		buffer;
+	int		buffer_size;
+
+	PedSector	page_sectors;
+	unsigned int	page_count;
+	unsigned int	version;
+	unsigned int	max_bad_pages;
+} SwapSpecific;
+
+static PedFileSystemType _swap_v1_type;
+static PedFileSystemType _swap_v2_type;
+static PedFileSystemType _swap_swsusp_type;
+
+static PedFileSystem* _swap_v1_open (PedGeometry* geom);
+static PedFileSystem* _swap_v2_open (PedGeometry* geom);
+static PedFileSystem* _swap_swsusp_open (PedGeometry* geom);
+static int swap_close (PedFileSystem* fs);
+
+static PedGeometry*
+_generic_swap_probe (PedGeometry* geom, int kind)
+{
+	PedFileSystem*	fs;
+	SwapSpecific*	fs_info;
+	PedGeometry*	probed_geom;
+	PedSector	length;
+
+        switch (kind) {
+        /* Check for old style swap partitions. */
+                case 0:
+                        fs = _swap_v1_open(geom);
+                        break;
+        /* Check for new style swap partitions. */
+                case 1:
+                        fs = _swap_v2_open(geom);
+                        break;
+        /* Check for swap partitions containing swsusp data. */
+                case -1:
+                        fs = _swap_swsusp_open(geom);
+                        break;
+        /* Not reached. */
+                default:
+                        goto error;
+        }
+
+	if (!fs)
+		goto error;
+	fs_info = SWAP_SPECIFIC (fs);
+
+	if (fs_info->version)
+		length = fs_info->page_sectors * fs_info->page_count;
+	else
+	        length = geom->length;
+
+	probed_geom = ped_geometry_new (geom->dev, geom->start, length);
+	if (!probed_geom)
+		goto error_close_fs;
+	swap_close (fs);
+	return probed_geom;
+
+error_close_fs:
+	swap_close (fs);
+error:
+	return NULL;
+}
+
+#ifndef DISCOVER_ONLY
+static int
+_generic_swap_clobber (PedGeometry* geom, int kind)
+{
+	PedFileSystem*		fs;
+	char			buf[512];
+
+        switch (kind) {
+        /* Check for old style swap partitions. */
+                case 0:
+                        fs = _swap_v1_open(geom);
+                        break;
+        /* Check for new style swap partitions. */
+                case 1:
+                        fs = _swap_v2_open(geom);
+                        break;
+        /* Check for swap partitions containing swsusp data. */
+                case -1:
+                        fs = _swap_swsusp_open(geom);
+                        break;
+        /* Not reached */
+                default:
+                        goto error;
+        }
+
+	if (!fs)
+		return 1;
+
+	memset (buf, 0, 512);
+	if (!ped_geometry_write (geom, buf, getpagesize() / 512 - 1, 1))
+		goto error_close_fs;
+
+	swap_close (fs);
+	return 1;
+
+error_close_fs:
+	swap_close (fs);
+error:
+	return 0;
+}
+#endif /* !DISCOVER_ONLY */
+
+static int
+swap_init (PedFileSystem* fs, int fresh)
+{
+	SwapSpecific*	fs_info = SWAP_SPECIFIC (fs);
+
+	fs_info->page_sectors = getpagesize () / 512;
+	fs_info->page_count = fs->geom->length / fs_info->page_sectors;
+	fs_info->version = 1;
+	fs_info->max_bad_pages = (getpagesize()
+					- sizeof (SwapNewHeader)) / 4;
+
+	if (fresh) {
+		memset (fs_info->header, 0, getpagesize());
+                return 1;
+        }
+	else
+                return ped_geometry_read (fs->geom, fs_info->header,
+                                          0, fs_info->page_sectors);
+}
+
+static PedFileSystem*
+swap_alloc (PedGeometry* geom)
+{
+	PedFileSystem*	fs;
+	SwapSpecific*	fs_info;
+
+	fs = (PedFileSystem*) ped_malloc (sizeof (PedFileSystem));
+	if (!fs)
+		goto error;
+
+	fs->type_specific = (SwapSpecific*) ped_malloc (sizeof (SwapSpecific));
+	if (!fs->type_specific)
+		goto error_free_fs;
+
+	fs_info = SWAP_SPECIFIC (fs);
+	fs_info->header = ped_malloc (getpagesize());
+	if (!fs_info->header)
+		goto error_free_type_specific;
+
+	fs_info = SWAP_SPECIFIC (fs);
+	fs_info->buffer_size = getpagesize() * BUFFER_SIZE;
+	fs_info->buffer = ped_malloc (fs_info->buffer_size);
+	if (!fs_info->buffer)
+		goto error_free_header;
+
+	fs->geom = ped_geometry_duplicate (geom);
+	if (!fs->geom)
+		goto error_free_buffer;
+	fs->type = &_swap_v2_type;
+	return fs;
+
+error_free_buffer:
+	ped_free (fs_info->buffer);
+error_free_header:
+	ped_free (fs_info->header);
+error_free_type_specific:
+	ped_free (fs->type_specific);
+error_free_fs:
+	ped_free (fs);
+error:
+	return NULL;
+}
+
+static void
+swap_free (PedFileSystem* fs)
+{
+	SwapSpecific*	fs_info = SWAP_SPECIFIC (fs);
+
+	ped_free (fs_info->buffer);
+	ped_free (fs_info->header);
+	ped_free (fs->type_specific);
+
+	ped_geometry_destroy (fs->geom);
+	ped_free (fs);
+}
+
+static PedFileSystem*
+_swap_v1_open (PedGeometry* geom)
+{
+	PedFileSystem*		fs;
+	SwapSpecific*		fs_info;
+	const char*		sig;
+
+	fs = swap_alloc (geom);
+	if (!fs)
+		goto error;
+	swap_init (fs, 0);
+
+	fs_info = SWAP_SPECIFIC (fs);
+	if (!ped_geometry_read (fs->geom, fs_info->header, 0,
+				fs_info->page_sectors))
+		goto error_free_fs;
+
+	sig = ((char*) fs_info->header) + getpagesize() - 10;
+	if (strncmp (sig, "SWAP-SPACE", 10) == 0) {
+		fs_info->version = 0;
+		fs_info->page_count
+			= PED_MIN (fs->geom->length / fs_info->page_sectors,
+				   8 * (getpagesize() - 10));
+	} else {
+		char	_sig [11];
+
+		memcpy (_sig, sig, 10);
+		_sig [10] = 0;
+ 		ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("Unrecognised old style linux swap signature '%10s'."), _sig);
+ 		goto error_free_fs;
+	}
+
+	fs->checked = 1;
+	return fs;
+
+error_free_fs:
+	swap_free (fs);
+error:
+	return NULL;
+}
+
+static PedFileSystem*
+_swap_v2_open (PedGeometry* geom)
+{
+	PedFileSystem*		fs;
+	SwapSpecific*		fs_info;
+	const char*		sig;
+
+	fs = swap_alloc (geom);
+	if (!fs)
+		goto error;
+/* 	swap_init (fs, 0); */
+
+/* 	fs_info = SWAP_SPECIFIC (fs); */
+/* 	if (!ped_geometry_read (fs->geom, fs_info->header, 0, */
+/* 				fs_info->page_sectors)) */
+        if (!swap_init(fs, 0))
+		goto error_free_fs;
+
+        fs_info = SWAP_SPECIFIC (fs);
+
+	sig = ((char*) fs_info->header) + getpagesize() - 10;
+	if (strncmp (sig, "SWAPSPACE2", 10) == 0) {
+		fs_info->version = 1;
+		fs_info->page_count = fs_info->header->new.last_page;
+	} else {
+		char	_sig [11];
+
+		memcpy (_sig, sig, 10);
+		_sig [10] = 0;
+ 		ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("Unrecognised new style linux swap signature '%10s'."), _sig);
+ 		goto error_free_fs;
+	}
+
+	fs->checked = 1;
+	return fs;
+
+error_free_fs:
+	swap_free (fs);
+error:
+	return NULL;
+}
+
+static PedFileSystem*
+_swap_swsusp_open (PedGeometry* geom)
+{
+	PedFileSystem*		fs;
+	SwapSpecific*		fs_info;
+	const char*		sig;
+
+	fs = swap_alloc (geom);
+	if (!fs)
+		goto error;
+        fs->type = &_swap_swsusp_type;
+	swap_init (fs, 0);
+
+	fs_info = SWAP_SPECIFIC (fs);
+	if (!ped_geometry_read (fs->geom, fs_info->header, 0,
+				fs_info->page_sectors))
+		goto error_free_fs;
+
+	sig = ((char*) fs_info->header) + getpagesize() - 10;
+       	if (strncmp (sig, "S1SUSPEND", 9) == 0) {
+	        fs_info->version = -1;
+	} else {
+		char	_sig [10];
+
+		memcpy (_sig, sig, 9);
+		_sig [9] = 0;
+ 		ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("Unrecognised swsusp linux swap signature '%9s'."), _sig);
+ 		goto error_free_fs;
+	}
+
+	fs->checked = 1;
+	return fs;
+
+error_free_fs:
+	swap_free (fs);
+error:
+	return NULL;
+}
+
+static int
+swap_close (PedFileSystem* fs)
+{
+	swap_free (fs);
+	return 1;
+}
+
+#ifndef DISCOVER_ONLY
+static int
+swap_new_find_bad_page (PedFileSystem* fs, unsigned int page)
+{
+	SwapSpecific*	fs_info = SWAP_SPECIFIC (fs);
+	unsigned int	i;
+
+	for (i=0; i < fs_info->header->new.nr_badpages; i++) {
+		if (fs_info->header->new.badpages [i] == page)
+			return i;
+	}
+
+	return 0;
+}
+
+static int
+swap_new_remove_bad_page (PedFileSystem* fs, unsigned int page)
+{
+	SwapSpecific*	fs_info = SWAP_SPECIFIC (fs);
+	unsigned int	pos;
+
+	pos = swap_new_find_bad_page (fs, page);
+	if (!pos)
+		return 0;
+
+	for (; pos < fs_info->header->new.nr_badpages; pos++) {
+		fs_info->header->new.badpages [pos - 1]
+			= fs_info->header->new.badpages [pos];
+	}
+
+	return 1;
+}
+
+static int
+swap_mark_page (PedFileSystem* fs, unsigned int page, int ok)
+{
+	SwapSpecific*	fs_info = SWAP_SPECIFIC (fs);
+	char*		ptr;
+	unsigned int	mask;
+
+	if (fs_info->version == 0) {
+		ptr = &fs_info->header->old.page_map [page/8];
+		mask = 1 << (page%8);
+		*ptr = (*ptr & ~mask) + ok * mask;
+	} else {
+		if (ok) {
+			if (swap_new_remove_bad_page (fs, page))
+				fs_info->header->new.nr_badpages--;
+		} else {
+			if (swap_new_find_bad_page (fs, page))
+				return 1;
+
+			if (fs_info->header->new.nr_badpages
+					> fs_info->max_bad_pages) {
+				ped_exception_throw (PED_EXCEPTION_ERROR,
+					PED_EXCEPTION_CANCEL,
+					_("Too many bad pages."));
+				return 0;
+			}
+
+			fs_info->header->new.badpages
+				[fs_info->header->new.nr_badpages] = page;
+			fs_info->header->new.nr_badpages++;
+		}
+	}
+
+	return 1;
+}
+
+static void
+swap_clear_pages (PedFileSystem* fs)
+{
+	SwapSpecific*	fs_info = SWAP_SPECIFIC (fs);
+	unsigned int	i;
+
+	for (i = 1; i < fs_info->page_count; i++) {
+		swap_mark_page (fs, i, 1);
+	}
+
+	if (fs_info->version == 0) {
+		for (; i < 1024; i++) {
+			swap_mark_page (fs, i, 0);
+		}
+	}
+}
+
+static int
+swap_check_pages (PedFileSystem* fs, PedTimer* timer)
+{
+	SwapSpecific*	fs_info = SWAP_SPECIFIC (fs);
+	PedSector	result;
+	int		first_page = 1;
+	int		stop_page = 0;
+	int		last_page = fs_info->page_count - 1;
+	PedTimer*	nested_timer;
+
+	ped_timer_reset (timer);
+	ped_timer_set_state_name (timer, _("checking for bad blocks"));
+
+	swap_clear_pages (fs);
+	while (first_page <= last_page) {
+		nested_timer = ped_timer_new_nested (
+				  timer,
+			       	  1.0 * (last_page - first_page) / last_page);
+		result = ped_geometry_check (
+				fs->geom,
+				fs_info->buffer,
+				fs_info->buffer_size / 512,
+				first_page * fs_info->page_sectors,
+				fs_info->page_sectors,
+				(last_page - first_page + 1)
+					* fs_info->page_sectors,
+				nested_timer);
+		ped_timer_destroy_nested (nested_timer);
+		if (!result)
+			return 1;
+		stop_page = result / fs_info->page_sectors;
+		if (!swap_mark_page (fs, stop_page, 0))
+			return 0;
+		first_page = stop_page + 1;
+	}
+	return 1;
+}
+
+static int
+swap_write (PedFileSystem* fs)
+{
+	SwapSpecific*	fs_info = SWAP_SPECIFIC (fs);
+	char*		sig = ((char*) fs_info->header) + getpagesize() - 10;
+
+	if (fs_info->version == 0) {
+		memcpy (sig, "SWAP-SPACE", 10);
+	} else {
+		fs_info->header->new.version = 1;
+		fs_info->header->new.last_page = fs_info->page_count - 1;
+		fs_info->header->new.nr_badpages = 0;
+		memcpy (sig, "SWAPSPACE2", 10);
+	}
+
+	return ped_geometry_write (fs->geom, fs_info->header, 0,
+				   fs_info->page_sectors);
+}
+
+static PedFileSystem*
+swap_create (PedGeometry* geom, PedTimer* timer)
+{
+	PedFileSystem*		fs;
+
+	fs = swap_alloc (geom);
+	if (!fs)
+		goto error;
+	swap_init (fs, 1);
+	if (!swap_write (fs))
+		goto error_free_fs;
+	return fs;
+
+error_free_fs:
+	swap_free (fs);
+error:
+	return NULL;
+}
+
+static int
+swap_resize (PedFileSystem* fs, PedGeometry* geom, PedTimer* timer)
+{
+	PedGeometry*	old_geom = fs->geom;
+
+	fs->geom = ped_geometry_duplicate (geom);
+	swap_init (fs, old_geom->start != geom->start);
+	if (!swap_write (fs))
+		goto error;
+	ped_geometry_destroy (old_geom);
+	return 1;
+
+error:
+	ped_geometry_destroy (fs->geom);
+	fs->geom = old_geom;
+	return 0;
+}
+
+static PedFileSystem*
+swap_copy (const PedFileSystem* fs, PedGeometry* geom, PedTimer* timer)
+{
+	return ped_file_system_create (geom, &_swap_v2_type, timer);
+}
+
+static int
+swap_check (PedFileSystem* fs, PedTimer* timer)
+{
+	return swap_check_pages (fs, timer)
+		&& swap_write (fs);
+}
+
+static PedConstraint*
+swap_get_create_constraint (const PedDevice* dev)
+{
+	PedGeometry	full_dev;
+
+	if (!ped_geometry_init (&full_dev, dev, 0, dev->length - 1))
+		return NULL;
+	
+	return ped_constraint_new (ped_alignment_any, ped_alignment_any,
+				   &full_dev, &full_dev,
+				   getpagesize() / 512, dev->length);
+}
+
+static PedConstraint*
+swap_get_resize_constraint (const PedFileSystem* fs)
+{
+	return swap_get_create_constraint (fs->geom->dev);
+}
+
+static PedConstraint*
+swap_get_copy_constraint (const PedFileSystem* fs, const PedDevice* dev)
+{
+	return swap_get_create_constraint (dev);
+}
+#endif /* !DISCOVER_ONLY */
+
+static PedGeometry*
+_swap_v1_probe (PedGeometry* geom) {
+        return _generic_swap_probe (geom, 0);
+}
+
+static PedGeometry*
+_swap_v2_probe (PedGeometry* geom) {
+        return _generic_swap_probe (geom, 1);
+}
+
+static PedGeometry*
+_swap_swsusp_probe (PedGeometry* geom) {
+        return _generic_swap_probe (geom, -1);
+}
+
+static int
+_swap_v1_clobber (PedGeometry* geom) {
+        return _generic_swap_clobber (geom, 0);
+}
+
+static int
+_swap_v2_clobber (PedGeometry* geom) {
+        return _generic_swap_clobber (geom, 1);
+}
+
+static int
+_swap_swsusp_clobber (PedGeometry* geom) {
+        return _generic_swap_clobber (geom, -1);
+}
+
+static PedFileSystemOps _swap_v1_ops = {
+	probe:		_swap_v1_probe,
+#ifndef DISCOVER_ONLY
+	clobber:	_swap_v1_clobber,
+	open:		_swap_v1_open,
+	create:		swap_create,
+	close:		swap_close,
+	check:		swap_check,
+	copy:		swap_copy,
+	resize:		swap_resize,
+	get_create_constraint:	swap_get_create_constraint,
+	get_resize_constraint:	swap_get_resize_constraint,
+	get_copy_constraint:	swap_get_copy_constraint
+#else
+	clobber:	NULL,
+	open:		NULL,
+	create:		NULL,
+	close:		NULL,
+	check:		NULL,
+	copy:		NULL,
+	resize:		NULL,
+	get_create_constraint:	NULL,
+	get_resize_constraint:	NULL,
+	get_copy_constraint:	NULL
+#endif /* !DISCOVER_ONLY */
+};
+
+static PedFileSystemOps _swap_v2_ops = {
+	probe:		_swap_v2_probe,
+#ifndef DISCOVER_ONLY
+	clobber:	_swap_v2_clobber,
+	open:		_swap_v2_open,
+	create:		swap_create,
+	close:		swap_close,
+	check:		swap_check,
+	copy:		swap_copy,
+	resize:		swap_resize,
+	get_create_constraint:	swap_get_create_constraint,
+	get_resize_constraint:	swap_get_resize_constraint,
+	get_copy_constraint:	swap_get_copy_constraint
+#else
+	clobber:	NULL,
+	open:		NULL,
+	create:		NULL,
+	close:		NULL,
+	check:		NULL,
+	copy:		NULL,
+	resize:		NULL,
+	get_create_constraint:	NULL,
+	get_resize_constraint:	NULL,
+	get_copy_constraint:	NULL
+#endif /* !DISCOVER_ONLY */
+};
+
+static PedFileSystemOps _swap_swsusp_ops = {
+  probe:		_swap_swsusp_probe,
+#ifndef DISCOVER_ONLY
+	clobber:	_swap_swsusp_clobber,
+	open:		_swap_swsusp_open,
+	create:		swap_create,
+	close:		swap_close,
+	check:		swap_check,
+	copy:		swap_copy,
+	resize:		swap_resize,
+	get_create_constraint:	swap_get_create_constraint,
+	get_resize_constraint:	swap_get_resize_constraint,
+	get_copy_constraint:	swap_get_copy_constraint
+#else
+	clobber:	NULL,
+	open:		NULL,
+	create:		NULL,
+	close:		NULL,
+	check:		NULL,
+	copy:		NULL,
+	resize:		NULL,
+	get_create_constraint:	NULL,
+	get_resize_constraint:	NULL,
+	get_copy_constraint:	NULL
+#endif /* !DISCOVER_ONLY */
+};
+
+static PedFileSystemType _swap_v1_type = {
+	next:	NULL,
+	ops:	&_swap_v1_ops,
+	name:	"linux-swap(old)",
+	block_sizes: LINUXSWAP_BLOCK_SIZES
+};
+
+static PedFileSystemType _swap_v2_type = {
+	next:	NULL,
+	ops:	&_swap_v2_ops,
+	name:	"linux-swap(new)",
+	block_sizes: LINUXSWAP_BLOCK_SIZES
+};
+
+static PedFileSystemType _swap_swsusp_type = {
+        next:   NULL,
+	ops:    &_swap_swsusp_ops,
+	name:   "swsusp",
+        block_sizes: LINUXSWAP_BLOCK_SIZES
+};
+
+void
+ped_file_system_linux_swap_init ()
+{
+	ped_file_system_type_register (&_swap_v1_type);
+	ped_file_system_type_register (&_swap_v2_type);
+	ped_file_system_type_register (&_swap_swsusp_type);
+}
+
+void
+ped_file_system_linux_swap_done ()
+{
+	ped_file_system_type_unregister (&_swap_v1_type);
+	ped_file_system_type_unregister (&_swap_v2_type);
+	ped_file_system_type_unregister (&_swap_swsusp_type);
+}
diff --git a/parted-1.8.7/libparted/fs/ntfs/Makefile.am b/parted-1.8.7/libparted/fs/ntfs/Makefile.am
new file mode 100644
index 0000000..30fca41
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/ntfs/Makefile.am
@@ -0,0 +1,8 @@
+partedincludedir	= -I$(top_srcdir)/include
+
+noinst_LTLIBRARIES	= libntfs.la
+libntfs_la_SOURCES	= ntfs.c
+
+INCLUDES = $(partedincludedir) $(INTLINCS)
+
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/parted-1.8.7/libparted/fs/ntfs/Makefile.in b/parted-1.8.7/libparted/fs/ntfs/Makefile.in
new file mode 100644
index 0000000..4183403
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/ntfs/Makefile.in
@@ -0,0 +1,624 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = libparted/fs/ntfs
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+libntfs_la_LIBADD =
+am_libntfs_la_OBJECTS = ntfs.lo
+libntfs_la_OBJECTS = $(am_libntfs_la_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/lib@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(libntfs_la_SOURCES)
+DIST_SOURCES = $(libntfs_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+partedincludedir = -I$(top_srcdir)/include
+noinst_LTLIBRARIES = libntfs.la
+libntfs_la_SOURCES = ntfs.c
+INCLUDES = $(partedincludedir) $(INTLINCS)
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  libparted/fs/ntfs/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  libparted/fs/ntfs/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libntfs.la: $(libntfs_la_OBJECTS) $(libntfs_la_DEPENDENCIES) 
+	$(LINK)  $(libntfs_la_OBJECTS) $(libntfs_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ntfs.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/libparted/fs/ntfs/ntfs.c b/parted-1.8.7/libparted/fs/ntfs/ntfs.c
new file mode 100644
index 0000000..95de441
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/ntfs/ntfs.c
@@ -0,0 +1,102 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2000 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/endian.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#include <unistd.h>
+
+#define NTFS_BLOCK_SIZES       ((int[2]){512, 0})
+
+#define NTFS_SIGNATURE	"NTFS"
+
+static PedGeometry*
+ntfs_probe (PedGeometry* geom)
+{
+	char	buf[512];
+
+	if (!ped_geometry_read (geom, buf, 0, 1))
+		return 0;
+
+	if (strncmp (NTFS_SIGNATURE, buf + 3, strlen (NTFS_SIGNATURE)) == 0)
+		return ped_geometry_new (geom->dev, geom->start,
+					 PED_LE64_TO_CPU (*(uint64_t*)
+						 	  (buf + 0x28)));
+	else
+		return NULL;
+}
+
+#ifndef DISCOVER_ONLY
+static int
+ntfs_clobber (PedGeometry* geom)
+{
+	char	buf[512];
+
+	memset (buf, 0, 512);
+	return ped_geometry_write (geom, buf, 0, 1);
+}
+#endif /* !DISCOVER_ONLY */
+
+static PedFileSystemOps ntfs_ops = {
+	probe:		ntfs_probe,
+#ifndef DISCOVER_ONLY
+	clobber:	ntfs_clobber,
+#else
+	clobber:	NULL,
+#endif 
+	open:		NULL,
+	create:		NULL,
+	close:		NULL,
+	check:		NULL,
+	copy:		NULL,
+	resize:		NULL,
+	get_create_constraint:	NULL,
+	get_resize_constraint:	NULL,
+	get_copy_constraint:	NULL
+};
+
+static PedFileSystemType ntfs_type = {
+	next:	NULL,
+	ops:	&ntfs_ops,
+	name:	"ntfs",
+	block_sizes: NTFS_BLOCK_SIZES
+};
+
+void
+ped_file_system_ntfs_init ()
+{
+	ped_file_system_type_register (&ntfs_type);
+}
+
+void
+ped_file_system_ntfs_done ()
+{
+	ped_file_system_type_unregister (&ntfs_type);
+}
+
+
diff --git a/parted-1.8.7/libparted/fs/reiserfs/Makefile.am b/parted-1.8.7/libparted/fs/reiserfs/Makefile.am
new file mode 100644
index 0000000..ce65ab4
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/reiserfs/Makefile.am
@@ -0,0 +1,9 @@
+partedincludedir	= -I$(top_srcdir)/include
+
+noinst_LTLIBRARIES	= libreiserfs.la
+
+libreiserfs_la_SOURCES	= reiserfs.c reiserfs.h geom_dal.c geom_dal.h
+
+INCLUDES = $(partedincludedir) $(INTLINCS)
+
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/parted-1.8.7/libparted/fs/reiserfs/Makefile.in b/parted-1.8.7/libparted/fs/reiserfs/Makefile.in
new file mode 100644
index 0000000..e842320
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/reiserfs/Makefile.in
@@ -0,0 +1,625 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = libparted/fs/reiserfs
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+libreiserfs_la_LIBADD =
+am_libreiserfs_la_OBJECTS = reiserfs.lo geom_dal.lo
+libreiserfs_la_OBJECTS = $(am_libreiserfs_la_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/lib@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(libreiserfs_la_SOURCES)
+DIST_SOURCES = $(libreiserfs_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+partedincludedir = -I$(top_srcdir)/include
+noinst_LTLIBRARIES = libreiserfs.la
+libreiserfs_la_SOURCES = reiserfs.c reiserfs.h geom_dal.c geom_dal.h
+INCLUDES = $(partedincludedir) $(INTLINCS)
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  libparted/fs/reiserfs/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  libparted/fs/reiserfs/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libreiserfs.la: $(libreiserfs_la_OBJECTS) $(libreiserfs_la_DEPENDENCIES) 
+	$(LINK)  $(libreiserfs_la_OBJECTS) $(libreiserfs_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geom_dal.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reiserfs.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/libparted/fs/reiserfs/geom_dal.c b/parted-1.8.7/libparted/fs/reiserfs/geom_dal.c
new file mode 100644
index 0000000..30acd46
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/reiserfs/geom_dal.c
@@ -0,0 +1,139 @@
+/*
+    geom_dal.c -- parted device abstraction layer
+    Copyright (C) 2001, 2002  Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+
+#if (DYNAMIC_LOADING || HAVE_LIBREISERFS) && !DISCOVER_ONLY
+
+#include "geom_dal.h"
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+
+static blk_t __len(dal_t *dal) {
+    PED_ASSERT(dal != NULL, return 0);
+    
+    return ((PedGeometry *)dal->dev)->length / 
+	(dal->block_size / PED_SECTOR_SIZE_DEFAULT);
+}
+
+static int __read(dal_t *dal, void *buff, blk_t block, blk_t count) {
+    blk_t k;
+    PedSector block_pos;
+    PedSector block_count;
+    
+    PED_ASSERT(dal != NULL, return 0);
+    
+    k = dal->block_size / PED_SECTOR_SIZE_DEFAULT;
+    block_pos = (PedSector)(block * k);
+    block_count = (PedSector)(count * k);
+    
+    return ped_geometry_read((PedGeometry *)dal->dev, buff, block_pos, block_count);
+}
+
+static int __write(dal_t *dal, void *buff, blk_t block, blk_t count) {
+    blk_t k;
+    PedSector block_pos;
+    PedSector block_count;
+    
+    PED_ASSERT(dal != NULL, return 0);
+    
+    k = dal->block_size / PED_SECTOR_SIZE_DEFAULT;
+    block_pos = (PedSector)(block * k);
+    block_count = (PedSector)(count * k);
+    
+    return ped_geometry_write((PedGeometry *)dal->dev, buff, block_pos, 
+	block_count);
+}
+
+static int __sync(dal_t *dal) {
+    PED_ASSERT(dal != NULL, return 0);
+    return ped_geometry_sync((PedGeometry *)dal->dev);
+}
+
+static int __flags(dal_t *dal) {
+    PED_ASSERT(dal != NULL, return 0);
+    return dal->flags;
+}
+
+static int __equals(dal_t *dal1, dal_t *dal2) {
+    PED_ASSERT(dal1 != NULL, return 0);
+    PED_ASSERT(dal2 != NULL, return 0);
+
+    return ped_geometry_test_equal((PedGeometry *)dal1->dev, 
+	(PedGeometry *)dal2->dev);
+}
+
+static int __stat(dal_t *dal, struct stat *st) {
+    
+    PED_ASSERT(dal != NULL, return 0);
+    PED_ASSERT(st != NULL, return 0);
+    
+    if (stat(((PedGeometry *)dal->dev)->dev->path, st))
+	return 0;
+
+    return 1;
+}
+
+static dev_t __dev(dal_t *dal) {
+    struct stat st;
+    
+    if (!__stat(dal, &st))
+	return (dev_t)0;
+	
+    return st.st_dev;
+}
+
+static struct dal_ops ops = {
+    __len, __read, __write, __sync, 
+    __flags, __equals, __stat, __dev
+};
+
+dal_t *geom_dal_create(PedGeometry *geom, size_t block_size, int flags) {
+    dal_t *dal;
+
+    if (!geom) 
+	return NULL;
+    
+    if (!(dal = ped_malloc(sizeof(dal_t))))
+	return NULL;
+    
+    dal->ops = &ops;
+    dal->dev = geom;
+    dal->block_size = block_size;
+    dal->flags = flags;
+    dal->len = 0;
+
+    return dal;
+}
+
+int geom_dal_reopen(dal_t *dal, int flags) {
+
+    if (!dal) return 0;
+    dal->flags = flags;
+    
+    return 1;
+}
+
+void geom_dal_free(dal_t *dal) {
+    PED_ASSERT(dal != NULL, return);
+    ped_free(dal);
+}
+
+#endif
diff --git a/parted-1.8.7/libparted/fs/reiserfs/geom_dal.h b/parted-1.8.7/libparted/fs/reiserfs/geom_dal.h
new file mode 100644
index 0000000..99d0a06
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/reiserfs/geom_dal.h
@@ -0,0 +1,63 @@
+/*
+    geom_dal.h -- parted device abstraction layer
+    Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef GEOM_DAL_H
+#define GEOM_DAL_H
+
+#include <config.h>
+
+#include <parted/parted.h>
+
+#if DYNAMIC_LOADING || !DISCOVER_ONLY
+
+#include <sys/stat.h>
+
+typedef unsigned long blk_t;
+
+struct dal_ops;
+
+struct _dal {
+    struct dal_ops *ops;
+    const void *dev;
+    size_t block_size;
+    int flags;
+    void *data;
+    blk_t len;
+};
+
+typedef struct _dal dal_t;
+
+struct dal_ops {
+    blk_t (*len)(dal_t *);
+    int (*read)(dal_t *, void *, blk_t, blk_t);
+    int (*write)(dal_t *, void *, blk_t, blk_t);
+    int (*sync)(dal_t *);
+    int (*flags)(dal_t *);
+    int (*equals)(dal_t *, dal_t *);
+    int (*stat)(dal_t *, struct stat *);
+    dev_t (*dev)(dal_t *);
+};
+
+extern dal_t *geom_dal_create(PedGeometry *geom, size_t block_size, int flags);
+extern int geom_dal_reopen(dal_t *dal, int flags);
+extern void geom_dal_free(dal_t *dal);
+
+#endif
+
+#endif
diff --git a/parted-1.8.7/libparted/fs/reiserfs/reiserfs.c b/parted-1.8.7/libparted/fs/reiserfs/reiserfs.c
new file mode 100644
index 0000000..90faa14
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/reiserfs/reiserfs.c
@@ -0,0 +1,867 @@
+/*
+    reiserfs.c -- libparted / libreiserfs glue
+    Copyright (C) 2001, 2002, 2007  Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+
+    This is all rather complicated.  There are a few combinations:
+	* shared libraries full support
+	* dynamic libraries present full support (via dlopen)
+	* dynamic libraries absent (full support disabled) (via dlopen)
+	* discover only
+
+    We'd love to hear comments...
+
+    So far, we've opted for maximum flexibility for the user.  Is it
+    all worth it?
+*/
+
+#include <config.h>
+
+#if (HAVE_LIBREISERFS || DYNAMIC_LOADING) && !DISCOVER_ONLY
+#	define REISER_FULL_SUPPORT
+#endif
+
+#include <uuid/uuid.h>
+#include <fcntl.h>
+#include <errno.h>
+
+#ifdef DYNAMIC_LOADING
+#	include <dlfcn.h>
+#endif
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+#include <parted/endian.h>
+
+#if ENABLE_NLS
+#	include <libintl.h>
+#	define _(String) dgettext (PACKAGE, String)
+#else
+#	define _(String) (String)
+#endif
+
+#include "reiserfs.h"
+#include "geom_dal.h"
+
+#define REISERFS_BLOCK_SIZES       ((int[2]){512, 0})
+
+static PedSector reiserfs_super_offset[] = { 128, 16, -1 };
+static PedFileSystemType* reiserfs_type;
+
+#ifdef DYNAMIC_LOADING
+#	define FPTR *
+#	define FCLASS static
+#else
+#	define FPTR
+#	define FCLASS extern
+#endif
+
+#ifdef DYNAMIC_LOADING
+
+static int libreiserfs_present;
+
+static void *libdal_handle;
+static void *libreiserfs_handle;
+
+#endif /* DYNAMIC_LOADING */
+
+#ifdef REISER_FULL_SUPPORT
+
+FCLASS blk_t (FPTR reiserfs_fs_probe) (dal_t *);
+
+FCLASS int (FPTR libreiserfs_exception_type) (reiserfs_exception_t *);
+FCLASS int (FPTR libreiserfs_exception_option) (reiserfs_exception_t *);
+FCLASS char *(FPTR libreiserfs_exception_message) (reiserfs_exception_t *);
+FCLASS void (FPTR libreiserfs_exception_set_handler)
+		(int(FPTR)(reiserfs_exception_t *));
+
+FCLASS void (FPTR dal_realize) (dal_t *);
+FCLASS size_t (FPTR dal_block_size) (dal_t *);
+FCLASS blk_t (FPTR dal_len) (dal_t *);
+FCLASS int (FPTR dal_flags) (dal_t *);
+
+FCLASS reiserfs_fs_t* (FPTR reiserfs_fs_open) (dal_t *, dal_t *);
+FCLASS reiserfs_fs_t* (FPTR reiserfs_fs_create) (dal_t *, dal_t *,
+					  blk_t, blk_t, blk_t, size_t,
+					  int, int, const char *,
+					  const char *, blk_t,
+				          reiserfs_gauge_t *);
+
+FCLASS int (FPTR reiserfs_fs_resize) (reiserfs_fs_t *, blk_t, reiserfs_gauge_t *);
+#ifdef HAVE_REISERFS_FS_CHECK
+FCLASS int (FPTR reiserfs_fs_check) (reiserfs_fs_t *, reiserfs_gauge_t *);
+#endif
+
+FCLASS reiserfs_fs_t *(FPTR reiserfs_fs_copy) (reiserfs_fs_t *, dal_t *,
+					reiserfs_gauge_t *);
+
+FCLASS int (FPTR reiserfs_fs_clobber) (dal_t *);
+FCLASS void (FPTR reiserfs_fs_close) (reiserfs_fs_t *);
+
+FCLASS int (FPTR reiserfs_fs_is_resizeable) (reiserfs_fs_t *);
+FCLASS int (FPTR reiserfs_fs_is_consistent) (reiserfs_fs_t *);
+
+FCLASS blk_t (FPTR reiserfs_fs_min_size) (reiserfs_fs_t *);
+FCLASS blk_t (FPTR reiserfs_fs_block_size) (reiserfs_fs_t *);
+FCLASS dal_t* (FPTR reiserfs_fs_host_dal) (reiserfs_fs_t *);
+
+FCLASS blk_t (FPTR reiserfs_fs_bitmap_used) (reiserfs_fs_t *);
+FCLASS int (FPTR reiserfs_fs_bitmap_check) (reiserfs_fs_t *);
+
+FCLASS reiserfs_gauge_t *(FPTR libreiserfs_gauge_create) (
+	char *, reiserfs_gauge_handler_t, void *);
+
+FCLASS void (FPTR libreiserfs_gauge_free) (reiserfs_gauge_t *);
+
+static void gauge_handler(const char *name, unsigned int value, void *data,
+			  int determined, int update_header,
+			  int update_footer)
+{
+	PedTimer *timer = (PedTimer *) data;
+	ped_timer_set_state_name(timer, name);
+	ped_timer_update(timer, 1.0 * value / 100);
+}
+
+static PedExceptionOption
+exopt_libreiserfs_to_parted(reiserfs_exception_option_t option)
+{
+	switch (option) {
+	case EXCEPTION_UNHANDLED:
+		return PED_EXCEPTION_UNHANDLED;
+	case EXCEPTION_FIX:
+		return PED_EXCEPTION_FIX;
+	case EXCEPTION_YES:
+		return PED_EXCEPTION_YES;
+	case EXCEPTION_NO:
+		return PED_EXCEPTION_NO;
+	case EXCEPTION_OK:
+		return PED_EXCEPTION_OK;
+	case EXCEPTION_RETRY:
+		return PED_EXCEPTION_RETRY;
+	case EXCEPTION_IGNORE:
+		return PED_EXCEPTION_IGNORE;
+	case EXCEPTION_CANCEL:
+		return PED_EXCEPTION_CANCEL;
+
+	default:
+		return PED_EXCEPTION_UNHANDLED;
+	}
+}
+
+static PedExceptionType
+extype_libreiserfs_to_parted(reiserfs_exception_type_t type)
+{
+	switch (type) {
+	case EXCEPTION_INFORMATION:
+		return PED_EXCEPTION_INFORMATION;
+	case EXCEPTION_WARNING:
+		return PED_EXCEPTION_WARNING;
+	case EXCEPTION_ERROR:
+		return PED_EXCEPTION_ERROR;
+	case EXCEPTION_FATAL:
+		return PED_EXCEPTION_FATAL;
+	case EXCEPTION_BUG:
+		return PED_EXCEPTION_BUG;
+	case EXCEPTION_NO_FEATURE:
+		return PED_EXCEPTION_NO_FEATURE;
+
+	default:
+		return PED_EXCEPTION_NO_FEATURE;
+	}
+}
+
+static int exception_handler(reiserfs_exception_t *exception)
+{
+	int ex_type = libreiserfs_exception_type(exception);
+	int ex_option = libreiserfs_exception_option(exception);
+	char *ex_message = libreiserfs_exception_message(exception);
+
+	return ped_exception_throw (extype_libreiserfs_to_parted (ex_type),
+				    exopt_libreiserfs_to_parted (ex_option),
+				    ex_message);
+}
+#endif /* REISER_FULL_SUPPORT */
+
+static PedGeometry *reiserfs_probe(PedGeometry *geom)
+{
+	int i;
+	reiserfs_super_block_t sb;
+
+	PED_ASSERT(geom != NULL, return NULL);
+
+	for (i = 0; reiserfs_super_offset[i] != -1; i++) {
+		if (reiserfs_super_offset[i] >= geom->length)
+			continue;
+		if (!ped_geometry_read (geom, &sb, reiserfs_super_offset[i], 1))
+			continue;
+
+		if (strncmp(REISERFS_SIGNATURE, sb.s_magic,
+		            strlen(REISERFS_SIGNATURE)) == 0
+		    || strncmp(REISER2FS_SIGNATURE, sb.s_magic,
+			       strlen(REISER2FS_SIGNATURE)) == 0
+		    || strncmp(REISER3FS_SIGNATURE, sb.s_magic,
+			       strlen(REISER3FS_SIGNATURE)) == 0) {
+			PedSector block_size;
+			PedSector block_count;
+
+			block_size = PED_LE16_TO_CPU(sb.s_blocksize)
+					/ PED_SECTOR_SIZE_DEFAULT;
+			block_count = PED_LE32_TO_CPU(sb.s_block_count);
+
+			return ped_geometry_new(geom->dev, geom->start,
+						block_size * block_count);
+		}
+	}
+	return NULL;
+}
+
+#ifndef DISCOVER_ONLY
+static int reiserfs_clobber(PedGeometry *geom)
+{
+	int i;
+	char buf[512];
+
+	PED_ASSERT(geom != NULL, return 0);
+
+	memset(buf, 0, 512);
+	for (i = 0; reiserfs_super_offset[i] != -1; i++) {
+		if (reiserfs_super_offset[i] >= geom->length)
+			continue;
+		if (!ped_geometry_write
+		    (geom, buf, reiserfs_super_offset[i], 1))
+			return 0;
+	}
+	return 1;
+}
+#endif /* !DISCOVER_ONLY */
+
+#ifdef REISER_FULL_SUPPORT
+
+static PedFileSystem *reiserfs_open(PedGeometry *geom)
+{
+	PedFileSystem *fs;
+	PedGeometry *fs_geom;
+	dal_t *dal;
+	reiserfs_fs_t *fs_info;
+
+	PED_ASSERT(geom != NULL, return NULL);
+
+	if (!(fs_geom = ped_geometry_duplicate(geom)))
+		goto error;
+
+	if (! (dal = geom_dal_create(fs_geom, DEFAULT_BLOCK_SIZE, O_RDONLY)))
+		goto error_fs_geom_free;
+
+	/*
+	   We are passing NULL as DAL for journal. Therefore we let libreiserfs know, 
+	   that journal not available and parted will be working fine for reiserfs 
+	   with relocated journal too.
+	 */
+	if (!(fs = (PedFileSystem *) ped_malloc(sizeof(PedFileSystem))))
+		goto error_free_dal;
+
+	if (!(fs_info = reiserfs_fs_open(dal, NULL)))
+		goto error_free_fs;
+
+	fs->type = reiserfs_type;
+	fs->geom = fs_geom;
+	fs->type_specific = (void *) fs_info;
+
+	return fs;
+
+error_free_fs:
+	ped_free(fs);
+error_free_dal:
+	geom_dal_free(dal);
+error_fs_geom_free:
+	ped_geometry_destroy(fs_geom);
+error:
+	return NULL;
+}
+
+static PedFileSystem *reiserfs_create(PedGeometry *geom, PedTimer *timer)
+{
+	dal_t *dal;
+	uuid_t uuid;
+	PedFileSystem *fs;
+	PedGeometry *fs_geom;
+	reiserfs_fs_t *fs_info;
+	reiserfs_gauge_t *gauge = NULL;
+
+	PED_ASSERT(geom != NULL, return NULL);
+
+	fs_geom = ped_geometry_duplicate(geom);
+
+	if (!(dal = geom_dal_create(fs_geom, DEFAULT_BLOCK_SIZE, O_RDWR)))
+		goto error_fs_geom_free;
+
+	memset(uuid, 0, sizeof(uuid));
+	uuid_generate(uuid);
+
+	ped_timer_reset(timer);
+	ped_timer_set_state_name(timer, _("creating"));
+
+	if (libreiserfs_gauge_create && libreiserfs_gauge_free) {
+		if (! (gauge =
+		     libreiserfs_gauge_create(NULL, gauge_handler, timer)))
+			goto error_free_dal;
+	}
+
+	if (!(fs_info = reiserfs_fs_create(dal, dal, 0, JOURNAL_MAX_TRANS,
+					   DEFAULT_JOURNAL_SIZE,
+					   DEFAULT_BLOCK_SIZE,
+					   FS_FORMAT_3_6, R5_HASH, NULL,
+					   (char *) uuid, dal_len(dal),
+					   gauge)))
+		goto error_free_gauge;
+
+	ped_timer_update(timer, 1.0);
+
+	if (gauge)
+		libreiserfs_gauge_free(gauge);
+
+	if (!(fs = (PedFileSystem *) ped_malloc(sizeof(PedFileSystem))))
+		goto error_free_fs_info;
+
+	fs->type = reiserfs_type;
+	fs->geom = fs_geom;
+	fs->type_specific = (void *) fs_info;
+
+	return fs;
+
+error_free_fs_info:
+	ped_free(fs_info);
+error_free_gauge:
+	if (gauge)
+		libreiserfs_gauge_free(gauge);
+error_free_dal:
+	geom_dal_free(dal);
+error_fs_geom_free:
+	ped_geometry_destroy(fs_geom);
+	return NULL;
+}
+
+static int reiserfs_close(PedFileSystem *fs)
+{
+	dal_t *dal;
+
+	PED_ASSERT(fs != NULL, return 0);
+
+	dal = reiserfs_fs_host_dal(fs->type_specific);
+	reiserfs_fs_close(fs->type_specific);
+
+	geom_dal_free(dal);
+	ped_geometry_sync(fs->geom);
+
+	ped_free(fs);
+	return 1;
+}
+
+static PedConstraint *reiserfs_get_create_constraint(const PedDevice *dev)
+{
+	PedGeometry full_dev;
+	PedSector min_blks = (SUPER_OFFSET_IN_BYTES / DEFAULT_BLOCK_SIZE)
+			     + 2 + DEFAULT_JOURNAL_SIZE + 1 + 100 + 1;
+
+	if (!ped_geometry_init(&full_dev, dev, 0, dev->length - 1))
+		return NULL;
+
+	return ped_constraint_new(ped_alignment_any, ped_alignment_any,
+				  &full_dev, &full_dev,
+				  min_blks * (DEFAULT_BLOCK_SIZE / 512),
+				  dev->length);
+}
+
+static int reiserfs_check(PedFileSystem *fs, PedTimer *timer)
+{
+	reiserfs_fs_t *fs_info;
+#ifdef HAVE_REISERFS_FS_CHECK
+	reiserfs_gauge_t *gauge = NULL;
+#endif
+
+	PED_ASSERT(fs != NULL, return 0);
+
+	fs_info = fs->type_specific;
+
+	if (!reiserfs_fs_is_consistent(fs_info)) {
+		ped_exception_throw(PED_EXCEPTION_ERROR,
+				    PED_EXCEPTION_CANCEL,
+				    _("The file system is in an invalid "
+				      "state.  Perhaps it is mounted?"));
+		return 0;
+	}
+
+	if (!reiserfs_fs_is_resizeable(fs_info))
+		ped_exception_throw(PED_EXCEPTION_WARNING,
+				    PED_EXCEPTION_IGNORE,
+				    _("The file system is in old "
+				      "(unresizeable) format."));
+
+	if (!reiserfs_fs_bitmap_check(fs_info)) {
+		ped_exception_throw(PED_EXCEPTION_ERROR,
+				    PED_EXCEPTION_CANCEL,
+				    _("Invalid free blocks count.  Run "
+				      "reiserfsck --check first."));
+		return 0;
+	}
+
+#ifdef HAVE_REISERFS_FS_CHECK
+	ped_timer_reset(timer);
+	
+	if (libreiserfs_gauge_create && libreiserfs_gauge_free) {
+		if (!
+		    (gauge =
+		     libreiserfs_gauge_create(NULL, gauge_handler, timer)))
+			return 0;
+	}
+		
+	ped_timer_set_state_name(timer, _("checking"));
+	ped_timer_update(timer, 0.0);
+
+	if (!reiserfs_fs_check(fs_info, gauge)) {
+		ped_exception_throw(PED_EXCEPTION_ERROR,
+				    PED_EXCEPTION_CANCEL,
+				    _("Reiserfs tree seems to be corrupted.  "
+				      "Run reiserfsck --check first."));
+		return 0;
+	}
+	
+	ped_timer_update(timer, 1.0);
+
+	if (gauge)
+		libreiserfs_gauge_free(gauge);
+#endif
+	
+	ped_exception_throw(PED_EXCEPTION_INFORMATION, PED_EXCEPTION_OK,
+			    _("The reiserfs file system passed a basic check.  "
+			      "For a more comprehensive check, run "
+			      "reiserfsck --check."));
+
+	return 1;
+}
+
+static int reiserfs_resize(PedFileSystem *fs, PedGeometry *geom,
+			   PedTimer *timer)
+{
+	dal_t *dal;
+	blk_t fs_len;
+	PedSector old_length;
+	reiserfs_fs_t *fs_info;
+	reiserfs_gauge_t *gauge = NULL;
+
+	PED_ASSERT(fs != NULL, return 0);
+
+	old_length = fs->geom->length;
+
+	PED_ASSERT (fs->geom->dev == geom->dev, return 0);
+
+	if (fs->geom->start != geom->start) {
+		ped_exception_throw(PED_EXCEPTION_ERROR,
+				    PED_EXCEPTION_CANCEL,
+				    _("Sorry, can't move the start of "
+				      "reiserfs partitions yet."));
+		return 0;
+	}
+
+	fs_info = fs->type_specific;
+
+	fs_len = (blk_t) (geom->length / (reiserfs_fs_block_size(fs_info) /
+					  PED_SECTOR_SIZE_DEFAULT));
+
+	dal = reiserfs_fs_host_dal(fs_info);
+
+	if (dal_flags(dal) && O_RDONLY) {
+		if (!geom_dal_reopen(dal, O_RDWR)) {
+			ped_exception_throw(PED_EXCEPTION_ERROR,
+					    PED_EXCEPTION_CANCEL,
+					    _("Couldn't reopen device "
+					      "abstraction layer for "
+					      "read/write."));
+			return 0;
+		}
+	}
+
+	ped_timer_reset(timer);
+
+	if (libreiserfs_gauge_create && libreiserfs_gauge_free) {
+		if (!
+		    (gauge =
+		     libreiserfs_gauge_create(NULL, gauge_handler, timer)))
+			return 0;
+	}
+
+	if (old_length > geom->length) {
+
+		ped_timer_set_state_name(timer, _("shrinking"));
+		ped_timer_update(timer, 0.0);
+
+		if (!reiserfs_fs_resize(fs_info, fs_len, gauge))
+			goto error_free_gauge;
+
+		ped_geometry_set_end (fs->geom, geom->end);
+		dal_realize(dal);
+	} else {
+		ped_geometry_set_end (fs->geom, geom->end);
+		dal_realize(dal);
+
+		ped_timer_set_state_name(timer, _("expanding"));
+		ped_timer_update(timer, 0.0);
+
+		if (!reiserfs_fs_resize(fs_info, fs_len, gauge))
+			goto error_free_gauge;
+	}
+
+	ped_timer_update(timer, 1.0);
+
+	if (gauge)
+		libreiserfs_gauge_free(gauge);
+
+	return 1;
+
+error_free_gauge:
+	if (gauge)
+		libreiserfs_gauge_free(gauge);
+	ped_geometry_set_end (fs->geom, fs->geom->start + old_length - 1);
+	return 0;
+}
+
+static PedConstraint *reiserfs_get_resize_constraint(const PedFileSystem *
+						     fs)
+{
+	PedDevice *dev;
+	PedSector min_size;
+	PedGeometry full_disk;
+	reiserfs_fs_t *fs_info;
+	PedAlignment start_align;
+	PedGeometry start_sector;
+
+	PED_ASSERT(fs != NULL, return NULL);
+
+	fs_info = fs->type_specific;
+	dev = fs->geom->dev;
+
+	if (!ped_alignment_init(&start_align, fs->geom->start, 0))
+		return NULL;
+	if (!ped_geometry_init(&full_disk, dev, 0, dev->length - 1))
+		return NULL;
+	if (!ped_geometry_init(&start_sector, dev, fs->geom->start, 1))
+		return NULL;
+
+	/* 
+	   Minsize for reiserfs is area occupied by data blocks and 
+	   metadata blocks minus free space blocks and minus bitmap 
+	   blocks which describes free space blocks.
+	 */
+	min_size = reiserfs_fs_min_size(fs_info) *
+	    (reiserfs_fs_block_size(fs_info) / PED_SECTOR_SIZE_DEFAULT);
+
+	return ped_constraint_new(&start_align, ped_alignment_any,
+				  &start_sector, &full_disk, min_size,
+				  dev->length);
+}
+
+static PedFileSystem *reiserfs_copy(const PedFileSystem *fs,
+				    PedGeometry *geom, PedTimer *timer)
+{
+	dal_t *dal;
+	PedGeometry *fs_geom;
+	PedFileSystem *new_fs;
+	blk_t fs_len, min_needed_blk;
+
+	reiserfs_fs_t *dest_fs, *src_fs;
+	reiserfs_gauge_t *gauge = NULL;
+
+	fs_geom = ped_geometry_duplicate(geom);
+
+	if (!(dal = geom_dal_create(fs_geom, DEFAULT_BLOCK_SIZE, O_RDWR))) {
+		ped_exception_throw(PED_EXCEPTION_ERROR,
+				    PED_EXCEPTION_CANCEL,
+				    _("Couldn't create reiserfs device "
+				      "abstraction handler."));
+		goto error_free_fs_geom;
+	}
+
+	src_fs = fs->type_specific;
+
+	fs_len =
+	    (geom->length / (reiserfs_fs_block_size(src_fs) / PED_SECTOR_SIZE_DEFAULT));
+	min_needed_blk = reiserfs_fs_bitmap_used(src_fs);
+
+	if (fs_len <= min_needed_blk) {
+		ped_exception_throw(PED_EXCEPTION_ERROR,
+				    PED_EXCEPTION_CANCEL,
+				    _("Device is too small for %lu blocks."),
+				    min_needed_blk);
+		goto error_free_dal;
+	}
+
+	if (! (new_fs = (PedFileSystem *) ped_malloc(sizeof(PedFileSystem))))
+		goto error_free_dal;
+
+	ped_timer_reset(timer);
+	ped_timer_set_state_name(timer, _("copying"));
+	ped_timer_update(timer, 0.0);
+
+	if (libreiserfs_gauge_create && libreiserfs_gauge_free) {
+		if (! (gauge =
+		     libreiserfs_gauge_create(NULL, gauge_handler, timer)))
+			goto error_free_new_fs;
+	}
+
+	if (!(dest_fs = reiserfs_fs_copy(src_fs, dal, gauge)))
+		goto error_free_gauge;
+
+	ped_timer_update(timer, 1.0);
+
+	if (gauge)
+		libreiserfs_gauge_free(gauge);
+
+	new_fs->type = reiserfs_type;
+	new_fs->geom = fs_geom;
+	new_fs->type_specific = (void *) dest_fs;
+
+	return new_fs;
+
+error_free_gauge:
+	if (gauge)
+		libreiserfs_gauge_free(gauge);
+error_free_new_fs:
+	ped_free(new_fs);
+error_free_dal:
+	geom_dal_free(dal);
+error_free_fs_geom:
+	ped_geometry_destroy(fs_geom);
+	return NULL;
+}
+
+static PedConstraint *reiserfs_get_copy_constraint(const PedFileSystem *fs,
+						   const PedDevice *dev)
+{
+	PedGeometry full_dev;
+
+	PED_ASSERT(fs != NULL, return NULL);
+	PED_ASSERT(dev != NULL, return NULL);
+
+	if (!ped_geometry_init(&full_dev, dev, 0, dev->length - 1))
+		return NULL;
+
+	return ped_constraint_new(ped_alignment_any, ped_alignment_any,
+				  &full_dev, &full_dev,
+				  reiserfs_fs_bitmap_used(fs->type_specific),
+				  dev->length);
+}
+
+#endif /* !REISER_FULL_SUPPORT */
+
+#ifdef DYNAMIC_LOADING
+
+#define INIT_SYM(SYM)	SYM = getsym (libreiserfs_handle, #SYM)
+
+static void *getsym(void *handle, const char *symbol)
+{
+	void *entry;
+	char *error;
+
+	entry = dlsym(handle, symbol);
+	if ((error = dlerror()) != NULL) {
+		ped_exception_throw(PED_EXCEPTION_WARNING,
+				    PED_EXCEPTION_IGNORE,
+				    _("Couldn't resolve symbol %s.  "
+				      "Error: %s."),
+				    symbol, error);
+		return NULL;
+	}
+
+	return entry;
+}
+
+static int reiserfs_ops_interface_version_check(void)
+{
+	int min_interface_version, max_interface_version;
+	int (*libreiserfs_get_max_interface_version) (void);
+	int (*libreiserfs_get_min_interface_version) (void);
+
+	INIT_SYM(libreiserfs_get_max_interface_version);
+	INIT_SYM(libreiserfs_get_min_interface_version);
+
+	if (!libreiserfs_get_min_interface_version ||
+	    !libreiserfs_get_max_interface_version) {
+		ped_exception_throw(
+			PED_EXCEPTION_WARNING, PED_EXCEPTION_CANCEL,
+			_("GNU Parted found an invalid libreiserfs library."));
+		return 0;
+	}
+
+	min_interface_version = libreiserfs_get_min_interface_version();
+	max_interface_version = libreiserfs_get_max_interface_version();
+
+	if (REISERFS_API_VERSION < min_interface_version ||
+	    REISERFS_API_VERSION > max_interface_version) {
+		ped_exception_throw(
+			PED_EXCEPTION_WARNING, PED_EXCEPTION_CANCEL,
+			_("GNU Parted has detected libreiserfs interface "
+			  "version mismatch.  Found %d-%d, required %d. "
+			  "ReiserFS support will be disabled."),
+			min_interface_version,
+			max_interface_version,
+			REISERFS_API_VERSION);
+		return 0;
+	}
+
+	return 1;
+}
+
+static int reiserfs_ops_init(void)
+{
+	if (!(libreiserfs_handle = dlopen("libreiserfs.so", RTLD_NOW)))
+		goto error;
+
+	if (!reiserfs_ops_interface_version_check())
+		goto error_free_libreiserfs_handle;
+
+	if (!(libdal_handle = dlopen("libdal.so", RTLD_NOW)))
+		goto error_free_libreiserfs_handle;
+
+	INIT_SYM(reiserfs_fs_probe);
+	INIT_SYM(libreiserfs_exception_type);
+
+	INIT_SYM(libreiserfs_exception_option);
+	INIT_SYM(libreiserfs_exception_message);
+	INIT_SYM(libreiserfs_exception_set_handler);
+
+	INIT_SYM(reiserfs_fs_clobber);
+	INIT_SYM(reiserfs_fs_open);
+	INIT_SYM(reiserfs_fs_create);
+	INIT_SYM(reiserfs_fs_resize);
+	INIT_SYM(reiserfs_fs_copy);
+
+	INIT_SYM(reiserfs_fs_is_resizeable);
+	INIT_SYM(reiserfs_fs_is_consistent);
+
+	INIT_SYM(reiserfs_fs_bitmap_check);
+	INIT_SYM(reiserfs_fs_bitmap_used);
+
+	INIT_SYM(reiserfs_fs_min_size);
+	INIT_SYM(reiserfs_fs_block_size);
+
+	INIT_SYM(reiserfs_fs_host_dal);
+	INIT_SYM(reiserfs_fs_close);
+
+	INIT_SYM(libreiserfs_gauge_create);
+	INIT_SYM(libreiserfs_gauge_free);
+
+	INIT_SYM(dal_realize);
+	INIT_SYM(dal_flags);
+
+	INIT_SYM(dal_block_size);
+	INIT_SYM(dal_len);
+
+	return 1;
+
+error_free_libreiserfs_handle:
+	dlclose(libreiserfs_handle);
+	libreiserfs_handle = NULL;
+error:
+	return 0;
+}
+
+static void reiserfs_ops_done()
+{
+	if (libdal_handle)
+		dlclose(libdal_handle);
+	if (libreiserfs_handle)
+		dlclose(libreiserfs_handle);
+}
+#endif /* DYNAMIC_LOADING */
+
+#define REISER_BLOCK_SIZES ((int[]){512, 1024, 2048, 4096, 8192, 0})
+
+#ifdef REISER_FULL_SUPPORT
+static PedFileSystemOps reiserfs_full_ops = {
+	probe:		reiserfs_probe,
+	clobber:	reiserfs_clobber,
+	open:		reiserfs_open,
+	create:		reiserfs_create,
+	close:		reiserfs_close,
+	check:		reiserfs_check,
+	copy:		reiserfs_copy,
+	resize:		reiserfs_resize,
+	get_create_constraint:	reiserfs_get_create_constraint,
+	get_resize_constraint:	reiserfs_get_resize_constraint,
+	get_copy_constraint:	reiserfs_get_copy_constraint
+};
+
+static PedFileSystemType reiserfs_full_type = {
+	next:	NULL,
+	ops:	&reiserfs_full_ops,
+	name:	"reiserfs",
+        block_sizes:    REISER_BLOCK_SIZES
+};
+#endif /* REISER_FULL_SUPPORT */
+
+static PedFileSystemOps reiserfs_simple_ops = {
+	probe:		reiserfs_probe,
+#ifdef DISCOVER_ONLY
+	clobber:	NULL,
+#else
+	clobber:	reiserfs_clobber,
+#endif
+	open:		NULL,
+	create:		NULL,
+	close:		NULL,
+	check:		NULL,
+	copy:		NULL,
+	resize:		NULL,
+	get_create_constraint:	NULL,
+	get_resize_constraint:	NULL,
+	get_copy_constraint:	NULL
+};
+
+static PedFileSystemType reiserfs_simple_type = {
+	next:	        NULL,
+	ops:	        &reiserfs_simple_ops,
+	name:	        "reiserfs",
+        block_sizes:    REISER_BLOCK_SIZES
+};
+
+void ped_file_system_reiserfs_init()
+{
+#ifdef DYNAMIC_LOADING
+	libreiserfs_present = reiserfs_ops_init();
+	if (libreiserfs_present) {
+		reiserfs_type = &reiserfs_full_type;
+		libreiserfs_exception_set_handler(exception_handler);
+	} else {
+		reiserfs_type = &reiserfs_simple_type;
+	}
+#else	/* !DYNAMIC_LOADING */
+#ifdef REISER_FULL_SUPPORT
+	libreiserfs_exception_set_handler(exception_handler);
+	reiserfs_type = &reiserfs_full_type;
+#else
+	reiserfs_type = &reiserfs_simple_type;
+#endif
+#endif	/* !DYNAMIC_LOADING */
+	ped_file_system_type_register(reiserfs_type);
+}
+
+void ped_file_system_reiserfs_done()
+{
+	ped_file_system_type_unregister(reiserfs_type);
+#ifdef DYNAMIC_LOADING
+	reiserfs_ops_done();
+#endif /* DYNAMIC_LOADING */
+}
diff --git a/parted-1.8.7/libparted/fs/reiserfs/reiserfs.h b/parted-1.8.7/libparted/fs/reiserfs/reiserfs.h
new file mode 100644
index 0000000..67bf9bf
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/reiserfs/reiserfs.h
@@ -0,0 +1,109 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2000 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef REISERFS_H
+#define REISERFS_H
+
+#define REISERFS_API_VERSION 0
+
+#define REISERFS_SIGNATURE "ReIsErFs"
+#define REISER2FS_SIGNATURE "ReIsEr2Fs"
+#define REISER3FS_SIGNATURE "ReIsEr3Fs"
+
+#define DEFAULT_BLOCK_SIZE 4096
+
+struct reiserfs_super_block {
+    uint32_t s_block_count;
+    uint32_t s_free_blocks;
+    uint32_t s_root_block;
+    uint32_t s_journal_block;
+    uint32_t s_journal_dev;
+    uint32_t s_orig_journal_size;
+    uint32_t s_journal_trans_max;
+    uint32_t s_journal_block_count;
+    uint32_t s_journal_max_batch;
+    uint32_t s_journal_max_commit_age;
+    uint32_t s_journal_max_trans_age;
+    uint16_t s_blocksize;
+    uint16_t s_oid_maxsize;
+    uint16_t s_oid_cursize;
+    uint16_t s_state;
+    char s_magic[10];
+    uint16_t s_fsck_state;
+    uint32_t s_hash_function_code;
+    uint16_t s_tree_height;
+    uint16_t s_bmap_nr;
+    uint16_t s_version;
+    char padding[438];
+};
+
+typedef struct reiserfs_super_block reiserfs_super_block_t;
+
+enum reiserfs_exception_type {
+    EXCEPTION_INFORMATION 	= 1,
+    EXCEPTION_WARNING 		= 2,
+    EXCEPTION_ERROR 		= 3,
+    EXCEPTION_FATAL 		= 4,
+    EXCEPTION_BUG 		= 5,
+    EXCEPTION_NO_FEATURE 	= 6
+};
+
+typedef enum reiserfs_exception_type reiserfs_exception_type_t;
+
+enum reiserfs_exception_option {
+    EXCEPTION_UNHANDLED 	= 1 << 0,
+    EXCEPTION_FIX 		= 1 << 1,
+    EXCEPTION_YES 		= 1 << 2,
+    EXCEPTION_NO 		= 1 << 3,
+    EXCEPTION_OK 		= 1 << 4,
+    EXCEPTION_RETRY 		= 1 << 5,
+    EXCEPTION_IGNORE 		= 1 << 6,
+    EXCEPTION_CANCEL 		= 1 << 7
+};
+
+typedef enum reiserfs_exception_option reiserfs_exception_option_t;
+
+typedef void (reiserfs_gauge_handler_t)(const char *, unsigned int, void *, int, int, int);
+
+typedef void * reiserfs_exception_t;
+typedef void * reiserfs_gauge_t;
+typedef void * reiserfs_fs_t;
+
+#define FS_FORMAT_3_5 			0
+#define FS_FORMAT_3_6 			2
+
+#define SUPER_OFFSET_IN_BYTES 		64*1024
+
+#define DEFAULT_JOURNAL_SIZE 8192
+
+#define JOURNAL_MIN_SIZE 		512
+#define JOURNAL_MIN_TRANS 		256
+#define JOURNAL_MAX_TRANS 		1024
+
+#define JOURNAL_DEF_RATIO 		8
+#define JOURNAL_MIN_RATIO 		2
+#define JOURNAL_MAX_BATCH   		900
+#define JOURNAL_MAX_COMMIT_AGE 		30 
+#define JOURNAL_MAX_TRANS_AGE 		30
+
+#define TEA_HASH  			1
+#define YURA_HASH			2
+#define R5_HASH				3
+
+#endif
diff --git a/parted-1.8.7/libparted/fs/ufs/Makefile.am b/parted-1.8.7/libparted/fs/ufs/Makefile.am
new file mode 100644
index 0000000..e913c2d
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/ufs/Makefile.am
@@ -0,0 +1,8 @@
+partedincludedir	= -I$(top_srcdir)/include
+
+noinst_LTLIBRARIES	= libufs.la
+libufs_la_SOURCES	= ufs.c
+
+INCLUDES = $(partedincludedir) $(INTLINCS)
+
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/parted-1.8.7/libparted/fs/ufs/Makefile.in b/parted-1.8.7/libparted/fs/ufs/Makefile.in
new file mode 100644
index 0000000..27d889f
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/ufs/Makefile.in
@@ -0,0 +1,624 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = libparted/fs/ufs
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+libufs_la_LIBADD =
+am_libufs_la_OBJECTS = ufs.lo
+libufs_la_OBJECTS = $(am_libufs_la_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/lib@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(libufs_la_SOURCES)
+DIST_SOURCES = $(libufs_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+partedincludedir = -I$(top_srcdir)/include
+noinst_LTLIBRARIES = libufs.la
+libufs_la_SOURCES = ufs.c
+INCLUDES = $(partedincludedir) $(INTLINCS)
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  libparted/fs/ufs/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  libparted/fs/ufs/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libufs.la: $(libufs_la_OBJECTS) $(libufs_la_DEPENDENCIES) 
+	$(LINK)  $(libufs_la_OBJECTS) $(libufs_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ufs.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/libparted/fs/ufs/ufs.c b/parted-1.8.7/libparted/fs/ufs/ufs.c
new file mode 100644
index 0000000..94272e3
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/ufs/ufs.c
@@ -0,0 +1,325 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2001 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+
+    Contributor: Ben Collins <bcollins@debian.org>
+*/
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/endian.h>
+#include <parted/debug.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#include <unistd.h>
+#include <string.h>
+
+#define SUN_UFS_BLOCK_SIZES       ((int[2]){512, 0})
+#define HP_UFS_BLOCK_SIZES        ((int[2]){512, 0})
+
+
+/* taken from ufs_fs.h in Linux */
+#define	UFS_MAXNAMLEN 255
+#define UFS_MAXMNTLEN 512
+#define UFS_MAXCSBUFS 31
+#define UFS_LINK_MAX 32000
+
+#define UFS_MAGIC	0x00011954
+#define UFS_MAGIC_LFN	0x00095014
+#define UFS_MAGIC_FEA	0x00195612
+#define UFS_MAGIC_4GB	0x05231994
+
+struct ufs_csum {
+	uint32_t	cs_ndir;	/* number of directories */
+	uint32_t	cs_nbfree;	/* number of free blocks */
+	uint32_t	cs_nifree;	/* number of free inodes */
+	uint32_t	cs_nffree;	/* number of free frags */
+};
+
+struct ufs_super_block {
+	uint32_t	fs_link;	/* UNUSED */
+	uint32_t	fs_rlink;	/* UNUSED */
+	uint32_t	fs_sblkno;	/* addr of super-block in filesys */
+	uint32_t	fs_cblkno;	/* offset of cyl-block in filesys */
+	uint32_t	fs_iblkno;	/* offset of inode-blocks in filesys */
+	uint32_t	fs_dblkno;	/* offset of first data after cg */
+	uint32_t	fs_cgoffset;	/* cylinder group offset in cylinder */
+	uint32_t	fs_cgmask;	/* used to calc mod fs_ntrak */
+	uint32_t	fs_time;	/* last time written -- time_t */
+	uint32_t	fs_size;	/* number of blocks in fs */
+	uint32_t	fs_dsize;	/* number of data blocks in fs */
+	uint32_t	fs_ncg;		/* number of cylinder groups */
+	uint32_t	fs_bsize;	/* size of basic blocks in fs */
+	uint32_t	fs_fsize;	/* size of frag blocks in fs */
+	uint32_t	fs_frag;	/* number of frags in a block in fs */
+/* these are configuration parameters */
+	uint32_t	fs_minfree;	/* minimum percentage of free blocks */
+	uint32_t	fs_rotdelay;	/* num of ms for optimal next block */
+	uint32_t	fs_rps;		/* disk revolutions per second */
+/* these fields can be computed from the others */
+	uint32_t	fs_bmask;	/* ``blkoff'' calc of blk offsets */
+	uint32_t	fs_fmask;	/* ``fragoff'' calc of frag offsets */
+	uint32_t	fs_bshift;	/* ``lblkno'' calc of logical blkno */
+	uint32_t	fs_fshift;	/* ``numfrags'' calc number of frags */
+/* these are configuration parameters */
+	uint32_t	fs_maxcontig;	/* max number of contiguous blks */
+	uint32_t	fs_maxbpg;	/* max number of blks per cyl group */
+/* these fields can be computed from the others */
+	uint32_t	fs_fragshift;	/* block to frag shift */
+	uint32_t	fs_fsbtodb;	/* fsbtodb and dbtofsb shift constant */
+	uint32_t	fs_sbsize;	/* actual size of super block */
+	uint32_t	fs_csmask;	/* csum block offset */
+	uint32_t	fs_csshift;	/* csum block number */
+	uint32_t	fs_nindir;	/* value of NINDIR */
+	uint32_t	fs_inopb;	/* value of INOPB */
+	uint32_t	fs_nspf;	/* value of NSPF */
+/* yet another configuration parameter */
+	uint32_t	fs_optim;	/* optimization preference, see below */
+/* these fields are derived from the hardware */
+	union {
+		struct {
+			uint32_t	fs_npsect;	/* # sectors/track including spares */
+		} fs_sun;
+		struct {
+			int32_t		fs_state;	/* file system state time stamp */
+		} fs_sunx86;
+	} fs_u1;
+	uint32_t	fs_interleave;	/* hardware sector interleave */
+	uint32_t	fs_trackskew;	/* sector 0 skew, per track */
+/* a unique id for this file system (currently unused and unmaintained) */
+/* In 4.3 Tahoe this space is used by fs_headswitch and fs_trkseek */
+/* Neither of those fields is used in the Tahoe code right now but */
+/* there could be problems if they are.                            */
+	uint32_t	fs_id[2];	/* file system id */
+/* sizes determined by number of cylinder groups and their sizes */
+	uint32_t	fs_csaddr;	/* blk addr of cyl grp summary area */
+	uint32_t	fs_cssize;	/* size of cyl grp summary area */
+	uint32_t	fs_cgsize;	/* cylinder group size */
+/* these fields are derived from the hardware */
+	uint32_t	fs_ntrak;	/* tracks per cylinder */
+	uint32_t	fs_nsect;	/* sectors per track */
+	uint32_t	fs_spc;		/* sectors per cylinder */
+/* this comes from the disk driver partitioning */
+	uint32_t	fs_ncyl;	/* cylinders in file system */
+/* these fields can be computed from the others */
+	uint32_t	fs_cpg;		/* cylinders per group */
+	uint32_t	fs_ipg;		/* inodes per group */
+	uint32_t	fs_fpg;		/* blocks per group * fs_frag */
+/* this data must be re-computed after crashes */
+	struct ufs_csum fs_cstotal;	/* cylinder summary information */
+/* these fields are cleared at mount time */
+	int8_t		fs_fmod;	/* super block modified flag */
+	int8_t		fs_clean;	/* file system is clean flag */
+	int8_t		fs_ronly;	/* mounted read-only flag */
+	int8_t		fs_flags;	/* currently unused flag */
+	int8_t		fs_fsmnt[UFS_MAXMNTLEN];	/* name mounted on */
+/* these fields retain the current block allocation info */
+	uint32_t	fs_cgrotor;	/* last cg searched */
+	uint32_t	fs_csp[UFS_MAXCSBUFS];	/* list of fs_cs info buffers */
+	uint32_t	fs_maxcluster;
+	uint32_t	fs_cpc;		/* cyl per cycle in postbl */
+	uint16_t	fs_opostbl[16][8];	/* old rotation block list head */	
+	union {
+		struct {
+			int32_t		fs_sparecon[53];/* reserved for future constants */
+			int32_t		fs_reclaim;
+			int32_t		fs_sparecon2[1];
+			int32_t		fs_state;	/* file system state time stamp */
+			uint32_t	fs_qbmask[2];	/* ~usb_bmask */
+			uint32_t	fs_qfmask[2];	/* ~usb_fmask */
+		} fs_sun;
+		struct {
+			int32_t		fs_sparecon[53];/* reserved for future constants */
+			int32_t		fs_reclaim;
+			int32_t		fs_sparecon2[1];
+			uint32_t	fs_npsect;	/* # sectors/track including spares */
+			uint32_t	fs_qbmask[2];	/* ~usb_bmask */
+			uint32_t	fs_qfmask[2];	/* ~usb_fmask */
+		} fs_sunx86;
+		struct {
+			int32_t		fs_sparecon[50];/* reserved for future constants */
+			int32_t		fs_contigsumsize;/* size of cluster summary array */
+			int32_t		fs_maxsymlinklen;/* max length of an internal symlink */
+			int32_t		fs_inodefmt;	/* format of on-disk inodes */
+			uint32_t	fs_maxfilesize[2];	/* max representable file size */
+			uint32_t	fs_qbmask[2];	/* ~usb_bmask */
+			uint32_t	fs_qfmask[2];	/* ~usb_fmask */
+			int32_t		fs_state;	/* file system state time stamp */
+		} fs_44;
+	} fs_u2;
+	int32_t	fs_postblformat;	/* format of positional layout tables */
+	int32_t	fs_nrpos;		/* number of rotational positions */
+	int32_t	fs_postbloff;		/* (__s16) rotation block list head */
+	int32_t	fs_rotbloff;		/* (uint8_t) blocks for each rotation */
+	int32_t	fs_magic;		/* magic number */
+	uint8_t	fs_space[4];		/* list of blocks for each rotation */
+};
+
+static PedGeometry*
+ufs_probe_sun (PedGeometry* geom)
+{
+	int8_t buf[512 * 3];
+	struct ufs_super_block *sb;
+
+	if (geom->length < 5)
+		return 0;
+	if (!ped_geometry_read (geom, buf, 16, 3))
+		return 0;
+
+	sb = (struct ufs_super_block *)buf;
+
+	if (PED_BE32_TO_CPU(sb->fs_magic) == UFS_MAGIC) {
+		PedSector block_size = PED_BE32_TO_CPU(sb->fs_bsize) / 512;
+		PedSector block_count = PED_BE32_TO_CPU(sb->fs_size);
+		return ped_geometry_new (geom->dev, geom->start,
+					 block_size * block_count);
+	}
+	if (PED_LE32_TO_CPU(sb->fs_magic) == UFS_MAGIC) {
+		PedSector block_size = PED_LE32_TO_CPU(sb->fs_bsize) / 512;
+		PedSector block_count = PED_LE32_TO_CPU(sb->fs_size);
+		return ped_geometry_new (geom->dev, geom->start,
+					 block_size * block_count);
+	}
+	return NULL;
+}
+
+static PedGeometry*
+ufs_probe_hp (PedGeometry* geom)
+{
+	int8_t buf[1536];
+	struct ufs_super_block *sb;
+	PedSector block_size;
+	PedSector block_count;
+
+	if (geom->length < 5)
+		return 0;
+	if (!ped_geometry_read (geom, buf, 16, 3))
+		return 0;
+
+	sb = (struct ufs_super_block *)buf;
+
+	/* Try sane bytesex */
+	switch (PED_BE32_TO_CPU(sb->fs_magic)) {
+		case UFS_MAGIC_LFN:
+		case UFS_MAGIC_FEA:
+		case UFS_MAGIC_4GB:
+			block_size = PED_BE32_TO_CPU(sb->fs_bsize) / 512;
+			block_count = PED_BE32_TO_CPU(sb->fs_size);
+			return ped_geometry_new (geom->dev, geom->start,
+						 block_size * block_count);
+	}
+
+	/* Try perverted bytesex */
+	switch (PED_LE32_TO_CPU(sb->fs_magic)) {
+		case UFS_MAGIC_LFN:
+		case UFS_MAGIC_FEA:
+		case UFS_MAGIC_4GB:
+			block_size = PED_LE32_TO_CPU(sb->fs_bsize) / 512;
+			block_count = PED_LE32_TO_CPU(sb->fs_size);
+			return ped_geometry_new (geom->dev, geom->start,
+						 block_size * block_count);
+	}
+	return NULL;
+}
+
+#ifndef DISCOVER_ONLY
+static int
+ufs_clobber (PedGeometry* geom)
+{
+	char	buf[1536];
+
+	if (!ped_geometry_read (geom, buf, 16, 3))
+		return 0;
+
+	memset (buf, 0, sizeof(struct ufs_super_block));
+
+	return ped_geometry_write (geom, buf, 16, 3);
+}
+#endif /* !DISCOVER_ONLY */
+
+static PedFileSystemOps ufs_ops_sun = {
+	probe:		ufs_probe_sun,
+#ifndef DISCOVER_ONLY
+	clobber:	ufs_clobber,
+#else
+	clobber:	NULL,
+#endif
+	open:		NULL,
+	create:		NULL,
+	close:		NULL,
+	check:		NULL,
+	copy:		NULL,
+	resize:		NULL,
+	get_create_constraint:	NULL,
+	get_resize_constraint:	NULL,
+	get_copy_constraint:	NULL
+};
+
+static PedFileSystemOps ufs_ops_hp = {
+	probe:		ufs_probe_hp,
+#ifndef DISCOVER_ONLY
+	clobber:	ufs_clobber,
+#else
+	clobber:	NULL,
+#endif
+	open:		NULL,
+	create:		NULL,
+	close:		NULL,
+	check:		NULL,
+	copy:		NULL,
+	resize:		NULL,
+	get_create_constraint:	NULL,
+	get_resize_constraint:	NULL,
+	get_copy_constraint:	NULL
+};
+
+static PedFileSystemType ufs_type_sun = {
+	next:	NULL,
+	ops:	&ufs_ops_sun,
+	name:	"sun-ufs",
+	block_sizes: SUN_UFS_BLOCK_SIZES
+};
+
+static PedFileSystemType ufs_type_hp = {
+	next:   NULL,
+	ops:    &ufs_ops_hp,
+	name:   "hp-ufs",
+	block_sizes: HP_UFS_BLOCK_SIZES
+};
+
+void
+ped_file_system_ufs_init ()
+{
+	PED_ASSERT (sizeof (struct ufs_super_block) == 1380, return);
+
+	ped_file_system_type_register (&ufs_type_sun);
+	ped_file_system_type_register (&ufs_type_hp);
+}
+
+void
+ped_file_system_ufs_done ()
+{
+	ped_file_system_type_unregister (&ufs_type_hp);
+	ped_file_system_type_unregister (&ufs_type_sun);
+}
diff --git a/parted-1.8.7/libparted/fs/xfs/Makefile.am b/parted-1.8.7/libparted/fs/xfs/Makefile.am
new file mode 100644
index 0000000..d5559c2
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/xfs/Makefile.am
@@ -0,0 +1,8 @@
+partedincludedir	= -I$(top_srcdir)/include
+
+noinst_LTLIBRARIES	= libxfs.la
+libxfs_la_SOURCES	= xfs.c xfs_sb.h xfs_types.h platform_defs.h
+
+INCLUDES = $(partedincludedir) $(INTLINCS)
+
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/parted-1.8.7/libparted/fs/xfs/Makefile.in b/parted-1.8.7/libparted/fs/xfs/Makefile.in
new file mode 100644
index 0000000..8ba92ee
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/xfs/Makefile.in
@@ -0,0 +1,624 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = libparted/fs/xfs
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+libxfs_la_LIBADD =
+am_libxfs_la_OBJECTS = xfs.lo
+libxfs_la_OBJECTS = $(am_libxfs_la_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/lib@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(libxfs_la_SOURCES)
+DIST_SOURCES = $(libxfs_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+partedincludedir = -I$(top_srcdir)/include
+noinst_LTLIBRARIES = libxfs.la
+libxfs_la_SOURCES = xfs.c xfs_sb.h xfs_types.h platform_defs.h
+INCLUDES = $(partedincludedir) $(INTLINCS)
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  libparted/fs/xfs/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  libparted/fs/xfs/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libxfs.la: $(libxfs_la_OBJECTS) $(libxfs_la_DEPENDENCIES) 
+	$(LINK)  $(libxfs_la_OBJECTS) $(libxfs_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xfs.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/libparted/fs/xfs/platform_defs.h b/parted-1.8.7/libparted/fs/xfs/platform_defs.h
new file mode 100644
index 0000000..a2b45b9
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/xfs/platform_defs.h
@@ -0,0 +1,115 @@
+/* include/platform_defs.h.  Generated automatically by configure.  */
+/*
+ * Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it would be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Further, this software is distributed without any warranty that it is
+ * free of the rightful claim of any third person regarding infringement
+ * or the like.  Any license provided herein, whether implied or
+ * otherwise, applies only to this software file.  Patent licenses, if
+ * any, provided herein do not apply to combinations of this program with
+ * other software, or any other product whatsoever.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write the Free Software Foundation, Inc.,
+ * 51 Franklin St, Fifth Floor, Boston MA 02110-1301, USA.
+ *
+ * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
+ * Mountain View, CA  94043, or:
+ *
+ * http://www.sgi.com
+ *
+ * For further information regarding this notice, see:
+ *
+ * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
+ *
+ * @configure_input@
+ */
+#ifndef __XFS_PLATFORM_DEFS_H__
+#define __XFS_PLATFORM_DEFS_H__
+
+#include <stdio.h>
+#include <stdarg.h>
+#include <assert.h>
+#include <endian.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/param.h>
+#include <sys/types.h>
+
+#if (__GLIBC__ <= 2) && (__GLIBC_MINOR__ <= 1)
+# define constpp	const char * const *
+#else
+# define constpp	char * const *
+#endif
+
+#ifdef __sparc__
+# ifndef O_DIRECT
+#  define O_DIRECT	0x100000
+# endif
+#endif
+
+typedef loff_t		xfs_off_t;
+typedef uint64_t	xfs_ino_t;
+typedef uint32_t	xfs_dev_t;
+typedef int64_t         xfs_daddr_t;
+typedef char*		xfs_caddr_t;
+
+/* long and pointer must be either 32 bit or 64 bit */
+/* #undef HAVE_64BIT_LONG */
+#define HAVE_32BIT_LONG 1
+#define HAVE_32BIT_PTR 1
+/* #undef HAVE_64BIT_PTR */
+
+/* Check if __psint_t is set to something meaningful */
+/* #undef HAVE___PSINT_T */
+#ifndef HAVE___PSINT_T
+# ifdef HAVE_32BIT_PTR
+typedef int __psint_t;
+# elif defined HAVE_64BIT_PTR
+#  ifdef HAVE_64BIT_LONG
+typedef long __psint_t;
+#  else
+/* This is a very strange architecture, which has 64 bit pointers but
+ * not 64 bit longs. So, I'd just punt here and assume long long is Ok */
+typedef long long __psint_t;
+#  endif
+# else
+#  error Unknown pointer size
+# endif
+#endif
+
+/* Check if __psunsigned_t is set to something meaningful */
+/* #undef HAVE___PSUNSIGNED_T */
+#ifndef HAVE___PSUNSIGNED_T
+# ifdef HAVE_32BIT_PTR
+typedef unsigned int __psunsigned_t;
+# elif defined HAVE_64BIT_PTR
+#  ifdef HAVE_64BIT_LONG
+typedef long __psunsigned_t;
+#  else
+/* This is a very strange architecture, which has 64 bit pointers but
+ * not 64 bit longs. So, I'd just punt here and assume long long is Ok */
+typedef unsigned long long __psunsigned_t;
+#  endif
+# else
+#  error Unknown pointer size
+# endif
+#endif
+
+#ifdef DEBUG
+# define ASSERT		assert
+#else
+# define ASSERT(EX)	((void) 0)
+#endif
+
+#endif	/* __XFS_PLATFORM_DEFS_H__ */
diff --git a/parted-1.8.7/libparted/fs/xfs/xfs.c b/parted-1.8.7/libparted/fs/xfs/xfs.c
new file mode 100644
index 0000000..c6d88e8
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/xfs/xfs.c
@@ -0,0 +1,120 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2001 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/endian.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#include <uuid/uuid.h>
+#include "platform_defs.h"
+#include "xfs_types.h"
+#include "xfs_sb.h"
+
+#define XFS_BLOCK_SIZES		((int[2]){512, 0})
+
+static PedGeometry*
+xfs_probe (PedGeometry* geom)
+{
+	PedSector	block_size;
+	PedSector	block_count;
+	union {
+		struct xfs_sb	sb;
+		char		bytes [512];
+	} buf;
+
+	if (geom->length < XFS_SB_DADDR + 1)
+		return NULL;
+	if (!ped_geometry_read (geom, &buf, XFS_SB_DADDR, 1))
+		return NULL;
+
+	if (PED_LE32_TO_CPU (buf.sb.sb_magicnum) == XFS_SB_MAGIC) {
+		block_size = PED_LE32_TO_CPU (buf.sb.sb_blocksize) / 512;
+		block_count = PED_LE64_TO_CPU (buf.sb.sb_dblocks);
+
+		return ped_geometry_new (geom->dev, geom->start,
+					 block_size * block_count);
+	}
+
+	if (PED_BE32_TO_CPU (buf.sb.sb_magicnum) == XFS_SB_MAGIC) {
+		block_size = PED_BE32_TO_CPU (buf.sb.sb_blocksize) / 512;
+		block_count = PED_BE64_TO_CPU (buf.sb.sb_dblocks);
+
+		return ped_geometry_new (geom->dev, geom->start,
+					 block_size * block_count);
+	}
+
+	return NULL;
+}
+
+#ifndef DISCOVER_ONLY
+static int
+xfs_clobber (PedGeometry* geom)
+{
+	char	buf[512];
+
+	memset (buf, 0, 512);
+	return ped_geometry_write (geom, buf, XFS_SB_DADDR, 1);
+}
+#endif /* !DISCOVER_ONLY */
+
+static PedFileSystemOps xfs_ops = {
+	probe:		xfs_probe,
+#ifndef DISCOVER_ONLY
+	clobber:	xfs_clobber,
+#else
+	clobber:	NULL,
+#endif
+	open:		NULL,
+	create:		NULL,
+	close:		NULL,
+	check:		NULL,
+	copy:		NULL,
+	resize:		NULL,
+	get_create_constraint:	NULL,
+	get_resize_constraint:	NULL,
+	get_copy_constraint:	NULL
+};
+
+static PedFileSystemType xfs_type = {
+	next:	NULL,
+	ops:	&xfs_ops,
+	name:	"xfs",
+	block_sizes: XFS_BLOCK_SIZES
+};
+
+void
+ped_file_system_xfs_init ()
+{
+	ped_file_system_type_register (&xfs_type);
+}
+
+void
+ped_file_system_xfs_done ()
+{
+	ped_file_system_type_unregister (&xfs_type);
+}
+
diff --git a/parted-1.8.7/libparted/fs/xfs/xfs_sb.h b/parted-1.8.7/libparted/fs/xfs/xfs_sb.h
new file mode 100644
index 0000000..1411c47
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/xfs/xfs_sb.h
@@ -0,0 +1,490 @@
+/*
+ * Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
+ * 
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ * 
+ * This program is distributed in the hope that it would be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * 
+ * Further, this software is distributed without any warranty that it is
+ * free of the rightful claim of any third person regarding infringement
+ * or the like.  Any license provided herein, whether implied or
+ * otherwise, applies only to this software file.  Patent licenses, if
+ * any, provided herein do not apply to combinations of this program with
+ * other software, or any other product whatsoever.
+ * 
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write the Free Software Foundation, Inc.,
+ * 51 Franklin St, Fifth Floor, Boston MA 02110-1301, USA.
+ * 
+ * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
+ * Mountain View, CA  94043, or:
+ * 
+ * http://www.sgi.com 
+ * 
+ * For further information regarding this notice, see: 
+ * 
+ * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
+ */
+#ifndef __XFS_SB_H__
+#define	__XFS_SB_H__
+
+/*
+ * Super block
+ * Fits into a 512-byte buffer at daddr_t 0 of each allocation group.
+ * Only the first of these is ever updated except during growfs.
+ */
+
+struct xfs_buf;
+struct xfs_mount;
+
+#define	XFS_SB_MAGIC		0x58465342	/* 'XFSB' */
+#define	XFS_SB_VERSION_1	1		/* 5.3, 6.0.1, 6.1 */
+#define	XFS_SB_VERSION_2	2		/* 6.2 - attributes */
+#define	XFS_SB_VERSION_3	3		/* 6.2 - new inode version */
+#define	XFS_SB_VERSION_4	4		/* 6.2+ - bitmask version */
+#define	XFS_SB_VERSION_NUMBITS		0x000f
+#define	XFS_SB_VERSION_ALLFBITS		0xfff0
+#define	XFS_SB_VERSION_SASHFBITS	0xf000
+#define	XFS_SB_VERSION_REALFBITS	0x0ff0
+#define	XFS_SB_VERSION_ATTRBIT		0x0010
+#define	XFS_SB_VERSION_NLINKBIT		0x0020
+#define	XFS_SB_VERSION_QUOTABIT		0x0040
+#define	XFS_SB_VERSION_ALIGNBIT		0x0080
+#define	XFS_SB_VERSION_DALIGNBIT	0x0100
+#define	XFS_SB_VERSION_SHAREDBIT	0x0200
+#define	XFS_SB_VERSION_EXTFLGBIT	0x1000
+#define	XFS_SB_VERSION_DIRV2BIT		0x2000
+#define	XFS_SB_VERSION_OKSASHFBITS	\
+	(XFS_SB_VERSION_EXTFLGBIT | \
+	 XFS_SB_VERSION_DIRV2BIT)
+#define	XFS_SB_VERSION_OKREALFBITS	\
+	(XFS_SB_VERSION_ATTRBIT | \
+	 XFS_SB_VERSION_NLINKBIT | \
+	 XFS_SB_VERSION_QUOTABIT | \
+	 XFS_SB_VERSION_ALIGNBIT | \
+	 XFS_SB_VERSION_DALIGNBIT | \
+	 XFS_SB_VERSION_SHAREDBIT)
+#define	XFS_SB_VERSION_OKSASHBITS	\
+	(XFS_SB_VERSION_NUMBITS | \
+	 XFS_SB_VERSION_REALFBITS | \
+	 XFS_SB_VERSION_OKSASHFBITS)
+#define	XFS_SB_VERSION_OKREALBITS	\
+	(XFS_SB_VERSION_NUMBITS | \
+	 XFS_SB_VERSION_OKREALFBITS | \
+	 XFS_SB_VERSION_OKSASHFBITS)
+#define	XFS_SB_VERSION_MKFS(ia,dia,extflag,dirv2)	\
+	(((ia) || (dia) || (extflag) || (dirv2)) ? \
+		(XFS_SB_VERSION_4 | \
+		 ((ia) ? XFS_SB_VERSION_ALIGNBIT : 0) | \
+		 ((dia) ? XFS_SB_VERSION_DALIGNBIT : 0) | \
+		 ((extflag) ? XFS_SB_VERSION_EXTFLGBIT : 0) | \
+		 ((dirv2) ? XFS_SB_VERSION_DIRV2BIT : 0)) : \
+		XFS_SB_VERSION_1)
+
+typedef struct xfs_sb
+{
+	uint32_t	sb_magicnum;	/* magic number == XFS_SB_MAGIC */
+	uint32_t	sb_blocksize;	/* logical block size, bytes */
+	xfs_drfsbno_t	sb_dblocks;	/* number of data blocks */
+	xfs_drfsbno_t	sb_rblocks;	/* number of realtime blocks */
+	xfs_drtbno_t	sb_rextents;	/* number of realtime extents */
+	uuid_t		sb_uuid;	/* file system unique id */
+	xfs_dfsbno_t	sb_logstart;	/* starting block of log if internal */
+	xfs_ino_t	sb_rootino;	/* root inode number */
+	xfs_ino_t	sb_rbmino;	/* bitmap inode for realtime extents */
+	xfs_ino_t	sb_rsumino;	/* summary inode for rt bitmap */
+	xfs_agblock_t	sb_rextsize;	/* realtime extent size, blocks */
+	xfs_agblock_t	sb_agblocks;	/* size of an allocation group */
+	xfs_agnumber_t	sb_agcount;	/* number of allocation groups */
+	xfs_extlen_t	sb_rbmblocks;	/* number of rt bitmap blocks */
+	xfs_extlen_t	sb_logblocks;	/* number of log blocks */
+	uint16_t	sb_versionnum;	/* header version == XFS_SB_VERSION */
+	uint16_t	sb_sectsize;	/* volume sector size, bytes */
+	uint16_t	sb_inodesize;	/* inode size, bytes */
+	uint16_t	sb_inopblock;	/* inodes per block */
+	char		sb_fname[12];	/* file system name */
+	uint8_t		sb_blocklog;	/* log2 of sb_blocksize */
+	uint8_t		sb_sectlog;	/* log2 of sb_sectsize */
+	uint8_t		sb_inodelog;	/* log2 of sb_inodesize */
+	uint8_t		sb_inopblog;	/* log2 of sb_inopblock */
+	uint8_t		sb_agblklog;	/* log2 of sb_agblocks (rounded up) */
+	uint8_t		sb_rextslog;	/* log2 of sb_rextents */
+	uint8_t		sb_inprogress;	/* mkfs is in progress, don't mount */
+	uint8_t		sb_imax_pct;	/* max % of fs for inode space */
+					/* statistics */
+	/*
+	 * These fields must remain contiguous.  If you really
+	 * want to change their layout, make sure you fix the
+	 * code in xfs_trans_apply_sb_deltas().
+	 */
+	uint64_t	sb_icount;	/* allocated inodes */
+	uint64_t	sb_ifree;	/* free inodes */
+	uint64_t	sb_fdblocks;	/* free data blocks */
+	uint64_t	sb_frextents;	/* free realtime extents */
+	/*
+	 * End contiguous fields.
+	 */
+	xfs_ino_t	sb_uquotino;	/* user quota inode */
+	xfs_ino_t	sb_gquotino;	/* group quota inode */
+	uint16_t	sb_qflags;	/* quota flags */
+	uint8_t		sb_flags;	/* misc. flags */
+	uint8_t		sb_shared_vn;	/* shared version number */
+	xfs_extlen_t	sb_inoalignmt;	/* inode chunk alignment, fsblocks */
+	uint32_t	sb_unit;	/* stripe or raid unit */
+	uint32_t	sb_width;	/* stripe or raid width */	
+	uint8_t		sb_dirblklog;	/* log2 of dir block size (fsbs) */
+        uint8_t		sb_dummy[7];    /* padding */
+} xfs_sb_t;
+
+/*
+ * Sequence number values for the fields.
+ */
+typedef enum {
+	XFS_SBS_MAGICNUM, XFS_SBS_BLOCKSIZE, XFS_SBS_DBLOCKS, XFS_SBS_RBLOCKS,
+	XFS_SBS_REXTENTS, XFS_SBS_UUID, XFS_SBS_LOGSTART, XFS_SBS_ROOTINO,
+	XFS_SBS_RBMINO, XFS_SBS_RSUMINO, XFS_SBS_REXTSIZE, XFS_SBS_AGBLOCKS,
+	XFS_SBS_AGCOUNT, XFS_SBS_RBMBLOCKS, XFS_SBS_LOGBLOCKS,
+	XFS_SBS_VERSIONNUM, XFS_SBS_SECTSIZE, XFS_SBS_INODESIZE,
+	XFS_SBS_INOPBLOCK, XFS_SBS_FNAME, XFS_SBS_BLOCKLOG,
+	XFS_SBS_SECTLOG, XFS_SBS_INODELOG, XFS_SBS_INOPBLOG, XFS_SBS_AGBLKLOG,
+	XFS_SBS_REXTSLOG, XFS_SBS_INPROGRESS, XFS_SBS_IMAX_PCT, XFS_SBS_ICOUNT,
+	XFS_SBS_IFREE, XFS_SBS_FDBLOCKS, XFS_SBS_FREXTENTS, XFS_SBS_UQUOTINO,
+	XFS_SBS_GQUOTINO, XFS_SBS_QFLAGS, XFS_SBS_FLAGS, XFS_SBS_SHARED_VN,
+	XFS_SBS_INOALIGNMT, XFS_SBS_UNIT, XFS_SBS_WIDTH, XFS_SBS_DIRBLKLOG,
+        XFS_SBS_DUMMY,
+	XFS_SBS_FIELDCOUNT
+} xfs_sb_field_t;
+
+/*
+ * Mask values, defined based on the xfs_sb_field_t values.
+ * Only define the ones we're using.
+ */
+#define	XFS_SB_MVAL(x)		(1LL << XFS_SBS_ ## x)
+#define	XFS_SB_UUID		XFS_SB_MVAL(UUID)
+#define	XFS_SB_FNAME		XFS_SB_MVAL(FNAME)
+#define	XFS_SB_ROOTINO		XFS_SB_MVAL(ROOTINO)
+#define	XFS_SB_RBMINO		XFS_SB_MVAL(RBMINO)
+#define	XFS_SB_RSUMINO		XFS_SB_MVAL(RSUMINO)
+#define	XFS_SB_VERSIONNUM	XFS_SB_MVAL(VERSIONNUM)
+#define XFS_SB_UQUOTINO		XFS_SB_MVAL(UQUOTINO)
+#define XFS_SB_GQUOTINO		XFS_SB_MVAL(GQUOTINO)
+#define XFS_SB_QFLAGS		XFS_SB_MVAL(QFLAGS)
+#define XFS_SB_SHARED_VN	XFS_SB_MVAL(SHARED_VN)
+#define XFS_SB_UNIT		XFS_SB_MVAL(UNIT)
+#define XFS_SB_WIDTH		XFS_SB_MVAL(WIDTH)
+#define	XFS_SB_NUM_BITS		((int)XFS_SBS_FIELDCOUNT)
+#define	XFS_SB_ALL_BITS		((1LL << XFS_SB_NUM_BITS) - 1)
+#define	XFS_SB_MOD_BITS		\
+	(XFS_SB_UUID | XFS_SB_ROOTINO | XFS_SB_RBMINO | XFS_SB_RSUMINO | \
+	 XFS_SB_VERSIONNUM | XFS_SB_UQUOTINO | XFS_SB_GQUOTINO | \
+	 XFS_SB_QFLAGS | XFS_SB_SHARED_VN | XFS_SB_UNIT | XFS_SB_WIDTH)
+
+/*
+ * Misc. Flags - warning - these will be cleared by xfs_repair unless
+ * a feature bit is set when the flag is used.
+ */
+#define XFS_SBF_NOFLAGS		0x00	/* no flags set */
+#define XFS_SBF_READONLY	0x01	/* only read-only mounts allowed */
+
+/*
+ * define max. shared version we can interoperate with
+ */
+#define XFS_SB_MAX_SHARED_VN	0
+
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_NUM)
+int xfs_sb_version_num(xfs_sb_t *sbp);
+#define	XFS_SB_VERSION_NUM(sbp)	xfs_sb_version_num(sbp)
+#else
+#define	XFS_SB_VERSION_NUM(sbp)	((sbp)->sb_versionnum & XFS_SB_VERSION_NUMBITS)
+#endif
+
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_GOOD_VERSION)
+int xfs_sb_good_version(xfs_sb_t *sbp);
+#define	XFS_SB_GOOD_VERSION(sbp)	xfs_sb_good_version(sbp)
+#else
+#define	XFS_SB_GOOD_VERSION_INT(sbp)	\
+	((((sbp)->sb_versionnum >= XFS_SB_VERSION_1) && \
+	  ((sbp)->sb_versionnum <= XFS_SB_VERSION_3)) || \
+	 ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \
+	  !((sbp)->sb_versionnum & ~XFS_SB_VERSION_OKREALBITS)
+#ifdef __KERNEL__
+#define	XFS_SB_GOOD_VERSION(sbp)	\
+	(XFS_SB_GOOD_VERSION_INT(sbp) && \
+	  (sbp)->sb_shared_vn <= XFS_SB_MAX_SHARED_VN) ))
+#else
+/*
+ * extra 2 paren's here (( to unconfuse paren-matching editors
+ * like vi because XFS_SB_GOOD_VERSION_INT is a partial expression
+ * and the two XFS_SB_GOOD_VERSION's each 2 more close paren's to
+ * complete the expression.
+ */
+#define XFS_SB_GOOD_VERSION(sbp)	\
+	(XFS_SB_GOOD_VERSION_INT(sbp) && \
+	  (!((sbp)->sb_versionnum & XFS_SB_VERSION_SHAREDBIT) || \
+	   (sbp)->sb_shared_vn <= XFS_SB_MAX_SHARED_VN)) ))
+#endif /* __KERNEL__ */
+#endif
+
+#define	XFS_SB_GOOD_SASH_VERSION(sbp)	\
+	((((sbp)->sb_versionnum >= XFS_SB_VERSION_1) && \
+	  ((sbp)->sb_versionnum <= XFS_SB_VERSION_3)) || \
+	 ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \
+	  !((sbp)->sb_versionnum & ~XFS_SB_VERSION_OKSASHBITS)))
+
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_TONEW)
+unsigned xfs_sb_version_tonew(unsigned v);
+#define	XFS_SB_VERSION_TONEW(v)	xfs_sb_version_tonew(v)
+#else
+#define	XFS_SB_VERSION_TONEW(v)	\
+	((((v) == XFS_SB_VERSION_1) ? \
+		0 : \
+		(((v) == XFS_SB_VERSION_2) ? \
+			XFS_SB_VERSION_ATTRBIT : \
+			(XFS_SB_VERSION_ATTRBIT | XFS_SB_VERSION_NLINKBIT))) | \
+	 XFS_SB_VERSION_4)
+#endif
+
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_TOOLD)
+unsigned xfs_sb_version_toold(unsigned v);
+#define	XFS_SB_VERSION_TOOLD(v)	xfs_sb_version_toold(v)
+#else
+#define	XFS_SB_VERSION_TOOLD(v)	\
+	(((v) & (XFS_SB_VERSION_QUOTABIT | XFS_SB_VERSION_ALIGNBIT)) ? \
+		0 : \
+		(((v) & XFS_SB_VERSION_NLINKBIT) ? \
+			XFS_SB_VERSION_3 : \
+			(((v) & XFS_SB_VERSION_ATTRBIT) ?  \
+				XFS_SB_VERSION_2 : \
+				XFS_SB_VERSION_1)))
+#endif
+
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_HASATTR)
+int xfs_sb_version_hasattr(xfs_sb_t *sbp);
+#define	XFS_SB_VERSION_HASATTR(sbp)	xfs_sb_version_hasattr(sbp)
+#else
+#define	XFS_SB_VERSION_HASATTR(sbp)	\
+	(((sbp)->sb_versionnum == XFS_SB_VERSION_2) || \
+	 ((sbp)->sb_versionnum == XFS_SB_VERSION_3) || \
+	 ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \
+	  ((sbp)->sb_versionnum & XFS_SB_VERSION_ATTRBIT)))
+#endif
+
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_ADDATTR)
+void xfs_sb_version_addattr(xfs_sb_t *sbp);
+#define	XFS_SB_VERSION_ADDATTR(sbp)	xfs_sb_version_addattr(sbp)
+#else
+#define	XFS_SB_VERSION_ADDATTR(sbp)	\
+	((sbp)->sb_versionnum = \
+	 (((sbp)->sb_versionnum == XFS_SB_VERSION_1) ? \
+		XFS_SB_VERSION_2 : \
+		((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) ? \
+			((sbp)->sb_versionnum | XFS_SB_VERSION_ATTRBIT) : \
+			(XFS_SB_VERSION_4 | XFS_SB_VERSION_ATTRBIT))))
+#endif
+
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_HASNLINK)
+int xfs_sb_version_hasnlink(xfs_sb_t *sbp);
+#define	XFS_SB_VERSION_HASNLINK(sbp)	xfs_sb_version_hasnlink(sbp)
+#else
+#define	XFS_SB_VERSION_HASNLINK(sbp)	\
+	(((sbp)->sb_versionnum == XFS_SB_VERSION_3) || \
+	 ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \
+	  ((sbp)->sb_versionnum & XFS_SB_VERSION_NLINKBIT)))
+#endif
+
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_ADDNLINK)
+void xfs_sb_version_addnlink(xfs_sb_t *sbp);
+#define	XFS_SB_VERSION_ADDNLINK(sbp)	xfs_sb_version_addnlink(sbp)
+#else
+#define	XFS_SB_VERSION_ADDNLINK(sbp)	\
+	((sbp)->sb_versionnum = \
+	 ((sbp)->sb_versionnum <= XFS_SB_VERSION_2 ? \
+		XFS_SB_VERSION_3 : \
+		((sbp)->sb_versionnum | XFS_SB_VERSION_NLINKBIT)))
+#endif
+
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_HASQUOTA)
+int xfs_sb_version_hasquota(xfs_sb_t *sbp);
+#define	XFS_SB_VERSION_HASQUOTA(sbp)	xfs_sb_version_hasquota(sbp)
+#else
+#define	XFS_SB_VERSION_HASQUOTA(sbp)	\
+	((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \
+	 ((sbp)->sb_versionnum & XFS_SB_VERSION_QUOTABIT))
+#endif
+
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_ADDQUOTA)
+void xfs_sb_version_addquota(xfs_sb_t *sbp);
+#define	XFS_SB_VERSION_ADDQUOTA(sbp)	xfs_sb_version_addquota(sbp)
+#else
+#define	XFS_SB_VERSION_ADDQUOTA(sbp)	\
+	((sbp)->sb_versionnum = \
+	 (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 ? \
+		((sbp)->sb_versionnum | XFS_SB_VERSION_QUOTABIT) : \
+		(XFS_SB_VERSION_TONEW((sbp)->sb_versionnum) | \
+		 XFS_SB_VERSION_QUOTABIT)))
+#endif
+
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_HASALIGN)
+int xfs_sb_version_hasalign(xfs_sb_t *sbp);
+#define	XFS_SB_VERSION_HASALIGN(sbp)	xfs_sb_version_hasalign(sbp)
+#else
+#define	XFS_SB_VERSION_HASALIGN(sbp)	\
+	((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \
+	 ((sbp)->sb_versionnum & XFS_SB_VERSION_ALIGNBIT))
+#endif
+
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_SUBALIGN)
+void xfs_sb_version_subalign(xfs_sb_t *sbp);
+#define	XFS_SB_VERSION_SUBALIGN(sbp)	xfs_sb_version_subalign(sbp)
+#else
+#define	XFS_SB_VERSION_SUBALIGN(sbp)	\
+	((sbp)->sb_versionnum = \
+	 XFS_SB_VERSION_TOOLD((sbp)->sb_versionnum & ~XFS_SB_VERSION_ALIGNBIT))
+#endif
+
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_HASDALIGN)
+int xfs_sb_version_hasdalign(xfs_sb_t *sbp);
+#define XFS_SB_VERSION_HASDALIGN(sbp)	xfs_sb_version_hasdalign(sbp)
+#else
+#define XFS_SB_VERSION_HASDALIGN(sbp)	\
+	((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \
+	 ((sbp)->sb_versionnum & XFS_SB_VERSION_DALIGNBIT))
+#endif
+
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_ADDDALIGN)
+int xfs_sb_version_adddalign(xfs_sb_t *sbp);
+#define XFS_SB_VERSION_ADDDALIGN(sbp)	xfs_sb_version_adddalign(sbp)
+#else
+#define XFS_SB_VERSION_ADDDALIGN(sbp)	\
+        ((sbp)->sb_versionnum = \
+                ((sbp)->sb_versionnum | XFS_SB_VERSION_DALIGNBIT))
+#endif
+
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_HASSHARED)
+int xfs_sb_version_hasshared(xfs_sb_t *sbp);
+#define XFS_SB_VERSION_HASSHARED(sbp)	xfs_sb_version_hasshared(sbp)
+#else
+#define XFS_SB_VERSION_HASSHARED(sbp)	\
+        ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \
+	 ((sbp)->sb_versionnum & XFS_SB_VERSION_SHAREDBIT))
+#endif
+
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_ADDSHARED)
+int xfs_sb_version_addshared(xfs_sb_t *sbp);
+#define XFS_SB_VERSION_ADDSHARED(sbp)	xfs_sb_version_addshared(sbp)
+#else
+#define XFS_SB_VERSION_ADDSHARED(sbp)	\
+        ((sbp)->sb_versionnum = \
+                ((sbp)->sb_versionnum | XFS_SB_VERSION_SHAREDBIT))
+#endif
+
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_SUBSHARED)
+int xfs_sb_version_subshared(xfs_sb_t *sbp);
+#define XFS_SB_VERSION_SUBSHARED(sbp)	xfs_sb_version_subshared(sbp)
+#else
+#define XFS_SB_VERSION_SUBSHARED(sbp)	\
+        ((sbp)->sb_versionnum = \
+                ((sbp)->sb_versionnum & ~XFS_SB_VERSION_SHAREDBIT))
+#endif
+
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_HASDIRV2)
+int xfs_sb_version_hasdirv2(xfs_sb_t *sbp);
+#define XFS_SB_VERSION_HASDIRV2(sbp)	xfs_sb_version_hasdirv2(sbp)
+#else
+#define XFS_SB_VERSION_HASDIRV2(sbp)	\
+        ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \
+	 ((sbp)->sb_versionnum & XFS_SB_VERSION_DIRV2BIT))
+#endif
+
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_HASEXTFLGBIT)
+int xfs_sb_version_hasextflgbit(xfs_sb_t *sbp);
+#define XFS_SB_VERSION_HASEXTFLGBIT(sbp)	xfs_sb_version_hasextflgbit(sbp)
+#else
+#define XFS_SB_VERSION_HASEXTFLGBIT(sbp)	\
+        ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \
+	 ((sbp)->sb_versionnum & XFS_SB_VERSION_EXTFLGBIT))
+#endif
+
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_ADDEXTFLGBIT)
+int xfs_sb_version_addextflgbit(xfs_sb_t *sbp);
+#define XFS_SB_VERSION_ADDEXTFLGBIT(sbp)	xfs_sb_version_addextflgbit(sbp)
+#else
+#define XFS_SB_VERSION_ADDEXTFLGBIT(sbp)	\
+        ((sbp)->sb_versionnum = \
+                ((sbp)->sb_versionnum | XFS_SB_VERSION_EXTFLGBIT))
+#endif
+
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_SUBEXTFLGBIT)
+int xfs_sb_version_subextflgbit(xfs_sb_t *sbp);
+#define XFS_SB_VERSION_SUBEXTFLGBIT(sbp)	xfs_sb_version_subextflgbit(sbp)
+#else
+#define XFS_SB_VERSION_SUBEXTFLGBIT(sbp)	\
+        ((sbp)->sb_versionnum = \
+                ((sbp)->sb_versionnum & ~XFS_SB_VERSION_EXTFLGBIT))
+#endif
+
+/*
+ * end of superblock version macros
+ */
+
+#define	XFS_SB_DADDR	((xfs_daddr_t)0)		/* daddr in file system/ag */
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_BLOCK)
+xfs_agblock_t xfs_sb_block(struct xfs_mount *mp);
+#define	XFS_SB_BLOCK(mp)	xfs_sb_block(mp)
+#else
+#define	XFS_SB_BLOCK(mp)	XFS_HDR_BLOCK(mp, XFS_SB_DADDR)
+#endif
+
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_HDR_BLOCK)
+xfs_agblock_t xfs_hdr_block(struct xfs_mount *mp, xfs_daddr_t d);
+#define	XFS_HDR_BLOCK(mp,d)	xfs_hdr_block(mp,d)
+#else
+#define	XFS_HDR_BLOCK(mp,d)	((xfs_agblock_t)(XFS_BB_TO_FSBT(mp,d)))
+#endif
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_DADDR_TO_FSB)
+xfs_fsblock_t xfs_daddr_to_fsb(struct xfs_mount *mp, xfs_daddr_t d);
+#define	XFS_DADDR_TO_FSB(mp,d)		xfs_daddr_to_fsb(mp,d)
+#else
+#define	XFS_DADDR_TO_FSB(mp,d) \
+	XFS_AGB_TO_FSB(mp, XFS_DADDR_TO_AGNO(mp,d), XFS_DADDR_TO_AGBNO(mp,d))
+#endif
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_FSB_TO_DADDR)
+xfs_daddr_t xfs_fsb_to_daddr(struct xfs_mount *mp, xfs_fsblock_t fsbno);
+#define	XFS_FSB_TO_DADDR(mp,fsbno)	xfs_fsb_to_daddr(mp,fsbno)
+#else
+#define	XFS_FSB_TO_DADDR(mp,fsbno) \
+	XFS_AGB_TO_DADDR(mp, XFS_FSB_TO_AGNO(mp,fsbno), \
+			 XFS_FSB_TO_AGBNO(mp,fsbno))
+#endif
+
+/*
+ * File system block to basic block conversions.
+ */
+#define	XFS_FSB_TO_BB(mp,fsbno)	((fsbno) << (mp)->m_blkbb_log)
+#define	XFS_BB_TO_FSB(mp,bb)	\
+	(((bb) + (XFS_FSB_TO_BB(mp,1) - 1)) >> (mp)->m_blkbb_log)
+#define	XFS_BB_TO_FSBT(mp,bb)	((bb) >> (mp)->m_blkbb_log)
+#define	XFS_BB_FSB_OFFSET(mp,bb) ((bb) & ((mp)->m_bsize - 1))
+
+/*
+ * File system block to byte conversions.
+ */
+#define	XFS_FSB_TO_B(mp,fsbno)	((xfs_fsize_t)(fsbno) << \
+				 (mp)->m_sb.sb_blocklog)
+#define	XFS_B_TO_FSB(mp,b)	\
+	((((uint64_t)(b)) + (mp)->m_blockmask) >> (mp)->m_sb.sb_blocklog)
+#define	XFS_B_TO_FSBT(mp,b)	(((uint64_t)(b)) >> (mp)->m_sb.sb_blocklog)
+#define	XFS_B_FSB_OFFSET(mp,b)	((b) & (mp)->m_blockmask)     
+
+#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_BUF_TO_SBP)
+xfs_sb_t *xfs_buf_to_sbp(struct xfs_buf *bp);
+#define	XFS_BUF_TO_SBP(bp)	xfs_buf_to_sbp(bp)
+#else
+#define	XFS_BUF_TO_SBP(bp)	((xfs_sb_t *)XFS_BUF_PTR(bp))
+#endif
+
+#endif	/* __XFS_SB_H__ */
diff --git a/parted-1.8.7/libparted/fs/xfs/xfs_types.h b/parted-1.8.7/libparted/fs/xfs/xfs_types.h
new file mode 100644
index 0000000..e62dd53
--- /dev/null
+++ b/parted-1.8.7/libparted/fs/xfs/xfs_types.h
@@ -0,0 +1,303 @@
+/*
+ * Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
+ * 
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ * 
+ * This program is distributed in the hope that it would be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * 
+ * Further, this software is distributed without any warranty that it is
+ * free of the rightful claim of any third person regarding infringement
+ * or the like.  Any license provided herein, whether implied or
+ * otherwise, applies only to this software file.  Patent licenses, if
+ * any, provided herein do not apply to combinations of this program with
+ * other software, or any other product whatsoever.
+ * 
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write the Free Software Foundation, Inc.,
+ * 51 Franklin St, Fifth Floor, Boston MA 02110-1301, USA.
+ * 
+ * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
+ * Mountain View, CA  94043, or:
+ * 
+ * http://www.sgi.com 
+ * 
+ * For further information regarding this notice, see: 
+ * 
+ * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
+ */
+#ifndef __XFS_TYPES_H__
+#define	__XFS_TYPES_H__
+
+/*
+ * Some types are conditional based on the selected configuration.
+ * Set XFS_BIG_FILES=1 or 0 and XFS_BIG_FILESYSTEMS=1 or 0 depending
+ * on the desired configuration.
+ * XFS_BIG_FILES needs pgno_t to be 64 bits (64-bit kernels).
+ * XFS_BIG_FILESYSTEMS needs daddr_t to be 64 bits (N32 and 64-bit kernels).
+ *
+ * Expect these to be set from klocaldefs, or from the machine-type
+ * defs files for the normal case.
+ */
+
+#define	XFS_BIG_FILES		1
+#define	XFS_BIG_FILESYSTEMS	1
+
+typedef uint32_t	xfs_agblock_t;	/* blockno in alloc. group */
+typedef	uint32_t	xfs_extlen_t;	/* extent length in blocks */
+typedef	uint32_t	xfs_agnumber_t;	/* allocation group number */
+typedef int32_t	xfs_extnum_t;	/* # of extents in a file */
+typedef int16_t	xfs_aextnum_t;	/* # extents in an attribute fork */
+typedef	int64_t	xfs_fsize_t;	/* bytes in a file */
+typedef uint64_t	xfs_ufsize_t;	/* unsigned bytes in a file */
+
+typedef	int32_t	xfs_suminfo_t;	/* type of bitmap summary info */
+typedef	int32_t	xfs_rtword_t;	/* word type for bitmap manipulations */
+
+typedef	int64_t	xfs_lsn_t;	/* log sequence number */
+typedef	int32_t	xfs_tid_t;	/* transaction identifier */
+
+typedef	uint32_t	xfs_dablk_t;	/* dir/attr block number (in file) */
+typedef	uint32_t	xfs_dahash_t;	/* dir/attr hash value */
+
+typedef uint16_t	xfs_prid_t;	/* prid_t truncated to 16bits in XFS */
+
+/*
+ * These types are 64 bits on disk but are either 32 or 64 bits in memory.
+ * Disk based types:
+ */
+typedef uint64_t	xfs_dfsbno_t;	/* blockno in filesystem (agno|agbno) */
+typedef uint64_t	xfs_drfsbno_t;	/* blockno in filesystem (raw) */
+typedef	uint64_t	xfs_drtbno_t;	/* extent (block) in realtime area */
+typedef	uint64_t	xfs_dfiloff_t;	/* block number in a file */
+typedef	uint64_t	xfs_dfilblks_t;	/* number of blocks in a file */
+
+/*
+ * Memory based types are conditional.
+ */
+#if XFS_BIG_FILESYSTEMS
+typedef	uint64_t	xfs_fsblock_t;	/* blockno in filesystem (agno|agbno) */
+typedef uint64_t	xfs_rfsblock_t;	/* blockno in filesystem (raw) */
+typedef uint64_t	xfs_rtblock_t;	/* extent (block) in realtime area */
+typedef	int64_t	xfs_srtblock_t;	/* signed version of xfs_rtblock_t */
+#else
+typedef	uint32_t	xfs_fsblock_t;	/* blockno in filesystem (agno|agbno) */
+typedef uint32_t	xfs_rfsblock_t;	/* blockno in filesystem (raw) */
+typedef uint32_t	xfs_rtblock_t;	/* extent (block) in realtime area */
+typedef	int32_t	xfs_srtblock_t;	/* signed version of xfs_rtblock_t */
+#endif
+#if XFS_BIG_FILES
+typedef	uint64_t	xfs_fileoff_t;	/* block number in a file */
+typedef	int64_t	xfs_sfiloff_t;	/* signed block number in a file */
+typedef	uint64_t	xfs_filblks_t;	/* number of blocks in a file */
+#else
+typedef	uint32_t	xfs_fileoff_t;	/* block number in a file */
+typedef	int32_t	xfs_sfiloff_t;	/* signed block number in a file */
+typedef	uint32_t	xfs_filblks_t;	/* number of blocks in a file */
+#endif
+
+typedef uint8_t       xfs_arch_t;     /* architecutre of an xfs fs */
+
+/*
+ * Null values for the types.
+ */
+#define	NULLDFSBNO	((xfs_dfsbno_t)-1)
+#define	NULLDRFSBNO	((xfs_drfsbno_t)-1)
+#define	NULLDRTBNO	((xfs_drtbno_t)-1)
+#define	NULLDFILOFF	((xfs_dfiloff_t)-1)
+
+#define	NULLFSBLOCK	((xfs_fsblock_t)-1)
+#define	NULLRFSBLOCK	((xfs_rfsblock_t)-1)
+#define	NULLRTBLOCK	((xfs_rtblock_t)-1)
+#define	NULLFILEOFF	((xfs_fileoff_t)-1)
+
+#define	NULLAGBLOCK	((xfs_agblock_t)-1)
+#define	NULLAGNUMBER	((xfs_agnumber_t)-1)
+#define	NULLEXTNUM	((xfs_extnum_t)-1)
+
+#define NULLCOMMITLSN	((xfs_lsn_t)-1)
+
+/*
+ * Max values for extlen, extnum, aextnum.
+ */
+#define	MAXEXTLEN	((xfs_extlen_t)0x001fffff)	/* 21 bits */
+#define	MAXEXTNUM	((xfs_extnum_t)0x7fffffff)	/* signed int */
+#define	MAXAEXTNUM	((xfs_aextnum_t)0x7fff)		/* signed short */
+
+/*
+ * MAXNAMELEN is the length (including the terminating null) of
+ * the longest permissible file (component) name.
+ */
+#define MAXNAMELEN	256
+
+typedef enum {
+	XFS_LOOKUP_EQi, XFS_LOOKUP_LEi, XFS_LOOKUP_GEi
+} xfs_lookup_t;
+
+typedef enum {
+	XFS_BTNUM_BNOi, XFS_BTNUM_CNTi, XFS_BTNUM_BMAPi, XFS_BTNUM_INOi,
+	XFS_BTNUM_MAX
+} xfs_btnum_t;
+
+
+#ifdef CONFIG_PROC_FS
+/*
+ * XFS global statistics
+ */
+struct xfsstats {
+# define XFSSTAT_END_EXTENT_ALLOC	4
+	uint32_t		xs_allocx;
+	uint32_t		xs_allocb;
+	uint32_t		xs_freex;
+	uint32_t		xs_freeb;
+# define XFSSTAT_END_ALLOC_BTREE   	(XFSSTAT_END_EXTENT_ALLOC+4)
+	uint32_t		xs_abt_lookup;
+	uint32_t		xs_abt_compare;
+	uint32_t		xs_abt_insrec;
+	uint32_t		xs_abt_delrec;
+# define XFSSTAT_END_BLOCK_MAPPING	(XFSSTAT_END_ALLOC_BTREE+7)
+	uint32_t		xs_blk_mapr;
+	uint32_t		xs_blk_mapw;
+	uint32_t		xs_blk_unmap;
+	uint32_t		xs_add_exlist;
+	uint32_t		xs_del_exlist;
+	uint32_t		xs_look_exlist;
+	uint32_t		xs_cmp_exlist;
+# define XFSSTAT_END_BLOCK_MAP_BTREE	(XFSSTAT_END_BLOCK_MAPPING+4)
+	uint32_t		xs_bmbt_lookup;
+	uint32_t		xs_bmbt_compare;
+	uint32_t		xs_bmbt_insrec;
+	uint32_t		xs_bmbt_delrec;
+# define XFSSTAT_END_DIRECTORY_OPS	(XFSSTAT_END_BLOCK_MAP_BTREE+4)
+	uint32_t		xs_dir_lookup;
+	uint32_t		xs_dir_create;
+	uint32_t		xs_dir_remove;
+	uint32_t		xs_dir_getdents;
+# define XFSSTAT_END_TRANSACTIONS	(XFSSTAT_END_DIRECTORY_OPS+3)
+	uint32_t		xs_trans_sync;
+	uint32_t		xs_trans_async;
+	uint32_t		xs_trans_empty;
+# define XFSSTAT_END_INODE_OPS		(XFSSTAT_END_TRANSACTIONS+7)
+	uint32_t		xs_ig_attempts;
+	uint32_t		xs_ig_found;
+	uint32_t		xs_ig_frecycle;
+	uint32_t		xs_ig_missed;
+	uint32_t		xs_ig_dup;
+	uint32_t		xs_ig_reclaims;
+	uint32_t		xs_ig_attrchg;
+# define XFSSTAT_END_LOG_OPS		(XFSSTAT_END_INODE_OPS+5)
+	uint32_t		xs_log_writes;
+	uint32_t		xs_log_blocks;
+	uint32_t		xs_log_noiclogs;
+	uint32_t		xs_log_force;
+	uint32_t		xs_log_force_sleep;
+# define XFSSTAT_END_TAIL_PUSHING	(XFSSTAT_END_LOG_OPS+10)
+	uint32_t		xs_try_logspace;
+	uint32_t		xs_sleep_logspace;
+	uint32_t		xs_push_ail;
+	uint32_t		xs_push_ail_success;
+	uint32_t		xs_push_ail_pushbuf;
+	uint32_t		xs_push_ail_pinned;
+	uint32_t		xs_push_ail_locked;
+	uint32_t		xs_push_ail_flushing;
+	uint32_t		xs_push_ail_restarts;
+	uint32_t		xs_push_ail_flush;
+# define XFSSTAT_END_WRITE_CONVERT	(XFSSTAT_END_TAIL_PUSHING+2)
+	uint32_t		xs_xstrat_quick;
+	uint32_t		xs_xstrat_split;
+# define XFSSTAT_END_READ_WRITE_OPS	(XFSSTAT_END_WRITE_CONVERT+2)
+	uint32_t		xs_write_calls;
+	uint32_t		xs_read_calls;
+# define XFSSTAT_END_ATTRIBUTE_OPS	(XFSSTAT_END_READ_WRITE_OPS+4)
+	uint32_t		xs_attr_get;
+	uint32_t		xs_attr_set;
+	uint32_t		xs_attr_remove;
+	uint32_t		xs_attr_list;
+# define XFSSTAT_END_QUOTA_OPS		(XFSSTAT_END_ATTRIBUTE_OPS+8)
+	uint32_t		xs_qm_dqreclaims;
+	uint32_t		xs_qm_dqreclaim_misses;
+	uint32_t		xs_qm_dquot_dups;
+	uint32_t		xs_qm_dqcachemisses;
+	uint32_t		xs_qm_dqcachehits;
+	uint32_t		xs_qm_dqwants;
+	uint32_t		xs_qm_dqshake_reclaims;
+	uint32_t		xs_qm_dqinact_reclaims;
+# define XFSSTAT_END_INODE_CLUSTER	(XFSSTAT_END_QUOTA_OPS+3)
+	uint32_t		xs_iflush_count;
+	uint32_t		xs_icluster_flushcnt;
+	uint32_t		xs_icluster_flushinode;
+# define XFSSTAT_END_VNODE_OPS		(XFSSTAT_END_INODE_CLUSTER+8)
+	uint32_t		vn_active;	/* # vnodes not on free lists */
+	uint32_t		vn_alloc;	/* # times vn_alloc called */
+	uint32_t		vn_get;		/* # times vn_get called */
+	uint32_t		vn_hold;	/* # times vn_hold called */
+	uint32_t		vn_rele;	/* # times vn_rele called */
+	uint32_t		vn_reclaim;	/* # times vn_reclaim called */
+	uint32_t		vn_remove;	/* # times vn_remove called */
+	uint32_t		vn_free;	/* # times vn_free called */
+	struct xfsstats_xpc {
+		uint64_t	xs_xstrat_bytes;
+		uint64_t	xs_write_bytes;
+		uint64_t	xs_read_bytes;
+	} xpc;
+} xfsstats;
+
+# define XFS_STATS_INC(count)		( xfsstats.##count ++ )
+# define XFS_STATS_DEC(count)		( xfsstats.##count -- )
+# define XFS_STATS_ADD(count, inc)	( xfsstats.##count += (inc) )
+# define XFS_STATS64_INC(count)		( xfsstats.xpc.##count ++ )
+# define XFS_STATS64_ADD(count, inc)	( xfsstats.xpc.##count += (inc) )
+#else	/* !CONFIG_PROC_FS */
+# define XFS_STATS_INC(count)
+# define XFS_STATS_DEC(count)
+# define XFS_STATS_ADD(count, inc)
+# define XFS_STATS64_INC(count)
+# define XFS_STATS64_ADD(count, inc)
+#endif	/* !CONFIG_PROC_FS */
+
+
+#ifdef __KERNEL__
+
+/* juggle IRIX device numbers - still used in ondisk structures */
+
+#define IRIX_DEV_BITSMAJOR      14
+#define IRIX_DEV_BITSMINOR      18 
+#define IRIX_DEV_MAXMAJ         0x1ff 
+#define IRIX_DEV_MAXMIN         0x3ffff
+#define IRIX_DEV_MAJOR(dev)     ((int)(((unsigned)(dev)>>IRIX_DEV_BITSMINOR) \
+                                    & IRIX_DEV_MAXMAJ))
+#define IRIX_DEV_MINOR(dev)     ((int)((dev)&IRIX_DEV_MAXMIN))
+#define IRIX_MKDEV(major,minor) ((xfs_dev_t)(((major)<<IRIX_DEV_BITSMINOR) \
+                                    | (minor&IRIX_DEV_MAXMIN)))
+                                    
+#define IRIX_DEV_TO_KDEVT(dev)  MKDEV(IRIX_DEV_MAJOR(dev),IRIX_DEV_MINOR(dev))
+#define IRIX_DEV_TO_DEVT(dev)   ((IRIX_DEV_MAJOR(dev)<<8)|IRIX_DEV_MINOR(dev))
+
+/* __psint_t is the same size as a pointer */
+#if (BITS_PER_LONG == 32)
+typedef int32_t __psint_t;
+typedef uint32_t __psunsigned_t;
+#elif (BITS_PER_LONG == 64)
+typedef int64_t __psint_t;
+typedef uint64_t __psunsigned_t;
+#else
+#error BITS_PER_LONG must be 32 or 64
+#endif
+
+
+/*
+ * struct for passing owner/requestor id
+ */
+typedef struct flid {
+#ifdef CELL_CAPABLE
+        pid_t   fl_pid;
+        sysid_t fl_sysid;
+#endif
+} flid_t;
+
+#endif	/* __KERNEL__ */
+
+#endif	/* !__XFS_TYPES_H */
diff --git a/parted-1.8.7/libparted/labels/Makefile.am b/parted-1.8.7/libparted/labels/Makefile.am
new file mode 100644
index 0000000..f4d7d14
--- /dev/null
+++ b/parted-1.8.7/libparted/labels/Makefile.am
@@ -0,0 +1,33 @@
+# This file is part of GNU Parted
+# Copyright (C) 1999, 2000, 2001, 2007 Free Software Foundation, Inc.
+#
+# This file may be modified and/or distributed without restriction.
+
+if COMPILE_FOR_S390
+S390_SRCS = dasd.c fdasd.c vtoc.c
+else
+S390_SRCS =
+endif
+
+partedincludedir      =	-I$(top_srcdir)/include
+noinst_LTLIBRARIES    =	liblabels.la
+
+liblabels_la_SOURCES  = rdb.c		\
+			bsd.c  		\
+			$(S390_SRCS)	\
+			efi_crc32.c	\
+			dos.c  		\
+			dvh.h		\
+			dvh.c  		\
+			gpt.c  		\
+			loop.c 		\
+			mac.c  		\
+			pc98.c 		\
+			sun.c		\
+			aix.c
+
+liblabels_la_LIBADD = $(OS_LIBS) $(INTLLIBS)
+
+INCLUDES = $(partedincludedir) $(INTLINCS)
+
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/parted-1.8.7/libparted/labels/Makefile.in b/parted-1.8.7/libparted/labels/Makefile.in
new file mode 100644
index 0000000..efcf8ed
--- /dev/null
+++ b/parted-1.8.7/libparted/labels/Makefile.in
@@ -0,0 +1,665 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# This file is part of GNU Parted
+# Copyright (C) 1999, 2000, 2001, 2007 Free Software Foundation, Inc.
+#
+# This file may be modified and/or distributed without restriction.
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = libparted/labels
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+liblabels_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+am__liblabels_la_SOURCES_DIST = rdb.c bsd.c dasd.c fdasd.c vtoc.c \
+	efi_crc32.c dos.c dvh.h dvh.c gpt.c loop.c mac.c pc98.c sun.c \
+	aix.c
+@COMPILE_FOR_S390_TRUE@am__objects_1 = dasd.lo fdasd.lo vtoc.lo
+am_liblabels_la_OBJECTS = rdb.lo bsd.lo $(am__objects_1) efi_crc32.lo \
+	dos.lo dvh.lo gpt.lo loop.lo mac.lo pc98.lo sun.lo aix.lo
+liblabels_la_OBJECTS = $(am_liblabels_la_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/lib@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(liblabels_la_SOURCES)
+DIST_SOURCES = $(am__liblabels_la_SOURCES_DIST)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+@COMPILE_FOR_S390_FALSE@S390_SRCS = 
+@COMPILE_FOR_S390_TRUE@S390_SRCS = dasd.c fdasd.c vtoc.c
+partedincludedir = -I$(top_srcdir)/include
+noinst_LTLIBRARIES = liblabels.la
+liblabels_la_SOURCES = rdb.c		\
+			bsd.c  		\
+			$(S390_SRCS)	\
+			efi_crc32.c	\
+			dos.c  		\
+			dvh.h		\
+			dvh.c  		\
+			gpt.c  		\
+			loop.c 		\
+			mac.c  		\
+			pc98.c 		\
+			sun.c		\
+			aix.c
+
+liblabels_la_LIBADD = $(OS_LIBS) $(INTLLIBS)
+INCLUDES = $(partedincludedir) $(INTLINCS)
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  libparted/labels/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  libparted/labels/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+liblabels.la: $(liblabels_la_OBJECTS) $(liblabels_la_DEPENDENCIES) 
+	$(LINK)  $(liblabels_la_OBJECTS) $(liblabels_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aix.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bsd.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dasd.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dos.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dvh.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/efi_crc32.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fdasd.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpt.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loop.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mac.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pc98.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rdb.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sun.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vtoc.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/libparted/labels/aix.c b/parted-1.8.7/libparted/labels/aix.c
new file mode 100644
index 0000000..9e7a3e2
--- /dev/null
+++ b/parted-1.8.7/libparted/labels/aix.c
@@ -0,0 +1,296 @@
+/* -*- Mode: c; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2000, 2001, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+    Contributor:  Matt Wilson <msw@redhat.com>
+*/
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+#include <parted/endian.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#define	AIX_LABEL_MAGIC		0xc9c2d4c1
+
+static PedDiskType aix_disk_type;
+
+static inline int
+aix_label_magic_get (const char *label)
+{
+	return *(unsigned int *)label;
+}
+
+static inline void
+aix_label_magic_set (char *label, int magic_val)
+{
+	*(unsigned int *)label = magic_val;
+}
+
+/* Read a single sector, of length DEV->sector_size, into malloc'd storage.
+   If the read fails, free the memory and return zero without modifying *BUF.
+   Otherwise, set *BUF to the new buffer and return 1.  */
+static int
+read_sector (const PedDevice *dev, char **buf)
+{
+	char *b = ped_malloc (dev->sector_size);
+	PED_ASSERT (b != NULL, return 0);
+	if (!ped_device_read (dev, b, 0, 1)) {
+		ped_free (b);
+		return 0;
+	}
+	*buf = b;
+	return 1;
+}
+
+static int
+aix_probe (const PedDevice *dev)
+{
+	PED_ASSERT (dev != NULL, return 0);
+
+	char *label;
+	if (!read_sector (dev, &label))
+		return 0;
+	unsigned int magic = aix_label_magic_get (label);
+	ped_free (label);
+	return magic == AIX_LABEL_MAGIC;
+}
+
+#ifndef DISCOVER_ONLY
+static int
+aix_clobber (PedDevice* dev)
+{
+	PED_ASSERT (dev != NULL, return 0);
+
+	if (!aix_probe (dev))
+		return 0;
+
+	char *label;
+	if (!read_sector (dev, &label))
+		return 0;
+
+	aix_label_magic_set (label, 0);
+	int result = ped_device_write (dev, label, 0, 1);
+	ped_free (label);
+	return result;
+}
+#endif /* !DISCOVER_ONLY */
+
+static PedDisk*
+aix_alloc (const PedDevice* dev)
+{
+	PedDisk*	disk;
+
+        disk = _ped_disk_alloc (dev, &aix_disk_type);
+	if (!disk)
+		return NULL;
+
+	return disk;
+}
+
+static PedDisk*
+aix_duplicate (const PedDisk* disk)
+{
+	PedDisk*	new_disk;
+       
+	new_disk = ped_disk_new_fresh (disk->dev, &aix_disk_type);
+	if (!new_disk)
+		return NULL;
+
+	return new_disk;
+}
+
+static void
+aix_free (PedDisk *disk)
+{
+	_ped_disk_free (disk);
+}
+
+static int
+aix_read (PedDisk* disk)
+{
+	ped_disk_delete_all (disk);
+        ped_exception_throw (PED_EXCEPTION_NO_FEATURE,
+                             PED_EXCEPTION_CANCEL,
+                             _("Support for reading AIX disk labels is "
+                               "is not implemented yet."));
+        return 0;
+}
+
+#ifndef DISCOVER_ONLY
+static int
+aix_write (const PedDisk* disk)
+{
+        ped_exception_throw (PED_EXCEPTION_NO_FEATURE,
+                             PED_EXCEPTION_CANCEL,
+                             _("Support for writing AIX disk labels is "
+                               "is not implemented yet."));
+	return 0;
+}
+#endif /* !DISCOVER_ONLY */
+
+static PedPartition*
+aix_partition_new (const PedDisk* disk, PedPartitionType part_type,
+		   const PedFileSystemType* fs_type,
+		   PedSector start, PedSector end)
+{
+        ped_exception_throw (PED_EXCEPTION_NO_FEATURE,
+                             PED_EXCEPTION_CANCEL,
+                             _("Support for adding partitions to AIX disk "
+                               "labels is not implemented yet."));
+        return NULL;
+}
+
+static PedPartition*
+aix_partition_duplicate (const PedPartition* part)
+{
+        ped_exception_throw (PED_EXCEPTION_NO_FEATURE,
+                             PED_EXCEPTION_CANCEL,
+                             _("Support for duplicating partitions in AIX "
+                               "disk labels is not implemented yet."));
+        return NULL;
+}
+
+static void
+aix_partition_destroy (PedPartition* part)
+{
+	PED_ASSERT (part != NULL, return);
+
+	_ped_partition_free (part);
+}
+
+static int
+aix_partition_set_system (PedPartition* part, const PedFileSystemType* fs_type)
+{
+        ped_exception_throw (PED_EXCEPTION_NO_FEATURE,
+                             PED_EXCEPTION_CANCEL,
+                             _("Support for setting system type of partitions "
+                               "in AIX disk labels is not implemented yet."));
+	return 0;
+}
+
+static int
+aix_partition_set_flag (PedPartition* part, PedPartitionFlag flag, int state)
+{
+        ped_exception_throw (PED_EXCEPTION_NO_FEATURE,
+                             PED_EXCEPTION_CANCEL,
+                             _("Support for setting flags "
+                               "in AIX disk labels is not implemented yet."));
+        return 0;
+}
+
+static int
+aix_partition_get_flag (const PedPartition* part, PedPartitionFlag flag)
+{
+        return 0;
+}
+
+
+static int
+aix_partition_is_flag_available (const PedPartition* part,
+				 PedPartitionFlag flag)
+{
+        return 0;
+}
+
+
+static int
+aix_get_max_primary_partition_count (const PedDisk* disk)
+{
+	return 4;
+}
+
+static int
+aix_partition_align (PedPartition* part, const PedConstraint* constraint)
+{
+        PED_ASSERT (part != NULL, return 0);
+
+        return 1;
+}
+
+static int
+aix_partition_enumerate (PedPartition* part)
+{
+	return 1;
+}
+
+static int
+aix_alloc_metadata (PedDisk* disk)
+{
+	return 1;
+}
+
+static PedDiskOps aix_disk_ops = {
+	probe:			aix_probe,
+#ifndef DISCOVER_ONLY
+	clobber:		aix_clobber,
+#else
+	clobber:		NULL,
+#endif
+	alloc:			aix_alloc,
+	duplicate:		aix_duplicate,
+	free:			aix_free,
+	read:			aix_read,
+#ifndef DISCOVER_ONLY
+	write:			aix_write,
+#else
+	write:			NULL,
+#endif
+
+	partition_new:		aix_partition_new,
+	partition_duplicate:	aix_partition_duplicate,
+	partition_destroy:	aix_partition_destroy,
+	partition_set_system:	aix_partition_set_system,
+	partition_set_flag:	aix_partition_set_flag,
+	partition_get_flag:	aix_partition_get_flag,
+	partition_is_flag_available:	aix_partition_is_flag_available,
+	partition_align:	aix_partition_align,
+	partition_enumerate:	aix_partition_enumerate,
+	alloc_metadata:		aix_alloc_metadata,
+	get_max_primary_partition_count:
+				aix_get_max_primary_partition_count,
+
+	partition_set_name:		NULL,
+	partition_get_name:		NULL,
+};
+
+static PedDiskType aix_disk_type = {
+	next:		NULL,
+	name:		"aix",
+	ops:		&aix_disk_ops,
+	features:	0
+};
+
+void
+ped_disk_aix_init ()
+{
+	ped_disk_type_register (&aix_disk_type);
+}
+
+void
+ped_disk_aix_done ()
+{
+	ped_disk_type_unregister (&aix_disk_type);
+}
diff --git a/parted-1.8.7/libparted/labels/bsd.c b/parted-1.8.7/libparted/labels/bsd.c
new file mode 100644
index 0000000..747a9c5
--- /dev/null
+++ b/parted-1.8.7/libparted/labels/bsd.c
@@ -0,0 +1,613 @@
+/* -*- Mode: c; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2000, 2001, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+
+    Contributor:  Matt Wilson <msw@redhat.com>
+*/
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+#include <parted/endian.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+/* struct's & #define's stolen from libfdisk, which probably came from
+ * Linux...
+ */
+
+#define BSD_DISKMAGIC	(0x82564557UL)	/* The disk magic number */
+#define BSD_MAXPARTITIONS	8
+#define BSD_FS_UNUSED		0	/* disklabel unused partition entry ID */
+#define BSD_LABEL_OFFSET	64
+
+#define	BSD_DTYPE_SMD		1		/* SMD, XSMD; VAX hp/up */
+#define	BSD_DTYPE_MSCP		2		/* MSCP */
+#define	BSD_DTYPE_DEC		3		/* other DEC (rk, rl) */
+#define	BSD_DTYPE_SCSI		4		/* SCSI */
+#define	BSD_DTYPE_ESDI		5		/* ESDI interface */
+#define	BSD_DTYPE_ST506		6		/* ST506 etc. */
+#define	BSD_DTYPE_HPIB		7		/* CS/80 on HP-IB */
+#define BSD_DTYPE_HPFL		8		/* HP Fiber-link */
+#define	BSD_DTYPE_FLOPPY	10		/* floppy */
+
+#define	BSD_BBSIZE	8192		/* size of boot area, with label */
+#define	BSD_SBSIZE	8192		/* max size of fs superblock */
+
+typedef struct _BSDRawPartition		BSDRawPartition;
+typedef struct _BSDRawLabel		BSDRawLabel;
+
+struct _BSDRawPartition {		/* the partition table */
+	uint32_t	p_size;		/* number of sectors in partition */
+	uint32_t	p_offset;	/* starting sector */
+	uint32_t	p_fsize;	/* file system basic fragment size */
+	uint8_t		p_fstype;	/* file system type, see below */
+	uint8_t		p_frag;		/* file system fragments per block */
+	uint16_t	p_cpg;		/* file system cylinders per group */
+} __attribute__((packed));
+
+struct _BSDRawLabel {
+	uint32_t	d_magic;		/* the magic number */
+	int16_t		d_type;			/* drive type */
+	int16_t		d_subtype;		/* controller/d_type specific */
+	int8_t		d_typename[16];		/* type name, e.g. "eagle" */
+	int8_t		d_packname[16];		/* pack identifier */ 
+	uint32_t	d_secsize;		/* # of bytes per sector */
+	uint32_t	d_nsectors;		/* # of data sectors per track */
+	uint32_t	d_ntracks;		/* # of tracks per cylinder */
+	uint32_t	d_ncylinders;		/* # of data cylinders per unit */
+	uint32_t	d_secpercyl;		/* # of data sectors per cylinder */
+	uint32_t	d_secperunit;		/* # of data sectors per unit */
+	uint16_t	d_sparespertrack;	/* # of spare sectors per track */
+	uint16_t	d_sparespercyl;		/* # of spare sectors per cylinder */
+	uint32_t	d_acylinders;		/* # of alt. cylinders per unit */
+	uint16_t	d_rpm;			/* rotational speed */
+	uint16_t	d_interleave;		/* hardware sector interleave */
+	uint16_t	d_trackskew;		/* sector 0 skew, per track */
+	uint16_t	d_cylskew;		/* sector 0 skew, per cylinder */
+	uint32_t	d_headswitch;		/* head switch time, usec */
+	uint32_t	d_trkseek;		/* track-to-track seek, usec */
+	uint32_t	d_flags;		/* generic flags */
+#define NDDATA 5
+	uint32_t	d_drivedata[NDDATA];	/* drive-type specific information */
+#define NSPARE 5
+	uint32_t	d_spare[NSPARE];	/* reserved for future use */
+	uint32_t	d_magic2;		/* the magic number (again) */
+	uint16_t	d_checksum;		/* xor of data incl. partitions */
+	
+	/* file system and partition information: */
+	uint16_t	d_npartitions;		/* number of partitions in following */
+	uint32_t	d_bbsize;		/* size of boot area at sn0, bytes */
+	uint32_t	d_sbsize;		/* max size of fs superblock, bytes */
+	BSDRawPartition d_partitions[BSD_MAXPARTITIONS];	/* actually may be more */
+} __attribute__((packed));
+
+typedef struct {
+	char		boot_code [512];
+} BSDDiskData;
+
+typedef struct {
+	uint8_t		type;
+} BSDPartitionData;
+
+static PedDiskType bsd_disk_type;
+
+/* XXX fixme: endian? */
+static unsigned short
+xbsd_dkcksum (BSDRawLabel *lp) {
+	unsigned short *start, *end;
+	unsigned short sum = 0;
+	
+	lp->d_checksum = 0;
+	start = (u_short*) lp;
+	end = (u_short*) &lp->d_partitions [
+				PED_LE16_TO_CPU (lp->d_npartitions)];
+	while (start < end)
+		sum ^= *start++;
+	return sum;
+}
+
+/* XXX fixme: endian? */
+static void
+alpha_bootblock_checksum (char *boot) {
+	uint64_t *dp, sum;
+	int i;
+	
+	dp = (uint64_t *)boot;
+	sum = 0;
+	for (i = 0; i < 63; i++)
+		sum += dp[i];
+	dp[63] = sum;
+}
+
+
+static int
+bsd_probe (const PedDevice *dev)
+{
+	char		boot[512];
+	BSDRawLabel	*label;
+
+	PED_ASSERT (dev != NULL, return 0);
+
+        if (dev->sector_size != 512)
+                return 0;
+
+	if (!ped_device_read (dev, boot, 0, 1))
+		return 0;
+
+	label = (BSDRawLabel *) (boot + BSD_LABEL_OFFSET);
+
+	alpha_bootblock_checksum(boot);
+	
+	/* check magic */
+	if (PED_LE32_TO_CPU (label->d_magic) != BSD_DISKMAGIC)
+		return 0;
+
+	return 1;
+}
+
+static PedDisk*
+bsd_alloc (const PedDevice* dev)
+{
+	PedDisk*	disk;
+	BSDDiskData*	bsd_specific;
+	BSDRawLabel*	label;
+
+	PED_ASSERT(dev->sector_size % PED_SECTOR_SIZE_DEFAULT == 0, return 0);
+
+	disk = _ped_disk_alloc ((PedDevice*)dev, &bsd_disk_type);
+	if (!disk)
+		goto error;
+	disk->disk_specific = bsd_specific = ped_malloc (sizeof (BSDDiskData));
+	if (!bsd_specific)
+		goto error_free_disk;
+
+	label = (BSDRawLabel*) (bsd_specific->boot_code + BSD_LABEL_OFFSET);
+	memset(label, 0, sizeof(BSDRawLabel));
+
+	label->d_magic = PED_CPU_TO_LE32 (BSD_DISKMAGIC);
+	label->d_type = PED_CPU_TO_LE16 (BSD_DTYPE_SCSI);
+	label->d_flags = 0;
+	label->d_secsize = PED_CPU_TO_LE16 (dev->sector_size);
+	label->d_nsectors = PED_CPU_TO_LE32 (dev->bios_geom.sectors);
+	label->d_ntracks = PED_CPU_TO_LE32 (dev->bios_geom.heads);
+	label->d_ncylinders = PED_CPU_TO_LE32 (dev->bios_geom.cylinders);
+	label->d_secpercyl = PED_CPU_TO_LE32 (dev->bios_geom.sectors
+						* dev->bios_geom.heads);
+	label->d_secperunit
+		= PED_CPU_TO_LE32 (dev->bios_geom.sectors
+				   * dev->bios_geom.heads
+				   * dev->bios_geom.cylinders);
+	
+	label->d_rpm = PED_CPU_TO_LE16 (3600);
+	label->d_interleave = PED_CPU_TO_LE16 (1);;
+	label->d_trackskew = 0;
+	label->d_cylskew = 0;
+	label->d_headswitch = 0;
+	label->d_trkseek = 0;
+	
+	label->d_magic2 = PED_CPU_TO_LE32 (BSD_DISKMAGIC);
+	label->d_bbsize = PED_CPU_TO_LE32 (BSD_BBSIZE);
+	label->d_sbsize = PED_CPU_TO_LE32 (BSD_SBSIZE);
+	
+	label->d_npartitions = 0;
+	label->d_checksum = xbsd_dkcksum (label);
+	return disk;
+
+error_free_disk:
+	ped_free (disk);
+error:
+	return NULL;
+}
+
+static PedDisk*
+bsd_duplicate (const PedDisk* disk)
+{
+	PedDisk*	new_disk;
+	BSDDiskData*	new_bsd_data;
+	BSDDiskData*	old_bsd_data = (BSDDiskData*) disk->disk_specific;
+       
+	new_disk = ped_disk_new_fresh (disk->dev, &bsd_disk_type);
+	if (!new_disk)
+		return NULL;
+
+	new_bsd_data = (BSDDiskData*) new_disk->disk_specific;
+	memcpy (new_bsd_data->boot_code, old_bsd_data->boot_code, 512);
+	return new_disk;
+}
+
+static void
+bsd_free (PedDisk* disk)
+{
+	ped_free (disk->disk_specific);
+	_ped_disk_free (disk);
+}
+
+#ifndef DISCOVER_ONLY
+static int
+bsd_clobber (PedDevice* dev)
+{
+	char		boot [512];
+	BSDRawLabel*	label = (BSDRawLabel *) (boot + BSD_LABEL_OFFSET);
+
+	if (!ped_device_read (dev, boot, 0, 1))
+		return 0;
+	label->d_magic = 0;
+	return ped_device_write (dev, (void*) boot, 0, 1);
+}
+#endif /* !DISCOVER_ONLY */
+
+static int
+bsd_read (PedDisk* disk)
+{
+	BSDDiskData*	bsd_specific = (BSDDiskData*) disk->disk_specific;
+	BSDRawLabel*	label;
+	int 		i;
+	
+	ped_disk_delete_all (disk);
+
+	if (!ped_device_read (disk->dev, bsd_specific->boot_code, 0, 1))
+		goto error;
+	label = (BSDRawLabel *) (bsd_specific->boot_code + BSD_LABEL_OFFSET);
+
+	for (i = 1; i <= BSD_MAXPARTITIONS; i++) {
+		PedPartition* 		part;
+		BSDPartitionData*	bsd_part_data;
+		PedSector		start;
+		PedSector		end;
+		PedConstraint*		constraint_exact;
+
+		if (!label->d_partitions[i - 1].p_size
+		    || !label->d_partitions[i - 1].p_fstype)
+			continue;
+		start = PED_LE32_TO_CPU(label->d_partitions[i - 1].p_offset);
+		end = PED_LE32_TO_CPU(label->d_partitions[i - 1].p_offset)
+		      + PED_LE32_TO_CPU(label->d_partitions[i - 1].p_size) - 1;
+		part = ped_partition_new (disk, 0, NULL, start, end);
+		if (!part)
+			goto error;
+		bsd_part_data = part->disk_specific;
+		bsd_part_data->type = label->d_partitions[i - 1].p_fstype;
+		part->num = i;
+		part->fs_type = ped_file_system_probe (&part->geom);
+		
+		constraint_exact = ped_constraint_exact (&part->geom);
+		if (!ped_disk_add_partition (disk, part, constraint_exact))
+			goto error;
+		ped_constraint_destroy (constraint_exact);
+	}
+
+	return 1;
+
+error:
+	return 0;
+}
+
+static void
+_probe_and_add_boot_code (const PedDisk* disk)
+{
+	BSDDiskData*		bsd_specific;
+	BSDRawLabel*		old_label;
+	char			old_boot_code [512];
+
+	bsd_specific = (BSDDiskData*) disk->disk_specific;
+	old_label = (BSDRawLabel*) (old_boot_code + BSD_LABEL_OFFSET);
+
+	if (!ped_device_read (disk->dev, old_boot_code, 0, 1))
+		return;
+	if (old_boot_code [0]
+	    && old_label->d_magic == PED_CPU_TO_LE32 (BSD_DISKMAGIC))
+		memcpy (bsd_specific->boot_code, old_boot_code, 512);
+}
+
+#ifndef DISCOVER_ONLY
+static int
+bsd_write (const PedDisk* disk)
+{
+	BSDDiskData*		bsd_specific;
+	BSDRawLabel*		label;
+	BSDPartitionData*	bsd_data;
+	PedPartition*		part;
+	int			i;
+	int			max_part = 0;
+
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (disk->dev != NULL, return 0);
+
+	bsd_specific = (BSDDiskData*) disk->disk_specific;
+	label = (BSDRawLabel *) (bsd_specific->boot_code + BSD_LABEL_OFFSET);
+
+	if (!bsd_specific->boot_code [0])
+		_probe_and_add_boot_code (disk);
+
+	memset (label->d_partitions, 0,
+		sizeof (BSDRawPartition) * BSD_MAXPARTITIONS);
+
+	for (i = 1; i <= BSD_MAXPARTITIONS; i++) {
+		part = ped_disk_get_partition (disk, i);
+		if (!part)
+			continue;
+		bsd_data = part->disk_specific;
+		label->d_partitions[i - 1].p_fstype = bsd_data->type;
+		label->d_partitions[i - 1].p_offset
+			= PED_CPU_TO_LE32 (part->geom.start);
+		label->d_partitions[i - 1].p_size
+			= PED_CPU_TO_LE32 (part->geom.length);
+		max_part = i;
+	}
+
+	label->d_npartitions = PED_CPU_TO_LE16 (max_part) + 1;
+	label->d_checksum = xbsd_dkcksum (label);
+
+	alpha_bootblock_checksum (bsd_specific->boot_code);
+
+	if (!ped_device_write (disk->dev, (void*) bsd_specific->boot_code,
+			       0, 1))
+		goto error;
+	return ped_device_sync (disk->dev);
+
+error:
+	return 0;
+}
+#endif /* !DISCOVER_ONLY */
+
+static PedPartition*
+bsd_partition_new (const PedDisk* disk, PedPartitionType part_type,
+		   const PedFileSystemType* fs_type,
+		   PedSector start, PedSector end)
+{
+	PedPartition*		part;
+	BSDPartitionData*	bsd_data;
+
+	part = _ped_partition_alloc (disk, part_type, fs_type, start, end);
+	if (!part)
+		goto error;
+
+	if (ped_partition_is_active (part)) {
+		part->disk_specific
+		       	= bsd_data = ped_malloc (sizeof (BSDPartitionData));
+		if (!bsd_data)
+			goto error_free_part;
+		bsd_data->type = 0;
+	} else {
+		part->disk_specific = NULL;
+	}
+	return part;
+
+	ped_free (bsd_data);
+error_free_part:
+	ped_free (part);
+error:
+	return 0;
+}
+
+static PedPartition*
+bsd_partition_duplicate (const PedPartition* part)
+{
+	PedPartition*		new_part;
+	BSDPartitionData*	new_bsd_data;
+	BSDPartitionData*	old_bsd_data;
+
+	new_part = ped_partition_new (part->disk, part->type,
+				      part->fs_type, part->geom.start,
+				      part->geom.end);
+	if (!new_part)
+		return NULL;
+	new_part->num = part->num;
+
+	old_bsd_data = (BSDPartitionData*) part->disk_specific;
+	new_bsd_data = (BSDPartitionData*) new_part->disk_specific;
+	new_bsd_data->type = old_bsd_data->type;
+	return new_part;
+}
+
+static void
+bsd_partition_destroy (PedPartition* part)
+{
+	PED_ASSERT (part != NULL, return);
+
+	if (ped_partition_is_active (part))
+		ped_free (part->disk_specific);
+	_ped_partition_free (part);
+}
+
+static int
+bsd_partition_set_system (PedPartition* part, const PedFileSystemType* fs_type)
+{
+	BSDPartitionData* bsd_data = part->disk_specific;
+
+	part->fs_type = fs_type;
+
+	if (!fs_type)
+		bsd_data->type = 0x8;
+	else if (!strcmp (fs_type->name, "linux-swap"))
+		bsd_data->type = 0x1;
+	else
+		bsd_data->type = 0x8;
+
+	return 1;
+}
+
+static int
+bsd_partition_set_flag (PedPartition* part, PedPartitionFlag flag, int state)
+{
+	/* no flags for bsd */
+	return 0;
+}
+
+static int
+bsd_partition_get_flag (const PedPartition* part, PedPartitionFlag flag)
+{
+	/* no flags for bsd */
+	return 0;
+}
+
+static int
+bsd_partition_is_flag_available (const PedPartition* part,
+				 PedPartitionFlag flag)
+{
+	/* no flags for bsd */
+	return 0;
+}
+
+
+static int
+bsd_get_max_primary_partition_count (const PedDisk* disk)
+{
+	return BSD_MAXPARTITIONS;
+}
+
+static PedConstraint*
+_get_constraint (const PedDevice* dev)
+{
+	PedGeometry	max;
+
+	ped_geometry_init (&max, dev, 1, dev->length - 1);
+	return ped_constraint_new_from_max (&max);
+}
+
+static int
+bsd_partition_align (PedPartition* part, const PedConstraint* constraint)
+{
+	if (_ped_partition_attempt_align (part, constraint,
+					  _get_constraint (part->disk->dev)))
+	       	return 1;
+
+#ifndef DISCOVER_ONLY
+	ped_exception_throw (
+		PED_EXCEPTION_ERROR,
+		PED_EXCEPTION_CANCEL,
+		_("Unable to satisfy all constraints on the partition."));
+#endif
+	return 0;
+}
+
+static int
+bsd_partition_enumerate (PedPartition* part)
+{
+	int i;
+	PedPartition* p;
+	
+	/* never change the partition numbers */
+	if (part->num != -1)
+		return 1;
+	for (i = 1; i <= BSD_MAXPARTITIONS; i++) {
+		p = ped_disk_get_partition (part->disk, i);
+		if (!p) {
+			part->num = i;
+			return 1;
+		}
+	}
+
+	/* failed to allocate a number */
+#ifndef DISCOVER_ONLY
+	ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			     _("Unable to allocate a bsd disklabel slot."));
+#endif
+	return 0;
+}
+
+static int
+bsd_alloc_metadata (PedDisk* disk)
+{
+	PedPartition*		new_part;
+	PedConstraint*		constraint_any = NULL;
+
+	PED_ASSERT (disk != NULL, goto error);
+	PED_ASSERT (disk->dev != NULL, goto error);
+
+	constraint_any = ped_constraint_any (disk->dev);
+
+	/* allocate 1 sector for the disk label at the start */
+	new_part = ped_partition_new (disk, PED_PARTITION_METADATA, NULL, 0, 0);
+	if (!new_part)
+		goto error;
+
+	if (!ped_disk_add_partition (disk, new_part, constraint_any)) {
+		ped_partition_destroy (new_part);
+		goto error;
+	}
+
+	ped_constraint_destroy (constraint_any);
+	return 1;
+error:
+	ped_constraint_destroy (constraint_any);
+	return 0;
+}
+
+static PedDiskOps bsd_disk_ops = {
+	probe:			bsd_probe,
+#ifndef DISCOVER_ONLY
+	clobber:		bsd_clobber,
+#else
+	clobber:		NULL,
+#endif
+	alloc:			bsd_alloc,
+	duplicate:		bsd_duplicate,
+	free:			bsd_free,
+	read:			bsd_read,
+#ifndef DISCOVER_ONLY
+	write:			bsd_write,
+#else
+	write:			NULL,
+#endif
+
+	partition_new:		bsd_partition_new,
+	partition_duplicate:	bsd_partition_duplicate,
+	partition_destroy:	bsd_partition_destroy,
+	partition_set_system:	bsd_partition_set_system,
+	partition_set_flag:	bsd_partition_set_flag,
+	partition_get_flag:	bsd_partition_get_flag,
+	partition_is_flag_available:	bsd_partition_is_flag_available,
+	partition_set_name:	NULL,
+	partition_get_name:	NULL,
+	partition_align:	bsd_partition_align,
+	partition_enumerate:	bsd_partition_enumerate,
+
+	alloc_metadata:		bsd_alloc_metadata,
+	get_max_primary_partition_count:
+				bsd_get_max_primary_partition_count
+};
+
+static PedDiskType bsd_disk_type = {
+	next:		NULL,
+	name:		"bsd",
+	ops:		&bsd_disk_ops,
+	features:	0
+};
+
+void
+ped_disk_bsd_init ()
+{
+	PED_ASSERT (sizeof (BSDRawPartition) == 16, return);
+	PED_ASSERT (sizeof (BSDRawLabel) == 276, return);
+
+	ped_disk_type_register (&bsd_disk_type);
+}
+
+void
+ped_disk_bsd_done ()
+{
+	ped_disk_type_unregister (&bsd_disk_type);
+}
diff --git a/parted-1.8.7/libparted/labels/dasd.c b/parted-1.8.7/libparted/labels/dasd.c
new file mode 100644
index 0000000..f11bc52
--- /dev/null
+++ b/parted-1.8.7/libparted/labels/dasd.c
@@ -0,0 +1,864 @@
+/* -*- Mode: c; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2000, 2001, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+    Contributor:  Phil Knirsch <phil@redhat.de>
+                  Harald Hoyer <harald@redhat.de>
+*/
+
+#include <config.h>
+
+#include <stdio.h>
+#include <errno.h>
+#include <ctype.h>
+#include <time.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+#include <sys/stat.h>
+#include <sys/ioctl.h>
+#include <parted/parted.h>
+#include <parted/endian.h>
+#include <parted/debug.h>
+
+#include <parted/vtoc.h>
+#include <parted/fdasd.h>
+#include <parted/linux.h>
+
+#include <libintl.h>
+#if ENABLE_NLS
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#define PARTITION_LINUX_SWAP 0x82
+#define PARTITION_LINUX 0x83
+#define PARTITION_LINUX_EXT 0x85
+#define PARTITION_LINUX_LVM 0x8e
+#define PARTITION_LINUX_RAID 0xfd
+#define PARTITION_LINUX_LVM_OLD 0xfe
+
+extern void ped_disk_dasd_init ();
+extern void ped_disk_dasd_done ();
+
+#define DASD_NAME "dasd"
+
+typedef struct {
+	int type;
+	int system;
+	int	raid;
+	int	lvm;
+	void *part_info;
+} DasdPartitionData;
+
+typedef struct {
+	unsigned int real_sector_size;
+	unsigned int format_type;
+	/* IBM internal dasd structure (i guess ;), required. */
+	struct fdasd_anchor *anchor;
+} DasdDiskSpecific;
+
+static int dasd_probe (const PedDevice *dev);
+static int dasd_clobber (PedDevice* dev);
+static int dasd_read (PedDisk* disk);
+static int dasd_write (const PedDisk* disk);
+
+static PedPartition* dasd_partition_new (const PedDisk* disk,
+										 PedPartitionType part_type,
+										 const PedFileSystemType* fs_type,
+										 PedSector start,
+										 PedSector end);
+static void dasd_partition_destroy (PedPartition* part);
+static int dasd_partition_set_flag (PedPartition* part,
+									PedPartitionFlag flag,
+									int state);
+static int dasd_partition_get_flag (const PedPartition* part,
+									PedPartitionFlag flag);
+static int dasd_partition_is_flag_available (const PedPartition* part,
+											 PedPartitionFlag flag);
+static int dasd_partition_align (PedPartition* part,
+								 const PedConstraint* constraint);
+static int dasd_partition_enumerate (PedPartition* part);
+static int dasd_get_max_primary_partition_count (const PedDisk* disk);
+
+static PedDisk* dasd_alloc (const PedDevice* dev);
+static PedDisk* dasd_duplicate (const PedDisk* disk);
+static void dasd_free (PedDisk* disk);
+static int dasd_partition_set_system (PedPartition* part,
+									  const PedFileSystemType* fs_type);
+static int dasd_alloc_metadata (PedDisk* disk);
+
+static PedDiskOps dasd_disk_ops = {
+	probe: dasd_probe,
+	clobber: dasd_clobber,
+	read: dasd_read,
+	write: dasd_write,
+
+	alloc: dasd_alloc,
+	duplicate: dasd_duplicate,
+	free: dasd_free,
+	partition_set_system: dasd_partition_set_system,
+
+	partition_new: dasd_partition_new,
+	partition_destroy: dasd_partition_destroy,
+	partition_set_flag:	dasd_partition_set_flag,
+	partition_get_flag:	dasd_partition_get_flag,
+	partition_is_flag_available: dasd_partition_is_flag_available,
+	partition_set_name:	NULL,
+	partition_get_name:	NULL,
+	partition_align: dasd_partition_align,
+	partition_enumerate: dasd_partition_enumerate,
+
+	alloc_metadata: dasd_alloc_metadata,
+	get_max_primary_partition_count: dasd_get_max_primary_partition_count,
+
+	partition_duplicate: NULL
+};
+
+static PedDiskType dasd_disk_type = {
+	next: NULL,
+	name: "dasd",
+	ops: &dasd_disk_ops,
+	features: 0
+};
+
+static PedDisk*
+dasd_alloc (const PedDevice* dev)
+{
+	PedDisk* disk;
+	LinuxSpecific* arch_specific;
+	DasdDiskSpecific *disk_specific;
+
+	PED_ASSERT (dev != NULL, return NULL);
+
+	arch_specific = LINUX_SPECIFIC (dev);
+	disk = _ped_disk_alloc (dev, &dasd_disk_type);
+	if (!disk)
+		return NULL;
+
+	disk->disk_specific = disk_specific = ped_malloc(sizeof(DasdDiskSpecific));
+	if (!disk->disk_specific) {
+		ped_free (disk);
+		return NULL;
+	}
+
+	/* because we lie to parted we have to compensate with the
+	   real sector size.  Record that now. */
+	if (ioctl(arch_specific->fd, BLKSSZGET,
+			  &disk_specific->real_sector_size) == -1) {
+		ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+							_("Unable to determine the block "
+							  "size of this dasd"));
+		ped_free(disk_specific);
+		ped_free(disk);
+		return NULL;
+	}
+
+	return disk;
+}
+
+static PedDisk*
+dasd_duplicate (const PedDisk* disk)
+{
+	PedDisk* new_disk;
+
+	new_disk = ped_disk_new_fresh(disk->dev, &dasd_disk_type);
+
+	if (!new_disk)
+		return NULL;
+
+	new_disk->disk_specific = NULL;
+
+	return new_disk;
+}
+
+static void
+dasd_free (PedDisk* disk)
+{
+	PED_ASSERT(disk != NULL, return);
+
+	_ped_disk_free(disk);
+}
+
+
+void
+ped_disk_dasd_init ()
+{
+	ped_disk_type_register(&dasd_disk_type);
+}
+
+void
+ped_disk_dasd_done ()
+{
+	ped_disk_type_unregister(&dasd_disk_type);
+}
+
+static int
+dasd_probe (const PedDevice *dev)
+{
+	char *errstr = 0;
+	LinuxSpecific* arch_specific;
+	struct fdasd_anchor anchor;
+
+	PED_ASSERT(dev != NULL, return 0);
+	PED_ASSERT((dev->type == PED_DEVICE_DASD
+			   || dev->type == PED_DEVICE_VIODASD), return 0);
+
+	arch_specific = LINUX_SPECIFIC(dev);
+
+	/* add partition test here */
+	fdasd_initialize_anchor(&anchor);
+
+	fdasd_get_geometry(&anchor, arch_specific->fd);
+
+	fdasd_check_api_version(&anchor, arch_specific->fd);
+
+	if (fdasd_check_volume(&anchor, arch_specific->fd))
+		goto error_cleanup;
+
+	fdasd_cleanup(&anchor);
+
+	return 1;
+
+error_cleanup:
+	fdasd_cleanup(&anchor);
+	ped_exception_throw(PED_EXCEPTION_ERROR,PED_EXCEPTION_IGNORE_CANCEL,errstr);
+
+	return 0;
+}
+
+static int
+dasd_clobber (PedDevice* dev)
+{
+	LinuxSpecific* arch_specific;
+	struct fdasd_anchor anchor;
+
+	PED_ASSERT(dev != NULL, return 0);
+
+	arch_specific = LINUX_SPECIFIC(dev);
+
+	fdasd_initialize_anchor(&anchor);
+	fdasd_get_geometry(&anchor, arch_specific->fd);
+
+	fdasd_recreate_vtoc(&anchor);
+	fdasd_write_labels(&anchor, arch_specific->fd);
+
+	return 1;
+}
+
+static int
+dasd_read (PedDisk* disk)
+{
+	int i;
+	char str[20];
+	PedDevice* dev;
+	PedPartition* part;
+	PedSector start, end;
+	PedConstraint* constraint_exact;
+	partition_info_t *p;
+	LinuxSpecific* arch_specific;
+	DasdDiskSpecific* disk_specific;
+
+	PDEBUG;
+
+	PED_ASSERT (disk != NULL, return 0);
+	PDEBUG;
+	PED_ASSERT (disk->dev != NULL, return 0);
+	PDEBUG;
+
+	dev = disk->dev;
+
+	arch_specific = LINUX_SPECIFIC(dev);
+	disk_specific = disk->disk_specific;
+
+	disk_specific->anchor = ped_malloc(sizeof(fdasd_anchor_t));
+
+	PDEBUG;
+
+	fdasd_initialize_anchor(disk_specific->anchor);
+
+	fdasd_get_geometry(disk_specific->anchor, arch_specific->fd);
+
+	/* check dasd for labels and vtoc */
+	if (fdasd_check_volume(disk_specific->anchor, arch_specific->fd))
+		goto error_close_dev;
+
+	if ((disk_specific->anchor->geo.cylinders
+		* disk_specific->anchor->geo.heads) > BIG_DISK_SIZE)
+		disk_specific->anchor->big_disk++;
+
+	ped_disk_delete_all (disk);
+
+	if (strncmp(disk_specific->anchor->vlabel->volkey,
+				vtoc_ebcdic_enc ("LNX1", str, 4), 4) == 0) {
+		DasdPartitionData* dasd_data;
+
+		/* LDL format, old one */
+		disk_specific->format_type = 1;
+		start = 24;
+		end = (long long)(long long) disk_specific->anchor->geo.cylinders
+		      * (long long)disk_specific->anchor->geo.heads
+		      * (long long)disk->dev->hw_geom.sectors
+		      * (long long)disk_specific->real_sector_size
+		      / (long long)disk->dev->sector_size - 1;
+		part = ped_partition_new (disk, PED_PARTITION_PROTECTED, NULL, start, end);
+		if (!part)
+			goto error_close_dev;
+
+		part->num = 1;
+		part->fs_type = ped_file_system_probe (&part->geom);
+		dasd_data = part->disk_specific;
+		dasd_data->raid = 0;
+		dasd_data->lvm = 0;
+		dasd_data->type = 0;
+
+		if (!ped_disk_add_partition (disk, part, NULL))
+			goto error_close_dev;
+
+		return 1;
+	}
+
+	/* CDL format, newer */
+	disk_specific->format_type = 2;
+
+	p = disk_specific->anchor->first;
+	PDEBUG;
+
+	for (i = 1 ; i <= USABLE_PARTITIONS; i++) {
+		char *ch = p->f1->DS1DSNAM;
+		DasdPartitionData* dasd_data;
+
+
+		if (p->used != 0x01)
+			continue;
+
+        PDEBUG;
+
+		start = (long long)(long long) p->start_trk
+				* (long long) disk->dev->hw_geom.sectors
+				* (long long) disk_specific->real_sector_size
+				/ (long long) disk->dev->sector_size;
+		end   = (long long)((long long) p->end_trk + 1)
+				* (long long) disk->dev->hw_geom.sectors
+				* (long long) disk_specific->real_sector_size
+				/ (long long) disk->dev->sector_size - 1;
+		part = ped_partition_new(disk, 0, NULL, start, end);
+        PDEBUG;
+
+		if (!part)
+			goto error_close_dev;
+
+        PDEBUG;
+
+		part->num = i;
+		part->fs_type = ped_file_system_probe(&part->geom);
+
+		vtoc_ebcdic_dec(p->f1->DS1DSNAM, p->f1->DS1DSNAM, 44);
+		ch = strstr(p->f1->DS1DSNAM, "PART");
+
+		if (ch != NULL) {
+			strncpy(str, ch+9, 6);
+			str[6] = '\0';
+		}
+
+		dasd_data = part->disk_specific;
+
+		if (strncmp(PART_TYPE_RAID, str, 6) == 0)
+			ped_partition_set_flag(part, PED_PARTITION_RAID, 1);
+		else
+			ped_partition_set_flag(part, PED_PARTITION_RAID, 0);
+
+		if (strncmp(PART_TYPE_LVM, str, 6) == 0)
+			ped_partition_set_flag(part, PED_PARTITION_LVM, 1);
+		else
+			ped_partition_set_flag(part, PED_PARTITION_LVM, 0);
+
+		if (strncmp(PART_TYPE_SWAP, str, 6) == 0) {
+			dasd_data->system = PARTITION_LINUX_SWAP;
+			PDEBUG;
+		}
+
+		vtoc_ebcdic_enc(p->f1->DS1DSNAM, p->f1->DS1DSNAM, 44);
+
+		dasd_data->part_info = (void *) p;
+		dasd_data->type = 0;
+
+		constraint_exact = ped_constraint_exact (&part->geom);
+		if (!constraint_exact)
+			goto error_close_dev;
+		if (!ped_disk_add_partition(disk, part, constraint_exact))
+			goto error_close_dev;
+		ped_constraint_destroy(constraint_exact);
+
+		if (p->fspace_trk > 0) {
+			start = (long long)((long long) p->end_trk + 1)
+					* (long long) disk->dev->hw_geom.sectors
+					* (long long) disk_specific->real_sector_size
+					/ (long long) disk->dev->sector_size;
+			end   = (long long)((long long) p->end_trk + 1 + p->fspace_trk)
+					* (long long) disk->dev->hw_geom.sectors
+					* (long long) disk_specific->real_sector_size
+					/ (long long) disk->dev->sector_size - 1;
+			part = ped_partition_new (disk, 0, NULL, start, end);
+
+			if (!part)
+				goto error_close_dev;
+
+			part->type = PED_PARTITION_FREESPACE;
+			constraint_exact = ped_constraint_exact(&part->geom);
+
+			if (!constraint_exact)
+				goto error_close_dev;
+			if (!ped_disk_add_partition(disk, part, constraint_exact))
+				goto error_close_dev;
+
+			ped_constraint_destroy (constraint_exact);
+		}
+
+		p = p->next;
+	}
+
+	PDEBUG;
+	return 1;
+
+error_close_dev:
+	PDEBUG;
+	return 0;
+}
+
+static int
+dasd_update_type (const PedDisk* disk)
+{
+	PedPartition* part;
+	LinuxSpecific* arch_specific;
+	DasdDiskSpecific* disk_specific;
+
+	arch_specific = LINUX_SPECIFIC(disk->dev);
+	disk_specific = disk->disk_specific;
+
+	PDEBUG;
+
+	for (part = ped_disk_next_partition(disk, NULL); part;
+	     part = ped_disk_next_partition(disk, part)) {
+		partition_info_t *p;
+		char *ch = NULL;
+		DasdPartitionData* dasd_data;
+
+		PDEBUG;
+
+		if (part->type & PED_PARTITION_FREESPACE
+			|| part->type & PED_PARTITION_METADATA)
+			continue;
+
+		PDEBUG;
+
+		dasd_data = part->disk_specific;
+		p = dasd_data->part_info;
+
+		if (!p ) {
+			PDEBUG;
+			continue;
+		}
+
+		vtoc_ebcdic_dec(p->f1->DS1DSNAM, p->f1->DS1DSNAM, 44);
+		ch = strstr(p->f1->DS1DSNAM, "PART");
+
+		PDEBUG;
+		if (ch == NULL) {
+			vtoc_ebcdic_enc(p->f1->DS1DSNAM, p->f1->DS1DSNAM, 44);
+			PDEBUG;
+			continue;
+		}
+
+		ch += 9;
+
+		switch (dasd_data->system) {
+			case PARTITION_LINUX_LVM:
+				PDEBUG;
+				strncpy(ch, PART_TYPE_LVM, 6);
+				break;
+			case PARTITION_LINUX_RAID:
+				PDEBUG;
+				strncpy(ch, PART_TYPE_RAID, 6);
+				break;
+			case PARTITION_LINUX:
+				PDEBUG;
+				strncpy(ch, PART_TYPE_NATIVE, 6);
+				break;
+			case PARTITION_LINUX_SWAP:
+				PDEBUG;
+				strncpy(ch, PART_TYPE_SWAP, 6);
+				break;
+			default:
+				PDEBUG;
+				strncpy(ch, PART_TYPE_NATIVE, 6);
+				break;
+		}
+
+		disk_specific->anchor->vtoc_changed++;
+		vtoc_ebcdic_enc(p->f1->DS1DSNAM, p->f1->DS1DSNAM, 44);
+	}
+
+	return 1;
+}
+
+static int
+dasd_write (const PedDisk* disk)
+{
+	DasdPartitionData* dasd_data;
+	PedPartition* part;
+	int i;
+	partition_info_t *p;
+	LinuxSpecific* arch_specific;
+	DasdDiskSpecific* disk_specific;
+	PED_ASSERT(disk != NULL, return 0);
+	PED_ASSERT(disk->dev != NULL, return 0);
+
+	arch_specific = LINUX_SPECIFIC (disk->dev);
+	disk_specific = disk->disk_specific;
+
+	PDEBUG;
+
+	/* If formated in LDL, don't write anything. */
+	if (disk_specific->format_type == 1)
+		return 1;
+
+	/* XXX re-initialize anchor? */
+	fdasd_initialize_anchor(disk_specific->anchor);
+	fdasd_get_geometry(disk_specific->anchor, arch_specific->fd);
+
+	/* check dasd for labels and vtoc */
+	if (fdasd_check_volume(disk_specific->anchor, arch_specific->fd))
+		goto error;
+
+	if ((disk_specific->anchor->geo.cylinders
+		* disk_specific->anchor->geo.heads) > BIG_DISK_SIZE)
+		disk_specific->anchor->big_disk++;
+
+	fdasd_recreate_vtoc(disk_specific->anchor);
+
+	for (i = 1; i <= USABLE_PARTITIONS; i++) {
+		unsigned int start, stop;
+		int type;
+
+		PDEBUG;
+		part = ped_disk_get_partition(disk, i);
+		if (!part)
+			continue;
+
+		PDEBUG;
+
+		start = part->geom.start * disk->dev->sector_size
+				/ disk_specific->real_sector_size / disk->dev->hw_geom.sectors;
+		stop = (part->geom.end + 1)
+			   * disk->dev->sector_size / disk_specific->real_sector_size
+			   / disk->dev->hw_geom.sectors - 1;
+
+		PDEBUG;
+		dasd_data = part->disk_specific;
+
+		type = dasd_data->type;
+		PDEBUG;
+
+		p = fdasd_add_partition(disk_specific->anchor, start, stop);
+		if (!p) {
+			PDEBUG;
+			return 0;
+		}
+		dasd_data->part_info = (void *) p;
+		p->type = dasd_data->system;
+	}
+
+	PDEBUG;
+
+	if (!fdasd_prepare_labels(disk_specific->anchor, arch_specific->fd))
+		return 0;
+
+	dasd_update_type(disk);
+	PDEBUG;
+
+	if (!fdasd_write_labels(disk_specific->anchor, arch_specific->fd))
+		return 0;
+
+	return 1;
+
+error:
+	PDEBUG;
+	return 0;
+}
+
+static PedPartition*
+dasd_partition_new (const PedDisk* disk, PedPartitionType part_type,
+                    const PedFileSystemType* fs_type,
+                    PedSector start, PedSector end)
+{
+	PedPartition* part;
+
+	part = _ped_partition_alloc(disk, part_type, fs_type, start, end);
+	if (!part)
+		goto error;
+
+	part->disk_specific = ped_malloc (sizeof (DasdPartitionData));
+	return part;
+
+error:
+	return 0;
+}
+
+static void
+dasd_partition_destroy (PedPartition* part)
+{
+	PED_ASSERT(part != NULL, return);
+
+	if (ped_partition_is_active(part))
+		ped_free(part->disk_specific);
+	ped_free(part);
+}
+
+static int
+dasd_partition_set_flag (PedPartition* part, PedPartitionFlag flag, int state)
+{
+	DasdPartitionData* dasd_data;
+
+	PED_ASSERT(part != NULL, return 0);
+	PED_ASSERT(part->disk_specific != NULL, return 0);
+	dasd_data = part->disk_specific;
+
+	switch (flag) {
+		case PED_PARTITION_RAID:
+			if (state)
+				dasd_data->lvm = 0;
+			dasd_data->raid = state;
+			return ped_partition_set_system(part, part->fs_type);
+		case PED_PARTITION_LVM:
+			if (state)
+				dasd_data->raid = 0;
+			dasd_data->lvm = state;
+			return ped_partition_set_system(part, part->fs_type);
+		default:
+			return 0;
+	}
+}
+
+static int
+dasd_partition_get_flag (const PedPartition* part, PedPartitionFlag flag)
+{
+	DasdPartitionData* dasd_data;
+
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk_specific != NULL, return 0);
+	dasd_data = part->disk_specific;
+
+	switch (flag) {
+		case PED_PARTITION_RAID:
+			return dasd_data->raid;
+		case PED_PARTITION_LVM:
+			return dasd_data->lvm;
+		default:
+			return 0;
+	}
+}
+
+static int
+dasd_partition_is_flag_available (const PedPartition* part,
+                                  PedPartitionFlag flag)
+{
+	switch (flag) {
+		case PED_PARTITION_RAID:
+			return 1;
+		case PED_PARTITION_LVM:
+			return 1;
+		default:
+			return 0;
+	}
+}
+
+
+static int
+dasd_get_max_primary_partition_count (const PedDisk* disk)
+{
+	DasdDiskSpecific* disk_specific;
+
+	disk_specific = disk->disk_specific;
+	/* If formated in LDL, maximum partition number is 1 */
+	if (disk_specific->format_type == 1)
+		return 1;
+
+	return USABLE_PARTITIONS;
+}
+
+static PedConstraint*
+_primary_constraint (PedDisk* disk)
+{
+	PedAlignment start_align;
+	PedAlignment end_align;
+	PedGeometry	max_geom;
+	PedSector sector_size;
+	LinuxSpecific* arch_specific;
+	DasdDiskSpecific* disk_specific;
+
+	PDEBUG;
+
+	arch_specific = LINUX_SPECIFIC (disk->dev);
+	disk_specific = disk->disk_specific;
+	sector_size = disk_specific->real_sector_size / disk->dev->sector_size;
+
+	if (!ped_alignment_init (&start_align, 0,
+							 disk->dev->hw_geom.sectors * sector_size))
+		return NULL;
+	if (!ped_alignment_init (&end_align, -1,
+						     disk->dev->hw_geom.sectors * sector_size))
+		return NULL;
+	if (!ped_geometry_init (&max_geom, disk->dev, 0, disk->dev->length))
+		return NULL;
+
+	return ped_constraint_new(&start_align, &end_align, &max_geom,
+							  &max_geom, 1, disk->dev->length);
+}
+
+static int
+dasd_partition_align (PedPartition* part, const PedConstraint* constraint)
+{
+	DasdDiskSpecific* disk_specific;
+
+	PED_ASSERT (part != NULL, return 0);
+
+	disk_specific = part->disk->disk_specific;
+	/* If formated in LDL, ignore metadata partition */
+	if (disk_specific->format_type == 1)
+		return 1;
+
+	if (_ped_partition_attempt_align(part, constraint,
+								     _primary_constraint(part->disk)))
+		return 1;
+
+#ifndef DISCOVER_ONLY
+	ped_exception_throw (
+		PED_EXCEPTION_ERROR,
+		PED_EXCEPTION_CANCEL,
+		_("Unable to satisfy all constraints on the partition."));
+#endif
+
+	return 0;
+}
+
+static int
+dasd_partition_enumerate (PedPartition* part)
+{
+	int i;
+	PedPartition* p;
+
+	/* never change the partition numbers */
+	if (part->num != -1)
+		return 1;
+
+	for (i = 1; i <= USABLE_PARTITIONS; i++) {
+		p = ped_disk_get_partition (part->disk, i);
+		if (!p) {
+			part->num = i;
+			return 1;
+		}
+	}
+
+	/* failed to allocate a number */
+	ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+						_("Unable to allocate a dasd disklabel slot"));
+	return 0;
+}
+
+static int
+dasd_partition_set_system (PedPartition* part,
+                           const PedFileSystemType* fs_type)
+{
+	DasdPartitionData* dasd_data = part->disk_specific;
+	PedSector cyl_size;
+
+	cyl_size=part->disk->dev->hw_geom.sectors * part->disk->dev->hw_geom.heads;
+	PDEBUG;
+
+	part->fs_type = fs_type;
+
+	if (dasd_data->lvm) {
+		dasd_data->system = PARTITION_LINUX_LVM;
+        PDEBUG;
+		return 1;
+	}
+
+	if (dasd_data->raid) {
+		dasd_data->system = PARTITION_LINUX_RAID;
+        PDEBUG;
+		return 1;
+	}
+
+	if (!fs_type) {
+		dasd_data->system = PARTITION_LINUX;
+        PDEBUG;
+	} else if (!strcmp (fs_type->name, "linux-swap")) {
+		dasd_data->system = PARTITION_LINUX_SWAP;
+        PDEBUG;
+	} else {
+		dasd_data->system = PARTITION_LINUX;
+        PDEBUG;
+	}
+
+	return 1;
+}
+
+static int
+dasd_alloc_metadata (PedDisk* disk)
+{
+	PedPartition* new_part;
+	PedConstraint* constraint_any = NULL;
+	PedSector vtoc_end;
+	LinuxSpecific* arch_specific;
+	DasdDiskSpecific* disk_specific;
+
+	PED_ASSERT (disk != NULL, goto error);
+	PED_ASSERT (disk->dev != NULL, goto error);
+
+	arch_specific = LINUX_SPECIFIC (disk->dev);
+	disk_specific = disk->disk_specific;
+
+	constraint_any = ped_constraint_any (disk->dev);
+
+	/* If formated in LDL, the real partition starts at sector 24. */
+	if (disk_specific->format_type == 1)
+		vtoc_end = 23;
+	else
+        /* Mark the start of the disk as metadata. */
+		vtoc_end = (FIRST_USABLE_TRK * (long long) disk->dev->hw_geom.sectors
+				   * (long long) disk_specific->real_sector_size
+				   / (long long) disk->dev->sector_size) - 1;
+
+	new_part = ped_partition_new (disk,PED_PARTITION_METADATA,NULL,0,vtoc_end);
+	if (!new_part)
+		goto error;
+
+	if (!ped_disk_add_partition (disk, new_part, constraint_any)) {
+		ped_partition_destroy (new_part);
+		goto error;
+	}
+
+	ped_constraint_destroy (constraint_any);
+	return 1;
+
+error:
+	ped_constraint_destroy (constraint_any);
+	return 0;
+}
diff --git a/parted-1.8.7/libparted/labels/dos.c b/parted-1.8.7/libparted/labels/dos.c
new file mode 100644
index 0000000..9a31fc1
--- /dev/null
+++ b/parted-1.8.7/libparted/labels/dos.c
@@ -0,0 +1,2237 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 1999, 2000, 2001, 2004, 2005, 2007
+    Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+
+#include <sys/time.h>
+#include <parted/parted.h>
+#include <parted/debug.h>
+#include <parted/endian.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+/* this MBR boot code is loaded into 0000:7c00 by the BIOS.  See mbr.s for
+ * the source, and how to build it
+ */
+
+static const char MBR_BOOT_CODE[] = {
+	0xfa, 0xb8, 0x00, 0x10, 0x8e, 0xd0, 0xbc, 0x00,
+	0xb0, 0xb8, 0x00, 0x00, 0x8e, 0xd8, 0x8e, 0xc0,
+	0xfb, 0xbe, 0x00, 0x7c, 0xbf, 0x00, 0x06, 0xb9,
+	0x00, 0x02, 0xf3, 0xa4, 0xea, 0x21, 0x06, 0x00,
+	0x00, 0xbe, 0xbe, 0x07, 0x38, 0x04, 0x75, 0x0b,
+	0x83, 0xc6, 0x10, 0x81, 0xfe, 0xfe, 0x07, 0x75,
+	0xf3, 0xeb, 0x16, 0xb4, 0x02, 0xb0, 0x01, 0xbb,
+	0x00, 0x7c, 0xb2, 0x80, 0x8a, 0x74, 0x01, 0x8b,
+	0x4c, 0x02, 0xcd, 0x13, 0xea, 0x00, 0x7c, 0x00,
+	0x00, 0xeb, 0xfe
+};
+
+#define MSDOS_MAGIC		0xAA55
+#define PARTITION_MAGIC_MAGIC	0xf6f6
+
+#define PARTITION_EMPTY		0x00
+#define PARTITION_FAT12		0x01
+#define PARTITION_FAT16_SM	0x04
+#define PARTITION_DOS_EXT	0x05
+#define PARTITION_FAT16		0x06
+#define PARTITION_NTFS		0x07
+#define PARTITION_HPFS		0x07
+#define PARTITION_FAT32		0x0b
+#define PARTITION_FAT32_LBA	0x0c
+#define PARTITION_FAT16_LBA	0x0e
+#define PARTITION_EXT_LBA	0x0f
+
+#define PART_FLAG_HIDDEN	0x10	/* Valid for FAT/NTFS only */
+#define PARTITION_FAT12_H	(PARTITION_FAT12	| PART_FLAG_HIDDEN)
+#define PARTITION_FAT16_SM_H	(PARTITION_FAT16_SM	| PART_FLAG_HIDDEN)
+#define PARTITION_DOS_EXT_H	(PARTITION_DOS_EXT	| PART_FLAG_HIDDEN)
+#define PARTITION_FAT16_H	(PARTITION_FAT16	| PART_FLAG_HIDDEN)
+#define PARTITION_NTFS_H	(PARTITION_NTFS		| PART_FLAG_HIDDEN)
+#define PARTITION_FAT32_H	(PARTITION_FAT32	| PART_FLAG_HIDDEN)
+#define PARTITION_FAT32_LBA_H	(PARTITION_FAT32_LBA	| PART_FLAG_HIDDEN)
+#define PARTITION_FAT16_LBA_H	(PARTITION_FAT16_LBA	| PART_FLAG_HIDDEN)
+
+#define PARTITION_COMPAQ_DIAG	0x12
+#define PARTITION_LDM		0x42
+#define PARTITION_LINUX_SWAP	0x82
+#define PARTITION_LINUX		0x83
+#define PARTITION_LINUX_EXT	0x85
+#define PARTITION_LINUX_LVM	0x8e
+#define PARTITION_SUN_UFS	0xbf
+#define PARTITION_DELL_DIAG	0xde
+#define PARTITION_GPT		0xee
+#define PARTITION_PALO		0xf0
+#define PARTITION_PREP		0x41
+#define PARTITION_LINUX_RAID	0xfd
+#define PARTITION_LINUX_LVM_OLD 0xfe
+
+/* This constant contains the maximum cylinder number that can be represented
+ * in (C,H,S) notation.  Higher cylinder numbers are reserved for
+ * "too big" indicators (in which case only LBA addressing can be used).
+ * 	Some partition tables in the wild indicate this number is 1021.
+ * (i.e. 1022 is sometimes used to indicate "use LBA").
+ */
+#define MAX_CHS_CYLINDER	1021
+
+typedef struct _DosRawPartition		DosRawPartition;
+typedef struct _DosRawTable		DosRawTable;
+
+/* note: lots of bit-bashing here, thus, you shouldn't look inside it.
+ * Use chs_to_sector() and sector_to_chs() instead.
+ */
+typedef struct {
+	uint8_t		head;
+	uint8_t		sector;
+	uint8_t		cylinder;
+} __attribute__((packed)) RawCHS;
+
+/* ripped from Linux source */
+struct _DosRawPartition {
+        uint8_t		boot_ind;	/* 00:  0x80 - active */
+	RawCHS		chs_start;	/* 01: */
+	uint8_t		type;		/* 04: partition type */
+	RawCHS		chs_end;	/* 05: */
+	uint32_t	start;		/* 08: starting sector counting from 0 */
+	uint32_t	length;		/* 0c: nr of sectors in partition */
+} __attribute__((packed));
+
+struct _DosRawTable {
+	char			boot_code [440];
+	uint32_t                mbr_signature;	/* really a unique ID */
+	uint16_t                Unknown;
+	DosRawPartition		partitions [4];
+	uint16_t		magic;
+} __attribute__((packed));
+
+/* OrigState is information we want to preserve about the partition for
+ * dealing with CHS issues
+ */
+typedef struct {
+	PedGeometry	geom;
+	DosRawPartition	raw_part;
+	PedSector	lba_offset;	/* needed for computing start/end for
+					 * logical partitions */
+} OrigState;
+
+typedef struct {
+	unsigned char	system;
+	int		boot;
+	int		hidden;
+	int		raid;
+	int		lvm;
+	int		lba;
+	int		palo;
+	int		prep;
+	OrigState*	orig;			/* used for CHS stuff */
+} DosPartitionData;
+
+static PedDiskType msdos_disk_type;
+
+static int
+msdos_probe (const PedDevice *dev)
+{
+	PedDiskType*	disk_type;
+	DosRawTable	part_table;
+	int		i;
+
+	PED_ASSERT (dev != NULL, return 0);
+
+        if (dev->sector_size != 512)
+                return 0;
+
+	if (!ped_device_read (dev, &part_table, 0, 1))
+		return 0;
+
+	/* check magic */
+	if (PED_LE16_TO_CPU (part_table.magic) != MSDOS_MAGIC)
+		return 0;
+
+	/* if this is a FAT fs, fail here.  Note that the Smart Boot Manager
+	 * Loader (SBML) signature indicates a partition table, not a file
+	 * system.
+	 */
+       /* check below commented out to allow FAT fs images without a MBR */ 
+/*	if ((!strncmp (part_table.boot_code + 0x36, "FAT", 3)
+	    && strncmp (part_table.boot_code + 0x40, "SBML", 4) != 0)
+	    || !strncmp (part_table.boot_code + 0x52, "FAT", 3))
+		return 0;
+*/
+
+	/* If this is a GPT disk, fail here */
+	for (i = 0; i < 4; i++) {
+		if (part_table.partitions[i].type == PARTITION_GPT)
+			return 0;
+	}
+
+	/* If this is an AIX Physical Volume, fail here.  IBMA in EBCDIC */
+	if (part_table.boot_code[0] == (char) 0xc9 && 
+	    part_table.boot_code[1] == (char) 0xc2 &&
+	    part_table.boot_code[2] == (char) 0xd4 && 
+	    part_table.boot_code[3] == (char) 0xc1)
+		return 0;
+
+#ifdef ENABLE_PC98
+	/* HACK: it's impossible to tell PC98 and msdos disk labels apart.
+	 * Someone made the signatures the same (very clever).  Since
+	 * PC98 has some idiosyncracies with it's boot-loader, it's detection
+	 * is more reliable */
+	disk_type = ped_disk_type_get ("pc98");
+	if (disk_type && disk_type->ops->probe (dev))
+		return 0;
+#endif /* ENABLE_PC98 */
+
+	return 1;
+}
+
+static PedDisk*
+msdos_alloc (const PedDevice* dev)
+{
+	PedDisk* disk;
+	PED_ASSERT (dev != NULL, return NULL);
+
+	disk = _ped_disk_alloc ((PedDevice*)dev, &msdos_disk_type);
+	if (disk)
+		disk->disk_specific = NULL;
+	return disk;
+}
+
+static PedDisk*
+msdos_duplicate (const PedDisk* disk)
+{
+	PedDisk*	new_disk;
+       
+	new_disk = ped_disk_new_fresh (disk->dev, &msdos_disk_type);
+	if (!new_disk)
+		return NULL;
+	new_disk->disk_specific = NULL;
+	return new_disk;
+}
+
+static void
+msdos_free (PedDisk* disk)
+{
+	PED_ASSERT (disk != NULL, return);
+
+	_ped_disk_free (disk);
+}
+
+#ifndef DISCOVER_ONLY
+static int
+msdos_clobber (PedDevice* dev)
+{
+	DosRawTable		table;
+
+	PED_ASSERT (dev != NULL, return 0);
+	PED_ASSERT (msdos_probe (dev), return 0);
+
+	if (!ped_device_read (dev, &table, 0, 1))
+		return 0;
+	table.magic = 0;
+	return ped_device_write (dev, (void*) &table, 0, 1);
+}
+#endif /* !DISCOVER_ONLY */
+
+static int
+chs_get_cylinder (const RawCHS* chs)
+{
+	return chs->cylinder + ((chs->sector >> 6) << 8);
+}
+
+static int
+chs_get_head (const RawCHS* chs)
+{
+	return chs->head;
+}
+
+/* counts from 0 */
+static int
+chs_get_sector (const RawCHS* chs)
+{
+	return (chs->sector & 0x3f) - 1;
+}
+
+static PedSector
+chs_to_sector (const PedDevice* dev, const PedCHSGeometry *bios_geom,
+	       const RawCHS* chs)
+{
+	PedSector	c;		/* not measured in sectors, but need */
+	PedSector	h;		/* lots of bits */
+	PedSector	s;
+
+	PED_ASSERT (bios_geom != NULL, return 0);
+	PED_ASSERT (chs != NULL, return 0);
+
+	c = chs_get_cylinder (chs);
+	h = chs_get_head (chs);
+	s = chs_get_sector (chs);
+
+	if (c > MAX_CHS_CYLINDER)		/* MAGIC: C/H/S is irrelevant */
+		return 0;
+	if (s < 0)
+		return 0;
+	return ((c * bios_geom->heads + h) * bios_geom->sectors + s)
+		* (dev->sector_size / 512);
+}
+
+static void
+sector_to_chs (const PedDevice* dev, const PedCHSGeometry* bios_geom,
+	       PedSector sector, RawCHS* chs)
+{
+	PedSector	real_c, real_h, real_s;
+
+	PED_ASSERT (dev != NULL, return);
+	PED_ASSERT (chs != NULL, return);
+	
+	if (!bios_geom)
+		bios_geom = &dev->bios_geom;
+
+	sector /= (dev->sector_size / 512);
+
+	real_c = sector / (bios_geom->heads * bios_geom->sectors);
+	real_h = (sector / bios_geom->sectors) % bios_geom->heads;
+	real_s = sector % bios_geom->sectors;
+
+	if (real_c > MAX_CHS_CYLINDER) {
+		real_c = 1023;
+		real_h = bios_geom->heads - 1;
+		real_s = bios_geom->sectors - 1;
+	}
+
+	chs->cylinder = real_c % 0x100;
+	chs->head = real_h;
+	chs->sector = real_s + 1 + (real_c >> 8 << 6);
+}
+
+static PedSector
+legacy_start (const PedDisk* disk, const PedCHSGeometry* bios_geom,
+	      const DosRawPartition* raw_part)
+{
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (raw_part != NULL, return 0);
+
+	return chs_to_sector (disk->dev, bios_geom, &raw_part->chs_start);
+}
+
+static PedSector
+legacy_end (const PedDisk* disk, const PedCHSGeometry* bios_geom,
+	    const DosRawPartition* raw_part)
+{
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (raw_part != NULL, return 0);
+
+	return chs_to_sector (disk->dev, bios_geom, &raw_part->chs_end);
+}
+
+static PedSector
+linear_start (const PedDisk* disk, const DosRawPartition* raw_part,
+	      PedSector offset)
+{
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (raw_part != NULL, return 0);
+
+	return offset
+	       + PED_LE32_TO_CPU (raw_part->start)
+	       	 	* (disk->dev->sector_size / 512);
+}
+
+static PedSector
+linear_end (const PedDisk* disk, const DosRawPartition* raw_part,
+	    PedSector offset)
+{
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (raw_part != NULL, return 0);
+
+	return linear_start (disk, raw_part, offset)
+	       + (PED_LE32_TO_CPU (raw_part->length) - 1)
+	       	 	* (disk->dev->sector_size / 512);
+}
+
+#ifndef DISCOVER_ONLY
+static int
+partition_check_bios_geometry (PedPartition* part, PedCHSGeometry* bios_geom)
+{
+	PedSector		leg_start, leg_end;
+	DosPartitionData*	dos_data;
+	PedDisk*		disk;
+
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk != NULL, return 0);
+	PED_ASSERT (part->disk_specific != NULL, return 0);
+	dos_data = part->disk_specific;
+
+	if (!dos_data->orig)
+		return 1;
+
+	disk = part->disk;
+	leg_start = legacy_start (disk, bios_geom, &dos_data->orig->raw_part);
+	leg_end = legacy_end (disk, bios_geom, &dos_data->orig->raw_part);
+
+	if (leg_start && leg_start != dos_data->orig->geom.start)
+		return 0;
+	if (leg_end && leg_end != dos_data->orig->geom.end)
+		return 0;
+	return 1;
+}
+
+static int
+disk_check_bios_geometry (const PedDisk* disk, PedCHSGeometry* bios_geom)
+{
+	PedPartition* part = NULL;
+
+	PED_ASSERT (disk != NULL, return 0);
+
+	while ((part = ped_disk_next_partition (disk, part))) {
+		if (ped_partition_is_active (part)) {
+			if (!partition_check_bios_geometry (part, bios_geom))
+				return 0;
+		}
+	}
+
+	return 1;
+}
+
+static int
+probe_filesystem_for_geom (const PedPartition* part, PedCHSGeometry* bios_geom)
+{
+	const char* ms_types[] = {"ntfs", "fat16", "fat32", NULL};
+	int i;
+	int found;
+	unsigned char* buf;
+	int sectors;
+	int heads;
+	int res = 0;
+
+	PED_ASSERT (bios_geom        != NULL, return 0);
+        PED_ASSERT (part             != NULL, return 0);
+        PED_ASSERT (part->disk       != NULL, return 0);
+        PED_ASSERT (part->disk->dev  != NULL, return 0);
+        PED_ASSERT (part->disk->dev->sector_size % PED_SECTOR_SIZE_DEFAULT == 0,
+                    return 0);
+
+        buf = ped_malloc (part->disk->dev->sector_size);
+        
+	if (!buf)
+		return 0;
+
+	if (!part->fs_type)
+		goto end;
+
+	found = 0;
+	for (i = 0; ms_types[i]; i++) {
+		if (!strcmp(ms_types[i], part->fs_type->name))
+			found = 1;
+	}
+	if (!found)
+		goto end;
+
+	if (!ped_geometry_read(&part->geom, buf, 0, 1))
+		goto end;
+
+	/* shared by the start of all Microsoft file systems */
+	sectors = buf[0x18] + (buf[0x19] << 8);
+	heads = buf[0x1a] + (buf[0x1b] << 8);
+
+	if (sectors < 1 || sectors > 63)
+		goto end;
+	if (heads > 255 || heads < 1)
+		goto end;
+
+	bios_geom->sectors = sectors;
+	bios_geom->heads = heads;
+	bios_geom->cylinders = part->disk->dev->length / (sectors * heads);
+	res = 1;
+end:
+	ped_free(buf);
+	return res;
+}
+
+/* This function attempts to infer the BIOS CHS geometry of the hard disk
+ * from the CHS + LBA information contained in the partition table from
+ * a single partition's entry.
+ *
+ * This involves some maths.  Let (c,h,s,a) be the starting cylinder,
+ * starting head, starting sector and LBA start address of the partition.
+ * Likewise, (C,H,S,A) the end addresses.  Using both of these pieces
+ * of information, we want to deduce cyl_sectors and head_sectors which
+ * are the sizes of a single cylinder and a single head, respectively.
+ *
+ * The relationships are:
+ * c*cyl_sectors + h * head_sectors + s = a
+ * C*cyl_sectors + H * head_sectors + S = A
+ *
+ * We can rewrite this in matrix form:
+ *
+ * [ c h ] [ cyl_sectors  ]  =  [ s - a ]  =  [ a_ ]
+ * [ C H ] [ head_sectors ]     [ S - A ]     [ A_ ].
+ * 
+ * (s - a is abbreviated to a_to simplify the notation.)
+ *
+ * This can be abbreviated into augmented matrix form:
+ *
+ * [ c h | a_ ]
+ * [ C H | A_ ].
+ * 
+ * Solving these equations requires following the row reduction algorithm.  We
+ * need to be careful about a few things though:
+ * 	- the equations might be linearly dependent, in which case there
+ * 	are many solutions.
+ * 	- the equations might be inconsistent, in which case there
+ * 	are no solutions.  (Inconsistent partition table entry!)
+ * 	- there might be zeros, so we need to be careful about applying
+ * 	the algorithm.  We know, however, that C > 0.
+ */
+static int
+probe_partition_for_geom (const PedPartition* part, PedCHSGeometry* bios_geom)
+{
+	DosPartitionData* dos_data;
+	RawCHS* start_chs;
+	RawCHS* end_chs;
+	PedSector c, h, s, a, a_;	/* start */
+	PedSector C, H, S, A, A_;	/* end */
+	PedSector dont_overflow, denum;
+	PedSector cyl_size, head_size;
+	PedSector cylinders, heads, sectors;
+
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk_specific != NULL, return 0);
+	PED_ASSERT (bios_geom != NULL, return 0);
+
+	dos_data = part->disk_specific;
+
+	if (!dos_data->orig)
+		return 0;
+
+	start_chs = &dos_data->orig->raw_part.chs_start;
+	c = chs_get_cylinder (start_chs);
+	h = chs_get_head (start_chs);
+	s = chs_get_sector (start_chs);
+	a = dos_data->orig->geom.start;
+	a_ = a - s;
+
+	end_chs = &dos_data->orig->raw_part.chs_end;
+	C = chs_get_cylinder (end_chs);
+	H = chs_get_head (end_chs);
+	S = chs_get_sector (end_chs);
+	A = dos_data->orig->geom.end;
+	A_ = A - S;
+
+	if (h < 0 || H < 0 || h > 254 || H > 254)
+		return 0;
+	if (c > C)
+		return 0;
+
+	/* If no geometry is feasible, then don't even bother.
+	 * Useful for eliminating assertions for broken partition
+	 * tables generated by Norton Ghost et al.
+	 */
+	if (A > (C+1) * 255 * 63)
+		return 0;
+
+	/* Not enough information.  In theory, we can do better.  Should we? */
+	if (C > MAX_CHS_CYLINDER)
+		return 0;
+	if (C == 0)
+		return 0;
+
+	/* Calculate the maximum number that can be multiplied by
+	 * any head count without overflowing a PedSector
+	 * 2^8 = 256, 8 bits + 1(sign bit) = 9
+	 */
+	dont_overflow = 1;
+	dont_overflow <<= (8*sizeof(dont_overflow)) - 9;
+	dont_overflow--;
+
+	if (a_ > dont_overflow || A_ > dont_overflow)
+		return 0;
+
+	/* The matrix is solved by :
+	 *
+	 * [ c h | a_]			R1
+	 * [ C H | A_]			R2
+	 *
+	 * (cH - Ch) cyl_size = a_H - A_h		H R1 - h R2
+	 * => (if cH - Ch != 0) cyl_size = (a_H - A_h) / (cH - Ch)
+	 *
+	 * (Hc - hC) head_size = A_c - a_C		c R2 - C R1
+	 * => (if cH - Ch != 0) head_size = (A_c - a_C) / (cH - Ch)
+	 *
+	 *   But this calculation of head_size would need
+	 *   not overflowing A_c or a_C
+	 *   So substitution is use instead, to minimize dimension
+	 *   of temporary results :
+	 *
+	 * If h != 0 : head_size = ( a_ - c cyl_size ) / h
+	 * If H != 0 : head_size = ( A_ - C cyl_size ) / H
+	 *
+	 */
+	denum = c * H - C * h;
+	if (denum == 0)
+		return 0;
+
+	cyl_size = (a_*H - A_*h) / denum;
+	/* Check for non integer result */
+	if (cyl_size * denum != a_*H - A_*h)
+		return 0;
+
+	PED_ASSERT (cyl_size > 0, return 0);
+ 	PED_ASSERT (cyl_size <= 255 * 63, return 0);
+
+	if (h > 0)
+		head_size = ( a_ - c * cyl_size ) / h;
+	else if (H > 0)
+		head_size = ( A_ - C * cyl_size ) / H;
+	else { 
+		/* should not happen because denum != 0 */
+		head_size = 0;
+		PED_ASSERT (0, return 0);
+	}
+
+	PED_ASSERT (head_size > 0, return 0);
+	PED_ASSERT (head_size <= 63, return 0);
+
+	cylinders = part->disk->dev->length / cyl_size;
+	heads = cyl_size / head_size;
+	sectors = head_size;
+
+	PED_ASSERT (heads > 0, return 0);
+	PED_ASSERT (heads < 256, return 0);
+
+	PED_ASSERT (sectors > 0, return 0);
+	PED_ASSERT (sectors <= 63, return 0);
+
+	/* Some broken OEM partitioning program(s) seem to have an out-by-one
+	 * error on the end of partitions.  We should offer to fix the
+	 * partition table...
+	 */
+	if (((C + 1) * heads + H) * sectors + S == A)
+		C++;
+
+	PED_ASSERT ((c * heads + h) * sectors + s == a, return 0);
+	PED_ASSERT ((C * heads + H) * sectors + S == A, return 0);
+
+	bios_geom->cylinders = cylinders;
+	bios_geom->heads = heads;
+	bios_geom->sectors = sectors;
+
+	return 1;
+}
+
+static void
+partition_probe_bios_geometry (const PedPartition* part,
+                               PedCHSGeometry* bios_geom)
+{
+	PED_ASSERT (part != NULL, return);
+	PED_ASSERT (part->disk != NULL, return);
+	PED_ASSERT (bios_geom != NULL, return);
+
+	if (ped_partition_is_active (part)) {
+		if (probe_partition_for_geom (part, bios_geom))
+			return;
+		if (part->type & PED_PARTITION_EXTENDED) {
+			if (probe_filesystem_for_geom (part, bios_geom))
+				return;
+		}
+	}
+	if (part->type & PED_PARTITION_LOGICAL) {
+		PedPartition* ext_part;
+		ext_part = ped_disk_extended_partition (part->disk);
+		PED_ASSERT (ext_part != NULL, return);
+		partition_probe_bios_geometry (ext_part, bios_geom);
+	} else {
+		*bios_geom = part->disk->dev->bios_geom;
+	}
+}
+
+static void
+disk_probe_bios_geometry (const PedDisk* disk, PedCHSGeometry* bios_geom)
+{
+	PedPartition*	part;
+
+	/* first look at the boot partition */
+	part = NULL;
+	while ((part = ped_disk_next_partition (disk, part))) {
+		if (!ped_partition_is_active (part))
+			continue;
+		if (ped_partition_get_flag (part, PED_PARTITION_BOOT)) {
+			if (probe_filesystem_for_geom (part, bios_geom))
+				return;
+			if (probe_partition_for_geom (part, bios_geom))
+				return;
+		}
+	}
+
+	/* that didn't work... try all partition table entries */
+	part = NULL;
+	while ((part = ped_disk_next_partition (disk, part))) {
+		if (ped_partition_is_active (part)) {
+			if (probe_partition_for_geom (part, bios_geom))
+				return;
+		}
+	}
+
+	/* that didn't work... look at all file systems */
+	part = NULL;
+	while ((part = ped_disk_next_partition (disk, part))) {
+		if (ped_partition_is_active (part)) {
+			if (probe_filesystem_for_geom (part, bios_geom))
+				return;
+		}
+	}
+}
+#endif /* !DISCOVER_ONLY */
+
+static int
+raw_part_is_extended (const DosRawPartition* raw_part)
+{
+	PED_ASSERT (raw_part != NULL, return 0);
+
+	switch (raw_part->type) {
+	case PARTITION_DOS_EXT:
+	case PARTITION_EXT_LBA:
+	case PARTITION_LINUX_EXT:
+		return 1;
+
+	default:
+		return 0;
+	}
+
+	return 0;
+}
+
+static int
+raw_part_is_hidden (const DosRawPartition* raw_part)
+{
+	PED_ASSERT (raw_part != NULL, return 0);
+
+	switch (raw_part->type) {
+	case PARTITION_FAT12_H:
+	case PARTITION_FAT16_SM_H:
+	case PARTITION_FAT16_H:
+	case PARTITION_FAT32_H:
+	case PARTITION_NTFS_H:
+	case PARTITION_FAT32_LBA_H:
+	case PARTITION_FAT16_LBA_H:
+		return 1;
+
+	default:
+		return 0;
+	}
+
+	return 0;
+}
+
+static int
+raw_part_is_lba (const DosRawPartition* raw_part)
+{
+	PED_ASSERT (raw_part != NULL, return 0);
+
+	switch (raw_part->type) {
+	case PARTITION_FAT32_LBA:
+	case PARTITION_FAT16_LBA:
+	case PARTITION_EXT_LBA:
+	case PARTITION_FAT32_LBA_H:
+	case PARTITION_FAT16_LBA_H:
+		return 1;
+
+	default:
+		return 0;
+	}
+
+	return 0;
+}
+
+static PedPartition*
+raw_part_parse (const PedDisk* disk, const DosRawPartition* raw_part,
+	        PedSector lba_offset, PedPartitionType type)
+{
+	PedPartition* part;
+	DosPartitionData* dos_data;
+
+	PED_ASSERT (disk != NULL, return NULL);
+	PED_ASSERT (raw_part != NULL, return NULL);
+
+	part = ped_partition_new (
+		disk, type, NULL,
+		linear_start (disk, raw_part, lba_offset),
+		linear_end (disk, raw_part, lba_offset));
+	if (!part)
+		return NULL;
+	dos_data = part->disk_specific;
+	dos_data->system = raw_part->type;
+	dos_data->boot = raw_part->boot_ind != 0;
+	dos_data->hidden = raw_part_is_hidden (raw_part);
+	dos_data->raid = raw_part->type == PARTITION_LINUX_RAID;
+	dos_data->lvm = raw_part->type == PARTITION_LINUX_LVM_OLD
+			|| raw_part->type == PARTITION_LINUX_LVM;
+	dos_data->lba = raw_part_is_lba (raw_part);
+	dos_data->palo = raw_part->type == PARTITION_PALO;
+	dos_data->prep = raw_part->type == PARTITION_PREP;
+	dos_data->orig = ped_malloc (sizeof (OrigState));
+	if (!dos_data->orig) {
+		ped_partition_destroy (part);
+		return NULL;
+	}
+	dos_data->orig->geom = part->geom;
+	dos_data->orig->raw_part = *raw_part;
+	dos_data->orig->lba_offset = lba_offset;
+	return part;
+}
+
+static int
+read_table (PedDisk* disk, PedSector sector, int is_extended_table)
+{
+	int			i;
+	DosRawTable		table;
+	DosRawPartition*	raw_part;
+	PedPartition*		part;
+	PedPartitionType	type;
+	PedSector		lba_offset;
+	PedConstraint*		constraint_exact;
+
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (disk->dev != NULL, return 0);
+
+	if (!ped_device_read (disk->dev, (void*) &table, sector, 1))
+		goto error;
+
+	/* weird: empty extended partitions are filled with 0xf6 by PM */
+	if (is_extended_table
+	    && PED_LE16_TO_CPU (table.magic) == PARTITION_MAGIC_MAGIC)
+		return 1;
+
+#ifndef DISCOVER_ONLY
+	if (PED_LE16_TO_CPU (table.magic) != MSDOS_MAGIC) {
+		if (ped_exception_throw (
+			PED_EXCEPTION_ERROR, PED_EXCEPTION_IGNORE_CANCEL,
+			_("Invalid partition table on %s "
+			  "-- wrong signature %x."),
+			disk->dev->path,
+			PED_LE16_TO_CPU (table.magic))
+				!= PED_EXCEPTION_IGNORE)
+			goto error;
+		return 1;
+	}
+#endif
+
+	/* parse the partitions from this table */
+	for (i = 0; i < 4; i++) {
+		raw_part = &table.partitions [i];
+		if (raw_part->type == PARTITION_EMPTY || !raw_part->length)
+			continue;
+
+		/* process nested extended partitions after normal logical
+		 * partitions, to make sure we get the order right.
+		 */
+		if (is_extended_table && raw_part_is_extended (raw_part))
+			continue;	
+
+		lba_offset = is_extended_table ? sector : 0;
+
+		if (linear_start (disk, raw_part, lba_offset) == sector) {
+			if (ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_IGNORE_CANCEL,
+				_("Invalid partition table - recursive "
+				"partition on %s."),
+				disk->dev->path)
+					!= PED_EXCEPTION_IGNORE)
+				goto error;
+			continue;	/* avoid infinite recursion */
+		}
+
+		if (is_extended_table)
+			type = PED_PARTITION_LOGICAL;
+		else if (raw_part_is_extended (raw_part))
+			type = PED_PARTITION_EXTENDED;
+		else
+			type = PED_PARTITION_NORMAL;
+
+		part = raw_part_parse (disk, raw_part, lba_offset, type);
+		if (!part)
+			goto error;
+		if (!is_extended_table)
+			part->num = i + 1;
+		if (type != PED_PARTITION_EXTENDED)
+			part->fs_type = ped_file_system_probe (&part->geom);
+
+		constraint_exact = ped_constraint_exact (&part->geom);
+		if (!ped_disk_add_partition (disk, part, constraint_exact))
+			goto error;
+		ped_constraint_destroy (constraint_exact);
+
+		/* non-nested extended partition */
+		if (part->type == PED_PARTITION_EXTENDED) {
+			if (!read_table (disk, part->geom.start, 1))
+				goto error;
+		}
+	}
+
+	if (is_extended_table) {
+		/* process the nested extended partitions */
+		for (i = 0; i < 4; i++) {
+			PedSector part_start;
+
+			raw_part = &table.partitions [i];
+			if (!raw_part_is_extended (raw_part))
+				continue;
+
+			lba_offset = ped_disk_extended_partition
+					(disk)->geom.start;
+			part_start = linear_start (disk, raw_part, lba_offset);
+			if (part_start == sector) {
+				/* recursive table - already threw an
+				 * exception above.
+				 */
+				continue;
+			}
+			if (!read_table (disk, part_start, 1))
+				goto error;
+		}
+	}
+
+	return 1;
+
+error:
+	ped_disk_delete_all (disk);
+	return 0;
+}
+
+static int
+msdos_read (PedDisk* disk)
+{
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (disk->dev != NULL, return 0);
+
+	ped_disk_delete_all (disk);
+	if (!read_table (disk, 0, 0))
+		return 0;
+
+#ifndef DISCOVER_ONLY
+	/* try to figure out the correct BIOS CHS values */
+	if (!disk_check_bios_geometry (disk, &disk->dev->bios_geom)) {
+		PedCHSGeometry bios_geom = disk->dev->bios_geom;
+		disk_probe_bios_geometry (disk, &bios_geom);
+
+		/* if the geometry was wrong, then we should reread, to
+		 * make sure the metadata is allocated in the right places.
+		 */
+		if (disk->dev->bios_geom.cylinders != bios_geom.cylinders
+		    || disk->dev->bios_geom.heads != bios_geom.heads
+		    || disk->dev->bios_geom.sectors != bios_geom.sectors) {
+			disk->dev->bios_geom = bios_geom;
+			return msdos_read (disk);
+		}
+	}
+#endif
+
+	return 1;
+}
+
+#ifndef DISCOVER_ONLY
+static int
+fill_raw_part (DosRawPartition* raw_part,
+               const PedPartition* part, PedSector offset)
+{
+	DosPartitionData*	dos_data;
+	PedCHSGeometry		bios_geom;
+
+	PED_ASSERT (raw_part != NULL, return 0);
+	PED_ASSERT (part != NULL, return 0);
+
+	partition_probe_bios_geometry (part, &bios_geom);
+
+	dos_data = part->disk_specific;
+
+	raw_part->boot_ind = 0x80 * dos_data->boot;
+	raw_part->type = dos_data->system;
+	raw_part->start = PED_CPU_TO_LE32 ((part->geom.start - offset)
+				/ (part->disk->dev->sector_size / 512));
+	raw_part->length = PED_CPU_TO_LE32 (part->geom.length
+				/ (part->disk->dev->sector_size / 512));
+
+	sector_to_chs (part->disk->dev, &bios_geom, part->geom.start,
+		       &raw_part->chs_start);
+	sector_to_chs (part->disk->dev, &bios_geom, part->geom.end,
+		       &raw_part->chs_end);
+
+	if (dos_data->orig) {
+		DosRawPartition* orig_raw_part = &dos_data->orig->raw_part;
+		if (dos_data->orig->geom.start == part->geom.start)
+			raw_part->chs_start = orig_raw_part->chs_start;
+		if (dos_data->orig->geom.end == part->geom.end)
+			raw_part->chs_end = orig_raw_part->chs_end;
+	}
+
+	return 1;
+}
+
+static int
+fill_ext_raw_part_geom (DosRawPartition* raw_part,
+                        const PedCHSGeometry* bios_geom,
+			const PedGeometry* geom, PedSector offset)
+{
+	PED_ASSERT (raw_part != NULL, return 0);
+	PED_ASSERT (geom != NULL, return 0);
+	PED_ASSERT (geom->dev != NULL, return 0);
+
+	raw_part->boot_ind = 0;
+	raw_part->type = PARTITION_DOS_EXT;
+	raw_part->start = PED_CPU_TO_LE32 ((geom->start - offset)
+				/ (geom->dev->sector_size / 512));
+	raw_part->length = PED_CPU_TO_LE32 (geom->length
+				/ (geom->dev->sector_size / 512));
+
+	sector_to_chs (geom->dev, bios_geom, geom->start, &raw_part->chs_start);
+	sector_to_chs (geom->dev, bios_geom, geom->start + geom->length - 1,
+		       &raw_part->chs_end);
+
+	return 1;
+}
+
+static int
+write_ext_table (const PedDisk* disk,
+                 PedSector sector, const PedPartition* logical)
+{
+	DosRawTable		table;
+	PedPartition*		part;
+	PedSector		lba_offset;
+
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (ped_disk_extended_partition (disk) != NULL, return 0);
+	PED_ASSERT (logical != NULL, return 0);
+
+	lba_offset = ped_disk_extended_partition (disk)->geom.start;
+
+	memset (&table, 0, sizeof (DosRawTable));
+	table.magic = PED_CPU_TO_LE16 (MSDOS_MAGIC);
+
+	if (!fill_raw_part (&table.partitions[0], logical, sector))
+		return 0;
+
+	part = ped_disk_get_partition (disk, logical->num + 1);
+	if (part) {
+		PedGeometry*		geom;
+		PedCHSGeometry		bios_geom;
+
+		geom = ped_geometry_new (disk->dev, part->prev->geom.start,
+				part->geom.end - part->prev->geom.start + 1);
+		if (!geom)
+			return 0;
+		partition_probe_bios_geometry (part, &bios_geom);
+		fill_ext_raw_part_geom (&table.partitions[1], &bios_geom,
+				        geom, lba_offset);
+		ped_geometry_destroy (geom);
+
+		if (!write_ext_table (disk, part->prev->geom.start, part))
+			return 0;
+	}
+
+	return ped_device_write (disk->dev, (void*) &table, sector, 1);
+}
+
+static int
+write_empty_table (const PedDisk* disk, PedSector sector)
+{
+	DosRawTable		table;
+
+	PED_ASSERT (disk != NULL, return 0);
+
+	memset (&table, 0, sizeof (DosRawTable));
+	table.magic = PED_CPU_TO_LE16 (MSDOS_MAGIC);
+
+	return ped_device_write (disk->dev, (void*) &table, sector, 1);
+}
+
+/* Find the first logical partition, and write the partition table for it.
+ */
+static int
+write_extended_partitions (const PedDisk* disk)
+{
+	PedPartition*		ext_part;
+	PedPartition*		part;
+	PedCHSGeometry		bios_geom;
+
+	PED_ASSERT (disk != NULL, return 0);
+
+	ext_part = ped_disk_extended_partition (disk);
+	partition_probe_bios_geometry (ext_part, &bios_geom);
+	part = ped_disk_get_partition (disk, 5);
+	if (part)
+		return write_ext_table (disk, ext_part->geom.start, part);
+	else
+		return write_empty_table (disk, ext_part->geom.start);
+}
+
+static inline uint32_t generate_random_id (void)
+{
+	struct timeval tv;
+	int rc;
+	rc = gettimeofday(&tv, NULL);
+	if (rc == -1)
+		return 0;
+	return (uint32_t)(tv.tv_usec & 0xFFFFFFFFUL);
+}
+
+static int
+msdos_write (const PedDisk* disk)
+{
+	DosRawTable		table;
+	PedPartition*		part;
+	int			i;
+
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (disk->dev != NULL, return 0);
+
+	ped_device_read (disk->dev, &table, 0, 1);
+
+	if (!table.boot_code[0]) {
+		memset (table.boot_code, 0, 512);
+		memcpy (table.boot_code, MBR_BOOT_CODE, sizeof (MBR_BOOT_CODE));
+	}
+
+	/* If there is no unique identifier, generate a random one */
+	if (!table.mbr_signature)
+		table.mbr_signature = generate_random_id();
+
+	memset (table.partitions, 0, sizeof (DosRawPartition) * 4);
+	table.magic = PED_CPU_TO_LE16 (MSDOS_MAGIC);
+
+	for (i=1; i<=4; i++) {
+		part = ped_disk_get_partition (disk, i);
+		if (!part)
+			continue;
+
+		if (!fill_raw_part (&table.partitions [i - 1], part, 0))
+			return 0;
+
+		if (part->type == PED_PARTITION_EXTENDED) {
+			if (!write_extended_partitions (disk))
+				return 0;
+		}
+	}
+
+	if (!ped_device_write (disk->dev, (void*) &table, 0, 1))
+		return 0;
+	return ped_device_sync (disk->dev);
+}
+#endif /* !DISCOVER_ONLY */
+
+static PedPartition*
+msdos_partition_new (const PedDisk* disk, PedPartitionType part_type,
+		     const PedFileSystemType* fs_type,
+		     PedSector start, PedSector end)
+{
+	PedPartition*		part;
+	DosPartitionData*	dos_data;
+
+	part = _ped_partition_alloc (disk, part_type, fs_type, start, end);
+	if (!part)
+		goto error;
+
+	if (ped_partition_is_active (part)) {
+		part->disk_specific
+		       	= dos_data = ped_malloc (sizeof (DosPartitionData));
+		if (!dos_data)
+			goto error_free_part;
+		dos_data->orig = NULL;
+		dos_data->system = PARTITION_LINUX;
+		dos_data->hidden = 0;
+		dos_data->boot = 0;
+		dos_data->raid = 0;
+		dos_data->lvm = 0;
+		dos_data->lba = 0;
+		dos_data->palo = 0;
+		dos_data->prep = 0;
+	} else {
+		part->disk_specific = NULL;
+	}
+	return part;
+
+	ped_free (dos_data);
+error_free_part:
+	ped_free (part);
+error:
+	return 0;
+}
+
+static PedPartition*
+msdos_partition_duplicate (const PedPartition* part)
+{
+	PedPartition*		new_part;
+	DosPartitionData*	new_dos_data;
+	DosPartitionData*	old_dos_data;
+
+	new_part = ped_partition_new (part->disk, part->type, part->fs_type,
+				      part->geom.start, part->geom.end);
+	if (!new_part)
+		return NULL;
+	new_part->num = part->num;
+
+	old_dos_data = (DosPartitionData*) part->disk_specific;
+	new_dos_data = (DosPartitionData*) new_part->disk_specific;
+	new_dos_data->system = old_dos_data->system;
+	new_dos_data->boot = old_dos_data->boot;
+	new_dos_data->hidden = old_dos_data->hidden;
+	new_dos_data->raid = old_dos_data->raid;
+	new_dos_data->lvm = old_dos_data->lvm;
+	new_dos_data->lba = old_dos_data->lba;
+	new_dos_data->palo = old_dos_data->palo;
+	new_dos_data->prep = old_dos_data->prep;
+
+	if (old_dos_data->orig) {
+		new_dos_data->orig = ped_malloc (sizeof (OrigState));
+		if (!new_dos_data->orig) {
+			ped_partition_destroy (new_part);
+			return NULL;
+		}
+		new_dos_data->orig->geom = old_dos_data->orig->geom;
+		new_dos_data->orig->raw_part = old_dos_data->orig->raw_part;
+		new_dos_data->orig->lba_offset = old_dos_data->orig->lba_offset;
+	}
+	return new_part;
+}
+
+static void
+msdos_partition_destroy (PedPartition* part)
+{
+	PED_ASSERT (part != NULL, return);
+
+	if (ped_partition_is_active (part)) {
+		DosPartitionData* dos_data;
+		dos_data = (DosPartitionData*) part->disk_specific;
+		if (dos_data->orig)
+			ped_free (dos_data->orig);
+		ped_free (part->disk_specific);
+	}
+	ped_free (part);
+}
+
+static int
+msdos_partition_set_system (PedPartition* part,
+			    const PedFileSystemType* fs_type)
+{
+	DosPartitionData* dos_data = part->disk_specific;
+
+	part->fs_type = fs_type;
+
+	if (dos_data->hidden
+		    && fs_type
+		    && strncmp (fs_type->name, "fat", 3) != 0
+		    && strcmp (fs_type->name, "ntfs") != 0)
+		dos_data->hidden = 0;
+
+	if (part->type & PED_PARTITION_EXTENDED) {
+		dos_data->raid = 0;
+		dos_data->lvm = 0;
+		dos_data->palo = 0;
+		dos_data->prep = 0;
+		if (dos_data->lba)
+			dos_data->system = PARTITION_EXT_LBA;
+		else
+			dos_data->system = PARTITION_DOS_EXT;
+		return 1;
+	}
+
+	if (dos_data->lvm) {
+		dos_data->system = PARTITION_LINUX_LVM;
+		return 1;
+	}
+	if (dos_data->raid) {
+		dos_data->system = PARTITION_LINUX_RAID;
+		return 1;
+	}
+	if (dos_data->palo) {
+		dos_data->system = PARTITION_PALO;
+		return 1;
+	}
+	if (dos_data->prep) {
+		dos_data->system = PARTITION_PREP;
+		return 1;
+	}
+
+	if (!fs_type)
+		dos_data->system = PARTITION_LINUX;
+	else if (!strcmp (fs_type->name, "fat16")) {
+		dos_data->system = dos_data->lba
+				   ? PARTITION_FAT16_LBA : PARTITION_FAT16;
+		dos_data->system |= dos_data->hidden ? PART_FLAG_HIDDEN : 0;
+	} else if (!strcmp (fs_type->name, "fat32")) {
+		dos_data->system = dos_data->lba
+				   ? PARTITION_FAT32_LBA : PARTITION_FAT32;
+		dos_data->system |= dos_data->hidden ? PART_FLAG_HIDDEN : 0;
+	} else if (!strcmp (fs_type->name, "ntfs")
+		   || !strcmp (fs_type->name, "hpfs")) {
+		dos_data->system = PARTITION_NTFS;
+		dos_data->system |= dos_data->hidden ? PART_FLAG_HIDDEN : 0;
+	} else if (!strcmp (fs_type->name, "sun-ufs"))
+		dos_data->system = PARTITION_SUN_UFS;
+	else if (!strcmp (fs_type->name, "linux-swap"))
+		dos_data->system = PARTITION_LINUX_SWAP;
+	else
+		dos_data->system = PARTITION_LINUX;
+
+	return 1;
+}
+
+static int
+msdos_partition_set_flag (PedPartition* part,
+                          PedPartitionFlag flag, int state)
+{
+	PedDisk*			disk;
+	PedPartition*			walk;
+	DosPartitionData*		dos_data;
+
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk_specific != NULL, return 0);
+	PED_ASSERT (part->disk != NULL, return 0);
+
+	dos_data = part->disk_specific;
+	disk = part->disk;
+
+	switch (flag) {
+	case PED_PARTITION_HIDDEN:
+		if (part->type == PED_PARTITION_EXTENDED) {
+			ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_CANCEL,
+				_("Extended partitions cannot be hidden on "
+				  "msdos disk labels."));
+			return 0;
+		}
+		dos_data->hidden = state;
+		return ped_partition_set_system (part, part->fs_type);
+
+	case PED_PARTITION_BOOT:
+		dos_data->boot = state;
+		if (!state)
+			return 1;
+
+		walk = ped_disk_next_partition (disk, NULL);
+		for (; walk; walk = ped_disk_next_partition (disk, walk)) {
+			if (walk == part || !ped_partition_is_active (walk))
+				continue;
+			msdos_partition_set_flag (walk, PED_PARTITION_BOOT, 0);
+		}
+		return 1;
+
+	case PED_PARTITION_RAID:
+		if (state) {
+			dos_data->hidden = 0;
+			dos_data->lvm = 0;
+			dos_data->palo = 0;
+			dos_data->prep = 0;
+		}
+		dos_data->raid = state;
+		return ped_partition_set_system (part, part->fs_type);
+
+	case PED_PARTITION_LVM:
+		if (state) {
+			dos_data->hidden = 0;
+			dos_data->raid = 0;
+			dos_data->palo = 0;
+			dos_data->prep = 0;
+		}
+		dos_data->lvm = state;
+		return ped_partition_set_system (part, part->fs_type);
+
+	case PED_PARTITION_LBA:
+		dos_data->lba = state;
+		return ped_partition_set_system (part, part->fs_type);
+
+	case PED_PARTITION_PALO:
+		if (state) {
+			dos_data->hidden = 0;
+			dos_data->raid = 0;
+			dos_data->lvm = 0;
+		}
+		dos_data->palo = state;
+		return ped_partition_set_system (part, part->fs_type);
+
+	case PED_PARTITION_PREP:
+		if (state) {
+			dos_data->hidden = 0;
+			dos_data->raid = 0;
+			dos_data->lvm = 0;
+		}
+		dos_data->prep = state;
+		return ped_partition_set_system (part, part->fs_type);
+
+	default:
+		return 0;
+	}
+}
+
+static int
+msdos_partition_get_flag (const PedPartition* part, PedPartitionFlag flag)
+{
+	DosPartitionData*	dos_data;
+
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk_specific != NULL, return 0);
+
+	dos_data = part->disk_specific;
+	switch (flag) {
+	case PED_PARTITION_HIDDEN:
+		return dos_data->hidden;
+
+	case PED_PARTITION_BOOT:
+		return dos_data->boot;
+
+	case PED_PARTITION_RAID:
+		return dos_data->raid;
+
+	case PED_PARTITION_LVM:
+		return dos_data->lvm;
+
+	case PED_PARTITION_LBA:
+		return dos_data->lba;
+
+	case PED_PARTITION_PALO:
+		return dos_data->palo;
+
+	case PED_PARTITION_PREP:
+		return dos_data->prep;
+
+	default:
+		return 0;
+	}
+}
+
+static int
+msdos_partition_is_flag_available (const PedPartition* part,
+				   PedPartitionFlag flag)
+{
+	switch (flag) {
+	case PED_PARTITION_HIDDEN:
+	case PED_PARTITION_BOOT:
+	case PED_PARTITION_RAID:
+	case PED_PARTITION_LVM:
+	case PED_PARTITION_LBA:
+	case PED_PARTITION_PALO:
+	case PED_PARTITION_PREP:
+		return 1;
+
+	default:
+		return 0;
+	}
+}
+
+static PedGeometry*
+_try_constraint (const PedPartition* part, const PedConstraint* external,
+		 PedConstraint* internal)
+{
+	PedConstraint*		intersection;
+	PedGeometry*		solution;
+
+	intersection = ped_constraint_intersect (external, internal);
+	ped_constraint_destroy (internal);
+	if (!intersection)
+		return NULL;
+
+	solution = ped_constraint_solve_nearest (intersection, &part->geom);
+	ped_constraint_destroy (intersection);
+	return solution;
+}
+
+static PedGeometry*
+_best_solution (const PedPartition* part, const PedCHSGeometry* bios_geom,
+		PedGeometry* a, PedGeometry* b)
+{
+	PedSector	cyl_size = bios_geom->heads * bios_geom->sectors;
+	int		a_cylinder;
+	int		b_cylinder;
+
+	if (!a)
+		return b;
+	if (!b)
+		return a;
+
+	a_cylinder = a->start / cyl_size;
+	b_cylinder = b->start / cyl_size;
+
+	if (a_cylinder == b_cylinder) {
+		if ( (a->start / bios_geom->sectors) % bios_geom->heads
+			  < (b->start / bios_geom->sectors) % bios_geom->heads)
+	       		goto choose_a;
+		else
+			goto choose_b;
+	} else {
+		PedSector	a_delta;
+		PedSector	b_delta;
+
+		a_delta = abs (part->geom.start - a->start);
+		b_delta = abs (part->geom.start - b->start);
+
+		if (a_delta < b_delta)
+			goto choose_a;
+		else
+			goto choose_b;
+	}
+
+	return NULL;	/* never get here! */
+
+choose_a:
+	ped_geometry_destroy (b);
+	return a;
+
+choose_b:
+	ped_geometry_destroy (a);
+	return b;
+}
+
+/* This constraint is for "normal" primary partitions, that start at the
+ * beginning of a cylinder, and end at the end of a cylinder.
+ * 	Note: you can't start a partition at the beginning of the 1st
+ * cylinder, because that's where the partition table is!  There are different
+ * rules for that - see the _primary_start_constraint.
+ */
+static PedConstraint*
+_primary_constraint (const PedDisk* disk, const PedCHSGeometry* bios_geom,
+		     PedGeometry* min_geom)
+{
+	PedDevice*	dev = disk->dev;
+	PedSector	cylinder_size = bios_geom->sectors * bios_geom->heads;
+	PedAlignment	start_align;
+	PedAlignment	end_align;
+	PedGeometry	start_geom;
+	PedGeometry	end_geom;
+
+	if (!ped_alignment_init (&start_align, 0, cylinder_size))
+		return NULL;
+	if (!ped_alignment_init (&end_align, -1, cylinder_size))
+		return NULL;
+
+	if (min_geom) {
+		if (min_geom->start < cylinder_size)
+			return NULL;
+		if (!ped_geometry_init (&start_geom, dev, cylinder_size,
+			       		min_geom->start + 1 - cylinder_size))
+			return NULL;
+		if (!ped_geometry_init (&end_geom, dev, min_geom->end,
+			       		dev->length - min_geom->end))
+			return NULL;
+	} else {
+		if (!ped_geometry_init (&start_geom, dev, cylinder_size,
+			       		dev->length - cylinder_size))
+			return NULL;
+		if (!ped_geometry_init (&end_geom, dev, 0, dev->length))
+			return NULL;
+	}
+
+	return ped_constraint_new (&start_align, &end_align, &start_geom,
+				   &end_geom, 1, dev->length);
+}
+
+/* This constraint is for partitions starting on the first cylinder.  They
+ * must start on the 2nd head of the 1st cylinder.
+ *
+ * NOTE: We don't always start on the 2nd head of the 1st cylinder.  Windows
+ * Vista aligns starting partitions at sector 2048 (0x800) by default.  See:
+ * http://support.microsoft.com/kb/923332
+ */
+static PedConstraint*
+_primary_start_constraint (const PedDisk* disk,
+                           const PedPartition *part,
+                           const PedCHSGeometry* bios_geom,
+                           const PedGeometry* min_geom)
+{
+	PedDevice*	dev = disk->dev;
+	PedSector	cylinder_size = bios_geom->sectors * bios_geom->heads;
+	PedAlignment	start_align;
+	PedAlignment	end_align;
+	PedGeometry	start_geom;
+	PedGeometry	end_geom;
+	PedSector start_pos;
+
+	if (part->geom.start == 2048)
+		/* check for known Windows Vista (NTFS >= 3.1) alignments */
+		/* sector 0x800 == 2048                                   */
+		start_pos = 2048;
+	else
+		/* all other primary partitions on a DOS label align to   */
+		/* the 2nd head of the first cylinder (0x3F == 63)        */
+		start_pos = bios_geom->sectors;
+
+	if (!ped_alignment_init (&start_align, start_pos, 0))
+		return NULL;
+	if (!ped_alignment_init (&end_align, -1, cylinder_size))
+		return NULL;
+	if (min_geom) {
+		if (!ped_geometry_init (&start_geom, dev, start_pos, 1))
+			return NULL;
+		if (!ped_geometry_init (&end_geom, dev, min_geom->end,
+			       		dev->length - min_geom->end))
+			return NULL;
+	} else {
+		if (!ped_geometry_init (&start_geom, dev, start_pos,
+			dev->length - start_pos))
+			return NULL;
+		if (!ped_geometry_init (&end_geom, dev, 0, dev->length))
+			return NULL;
+	}
+
+	return ped_constraint_new (&start_align, &end_align, &start_geom,
+				   &end_geom, 1, dev->length);
+}
+
+/* constraints for logical partitions:
+ * 	- start_offset is the offset in the start alignment.  "normally",
+ * this is bios_geom->sectors.  exceptions: MINOR > 5 at the beginning of the
+ * extended partition, or MINOR == 5 in the middle of the extended partition
+ * 	- is_start_part == 1 if the constraint is for the first cylinder of
+ * the extended partition, or == 0 if the constraint is for the second cylinder
+ * onwards of the extended partition.
+ */
+static PedConstraint*
+_logical_constraint (const PedDisk* disk, const PedCHSGeometry* bios_geom,
+		     PedSector start_offset, int is_start_part)
+{
+	PedPartition*	ext_part = ped_disk_extended_partition (disk);
+	PedDevice*	dev = disk->dev;
+	PedSector	cylinder_size = bios_geom->sectors * bios_geom->heads;
+	PedAlignment	start_align;
+	PedAlignment	end_align;
+	PedGeometry	max_geom;
+
+	PED_ASSERT (ext_part != NULL, return NULL);
+
+	if (!ped_alignment_init (&start_align, start_offset, cylinder_size))
+		return NULL;
+	if (!ped_alignment_init (&end_align, -1, cylinder_size))
+		return NULL;
+	if (is_start_part) {
+		if (!ped_geometry_init (&max_geom, dev,
+					ext_part->geom.start,
+					ext_part->geom.length))
+			return NULL;
+	} else {
+		PedSector	min_start;
+		PedSector	max_length;
+
+		min_start = ped_round_up_to (ext_part->geom.start + 1,
+					     cylinder_size);
+		max_length = ext_part->geom.end - min_start + 1;
+		if (min_start >= ext_part->geom.end)
+			return NULL;
+
+		if (!ped_geometry_init (&max_geom, dev, min_start, max_length))
+			return NULL;
+	}
+
+	return ped_constraint_new (&start_align, &end_align, &max_geom,
+		       		   &max_geom, 1, dev->length);
+}
+
+/* returns the minimum geometry for the extended partition, given that the
+ * extended partition must contain:
+ *   * all logical partitions
+ *   * all partition tables for all logical partitions (except the first)
+ *   * the extended partition table
+ */
+static PedGeometry*
+_get_min_extended_part_geom (const PedPartition* ext_part,
+			     const PedCHSGeometry* bios_geom)
+{
+	PedDisk*		disk = ext_part->disk;
+	PedSector		head_size = bios_geom ? bios_geom->sectors : 1;
+	PedPartition*		walk;
+	PedGeometry*		min_geom;
+
+	walk = ped_disk_get_partition (disk, 5);
+	if (!walk)
+		return NULL;
+
+	min_geom = ped_geometry_duplicate (&walk->geom);
+	if (!min_geom)
+		return NULL;
+	ped_geometry_set_start (min_geom, walk->geom.start - 1 * head_size);
+
+	for (walk = ext_part->part_list; walk; walk = walk->next) {
+		if (!ped_partition_is_active (walk) || walk->num == 5)
+			continue;
+		if (walk->geom.start < min_geom->start)
+			ped_geometry_set_start (min_geom,
+					walk->geom.start - 2 * head_size);
+		if (walk->geom.end > min_geom->end)
+			ped_geometry_set_end (min_geom, walk->geom.end);
+	}
+
+	return min_geom;
+}
+
+static int
+_align_primary (PedPartition* part, const PedCHSGeometry* bios_geom,
+		const PedConstraint* constraint)
+{
+	PedDisk*	disk = part->disk;
+	PedGeometry*	min_geom = NULL;
+	PedGeometry*	solution = NULL;
+
+	if (part->type == PED_PARTITION_EXTENDED)
+		min_geom = _get_min_extended_part_geom (part, bios_geom);
+
+	solution = _best_solution (part, bios_geom, solution,
+			_try_constraint (part, constraint,
+					 _primary_start_constraint (disk, part,
+						 bios_geom, min_geom)));
+
+	solution = _best_solution (part, bios_geom, solution,
+			_try_constraint (part, constraint,
+				_primary_constraint (disk, bios_geom,
+				min_geom)));
+
+	if (min_geom)
+		ped_geometry_destroy (min_geom);
+
+	if (solution) {
+		ped_geometry_set (&part->geom, solution->start,
+				  solution->length);
+		ped_geometry_destroy (solution);
+		return 1;
+	}
+
+	return 0;
+}
+
+static int
+_logical_min_start_head (const PedPartition* part,
+                         const PedCHSGeometry* bios_geom,
+			 const PedPartition* ext_part,
+                         int is_start_ext_part)
+{
+	PedSector	cylinder_size = bios_geom->sectors * bios_geom->heads;
+	PedSector	base_head;
+
+	if (is_start_ext_part)
+		base_head = 1 + (ext_part->geom.start % cylinder_size)
+					/ bios_geom->sectors;
+	else
+		base_head = 0;
+
+	if (part->num == 5)
+		return base_head + 0;
+	else
+		return base_head + 1;
+}
+
+/* Shamelessly copied and adapted from _partition_get_overlap_constraint
+ * (in disk.c)
+ * This should get ride of the infamous Assertion (metadata_length > 0) failed
+ * bug for extended msdos disklabels generated by Parted.
+ * 1) There always is a partition table at the start of ext_part, so we leave
+ *    a one sector gap there.
+ * 2)*The partition table of part5 is always at the beginning of the ext_part
+ *    so there is no need to leave a one sector gap before part5.
+ *   *There always is a partition table at the beginning of each partition != 5.
+ * We don't need to worry to much about consistency with 
+ * _partition_get_overlap_constraint because missing it means we are in edge
+ * cases anyway, and we don't lose anything by just refusing to do the job in
+ * those cases.
+ */
+static PedConstraint*
+_log_meta_overlap_constraint (PedPartition* part, const PedGeometry* geom)
+{
+	PedGeometry	safe_space;
+	PedSector	min_start;
+	PedSector	max_end;
+	PedPartition*	ext_part = ped_disk_extended_partition (part->disk);
+	PedPartition*	walk;
+	int		not_5 = (part->num != 5);
+
+	PED_ASSERT (ext_part != NULL, return NULL);
+
+	walk = ext_part->part_list;
+
+	/*                                 1)  2)     */
+	min_start = ext_part->geom.start + 1 + not_5;
+	max_end = ext_part->geom.end;
+
+	while (walk != NULL             /*      2)                         2) */
+		&& (   walk->geom.start - (walk->num != 5) < geom->start - not_5
+		    || walk->geom.start - (walk->num != 5) <= min_start )) {
+		if (walk != part && ped_partition_is_active (walk))
+			min_start = walk->geom.end + 1 + not_5; /* 2) */
+		walk = walk->next;
+	}
+
+	while (walk && (walk == part || !ped_partition_is_active (walk)))
+		walk = walk->next;
+
+	if (walk)
+		max_end = walk->geom.start - 1 - (walk->num != 5); /* 2) */
+
+	if (min_start >= max_end)
+		return NULL;
+
+	ped_geometry_init (&safe_space, part->disk->dev,
+			   min_start, max_end - min_start + 1);
+	return ped_constraint_new_from_max (&safe_space);
+}
+
+static int
+_align_logical (PedPartition* part, const PedCHSGeometry* bios_geom,
+		const PedConstraint* constraint)
+{
+	PedDisk*	disk = part->disk;
+	PedPartition*	ext_part = ped_disk_extended_partition (disk);
+	PedSector	cyl_size = bios_geom->sectors * bios_geom->heads;
+	PedSector	start_base;
+	int		head;
+	PedGeometry*	solution = NULL;
+	PedConstraint   *intersect, *log_meta_overlap;
+
+	PED_ASSERT (ext_part != NULL, return 0);
+
+	log_meta_overlap = _log_meta_overlap_constraint(part, &part->geom);
+	intersect = ped_constraint_intersect (constraint, log_meta_overlap);
+	ped_constraint_destroy (log_meta_overlap);
+	if (!intersect)
+		return 0;
+
+	start_base = ped_round_down_to (part->geom.start, cyl_size);
+
+	for (head = _logical_min_start_head (part, bios_geom, ext_part, 0);
+	     head < PED_MIN (5, bios_geom->heads); head++) {
+		PedConstraint*	disk_constraint;
+		PedSector	start = start_base + head * bios_geom->sectors;
+
+		if (head >= _logical_min_start_head (part, bios_geom,
+						     ext_part, 1))
+			disk_constraint =
+				_logical_constraint (disk, bios_geom, start, 1);
+		else
+			disk_constraint =
+				_logical_constraint (disk, bios_geom, start, 0);
+
+		solution = _best_solution (part, bios_geom, solution,
+				_try_constraint (part, intersect,
+						 disk_constraint));
+	}
+
+	ped_constraint_destroy (intersect);
+
+	if (solution) {
+		ped_geometry_set (&part->geom, solution->start,
+				  solution->length);
+		ped_geometry_destroy (solution);
+		return 1;
+	}
+
+	return 0;
+}
+
+static int
+_align (PedPartition* part, const PedCHSGeometry* bios_geom,
+	const PedConstraint* constraint)
+{
+	if (part->type == PED_PARTITION_LOGICAL)
+		return _align_logical (part, bios_geom, constraint);
+	else
+		return _align_primary (part, bios_geom, constraint);
+}
+
+static PedConstraint*
+_no_geom_constraint (const PedDisk* disk, PedSector start, PedSector end)
+{
+	PedGeometry	 max;
+
+	ped_geometry_init (&max, disk->dev, start, end - start + 1);
+	return ped_constraint_new_from_max (&max);
+}
+
+static PedConstraint*
+_no_geom_extended_constraint (const PedPartition* part)
+{
+	PedDevice*	dev = part->disk->dev;
+	PedGeometry*	min = _get_min_extended_part_geom (part, NULL);
+	PedGeometry	start_range;
+	PedGeometry	end_range;
+	PedConstraint*	constraint;
+
+	if (min) {
+		ped_geometry_init (&start_range, dev, 1, min->start);
+		ped_geometry_init (&end_range, dev, min->end,
+				   dev->length - min->end);
+		ped_geometry_destroy (min);
+	} else {
+		ped_geometry_init (&start_range, dev, 1, dev->length - 1);
+		ped_geometry_init (&end_range, dev, 1, dev->length - 1);
+	}
+	constraint = ped_constraint_new (ped_alignment_any, ped_alignment_any,
+			&start_range, &end_range, 1, dev->length);
+	return constraint;
+}
+
+static int
+_align_primary_no_geom (PedPartition* part, const PedConstraint* constraint)
+{
+	PedDisk*	disk = part->disk;
+	PedGeometry*	solution;
+
+	if (part->type == PED_PARTITION_EXTENDED) {
+		solution = _try_constraint (part, constraint,
+				_no_geom_extended_constraint (part));
+	} else {
+		solution = _try_constraint (part, constraint,
+				_no_geom_constraint (disk, 1,
+						     disk->dev->length - 1));
+	}
+
+	if (solution) {
+		ped_geometry_set (&part->geom, solution->start,
+				  solution->length);
+		ped_geometry_destroy (solution);
+		return 1;
+	}
+	return 0;
+}
+
+static int
+_align_logical_no_geom (PedPartition* part, const PedConstraint* constraint)
+{
+	PedGeometry*	solution;
+
+	solution = _try_constraint (part, constraint,
+			_log_meta_overlap_constraint (part, &part->geom));
+
+	if (solution) {
+		ped_geometry_set (&part->geom, solution->start,
+				  solution->length);
+		ped_geometry_destroy (solution);
+		return 1;
+	}
+	return 0;
+}
+
+static int
+_align_no_geom (PedPartition* part, const PedConstraint* constraint)
+{
+	if (part->type == PED_PARTITION_LOGICAL)
+		return _align_logical_no_geom (part, constraint);
+	else
+		return _align_primary_no_geom (part, constraint);
+}
+
+static int
+msdos_partition_align (PedPartition* part, const PedConstraint* constraint)
+{
+	PedCHSGeometry	bios_geom;
+	DosPartitionData* dos_data;
+
+ 	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk_specific != NULL, return 0);
+
+	dos_data = part->disk_specific;
+	if (dos_data->system == PARTITION_LDM && dos_data->orig) {
+		PedGeometry *orig_geom = &dos_data->orig->geom;
+
+		if (ped_geometry_test_equal (&part->geom, orig_geom)
+		    && ped_constraint_is_solution (constraint, &part->geom))
+			return 1;
+
+		ped_geometry_set (&part->geom, orig_geom->start,
+				  orig_geom->length);
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Parted can't resize partitions managed by "
+			  "Windows Dynamic Disk."));
+		return 0;
+	}
+
+	partition_probe_bios_geometry (part, &bios_geom);
+
+	if (_align (part, &bios_geom, constraint))
+		return 1;
+	if (_align_no_geom (part, constraint))
+		return 1;
+ 
+#ifndef DISCOVER_ONLY
+	ped_exception_throw (
+		PED_EXCEPTION_ERROR,
+		PED_EXCEPTION_CANCEL,
+		_("Unable to satisfy all constraints on the partition."));
+#endif
+	return 0;
+}
+
+static int
+add_metadata_part (PedDisk* disk, PedPartitionType type, PedSector start,
+		   PedSector end)
+{
+	PedPartition*		new_part;
+
+	PED_ASSERT (disk != NULL, return 0);
+
+	new_part = ped_partition_new (disk, type | PED_PARTITION_METADATA, NULL,
+				      start, end);
+	if (!new_part)
+		goto error;
+	if (!ped_disk_add_partition (disk, new_part, NULL))
+		goto error_destroy_new_part;
+
+	return 1;
+
+error_destroy_new_part:
+	ped_partition_destroy (new_part);
+error:
+	return 0;
+}
+
+/* There are a few objectives here:
+ * 	- avoid having lots of "free space" partitions lying around, to confuse
+ * the front end.
+ * 	- ensure that there's enough room to put in the extended partition
+ * tables, etc.
+ */
+static int
+add_logical_part_metadata (PedDisk* disk, const PedPartition* log_part)
+{
+	PedPartition*	ext_part = ped_disk_extended_partition (disk);
+	PedPartition*	prev = log_part->prev;
+	PedCHSGeometry	bios_geom;
+	PedSector	cyl_size;
+	PedSector	metadata_start;
+	PedSector	metadata_end;
+	PedSector	metadata_length;
+
+	partition_probe_bios_geometry (ext_part, &bios_geom);
+	cyl_size = bios_geom.sectors * bios_geom.heads;
+
+	/* if there's metadata shortly before the partition (on the same
+	 * cylinder), then make this new metadata partition touch the end of
+	 * the other.  No point having 63 bytes (or whatever) of free space
+	 * partition - just confuses front-ends, etc.
+	 * 	Otherwise, start the metadata at the start of the cylinder
+	 */
+
+	metadata_end = log_part->geom.start - 1;
+	metadata_start = ped_round_down_to (metadata_end, cyl_size);
+	if (prev)
+		metadata_start = PED_MAX (metadata_start, prev->geom.end + 1);
+	else
+		metadata_start = PED_MAX (metadata_start,
+					  ext_part->geom.start + 1);
+	metadata_length = metadata_end - metadata_start + 1;
+
+	/* partition 5 doesn't need to have any metadata */
+	if (log_part->num == 5 && metadata_length < bios_geom.sectors)
+		return 1;
+
+	PED_ASSERT (metadata_length > 0, return 0);
+
+	return add_metadata_part (disk, PED_PARTITION_LOGICAL,
+				  metadata_start, metadata_end);
+}
+
+static PedPartition*
+get_last_part (const PedDisk* disk)
+{
+	PedPartition* first_part = disk->part_list;
+	PedPartition* walk;
+
+	if (!first_part)
+		return NULL;
+	for (walk = first_part; walk->next; walk = walk->next);
+	return walk;
+}
+
+/* Adds metadata placeholder partitions to cover the partition table (and
+ * "free" space after it that often has bootloader stuff), and the last
+ * incomplete cylinder at the end of the disk.
+ * 	Parted has to be mindful of the uncertainty of dev->bios_geom.
+ * It therefore makes sure this metadata doesn't overlap with partitions.
+ */
+static int
+add_startend_metadata (PedDisk* disk)
+{
+	PedDevice* dev = disk->dev;
+	PedSector cyl_size = dev->bios_geom.sectors * dev->bios_geom.heads;
+	PedPartition* first_part = disk->part_list;
+	PedPartition* last_part = get_last_part (disk);
+	PedSector start, end;
+
+	if (!first_part)
+		return 1;
+
+	start = 0;
+	end = PED_MIN (dev->bios_geom.sectors - 1, first_part->geom.start - 1);
+	if (!add_metadata_part (disk, PED_PARTITION_NORMAL, start, end))
+		return 0;
+
+	start = PED_MAX (last_part->geom.end + 1,
+			 ped_round_down_to (dev->length, cyl_size));
+	end = dev->length - 1;
+	if (start < end) {
+		if (!add_metadata_part (disk, PED_PARTITION_NORMAL, start, end))
+			return 0;
+	}
+
+	return 1;
+}
+
+static int
+msdos_alloc_metadata (PedDisk* disk)
+{
+	PedPartition*		ext_part;
+
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (disk->dev != NULL, return 0);
+
+	if (!add_startend_metadata (disk))
+		return 0;
+
+	ext_part = ped_disk_extended_partition (disk);
+	if (ext_part) {
+		int		i;
+		PedSector	start, end;
+		PedCHSGeometry	bios_geom;
+		
+		for (i=5; 1; i++) {
+			PedPartition* log_part;
+			log_part = ped_disk_get_partition (disk, i);
+			if (!log_part)
+				break;
+			if (!add_logical_part_metadata (disk, log_part))
+				return 0;
+		}
+
+		partition_probe_bios_geometry (ext_part, &bios_geom);
+		start = ext_part->geom.start;
+		end = start + bios_geom.sectors - 1;
+		if (ext_part->part_list)
+			end = PED_MIN (end,
+				       ext_part->part_list->geom.start - 1);
+		if (!add_metadata_part (disk, PED_PARTITION_LOGICAL,
+					start, end))
+			return 0;
+	}
+
+	return 1;
+}
+
+static int
+next_primary (const PedDisk* disk)
+{
+	int	i;
+	for (i=1; i<=4; i++) {
+		if (!ped_disk_get_partition (disk, i))
+			return i;
+	}
+	return 0;
+}
+
+static int
+next_logical (const PedDisk* disk)
+{
+	int	i;
+	for (i=5; 1; i++) {
+		if (!ped_disk_get_partition (disk, i))
+			return i;
+	}
+}
+
+static int
+msdos_partition_enumerate (PedPartition* part)
+{
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk != NULL, return 0);
+
+	/* don't re-number a primary partition */
+	if (part->num != -1 && part->num <= 4)
+		return 1;
+
+	part->num = -1;
+
+	if (part->type & PED_PARTITION_LOGICAL)
+		part->num = next_logical (part->disk);
+	else
+		part->num = next_primary (part->disk);
+
+	return 1;
+}
+
+static int
+msdos_get_max_primary_partition_count (const PedDisk* disk)
+{
+	return 4;
+}
+
+static PedDiskOps msdos_disk_ops = {
+	probe:			msdos_probe,
+#ifndef DISCOVER_ONLY
+	clobber:		msdos_clobber,
+#else
+	clobber:		NULL,
+#endif
+	alloc:			msdos_alloc,
+	duplicate:		msdos_duplicate,
+	free:			msdos_free,
+	read:			msdos_read,
+#ifndef DISCOVER_ONLY
+	write:			msdos_write,
+#else
+	write:			NULL,
+#endif
+
+	partition_new:		msdos_partition_new,
+	partition_duplicate:	msdos_partition_duplicate,
+	partition_destroy:	msdos_partition_destroy,
+	partition_set_system:	msdos_partition_set_system,
+	partition_set_flag:	msdos_partition_set_flag,
+	partition_get_flag:	msdos_partition_get_flag,
+	partition_is_flag_available:	msdos_partition_is_flag_available,
+	partition_set_name:	NULL,
+	partition_get_name:	NULL,
+	partition_align:	msdos_partition_align,
+	partition_enumerate:	msdos_partition_enumerate,
+
+	alloc_metadata:		msdos_alloc_metadata,
+	get_max_primary_partition_count:
+				msdos_get_max_primary_partition_count
+};
+
+static PedDiskType msdos_disk_type = {
+	next:		NULL,
+	name:		"msdos",
+	ops:		&msdos_disk_ops,
+	features:	PED_DISK_TYPE_EXTENDED
+};
+
+void
+ped_disk_msdos_init ()
+{
+	PED_ASSERT (sizeof (DosRawPartition) == 16, return);
+	PED_ASSERT (sizeof (DosRawTable) == 512, return);
+
+	ped_disk_type_register (&msdos_disk_type);
+}
+
+void
+ped_disk_msdos_done ()
+{
+	ped_disk_type_unregister (&msdos_disk_type);
+}
diff --git a/parted-1.8.7/libparted/labels/dvh.c b/parted-1.8.7/libparted/labels/dvh.c
new file mode 100644
index 0000000..dce8e5c
--- /dev/null
+++ b/parted-1.8.7/libparted/labels/dvh.c
@@ -0,0 +1,912 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2001, 2002, 2005, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+#include <parted/parted.h>
+#include <parted/debug.h>
+#include <parted/endian.h>
+
+#include "dvh.h"
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+/* Default size for volhdr part, same val as IRIX's fx uses */
+#define PTYPE_VOLHDR_DFLTSZ 4096
+
+/* Partition numbers that seem to be strongly held convention */
+#define PNUM_VOLHDR 8
+#define PNUM_VOLUME 10
+
+/* Other notes of interest:
+ *  PED_PARTITION_EXTENDED is used for volume headers
+ *  PED_PARTITION_LOGICAL  is used for bootfiles
+ *  PED_PARTITION_NORMAL   is used for all else
+ */
+
+typedef struct _DVHDiskData {
+	struct device_parameters	dev_params;
+	int				swap;	/* part num of swap, 0=none */
+	int				root;	/* part num of root, 0=none */
+	int				boot;	/* part num of boot, 0=none */
+} DVHDiskData;
+
+typedef struct _DVHPartData {
+	int	type;
+	char	name[VDNAMESIZE + 1];	/* boot volumes only */
+	int	real_file_size;		/* boot volumes only */
+} DVHPartData;
+
+static PedDiskType dvh_disk_type;
+
+static int
+dvh_probe (const PedDevice *dev)
+{
+	struct volume_header	vh;
+
+        if (dev->sector_size != 512)
+                return 0;
+
+	if (!ped_device_read (dev, &vh, 0, 1))
+		return 0;
+
+	return PED_BE32_TO_CPU (vh.vh_magic) == VHMAGIC;
+}
+
+#ifndef DISCOVER_ONLY
+static int
+dvh_clobber (PedDevice* dev)
+{
+	char	zeros[512];
+
+	memset (zeros, 0, 512);
+	return ped_device_write (dev, zeros, 0, 1);
+}
+#endif /* !DISCOVER_ONLY */
+
+static PedDisk*
+dvh_alloc (const PedDevice* dev)
+{
+	PedDisk*	disk;
+	DVHDiskData*	dvh_disk_data;
+	PedPartition*	volume_part;
+	PedConstraint*	constraint_any;
+
+	disk = _ped_disk_alloc (dev, &dvh_disk_type);
+	if (!disk)
+		goto error;
+
+	disk->disk_specific = dvh_disk_data
+		= ped_malloc (sizeof (DVHDiskData));
+	if (!dvh_disk_data)
+		goto error_free_disk;
+
+	memset (&dvh_disk_data->dev_params, 0,
+		sizeof (struct device_parameters));
+	dvh_disk_data->swap = 0;
+	dvh_disk_data->root = 0;
+	dvh_disk_data->boot = 0;
+
+	volume_part = ped_partition_new (disk, PED_PARTITION_EXTENDED, NULL,
+					 0, PTYPE_VOLHDR_DFLTSZ - 1);
+	if (!volume_part)
+		goto error_free_disk_specific;
+	volume_part->num = PNUM_VOLHDR + 1;
+	constraint_any = ped_constraint_any (dev);
+	if (!ped_disk_add_partition (disk, volume_part, constraint_any))
+		goto error_destroy_constraint_any;
+	ped_constraint_destroy (constraint_any);
+	return disk;
+
+error_destroy_constraint_any:
+	ped_constraint_destroy (constraint_any);
+	ped_partition_destroy (volume_part);
+error_free_disk_specific:
+	ped_free (disk->disk_specific);
+error_free_disk:
+	ped_free (disk);
+error:
+	return NULL;
+}
+
+static PedDisk*
+dvh_duplicate (const PedDisk* disk)
+{
+	PedDisk*	new_disk;
+	DVHDiskData*	new_dvh_disk_data;
+	DVHDiskData*	old_dvh_disk_data = disk->disk_specific;
+
+	PED_ASSERT (old_dvh_disk_data != NULL, goto error);
+
+	new_disk = _ped_disk_alloc (disk->dev, &dvh_disk_type);
+	if (!new_disk)
+		goto error;
+
+	new_disk->disk_specific = new_dvh_disk_data
+		= ped_malloc (sizeof (DVHDiskData));
+	if (!new_dvh_disk_data)
+		goto error_free_new_disk;
+
+	new_dvh_disk_data->dev_params = old_dvh_disk_data->dev_params;
+	return new_disk;
+
+error_free_new_disk:
+	ped_free (new_disk);
+error:
+	return NULL;
+}
+
+static void
+dvh_free (PedDisk* disk)
+{
+	ped_free (disk->disk_specific);
+	_ped_disk_free (disk);
+}
+
+/* two's complement 32-bit checksum */
+static uint32_t
+_checksum (const uint32_t* base, size_t size)
+{
+	uint32_t	sum = 0;
+	size_t		i;
+
+	for (i = 0; i < size / sizeof (uint32_t); i++)
+		sum = sum - PED_BE32_TO_CPU (base[i]);
+
+	return sum;
+}
+
+/* try to make a reasonable volume header partition... */
+static PedExceptionOption
+_handle_no_volume_header (PedDisk* disk)
+{
+	PedExceptionOption	ret;
+	PedPartition*		part;
+	PedConstraint*		constraint;
+
+	switch (ped_exception_throw (
+		PED_EXCEPTION_WARNING,
+		PED_EXCEPTION_FIX + PED_EXCEPTION_CANCEL,
+		_("%s has no extended partition (volume header partition)."),
+		disk->dev->path)) {
+		case PED_EXCEPTION_UNHANDLED:
+		case PED_EXCEPTION_FIX:
+		default:
+			part = ped_partition_new (
+				disk, PED_PARTITION_EXTENDED, NULL,
+				0, PTYPE_VOLHDR_DFLTSZ - 1);
+			if (!part)
+				goto error;
+			part->num = PNUM_VOLHDR + 1;
+			constraint = ped_constraint_any (part->disk->dev);
+			if (!constraint)
+				goto error_destroy_part;
+			if (!ped_disk_add_partition (disk, part, constraint))
+				goto error_destroy_constraint;
+			ped_constraint_destroy (constraint);
+			ret = PED_EXCEPTION_FIX;
+			break;
+
+		case PED_EXCEPTION_CANCEL:
+			goto error;
+	}
+	return ret;
+
+error_destroy_constraint:
+	ped_constraint_destroy (constraint);
+error_destroy_part:
+	ped_partition_destroy (part);
+error:
+	return PED_EXCEPTION_CANCEL;
+}
+
+static PedPartition*
+_parse_partition (PedDisk* disk, struct partition_table* pt)
+{
+	PedPartition*	part;
+	DVHPartData*	dvh_part_data;
+	PedSector	start = PED_BE32_TO_CPU (pt->pt_firstlbn);
+	PedSector	length = PED_BE32_TO_CPU (pt->pt_nblks);
+
+	part = ped_partition_new (disk,
+			          pt->pt_type ? 0 : PED_PARTITION_EXTENDED,
+				  NULL,
+				  start, start + length - 1);
+	if (!part)
+		return NULL;
+
+	dvh_part_data = part->disk_specific;
+	dvh_part_data->type = PED_BE32_TO_CPU (pt->pt_type);
+	strcpy (dvh_part_data->name, "");
+
+	return part;
+}
+
+static PedPartition*
+_parse_boot_file (PedDisk* disk, struct volume_directory* vd)
+{
+	PedPartition*	part;
+	DVHPartData*	dvh_part_data;
+	PedSector	start = PED_BE32_TO_CPU (vd->vd_lbn);
+	int		length = PED_BE32_TO_CPU (vd->vd_nbytes);
+
+	part = ped_partition_new (disk, PED_PARTITION_LOGICAL, NULL,
+				  start, start + length/512 - 1);
+	if (!part)
+		return NULL;
+
+	dvh_part_data = part->disk_specific;
+	dvh_part_data->real_file_size = length;
+
+	strncpy (dvh_part_data->name, vd->vd_name, VDNAMESIZE);
+	dvh_part_data->name[VDNAMESIZE] = 0;
+	return part;
+}
+
+static int dvh_write (const PedDisk* disk);
+
+/* YUCK
+ *
+ *  If you remove a boot/root/swap partition, the disk->disk_specific
+ * thing isn't updated.  (Probably reflects a design bug somewhere...)
+ * Anyway, the workaround is: flush stale flags whenever we allocate
+ * new partition numbers, and before we write to disk.
+ */
+static void
+_flush_stale_flags (const PedDisk* disk)
+{
+	DVHDiskData*		dvh_disk_data = disk->disk_specific;
+
+	if (dvh_disk_data->root
+		       && !ped_disk_get_partition (disk, dvh_disk_data->root))
+		dvh_disk_data->root = 0;
+	if (dvh_disk_data->swap
+		       && !ped_disk_get_partition (disk, dvh_disk_data->swap))
+		dvh_disk_data->swap = 0;
+	if (dvh_disk_data->boot
+		       && !ped_disk_get_partition (disk, dvh_disk_data->boot))
+		dvh_disk_data->boot = 0;
+}
+
+static int
+dvh_read (PedDisk* disk)
+{
+	DVHDiskData*		dvh_disk_data = disk->disk_specific;
+	int			i;
+	struct volume_header	vh;
+	char			boot_name [BFNAMESIZE + 1];
+#ifndef DISCOVER_ONLY
+	int			write_back = 0;
+#endif
+
+	PED_ASSERT (dvh_disk_data != NULL, return 0);
+
+	ped_disk_delete_all (disk);
+
+	if (!ped_device_read (disk->dev, &vh, 0, 1))
+		return 0;
+
+	if (_checksum ((uint32_t*) &vh, sizeof (struct volume_header))) {
+		if (ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_IGNORE_CANCEL,
+			_("Checksum is wrong, indicating the partition "
+			  "table is corrupt."))
+				== PED_EXCEPTION_CANCEL)
+			return 0;
+	}
+
+	PED_ASSERT (PED_BE32_TO_CPU (vh.vh_magic) == VHMAGIC, return 0);
+
+	dvh_disk_data->dev_params = vh.vh_dp;
+	strncpy (boot_name, vh.vh_bootfile, BFNAMESIZE);
+	boot_name[BFNAMESIZE] = 0;
+
+	/* normal partitions */
+	for (i = 0; i < NPARTAB; i++) {
+		PedPartition* part;
+		PedConstraint* constraint_exact;
+
+		if (!vh.vh_pt[i].pt_nblks)
+			continue;
+		/* Skip the whole-disk partition, parted disklikes overlap */
+		if (PED_BE32_TO_CPU (vh.vh_pt[i].pt_type) == PTYPE_VOLUME)
+			continue;
+
+		part = _parse_partition (disk, &vh.vh_pt[i]);
+		if (!part)
+			goto error_delete_all;
+
+		part->fs_type = ped_file_system_probe (&part->geom);
+		part->num = i + 1;
+
+		if (PED_BE16_TO_CPU (vh.vh_rootpt) == i)
+			ped_partition_set_flag (part, PED_PARTITION_ROOT, 1);
+		if (PED_BE16_TO_CPU (vh.vh_swappt) == i)
+			ped_partition_set_flag (part, PED_PARTITION_SWAP, 1);
+
+		constraint_exact = ped_constraint_exact (&part->geom);
+		if (!ped_disk_add_partition(disk, part, constraint_exact)) {
+			ped_partition_destroy (part);
+			goto error_delete_all;
+		}
+		ped_constraint_destroy (constraint_exact);
+	}
+
+	if (!ped_disk_extended_partition (disk)) {
+#ifdef DISCOVER_ONLY
+		return 1;
+#else
+		switch (_handle_no_volume_header (disk)) {
+			case PED_EXCEPTION_CANCEL:
+				return 0;
+			case PED_EXCEPTION_IGNORE:
+				return 1;
+			case PED_EXCEPTION_FIX:
+				write_back = 1;
+				break;
+			default:
+				break;
+		}
+#endif
+	}
+
+	/* boot partitions */
+	for (i = 0; i < NVDIR; i++) {
+		PedPartition* part;
+		PedConstraint* constraint_exact;
+
+		if (!vh.vh_vd[i].vd_nbytes)
+			continue;
+
+		part = _parse_boot_file (disk, &vh.vh_vd[i]);
+		if (!part)
+			goto error_delete_all;
+
+		part->fs_type = ped_file_system_probe (&part->geom);
+		part->num = NPARTAB + i + 1;
+
+		if (!strcmp (boot_name, ped_partition_get_name (part)))
+			ped_partition_set_flag (part, PED_PARTITION_BOOT, 1);
+
+		constraint_exact = ped_constraint_exact (&part->geom);
+		if (!ped_disk_add_partition(disk, part, constraint_exact)) {
+			ped_partition_destroy (part);
+			goto error_delete_all;
+		}
+		ped_constraint_destroy (constraint_exact);
+	}
+#ifndef DISCOVER_ONLY
+	if (write_back)
+		dvh_write (disk);
+#endif
+	return 1;
+
+error_delete_all:
+	ped_disk_delete_all (disk);
+	return 0;
+}
+
+#ifndef DISCOVER_ONLY
+static void
+_generate_partition (PedPartition* part, struct partition_table* pt)
+{
+	DVHPartData*	dvh_part_data = part->disk_specific;
+
+	/* Assert not a bootfile */
+	PED_ASSERT ((part->type & PED_PARTITION_LOGICAL) == 0, return);
+
+	pt->pt_nblks = PED_CPU_TO_BE32 (part->geom.length);
+	pt->pt_firstlbn = PED_CPU_TO_BE32 (part->geom.start);
+	pt->pt_type = PED_CPU_TO_BE32 (dvh_part_data->type);
+}
+
+static void
+_generate_boot_file (PedPartition* part, struct volume_directory* vd)
+{
+	DVHPartData*	dvh_part_data = part->disk_specific;
+
+	/* Assert it's a bootfile */
+	PED_ASSERT ((part->type & PED_PARTITION_LOGICAL) != 0, return);
+
+	vd->vd_nbytes = PED_CPU_TO_BE32 (dvh_part_data->real_file_size);
+	vd->vd_lbn = PED_CPU_TO_BE32 (part->geom.start);
+
+	memset (vd->vd_name, 0, VDNAMESIZE);
+	strncpy (vd->vd_name, dvh_part_data->name, VDNAMESIZE);
+}
+
+static int
+dvh_write (const PedDisk* disk)
+{
+	DVHDiskData*		dvh_disk_data = disk->disk_specific;
+	struct volume_header	vh;
+	int			i;
+
+	PED_ASSERT (dvh_disk_data != NULL, return 0);
+
+	_flush_stale_flags (disk);
+
+	memset (&vh, 0, sizeof (struct volume_header));
+
+	vh.vh_magic = PED_CPU_TO_BE32 (VHMAGIC);
+	vh.vh_rootpt = PED_CPU_TO_BE16 (dvh_disk_data->root - 1);
+	vh.vh_swappt = PED_CPU_TO_BE16 (dvh_disk_data->swap - 1);
+
+	if (dvh_disk_data->boot) {
+		PedPartition* boot_part;
+		boot_part = ped_disk_get_partition (disk, dvh_disk_data->boot);
+		strcpy (vh.vh_bootfile, ped_partition_get_name (boot_part));
+	}
+
+	vh.vh_dp = dvh_disk_data->dev_params;
+	/* Set up rudimentary device geometry */
+	vh.vh_dp.dp_cyls
+		= PED_CPU_TO_BE16 ((short)disk->dev->bios_geom.cylinders);
+	vh.vh_dp.dp_trks0 = PED_CPU_TO_BE16 ((short)disk->dev->bios_geom.heads);
+	vh.vh_dp.dp_secs
+		= PED_CPU_TO_BE16 ((short)disk->dev->bios_geom.sectors);
+	vh.vh_dp.dp_secbytes = PED_CPU_TO_BE16 ((short)disk->dev->sector_size);
+
+	for (i = 0; i < NPARTAB; i++) {
+		PedPartition* part = ped_disk_get_partition (disk, i + 1);
+		if (part)
+			_generate_partition (part, &vh.vh_pt[i]);
+	}
+
+	/* whole disk partition
+	 * This is only ever written here, and never modified 
+	 * (or even shown) as it must contain the entire disk, 
+	 * and parted does not like overlapping partitions
+	 */
+	vh.vh_pt[PNUM_VOLUME].pt_nblks = PED_CPU_TO_BE32 (disk->dev->length);
+	vh.vh_pt[PNUM_VOLUME].pt_firstlbn = PED_CPU_TO_BE32 (0);
+	vh.vh_pt[PNUM_VOLUME].pt_type = PED_CPU_TO_BE32 (PTYPE_VOLUME);
+
+	for (i = 0; i < NVDIR; i++) {
+		PedPartition* part = ped_disk_get_partition (disk,
+							     i + 1 + NPARTAB);
+		if (part)
+			_generate_boot_file (part, &vh.vh_vd[i]);
+	}
+
+	vh.vh_csum = 0;
+	vh.vh_csum = PED_CPU_TO_BE32 (_checksum ((uint32_t*) &vh,
+			       	      sizeof (struct volume_header)));
+
+	return ped_device_write (disk->dev, &vh, 0, 1)
+	       && ped_device_sync (disk->dev);
+}
+#endif /* !DISCOVER_ONLY */
+
+static PedPartition*
+dvh_partition_new (const PedDisk* disk, PedPartitionType part_type,
+		    const PedFileSystemType* fs_type,
+		    PedSector start, PedSector end)
+{
+	PedPartition* part;
+	DVHPartData* dvh_part_data;
+
+	part = _ped_partition_alloc (disk, part_type, fs_type, start, end);
+	if (!part)
+		goto error;
+
+	if (!ped_partition_is_active (part)) {
+		part->disk_specific = NULL;
+		return part;
+	}
+
+	dvh_part_data = part->disk_specific =
+		ped_malloc (sizeof (DVHPartData));
+	if (!dvh_part_data)
+		goto error_free_part;
+
+	dvh_part_data->type = (part_type == PED_PARTITION_EXTENDED)
+					? PTYPE_VOLHDR
+					: PTYPE_RAW;
+	strcpy (dvh_part_data->name, "");
+	dvh_part_data->real_file_size = part->geom.length * 512;
+	return part;
+
+error_free_part:
+	_ped_partition_free (part);
+error:
+	return NULL;
+}
+
+static PedPartition*
+dvh_partition_duplicate (const PedPartition* part)
+{
+	PedPartition* result;
+	DVHPartData* part_data = part->disk_specific;
+	DVHPartData* result_data;
+
+	result = _ped_partition_alloc (part->disk, part->type, part->fs_type,
+				       part->geom.start, part->geom.end);
+	if (!result)
+		goto error;
+	result->num = part->num;
+
+	if (!ped_partition_is_active (part)) {
+		result->disk_specific = NULL;
+		return result;
+	}
+
+	result_data = result->disk_specific =
+		ped_malloc (sizeof (DVHPartData));
+	if (!result_data)
+		goto error_free_part;
+
+	result_data->type = part_data->type;
+	strcpy (result_data->name, part_data->name);
+	result_data->real_file_size = part_data->real_file_size;
+	return result;
+
+error_free_part:
+	_ped_partition_free (result);
+error:
+	return NULL;
+}
+
+static void
+dvh_partition_destroy (PedPartition* part)
+{
+	if (ped_partition_is_active (part)) {
+		PED_ASSERT (part->disk_specific != NULL, return);
+		ped_free (part->disk_specific);
+	}
+	_ped_partition_free (part);
+}
+
+static int
+dvh_partition_set_system (PedPartition* part, const PedFileSystemType* fs_type)
+{
+	DVHPartData* dvh_part_data = part->disk_specific;
+
+	part->fs_type = fs_type;
+
+	if (part->type == PED_PARTITION_EXTENDED) {
+		dvh_part_data->type = PTYPE_VOLHDR;
+		return 1;
+	}
+
+	/* Is this a bootfile? */
+	if (part->type == PED_PARTITION_LOGICAL)
+		return 1;
+
+	if (fs_type && !strcmp (fs_type->name, "xfs"))
+		dvh_part_data->type = PTYPE_XFS;
+	else
+		dvh_part_data->type = PTYPE_RAW;
+	return 1;
+}
+
+static int
+dvh_partition_set_flag (PedPartition* part, PedPartitionFlag flag, int state)
+{
+	DVHDiskData* dvh_disk_data = part->disk->disk_specific;
+
+	switch (flag) {
+	case PED_PARTITION_ROOT:
+		if (part->type != 0 && state) {
+#ifndef DISCOVER_ONLY
+			ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_CANCEL,
+				_("Only primary partitions can be root "
+				  "partitions."));
+#endif
+			return 0;
+		}
+		dvh_disk_data->root = state ? part->num : 0;
+		break;
+
+	case PED_PARTITION_SWAP:
+		if (part->type != 0 && state) {
+#ifndef DISCOVER_ONLY
+			ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_CANCEL,
+				_("Only primary partitions can be swap "
+				  "partitions."));
+			return 0;
+#endif
+		}
+		dvh_disk_data->swap = state ? part->num : 0;
+		break;
+
+	case PED_PARTITION_BOOT:
+		if (part->type != PED_PARTITION_LOGICAL && state) {
+#ifndef DISCOVER_ONLY
+			ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_CANCEL,
+				_("Only logical partitions can be a boot "
+				  "file."));
+#endif
+			return 0;
+		}
+		dvh_disk_data->boot = state ? part->num : 0;
+		break;
+
+	case PED_PARTITION_LVM:
+	case PED_PARTITION_LBA:
+	case PED_PARTITION_HIDDEN:
+	case PED_PARTITION_RAID:
+	default:
+		return 0;
+	}
+	return 1;
+}
+
+static int
+dvh_partition_get_flag (const PedPartition* part, PedPartitionFlag flag)
+{
+	DVHDiskData* dvh_disk_data = part->disk->disk_specific;
+
+	switch (flag) {
+	case PED_PARTITION_ROOT:
+		return dvh_disk_data->root == part->num;
+
+	case PED_PARTITION_SWAP:
+		return dvh_disk_data->swap == part->num;
+
+	case PED_PARTITION_BOOT:
+		return dvh_disk_data->boot == part->num;
+
+	case PED_PARTITION_LVM:
+	case PED_PARTITION_LBA:
+	case PED_PARTITION_HIDDEN:
+	case PED_PARTITION_RAID:
+	default:
+		return 0;
+	}
+	return 1;
+}
+
+static int
+dvh_partition_is_flag_available (const PedPartition* part,
+				  PedPartitionFlag flag)
+{
+	switch (flag) {
+	case PED_PARTITION_ROOT:
+	case PED_PARTITION_SWAP:
+	case PED_PARTITION_BOOT:
+		return 1;
+
+	case PED_PARTITION_LVM:
+	case PED_PARTITION_LBA:
+	case PED_PARTITION_HIDDEN:
+	case PED_PARTITION_RAID:
+	default:
+		return 0;
+	}
+	return 1;
+}
+
+static void
+dvh_partition_set_name (PedPartition* part, const char* name)
+{
+	DVHPartData* dvh_part_data = part->disk_specific;
+
+	if (part->type == PED_PARTITION_LOGICAL) {
+		/* Bootfile */
+		strncpy (dvh_part_data->name, name, VDNAMESIZE);
+		dvh_part_data->name[VDNAMESIZE] = 0;
+	} else {
+#ifndef DISCOVER_ONLY
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Only logical partitions (boot files) have a name."));
+#endif
+	}
+}
+
+static const char*
+dvh_partition_get_name (const PedPartition* part)
+{
+	DVHPartData* dvh_part_data = part->disk_specific;
+	return dvh_part_data->name;
+}
+
+/* The constraint for the volume header partition is different, because it must
+ * contain the first sector of the disk.
+ */
+static PedConstraint*
+_get_extended_constraint (PedDisk* disk)
+{
+        PedGeometry     min_geom;
+	if (!ped_geometry_init (&min_geom, disk->dev, 0, 1))
+		return NULL;
+        return ped_constraint_new_from_min (&min_geom);
+}
+
+static PedConstraint*
+_get_primary_constraint (PedDisk* disk)
+{
+        PedGeometry     max_geom;
+	if (!ped_geometry_init (&max_geom, disk->dev, 1, disk->dev->length - 1))
+		return NULL;
+        return ped_constraint_new_from_max (&max_geom);
+}
+
+static int
+dvh_partition_align (PedPartition* part, const PedConstraint* constraint)
+{
+        PED_ASSERT (part != NULL, return 0);
+
+	if (_ped_partition_attempt_align (
+			part, constraint,
+			(part->type == PED_PARTITION_EXTENDED)
+				? _get_extended_constraint (part->disk)
+				: _get_primary_constraint (part->disk)))
+		return 1;
+
+#ifndef DISCOVER_ONLY
+	ped_exception_throw (
+		PED_EXCEPTION_ERROR,
+		PED_EXCEPTION_CANCEL,
+		_("Unable to satisfy all constraints on the partition."));
+#endif
+	return 0;
+}
+
+static int
+dvh_partition_enumerate (PedPartition* part)
+{
+	int i;
+
+	/* never change the partition numbers */
+	if (part->num != -1)
+		return 1;
+
+	_flush_stale_flags (part->disk);
+
+	if (part->type & PED_PARTITION_LOGICAL) {
+		/* Bootfile */
+		for (i = 1 + NPARTAB; i <= NPARTAB + NVDIR; i++) {
+			if (!ped_disk_get_partition (part->disk, i)) {
+				part->num = i;
+				return 1;
+			}
+		}
+		PED_ASSERT (0, return 0);
+	} else if (part->type & PED_PARTITION_EXTENDED) {
+		/* Volheader */
+		part->num = PNUM_VOLHDR + 1;
+	} else {
+		for (i = 1; i <= NPARTAB; i++) {
+			/* reserved for full volume partition */
+			if (i == PNUM_VOLUME + 1)
+				continue;
+
+			if (!ped_disk_get_partition (part->disk, i)) {
+				part->num = i;
+				return 1;
+			}
+		}
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Too many primary partitions"));
+	}
+
+	return 0;
+}
+
+static int
+dvh_get_max_primary_partition_count (const PedDisk* disk)
+{
+	return NPARTAB;
+}
+
+static int
+dvh_alloc_metadata (PedDisk* disk)
+{
+	PedPartition* part;
+	PedPartition* extended_part;
+	PedConstraint* constraint_exact;
+	PedPartitionType metadata_type;
+	PED_ASSERT(disk != NULL, return 0);
+
+	/* We don't need to "protect" the start of the disk from the volume
+	 * header.
+	 */
+	extended_part = ped_disk_extended_partition (disk);
+	if (extended_part && extended_part->geom.start == 0)
+		metadata_type = PED_PARTITION_METADATA | PED_PARTITION_LOGICAL;
+	else
+		metadata_type = PED_PARTITION_METADATA;
+
+	part = ped_partition_new (disk, metadata_type, NULL, 0, 0);
+	if (!part)
+		goto error;
+
+	constraint_exact = ped_constraint_exact (&part->geom);
+	if (!ped_disk_add_partition (disk, part, constraint_exact))
+		goto error_destroy_part;
+	ped_constraint_destroy (constraint_exact);
+	return 1;
+
+	ped_constraint_destroy (constraint_exact);
+error_destroy_part:
+	ped_partition_destroy (part);
+error:
+	return 0;
+}
+
+static PedDiskOps dvh_disk_ops = {
+	probe:			dvh_probe,
+#ifndef DISCOVER_ONLY
+	clobber:		dvh_clobber,
+#else
+	clobber:		NULL,
+#endif
+	alloc:			dvh_alloc,
+	duplicate:		dvh_duplicate,
+	free:			dvh_free,
+	read:			dvh_read,
+#ifndef DISCOVER_ONLY
+	write:			dvh_write,
+#else
+	write:			NULL,
+#endif
+
+	partition_new:		dvh_partition_new,
+	partition_duplicate:	dvh_partition_duplicate,
+	partition_destroy:	dvh_partition_destroy,
+	partition_set_system:	dvh_partition_set_system,
+	partition_set_flag:	dvh_partition_set_flag,
+	partition_get_flag:	dvh_partition_get_flag,
+	partition_is_flag_available:	dvh_partition_is_flag_available,
+	partition_set_name:	dvh_partition_set_name,
+	partition_get_name:	dvh_partition_get_name,
+	partition_align:	dvh_partition_align,
+	partition_enumerate:	dvh_partition_enumerate,
+
+	alloc_metadata:		dvh_alloc_metadata,
+	get_max_primary_partition_count:
+				dvh_get_max_primary_partition_count
+};
+
+static PedDiskType dvh_disk_type = {
+	next:		NULL,
+	name:		"dvh",
+	ops:		&dvh_disk_ops,
+	features:	PED_DISK_TYPE_PARTITION_NAME | PED_DISK_TYPE_EXTENDED
+};
+
+void
+ped_disk_dvh_init ()
+{
+	PED_ASSERT (sizeof (struct volume_header) == 512, return);
+
+	ped_disk_type_register (&dvh_disk_type);
+}
+
+void
+ped_disk_dvh_done ()
+{
+	ped_disk_type_unregister (&dvh_disk_type);
+}
diff --git a/parted-1.8.7/libparted/labels/dvh.h b/parted-1.8.7/libparted/labels/dvh.h
new file mode 100644
index 0000000..a075da8
--- /dev/null
+++ b/parted-1.8.7/libparted/labels/dvh.h
@@ -0,0 +1,179 @@
+/*
+    Copyright (C) 1985 MIPS Computer Systems, Inc.
+    Copyright (C) 2000 Silicon Graphics Computer Systems, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef _SYS_DVH_H
+#define _SYS_DVH_H
+
+/*
+ * Format for volume header information
+ *
+ * The volume header is a block located at the beginning of all disk
+ * media (sector 0).  It contains information pertaining to physical
+ * device parameters and logical partition information.
+ *
+ * The volume header is manipulated by disk formatters/verifiers, 
+ * partition builders (e.g. fx, dvhtool, and mkfs), and disk drivers.
+ *
+ * Previous versions of IRIX wrote a copy of the volume header is
+ * located at sector 0 of each track of cylinder 0.  These copies were
+ * never used, and reduced the capacity of the volume header to hold large
+ * files, so this practice was discontinued.
+ * The volume header is constrained to be less than or equal to 512
+ * bytes long.  A particular copy is assumed valid if no drive errors
+ * are detected, the magic number is correct, and the 32 bit 2's complement
+ * of the volume header is correct.  The checksum is calculated by initially
+ * zeroing vh_csum, summing the entire structure and then storing the
+ * 2's complement of the sum.  Thus a checksum to verify the volume header
+ * should be 0.
+ *
+ * The error summary table, bad sector replacement table, and boot blocks are
+ * located by searching the volume directory within the volume header.
+ *
+ * Tables are sized simply by the integral number of table records that
+ * will fit in the space indicated by the directory entry.
+ *
+ * The amount of space allocated to the volume header, replacement blocks,
+ * and other tables is user defined when the device is formatted.
+ */
+
+/*
+ * device parameters are in the volume header to determine mapping
+ * from logical block numbers to physical device addresses
+ *
+ * Linux doesn't care ...
+ */
+struct device_parameters {
+	unsigned char	dp_skew;	/* spiral addressing skew */
+	unsigned char	dp_gap1;	/* words of 0 before header */
+	unsigned char	dp_gap2;	/* words of 0 between hdr and data */
+	unsigned char	dp_spares_cyl;	/* This is for drives (such as SCSI
+		that support zone oriented sparing, where the zone is larger
+		than one track.  It gets subracteded from the cylinder size
+		( dp_trks0 * dp_sec) when doing partition size calculations */
+	unsigned short	dp_cyls;	/* number of usable cylinders (i.e.,
+		doesn't include cylinders reserved by the drive for badblocks,
+		etc.). For drives with variable geometry, this number may be
+		decreased so that:
+		dp_cyls * ((dp_heads * dp_trks0) - dp_spares_cyl) <= actualcapacity
+		This happens on SCSI drives such as the Wren IV and Toshiba 156
+		Also see dp_cylshi below */
+	unsigned short	dp_shd0;	/* starting head vol 0 */
+	unsigned short	dp_trks0;	/* number of tracks / cylinder vol 0*/
+	unsigned char	dp_ctq_depth;	/* Depth of CTQ queue */
+	unsigned char	dp_cylshi;	/* high byte of 24 bits of cylinder count */
+	unsigned short	dp_unused;	/* not used */
+	unsigned short	dp_secs;	/* number of sectors/track */
+	unsigned short	dp_secbytes;	/* length of sector in bytes */
+	unsigned short	dp_interleave;	/* sector interleave */
+	int	dp_flags;		/* controller characteristics */
+	int	dp_datarate;		/* bytes/sec for kernel stats */
+	int	dp_nretries;		/* max num retries on data error */
+	int	dp_mspw;		/* ms per word to xfer, for iostat */
+	unsigned short dp_xgap1;	/* Gap 1 for xylogics controllers */
+	unsigned short dp_xsync;    /* sync delay for xylogics controllers */
+	unsigned short dp_xrdly;    /* read delay for xylogics controllers */
+	unsigned short dp_xgap2;    /* gap 2 for xylogics controllers */
+	unsigned short dp_xrgate;   /* read gate for xylogics controllers */
+	unsigned short dp_xwcont;   /* write continuation for xylogics */
+};
+
+/*
+ * Device characterization flags
+ * (dp_flags)
+ */
+#define	DP_SECTSLIP	0x00000001	/* sector slip to spare sector */
+#define	DP_SECTFWD	0x00000002	/* forward to replacement sector */
+#define	DP_TRKFWD	0x00000004	/* forward to replacement track */
+#define	DP_MULTIVOL	0x00000008	/* multiple volumes per spindle */
+#define	DP_IGNOREERRORS	0x00000010	/* transfer data regardless of errors */
+#define DP_RESEEK	0x00000020	/* recalibrate as last resort */
+#define	DP_CTQ_EN	0x00000040	/* enable command tag queueing */
+
+/*
+ * Boot blocks, bad sector tables, and the error summary table, are located
+ * via the volume_directory.
+ */
+#define VDNAMESIZE	8
+
+struct volume_directory {
+	char	vd_name[VDNAMESIZE];	/* name */
+	int	vd_lbn;			/* logical block number */
+	int	vd_nbytes;		/* file length in bytes */
+};
+
+/*
+ * partition table describes logical device partitions
+ * (device drivers examine this to determine mapping from logical units
+ * to cylinder groups, device formatters/verifiers examine this to determine
+ * location of replacement tracks/sectors, etc)
+ *
+ * NOTE: pt_firstlbn SHOULD BE CYLINDER ALIGNED
+ */
+struct partition_table {		/* one per logical partition */
+	int	pt_nblks;		/* # of logical blks in partition */
+	int	pt_firstlbn;		/* first lbn of partition */
+	int	pt_type;		/* use of partition */
+};
+
+#define	PTYPE_VOLHDR	0		/* partition is volume header */
+#define	PTYPE_TRKREPL	1		/* partition is used for repl trks */
+#define	PTYPE_SECREPL	2		/* partition is used for repl secs */
+#define	PTYPE_RAW	3		/* partition is used for data */
+#define	PTYPE_BSD42	4		/* partition is 4.2BSD file system */
+#define	PTYPE_BSD	4		/* partition is 4.2BSD file system */
+#define	PTYPE_SYSV	5		/* partition is SysV file system */
+#define	PTYPE_VOLUME	6		/* partition is entire volume */
+#define	PTYPE_EFS	7		/* partition is sgi EFS */
+#define	PTYPE_LVOL	8		/* partition is part of a logical vol */
+#define	PTYPE_RLVOL	9		/* part of a "raw" logical vol */
+#define	PTYPE_XFS	10		/* partition is sgi XFS */
+#define	PTYPE_XFSLOG	11		/* partition is sgi XFS log */
+#define	PTYPE_XLV	12		/* partition is part of an XLV vol */
+#define	PTYPE_XVM	13		/* partition is sgi XVM */
+#define NPTYPES		16
+
+#define	VHMAGIC		0xbe5a941	/* randomly chosen value */
+#define	NPARTAB		16		/* 16 unix partitions */
+#define	NVDIR		15		/* max of 15 directory entries */
+#define BFNAMESIZE	16		/* max 16 chars in boot file name */
+
+/* Partition types for ARCS */
+#define NOT_USED        0       /* Not used 				*/
+#define FAT_SHORT       1       /* FAT file system, 12-bit FAT entries 	*/
+#define FAT_LONG        4       /* FAT file system, 16-bit FAT entries 	*/
+#define EXTENDED        5       /* extended partition 			*/
+#define HUGE            6       /* huge partition- MS/DOS 4.0 and later */
+
+/* Active flags for ARCS */
+#define BOOTABLE        0x00;
+#define NOT_BOOTABLE    0x80;
+
+struct volume_header {
+	int vh_magic;				/* identifies volume header */
+	short vh_rootpt;			/* root partition number */
+	short vh_swappt;			/* swap partition number */
+	char vh_bootfile[BFNAMESIZE];		/* name of file to boot */
+	struct device_parameters vh_dp;		/* device parameters */
+	struct volume_directory vh_vd[NVDIR];	/* other vol hdr contents */
+	struct partition_table vh_pt[NPARTAB];	/* device partition layout */
+	int vh_csum;				/* volume header checksum */
+	int vh_fill;	/* fill out to 512 bytes */
+};
+
+#endif /* _SYS_DVH_H */
diff --git a/parted-1.8.7/libparted/labels/efi_crc32.c b/parted-1.8.7/libparted/labels/efi_crc32.c
new file mode 100644
index 0000000..327fb2d
--- /dev/null
+++ b/parted-1.8.7/libparted/labels/efi_crc32.c
@@ -0,0 +1,126 @@
+/* 
+ * Dec 5, 2000 Matt Domsch <Matt_Domsch@dell.com>
+ * - Copied crc32.c from the linux/drivers/net/cipe directory.
+ * - Now pass seed as an arg
+ * - changed unsigned long to uint32_t, added #include<stdint.h>
+ * - changed len to be an unsigned long
+ * - changed crc32val to be a register
+ * - License remains unchanged!  It's still GPL-compatable!
+ */
+
+  /* ============================================================= */
+  /*  COPYRIGHT (C) 1986 Gary S. Brown.  You may use this program, or       */
+  /*  code or tables extracted from it, as desired without restriction.     */
+  /*                                                                        */
+  /*  First, the polynomial itself and its table of feedback terms.  The    */
+  /*  polynomial is                                                         */
+  /*  X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0   */
+  /*                                                                        */
+  /*  Note that we take it "backwards" and put the highest-order term in    */
+  /*  the lowest-order bit.  The X^32 term is "implied"; the LSB is the     */
+  /*  X^31 term, etc.  The X^0 term (usually shown as "+1") results in      */
+  /*  the MSB being 1.                                                      */
+  /*                                                                        */
+  /*  Note that the usual hardware shift register implementation, which     */
+  /*  is what we're using (we're merely optimizing it by doing eight-bit    */
+  /*  chunks at a time) shifts bits into the lowest-order term.  In our     */
+  /*  implementation, that means shifting towards the right.  Why do we     */
+  /*  do it this way?  Because the calculated CRC must be transmitted in    */
+  /*  order from highest-order term to lowest-order term.  UARTs transmit   */
+  /*  characters in order from LSB to MSB.  By storing the CRC this way,    */
+  /*  we hand it to the UART in the order low-byte to high-byte; the UART   */
+  /*  sends each low-bit to hight-bit; and the result is transmission bit   */
+  /*  by bit from highest- to lowest-order term without requiring any bit   */
+  /*  shuffling on our part.  Reception works similarly.                    */
+  /*                                                                        */
+  /*  The feedback terms table consists of 256, 32-bit entries.  Notes:     */
+  /*                                                                        */
+  /*      The table can be generated at runtime if desired; code to do so   */
+  /*      is shown later.  It might not be obvious, but the feedback        */
+  /*      terms simply represent the results of eight shift/xor opera-      */
+  /*      tions for all combinations of data and CRC register values.       */
+  /*                                                                        */
+  /*      The values must be right-shifted by eight bits by the "updcrc"    */
+  /*      logic; the shift must be unsigned (bring in zeroes).  On some     */
+  /*      hardware you could probably optimize the shift in assembler by    */
+  /*      using byte-swap instructions.                                     */
+  /*      polynomial $edb88320                                              */
+  /*                                                                        */
+  /*  --------------------------------------------------------------------  */
+
+#include <config.h>
+#include <stdint.h>
+
+static const uint32_t crc32_tab[] = {
+      0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L,
+      0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L,
+      0xe0d5e91eL, 0x97d2d988L, 0x09b64c2bL, 0x7eb17cbdL, 0xe7b82d07L,
+      0x90bf1d91L, 0x1db71064L, 0x6ab020f2L, 0xf3b97148L, 0x84be41deL,
+      0x1adad47dL, 0x6ddde4ebL, 0xf4d4b551L, 0x83d385c7L, 0x136c9856L,
+      0x646ba8c0L, 0xfd62f97aL, 0x8a65c9ecL, 0x14015c4fL, 0x63066cd9L,
+      0xfa0f3d63L, 0x8d080df5L, 0x3b6e20c8L, 0x4c69105eL, 0xd56041e4L,
+      0xa2677172L, 0x3c03e4d1L, 0x4b04d447L, 0xd20d85fdL, 0xa50ab56bL,
+      0x35b5a8faL, 0x42b2986cL, 0xdbbbc9d6L, 0xacbcf940L, 0x32d86ce3L,
+      0x45df5c75L, 0xdcd60dcfL, 0xabd13d59L, 0x26d930acL, 0x51de003aL,
+      0xc8d75180L, 0xbfd06116L, 0x21b4f4b5L, 0x56b3c423L, 0xcfba9599L,
+      0xb8bda50fL, 0x2802b89eL, 0x5f058808L, 0xc60cd9b2L, 0xb10be924L,
+      0x2f6f7c87L, 0x58684c11L, 0xc1611dabL, 0xb6662d3dL, 0x76dc4190L,
+      0x01db7106L, 0x98d220bcL, 0xefd5102aL, 0x71b18589L, 0x06b6b51fL,
+      0x9fbfe4a5L, 0xe8b8d433L, 0x7807c9a2L, 0x0f00f934L, 0x9609a88eL,
+      0xe10e9818L, 0x7f6a0dbbL, 0x086d3d2dL, 0x91646c97L, 0xe6635c01L,
+      0x6b6b51f4L, 0x1c6c6162L, 0x856530d8L, 0xf262004eL, 0x6c0695edL,
+      0x1b01a57bL, 0x8208f4c1L, 0xf50fc457L, 0x65b0d9c6L, 0x12b7e950L,
+      0x8bbeb8eaL, 0xfcb9887cL, 0x62dd1ddfL, 0x15da2d49L, 0x8cd37cf3L,
+      0xfbd44c65L, 0x4db26158L, 0x3ab551ceL, 0xa3bc0074L, 0xd4bb30e2L,
+      0x4adfa541L, 0x3dd895d7L, 0xa4d1c46dL, 0xd3d6f4fbL, 0x4369e96aL,
+      0x346ed9fcL, 0xad678846L, 0xda60b8d0L, 0x44042d73L, 0x33031de5L,
+      0xaa0a4c5fL, 0xdd0d7cc9L, 0x5005713cL, 0x270241aaL, 0xbe0b1010L,
+      0xc90c2086L, 0x5768b525L, 0x206f85b3L, 0xb966d409L, 0xce61e49fL,
+      0x5edef90eL, 0x29d9c998L, 0xb0d09822L, 0xc7d7a8b4L, 0x59b33d17L,
+      0x2eb40d81L, 0xb7bd5c3bL, 0xc0ba6cadL, 0xedb88320L, 0x9abfb3b6L,
+      0x03b6e20cL, 0x74b1d29aL, 0xead54739L, 0x9dd277afL, 0x04db2615L,
+      0x73dc1683L, 0xe3630b12L, 0x94643b84L, 0x0d6d6a3eL, 0x7a6a5aa8L,
+      0xe40ecf0bL, 0x9309ff9dL, 0x0a00ae27L, 0x7d079eb1L, 0xf00f9344L,
+      0x8708a3d2L, 0x1e01f268L, 0x6906c2feL, 0xf762575dL, 0x806567cbL,
+      0x196c3671L, 0x6e6b06e7L, 0xfed41b76L, 0x89d32be0L, 0x10da7a5aL,
+      0x67dd4accL, 0xf9b9df6fL, 0x8ebeeff9L, 0x17b7be43L, 0x60b08ed5L,
+      0xd6d6a3e8L, 0xa1d1937eL, 0x38d8c2c4L, 0x4fdff252L, 0xd1bb67f1L,
+      0xa6bc5767L, 0x3fb506ddL, 0x48b2364bL, 0xd80d2bdaL, 0xaf0a1b4cL,
+      0x36034af6L, 0x41047a60L, 0xdf60efc3L, 0xa867df55L, 0x316e8eefL,
+      0x4669be79L, 0xcb61b38cL, 0xbc66831aL, 0x256fd2a0L, 0x5268e236L,
+      0xcc0c7795L, 0xbb0b4703L, 0x220216b9L, 0x5505262fL, 0xc5ba3bbeL,
+      0xb2bd0b28L, 0x2bb45a92L, 0x5cb36a04L, 0xc2d7ffa7L, 0xb5d0cf31L,
+      0x2cd99e8bL, 0x5bdeae1dL, 0x9b64c2b0L, 0xec63f226L, 0x756aa39cL,
+      0x026d930aL, 0x9c0906a9L, 0xeb0e363fL, 0x72076785L, 0x05005713L,
+      0x95bf4a82L, 0xe2b87a14L, 0x7bb12baeL, 0x0cb61b38L, 0x92d28e9bL,
+      0xe5d5be0dL, 0x7cdcefb7L, 0x0bdbdf21L, 0x86d3d2d4L, 0xf1d4e242L,
+      0x68ddb3f8L, 0x1fda836eL, 0x81be16cdL, 0xf6b9265bL, 0x6fb077e1L,
+      0x18b74777L, 0x88085ae6L, 0xff0f6a70L, 0x66063bcaL, 0x11010b5cL,
+      0x8f659effL, 0xf862ae69L, 0x616bffd3L, 0x166ccf45L, 0xa00ae278L,
+      0xd70dd2eeL, 0x4e048354L, 0x3903b3c2L, 0xa7672661L, 0xd06016f7L,
+      0x4969474dL, 0x3e6e77dbL, 0xaed16a4aL, 0xd9d65adcL, 0x40df0b66L,
+      0x37d83bf0L, 0xa9bcae53L, 0xdebb9ec5L, 0x47b2cf7fL, 0x30b5ffe9L,
+      0xbdbdf21cL, 0xcabac28aL, 0x53b39330L, 0x24b4a3a6L, 0xbad03605L,
+      0xcdd70693L, 0x54de5729L, 0x23d967bfL, 0xb3667a2eL, 0xc4614ab8L,
+      0x5d681b02L, 0x2a6f2b94L, 0xb40bbe37L, 0xc30c8ea1L, 0x5a05df1bL,
+      0x2d02ef8dL
+   };
+
+/* Return a 32-bit CRC of the contents of the buffer. */
+
+uint32_t
+__efi_crc32(const void *buf, unsigned long len, uint32_t seed)
+{
+  unsigned long i;
+  register uint32_t crc32val;
+  const unsigned char *s = buf;
+
+  crc32val = seed;
+  for (i = 0;  i < len;  i ++)
+    {
+      crc32val =
+	crc32_tab[(crc32val ^ s[i]) & 0xff] ^
+	  (crc32val >> 8);
+    }
+  return crc32val;
+}
diff --git a/parted-1.8.7/libparted/labels/fdasd.c b/parted-1.8.7/libparted/labels/fdasd.c
new file mode 100644
index 0000000..198bce2
--- /dev/null
+++ b/parted-1.8.7/libparted/labels/fdasd.c
@@ -0,0 +1,1051 @@
+/*
+ * File...........: arch/s390/tools/fdasd.c
+ * Author(s)......: Volker Sameske <sameske@de.ibm.com>
+ * Bugreports.to..: <Linux390@de.ibm.com>
+ * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 2001
+ *
+ * History of changes (starts March 2001)
+ * 2001-04-11 possibility to change volume serial added
+ *            possibility to change partition type added
+ *            some changes to DS4HPCHR and DS4DSREC
+ * 2001-05-03 check for invalid partition numbers added
+ *            wrong free_space calculation bug fixed
+ * 2001-06-26 '-a' option added, it is now possible to add a single
+ *            partition in non-interactive mode
+ * 2001-06-26 long parameter support added
+ *           
+ */
+
+#include <config.h>
+#include <parted/vtoc.h>
+#include <parted/fdasd.h>
+
+#include <parted/parted.h>
+
+#include <libintl.h>
+#if ENABLE_NLS
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+static int
+getpos (fdasd_anchor_t *anc, int dsn)
+{
+	PDEBUG
+	return anc->partno[dsn];
+}
+
+static int
+getdsn (fdasd_anchor_t *anc, int pos)
+{
+	PDEBUG
+	int i;
+
+	for (i=0; i<USABLE_PARTITIONS; i++) {
+		if (anc->partno[i] == pos)
+			return i;
+	}
+
+	return -1;
+}
+
+static void
+setpos (fdasd_anchor_t *anc, int dsn, int pos)
+{
+	PDEBUG
+	anc->partno[dsn] = pos;
+}
+
+void
+fdasd_cleanup (fdasd_anchor_t *anchor) 
+{
+	PDEBUG
+	int i;
+	partition_info_t *p, *q;
+
+	if (anchor == NULL)
+		return;
+
+	if (anchor->f4 != NULL)
+		free(anchor->f4);
+
+	if (anchor->f5 != NULL)
+		free(anchor->f5);
+
+	if (anchor->f7 != NULL)
+		free(anchor->f7);
+
+	if (anchor->vlabel != NULL)
+		free(anchor->vlabel);
+
+	p = anchor->first;
+	if (p == NULL)
+		return;
+
+	for (i=1; i <= USABLE_PARTITIONS; i++) {
+		if (p == NULL)
+			return;
+		q = p->next;
+		free(p);
+		p = q;
+	}
+}
+
+static void 
+fdasd_error (fdasd_anchor_t *anc, enum fdasd_failure why, char * str) 
+{
+	PDEBUG
+	char error[2*LINE_LENGTH], *message = error;
+
+	switch (why) {
+		case unable_to_open_disk:
+			sprintf(error, _("%s open error\n%s\n"), 
+			FDASD_ERROR, str);
+			break;
+		case unable_to_seek_disk:
+			sprintf(error, _("%s seek error\n%s\n"), FDASD_ERROR, str);
+			break;
+		case unable_to_read_disk:
+			sprintf(error, _("%s read error\n%s\n"), FDASD_ERROR, str);
+			break;
+		case read_only_disk:
+			sprintf(error, _("%s write error\n%s\n"), FDASD_ERROR, str);
+			break;
+		case unable_to_ioctl:
+			sprintf(error, _("%s IOCTL error\n%s\n"), FDASD_ERROR, str);
+			break;
+		case api_version_mismatch:
+			sprintf(error, _("%s API version mismatch\n%s\n"), FDASD_ERROR,str);
+			break;     
+		case wrong_disk_type:
+			sprintf(error, _("%s Unsupported disk type\n%s\n"),
+			        FDASD_ERROR, str);
+			break; 
+		case wrong_disk_format:
+			sprintf(error, _("%s Unsupported disk format\n%s\n"),
+			        FDASD_ERROR, str);
+			break;   
+		case disk_in_use:
+			sprintf(error, _("%s Disk in use\n%s\n"), FDASD_ERROR, str);
+			break;      
+		case config_syntax_error:
+			sprintf(error, _("%s Config file syntax error\n%s\n"),
+			        FDASD_ERROR, str);
+			break;       
+		case vlabel_corrupted:
+			sprintf(error, _("%s Volume label is corrupted.\n%s\n"), 
+			        FDASD_ERROR, str);
+			break;
+		case dsname_corrupted:
+			sprintf(error, _("%s a data set name is corrupted.\n%s\n"), 
+			        FDASD_ERROR, str);
+			break;
+		case malloc_failed:
+			sprintf(error, _("%s space allocation\n%s\n"),
+			        FDASD_ERROR, str);
+			break;
+		case device_verification_failed:
+			sprintf(error, _("%s device verification failed\n" \
+			        "The specified device is not a valid DASD device\n"),
+			        FDASD_ERROR);
+			break;
+		default: 
+			sprintf(error, _("%s Fatal error\n%s\n"), FDASD_ERROR, str);
+	}
+
+	ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, message);
+}
+
+/*
+ * converts cyl-cyl-head-head-blk to blk
+ */
+static unsigned long 
+cchhb2blk (cchhb_t *p, struct fdasd_hd_geometry *geo) 
+{
+	PDEBUG
+	return (unsigned long) (p->cc * geo->heads * geo->sectors
+	                        + p->hh * geo->sectors + p->b);
+}
+
+/*
+ * initializes the anchor structure and allocates some
+ * memory for the labels
+ */
+void
+fdasd_initialize_anchor (fdasd_anchor_t * anc) 
+{
+	PDEBUG
+	int i;
+	volume_label_t *v;
+	partition_info_t *p = NULL;
+	partition_info_t *q = NULL;
+
+	anc->devno             = 0;
+	anc->dev_type          = 0;
+	anc->used_partitions   = 0;
+
+	anc->silent            = 0;
+	anc->verbose           = 0;
+	anc->big_disk          = 0;
+	anc->volid_specified   = 0;
+	anc->config_specified  = 0;
+	anc->auto_partition    = 0;
+	anc->devname_specified = 0;
+	anc->print_table       = 0;
+
+	anc->option_reuse      = 0;
+	anc->option_recreate   = 0;
+
+	anc->vlabel_changed    = 0;
+	anc->vtoc_changed      = 0;
+	anc->blksize           = 0;
+	anc->fspace_trk        = 0;
+	anc->label_pos         = 0;
+
+	for (i=0; i<USABLE_PARTITIONS; i++)
+		setpos(anc, i, -1);
+
+	bzero(anc->confdata, sizeof(config_data_t));
+
+	anc->f4 = malloc(sizeof(format4_label_t));
+	if (anc->f4 == NULL) 
+		fdasd_error(anc, malloc_failed, 
+			    "FMT4 DSCB memory allocation failed.");
+
+	anc->f5 = malloc(sizeof(format5_label_t));
+	if (anc->f5 == NULL) 
+		fdasd_error(anc, malloc_failed,
+			    "FMT5 DSCB memory allocation failed.");
+
+	anc->f7 = malloc(sizeof(format7_label_t));
+	if (anc->f7 == NULL) 
+		fdasd_error(anc, malloc_failed,
+			    "FMT7 DSCB memory allocation failed.");
+
+	bzero(anc->f4, sizeof(format4_label_t));
+	bzero(anc->f5, sizeof(format5_label_t));
+	bzero(anc->f7, sizeof(format7_label_t));
+
+	v = malloc(sizeof(volume_label_t));
+	if (v == NULL) 
+		fdasd_error(anc, malloc_failed,
+			    "Volume label memory allocation failed.");
+	bzero(v, sizeof(volume_label_t));
+	anc->vlabel = v;
+
+	for (i=1; i<=USABLE_PARTITIONS; i++) {
+        p = malloc(sizeof(partition_info_t));
+		if (p == NULL) 
+			fdasd_error(anc, malloc_failed,
+				   "Partition info memory allocation failed.");
+		p->used       = 0x00;
+		p->len_trk    = 0;
+		p->start_trk  = 0;
+		p->fspace_trk = 0;
+		p->type       = 0;
+
+		/* add p to double pointered list */
+		if (i == 1) {
+	        anc->first = p;
+			p->prev = NULL;
+		} else if (i == USABLE_PARTITIONS) {
+	        anc->last = p;
+	        p->next = NULL;
+			p->prev = q;
+			q->next = p;
+		} else {
+	        p->prev = q;
+	        q->next = p;
+		}
+
+		p->f1 = malloc(sizeof(format1_label_t));
+		if (p->f1 == NULL) 
+			fdasd_error(anc, malloc_failed,
+			    "FMT1 DSCB memory allocation failed.");
+		bzero(p->f1, sizeof(format1_label_t));
+		
+		q = p;
+	}
+}
+
+/*
+ * writes all changes to dasd
+ */
+static void
+fdasd_write_vtoc_labels (fdasd_anchor_t * anc, int fd)
+{ 
+	PDEBUG
+	partition_info_t *p;
+	unsigned long b;
+	char dsno[6], s1[7], s2[45], *c1, *c2, *ch;
+	int i = 0, k = 0;
+    
+	b = (cchhb2blk (&anc->vlabel->vtoc, &anc->geo) - 1) * anc->blksize;
+	if (b <= 0)
+		fdasd_error (anc, vlabel_corrupted, "");
+
+	/* write FMT4 DSCB */
+	vtoc_write_label (fd, b, NULL, anc->f4, NULL, NULL);
+
+	/* write FMT5 DSCB */
+	b += anc->blksize;
+	vtoc_write_label (fd, b, NULL, NULL, anc->f5, NULL);
+
+	/* write FMT7 DSCB */
+	if (anc->big_disk) {
+		b += anc->blksize;
+		vtoc_write_label (fd, b, NULL, NULL, NULL, anc->f7);
+	}
+
+	/* loop over all FMT1 DSCBs */
+	p = anc->first;
+	for (i = 0; i < USABLE_PARTITIONS; i++) {
+		b += anc->blksize;
+
+		if (p->used != 0x01) {
+			vtoc_write_label (fd, b, p->f1, NULL, NULL, NULL);
+			continue;
+		}
+  
+		strncpy (p->f1->DS1DSSN, anc->vlabel->volid, 6);
+
+		ch = p->f1->DS1DSNAM;
+		vtoc_ebcdic_dec (ch, ch, 44);
+		c1 = ch + 7;
+  
+		if (getdsn (anc, i) > -1) {
+			/* re-use the existing data set name */
+			c2 = strchr (c1, '.');
+			if (c2 != NULL)
+				strncpy (s2, c2, 31);
+			else
+				fdasd_error (anc, dsname_corrupted, "");
+
+			strncpy (s1, anc->vlabel->volid, 6);
+			vtoc_ebcdic_dec (s1, s1, 6);
+			s1[6] = ' ';
+			strncpy (c1, s1, 7);
+			c1 = strchr (ch, ' ');
+			strncpy (c1, s2, 31);
+		} else {
+			/* create a new data set name */
+			while (getpos (anc, k) > -1)
+				k++;
+
+			setpos (anc, k, i);
+
+			strncpy (s2, ch, 44);
+			s2[44] = 0;
+			vtoc_ebcdic_dec (s2, s2, 44);
+
+			strncpy (ch, "LINUX.V               " "                      ", 44);
+
+			strncpy (s1, anc->vlabel->volid, 6);
+			vtoc_ebcdic_dec (s1, s1, 6);
+			strncpy (c1, s1, 6);
+
+			c1 = strchr (ch, ' ');
+			strncpy (c1, ".PART", 5);
+			c1 += 5;
+
+			sprintf (dsno, "%04d.", k + 1);
+			strncpy (c1, dsno, 5);
+
+			c1 += 5;
+			switch(p->type) {
+				case PARTITION_LINUX_LVM:
+					strncpy(c1, PART_TYPE_LVM, 6);
+					break;
+				case PARTITION_LINUX_RAID:
+					strncpy(c1, PART_TYPE_RAID, 6);
+					break;
+				case PARTITION_LINUX:
+					strncpy(c1, PART_TYPE_NATIVE, 6);
+					break;
+				case PARTITION_LINUX_SWAP:
+					strncpy(c1, PART_TYPE_SWAP, 6);
+					break;
+				default:
+					strncpy(c1, PART_TYPE_NATIVE, 6);
+					break;
+			}
+		}
+
+		vtoc_ebcdic_enc (ch, ch, 44);
+
+		vtoc_write_label (fd, b, p->f1, NULL, NULL, NULL);
+		p = p->next;
+	}
+}
+
+/*
+ * writes all changes to dasd
+ */
+int
+fdasd_write_labels (fdasd_anchor_t * anc, int fd)
+{
+	PDEBUG
+	if (anc->vlabel_changed)
+		vtoc_write_volume_label (fd, anc->label_pos, anc->vlabel);
+
+	if (anc->vtoc_changed)
+		fdasd_write_vtoc_labels (anc, fd);
+
+	return 1;
+}
+
+/*
+ * writes all changes to dasd
+ */
+int
+fdasd_prepare_labels (fdasd_anchor_t *anc, int fd) 
+{
+	PDEBUG
+	partition_info_t *p = anc->first;
+	char dsno[6], s1[7], s2[45], *c1, *c2, *ch;
+	int i = 0, k = 0;
+
+	/* loop over all FMT1 DSCBs */
+	p = anc->first;
+	for (i = 0; i < USABLE_PARTITIONS; i++) {
+		strncpy (p->f1->DS1DSSN, anc->vlabel->volid, 6);
+
+		ch = p->f1->DS1DSNAM;
+		vtoc_ebcdic_dec (ch, ch, 44);
+		c1 = ch + 7;
+  
+		if (getdsn (anc, i) > -1) {
+			/* re-use the existing data set name */
+			c2 = strchr (c1, '.');
+			if (c2 != NULL)
+				strncpy (s2, c2, 31);
+			else
+				fdasd_error (anc, dsname_corrupted, "");
+
+			strncpy (s1, anc->vlabel->volid, 6);
+			vtoc_ebcdic_dec (s1, s1, 6);
+			s1[6] = ' ';
+			strncpy (c1, s1, 7);
+			c1 = strchr (ch, ' ');
+			strncpy (c1, s2, 31);
+		} else {
+			/* create a new data set name */
+			while (getpos (anc, k) > -1)
+				k++;
+
+			setpos (anc, k, i);
+
+			strncpy (s2, ch, 44);
+			s2[44] = 0;
+			vtoc_ebcdic_dec (s2, s2, 44);
+
+			strncpy (ch, "LINUX.V               " "                      ", 44);
+
+			strncpy (s1, anc->vlabel->volid, 6);
+			vtoc_ebcdic_dec (s1, s1, 6);
+			strncpy (c1, s1, 6);
+
+			c1 = strchr (ch, ' ');
+			strncpy (c1, ".PART", 5);
+			c1 += 5;
+
+			sprintf (dsno, "%04d.", k + 1);
+			strncpy (c1, dsno, 5);
+
+			c1 += 5;
+			switch(p->type) {
+				case PARTITION_LINUX_LVM:
+					strncpy(c1, PART_TYPE_LVM, 6);
+					break;
+				case PARTITION_LINUX_RAID:
+					strncpy(c1, PART_TYPE_RAID, 6);
+					break;
+				case PARTITION_LINUX:
+					strncpy(c1, PART_TYPE_NATIVE, 6);
+					break;
+				case PARTITION_LINUX_SWAP:
+					strncpy(c1, PART_TYPE_SWAP, 6);
+					break;
+				default:
+					strncpy(c1, PART_TYPE_NATIVE, 6);
+					break;
+			}
+		}
+
+		vtoc_ebcdic_enc (ch, ch, 44);
+		p = p->next;
+	}
+
+	return 1;
+}
+
+void
+fdasd_recreate_vtoc (fdasd_anchor_t *anc)
+{
+	PDEBUG
+	partition_info_t *p = anc->first;
+	int i;
+
+	vtoc_init_format4_label(anc->f4,
+							USABLE_PARTITIONS,
+							anc->geo.cylinders,
+							anc->geo.heads,
+							anc->geo.sectors,
+							anc->blksize,
+							anc->dev_type);
+
+	vtoc_init_format5_label(anc->f5);
+	vtoc_init_format7_label(anc->f7);
+	vtoc_set_freespace(anc->f4, anc->f5, anc->f7, 
+					   '+', anc->verbose,
+					   FIRST_USABLE_TRK,
+					   anc->geo.cylinders * anc->geo.heads - 1,
+					   anc->geo.cylinders, anc->geo.heads);
+
+	for (i = 0; i < USABLE_PARTITIONS; i++) {
+		bzero(p->f1, sizeof(format1_label_t));
+		p->used       = 0x00;
+		p->start_trk  = 0;
+		p->end_trk    = 0;
+		p->len_trk    = 0;
+		p->fspace_trk = 0;
+		p->type       = 0;
+		p = p->next;
+	}
+
+	anc->used_partitions = 0;
+	anc->fspace_trk = anc->geo.cylinders * anc->geo.heads - FIRST_USABLE_TRK;
+
+	for (i=0; i<USABLE_PARTITIONS; i++)
+		setpos(anc, i, -1);
+
+	anc->vtoc_changed++;
+}
+
+/*
+ * sets some important partition data
+ * (like used, start_trk, end_trk, len_trk)
+ * by calculating these values with the
+ * information provided in the labels
+ */
+static void
+fdasd_update_partition_info (fdasd_anchor_t *anc) 
+{
+	PDEBUG
+	partition_info_t *q = NULL, *p = anc->first;
+	unsigned int h = anc->geo.heads;
+	unsigned long max = anc->geo.cylinders * h - 1;
+	int i;
+	char *ch;
+
+	anc->used_partitions = anc->geo.sectors - 2 - anc->f4->DS4DSREC;
+
+	for (i = 1; i <= USABLE_PARTITIONS; i++) {
+		if (p->f1->DS1FMTID != 0xf1) {
+			if (i == 1)
+				/* there is no partition at all */
+				anc->fspace_trk = max - FIRST_USABLE_TRK + 1;
+			else
+				/* previous partition was the last one */
+				q->fspace_trk = max - q->end_trk;
+			break;
+		}
+
+		/* this is a valid format 1 label */
+		p->used = 0x01;
+		p->start_trk = p->f1->DS1EXT1.llimit.cc * h + p->f1->DS1EXT1.llimit.hh;
+		p->end_trk   = p->f1->DS1EXT1.ulimit.cc * h + p->f1->DS1EXT1.ulimit.hh;
+		p->len_trk   = p->end_trk - p->start_trk + 1;
+
+		if (i == 1) {
+			/* first partition, there is at least one */
+			anc->fspace_trk = p->start_trk - FIRST_USABLE_TRK;
+		} else {
+			if (i == USABLE_PARTITIONS)
+				/* last possible partition */
+				p->fspace_trk = max - p->end_trk;
+
+			/* set free space values of previous partition */
+			q->fspace_trk = p->start_trk - q->end_trk - 1;
+		}
+
+		ch = p->f1->DS1DSNAM;
+		vtoc_ebcdic_dec (ch, ch, 44);
+		if (strstr(ch, PART_TYPE_LVM))
+			p->type = PARTITION_LINUX_LVM;
+		else if (strstr(ch, PART_TYPE_RAID))
+			p->type = PARTITION_LINUX_RAID;
+		else if (strstr(ch, PART_TYPE_NATIVE))
+			p->type = PARTITION_LINUX;
+		else if (strstr(ch, PART_TYPE_SWAP))
+			p->type = PARTITION_LINUX_SWAP;
+		else
+			p->type = PARTITION_LINUX;
+		vtoc_ebcdic_enc (ch, ch, 44);
+
+		q = p;
+		p = p->next;
+	}
+}
+
+/*
+ * reorganizes all FMT1s, after that all used FMT1s should be right in 
+ * front of all unused FMT1s
+ */
+static void
+fdasd_reorganize_FMT1s (fdasd_anchor_t *anc) 
+{
+	PDEBUG
+	int i, j;
+	format1_label_t *ltmp;
+	partition_info_t *ptmp;
+
+	for (i=1; i<=USABLE_PARTITIONS - 1; i++) {
+		ptmp = anc->first;
+
+		for (j=1; j<=USABLE_PARTITIONS - i; j++) {
+			if (ptmp->f1->DS1FMTID < ptmp->next->f1->DS1FMTID) {
+				ltmp = ptmp->f1;
+				ptmp->f1 = ptmp->next->f1;
+				ptmp->next->f1 = ltmp;
+			}
+
+			ptmp=ptmp->next;
+		}
+	}
+}
+
+static void
+fdasd_process_valid_vtoc (fdasd_anchor_t * anc, unsigned long b, int fd)
+{
+	PDEBUG
+	int f5_counter = 0, f7_counter = 0, f1_counter = 0, oldfmt = 0;
+	int i, n, f1size = sizeof (format1_label_t);
+	partition_info_t *p = anc->first;
+	format1_label_t q;
+	char s[5], *ch;
+
+	b += anc->blksize;
+
+	for (i = 1; i <= anc->geo.sectors; i++) {
+		bzero (&q, f1size);
+		vtoc_read_label (fd, b, &q, NULL, NULL, NULL);
+
+		switch (q.DS1FMTID) {
+			case 0xf1:
+				if (p == NULL)
+					break;
+				memcpy (p->f1, &q, f1size);
+
+				n = -1;
+				vtoc_ebcdic_dec (p->f1->DS1DSNAM, p->f1->DS1DSNAM, 44);
+				ch = strstr (p->f1->DS1DSNAM, "PART");
+				if (ch != NULL) {
+					strncpy (s, ch + 4, 4);
+					s[4] = '\0';
+					n = atoi (s) - 1;
+				}
+
+				vtoc_ebcdic_enc (p->f1->DS1DSNAM, p->f1->DS1DSNAM, 44);
+
+				/* this dasd has data set names 0000-0002
+				but we use now 0001-0003 */
+				if (n == -1)
+					oldfmt++;
+
+				if (((oldfmt == 0) && (n < 0)) || (n >= USABLE_PARTITIONS)) {
+					/* no op */
+				} else {
+					if (oldfmt) {
+						/* correct +1 */
+						setpos (anc, n + 1, f1_counter);
+					} else {
+						setpos (anc, n, f1_counter);
+					}
+				}
+
+				p = p->next;
+				f1_counter++;
+				break;
+			case 0xf5:
+				memcpy (anc->f5, &q, f1size);
+				f5_counter++;
+				break;
+			case 0xf7:
+				if (f7_counter == 0)
+					memcpy (anc->f7, &q, f1size);
+				f7_counter++;
+				break;
+		}
+
+		b += anc->blksize;
+	}
+
+	if (oldfmt > 0) {
+		/* this is the old format PART0000 - PART0002 */
+		anc->vtoc_changed++;
+	}
+
+	if ((f5_counter == 0) || (anc->big_disk))
+		vtoc_init_format5_label (anc->f5);
+
+	if (f7_counter == 0)
+		vtoc_init_format7_label (anc->f7);
+
+	fdasd_reorganize_FMT1s (anc);
+	fdasd_update_partition_info (anc);
+}
+
+static int
+fdasd_valid_vtoc_pointer(fdasd_anchor_t *anc, unsigned long b, int fd)
+{
+	PDEBUG
+	char str[LINE_LENGTH];
+
+	/* VOL1 label contains valid VTOC pointer */ 
+	vtoc_read_label (fd, b, NULL, anc->f4, NULL, NULL);
+
+	if (anc->f4->DS4IDFMT != 0xf4) {
+		if (strncmp(anc->vlabel->volkey,vtoc_ebcdic_enc("LNX1",str,4),4) == 0)
+			return 0;
+		fdasd_error(anc, wrong_disk_format, "Invalid VTOC");
+	} else {
+		fdasd_process_valid_vtoc (anc, b, fd);
+	}
+
+	return 0;
+}
+
+/*
+ * check the dasd for a volume label
+ */
+int 
+fdasd_check_volume (fdasd_anchor_t *anc, int fd) 
+{
+	PDEBUG
+	volume_label_t *v = anc->vlabel;
+	unsigned long b = -1;
+	char str[LINE_LENGTH];
+
+	vtoc_read_volume_label (fd, anc->label_pos, v);
+
+	if (strncmp(v->vollbl, vtoc_ebcdic_enc ("VOL1", str, 4), 4) == 0) {
+		/* found VOL1 volume label */
+		b = (cchhb2blk (&v->vtoc, &anc->geo) - 1) * anc->blksize;
+
+		if (b > 0) {
+			int rc;
+			rc = fdasd_valid_vtoc_pointer (anc, b, fd);
+
+			if (rc < 0)
+				return 1;
+			else
+				return 0;
+		} else {
+			return 1;
+		}
+	} else if (strncmp (v->volkey, vtoc_ebcdic_enc ("LNX1", str, 4), 4) == 0) {
+		return 0;
+	}
+
+	return 1;
+}
+
+/*
+ * checks the current API version with the API version of the dasd driver
+ */
+void
+fdasd_check_api_version (fdasd_anchor_t *anc, int f)
+{
+	PDEBUG
+	int api;
+	char s[LINE_LENGTH];
+ 
+	if (ioctl(f, DASDAPIVER, &api) != 0)
+		fdasd_error(anc, unable_to_ioctl, "Could not retrieve API version.");
+ 
+	if (api != DASD_MIN_API_VERSION) {
+		sprintf(s, "The current API version '%d' doesn't " \
+				"match dasd driver API version " \
+				"'%d'!", api, DASD_MIN_API_VERSION);
+		fdasd_error(anc, api_version_mismatch, s);
+	}
+}                                      
+
+/*
+ * reads dasd geometry data
+ */
+void 
+fdasd_get_geometry (fdasd_anchor_t *anc, int f) 
+{
+	PDEBUG
+	int blksize = 0;
+	dasd_information_t dasd_info;
+	char s[LINE_LENGTH];
+
+	if (ioctl(f, HDIO_GETGEO, &anc->geo) != 0) 
+		fdasd_error(anc, unable_to_ioctl,
+					"Could not retrieve disk geometry information.");
+
+	if (ioctl(f, BLKSSZGET, &blksize) != 0)
+		fdasd_error(anc, unable_to_ioctl,
+					"Could not retrieve blocksize information.");
+
+	/* get disk type */
+	if (ioctl(f, BIODASDINFO, &dasd_info) != 0) 
+		fdasd_error(anc, unable_to_ioctl, 
+					"Could not retrieve disk information.");
+
+	if (strncmp(dasd_info.type, "ECKD", 4) != 0) {
+		sprintf(s, "This is not an ECKD disk! This disk type " \
+				"is not supported!");
+		fdasd_error(anc,wrong_disk_type, s);
+	}
+
+	anc->dev_type   = dasd_info.dev_type;
+	anc->blksize    = blksize;
+	anc->label_pos  = dasd_info.label_block * blksize;
+	anc->devno      = dasd_info.devno;
+	anc->fspace_trk = anc->geo.cylinders * anc->geo.heads - FIRST_USABLE_TRK;
+}
+
+/*
+ * returns unused partition info pointer if there
+ * is a free partition, otherwise NULL
+ */
+static partition_info_t * 
+fdasd_get_empty_f1_label (fdasd_anchor_t * anc) 
+{
+	PDEBUG
+	if (anc->used_partitions < USABLE_PARTITIONS)	  
+		return anc->last;	      
+	else
+		return NULL;
+}
+
+/*
+ * asks for and sets some important partition data
+ */
+static int 
+fdasd_get_partition_data (fdasd_anchor_t *anc, extent_t *part_extent,
+                          partition_info_t *p, unsigned int *start_ptr,
+                          unsigned int *stop_ptr) 
+{
+	PDEBUG
+	unsigned int limit, cc, hh;
+	cchh_t llimit, ulimit;
+	partition_info_t *q;
+	u_int8_t b1, b2;
+	u_int16_t c, h;
+	unsigned int start = *start_ptr, stop = *stop_ptr;
+	int i;
+	char *ch;
+
+	if (anc->f4->DS4DEVCT.DS4DEVFG & ALTERNATE_CYLINDERS_USED)
+		c = anc->f4->DS4DEVCT.DS4DSCYL - (u_int16_t) anc->f4->DS4DEVAC;
+	else
+		c = anc->f4->DS4DEVCT.DS4DSCYL;
+
+	h = anc->f4->DS4DEVCT.DS4DSTRK;
+	limit = (h * c - 1);
+
+	/* check start value from user */
+	q = anc->first;
+	for (i = 0; i < USABLE_PARTITIONS; i++) {
+		if ( q->next == NULL )
+			break;
+
+		if (start >= q->start_trk && start <= q->end_trk) {
+			/* start is within another partition */
+			start = q->end_trk + 1;
+
+			if (start > limit) {
+				start = FIRST_USABLE_TRK;
+				q = anc->first;
+			}
+		}
+
+		if (start < q->start_trk) {
+			limit = q->start_trk - 1;
+			break;
+		}
+
+		q = q->next;
+	}
+
+	if (start == limit)
+		stop = start;
+
+	/* update partition info */
+	p->len_trk    = stop - start + 1;
+	p->start_trk  = start;
+	p->end_trk    = stop;
+
+	cc = start / anc->geo.heads;
+	hh = start - (cc * anc->geo.heads);
+	vtoc_set_cchh(&llimit, cc, hh);
+
+	/* check for cylinder boundary */
+	if (hh == 0)  
+		b1 = 0x81;
+	else
+		b1 = 0x01;
+
+	cc = stop / anc->geo.heads;
+	hh = stop - cc * anc->geo.heads;
+	vtoc_set_cchh(&ulimit, cc, hh);
+
+	/* it is always the 1st extent */
+	b2 = 0x00;
+
+	vtoc_set_extent(part_extent, b1, b2, &llimit, &ulimit);
+
+	*start_ptr = start;
+	*stop_ptr = stop;
+
+	ch = p->f1->DS1DSNAM;
+	vtoc_ebcdic_dec (ch, ch, 44);
+
+	if (strstr(ch, PART_TYPE_LVM))
+		p->type = PARTITION_LINUX_LVM;
+	else if (strstr(ch, PART_TYPE_RAID))
+		p->type = PARTITION_LINUX_RAID;
+	else if (strstr(ch, PART_TYPE_NATIVE))
+		p->type = PARTITION_LINUX;
+	else if (strstr(ch, PART_TYPE_SWAP))
+		p->type = PARTITION_LINUX_SWAP;
+	else
+		p->type = PARTITION_LINUX;
+
+	vtoc_ebcdic_enc (ch, ch, 44);
+
+	return 0;
+}
+
+static void
+fdasd_enqueue_new_partition (fdasd_anchor_t *anc) 
+{
+	PDEBUG
+	partition_info_t *q = anc->first, *p = anc->last;
+	int i, k=0;
+
+	for (i=1; i<USABLE_PARTITIONS; i++) {
+		if ((q->end_trk == 0) || (p->start_trk < q->start_trk)) {
+			break;
+		} else { 
+			q = q->next;
+			k++;
+		}
+	}
+
+	if (anc->first == q)
+		anc->first = p;
+	
+	if (p != q) {
+		anc->last->prev->next = NULL;
+		anc->last = anc->last->prev;
+
+		p->next = q;
+		p->prev = q->prev;
+		q->prev = p;
+		
+		if (p->prev != NULL)
+			p->prev->next = p;
+	}
+
+	p->used = 0x01;
+	p->type = PARTITION_LINUX;
+
+	for (i=0; i<USABLE_PARTITIONS; i++) {
+		int j = getpos(anc, i);
+		if (j >= k)
+			setpos(anc, i, j + 1);
+	}
+
+	/* update free-space counters */
+	if (anc->first == p) {
+		/* partition is the first used partition */
+		if (p->start_trk == FIRST_USABLE_TRK) {
+			/* partition starts right behind VTOC */
+			p->fspace_trk = anc->fspace_trk - p->len_trk;
+			anc->fspace_trk = 0;
+		} else {
+			/* there is some space between VTOC and partition */
+			p->fspace_trk = anc->fspace_trk - p->len_trk - p->start_trk
+							+ FIRST_USABLE_TRK;
+			anc->fspace_trk = p->start_trk - FIRST_USABLE_TRK;
+		}
+	} else {
+		/* there are partitons in front of the new one */
+		if (p->start_trk == p->prev->end_trk + 1) {
+			/* new partition is right behind the previous one */
+			p->fspace_trk = p->prev->fspace_trk - p->len_trk;
+			p->prev->fspace_trk = 0;
+		} else {
+			/* there is some space between new and prev. part. */
+			p->fspace_trk = p->prev->fspace_trk - p->len_trk
+							- p->start_trk + p->prev->end_trk + 1;
+			p->prev->fspace_trk = p->start_trk - p->prev->end_trk - 1;
+		}
+	}
+}
+
+/*
+ * adds a new partition to the 'partition table'
+ */
+partition_info_t *
+fdasd_add_partition (fdasd_anchor_t *anc, unsigned int start,
+                     unsigned int stop) 
+{
+	PDEBUG
+	cchhb_t hf1;
+	partition_info_t *p;
+	extent_t ext;
+	int i;
+
+	PDEBUG;
+
+	if ((p = fdasd_get_empty_f1_label(anc)) == NULL) {
+		PDEBUG;
+		return 0;
+	}
+
+	PDEBUG;
+	if (fdasd_get_partition_data(anc, &ext, p, &start, &stop) != 0)
+		return 0;
+
+	PDEBUG;
+	vtoc_init_format1_label(anc->vlabel->volid, anc->blksize, &ext, p->f1);
+
+	PDEBUG;
+	fdasd_enqueue_new_partition(anc);
+	
+	PDEBUG;
+	anc->used_partitions += 1;
+
+	i = anc->used_partitions + 2;
+	if (anc->big_disk)
+		i++;
+	PDEBUG;
+
+	vtoc_set_cchhb(&hf1, VTOC_START_CC, VTOC_START_HH, i);
+
+	vtoc_update_format4_label(anc->f4, &hf1, anc->f4->DS4DSREC - 1);
+
+	PDEBUG;
+
+	start = ext.llimit.cc * anc->geo.heads + ext.llimit.hh;
+	stop  = ext.ulimit.cc * anc->geo.heads + ext.ulimit.hh;
+
+	PDEBUG;
+	vtoc_set_freespace(anc->f4, anc->f5, anc->f7, '-', anc->verbose,
+					   start, stop, anc->geo.cylinders, anc->geo.heads);
+
+	anc->vtoc_changed++;
+
+	PDEBUG;
+	return p;
+}
+
+/* vim:set tabstop=4 shiftwidth=4 softtabstop=4: */
diff --git a/parted-1.8.7/libparted/labels/gpt.c b/parted-1.8.7/libparted/labels/gpt.c
new file mode 100644
index 0000000..86c31c7
--- /dev/null
+++ b/parted-1.8.7/libparted/labels/gpt.c
@@ -0,0 +1,1504 @@
+/*
+    libparted - a library for manipulating disk partitions
+
+    original version by Matt Domsch <Matt_Domsch@dell.com>
+    Disclaimed into the Public Domain
+
+    Portions Copyright (C) 2001, 2002, 2003, 2005, 2006, 2007
+        Free Software Foundation, Inc.
+
+    EFI GUID Partition Table handling
+    Per Intel EFI Specification v1.02
+    http://developer.intel.com/technology/efi/efi.htm
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+#include <parted/endian.h>
+#include <parted/crc32.h>
+#include <inttypes.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/ioctl.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <uuid/uuid.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) gettext (String)
+#else
+#  define _(String) (String)
+#endif				/* ENABLE_NLS */
+
+#define EFI_PMBR_OSTYPE_EFI 0xEE
+#define MSDOS_MBR_SIGNATURE 0xaa55
+
+#define GPT_HEADER_SIGNATURE 0x5452415020494645LL
+
+/* NOTE: the document that describes revision 1.00 is labelled "version 1.02",
+ * so some implementors got confused...
+ */
+#define GPT_HEADER_REVISION_V1_02 0x00010200
+#define GPT_HEADER_REVISION_V1_00 0x00010000
+#define GPT_HEADER_REVISION_V0_99 0x00009900
+
+typedef uint16_t efi_char16_t;	/* UNICODE character */
+typedef struct _GuidPartitionTableHeader_t GuidPartitionTableHeader_t;
+typedef struct _GuidPartitionEntryAttributes_t GuidPartitionEntryAttributes_t;
+typedef struct _GuidPartitionEntry_t GuidPartitionEntry_t;
+typedef struct _PartitionRecord_t PartitionRecord_t;
+typedef struct _LegacyMBR_t LegacyMBR_t;
+typedef struct _GPTDiskData GPTDiskData;
+typedef struct {
+        uint32_t time_low;
+        uint16_t time_mid;
+        uint16_t time_hi_and_version;
+        uint8_t  clock_seq_hi_and_reserved;
+        uint8_t  clock_seq_low;
+        uint8_t  node[6];
+} /* __attribute__ ((packed)) */ efi_guid_t;
+/* commented out "__attribute__ ((packed))" to work around gcc bug (fixed
+ * in gcc3.1): __attribute__ ((packed)) breaks addressing on initialized
+ * data.  It turns out we don't need it in this case, so it doesn't break
+ * anything :)
+ */
+
+#define UNUSED_ENTRY_GUID    \
+    ((efi_guid_t) { 0x00000000, 0x0000, 0x0000, 0x00, 0x00, \
+    		    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }})
+#define PARTITION_SYSTEM_GUID \
+    ((efi_guid_t) { PED_CPU_TO_LE32 (0xC12A7328), PED_CPU_TO_LE16 (0xF81F), \
+    		    PED_CPU_TO_LE16 (0x11d2), 0xBA, 0x4B, \
+		    { 0x00, 0xA0, 0xC9, 0x3E, 0xC9, 0x3B }})
+#define LEGACY_MBR_PARTITION_GUID \
+    ((efi_guid_t) { PED_CPU_TO_LE32 (0x024DEE41), PED_CPU_TO_LE16 (0x33E7), \
+		    PED_CPU_TO_LE16 (0x11d3, 0x9D, 0x69, \
+		    { 0x00, 0x08, 0xC7, 0x81, 0xF3, 0x9F }})
+#define PARTITION_MSFT_RESERVED_GUID \
+    ((efi_guid_t) { PED_CPU_TO_LE32 (0xE3C9E316), PED_CPU_TO_LE16 (0x0B5C), \
+    		    PED_CPU_TO_LE16 (0x4DB8), 0x81, 0x7D, \
+		    { 0xF9, 0x2D, 0xF0, 0x02, 0x15, 0xAE }})
+#define PARTITION_BASIC_DATA_GUID \
+    ((efi_guid_t) { PED_CPU_TO_LE32 (0xEBD0A0A2), PED_CPU_TO_LE16 (0xB9E5), \
+    		    PED_CPU_TO_LE16 (0x4433), 0x87, 0xC0, \
+		    { 0x68, 0xB6, 0xB7, 0x26, 0x99, 0xC7 }})
+#define PARTITION_RAID_GUID \
+    ((efi_guid_t) { PED_CPU_TO_LE32 (0xa19d880f), PED_CPU_TO_LE16 (0x05fc), \
+    		    PED_CPU_TO_LE16 (0x4d3b), 0xa0, 0x06, \
+		    { 0x74, 0x3f, 0x0f, 0x84, 0x91, 0x1e }})
+#define PARTITION_SWAP_GUID \
+    ((efi_guid_t) { PED_CPU_TO_LE32 (0x0657fd6d), PED_CPU_TO_LE16 (0xa4ab), \
+    		    PED_CPU_TO_LE16 (0x43c4), 0x84, 0xe5, \
+		    { 0x09, 0x33, 0xc8, 0x4b, 0x4f, 0x4f }})
+#define PARTITION_LVM_GUID \
+    ((efi_guid_t) { PED_CPU_TO_LE32 (0xe6d6d379), PED_CPU_TO_LE16 (0xf507), \
+    		    PED_CPU_TO_LE16 (0x44c2), 0xa2, 0x3c, \
+		    { 0x23, 0x8f, 0x2a, 0x3d, 0xf9, 0x28 }})
+#define PARTITION_RESERVED_GUID \
+    ((efi_guid_t) { PED_CPU_TO_LE32 (0x8da63339), PED_CPU_TO_LE16 (0x0007), \
+    		    PED_CPU_TO_LE16 (0x60c0), 0xc4, 0x36, \
+		    { 0x08, 0x3a, 0xc8, 0x23, 0x09, 0x08 }})
+#define PARTITION_HPSERVICE_GUID \
+    ((efi_guid_t) { PED_CPU_TO_LE32 (0xe2a1e728), PED_CPU_TO_LE16 (0x32e3), \
+		    PED_CPU_TO_LE16 (0x11d6), 0xa6, 0x82, \
+		    { 0x7b, 0x03, 0xa0, 0x00, 0x00, 0x00 }})
+#define PARTITION_APPLE_HFS_GUID \
+    ((efi_guid_t) { PED_CPU_TO_LE32 (0x48465300), PED_CPU_TO_LE16 (0x0000), \
+		    PED_CPU_TO_LE16 (0x11AA), 0xaa, 0x11, \
+		    { 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC }})
+
+struct __attribute__ ((packed)) _GuidPartitionTableHeader_t {
+	uint64_t Signature;
+	uint32_t Revision;
+	uint32_t HeaderSize;
+	uint32_t HeaderCRC32;
+	uint32_t Reserved1;
+	uint64_t MyLBA;
+	uint64_t AlternateLBA;
+	uint64_t FirstUsableLBA;
+	uint64_t LastUsableLBA;
+	efi_guid_t DiskGUID;
+	uint64_t PartitionEntryLBA;
+	uint32_t NumberOfPartitionEntries;
+	uint32_t SizeOfPartitionEntry;
+	uint32_t PartitionEntryArrayCRC32;
+	uint8_t* Reserved2;
+};
+
+struct __attribute__ ((packed)) _GuidPartitionEntryAttributes_t {
+#ifdef __GNUC__ /* XXX narrow this down to !TinyCC */
+	uint64_t RequiredToFunction:1;
+	uint64_t Reserved:47;
+        uint64_t GuidSpecific:16;
+#else
+#       warning "Using crippled partition entry type"
+	uint32_t RequiredToFunction:1;
+	uint32_t Reserved:32;
+	uint32_t LOST:5;
+        uint32_t GuidSpecific:16;
+#endif
+};
+
+struct __attribute__ ((packed)) _GuidPartitionEntry_t {
+	efi_guid_t PartitionTypeGuid;
+	efi_guid_t UniquePartitionGuid;
+	uint64_t StartingLBA;
+	uint64_t EndingLBA;
+	GuidPartitionEntryAttributes_t Attributes;
+	efi_char16_t PartitionName[72 / sizeof(efi_char16_t)];
+};
+
+#define GPT_PMBR_LBA 0
+#define GPT_PMBR_SECTORS 1
+#define GPT_PRIMARY_HEADER_LBA 1
+#define GPT_HEADER_SECTORS 1
+#define GPT_PRIMARY_PART_TABLE_LBA 2 
+
+/* 
+   These values are only defaults.  The actual on-disk structures
+   may define different sizes, so use those unless creating a new GPT disk!
+*/
+
+#define GPT_DEFAULT_PARTITION_ENTRY_ARRAY_SIZE 16384
+
+/* Number of actual partition entries should be calculated as: */
+#define GPT_DEFAULT_PARTITION_ENTRIES \
+        (GPT_DEFAULT_PARTITION_ENTRY_ARRAY_SIZE / \
+         sizeof(GuidPartitionEntry_t))
+
+
+struct __attribute__ ((packed)) _PartitionRecord_t {
+	/* Not used by EFI firmware. Set to 0x80 to indicate that this
+	   is the bootable legacy partition. */
+	uint8_t BootIndicator;
+
+	/* Start of partition in CHS address, not used by EFI firmware. */
+	uint8_t StartHead;
+
+	/* Start of partition in CHS address, not used by EFI firmware. */
+	uint8_t StartSector;
+
+	/* Start of partition in CHS address, not used by EFI firmware. */
+	uint8_t StartTrack;
+
+	/* OS type. A value of 0xEF defines an EFI system partition.
+	   Other values are reserved for legacy operating systems, and
+	   allocated independently of the EFI specification. */
+	uint8_t OSType;
+
+	/* End of partition in CHS address, not used by EFI firmware. */
+	uint8_t EndHead;
+
+	/* End of partition in CHS address, not used by EFI firmware. */
+	uint8_t EndSector;
+
+	/* End of partition in CHS address, not used by EFI firmware. */
+	uint8_t EndTrack;
+
+	/* Starting LBA address of the partition on the disk. Used by
+	   EFI firmware to define the start of the partition. */
+	uint32_t StartingLBA;
+
+	/* Size of partition in LBA. Used by EFI firmware to determine
+	   the size of the partition. */
+	uint32_t SizeInLBA;
+};
+
+/* Protected Master Boot Record  & Legacy MBR share same structure */
+/* Needs to be packed because the u16s force misalignment. */
+struct __attribute__ ((packed)) _LegacyMBR_t {
+	uint8_t BootCode[440];
+	uint32_t UniqueMBRSignature;
+	uint16_t Unknown;
+	PartitionRecord_t PartitionRecord[4];
+	uint16_t Signature;
+};
+
+/* uses libparted's disk_specific field in PedDisk, to store our info */
+struct __attribute__ ((packed)) _GPTDiskData {
+	PedGeometry	data_area;
+	int		entry_count;
+	efi_guid_t	uuid;
+};
+
+/* uses libparted's disk_specific field in PedPartition, to store our info */
+typedef struct _GPTPartitionData {
+	efi_guid_t	type;
+	efi_guid_t	uuid;
+	char		name[37];
+	int		lvm;
+	int		raid;
+	int		boot;
+	int		hp_service;
+        int             hidden;
+        int             msftres;
+} GPTPartitionData;
+
+static PedDiskType gpt_disk_type;
+
+
+static inline uint32_t
+pth_get_size (const PedDevice* dev)
+{
+        return GPT_HEADER_SECTORS * dev->sector_size;
+}
+
+
+static inline uint32_t
+pth_get_size_static (const PedDevice* dev)
+{
+        return sizeof (GuidPartitionTableHeader_t) - sizeof (uint8_t*);
+}
+
+
+static inline uint32_t
+pth_get_size_rsv2 (const PedDevice* dev)
+{
+        return pth_get_size(dev) - pth_get_size_static(dev);
+}
+
+
+static GuidPartitionTableHeader_t*
+pth_new (const PedDevice* dev)
+{
+        GuidPartitionTableHeader_t* pth = ped_malloc (
+                        sizeof (GuidPartitionTableHeader_t)
+                        + sizeof (uint8_t));
+        
+        pth->Reserved2 = ped_malloc ( pth_get_size_rsv2 (dev) );
+
+        return pth;
+}
+
+
+static GuidPartitionTableHeader_t*
+pth_new_zeroed (const PedDevice* dev)
+{
+        GuidPartitionTableHeader_t* pth = pth_new (dev);
+        
+        memset (pth, 0, pth_get_size_static (dev));
+        memset (pth->Reserved2, 0, pth_get_size_rsv2 (dev));        
+        
+        return (pth);
+}
+                        
+
+static GuidPartitionTableHeader_t*
+pth_new_from_raw (const PedDevice* dev, const uint8_t* pth_raw)
+{
+        GuidPartitionTableHeader_t* pth = pth_new (dev); 
+
+        PED_ASSERT (pth_raw != NULL, return 0);
+        
+        memcpy (pth, pth_raw, pth_get_size_static (dev));
+        memcpy (pth->Reserved2, pth_raw + pth_get_size_static (dev),
+                        pth_get_size_rsv2 (dev));
+        
+        return pth;
+}
+
+static void
+pth_free (GuidPartitionTableHeader_t* pth)
+{
+	PED_ASSERT (pth != NULL, return);
+	PED_ASSERT (pth->Reserved2 != NULL, return);
+
+	ped_free (pth->Reserved2);
+	ped_free (pth);
+}
+
+static uint8_t*
+pth_get_raw (const PedDevice* dev, const GuidPartitionTableHeader_t* pth)
+{
+        uint8_t* pth_raw = ped_malloc (pth_get_size (dev));
+        int size_static = pth_get_size_static (dev);
+        
+        PED_ASSERT (pth != NULL, return 0);
+        PED_ASSERT (pth->Reserved2 != NULL, return 0);
+       
+        memcpy (pth_raw, pth, size_static);
+        memcpy (pth_raw + size_static, pth->Reserved2, pth_get_size_rsv2 (dev));
+        
+        return pth_raw;
+}
+
+
+/**
+ * swap_uuid_and_efi_guid() - converts between uuid formats
+ * @uuid - uuid_t in either format (converts it to the other)
+ *
+ * There are two different representations for Globally Unique Identifiers
+ * (GUIDs or UUIDs).
+ * 
+ * The RFC specifies a UUID as a string of 16 bytes, essentially
+ * a big-endian array of char.
+ * Intel, in their EFI Specification, references the same RFC, but
+ * then defines a GUID as a structure of little-endian fields.
+ * Coincidentally, both structures have the same format when unparsed.
+ *
+ * When read from disk, EFI GUIDs are in struct of little endian format,
+ * and need to be converted to be treated as uuid_t in memory.
+ *
+ * When writing to disk, uuid_ts need to be converted into EFI GUIDs.
+ *
+ * Blame Intel.
+ */
+static void
+swap_uuid_and_efi_guid(uuid_t uuid)
+{
+	efi_guid_t *guid = (efi_guid_t *)uuid;
+
+	PED_ASSERT(uuid != NULL, return);
+	guid->time_low            = PED_SWAP32(guid->time_low);
+	guid->time_mid            = PED_SWAP16(guid->time_mid);
+	guid->time_hi_and_version = PED_SWAP16(guid->time_hi_and_version);
+}
+
+/* returns the EFI-style CRC32 value for buf
+ *	This function uses the crc32 function by Gary S. Brown,
+ * but seeds the function with ~0, and xor's with ~0 at the end.
+ */
+static inline uint32_t
+efi_crc32(const void *buf, unsigned long len)
+{
+	return (__efi_crc32(buf, len, ~0L) ^ ~0L);
+}
+
+static inline uint32_t
+pth_crc32(const PedDevice* dev, const GuidPartitionTableHeader_t* pth)
+{
+        uint8_t* pth_raw = pth_get_raw (dev, pth);
+        uint32_t crc32 = 0;
+       
+        PED_ASSERT (dev != NULL, return 0);
+        PED_ASSERT (pth != NULL, return 0);
+       
+        crc32 = efi_crc32 (pth_raw, pth_get_size_static (dev));
+
+        ped_free (pth_raw);
+      
+        return crc32;
+}
+
+static inline int
+guid_cmp (efi_guid_t left, efi_guid_t right)
+{
+	return memcmp(&left, &right, sizeof(efi_guid_t));
+}
+
+/* checks if 'mbr' is a protective MBR partition table */
+static inline int
+_pmbr_is_valid (const LegacyMBR_t* mbr)
+{
+	int i;
+
+	PED_ASSERT(mbr != NULL, return 0);
+
+	if (mbr->Signature != PED_CPU_TO_LE16(MSDOS_MBR_SIGNATURE))
+		return 0;
+	for (i = 0; i < 4; i++) {
+		if (mbr->PartitionRecord[i].OSType == EFI_PMBR_OSTYPE_EFI)
+			return 1;
+	}
+	return 0;
+}
+
+static int
+gpt_probe (const PedDevice * dev)
+{
+	GuidPartitionTableHeader_t* gpt = NULL;
+        uint8_t* pth_raw = ped_malloc (pth_get_size (dev));
+	LegacyMBR_t legacy_mbr;
+	int gpt_sig_found = 0;
+
+	PED_ASSERT (dev != NULL, return 0);
+
+	if (ped_device_read(dev, pth_raw, 1, GPT_HEADER_SECTORS)
+	|| ped_device_read(dev, pth_raw, dev->length - 1, GPT_HEADER_SECTORS)) {
+		gpt = pth_new_from_raw (dev, pth_raw);
+		if (gpt->Signature == PED_CPU_TO_LE64(GPT_HEADER_SIGNATURE))
+			gpt_sig_found = 1;
+	}
+	
+        ped_free (pth_raw);
+
+        if (gpt)
+	        pth_free (gpt);
+
+        
+	if (!gpt_sig_found)
+		return 0;
+
+	if (ped_device_read(dev, &legacy_mbr, 0, GPT_HEADER_SECTORS)) {
+		if (!_pmbr_is_valid (&legacy_mbr)) {
+			int ex_status = ped_exception_throw (
+				PED_EXCEPTION_WARNING,
+				PED_EXCEPTION_YES_NO,
+			_("%s contains GPT signatures, indicating that it has "
+			  "a GPT table.  However, it does not have a valid "
+			  "fake msdos partition table, as it should.  Perhaps "
+			  "it was corrupted -- possibly by a program that "
+			  "doesn't understand GPT partition tables.  Or "
+			  "perhaps you deleted the GPT table, and are now "
+			  "using an msdos partition table.  Is this a GPT "
+			  "partition table?"),
+				dev->path);
+			if (ex_status == PED_EXCEPTION_NO)
+				return 0;
+		}
+	}
+
+	return 1;
+}
+
+#ifndef DISCOVER_ONLY
+/* writes zeros to the PMBR and the primary and alternate GPTHs and PTEs */
+static int
+gpt_clobber(PedDevice * dev)
+{
+	LegacyMBR_t pmbr;
+        uint8_t* zeroed_pth_raw = ped_malloc (pth_get_size (dev));
+        uint8_t* pth_raw = ped_malloc (pth_get_size (dev));
+	GuidPartitionTableHeader_t* gpt;
+
+	PED_ASSERT (dev != NULL, return 0);
+
+	memset(&pmbr, 0, sizeof(pmbr));
+	memset(zeroed_pth_raw, 0, pth_get_size (dev));
+	
+        /*
+         * TO DISCUSS: check whether checksum is correct?
+         * If not, we might get a wrong AlternateLBA field and destroy
+         * one sector of random data.
+         */
+	if (!ped_device_read(dev, pth_raw,
+			     GPT_PRIMARY_HEADER_LBA, GPT_HEADER_SECTORS))
+                goto error_free;
+
+        gpt = pth_new_from_raw (dev, pth_raw);
+        
+	if (!ped_device_write(dev, &pmbr, GPT_PMBR_LBA, GPT_PMBR_SECTORS))
+                goto error_free_with_gpt;
+	if (!ped_device_write(dev, &zeroed_pth_raw,
+			      GPT_PRIMARY_HEADER_LBA, GPT_HEADER_SECTORS))
+                goto error_free_with_gpt;
+	if (!ped_device_write(dev, &zeroed_pth_raw, dev->length - GPT_HEADER_SECTORS,
+			      GPT_HEADER_SECTORS))
+                goto error_free_with_gpt;
+
+	if ((PedSector) PED_LE64_TO_CPU (gpt->AlternateLBA) < dev->length - 1) {
+		if (!ped_device_write(dev, gpt,
+				      PED_LE64_TO_CPU (gpt->AlternateLBA),
+				      GPT_HEADER_SECTORS))
+			return 0;
+	}
+        
+	pth_free (gpt);
+
+        return 1;
+        
+error_free_with_gpt:
+        pth_free (gpt);
+error_free:
+        ped_free (pth_raw);
+        ped_free (zeroed_pth_raw);
+	return 0;
+}
+#endif /* !DISCOVER_ONLY */
+
+static PedDisk *
+gpt_alloc (const PedDevice * dev)
+{
+	PedDisk* disk;
+	GPTDiskData *gpt_disk_data;
+	PedSector data_start, data_end;
+
+	disk = _ped_disk_alloc ((PedDevice*)dev, &gpt_disk_type);
+	if (!disk)
+		goto error;
+	disk->disk_specific = gpt_disk_data = ped_malloc (sizeof (GPTDiskData));
+	if (!disk->disk_specific)
+		goto error_free_disk;
+
+	data_start = 2 + GPT_DEFAULT_PARTITION_ENTRY_ARRAY_SIZE / dev->sector_size;
+	data_end = dev->length - 2
+		   - GPT_DEFAULT_PARTITION_ENTRY_ARRAY_SIZE / dev->sector_size;
+	ped_geometry_init (&gpt_disk_data->data_area, dev, data_start,
+			   data_end - data_start + 1);
+	gpt_disk_data->entry_count = GPT_DEFAULT_PARTITION_ENTRIES;
+	uuid_generate ((unsigned char*) &gpt_disk_data->uuid);
+	swap_uuid_and_efi_guid((unsigned char*)(&gpt_disk_data->uuid));
+	return disk;
+
+error_free_disk:
+	ped_free (disk);
+error:
+	return NULL;
+}
+
+static PedDisk*
+gpt_duplicate (const PedDisk* disk)
+{
+	PedDisk* new_disk;
+	GPTDiskData* new_disk_data;
+	GPTDiskData* old_disk_data;
+
+	new_disk = ped_disk_new_fresh (disk->dev, &gpt_disk_type);
+	if (!new_disk)
+		return NULL;
+
+	old_disk_data = disk->disk_specific;
+	new_disk_data = new_disk->disk_specific;
+
+	ped_geometry_init (&new_disk_data->data_area, disk->dev,
+			   old_disk_data->data_area.start,
+			   old_disk_data->data_area.length);
+	new_disk_data->entry_count = old_disk_data->entry_count;
+	new_disk_data->uuid = old_disk_data->uuid;
+	return new_disk;
+}
+
+static void
+gpt_free(PedDisk * disk)
+{
+	ped_disk_delete_all (disk);
+	ped_free (disk->disk_specific);
+	_ped_disk_free (disk);
+}
+
+static int
+_header_is_valid (const PedDevice* dev, GuidPartitionTableHeader_t* gpt)
+{
+	uint32_t crc, origcrc;
+
+	if (PED_LE64_TO_CPU (gpt->Signature) != GPT_HEADER_SIGNATURE)
+		return 0;
+	if (PED_LE32_TO_CPU (gpt->HeaderSize)
+			> pth_get_size_static (dev))
+		return 0;
+
+	origcrc = gpt->HeaderCRC32;
+	gpt->HeaderCRC32 = 0;
+	crc = pth_crc32 (dev, gpt);
+	gpt->HeaderCRC32 = origcrc;
+
+	return crc == PED_LE32_TO_CPU (origcrc);
+}
+
+static int
+_read_header (const PedDevice* dev, GuidPartitionTableHeader_t** gpt,
+              PedSector where)
+{
+        uint8_t* pth_raw = ped_malloc (pth_get_size (dev));
+
+	PED_ASSERT (dev != NULL, return 0);
+
+	if (!ped_device_read (dev, pth_raw, where, GPT_HEADER_SECTORS)) {
+                ped_free (pth_raw); 
+		return 0;
+        }
+ 
+        *gpt = pth_new_from_raw (dev, pth_raw);
+        
+        ped_free (pth_raw);
+
+        if (_header_is_valid (dev, *gpt))
+                return 1;
+
+        pth_free (*gpt);
+        return 0;
+}
+
+static int
+_parse_header (PedDisk* disk, GuidPartitionTableHeader_t* gpt, 
+	       int *update_needed)
+{ 
+	GPTDiskData* gpt_disk_data = disk->disk_specific;
+	PedSector first_usable;
+	PedSector last_usable;
+	PedSector last_usable_if_grown, last_usable_min_default;
+	static int asked_already;
+
+	PED_ASSERT (_header_is_valid (disk->dev, gpt), return 0);
+
+#ifndef DISCOVER_ONLY
+	if (PED_LE32_TO_CPU (gpt->Revision) > GPT_HEADER_REVISION_V1_02
+	    || PED_LE32_TO_CPU (gpt->HeaderSize) != pth_get_size_static (
+                                                        disk->dev)) {
+		if (ped_exception_throw (
+			PED_EXCEPTION_WARNING,
+			PED_EXCEPTION_IGNORE_CANCEL,
+			_("The format of the GPT partition table is version "
+			  "%x, which is newer than what Parted can "
+			  "recognise.  Please tell us!  bug-parted@gnu.org"),
+			PED_LE32_TO_CPU (gpt->Revision))
+				!= PED_EXCEPTION_IGNORE)
+			return 0;
+	}
+#endif
+
+	first_usable = PED_LE64_TO_CPU (gpt->FirstUsableLBA);
+	last_usable = PED_LE64_TO_CPU (gpt->LastUsableLBA);
+
+
+/*
+   Need to check whether the volume has grown, the LastUsableLBA is
+   normally set to disk->dev->length - 2 - ptes_size (at least for parted
+   created volumes), where ptes_size is the number of entries * 
+   size of each entry / sector size or 16k / sector size, whatever the greater.
+   If the volume has grown, offer the user the chance to use the new
+   space or continue with the current usable area.  Only ask once per 
+   parted invocation.
+*/
+   
+	last_usable_if_grown 
+		= PED_CPU_TO_LE64 (disk->dev->length - 2 - 
+		((PedSector)(PED_LE32_TO_CPU(gpt->NumberOfPartitionEntries)) * 
+		(PedSector)(PED_LE32_TO_CPU(gpt->SizeOfPartitionEntry)) / 
+		disk->dev->sector_size));
+
+	last_usable_min_default = disk->dev->length - 2 - 
+		GPT_DEFAULT_PARTITION_ENTRY_ARRAY_SIZE / disk->dev->sector_size;
+
+	if ( last_usable_if_grown > last_usable_min_default ) {
+
+		last_usable_if_grown = last_usable_min_default;
+	}
+
+
+	PED_ASSERT (last_usable > first_usable, return 0);
+	PED_ASSERT (last_usable <= disk->dev->length, return 0);
+
+	PED_ASSERT (last_usable_if_grown > first_usable, return 0);
+	PED_ASSERT (last_usable_if_grown <= disk->dev->length, return 0);
+
+	if ( !asked_already && last_usable < last_usable_if_grown ) {
+
+		PedExceptionOption q;
+
+		q = ped_exception_throw (PED_EXCEPTION_WARNING,
+			PED_EXCEPTION_FIX | PED_EXCEPTION_IGNORE,
+			_("Not all of the space available to %s appears "
+			"to be used, you can fix the GPT to use all of the "
+			"space (an extra %llu blocks) or continue with the "
+			"current setting? "), disk->dev->path, 
+			(uint64_t)(last_usable_if_grown - last_usable));
+
+
+		if (q == PED_EXCEPTION_FIX) {
+
+			last_usable = last_usable_if_grown;
+			*update_needed = 1;
+
+		}
+		else if (q != PED_EXCEPTION_UNHANDLED ) {
+
+			asked_already = 1;
+		}
+	}
+
+	ped_geometry_init (&gpt_disk_data->data_area, disk->dev,
+			   first_usable, last_usable - first_usable + 1);
+
+
+	gpt_disk_data->entry_count
+		= PED_LE32_TO_CPU (gpt->NumberOfPartitionEntries);
+	PED_ASSERT (gpt_disk_data->entry_count > 0, return 0);
+	PED_ASSERT (gpt_disk_data->entry_count <= 8192, return 0);
+
+	gpt_disk_data->uuid = gpt->DiskGUID;
+
+	return 1;
+}
+
+static PedPartition*
+_parse_part_entry (PedDisk* disk, GuidPartitionEntry_t* pte)
+{
+	PedPartition* part;
+	GPTPartitionData* gpt_part_data;
+	unsigned int i;
+
+	part = ped_partition_new (disk, 0, NULL,
+			PED_LE64_TO_CPU(pte->StartingLBA),
+			PED_LE64_TO_CPU(pte->EndingLBA));
+	if (!part)
+		return NULL;
+
+	gpt_part_data = part->disk_specific;
+	gpt_part_data->type = pte->PartitionTypeGuid;
+	gpt_part_data->uuid = pte->UniquePartitionGuid;
+	for (i = 0; i < 72 / sizeof (efi_char16_t); i++)
+		gpt_part_data->name[i] = (efi_char16_t) PED_LE16_TO_CPU(
+					   (uint16_t) pte->PartitionName[i]);
+	gpt_part_data->name[i] = 0;
+        
+        gpt_part_data->lvm = gpt_part_data->raid 
+                = gpt_part_data->boot = gpt_part_data->hp_service
+                = gpt_part_data->hidden = gpt_part_data->msftres = 0;
+
+        if (pte->Attributes.RequiredToFunction & 0x1)
+                gpt_part_data->hidden = 1;
+       
+	if (!guid_cmp (gpt_part_data->type, PARTITION_SYSTEM_GUID))
+		gpt_part_data->boot = 1;
+	else if (!guid_cmp (gpt_part_data->type, PARTITION_RAID_GUID))
+		gpt_part_data->raid = 1;
+	else if (!guid_cmp (gpt_part_data->type, PARTITION_LVM_GUID))
+		gpt_part_data->lvm = 1;
+	else if (!guid_cmp (gpt_part_data->type, PARTITION_HPSERVICE_GUID))
+		gpt_part_data->hp_service = 1;
+        else if (!guid_cmp (gpt_part_data->type, PARTITION_MSFT_RESERVED_GUID))
+                gpt_part_data->msftres = 1;
+        
+	return part;
+}
+
+/************************************************************
+ *  Intel is changing the EFI Spec. (after v1.02) to say that a
+ *  disk is considered to have a GPT label only if the GPT
+ *  structures are correct, and the MBR is actually a Protective
+ *  MBR (has one 0xEE type partition).
+ *  Problem occurs when a GPT-partitioned disk is then
+ *  edited with a legacy (non-GPT-aware) application, such as
+ *  fdisk (which doesn't generally erase the PGPT or AGPT).
+ *  How should such a disk get handled?  As a GPT disk (throwing
+ *  away the fdisk changes), or as an MSDOS disk (throwing away
+ *  the GPT information).  Previously, I've taken the GPT-is-right,
+ *  MBR is wrong, approach, to stay consistent with the EFI Spec.
+ *  Intel disagrees, saying the disk should then be treated
+ *  as having a msdos label, not a GPT label.  If this is true,
+ *  then what's the point of having an AGPT, since if the PGPT
+ *  is screwed up, likely the PMBR is too, and the PMBR becomes
+ *  a single point of failure.
+ *  So, in the Linux kernel, I'm going to test for PMBR, and
+ *  warn if it's not there, and treat the disk as MSDOS, with a note
+ *  for users to use Parted to "fix up" their disk if they
+ *  really want it to be considered GPT.
+ ************************************************************/
+static int
+gpt_read (PedDisk * disk)
+{
+	GPTDiskData *gpt_disk_data = disk->disk_specific;
+	GuidPartitionTableHeader_t* gpt;
+	GuidPartitionEntry_t* ptes;
+	int ptes_size;
+	int i;
+#ifndef DISCOVER_ONLY
+	int write_back = 0;
+#endif
+
+	ped_disk_delete_all (disk);
+
+        /* 
+         * motivation: let the user decide about the pmbr... during
+         * ped_disk_probe(), they probably didn't get a choice...
+         */
+	if (!gpt_probe (disk->dev))
+		goto error;
+
+	if (_read_header (disk->dev, &gpt, 1)) {
+		PED_ASSERT ((PedSector) PED_LE64_TO_CPU (gpt->AlternateLBA)
+				<= disk->dev->length - 1, goto error_free_gpt);
+		if ((PedSector) PED_LE64_TO_CPU (gpt->AlternateLBA)
+				< disk->dev->length - 1) {
+			char* zeros = ped_malloc (pth_get_size (disk->dev));
+
+#ifndef DISCOVER_ONLY
+			if (ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_FIX | PED_EXCEPTION_CANCEL,
+		_("The backup GPT table is not at the end of the disk, as it "
+		  "should be.  This might mean that another operating system "
+		  "believes the disk is smaller.  Fix, by moving the backup "
+		  "to the end (and removing the old backup)?"))
+					== PED_EXCEPTION_CANCEL)
+				goto error_free_gpt;
+
+			write_back = 1;
+			memset (zeros, 0, disk->dev->sector_size);
+			ped_device_write (disk->dev, zeros,
+					  PED_LE64_TO_CPU (gpt->AlternateLBA),
+					  1);
+#endif /* !DISCOVER_ONLY */
+		}
+	} else { /* primary GPT *not* ok */
+		int alternate_ok = 0;
+
+#ifndef DISCOVER_ONLY
+		write_back = 1;
+#endif
+
+		if ((PedSector) PED_LE64_TO_CPU (gpt->AlternateLBA)
+				< disk->dev->length - 1) {
+			alternate_ok = _read_header (disk->dev, &gpt,
+					    PED_LE64_TO_CPU(gpt->AlternateLBA));
+		}
+		if (!alternate_ok) {
+			alternate_ok = _read_header (disk->dev, &gpt,
+						     disk->dev->length - 1);
+		}
+
+		if (alternate_ok) {
+			if (ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_OK_CANCEL,
+				_("The primary GPT table is corrupt, but the "
+				  "backup appears OK, so that will be used."))
+				    == PED_EXCEPTION_CANCEL)
+				goto error_free_gpt;
+		} else {
+			ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_CANCEL,
+				_("Both the primary and backup GPT tables "
+				  "are corrupt.  Try making a fresh table, "
+				  "and using Parted's rescue feature to "
+				  "recover partitions."));
+			goto error;
+		}
+	}
+
+	if (!_parse_header (disk, gpt, &write_back))
+		goto error_free_gpt;
+
+
+	ptes_size = sizeof (GuidPartitionEntry_t) * gpt_disk_data->entry_count;
+	ptes = (GuidPartitionEntry_t*) ped_malloc (ptes_size);
+	if (!ped_device_read (disk->dev, ptes,
+			      PED_LE64_TO_CPU(gpt->PartitionEntryLBA),
+			      ptes_size / disk->dev->sector_size))
+		goto error_free_ptes;
+
+	for (i = 0; i < gpt_disk_data->entry_count; i++) {
+		PedPartition* part;
+		PedConstraint* constraint_exact;
+
+		if (!guid_cmp (ptes[i].PartitionTypeGuid, UNUSED_ENTRY_GUID))
+			continue;
+
+		part = _parse_part_entry (disk, &ptes[i]);
+		if (!part)
+			goto error_delete_all;
+
+		part->fs_type = ped_file_system_probe (&part->geom);
+		part->num = i + 1;
+
+		constraint_exact = ped_constraint_exact (&part->geom);
+		if (!ped_disk_add_partition(disk, part, constraint_exact)) {
+			ped_partition_destroy (part);
+			goto error_delete_all;
+		}
+		ped_constraint_destroy (constraint_exact);
+	}
+	ped_free (ptes);
+
+#ifndef DISCOVER_ONLY
+	if (write_back)
+		ped_disk_commit_to_dev (disk);
+#endif
+
+	return 1;
+
+error_delete_all:
+	ped_disk_delete_all (disk);
+error_free_ptes:
+	ped_free (ptes);
+error_free_gpt:
+        pth_free (gpt);
+error:
+	return 0;
+}
+
+#ifndef DISCOVER_ONLY
+/* Writes the protective MBR (to keep DOS happy) */
+static int
+_write_pmbr (PedDevice * dev)
+{
+	LegacyMBR_t pmbr;
+
+	memset(&pmbr, 0, sizeof(pmbr));
+	pmbr.Signature = PED_CPU_TO_LE16(MSDOS_MBR_SIGNATURE);
+	pmbr.PartitionRecord[0].OSType      = EFI_PMBR_OSTYPE_EFI;
+	pmbr.PartitionRecord[0].StartSector = 1;
+	pmbr.PartitionRecord[0].EndHead     = 0xFE;
+	pmbr.PartitionRecord[0].EndSector   = 0xFF;
+	pmbr.PartitionRecord[0].EndTrack    = 0xFF;
+	pmbr.PartitionRecord[0].StartingLBA = PED_CPU_TO_LE32(1);
+	if ((dev->length - 1ULL) > 0xFFFFFFFFULL) 
+		pmbr.PartitionRecord[0].SizeInLBA = PED_CPU_TO_LE32(0xFFFFFFFF);
+	else
+		pmbr.PartitionRecord[0].SizeInLBA = PED_CPU_TO_LE32(dev->length - 1UL);
+
+	return ped_device_write (dev, &pmbr, GPT_PMBR_LBA, GPT_PMBR_SECTORS);
+}
+
+static void
+_generate_header (const PedDisk* disk, int alternate, uint32_t ptes_crc,
+		  GuidPartitionTableHeader_t** gpt_p)
+{
+	GPTDiskData* gpt_disk_data = disk->disk_specific;
+        GuidPartitionTableHeader_t* gpt;
+
+        *gpt_p = pth_new_zeroed (disk->dev);
+        
+        gpt = *gpt_p;
+        
+	gpt->Signature = PED_CPU_TO_LE64 (GPT_HEADER_SIGNATURE);
+	gpt->Revision = PED_CPU_TO_LE32 (GPT_HEADER_REVISION_V1_00);
+
+	/* per 1.00 spec */
+	gpt->HeaderSize = PED_CPU_TO_LE32 (pth_get_size_static (disk->dev));
+	gpt->HeaderCRC32 = 0;
+	gpt->Reserved1 = 0;
+
+	if (alternate) {
+		PedSector ptes_size = gpt_disk_data->entry_count
+				      * sizeof (GuidPartitionEntry_t) / disk->dev->sector_size;
+
+		gpt->MyLBA = PED_CPU_TO_LE64 (disk->dev->length - 1);
+		gpt->AlternateLBA = PED_CPU_TO_LE64 (1);
+		gpt->PartitionEntryLBA
+			= PED_CPU_TO_LE64 (disk->dev->length - 1 - ptes_size);
+	} else {
+		gpt->MyLBA = PED_CPU_TO_LE64 (1);
+		gpt->AlternateLBA = PED_CPU_TO_LE64 (disk->dev->length - 1);
+		gpt->PartitionEntryLBA = PED_CPU_TO_LE64 (2);
+	}
+
+	gpt->FirstUsableLBA = PED_CPU_TO_LE64 (gpt_disk_data->data_area.start);
+	gpt->LastUsableLBA = PED_CPU_TO_LE64 (gpt_disk_data->data_area.end);
+	gpt->DiskGUID = gpt_disk_data->uuid;
+	gpt->NumberOfPartitionEntries
+		= PED_CPU_TO_LE32 (gpt_disk_data->entry_count);
+	gpt->SizeOfPartitionEntry
+		= PED_CPU_TO_LE32 (sizeof (GuidPartitionEntry_t));
+	gpt->PartitionEntryArrayCRC32 = PED_CPU_TO_LE32 (ptes_crc);
+	gpt->HeaderCRC32 = PED_CPU_TO_LE32 (pth_crc32 (disk->dev, gpt));
+}
+
+static void
+_partition_generate_part_entry (PedPartition* part, GuidPartitionEntry_t* pte)
+{
+	GPTPartitionData* gpt_part_data = part->disk_specific;
+	unsigned int i;
+
+	PED_ASSERT (gpt_part_data != NULL, return);
+
+	pte->PartitionTypeGuid = gpt_part_data->type;
+	pte->UniquePartitionGuid = gpt_part_data->uuid;
+	pte->StartingLBA = PED_CPU_TO_LE64(part->geom.start);
+	pte->EndingLBA = PED_CPU_TO_LE64(part->geom.end);
+	memset (&pte->Attributes, 0, sizeof (GuidPartitionEntryAttributes_t));
+
+        if (gpt_part_data->hidden)
+                pte->Attributes.RequiredToFunction = 1;
+        
+	for (i = 0; i < 72 / sizeof(efi_char16_t); i++)
+		pte->PartitionName[i]
+			= (efi_char16_t) PED_CPU_TO_LE16(
+				(uint16_t) gpt_part_data->name[i]);
+}
+
+static int
+gpt_write(const PedDisk * disk)
+{
+	GPTDiskData* gpt_disk_data;
+	GuidPartitionEntry_t* ptes;
+	uint32_t ptes_crc;
+        uint8_t* pth_raw = ped_malloc (pth_get_size (disk->dev));
+	GuidPartitionTableHeader_t* gpt;
+	PedPartition* part;
+	int ptes_size;
+
+	PED_ASSERT (disk != NULL, goto error);
+	PED_ASSERT (disk->dev != NULL, goto error);
+	PED_ASSERT (disk->disk_specific != NULL, goto error);
+
+	gpt_disk_data = disk->disk_specific;
+
+	ptes_size = sizeof (GuidPartitionEntry_t) * gpt_disk_data->entry_count;
+	ptes = (GuidPartitionEntry_t*) ped_malloc (ptes_size);
+	if (!ptes)
+		goto error;
+	memset (ptes, 0, ptes_size);
+	for (part = ped_disk_next_partition (disk, NULL); part;
+	     part = ped_disk_next_partition (disk, part)) {
+		if (part->type != 0)
+			continue;
+		_partition_generate_part_entry (part, &ptes[part->num - 1]);
+	}
+
+	ptes_crc = efi_crc32 (ptes, ptes_size);
+
+	/* Write protective MBR */
+	if (!_write_pmbr (disk->dev))
+		goto error_free_ptes;
+
+	/* Write PTH and PTEs */
+	_generate_header (disk, 0, ptes_crc, &gpt);
+        pth_raw = pth_get_raw (disk->dev, gpt);
+	if (!ped_device_write (disk->dev, pth_raw, 1, 1))
+		goto error_free_ptes;
+	if (!ped_device_write (disk->dev, ptes, 2, ptes_size / disk->dev->sector_size))
+		goto error_free_ptes;
+
+	/* Write Alternate PTH & PTEs */
+	_generate_header (disk, 1, ptes_crc, &gpt);
+        pth_raw = pth_get_raw (disk->dev, gpt);
+	if (!ped_device_write (disk->dev, pth_raw, disk->dev->length - 1, 1))
+		goto error_free_ptes;
+	if (!ped_device_write (disk->dev, ptes,
+			       disk->dev->length - 1 - ptes_size / disk->dev->sector_size,
+			       ptes_size / disk->dev->sector_size))
+		goto error_free_ptes;
+
+	ped_free (ptes);
+	return ped_device_sync (disk->dev);
+
+error_free_ptes:
+	ped_free (ptes);
+error:
+	return 0;
+}
+#endif /* !DISCOVER_ONLY */
+
+static int
+add_metadata_part(PedDisk * disk, PedSector start, PedSector length)
+{
+	PedPartition* part;
+	PedConstraint* constraint_exact;
+	PED_ASSERT(disk != NULL, return 0);
+
+	part = ped_partition_new (disk, PED_PARTITION_METADATA, NULL,
+				  start, start + length - 1);
+	if (!part)
+		goto error;
+
+	constraint_exact = ped_constraint_exact (&part->geom);
+	if (!ped_disk_add_partition (disk, part, constraint_exact))
+		goto error_destroy_constraint;
+	ped_constraint_destroy (constraint_exact);
+	return 1;
+
+error_destroy_constraint:
+	ped_constraint_destroy (constraint_exact);
+	ped_partition_destroy (part);
+error:
+	return 0;
+}
+
+static PedPartition*
+gpt_partition_new (const PedDisk* disk,
+		  PedPartitionType part_type, const PedFileSystemType* fs_type,
+		  PedSector start, PedSector end)
+{
+	PedPartition* part;
+	GPTPartitionData* gpt_part_data;
+
+	part = _ped_partition_alloc (disk, part_type, fs_type, start, end);
+	if (!part)
+		goto error;
+
+	if (part_type != 0)
+		return part;
+
+	gpt_part_data = part->disk_specific =
+		ped_malloc (sizeof (GPTPartitionData));
+	if (!gpt_part_data)
+		goto error_free_part;
+
+	gpt_part_data->type = PARTITION_BASIC_DATA_GUID;
+	gpt_part_data->lvm = 0;
+	gpt_part_data->raid = 0;
+	gpt_part_data->boot = 0;
+	gpt_part_data->hp_service = 0;
+        gpt_part_data->hidden = 0;
+        gpt_part_data->msftres = 0;
+	uuid_generate ((unsigned char*) &gpt_part_data->uuid);
+	swap_uuid_and_efi_guid((unsigned char*)(&gpt_part_data->uuid));
+	strcpy (gpt_part_data->name, "");
+	return part;
+
+error_free_part:
+	_ped_partition_free (part);
+error:
+	return NULL;
+}
+
+static PedPartition*
+gpt_partition_duplicate (const PedPartition* part)
+{
+	PedPartition* result;
+	GPTPartitionData* part_data = part->disk_specific;
+	GPTPartitionData* result_data;
+
+	result = _ped_partition_alloc (part->disk, part->type, part->fs_type,
+				       part->geom.start, part->geom.end);
+	if (!result)
+		goto error;
+	result->num = part->num;
+
+	if (result->type != 0)
+		return result;
+
+	result_data = result->disk_specific =
+		ped_malloc (sizeof (GPTPartitionData));
+	if (!result_data)
+		goto error_free_part;
+
+	result_data->type = part_data->type;
+	result_data->uuid = part_data->uuid;
+	strcpy (result_data->name, part_data->name);
+	return result;
+
+error_free_part:
+	_ped_partition_free (result);
+error:
+	return NULL;
+}
+
+static void
+gpt_partition_destroy (PedPartition *part)
+{
+	if (part->type == 0) {
+		PED_ASSERT (part->disk_specific != NULL, return);
+		ped_free (part->disk_specific);
+	}
+
+	_ped_partition_free (part);
+}
+
+static int
+gpt_partition_set_system (PedPartition* part, const PedFileSystemType* fs_type)
+{
+	GPTPartitionData* gpt_part_data = part->disk_specific;
+
+	PED_ASSERT (gpt_part_data != NULL, return 0);
+
+	part->fs_type = fs_type;
+
+	if (gpt_part_data->lvm) {
+		gpt_part_data->type = PARTITION_LVM_GUID;
+		return 1;
+	}
+	if (gpt_part_data->raid) {
+		gpt_part_data->type = PARTITION_RAID_GUID;
+		return 1;
+	}
+	if (gpt_part_data->boot) {
+		gpt_part_data->type = PARTITION_SYSTEM_GUID;
+		return 1;
+	}
+	if (gpt_part_data->hp_service) {
+		gpt_part_data->type = PARTITION_HPSERVICE_GUID;
+		return 1;
+	}
+        if (gpt_part_data->msftres) {
+                gpt_part_data->type = PARTITION_MSFT_RESERVED_GUID;
+                return 1;
+        }
+        
+	if (fs_type) {
+		if (strncmp (fs_type->name, "fat", 3) == 0
+		    || strcmp (fs_type->name, "ntfs") == 0) {
+			gpt_part_data->type = PARTITION_MSFT_RESERVED_GUID;
+			return 1;
+		}
+		if (strncmp (fs_type->name, "hfs", 3) == 0) {
+			gpt_part_data->type = PARTITION_APPLE_HFS_GUID;
+			return 1;
+		}
+		if (strstr (fs_type->name, "swap")) {
+			gpt_part_data->type = PARTITION_SWAP_GUID;
+			return 1;
+		}
+	}
+
+	gpt_part_data->type = PARTITION_BASIC_DATA_GUID;
+	return 1;
+}
+
+/* Allocate metadata partitions for the GPTH and PTES */
+static int
+gpt_alloc_metadata (PedDisk * disk)
+{
+	PedSector gptlength, pteslength = 0;
+	GPTDiskData *gpt_disk_data;
+
+	PED_ASSERT(disk != NULL, return 0);
+	PED_ASSERT(disk->dev != NULL, return 0);
+	PED_ASSERT(disk->disk_specific != NULL, return 0);
+	gpt_disk_data = disk->disk_specific;
+
+	gptlength = ped_div_round_up (sizeof (GuidPartitionTableHeader_t),
+	                              disk->dev->sector_size);
+	pteslength = ped_div_round_up (gpt_disk_data->entry_count
+				       * sizeof (GuidPartitionEntry_t), disk->dev->sector_size);
+
+	/* metadata at the start of the disk includes the MBR */
+	if (!add_metadata_part(disk, GPT_PMBR_LBA,
+			       GPT_PMBR_SECTORS + gptlength + pteslength))
+		return 0;
+
+	/* metadata at the end of the disk */
+	if (!add_metadata_part(disk, disk->dev->length - gptlength - pteslength,
+			       gptlength + pteslength))
+		return 0;
+
+	return 1;
+}
+
+/* Does nothing, as the read/new/destroy functions maintain part->num */
+static int
+gpt_partition_enumerate (PedPartition* part)
+{
+	GPTDiskData* gpt_disk_data = part->disk->disk_specific;
+	int i;
+
+	/* never change the partition numbers */
+	if (part->num != -1)
+		return 1;
+
+	for (i = 1; i <= gpt_disk_data->entry_count; i++) {
+		if (!ped_disk_get_partition (part->disk, i)) {
+			part->num = i;
+			return 1;
+		}
+	}
+
+	PED_ASSERT (0, return 0);
+
+	return 0; /* used if debug is disabled */
+}
+
+static int
+gpt_partition_set_flag(PedPartition *part,
+		       PedPartitionFlag flag,
+		       int state)
+{
+	GPTPartitionData *gpt_part_data;
+	PED_ASSERT(part != NULL, return 0);
+	PED_ASSERT(part->disk_specific != NULL, return 0);
+	gpt_part_data = part->disk_specific;
+
+	switch (flag) {
+	case PED_PARTITION_BOOT:
+		gpt_part_data->boot = state;
+		if (state)
+                        gpt_part_data->raid 
+                                = gpt_part_data->lvm
+                                = gpt_part_data->hp_service
+                                = gpt_part_data->msftres = 0;
+		return gpt_partition_set_system (part, part->fs_type);
+	case PED_PARTITION_RAID:
+		gpt_part_data->raid = state;
+		if (state)
+                        gpt_part_data->boot
+                                = gpt_part_data->lvm
+                                = gpt_part_data->hp_service
+                                = gpt_part_data->msftres = 0;
+		return gpt_partition_set_system (part, part->fs_type);
+	case PED_PARTITION_LVM:
+		gpt_part_data->lvm = state;
+		if (state)
+                        gpt_part_data->boot
+                                = gpt_part_data->raid
+                                = gpt_part_data->hp_service
+                                = gpt_part_data->msftres = 0;
+		return gpt_partition_set_system (part, part->fs_type);
+	case PED_PARTITION_HPSERVICE:
+		gpt_part_data->hp_service = state;
+		if (state)
+                        gpt_part_data->boot
+                                = gpt_part_data->raid
+                                = gpt_part_data->lvm
+                                = gpt_part_data->msftres = 0;
+		return gpt_partition_set_system (part, part->fs_type);
+        case PED_PARTITION_MSFT_RESERVED:
+                gpt_part_data->msftres = state;
+                if (state)
+                        gpt_part_data->boot
+                                = gpt_part_data->raid
+                                = gpt_part_data->lvm
+                                = gpt_part_data->hp_service = 0;
+                return gpt_partition_set_system (part, part->fs_type);
+        case PED_PARTITION_HIDDEN:
+                gpt_part_data->hidden = state;
+                return 1;
+	case PED_PARTITION_SWAP:
+	case PED_PARTITION_ROOT:
+	case PED_PARTITION_LBA:
+	default:
+		return 0;
+	}
+	return 1;
+}
+
+static int
+gpt_partition_get_flag(const PedPartition *part, PedPartitionFlag flag)
+{
+	GPTPartitionData *gpt_part_data;
+	PED_ASSERT(part->disk_specific != NULL, return 0);
+	gpt_part_data = part->disk_specific;
+
+	switch (flag) {
+	case PED_PARTITION_RAID:
+		return gpt_part_data->raid;
+	case PED_PARTITION_LVM:
+		return gpt_part_data->lvm;
+	case PED_PARTITION_BOOT:
+		return gpt_part_data->boot;
+	case PED_PARTITION_HPSERVICE:
+		return gpt_part_data->hp_service;
+        case PED_PARTITION_MSFT_RESERVED:
+                return gpt_part_data->msftres;
+        case PED_PARTITION_HIDDEN:
+                       return gpt_part_data->hidden;
+	case PED_PARTITION_SWAP:
+	case PED_PARTITION_LBA:
+	case PED_PARTITION_ROOT:
+	default:
+		return 0;
+	}
+	return 0;
+}
+
+static int
+gpt_partition_is_flag_available(const PedPartition * part,
+				PedPartitionFlag flag)
+{
+	switch (flag) {
+	case PED_PARTITION_RAID:
+	case PED_PARTITION_LVM:
+	case PED_PARTITION_BOOT:
+	case PED_PARTITION_HPSERVICE:
+        case PED_PARTITION_MSFT_RESERVED:
+        case PED_PARTITION_HIDDEN:        
+		return 1;
+	case PED_PARTITION_SWAP:
+	case PED_PARTITION_ROOT:
+	case PED_PARTITION_LBA:
+	default:
+		return 0;
+	}
+	return 0;
+}
+
+static void
+gpt_partition_set_name (PedPartition *part, const char *name)
+{
+	GPTPartitionData *gpt_part_data = part->disk_specific;
+
+	strncpy (gpt_part_data->name, name, 36);
+	gpt_part_data->name [36] = 0;
+}
+
+static const char *
+gpt_partition_get_name (const PedPartition * part)
+{
+	GPTPartitionData* gpt_part_data = part->disk_specific;
+	return gpt_part_data->name;
+}
+
+static int
+gpt_get_max_primary_partition_count (const PedDisk *disk)
+{
+	const GPTDiskData* gpt_disk_data = disk->disk_specific;
+	return gpt_disk_data->entry_count;
+}
+
+static PedConstraint*
+_non_metadata_constraint (const PedDisk* disk)
+{
+	GPTDiskData* gpt_disk_data = disk->disk_specific;
+
+	return ped_constraint_new_from_max (&gpt_disk_data->data_area);
+}
+
+static int
+gpt_partition_align (PedPartition* part, const PedConstraint* constraint)
+{
+	PED_ASSERT (part != NULL, return 0);
+
+	if (_ped_partition_attempt_align (part, constraint,
+			_non_metadata_constraint (part->disk)))
+	       	return 1;
+
+#ifndef DISCOVER_ONLY
+	ped_exception_throw (
+		PED_EXCEPTION_ERROR,
+		PED_EXCEPTION_CANCEL,
+		_("Unable to satisfy all constraints on the partition."));
+#endif
+	return 0;
+}
+
+static PedDiskOps gpt_disk_ops = {
+	probe:		gpt_probe,
+#ifndef DISCOVER_ONLY
+	clobber:	gpt_clobber,
+#else
+	clobber:	NULL,
+#endif
+	alloc:		gpt_alloc,
+	duplicate:	gpt_duplicate,
+	free:		gpt_free,
+	read:		gpt_read,
+#ifndef DISCOVER_ONLY
+	write:		gpt_write,
+#else
+	write:		NULL,
+#endif
+	partition_new:			gpt_partition_new,
+	partition_duplicate:		gpt_partition_duplicate,
+	partition_destroy:		gpt_partition_destroy,
+	partition_set_system:		gpt_partition_set_system,
+	partition_set_flag:		gpt_partition_set_flag,
+	partition_get_flag:		gpt_partition_get_flag,
+	partition_is_flag_available:	gpt_partition_is_flag_available,
+	partition_set_name:		gpt_partition_set_name,
+	partition_get_name:		gpt_partition_get_name,
+	partition_align:		gpt_partition_align,
+	partition_enumerate:		gpt_partition_enumerate,
+	alloc_metadata:			gpt_alloc_metadata,
+	get_max_primary_partition_count: gpt_get_max_primary_partition_count
+};
+
+static PedDiskType gpt_disk_type = {
+	next:		NULL,
+	name:		"gpt",
+	ops:		&gpt_disk_ops,
+	features:	PED_DISK_TYPE_PARTITION_NAME
+};
+
+void
+ped_disk_gpt_init()
+{
+	PED_ASSERT (sizeof (GuidPartitionEntryAttributes_t) == 8, return);
+	PED_ASSERT (sizeof (GuidPartitionEntry_t) == 128, return);
+
+	ped_disk_type_register (&gpt_disk_type);
+}
+
+void
+ped_disk_gpt_done()
+{
+	ped_disk_type_unregister (&gpt_disk_type);
+}
diff --git a/parted-1.8.7/libparted/labels/loop.c b/parted-1.8.7/libparted/labels/loop.c
new file mode 100644
index 0000000..9a7e0d6
--- /dev/null
+++ b/parted-1.8.7/libparted/labels/loop.c
@@ -0,0 +1,334 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 1999, 2000, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+#include <parted/endian.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#define	LOOP_SIGNATURE		"GNU Parted Loopback 0"
+
+static PedDiskType loop_disk_type;
+
+static PedDisk* loop_alloc (const PedDevice* dev);
+static void loop_free (PedDisk* disk);
+
+static int
+loop_probe (const PedDevice* dev)
+{
+	PedDisk*	disk;
+	char		buf [512];
+	int		result;
+
+        if (dev->sector_size != 512)
+                return 0;
+
+	disk = loop_alloc (dev);
+	if (!disk)
+		goto error;
+
+	if (!ped_device_read (dev, buf, 0, 1))
+		goto error_destroy_disk;
+	if (strncmp (buf, LOOP_SIGNATURE, strlen (LOOP_SIGNATURE)) == 0) {
+		result = 1;
+	} else {
+		PedGeometry*	geom;
+
+		geom = ped_geometry_new (dev, 0, disk->dev->length);
+		if (!geom)
+			goto error_destroy_disk;
+		result = ped_file_system_probe (geom) != NULL;
+		ped_geometry_destroy (geom);
+	}
+	loop_free (disk);
+	return result;
+
+error_destroy_disk:
+	loop_free (disk);
+error:
+	return 0;
+}
+
+#ifndef DISCOVER_ONLY
+static int
+loop_clobber (PedDevice* dev)
+{
+	char		buf [512];
+	PedSector	i = 0;
+
+	PED_ASSERT (dev != NULL, return 0);
+
+	memset (buf, 0, 512);
+
+	while (loop_probe (dev)) {
+		if (!ped_device_write (dev, buf, i++, 1))
+			return 0;
+	}
+	return 1;
+}
+#endif /* !DISCOVER_ONLY */
+
+static PedDisk*
+loop_alloc (const PedDevice* dev)
+{
+	PED_ASSERT (dev != NULL, return 0);
+
+	if (dev->length < 256)
+		return NULL;
+	return _ped_disk_alloc ((PedDevice*)dev, &loop_disk_type);
+}
+
+static PedDisk*
+loop_duplicate (const PedDisk* disk)
+{
+	return ped_disk_new_fresh (disk->dev, &loop_disk_type);
+}
+
+static void
+loop_free (PedDisk* disk)
+{
+	PED_ASSERT (disk != NULL, return);
+
+	_ped_disk_free (disk);
+}
+
+static int
+loop_read (PedDisk* disk)
+{
+	PedDevice*		dev = NULL;
+	char			buf [512];
+	PedGeometry*		geom;
+	PedFileSystemType*	fs_type;
+	PedPartition*		part;
+	PedConstraint*		constraint_any;
+
+	PED_ASSERT (disk != NULL, return 0);
+	dev = disk->dev;
+	constraint_any = ped_constraint_any (dev);
+
+	ped_disk_delete_all (disk);
+
+	if (!ped_device_read (dev, buf, 0, 1))
+		goto error;
+	if (!strncmp (buf, LOOP_SIGNATURE, strlen (LOOP_SIGNATURE)))
+		return 1;
+
+	geom = ped_geometry_new (dev, 0, dev->length);
+	if (!geom)
+		goto error;
+
+	fs_type = ped_file_system_probe (geom);
+	if (!fs_type)
+		goto error_free_geom;
+
+	part = ped_partition_new (disk, 0, fs_type, geom->start, geom->end);
+	ped_geometry_destroy (geom);
+	if (!part)
+		goto error;
+	part->fs_type = fs_type;
+
+	if (!ped_disk_add_partition (disk, part, constraint_any))
+		goto error;
+	ped_constraint_destroy (constraint_any);
+	return 1;
+
+error_free_geom:
+	ped_geometry_destroy (geom);
+error:
+	ped_constraint_destroy (constraint_any);
+	return 0;
+}
+
+#ifndef DISCOVER_ONLY
+static int
+loop_write (const PedDisk* disk)
+{
+	char		buf [512];
+
+	if (ped_disk_get_partition (disk, 1)) {
+		if (!ped_device_read (disk->dev, buf, 0, 1))
+			return 0;
+		if (strncmp (buf, LOOP_SIGNATURE, strlen (LOOP_SIGNATURE)) != 0)
+	       		return 1;
+		memset (buf, 0, strlen (LOOP_SIGNATURE));
+		return ped_device_write (disk->dev, buf, 0, 1);
+	}
+
+	memset (buf, 0, 512);
+	strcpy (buf, LOOP_SIGNATURE);
+
+	return ped_device_write (disk->dev, buf, 0, 1);
+}
+#endif /* !DISCOVER_ONLY */
+
+static PedPartition*
+loop_partition_new (const PedDisk* disk, PedPartitionType part_type,
+		    const PedFileSystemType* fs_type,
+		    PedSector start, PedSector end)
+{
+	PedPartition*	part;
+	
+	part = _ped_partition_alloc (disk, part_type, fs_type, start, end);
+	if (!part)
+		return NULL;
+	part->disk_specific = NULL;
+	return part;
+}
+
+static PedPartition*
+loop_partition_duplicate (const PedPartition* part)
+{
+	PedPartition* result;
+	
+	result = ped_partition_new (part->disk, part->type, part->fs_type,
+				    part->geom.start, part->geom.end);
+	result->num = part->num;
+	return result;
+}
+
+static void
+loop_partition_destroy (PedPartition* part)
+{
+	ped_free (part);
+}
+
+static int
+loop_partition_set_system (PedPartition* part, const PedFileSystemType* fs_type)
+{
+	part->fs_type = fs_type;
+	return 1;
+}
+
+static int
+loop_partition_set_flag (PedPartition* part, PedPartitionFlag flag, int state)
+{
+	return 0;
+}
+
+static int
+loop_partition_get_flag (const PedPartition* part, PedPartitionFlag flag)
+{
+	return 0;
+}
+
+static int
+loop_partition_align (PedPartition* part, const PedConstraint* constraint)
+{
+	PedGeometry*	new_geom;
+
+	new_geom = ped_constraint_solve_nearest (constraint, &part->geom);
+	if (!new_geom) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Unable to satisfy all constraints on the "
+			  "partition."));
+		return 0;
+	}
+	ped_geometry_set (&part->geom, new_geom->start, new_geom->length);
+	ped_geometry_destroy (new_geom);
+	return 1;
+}
+
+static int
+loop_partition_is_flag_available (const PedPartition* part,
+	       			  PedPartitionFlag flag)
+{
+	return 0;
+}
+
+static int
+loop_partition_enumerate (PedPartition* part)
+{
+	part->num = 1;
+	return 1;
+}
+
+static int
+loop_alloc_metadata (PedDisk* disk)
+{
+	return 1;
+}
+
+static int
+loop_get_max_primary_partition_count (const PedDisk* disk)
+{
+	return 1;
+}
+
+static PedDiskOps loop_disk_ops = {
+	probe:			loop_probe,
+#ifndef DISCOVER_ONLY
+	clobber:		loop_clobber,
+#else
+	clobber:		NULL,
+#endif
+	alloc:			loop_alloc,
+	duplicate:		loop_duplicate,
+	free:			loop_free,
+	read:			loop_read,
+#ifndef DISCOVER_ONLY
+	write:			loop_write,
+#else
+	write:			NULL,
+#endif
+
+	partition_new:		loop_partition_new,
+	partition_duplicate:	loop_partition_duplicate,
+	partition_destroy:	loop_partition_destroy,
+	partition_set_system:	loop_partition_set_system,
+	partition_set_flag:	loop_partition_set_flag,
+	partition_get_flag:	loop_partition_get_flag,
+	partition_is_flag_available:	loop_partition_is_flag_available,
+	partition_set_name:	NULL,
+	partition_get_name:	NULL,
+	partition_align:	loop_partition_align,
+	partition_enumerate:	loop_partition_enumerate,
+
+	alloc_metadata:		loop_alloc_metadata,
+	get_max_primary_partition_count:
+				loop_get_max_primary_partition_count
+};
+
+static PedDiskType loop_disk_type = {
+	next:		NULL,
+	name:		"loop",
+	ops:		&loop_disk_ops,
+	features:	0
+};
+
+void
+ped_disk_loop_init ()
+{
+	ped_disk_type_register (&loop_disk_type);
+}
+
+void
+ped_disk_loop_done ()
+{
+	ped_disk_type_unregister (&loop_disk_type);
+}
diff --git a/parted-1.8.7/libparted/labels/mac.c b/parted-1.8.7/libparted/labels/mac.c
new file mode 100644
index 0000000..618f70e
--- /dev/null
+++ b/parted-1.8.7/libparted/labels/mac.c
@@ -0,0 +1,1620 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2000, 2002, 2004, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+#include <parted/endian.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+/* struct's hacked from Linux source:  fs/partitions/mac.h
+ * I believe it was originally written by Paul Mackerras (from comments in
+ * Quik source)
+ *
+ * See also:
+ *	http://developer.apple.com/documentation/mac/Devices/Devices-126.html
+ *	http://developer.apple.com/documentation/mac/Devices/Devices-121.html
+ *	http://devworld.apple.com/technotes/tn/tn1189.html
+ *
+ * Partition types:
+ *	Apple_Bootstrap		new-world (HFS) boot partition
+ *	Apple_partition_map	partition map (table)
+ *	Apple_Driver		device driver
+ *	Apple_Driver43		SCSI Manager 4.3 device driver
+ *	Apple_MFS		original Macintosh File System 
+ *	Apple_HFS		Hierarchical File System (and +)
+ *	Apple_HFSX		HFS+ with case sensitivity and more
+ *	Apple_UNIX_SVR2		UNIX file system (UFS?)
+ *	Apple_PRODOS		ProDOS file system 
+ *	Apple_Free		unused space
+ *	Apple_Scratch		empty
+ *	Apple_Void		padding for iso9660
+ *	Apple_Extra		an unused partition map entry
+ *
+ * Quick explanation:
+ * ------------------
+ * Terminology:
+ *
+ * 	Parted			Apple
+ * 	------			-----
+ * 	device			disk/device
+ * 	disk			no equivalent.
+ * 	partition		volume or partition
+ * 	sector			block
+ *
+ * 	* All space must be accounted for, except block 0 (driver block) and
+ * 	block 1-X (the partition map: i.e. lots of MacRawPartitions)
+ *
+ * 	* It's really hard to grow/shrink the number of MacRawPartition
+ * 	entries in the partition map, because the first partition starts
+ * 	immediately after the partition map.  When we can move the start of
+ * 	HFS and ext2 partitions, this problem will disappear ;-)
+ */
+
+#define MAC_PARTITION_MAGIC_1	0x5453		/* old */
+#define MAC_PARTITION_MAGIC_2	0x504d
+#define MAC_DISK_MAGIC		0x4552
+
+#define MAC_STATUS_BOOTABLE     8       /* partition is bootable */
+
+typedef struct _MacRawPartition     MacRawPartition;
+typedef struct _MacRawDisk          MacRawDisk;
+typedef struct _MacDeviceDriver     MacDeviceDriver;
+typedef struct _MacPartitionData    MacPartitionData;
+typedef struct _MacDiskData         MacDiskData;
+
+struct __attribute__ ((packed)) _MacRawPartition {
+	uint16_t	signature;      /* expected to be MAC_PARTITION_MAGIC */
+	uint16_t	res1;
+	uint32_t	map_count;      /* # blocks in partition map */
+	uint32_t	start_block;    /* absolute starting block # of partition */
+	uint32_t	block_count;    /* number of blocks in partition */
+	char		name[32];       /* partition name */
+	char		type[32];       /* string type description */
+	uint32_t	data_start;     /* rel block # of first data block */
+	uint32_t	data_count;     /* number of data blocks */
+	uint32_t	status;         /* partition status bits */
+	uint32_t	boot_start;
+	uint32_t	boot_count;
+	uint32_t	boot_load;
+	uint32_t	boot_load2;
+	uint32_t	boot_entry;
+	uint32_t	boot_entry2;
+	uint32_t	boot_cksum;
+	char		processor[16];  /* Contains 680x0, x=0,2,3,4; or empty */
+	uint32_t	driver_sig;
+	char		_padding[372];
+};
+
+/* Driver descriptor structure, in block 0 */
+struct __attribute__ ((packed)) _MacRawDisk {
+	uint16_t	signature;      /* expected to be MAC_DRIVER_MAGIC */
+	uint16_t	block_size;	/* physical sector size */
+	uint32_t	block_count;	/* size of device in blocks */
+	uint16_t	dev_type;	/* reserved */
+	uint16_t	dev_id;		/* reserved */
+	uint32_t	data;		/* reserved */
+	uint16_t	driver_count;	/* # of driver descriptor entries */
+	uint8_t		driverlist[488];/* info about available drivers */
+	uint16_t	padding[3];	/* pad to 512 bytes */
+};
+
+struct __attribute__ ((packed)) _MacDeviceDriver {
+	uint32_t	block;		/* startblock in MacRawDisk->block_size units */
+	uint16_t	size;		/* size in 512 byte units */
+	uint16_t	type;		/* operating system type (MacOS = 1) */
+};
+
+struct _MacPartitionData {
+	char		volume_name[33];	/* eg: "Games" */
+	char		system_name[33];	/* eg: "Apple_Unix_SVR2" */
+	char		processor_name[17];
+
+	int		is_boot;
+	int		is_driver;
+	int		has_driver;
+	int		is_root;
+	int		is_swap;
+	int		is_lvm;
+	int		is_raid;
+
+	PedSector	data_region_length;
+	PedSector	boot_region_length;
+
+	uint32_t	boot_base_address;
+	uint32_t	boot_entry_address;
+	uint32_t	boot_checksum;
+
+	uint32_t	status;
+	uint32_t	driver_sig;
+};
+
+struct _MacDiskData {
+	int		ghost_size;		/* sectors per "driver" block */
+	int		part_map_entry_count;	/* # entries (incl. ghost) */
+	int		part_map_entry_num;	/* partition map location */
+
+	int		active_part_entry_count;	/* # real partitions */
+	int		free_part_entry_count;		/* # free space */
+	int		last_part_entry_num;		/* last entry number */
+
+	uint16_t	block_size;		/* physical sector size */
+	uint16_t	driver_count;
+	MacDeviceDriver	driverlist[1 + 60];	/* 488 bytes */
+};
+
+static PedDiskType mac_disk_type;
+
+static int
+_check_signature (MacRawDisk* raw_disk)
+{
+	if (PED_BE16_TO_CPU (raw_disk->signature) != MAC_DISK_MAGIC) {
+#ifdef DISCOVER_ONLY
+		return 0;
+#else
+		return ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_IGNORE_CANCEL,
+			_("Invalid signature %x for Mac disk labels."),
+			(int) PED_BE16_TO_CPU (raw_disk->signature))
+			== PED_EXCEPTION_IGNORE;
+#endif
+	}
+
+	return 1;
+}
+
+static int
+_rawpart_check_signature (MacRawPartition* raw_part)
+{
+	int	sig = (int) PED_BE16_TO_CPU (raw_part->signature);
+	return sig == MAC_PARTITION_MAGIC_1 || sig == MAC_PARTITION_MAGIC_2;
+}
+
+static int
+mac_probe (const PedDevice * dev)
+{
+	MacRawDisk	buf;
+
+	PED_ASSERT (dev != NULL, return 0);
+
+        if (dev->sector_size != 512)
+                return 0;
+
+	if (!ped_device_read (dev, &buf, 0, 1))
+		return 0;
+
+	return _check_signature (&buf);
+}
+
+static int
+_disk_add_part_map_entry (PedDisk* disk, int warn)
+{
+	MacDiskData*		mac_disk_data = disk->disk_specific;
+	PedPartition*		new_part;
+	MacPartitionData*	mac_part_data;
+	PedSector		part_map_size;
+	PedConstraint*		constraint_any = ped_constraint_any (disk->dev);
+
+#ifndef DISCOVER_ONLY
+	if (warn && ped_exception_throw (
+		PED_EXCEPTION_ERROR,
+		PED_EXCEPTION_FIX | PED_EXCEPTION_CANCEL,
+		_("Partition map has no partition map entry!"))
+			!= PED_EXCEPTION_FIX)
+		goto error;
+#endif /* !DISCOVER_ONLY */
+
+	part_map_size
+		= ped_round_up_to (mac_disk_data->last_part_entry_num, 64);
+	if (part_map_size == 0)
+		part_map_size = 64;
+
+	new_part = ped_partition_new (disk, 0, NULL, 1, part_map_size - 1);
+	if (!new_part)
+		goto error;
+
+	mac_part_data = new_part->disk_specific;
+	strcpy (mac_part_data->volume_name, "Apple");
+	strcpy (mac_part_data->system_name, "Apple_partition_map");
+
+	if (!ped_disk_add_partition (disk, new_part, constraint_any))
+		goto error_destroy_new_part;
+
+	mac_disk_data->part_map_entry_num = new_part->num;
+	mac_disk_data->part_map_entry_count
+		= new_part->geom.end - mac_disk_data->ghost_size;
+	ped_constraint_destroy (constraint_any);
+	return 1;
+
+error_destroy_new_part:
+	ped_partition_destroy (new_part);
+error:
+	ped_constraint_destroy (constraint_any);
+	return 0;
+}
+
+static PedDisk*
+mac_alloc (const PedDevice* dev)
+{
+	PedDisk*		disk;
+	MacDiskData*		mac_disk_data;
+
+	PED_ASSERT (dev != NULL, return NULL);
+
+#ifndef DISCOVER_ONLY
+	if (dev->length < 256) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("%s is too small for a Mac disk label!"),
+			dev->path);
+		goto error;
+	}
+#endif
+
+	disk = _ped_disk_alloc (dev, &mac_disk_type);
+	if (!disk)
+		goto error;
+
+	mac_disk_data = (MacDiskData*) ped_malloc (sizeof (MacDiskData));
+	if (!mac_disk_data)
+		goto error_free_disk;
+	disk->disk_specific = mac_disk_data;
+	mac_disk_data->ghost_size = disk->dev->sector_size / 512;
+	mac_disk_data->active_part_entry_count = 0;
+	mac_disk_data->free_part_entry_count = 1;
+	mac_disk_data->last_part_entry_num = 1;
+	mac_disk_data->block_size = 0;
+	mac_disk_data->driver_count = 0;
+	memset(&mac_disk_data->driverlist[0], 0, sizeof(mac_disk_data->driverlist));
+
+	if (!_disk_add_part_map_entry (disk, 0))
+		goto error_free_disk;
+	return disk;
+
+error_free_disk:
+	_ped_disk_free (disk);
+error:
+	return NULL;
+}
+
+static PedDisk*
+mac_duplicate (const PedDisk* disk)
+{
+	PedDisk*	new_disk;
+	MacDiskData*	new_mac_data;
+	MacDiskData*	old_mac_data = (MacDiskData*) disk->disk_specific;
+	PedPartition*	partition_map;
+       
+	new_disk = ped_disk_new_fresh (disk->dev, &mac_disk_type);
+	if (!new_disk)
+		goto error;
+
+	new_mac_data = (MacDiskData*) new_disk->disk_specific;
+
+	/* remove the partition map partition - it will be duplicated
+	 * later.
+	 */
+	partition_map = ped_disk_get_partition_by_sector (new_disk, 1);
+	PED_ASSERT (partition_map != NULL, return 0);
+	ped_disk_remove_partition (new_disk, partition_map);
+
+	/* ugly, but C is ugly :p */
+	memcpy (new_mac_data, old_mac_data, sizeof (MacDiskData));
+	return new_disk;
+
+	_ped_disk_free (new_disk);
+error:
+	return NULL;
+}
+
+static void
+mac_free (PedDisk* disk)
+{
+	MacDiskData*	mac_disk_data = disk->disk_specific;
+
+	_ped_disk_free (disk);
+	ped_free (mac_disk_data);
+}
+
+#ifndef DISCOVER_ONLY
+static int
+_clobber_part_map (PedDevice* dev)
+{
+	MacRawPartition		raw_part;
+	PedSector		sector;
+
+	for (sector=1; 1; sector++) {
+		if (!ped_device_read (dev, &raw_part, sector, 1))
+			return 0;
+		if (!_rawpart_check_signature (&raw_part))
+			return 1;
+		memset (&raw_part, 0, 512);
+		if (!ped_device_write (dev, &raw_part, sector, 1))
+			return 0;
+	}
+}
+
+static int
+mac_clobber (PedDevice* dev)
+{
+	MacRawDisk		raw_disk;
+
+	if (!ped_device_read (dev, &raw_disk, 0, 1))
+		return 0;
+	if (!_check_signature (&raw_disk))
+		return 0;
+	memset (&raw_disk, 0, 512);
+	if (!ped_device_write (dev, &raw_disk, 0, 1))
+		return 0;
+
+	return _clobber_part_map (dev);
+}
+#endif /* !DISCOVER_ONLY */
+
+static int
+_rawpart_cmp_type (MacRawPartition* raw_part, char* type)
+{
+	return strncasecmp (raw_part->type, type, 32) == 0;
+}
+
+static int
+_rawpart_cmp_name (MacRawPartition* raw_part, char* name)
+{
+	return strncasecmp (raw_part->name, name, 32) == 0;
+}
+
+static int
+_rawpart_is_partition_map (MacRawPartition* raw_part)
+{
+	return _rawpart_cmp_type (raw_part, "Apple_partition_map");
+}
+
+static int
+strncasestr (const char* haystack, const char* needle, int n)
+{
+	int	needle_size = strlen (needle);
+	int	i;
+
+	for (i = 0; haystack[i] && i < n - needle_size; i++) {
+		if (strncasecmp (haystack + i, needle, needle_size) == 0)
+			return 1;
+	}
+
+	return 0;
+}
+
+static int
+_rawpart_is_boot (MacRawPartition* raw_part)
+{
+	if (!strcasecmp(raw_part->type, "Apple_Bootstrap"))
+		return 1;
+
+	if (!strcasecmp(raw_part->type, "Apple_Boot"))
+		return 1;
+
+	return 0;
+}
+
+static int
+_rawpart_is_driver (MacRawPartition* raw_part)
+{
+	if (strncmp (raw_part->type, "Apple_", 6) != 0)
+		return 0;
+	if (!strncasestr (raw_part->type, "driver", 32))
+		return 0;
+	return 1;
+}
+
+static int
+_rawpart_has_driver (MacRawPartition* raw_part, MacDiskData* mac_disk_data)
+{
+	MacDeviceDriver *driverlist;
+	uint16_t i, bsz;
+	uint32_t driver_bs, driver_be, part_be;
+
+	driverlist = &mac_disk_data->driverlist[0];
+	bsz = mac_disk_data->block_size / 512;
+	for (i = 0; i < mac_disk_data->driver_count; i++) {
+		driver_bs = driverlist->block * bsz;
+		driver_be = driver_bs + driverlist->size;
+		part_be = raw_part->start_block + raw_part->block_count;
+		if (driver_bs >= raw_part->start_block && driver_be <= part_be)
+			return 1;
+		driverlist++;
+	}
+	return 0;
+}
+
+static int
+_rawpart_is_root (MacRawPartition* raw_part)
+{
+	if (!_rawpart_cmp_type (raw_part, "Apple_UNIX_SVR2"))
+		return 0;
+	if (strcmp (raw_part->name, "root") != 0)
+		return 0;
+	return 1;
+}
+
+static int
+_rawpart_is_swap (MacRawPartition* raw_part)
+{
+	if (!_rawpart_cmp_type (raw_part, "Apple_UNIX_SVR2"))
+		return 0;
+	if (strcmp (raw_part->name, "swap") != 0)
+		return 0;
+	return 1;
+}
+
+static int
+_rawpart_is_lvm (MacRawPartition* raw_part)
+{
+	if (strcmp (raw_part->type, "Linux_LVM") != 0)
+		return 0;
+	return 1;
+}
+
+static int
+_rawpart_is_raid (MacRawPartition* raw_part)
+{
+	if (strcmp (raw_part->type, "Linux_RAID") != 0)
+		return 0;
+	return 1;
+}
+
+static int
+_rawpart_is_void (MacRawPartition* raw_part)
+{
+	return _rawpart_cmp_type (raw_part, "Apple_Void");
+}
+
+/* returns 1 if the raw_part represents a partition that is "unused space", or
+ * doesn't represent a partition at all.  NOTE: some people make Apple_Free
+ * partitions with MacOS, because they can't select another type.  So, if the
+ * name is anything other than "Extra" or "", it is treated as a "real"
+ * partition.
+ */
+static int
+_rawpart_is_active (MacRawPartition* raw_part)
+{
+	if (_rawpart_cmp_type (raw_part, "Apple_Free")
+	    && (_rawpart_cmp_name (raw_part, "Extra")
+		|| _rawpart_cmp_name (raw_part, "")))
+		return 0;
+	if (_rawpart_cmp_type (raw_part, "Apple_Void"))
+		return 0;
+	if (_rawpart_cmp_type (raw_part, "Apple_Scratch"))
+		return 0;
+	if (_rawpart_cmp_type (raw_part, "Apple_Extra"))
+		return 0;
+
+	return 1;
+}
+
+static PedPartition*
+_rawpart_analyse (MacRawPartition* raw_part, PedDisk* disk, int num)
+{
+	MacDiskData*		mac_disk_data;
+	PedPartition*		part;
+	MacPartitionData*	mac_part_data;
+	PedSector		block_size;
+	PedSector		start, length;
+
+	if (!_rawpart_check_signature (raw_part)) {
+#ifndef DISCOVER_ONLY
+		if (ped_exception_throw (
+			PED_EXCEPTION_WARNING,
+			PED_EXCEPTION_IGNORE_CANCEL,
+			_("Partition %d has an invalid signature %x."),
+			num,
+			(int) PED_BE16_TO_CPU (raw_part->signature))
+				!= PED_EXCEPTION_IGNORE)
+#endif
+			goto error;
+	}
+
+	mac_disk_data = (MacDiskData*) disk->disk_specific;
+	block_size = disk->dev->sector_size / 512;
+
+	start = PED_BE32_TO_CPU (raw_part->start_block) * block_size;
+	length = PED_BE32_TO_CPU (raw_part->block_count) * block_size;
+	if (length == 0) {
+#ifndef DISCOVER_ONLY
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Partition %d has an invalid length of 0 bytes!"),
+			num);
+#endif
+		return NULL;
+	}
+	part = ped_partition_new (disk, 0, NULL, start, start + length - 1);
+	if (!part)
+		goto error;
+
+	mac_part_data = part->disk_specific;
+
+	strncpy (mac_part_data->volume_name, raw_part->name, 32);
+	strncpy (mac_part_data->system_name, raw_part->type, 32);
+	strncpy (mac_part_data->processor_name, raw_part->processor, 16);
+
+	mac_part_data->is_boot = _rawpart_is_boot (raw_part);
+	mac_part_data->is_driver = _rawpart_is_driver (raw_part);
+	if (mac_part_data->is_driver)
+		mac_part_data->has_driver = _rawpart_has_driver(raw_part, mac_disk_data);
+	mac_part_data->is_root = _rawpart_is_root (raw_part);
+	mac_part_data->is_swap = _rawpart_is_swap (raw_part);
+	mac_part_data->is_lvm = _rawpart_is_lvm (raw_part);
+	mac_part_data->is_raid = _rawpart_is_raid (raw_part);
+
+	/* "data" region */
+#ifndef DISCOVER_ONLY
+	if (raw_part->data_start) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("The data region doesn't start at the start "
+			  "of the partition."));
+		goto error_destroy_part;
+	}
+#endif /* !DISCOVER_ONLY */
+	mac_part_data->data_region_length
+		= PED_BE32_TO_CPU (raw_part->data_count) * block_size;
+
+	/* boot region - we have no idea what this is for, but Mac OSX
+	 * seems to put garbage here, and doesn't pay any attention to
+	 * it afterwards.  [clausen, dan burcaw]
+	 */
+#if 0
+	if (raw_part->boot_start) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("The boot region doesn't start at the start "
+			  "of the partition."));
+		goto error_destroy_part;
+	}
+#endif
+	mac_part_data->boot_region_length
+		= PED_BE32_TO_CPU (raw_part->boot_count) * block_size;
+
+#ifndef DISCOVER_ONLY
+	if (mac_part_data->has_driver) {
+		if (mac_part_data->boot_region_length < part->geom.length) {
+			if (ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_IGNORE_CANCEL,
+				_("The partition's boot region doesn't occupy "
+				  "the entire partition."))
+					!= PED_EXCEPTION_IGNORE)
+				goto error_destroy_part;
+		}
+	} else {
+		if (mac_part_data->data_region_length < part->geom.length &&
+		    !mac_part_data->is_boot) {
+			if (ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_IGNORE_CANCEL,
+				_("The partition's data region doesn't occupy "
+				  "the entire partition."))
+					!= PED_EXCEPTION_IGNORE)
+				goto error_destroy_part;
+		}
+	}
+#endif /* !DISCOVER_ONLY */
+
+	mac_part_data->boot_base_address
+		= PED_BE32_TO_CPU (raw_part->boot_load);
+	mac_part_data->boot_entry_address
+		= PED_BE32_TO_CPU (raw_part->boot_entry);
+	mac_part_data->boot_checksum
+		= PED_BE32_TO_CPU (raw_part->boot_cksum);
+
+	mac_part_data->status = PED_BE32_TO_CPU (raw_part->status);
+	mac_part_data->driver_sig = PED_BE32_TO_CPU (raw_part->driver_sig);
+
+	return part;
+
+error_destroy_part:
+	ped_partition_destroy (part);
+error:
+	return NULL;
+}
+
+/* looks at the partition map size field in a mac raw partition, and calculates
+ * what the size of the partition map should be, from it
+ */
+static int
+_rawpart_get_partmap_size (MacRawPartition* raw_part, PedDisk* disk)
+{
+	MacDiskData*	mac_disk_data = disk->disk_specific;
+	PedSector	sector_size = disk->dev->sector_size / 512;
+	PedSector	part_map_start;
+	PedSector	part_map_end;
+
+	part_map_start = mac_disk_data->ghost_size;
+	part_map_end = sector_size * PED_BE32_TO_CPU (raw_part->map_count);
+
+	return part_map_end - part_map_start + 1;
+}
+
+static int
+_disk_analyse_block_size (PedDisk* disk, MacRawDisk* raw_disk)
+{
+	PedSector	block_size;
+
+	if (PED_BE16_TO_CPU (raw_disk->block_size) % 512) {
+#ifndef DISCOVER_ONLY
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Weird block size on device descriptor: %d bytes is "
+			  "not divisible by 512."),
+			(int) PED_BE16_TO_CPU (raw_disk->block_size));
+#endif
+		goto error;
+	}
+
+	block_size = PED_BE16_TO_CPU (raw_disk->block_size) / 512;
+	if (block_size != disk->dev->sector_size / 512) {
+#ifndef DISCOVER_ONLY
+		if (ped_exception_throw (
+			PED_EXCEPTION_WARNING,
+			PED_EXCEPTION_IGNORE_CANCEL,
+			_("The driver descriptor says the physical block size "
+			  "is %d bytes, but Linux says it is %d bytes."),
+			(int) block_size * 512,
+			(int) disk->dev->sector_size)
+				!= PED_EXCEPTION_IGNORE)
+			goto error;
+#endif
+		disk->dev->sector_size = block_size * 512;
+	}
+
+	return 1;
+
+error:
+	return 0;
+}
+
+/* Tries to figure out the block size used by the drivers, for the ghost
+ * partitioning scheme.  Ghost partitioning works like this: the OpenFirmware
+ * (OF) sees 512 byte blocks, but some drivers use 2048 byte blocks (and,
+ * perhaps, some other number?).  To remain compatible, the partition map
+ * only has "real" partition map entries on ghost-aligned block numbers (and
+ * the others are padded with Apple_Void partitions).  This function tries
+ * to figure out what the "ghost-aligned" size is... (which, believe-it-or-not,
+ * doesn't always equal 2048!!!)
+ */
+static int
+_disk_analyse_ghost_size (PedDisk* disk)
+{
+	MacDiskData*		mac_disk_data = disk->disk_specific;
+	MacRawPartition		raw_part;
+	int			i;
+
+	for (i = 1; i < 64; i *= 2) {
+		if (!ped_device_read (disk->dev, &raw_part, i, 1))
+			return 0;
+		if (_rawpart_check_signature (&raw_part)
+		    && !_rawpart_is_void (&raw_part)) {
+			mac_disk_data->ghost_size = i;
+			PED_ASSERT (i <= disk->dev->sector_size / 512,
+				    return 0);
+			return 1;
+		}
+	}
+
+#ifndef DISCOVER_ONLY
+	ped_exception_throw (
+		PED_EXCEPTION_ERROR,
+		PED_EXCEPTION_CANCEL,
+		_("No valid partition map found."));
+#endif
+	return 0;
+}
+
+static int
+mac_read (PedDisk* disk)
+{
+	MacRawDisk		raw_disk;
+	MacRawPartition		raw_part;
+	MacDiskData*		mac_disk_data;
+	PedPartition*		part;
+	int			num;
+	PedSector		ghost_size;
+	PedConstraint*		constraint_exact;
+	int			last_part_entry_num = 0;
+
+	PED_ASSERT (disk != NULL, return 0);
+
+	mac_disk_data = disk->disk_specific;
+	mac_disk_data->part_map_entry_num = 0;		/* 0 == none */
+
+	if (!ped_device_read (disk->dev, &raw_disk, 0, 1))
+		goto error;
+	if (!_check_signature (&raw_disk))
+		goto error;
+
+	if (!_disk_analyse_block_size (disk, &raw_disk))
+		goto error;
+	if (!_disk_analyse_ghost_size (disk))
+		goto error;
+	ghost_size = mac_disk_data->ghost_size;
+
+	if (!ped_disk_delete_all (disk))
+		goto error;
+
+	if (raw_disk.driver_count && raw_disk.driver_count < 62) {
+		memcpy(&mac_disk_data->driverlist[0], &raw_disk.driverlist[0],
+				sizeof(mac_disk_data->driverlist));
+		mac_disk_data->driver_count = raw_disk.driver_count;
+		mac_disk_data->block_size = raw_disk.block_size;
+	}
+
+	for (num=1; num==1 || num <= last_part_entry_num; num++) {
+		if (!ped_device_read (disk->dev, &raw_part,
+				      num * ghost_size, 1))
+			goto error_delete_all;
+
+		if (!_rawpart_check_signature (&raw_part))
+			continue;
+
+		if (num == 1)
+			last_part_entry_num
+				= _rawpart_get_partmap_size (&raw_part, disk);
+		if (_rawpart_get_partmap_size (&raw_part, disk)
+				!= last_part_entry_num) {
+			if (ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_IGNORE_CANCEL,
+				_("Conflicting partition map entry sizes!  "
+				  "Entry 1 says it is %d, but entry %d says "
+				  "it is %d!"),
+				last_part_entry_num,
+				_rawpart_get_partmap_size (&raw_part, disk))
+					!= PED_EXCEPTION_IGNORE)
+				goto error_delete_all;
+		}
+
+		if (!_rawpart_is_active (&raw_part))
+			continue;
+
+		part = _rawpart_analyse (&raw_part, disk, num);
+		if (!part)
+			goto error_delete_all;
+		part->num = num;
+		part->fs_type = ped_file_system_probe (&part->geom);
+		constraint_exact = ped_constraint_exact (&part->geom);
+		if (!ped_disk_add_partition (disk, part, constraint_exact))
+			goto error_delete_all;
+		ped_constraint_destroy (constraint_exact);
+
+		if (_rawpart_is_partition_map (&raw_part)) {
+			if (mac_disk_data->part_map_entry_num
+			    && ped_exception_throw (
+					PED_EXCEPTION_ERROR,
+					PED_EXCEPTION_IGNORE_CANCEL,
+					_("Weird!  There are 2 partitions "
+					  "map entries!"))
+			    != PED_EXCEPTION_IGNORE)
+				goto error_delete_all;
+
+			mac_disk_data->part_map_entry_num = num;
+			mac_disk_data->part_map_entry_count
+				= part->geom.end - ghost_size + 1;
+		}
+	}
+
+	if (!mac_disk_data->part_map_entry_num) {
+		if (!_disk_add_part_map_entry (disk, 1))
+			goto error_delete_all;
+		ped_disk_commit_to_dev (disk);
+	}
+	return 1;
+
+error_delete_all:
+	ped_disk_delete_all (disk);
+error:
+	return 0;
+}
+
+#ifndef DISCOVER_ONLY
+/* The Ghost partition: is a blank entry, used to pad out each block (where
+ * there physical block size > 512 bytes).  This is because OpenFirmware uses
+ * 512 byte blocks, but device drivers Think Different TM, with a different
+ * lbock size, so we need to do this to avoid a clash (!)
+ */
+static int
+_pad_raw_part (PedDisk* disk, int num, MacRawPartition* part_map)
+{
+	MacDiskData*		mac_disk_data = disk->disk_specific;
+	MacRawPartition		ghost_entry;
+	int			i;
+
+	memset (&ghost_entry, 0, sizeof (ghost_entry));
+	ghost_entry.signature = PED_CPU_TO_BE16 (MAC_PARTITION_MAGIC_2);
+	strcpy (ghost_entry.type, "Apple_Void");
+	ghost_entry.map_count
+		= PED_CPU_TO_BE32 (mac_disk_data->last_part_entry_num);
+
+	for (i=0; i < mac_disk_data->ghost_size - 1; i++)
+		memcpy (&part_map [i + (num - 1) * mac_disk_data->ghost_size],
+			&ghost_entry, sizeof (MacRawPartition));
+
+	return 1;
+}
+
+static void
+_update_driver_count (MacRawPartition* part_map_entry,
+		      MacDiskData *mac_driverdata, const MacDiskData* mac_disk_data)
+{
+	uint16_t	i, count_orig, count_cur, bsz;
+	uint32_t	driver_bs, driver_be, part_be;
+
+	bsz = mac_disk_data->block_size / 512;
+	count_cur = mac_driverdata->driver_count;
+	count_orig = mac_disk_data->driver_count;
+	for (i = 0; i < count_orig; i++) {
+		driver_bs = mac_disk_data->driverlist[i].block * bsz;
+		driver_be = driver_bs + mac_disk_data->driverlist[i].size;
+		part_be = part_map_entry->start_block + part_map_entry->block_count;
+		if (driver_bs >= part_map_entry->start_block
+				&& driver_be <= part_be) {
+			mac_driverdata->driverlist[count_cur].block
+				= mac_disk_data->driverlist[i].block;
+			mac_driverdata->driverlist[count_cur].size
+				= mac_disk_data->driverlist[i].size;
+			mac_driverdata->driverlist[count_cur].type
+				= mac_disk_data->driverlist[i].type;
+			mac_driverdata->driver_count++;
+			break;
+		}
+	}
+}
+
+static int
+_generate_raw_part (PedDisk* disk, PedPartition* part,
+	       	    MacRawPartition* part_map, MacDiskData *mac_driverdata)
+{
+	MacDiskData*		mac_disk_data;
+	MacPartitionData*	mac_part_data;
+	MacRawPartition*	part_map_entry;
+	PedSector		block_size = disk->dev->sector_size / 512;
+
+	PED_ASSERT (part->num > 0, goto error);
+
+	mac_disk_data = disk->disk_specific;
+	mac_part_data = part->disk_specific;
+
+	part_map_entry = &part_map [part->num * mac_disk_data->ghost_size - 1];
+
+	part_map_entry->signature = PED_CPU_TO_BE16 (MAC_PARTITION_MAGIC_2);
+	part_map_entry->map_count
+		= PED_CPU_TO_BE32 (mac_disk_data->last_part_entry_num);
+	part_map_entry->start_block
+		= PED_CPU_TO_BE32 (part->geom.start / block_size);
+	part_map_entry->block_count
+		= PED_CPU_TO_BE32 (part->geom.length / block_size);
+	strcpy (part_map_entry->name, mac_part_data->volume_name);
+	strcpy (part_map_entry->type, mac_part_data->system_name);
+
+	if (mac_part_data->is_driver) {
+		mac_part_data->boot_region_length = part->geom.length;
+		if (mac_part_data->has_driver)
+			_update_driver_count(part_map_entry, mac_driverdata,
+					mac_disk_data);
+	} else
+		mac_part_data->data_region_length = part->geom.length;
+	part_map_entry->data_count = PED_CPU_TO_BE32 (
+			mac_part_data->data_region_length / block_size);
+	part_map_entry->boot_count = PED_CPU_TO_BE32 (
+			mac_part_data->boot_region_length / block_size);
+	part_map_entry->status = PED_CPU_TO_BE32 (mac_part_data->status);
+	part_map_entry->driver_sig
+		= PED_CPU_TO_BE32 (mac_part_data->driver_sig);
+
+	part_map_entry->boot_load =
+		PED_CPU_TO_BE32 (mac_part_data->boot_base_address);
+	part_map_entry->boot_entry =
+		PED_CPU_TO_BE32 (mac_part_data->boot_entry_address);
+	part_map_entry->boot_cksum =
+		PED_CPU_TO_BE32 (mac_part_data->boot_checksum);
+
+	strncpy (part_map_entry->processor, mac_part_data->processor_name, 16);
+
+	if (!_pad_raw_part (disk, part->num, part_map))
+		goto error;
+
+	return 1;
+
+error:
+	return 0;	
+}
+
+static int
+_generate_raw_freespace_part (PedDisk* disk, PedGeometry* geom, int num,
+			      MacRawPartition* part_map)
+{
+	MacDiskData*		mac_disk_data = disk->disk_specific;
+	MacRawPartition*	part_map_entry;
+	PedSector		block_size = disk->dev->sector_size / 512;
+
+	PED_ASSERT (num > 0, goto error);
+
+	part_map_entry = &part_map [num * mac_disk_data->ghost_size - 1];
+
+	part_map_entry->signature = PED_CPU_TO_BE16 (MAC_PARTITION_MAGIC_2);
+	part_map_entry->map_count
+		= PED_CPU_TO_BE32 (mac_disk_data->last_part_entry_num);
+	part_map_entry->start_block
+		= PED_CPU_TO_BE32 (geom->start / block_size);
+	part_map_entry->block_count
+		= PED_CPU_TO_BE32 (geom->length / block_size);
+	strcpy (part_map_entry->name, "Extra");
+	strcpy (part_map_entry->type, "Apple_Free");
+
+	part_map_entry->data_count = PED_CPU_TO_BE32 (geom->length);
+	part_map_entry->status = 0;
+	part_map_entry->driver_sig = 0;
+
+	if (!_pad_raw_part (disk, num, part_map))
+		goto error;
+
+	return 1;
+
+error:
+	return 0;	
+}
+
+static int
+_generate_empty_part (PedDisk* disk, int num, MacRawPartition* part_map)
+{
+	MacDiskData*		mac_disk_data = disk->disk_specific;
+	MacRawPartition*	part_map_entry;
+
+	PED_ASSERT (num > 0, return 0);
+
+	part_map_entry = &part_map [num * mac_disk_data->ghost_size - 1];
+	part_map_entry->signature = PED_CPU_TO_BE16 (MAC_PARTITION_MAGIC_2);
+	part_map_entry->map_count
+		= PED_CPU_TO_BE32 (mac_disk_data->last_part_entry_num);
+	strcpy (part_map_entry->type, "Apple_Void");
+
+	return _pad_raw_part (disk, num, part_map);
+}
+
+/* returns the first empty entry in the partition map */
+static int
+_get_first_empty_part_entry (PedDisk* disk, MacRawPartition* part_map)
+{
+	MacDiskData*	mac_disk_data = disk->disk_specific;
+	int		i;
+
+	for (i=1; i <= mac_disk_data->last_part_entry_num; i++) {
+		if (!part_map[i * mac_disk_data->ghost_size - 1].signature)
+			return i;
+	}
+
+	return 0;
+}
+
+static int
+write_block_zero (PedDisk* disk, MacDiskData* mac_driverdata)
+{
+	PedDevice*	dev = disk->dev;
+	MacRawDisk	raw_disk;
+
+	if (!ped_device_read (dev, &raw_disk, 0, 1))
+		return 0;
+
+	raw_disk.signature = PED_CPU_TO_BE16 (MAC_DISK_MAGIC);
+	raw_disk.block_size = PED_CPU_TO_BE16 (dev->sector_size);
+	raw_disk.block_count
+		= PED_CPU_TO_BE32 (dev->length / (dev->sector_size / 512));
+
+	raw_disk.driver_count = mac_driverdata->driver_count;
+	memcpy(&raw_disk.driverlist[0], &mac_driverdata->driverlist[0],
+			sizeof(raw_disk.driverlist));
+
+	return ped_device_write (dev, &raw_disk, 0, 1);
+}
+
+static int
+mac_write (PedDisk* disk)
+{
+	MacRawPartition*	part_map;
+	MacDiskData*		mac_disk_data;
+	MacDiskData*		mac_driverdata;	/* updated driver list */
+	PedPartition*		part;
+	int			num;
+
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (disk->disk_specific != NULL, return 0);
+	PED_ASSERT (disk->dev != NULL, return 0);
+	PED_ASSERT (!disk->update_mode, return 0);
+
+	mac_disk_data = disk->disk_specific;
+
+	if (!ped_disk_get_partition (disk, mac_disk_data->part_map_entry_num)) {
+		if (!_disk_add_part_map_entry (disk, 1))
+			goto error;
+	}
+
+	mac_driverdata = ped_malloc(sizeof(MacDiskData));
+	if (!mac_driverdata)
+		goto error;
+	memset (mac_driverdata, 0, sizeof(MacDiskData));
+
+	part_map = (MacRawPartition*)
+			ped_malloc (mac_disk_data->part_map_entry_count * 512);
+	if (!part_map)
+		goto error_free_driverdata;
+	memset (part_map, 0, mac_disk_data->part_map_entry_count * 512);
+
+/* write (to memory) the "real" partitions */
+	for (part = ped_disk_next_partition (disk, NULL); part;
+	     part = ped_disk_next_partition (disk, part)) {
+		if (!ped_partition_is_active (part))
+			continue;
+		if (!_generate_raw_part (disk, part, part_map, mac_driverdata))
+			goto error_free_part_map;
+	}
+
+/* write the "free space" partitions */
+	for (part = ped_disk_next_partition (disk, NULL); part;
+	     part = ped_disk_next_partition (disk, part)) {
+		if (part->type != PED_PARTITION_FREESPACE)
+			continue;
+		num = _get_first_empty_part_entry (disk, part_map);
+		if (!_generate_raw_freespace_part (disk, &part->geom, num,
+						   part_map))
+			goto error_free_part_map;
+	}
+
+/* write the "void" (empty) partitions */
+	for (num = _get_first_empty_part_entry (disk, part_map); num;
+	     num = _get_first_empty_part_entry (disk, part_map))
+		_generate_empty_part (disk, num, part_map);
+
+/* write to disk */
+	if (!ped_device_write (disk->dev, part_map, 1,
+			       mac_disk_data->part_map_entry_count))
+		goto error_free_part_map;
+	ped_free (part_map);
+	return write_block_zero (disk, mac_driverdata);
+
+error_free_part_map:
+	ped_free (part_map);
+error_free_driverdata:
+	ped_free (mac_driverdata);
+error:
+	return 0;
+}
+#endif /* !DISCOVER_ONLY */
+
+static PedPartition*
+mac_partition_new (
+	const PedDisk* disk, PedPartitionType part_type,
+	const PedFileSystemType* fs_type, PedSector start, PedSector end)
+{
+	PedPartition*		part;
+	MacPartitionData*	mac_data;
+
+	part = _ped_partition_alloc (disk, part_type, fs_type, start, end);
+	if (!part)
+		goto error;
+
+	if (ped_partition_is_active (part)) {
+		part->disk_specific
+			= mac_data = ped_malloc (sizeof (MacPartitionData));
+		if (!mac_data)
+			goto error_free_part;
+
+		memset (mac_data, 0, sizeof (MacPartitionData));
+		strcpy (mac_data->volume_name, "untitled");
+	} else {
+		part->disk_specific = NULL;
+	}
+	return part;
+
+	ped_free (mac_data);
+error_free_part:
+	ped_free (part);
+error:
+	return 0;
+}
+
+static PedPartition*
+mac_partition_duplicate (const PedPartition* part)
+{
+	PedPartition*		new_part;
+	MacPartitionData*	new_mac_data;
+	MacPartitionData*	old_mac_data;
+
+	new_part = ped_partition_new (part->disk, part->type,
+				      part->fs_type, part->geom.start,
+				      part->geom.end);
+	if (!new_part)
+		return NULL;
+	new_part->num = part->num;
+
+	old_mac_data = (MacPartitionData*) part->disk_specific;
+	new_mac_data = (MacPartitionData*) new_part->disk_specific;
+
+	/* ugly, but C is ugly :p */
+	memcpy (new_mac_data, old_mac_data, sizeof (MacPartitionData));
+	return new_part;
+}
+
+static void
+mac_partition_destroy (PedPartition* part)
+{
+	PED_ASSERT (part != NULL, return);
+
+	if (ped_partition_is_active (part))
+		ped_free (part->disk_specific);
+	ped_free (part);
+}
+
+static int
+mac_partition_set_system (PedPartition* part, const PedFileSystemType* fs_type)
+{
+	MacPartitionData* mac_data = part->disk_specific;
+
+	part->fs_type = fs_type;
+
+	if (fs_type && !strcmp (fs_type->name, "linux-swap"))
+		ped_partition_set_flag (part, PED_PARTITION_SWAP, 1);
+
+	if (mac_data->is_boot) {
+		strcpy (mac_data->system_name, "Apple_Bootstrap");
+		mac_data->status = 0x33;
+		return 1;
+	}
+
+	if (fs_type && (!strcmp (fs_type->name, "hfs")
+			|| !strcmp (fs_type->name, "hfs+"))) {
+		strcpy (mac_data->system_name, "Apple_HFS");
+		mac_data->status |= 0x7f;
+	} else if (fs_type && !strcmp (fs_type->name, "hfsx")) {
+		strcpy (mac_data->system_name, "Apple_HFSX");
+		mac_data->status |= 0x7f;
+	} else {
+		strcpy (mac_data->system_name, "Apple_UNIX_SVR2");
+		mac_data->status = 0x33;
+	}
+
+	return 1;
+}
+
+static int
+mac_partition_set_flag (PedPartition* part, PedPartitionFlag flag, int state)
+{
+	MacPartitionData*	mac_data;
+
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk_specific != NULL, return 0);
+
+	mac_data = part->disk_specific;
+
+	switch (flag) {
+	case PED_PARTITION_BOOT:
+		mac_data->is_boot = state;
+
+		if (part->fs_type)
+			return mac_partition_set_system (part, part->fs_type);
+
+		if (state) {
+			strcpy (mac_data->system_name, "Apple_Bootstrap");
+			mac_data->status = 0x33;
+		}
+		return 1;
+
+	case PED_PARTITION_ROOT:
+		if (state) {
+			strcpy (mac_data->volume_name, "root");
+			mac_data->is_swap = 0;
+		} else {
+			if (mac_data->is_root)
+				strcpy (mac_data->volume_name, "untitled");
+		}
+		mac_data->is_root = state;
+		return 1;
+
+	case PED_PARTITION_SWAP:
+		if (state) {
+			strcpy (mac_data->volume_name, "swap");
+			mac_data->is_root = 0;
+		} else {
+			if (mac_data->is_swap)
+				strcpy (mac_data->volume_name, "untitled");
+		}
+		mac_data->is_swap = state;
+		return 1;
+
+	case PED_PARTITION_LVM:
+		if (state) {
+			strcpy (mac_data->system_name, "Linux_LVM");
+			mac_data->is_lvm = state;
+		} else {
+			if (mac_data->is_lvm)
+				mac_partition_set_system (part, part->fs_type);
+		}
+		return 1;
+
+	case PED_PARTITION_RAID:
+		if (state) {
+			strcpy (mac_data->system_name, "Linux_RAID");
+			mac_data->is_raid = state;
+		} else {
+			if (mac_data->is_raid)
+				mac_partition_set_system (part, part->fs_type);
+		}
+		return 1;
+
+	default:
+		return 0;
+	}
+}
+
+static int
+mac_partition_get_flag (const PedPartition* part, PedPartitionFlag flag)
+{
+	MacPartitionData*	mac_data;
+
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk_specific != NULL, return 0);
+
+	mac_data = part->disk_specific;
+	switch (flag) {
+	case PED_PARTITION_BOOT:
+		return mac_data->is_boot;
+
+	case PED_PARTITION_ROOT:
+		return mac_data->is_root;
+
+	case PED_PARTITION_SWAP:
+		return mac_data->is_swap;
+
+	case PED_PARTITION_LVM:
+		return mac_data->is_lvm;
+
+	case PED_PARTITION_RAID:
+		return mac_data->is_raid;
+
+	default:
+		return 0;
+	}
+}
+
+static int
+mac_partition_is_flag_available (
+	const PedPartition* part, PedPartitionFlag flag)
+{
+	switch (flag) {
+	case PED_PARTITION_BOOT:
+	case PED_PARTITION_ROOT:
+	case PED_PARTITION_SWAP:
+	case PED_PARTITION_LVM:
+	case PED_PARTITION_RAID:
+		return 1;
+
+	default:
+		return 0;
+	}
+}
+
+static void
+mac_partition_set_name (PedPartition* part, const char* name)
+{
+	MacPartitionData*	mac_data;
+	int			i;
+
+	PED_ASSERT (part != NULL, return);
+	PED_ASSERT (part->disk_specific != NULL, return);
+	mac_data = part->disk_specific;
+
+#ifndef DISCOVER_ONLY
+	if (mac_data->is_root || mac_data->is_swap) {
+		if (ped_exception_throw (
+			PED_EXCEPTION_WARNING,
+			PED_EXCEPTION_IGNORE_CANCEL,
+			_("Changing the name of a root or swap partition "
+			  "will prevent Linux from recognising it as such."))
+				!= PED_EXCEPTION_IGNORE)
+			return;
+		mac_data->is_root = mac_data->is_swap = 0;
+	}
+#endif
+
+	strncpy (mac_data->volume_name, name, 32);
+	mac_data->volume_name [32] = 0;
+	for (i = strlen (mac_data->volume_name) - 1;
+			mac_data->volume_name[i] == ' '; i--)
+		mac_data->volume_name [i] = 0;
+}
+
+static const char*
+mac_partition_get_name (const PedPartition* part)
+{
+	MacPartitionData*	mac_data;
+
+	PED_ASSERT (part != NULL, return NULL);
+	PED_ASSERT (part->disk_specific != NULL, return NULL);
+	mac_data = part->disk_specific;
+
+	return mac_data->volume_name;
+}
+
+static PedConstraint*
+_primary_constraint (PedDisk* disk)
+{
+	PedAlignment	start_align;
+	PedAlignment	end_align;
+	PedGeometry	max_geom;
+	PedSector	sector_size;
+
+	sector_size = disk->dev->sector_size / 512;
+
+	if (!ped_alignment_init (&start_align, 0, sector_size))
+		return NULL;
+	if (!ped_alignment_init (&end_align, -1, sector_size))
+		return NULL;
+	if (!ped_geometry_init (&max_geom, disk->dev, 1, disk->dev->length - 1))
+		return NULL;
+
+	return ped_constraint_new (&start_align, &end_align, &max_geom,
+				   &max_geom, 1, disk->dev->length);
+}
+
+static int
+mac_partition_align (PedPartition* part, const PedConstraint* constraint)
+{
+	PED_ASSERT (part != NULL, return 0);
+
+	if (_ped_partition_attempt_align (part, constraint,
+					  _primary_constraint (part->disk)))
+	       	return 1;
+
+#ifndef DISCOVER_ONLY
+	ped_exception_throw (
+		PED_EXCEPTION_ERROR,
+		PED_EXCEPTION_CANCEL,
+		_("Unable to satisfy all constraints on the partition."));
+#endif
+	return 0;
+}
+
+static int
+mac_partition_enumerate (PedPartition* part)
+{
+	PedDisk*		disk;
+	MacDiskData*		mac_disk_data;
+	int			i;
+	int			max_part_count;
+
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk != NULL, return 0);
+
+	disk = part->disk;
+	mac_disk_data = (MacDiskData*) disk->disk_specific;
+
+	max_part_count = ped_disk_get_max_primary_partition_count (disk);
+
+	if (part->num > 0 && part->num <= mac_disk_data->part_map_entry_count)
+		return 1;
+
+	for (i = 1; i <= max_part_count; i++) {
+		if (!ped_disk_get_partition (disk, i)) {
+			part->num = i;
+			return 1;
+		}
+	}
+
+#ifndef DISCOVER_ONLY
+	ped_exception_throw (
+		PED_EXCEPTION_ERROR,
+		PED_EXCEPTION_CANCEL,
+		_("Can't add another partition -- the partition map is too "
+		  "small!"));
+#endif
+
+	return 0;
+}
+
+static int
+_disk_count_partitions (PedDisk* disk)
+{
+	MacDiskData*		mac_disk_data = disk->disk_specific;
+	PedPartition*		part = NULL;
+	PedPartition*		last = NULL;
+
+	PED_ASSERT (disk->update_mode, return 0);
+
+	mac_disk_data->active_part_entry_count = 0;
+	mac_disk_data->free_part_entry_count = 0;
+	mac_disk_data->last_part_entry_num = 0;
+
+	/* subtle: we only care about free space after the partition map.
+	 * the partition map is an "active" partition, BTW... */
+	for (part = ped_disk_next_partition (disk, part); part;
+	     part = ped_disk_next_partition (disk, part)) {
+		if (!ped_partition_is_active (part))
+			continue;
+
+		mac_disk_data->active_part_entry_count++;
+		if (last && last->geom.end + 1 < part->geom.start)
+			mac_disk_data->free_part_entry_count++;
+		mac_disk_data->last_part_entry_num
+			= PED_MAX (mac_disk_data->last_part_entry_num,
+				   part->num);
+
+		last = part;
+	}
+
+	if (last && last->geom.end < disk->dev->length - 1)
+		mac_disk_data->free_part_entry_count++;
+
+	mac_disk_data->last_part_entry_num
+		= PED_MAX (mac_disk_data->last_part_entry_num,
+			   mac_disk_data->active_part_entry_count
+				+ mac_disk_data->free_part_entry_count);
+	return 1;
+}
+
+static int
+add_metadata_part (PedDisk* disk, PedSector start, PedSector end)
+{
+	PedPartition*		new_part;
+	PedConstraint*		constraint_any = ped_constraint_any (disk->dev);
+
+	PED_ASSERT (disk != NULL, return 0);
+
+	new_part = ped_partition_new (disk, PED_PARTITION_METADATA, NULL,
+				      start, end);
+	if (!new_part)
+		goto error;
+	if (!ped_disk_add_partition (disk, new_part, constraint_any))
+		goto error_destroy_new_part;
+
+	ped_constraint_destroy (constraint_any);
+	return 1;
+
+error_destroy_new_part:
+	ped_partition_destroy (new_part);
+error:
+	ped_constraint_destroy (constraint_any);
+	return 0;
+}
+
+static int
+mac_alloc_metadata (PedDisk* disk)
+{
+	MacDiskData*		mac_disk_data;
+
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (disk->disk_specific != NULL, return 0);
+	PED_ASSERT (disk->dev != NULL, return 0);
+
+	mac_disk_data = disk->disk_specific;
+
+	if (!add_metadata_part (disk, 0, disk->dev->sector_size / 512 - 1))
+		return 0;
+
+	/* hack: this seems to be a good place, to update the partition	map
+	 * entry count, since mac_alloc_metadata() gets called during
+	 * _disk_pop_update_mode()
+	 */
+	return _disk_count_partitions (disk);
+}
+
+static int
+mac_get_max_primary_partition_count (const PedDisk* disk)
+{
+	MacDiskData*	mac_disk_data = disk->disk_specific;
+	PedPartition*	part_map_partition;
+
+	part_map_partition = ped_disk_get_partition (disk,
+		       			mac_disk_data->part_map_entry_num);
+
+	/* HACK: if we haven't found the partition map partition (yet),
+	 * we return this.
+	 */
+	if (!part_map_partition) {
+		mac_disk_data->part_map_entry_num = 0;
+		return 65536;
+	}
+
+	/* HACK: since Mac labels need an entry for free-space regions, we
+	 * must allow half plus 1 entries for free-space partitions.  I hate
+	 * this, but things get REALLY complicated, otherwise.
+	 *     (I'm prepared to complicate things later, but I want to get
+	 * everything working, first)
+	 */
+	return mac_disk_data->part_map_entry_count / mac_disk_data->ghost_size
+		- mac_disk_data->free_part_entry_count + 1;
+}
+
+static PedDiskOps mac_disk_ops = {
+	probe:			mac_probe,
+#ifndef DISCOVER_ONLY
+	clobber:		mac_clobber,
+#else
+	clobber:		NULL,
+#endif
+	alloc:			mac_alloc,
+	duplicate:		mac_duplicate,
+	free:			mac_free,
+	read:			mac_read,
+#ifndef DISCOVER_ONLY
+        /* FIXME: remove this cast, once mac_write is fixed not to
+           modify its *DISK parameter.  */
+	write:			(int (*) (const PedDisk*)) mac_write,
+#else
+	write:			NULL,
+#endif
+
+	partition_new:		mac_partition_new,
+	partition_duplicate:	mac_partition_duplicate,
+	partition_destroy:	mac_partition_destroy,
+	partition_set_system:	mac_partition_set_system,
+	partition_set_flag:	mac_partition_set_flag,
+	partition_get_flag:	mac_partition_get_flag,
+	partition_is_flag_available:	mac_partition_is_flag_available,
+	partition_set_name:	mac_partition_set_name,
+	partition_get_name:	mac_partition_get_name,
+	partition_align:	mac_partition_align,
+	partition_enumerate:	mac_partition_enumerate,
+
+	alloc_metadata:		mac_alloc_metadata,
+	get_max_primary_partition_count:
+				mac_get_max_primary_partition_count
+};
+
+static PedDiskType mac_disk_type = {
+	next:		NULL,
+	name:		"mac",
+	ops:		&mac_disk_ops,
+	features:	PED_DISK_TYPE_PARTITION_NAME
+};
+
+void
+ped_disk_mac_init ()
+{
+	PED_ASSERT (sizeof (MacRawPartition) == 512, return);
+	PED_ASSERT (sizeof (MacRawDisk) == 512, return);
+
+	ped_disk_type_register (&mac_disk_type);
+}
+
+void
+ped_disk_mac_done ()
+{
+	ped_disk_type_unregister (&mac_disk_type);
+}
+
diff --git a/parted-1.8.7/libparted/labels/pc98.c b/parted-1.8.7/libparted/labels/pc98.c
new file mode 100644
index 0000000..27f84a5
--- /dev/null
+++ b/parted-1.8.7/libparted/labels/pc98.c
@@ -0,0 +1,887 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2000, 2001, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+#include <parted/endian.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+/* hacked from Linux/98 source: fs/partitions/nec98.h
+ *
+ * See also:
+ *      http://people.FreeBSD.org/~kato/pc98.html
+ *      http://www.kmc.kyoto-u.ac.jp/proj/linux98/index-english.html
+ *
+ * Partition types:
+ * 
+ *   id0(mid):
+ *      bit 7: 1=bootable, 0=not bootable
+ *        # Linux uses this flag to make a distinction between ext2 and swap.
+ *      bit 6--0:
+ *        00H      : N88-BASIC(data)?, PC-UX(data)?
+ *        04H      : PC-UX(data)
+ *        06H      : N88-BASIC
+ *        10H      : N88-BASIC
+ *        14H      : *BSD, PC-UX
+ *        20H      : DOS(data), Windows95/98/NT, Linux
+ *        21H..2FH : DOS(system#1 .. system#15)
+ *        40H      : Minix
+ *        
+ *   id1(sid):
+ *      bit 7: 1=active, 0=sleep(hidden)
+ *        # PC-UX uses this flag to make a distinction between its file system
+ *        # and its swap.
+ *      bit 6--0:
+ *        01H: FAT12
+ *        11H: FAT16, <32MB [accessible to DOS 3.3]
+ *        21H: FAT16, >=32MB [Large Partition]
+ *        31H: NTFS
+ *        28H: Windows NT (Volume/Stripe Set?)
+ *        41H: Windows NT (Volume/Stripe Set?)
+ *        48H: Windows NT (Volume/Stripe Set?)
+ *        61H: FAT32
+ *        04H: PC-UX
+ *        06H: N88-BASIC
+ *        44H: *BSD
+ *        62H: ext2, linux-swap
+ */
+
+#define MAX_PART_COUNT 16
+#define PC9800_EXTFMT_MAGIC 0xAA55
+
+#define BIT(x) (1 << (x))
+#define GET_BIT(n,bit) (((n) & BIT(bit)) != 0)
+#define SET_BIT(n,bit,val) n = (val)?  (n | BIT(bit))  :  (n & ~BIT(bit))
+
+typedef struct _PC98RawPartition	PC98RawPartition;
+typedef struct _PC98RawTable		PC98RawTable;
+
+/* ripped from Linux/98 source */
+struct _PC98RawPartition {
+	uint8_t		mid;		/* 0x80 - boot */
+	uint8_t		sid;		/* 0x80 - active */
+	uint8_t		dum1;		/* dummy for padding */
+	uint8_t		dum2;		/* dummy for padding */
+	uint8_t		ipl_sect;	/* IPL sector */
+	uint8_t		ipl_head;	/* IPL head */
+	uint16_t	ipl_cyl;	/* IPL cylinder */
+	uint8_t		sector;		/* starting sector */
+	uint8_t		head;		/* starting head */
+	uint16_t	cyl;		/* starting cylinder */
+	uint8_t		end_sector;	/* end sector */
+	uint8_t		end_head;	/* end head */
+	uint16_t	end_cyl;	/* end cylinder */
+	char		name[16];
+} __attribute__((packed));
+
+struct _PC98RawTable {
+	uint8_t			boot_code [510];
+	uint16_t		magic;
+	PC98RawPartition	partitions [MAX_PART_COUNT];
+} __attribute__((packed));
+
+typedef struct {
+	PedSector	ipl_sector;
+	int		system;
+	int		boot;
+	int		hidden;
+	char		name [17];
+} PC98PartitionData;
+
+/* this MBR boot code is dummy */
+static const char MBR_BOOT_CODE[] = {
+	0xcb,			/* retf */
+	0x00, 0x00, 0x00,	/* */
+	0x49, 0x50, 0x4c, 0x31  /* "IPL1" */
+};
+
+static PedDiskType pc98_disk_type;
+
+static PedSector chs_to_sector (const PedDevice* dev, int c, int h, int s);
+static void sector_to_chs (const PedDevice* dev, PedSector sector,
+			   int* c, int* h, int* s);
+
+/* magic(?) check */
+static int
+pc98_check_magic (const PC98RawTable *part_table)
+{
+	/* check "extended-format" (have partition table?) */
+	if (PED_LE16_TO_CPU(part_table->magic) != PC9800_EXTFMT_MAGIC)
+		return 0;
+
+	return 1;
+}
+
+static int
+pc98_check_ipl_signature (const PC98RawTable *part_table)
+{
+	return !memcmp (part_table->boot_code + 4, "IPL1", 4);
+}		
+
+static int
+check_partition_consistency (const PedDevice* dev,
+	       		     const PC98RawPartition* raw_part)
+{
+	if (raw_part->ipl_sect >= dev->hw_geom.sectors
+	   || raw_part->sector >= dev->hw_geom.sectors
+	   || raw_part->end_sector >= dev->hw_geom.sectors
+	   || raw_part->ipl_head >= dev->hw_geom.heads
+	   || raw_part->head >= dev->hw_geom.heads
+	   || raw_part->end_head >= dev->hw_geom.heads
+	   || PED_LE16_TO_CPU(raw_part->ipl_cyl) >= dev->hw_geom.cylinders
+	   || PED_LE16_TO_CPU(raw_part->cyl) >= dev->hw_geom.cylinders
+	   || PED_LE16_TO_CPU(raw_part->end_cyl) >= dev->hw_geom.cylinders
+	   || PED_LE16_TO_CPU(raw_part->cyl)
+	   	> PED_LE16_TO_CPU(raw_part->end_cyl)
+#if 0
+	   || !chs_to_sector(dev, PED_LE16_TO_CPU(raw_part->ipl_cyl),
+			     raw_part->ipl_head, raw_part->ipl_sect)
+	   || !chs_to_sector(dev, PED_LE16_TO_CPU(raw_part->cyl),
+			     raw_part->head, raw_part->sector)
+	   || !chs_to_sector(dev, PED_LE16_TO_CPU(raw_part->end_cyl),
+			     raw_part->end_head, raw_part->end_sector)
+#endif
+	   || PED_LE16_TO_CPU(raw_part->end_cyl)
+	  		< PED_LE16_TO_CPU(raw_part->cyl))
+		return 0;
+
+	return 1;
+}
+
+static int
+pc98_probe (const PedDevice *dev)
+{
+	PC98RawTable		part_table;
+	int			empty;
+	const PC98RawPartition*	p;
+
+	PED_ASSERT (dev != NULL, return 0);
+
+        if (dev->sector_size != 512)
+                return 0;
+
+	if (!ped_device_read (dev, &part_table, 0, 2))
+		return 0;
+
+	/* check magic */
+	if (!pc98_check_magic (&part_table))
+		return 0;
+
+	/* check consistency */
+	empty = 1;
+	for (p = part_table.partitions;
+	     p < part_table.partitions + MAX_PART_COUNT;
+	     p++)
+	{
+		if (p->mid == 0 && p->sid == 0)
+			continue;
+		empty = 0;
+		if (!check_partition_consistency (dev, p))
+			return 0;
+	}
+
+	/* check boot loader */
+	if (pc98_check_ipl_signature (&part_table))
+		return 1;
+	else if (part_table.boot_code[0])	/* invalid boot loader */
+		return 0;
+
+	/* Not to mistake msdos disk map for PC-9800's empty disk map  */
+	if (empty)
+		return 0;
+
+	return 1;
+}
+
+#ifndef DISCOVER_ONLY
+static int
+pc98_clobber (PedDevice* dev)
+{
+	PC98RawTable	table;
+
+	PED_ASSERT (dev != NULL, return 0);
+	PED_ASSERT (pc98_probe (dev), return 0);
+
+	if (!ped_device_read (dev, &table, 0, 1))
+		return 0;
+
+	memset (table.partitions, 0, sizeof (table.partitions));
+	table.magic = PED_CPU_TO_LE16(0);
+
+	if (pc98_check_ipl_signature (&table))
+		memset (table.boot_code, 0, sizeof (table.boot_code));
+
+	if (!ped_device_write (dev, (void*) &table, 0, 1))
+		return 0;
+	return ped_device_sync (dev);
+}
+#endif /* !DISCOVER_ONLY */
+
+static PedDisk*
+pc98_alloc (const PedDevice* dev)
+{
+	PED_ASSERT (dev != NULL, return 0);
+
+	return _ped_disk_alloc (dev, &pc98_disk_type);
+}
+
+static PedDisk*
+pc98_duplicate (const PedDisk* disk)
+{
+	return ped_disk_new_fresh (disk->dev, &pc98_disk_type);
+}
+
+static void
+pc98_free (PedDisk* disk)
+{
+	PED_ASSERT (disk != NULL, return);
+
+	_ped_disk_free (disk);
+}
+
+static PedSector
+chs_to_sector (const PedDevice* dev, int c, int h, int s)
+{
+	PED_ASSERT (dev != NULL, return 0);
+	return (c * dev->hw_geom.heads + h) * dev->hw_geom.sectors + s;
+}
+
+static void
+sector_to_chs (const PedDevice* dev, PedSector sector, int* c, int* h, int* s)
+{
+	PedSector cyl_size;
+
+	PED_ASSERT (dev != NULL, return);
+	PED_ASSERT (c != NULL, return);
+	PED_ASSERT (h != NULL, return);
+	PED_ASSERT (s != NULL, return);
+
+	cyl_size = dev->hw_geom.heads * dev->hw_geom.sectors;
+
+	*c = sector / cyl_size;
+	*h = (sector) % cyl_size / dev->hw_geom.sectors;
+	*s = (sector) % cyl_size % dev->hw_geom.sectors;
+}
+
+static PedSector
+legacy_start (const PedDisk* disk, const PC98RawPartition* raw_part)
+{
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (raw_part != NULL, return 0);
+
+	return chs_to_sector (disk->dev, PED_LE16_TO_CPU(raw_part->cyl),
+			      raw_part->head, raw_part->sector);
+}
+
+static PedSector
+legacy_end (const PedDisk* disk, const PC98RawPartition* raw_part)
+{
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (raw_part != NULL, return 0);
+
+	if (raw_part->end_head == 0 && raw_part->end_sector == 0) {
+		return chs_to_sector (disk->dev,
+				      PED_LE16_TO_CPU(raw_part->end_cyl),
+				      disk->dev->hw_geom.heads - 1,
+				      disk->dev->hw_geom.sectors - 1);
+	} else {
+		return chs_to_sector (disk->dev,
+				      PED_LE16_TO_CPU(raw_part->end_cyl),
+				      raw_part->end_head,
+				      raw_part->end_sector);
+	}
+}
+
+static int
+is_unused_partition(const PC98RawPartition* raw_part)
+{
+	if (raw_part->mid || raw_part->sid
+	    || raw_part->ipl_sect
+	    || raw_part->ipl_head
+	    || PED_LE16_TO_CPU(raw_part->ipl_cyl)
+	    || raw_part->sector
+	    || raw_part->head
+	    || PED_LE16_TO_CPU(raw_part->cyl)
+	    || raw_part->end_sector
+	    || raw_part->end_head
+	    || PED_LE16_TO_CPU(raw_part->end_cyl))
+		return 0;
+	return 1;
+}
+
+static int
+read_table (PedDisk* disk)
+{
+	int			i;
+	PC98RawTable		table;
+	PedConstraint*		constraint_any;
+
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (disk->dev != NULL, return 0);
+
+	constraint_any = ped_constraint_any (disk->dev);
+
+	if (!ped_device_read (disk->dev, (void*) &table, 0, 2))
+		goto error;
+
+	if (!pc98_check_magic(&table)) {
+		if (ped_exception_throw (
+			PED_EXCEPTION_ERROR, PED_EXCEPTION_IGNORE_CANCEL,
+			_("Invalid partition table on %s."),
+			disk->dev->path))
+			goto error;
+	}
+
+	for (i = 0; i < MAX_PART_COUNT; i++) {
+		PC98RawPartition*	raw_part;
+		PedPartition*		part;
+		PC98PartitionData*	pc98_data;
+		PedSector		part_start;
+		PedSector		part_end;
+
+		raw_part = &table.partitions [i];
+
+		if (is_unused_partition(raw_part))
+			continue;
+
+		part_start = legacy_start (disk, raw_part);
+		part_end   = legacy_end (disk, raw_part);
+
+		part = ped_partition_new (disk, 0, NULL, part_start, part_end);
+		if (!part)
+			goto error;
+		pc98_data = part->disk_specific;
+		PED_ASSERT (pc98_data != NULL, goto error);
+
+		pc98_data->system = (raw_part->mid << 8) | raw_part->sid;
+		pc98_data->boot = GET_BIT(raw_part->mid, 7);
+		pc98_data->hidden = !GET_BIT(raw_part->sid, 7);
+
+		ped_partition_set_name (part, raw_part->name);
+
+		pc98_data->ipl_sector = chs_to_sector (
+			disk->dev,
+			PED_LE16_TO_CPU(raw_part->ipl_cyl),
+			raw_part->ipl_head,
+			raw_part->ipl_sect);
+
+		/* hack */
+		if (pc98_data->ipl_sector == part->geom.start)
+			pc98_data->ipl_sector = 0;
+
+		part->num = i + 1;
+
+		if (!ped_disk_add_partition (disk, part, constraint_any))
+			goto error;
+
+		if (part->geom.start != part_start
+		    || part->geom.end != part_end) {
+			ped_exception_throw (
+				PED_EXCEPTION_NO_FEATURE,
+				PED_EXCEPTION_CANCEL,
+				_("Partition %d isn't aligned to cylinder "
+				  "boundaries.  This is still unsupported."),
+				part->num);
+			goto error;
+		}
+
+		part->fs_type = ped_file_system_probe (&part->geom);
+	}
+
+	ped_constraint_destroy (constraint_any);
+	return 1;
+
+error:
+	ped_disk_delete_all (disk);
+	ped_constraint_destroy (constraint_any);
+	return 0;
+}
+
+static int
+pc98_read (PedDisk* disk)
+{
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (disk->dev != NULL, return 0);
+
+	ped_disk_delete_all (disk);
+	return read_table (disk);
+}
+
+#ifndef DISCOVER_ONLY
+static int
+fill_raw_part (PC98RawPartition* raw_part, const PedPartition* part)
+{
+	PC98PartitionData*	pc98_data;
+	int			c, h, s;
+	const char*		name;
+
+	PED_ASSERT (raw_part != NULL, return 0);
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk_specific != NULL, return 0);
+
+	pc98_data = part->disk_specific;
+	raw_part->mid = (pc98_data->system >> 8) & 0xFF;
+	raw_part->sid = pc98_data->system & 0xFF;
+
+	SET_BIT(raw_part->mid, 7, pc98_data->boot);
+	SET_BIT(raw_part->sid, 7, !pc98_data->hidden);
+
+	memset (raw_part->name, ' ', sizeof(raw_part->name));
+	name = ped_partition_get_name (part);
+	PED_ASSERT (name != NULL, return 0);
+	PED_ASSERT (strlen (name) <= 16, return 0);
+	if (!strlen (name) && part->fs_type)
+		name = part->fs_type->name;
+	memcpy (raw_part->name, name, strlen (name));
+
+	sector_to_chs (part->disk->dev, part->geom.start, &c, &h, &s);
+	raw_part->cyl	 = PED_CPU_TO_LE16(c);
+	raw_part->head	 = h;
+	raw_part->sector = s;
+
+	if (pc98_data->ipl_sector) {
+		sector_to_chs (part->disk->dev, pc98_data->ipl_sector,
+			       &c, &h, &s);
+		raw_part->ipl_cyl  = PED_CPU_TO_LE16(c);
+		raw_part->ipl_head = h;
+		raw_part->ipl_sect = s;
+	} else {
+		raw_part->ipl_cyl  = raw_part->cyl;
+		raw_part->ipl_head = raw_part->head;
+		raw_part->ipl_sect = raw_part->sector;
+	}
+
+	sector_to_chs (part->disk->dev, part->geom.end, &c, &h, &s);
+	if (h != part->disk->dev->hw_geom.heads - 1
+	    || s != part->disk->dev->hw_geom.sectors - 1) {
+		ped_exception_throw (
+		    PED_EXCEPTION_NO_FEATURE,
+		    PED_EXCEPTION_CANCEL,
+		    _("Partition %d isn't aligned to cylinder "
+		      "boundaries.  This is still unsupported."),
+		    part->num);
+		return 0;
+	}
+	raw_part->end_cyl    = PED_CPU_TO_LE16(c);
+#if 0
+	raw_part->end_head   = h;
+	raw_part->end_sector = s;
+#else
+	raw_part->end_head   = 0;
+	raw_part->end_sector = 0;
+#endif
+
+	return 1;
+}
+
+static int
+pc98_write (const PedDisk* disk)
+{
+	PC98RawTable		table;
+	PedPartition*		part;
+	int			i;
+
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (disk->dev != NULL, return 0);
+
+	if (!ped_device_read (disk->dev, &table, 0, 2))
+		return 0;
+
+	if (!pc98_check_ipl_signature (&table)) {
+		memset (table.boot_code, 0, sizeof(table.boot_code));
+		memcpy (table.boot_code, MBR_BOOT_CODE, sizeof(MBR_BOOT_CODE));
+	}
+
+	memset (table.partitions, 0, sizeof (table.partitions));
+	table.magic = PED_CPU_TO_LE16(PC9800_EXTFMT_MAGIC);
+
+	for (i = 1; i <= MAX_PART_COUNT; i++) {
+		part = ped_disk_get_partition (disk, i);
+		if (!part)
+			continue;
+
+		if (!fill_raw_part (&table.partitions [i - 1], part))
+			return 0;
+	}
+
+	if (!ped_device_write (disk->dev, (void*) &table, 0, 2))
+		return 0;
+	return ped_device_sync (disk->dev);
+}
+#endif /* !DISCOVER_ONLY */
+
+static PedPartition*
+pc98_partition_new (
+	const PedDisk* disk, PedPartitionType part_type,
+	const PedFileSystemType* fs_type, PedSector start, PedSector end)
+{
+	PedPartition*		part;
+	PC98PartitionData*	pc98_data;
+
+	part = _ped_partition_alloc (disk, part_type, fs_type, start, end);
+	if (!part)
+		goto error;
+
+	if (ped_partition_is_active (part)) {
+		part->disk_specific
+			= pc98_data = ped_malloc (sizeof (PC98PartitionData));
+		if (!pc98_data)
+			goto error_free_part;
+		pc98_data->ipl_sector = 0;
+		pc98_data->hidden = 0;
+		pc98_data->boot = 0;
+		strcpy (pc98_data->name, "");
+	} else {
+		part->disk_specific = NULL;
+	}
+	return part;
+
+	ped_free (pc98_data);
+error_free_part:
+	ped_free (part);
+error:
+	return 0;
+}
+
+static PedPartition*
+pc98_partition_duplicate (const PedPartition* part)
+{
+	PedPartition*		new_part;
+	PC98PartitionData*	new_pc98_data;
+	PC98PartitionData*	old_pc98_data;
+
+	new_part = ped_partition_new (part->disk, part->type,
+				      part->fs_type, part->geom.start,
+				      part->geom.end);
+	if (!new_part)
+		return NULL;
+	new_part->num = part->num;
+
+	old_pc98_data = (PC98PartitionData*) part->disk_specific;
+	new_pc98_data = (PC98PartitionData*) new_part->disk_specific;
+
+	/* ugly, but C is ugly :p */
+	memcpy (new_pc98_data, old_pc98_data, sizeof (PC98PartitionData));
+	return new_part;
+}
+
+static void
+pc98_partition_destroy (PedPartition* part)
+{
+	PED_ASSERT (part != NULL, return);
+
+	if (ped_partition_is_active (part))
+		ped_free (part->disk_specific);
+	ped_free (part);
+}
+
+static int
+pc98_partition_set_system (PedPartition* part, const PedFileSystemType* fs_type)
+{
+	PC98PartitionData* pc98_data = part->disk_specific;
+	
+	part->fs_type = fs_type;
+
+	pc98_data->system = 0x2062;
+	if (fs_type) {
+		if (!strcmp (fs_type->name, "fat16")) {
+			if (part->geom.length * 512 >= 32 * 1024 * 1024)
+				pc98_data->system = 0x2021;
+			else
+				pc98_data->system = 0x2011;
+		} else if (!strcmp (fs_type->name, "fat32")) {
+			pc98_data->system = 0x2061;
+		} else if (!strcmp (fs_type->name, "ntfs")) {
+			pc98_data->system = 0x2031;
+		} else if (!strncmp (fs_type->name, "ufs", 3)) {
+			pc98_data->system = 0x2044;
+		} else { /* ext2, reiser, xfs, etc. */
+			/* ext2 partitions must be marked boot */
+			pc98_data->boot = 1;
+			pc98_data->system = 0xa062;
+		}
+	}
+
+	if (pc98_data->boot)
+		pc98_data->system |= 0x8000;
+	if (!pc98_data->hidden)
+		pc98_data->system |= 0x0080;
+	return 1;
+}
+
+static int
+pc98_partition_set_flag (PedPartition* part, PedPartitionFlag flag, int state)
+{
+	PC98PartitionData*		pc98_data;
+
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk_specific != NULL, return 0);
+
+	pc98_data = part->disk_specific;
+
+	switch (flag) {
+	case PED_PARTITION_HIDDEN:
+		pc98_data->hidden = state;
+		return ped_partition_set_system (part, part->fs_type);
+
+	case PED_PARTITION_BOOT:
+		pc98_data->boot = state;
+		return ped_partition_set_system (part, part->fs_type);
+
+	default:
+		return 0;
+	}
+}
+
+static int
+pc98_partition_get_flag (const PedPartition* part, PedPartitionFlag flag)
+{
+	PC98PartitionData*	pc98_data;
+
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk_specific != NULL, return 0);
+
+	pc98_data = part->disk_specific;
+	switch (flag) {
+	case PED_PARTITION_HIDDEN:
+		return pc98_data->hidden;
+
+	case PED_PARTITION_BOOT:
+		return pc98_data->boot;
+
+	default:
+		return 0;
+	}
+}
+
+static int
+pc98_partition_is_flag_available (
+	const PedPartition* part, PedPartitionFlag flag)
+{
+	switch (flag) {
+	case PED_PARTITION_HIDDEN:
+	case PED_PARTITION_BOOT:
+		return 1;
+
+	default:
+		return 0;
+	}
+}
+
+static void
+pc98_partition_set_name (PedPartition* part, const char* name)
+{
+	PC98PartitionData*	pc98_data;
+	int			i;
+
+	PED_ASSERT (part != NULL, return);
+	PED_ASSERT (part->disk_specific != NULL, return);
+	pc98_data = part->disk_specific;
+
+	strncpy (pc98_data->name, name, 16);
+	pc98_data->name [16] = 0;
+	for (i = strlen (pc98_data->name) - 1; pc98_data->name[i] == ' '; i--)
+		pc98_data->name [i] = 0;
+}
+
+static const char*
+pc98_partition_get_name (const PedPartition* part)
+{
+	PC98PartitionData*	pc98_data;
+
+	PED_ASSERT (part != NULL, return NULL);
+	PED_ASSERT (part->disk_specific != NULL, return NULL);
+	pc98_data = part->disk_specific;
+
+	return pc98_data->name;
+}
+
+static PedConstraint*
+_primary_constraint (PedDisk* disk)
+{
+	PedDevice*	dev = disk->dev;
+	PedAlignment	start_align;
+	PedAlignment	end_align;
+	PedGeometry	max_geom;
+	PedSector	cylinder_size;
+
+	cylinder_size = dev->hw_geom.sectors * dev->hw_geom.heads;
+
+	if (!ped_alignment_init (&start_align, 0, cylinder_size))
+		return NULL;
+	if (!ped_alignment_init (&end_align, -1, cylinder_size))
+		return NULL;
+	if (!ped_geometry_init (&max_geom, dev, cylinder_size,
+			       	dev->length - cylinder_size))
+		return NULL;
+
+	return ped_constraint_new (&start_align, &end_align, &max_geom,
+				   &max_geom, 1, dev->length);
+}
+
+static int
+pc98_partition_align (PedPartition* part, const PedConstraint* constraint)
+{
+	PED_ASSERT (part != NULL, return 0);
+
+	if (_ped_partition_attempt_align (part, constraint,
+					  _primary_constraint (part->disk)))
+	       	return 1;
+
+#ifndef DISCOVER_ONLY
+	ped_exception_throw (
+		PED_EXCEPTION_ERROR,
+		PED_EXCEPTION_CANCEL,
+		_("Unable to satisfy all constraints on the partition."));
+#endif
+	return 0;
+}
+
+static int
+next_primary (PedDisk* disk)
+{
+	int	i;
+	for (i=1; i<=MAX_PART_COUNT; i++) {
+		if (!ped_disk_get_partition (disk, i))
+			return i;
+	}
+	return 0;
+}
+
+static int
+pc98_partition_enumerate (PedPartition* part)
+{
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk != NULL, return 0);
+
+	/* don't re-number a partition */
+	if (part->num != -1)
+		return 1;
+
+	PED_ASSERT (ped_partition_is_active (part), return 0);
+
+	part->num = next_primary (part->disk);
+	if (!part->num) {
+		ped_exception_throw (PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Can't add another partition."));
+		return 0;
+	}
+
+	return 1;
+}
+
+static int
+pc98_alloc_metadata (PedDisk* disk)
+{
+	PedPartition*		new_part;
+	PedConstraint*		constraint_any = NULL;
+	PedSector		cyl_size;
+
+	PED_ASSERT (disk != NULL, goto error);
+	PED_ASSERT (disk->dev != NULL, goto error);
+
+	constraint_any = ped_constraint_any (disk->dev);
+
+	cyl_size = disk->dev->hw_geom.sectors * disk->dev->hw_geom.heads;
+	new_part = ped_partition_new (disk, PED_PARTITION_METADATA, NULL,
+				      0, cyl_size - 1);
+	if (!new_part)
+		goto error;
+
+	if (!ped_disk_add_partition (disk, new_part, constraint_any)) {
+		ped_partition_destroy (new_part);
+		goto error;
+	}
+
+	ped_constraint_destroy (constraint_any);
+	return 1;
+
+error:
+	ped_constraint_destroy (constraint_any);
+	return 0;
+}
+
+static int
+pc98_get_max_primary_partition_count (const PedDisk* disk)
+{
+	return MAX_PART_COUNT;
+}
+
+static PedDiskOps pc98_disk_ops = {
+	probe:			pc98_probe,
+#ifndef DISCOVER_ONLY
+	clobber:		pc98_clobber,
+#else
+	clobber:		NULL,
+#endif
+	alloc:			pc98_alloc,
+	duplicate:		pc98_duplicate,
+	free:			pc98_free,
+	read:			pc98_read,
+#ifndef DISCOVER_ONLY
+	write:			pc98_write,
+#else
+	write:			NULL,
+#endif
+	
+	partition_new:		pc98_partition_new,
+	partition_duplicate:	pc98_partition_duplicate,
+	partition_destroy:	pc98_partition_destroy,
+	partition_set_system:	pc98_partition_set_system,
+	partition_set_flag:	pc98_partition_set_flag,
+	partition_get_flag:	pc98_partition_get_flag,
+	partition_is_flag_available:	pc98_partition_is_flag_available,
+	partition_set_name:	pc98_partition_set_name,
+	partition_get_name:	pc98_partition_get_name,
+	partition_align:	pc98_partition_align,
+	partition_enumerate:	pc98_partition_enumerate,
+
+	alloc_metadata:		pc98_alloc_metadata,
+	get_max_primary_partition_count:
+				pc98_get_max_primary_partition_count
+};
+
+static PedDiskType pc98_disk_type = {
+	next:		NULL,
+	name:		"pc98",
+	ops:		&pc98_disk_ops,
+	features:	PED_DISK_TYPE_PARTITION_NAME
+};
+
+void
+ped_disk_pc98_init ()
+{
+	PED_ASSERT (sizeof (PC98RawTable) == 512 * 2, return);
+	ped_disk_type_register (&pc98_disk_type);
+}
+
+void
+ped_disk_pc98_done ()
+{
+	ped_disk_type_unregister (&pc98_disk_type);
+}
diff --git a/parted-1.8.7/libparted/labels/rdb.c b/parted-1.8.7/libparted/labels/rdb.c
new file mode 100644
index 0000000..35ed156
--- /dev/null
+++ b/parted-1.8.7/libparted/labels/rdb.c
@@ -0,0 +1,1168 @@
+/* -*- Mode: c; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+
+    libparted - a library for manipulating disk partitions
+    disk_amiga.c - libparted module to manipulate amiga RDB partition tables.
+    Copyright (C) 2000, 2001, 2004, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+
+    Contributor:  Sven Luther <luther@debian.org>
+*/
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+#include <parted/endian.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+/* String manipulation */
+static void _amiga_set_bstr (const char *cstr, char *bstr, int maxsize) {
+	int size = strlen (cstr);
+	int i;
+
+	if (size >= maxsize) return;
+	bstr[0] = size;
+	for (i = 0; i<size; i++) bstr[i+1] = cstr[i];
+}
+static const char * _amiga_get_bstr (char * bstr) {
+	char * cstr = bstr + 1;
+	int size = bstr[0];
+	
+	cstr[size] = '\0';
+	return cstr;
+}
+
+#define	IDNAME_RIGIDDISK	(uint32_t)0x5244534B	/* 'RDSK' */
+#define IDNAME_BADBLOCK		(uint32_t)0x42414442	/* 'BADB' */
+#define	IDNAME_PARTITION	(uint32_t)0x50415254	/* 'PART' */
+#define IDNAME_FILESYSHEADER	(uint32_t)0x46534844	/* 'FSHD' */
+#define IDNAME_LOADSEG		(uint32_t)0x4C534547	/* 'LSEG' */
+#define IDNAME_BOOT		(uint32_t)0x424f4f54	/* 'BOOT' */
+#define IDNAME_FREE		(uint32_t)0xffffffff	
+
+static const char *
+_amiga_block_id (uint32_t id) {
+	switch (id) {
+		case IDNAME_RIGIDDISK :
+			return "RDSK";
+		case IDNAME_BADBLOCK :
+			return "BADB";
+		case IDNAME_PARTITION :
+			return "PART";
+		case IDNAME_FILESYSHEADER :
+			return "FSHD";
+		case IDNAME_LOADSEG :
+			return "LSEG";
+		case IDNAME_BOOT :
+			return "BOOT";
+		case IDNAME_FREE :
+			return "<free>";
+		default :
+			return "<unknown>";
+	}
+}
+
+struct AmigaIds {
+	uint32_t ID;
+	struct AmigaIds *next;
+};
+
+static struct AmigaIds *
+_amiga_add_id (uint32_t id, struct AmigaIds *ids) {
+	struct AmigaIds *newid;
+
+	if ((newid=ped_malloc(sizeof (struct AmigaIds)))==NULL)
+		return 0;
+	newid->ID = id;
+	newid->next = ids;
+	return newid;
+}
+
+static void
+_amiga_free_ids (struct AmigaIds *ids) {
+	struct AmigaIds *current, *next;
+
+	for (current = ids; current != NULL; current = next) {
+		next = current->next;
+		ped_free (current);
+	}
+}
+static int
+_amiga_id_in_list (uint32_t id, struct AmigaIds *ids) {
+	struct AmigaIds *current;
+
+	for (current = ids; current != NULL; current = current->next) {
+		if (id == current->ID)
+			return 1;
+	}
+	return 0;
+}
+
+struct AmigaBlock {
+	uint32_t	amiga_ID;		/* Identifier 32 bit word */
+	uint32_t	amiga_SummedLongss;	/* Size of the structure for checksums */
+	int32_t		amiga_ChkSum;		/* Checksum of the structure */
+};
+#define AMIGA(pos) ((struct AmigaBlock *)(pos)) 
+
+static int
+_amiga_checksum (struct AmigaBlock *blk) {
+	uint32_t *rdb = (uint32_t *) blk;
+	uint32_t sum;
+	int i, end;
+
+	sum = PED_BE32_TO_CPU (rdb[0]);
+	end = PED_BE32_TO_CPU (rdb[1]);
+
+	if (end > PED_SECTOR_SIZE_DEFAULT) end = PED_SECTOR_SIZE_DEFAULT;
+
+	for (i = 1; i < end; i++) sum += PED_BE32_TO_CPU (rdb[i]);
+
+	return sum;
+}
+
+static void
+_amiga_calculate_checksum (struct AmigaBlock *blk) {
+	blk->amiga_ChkSum = PED_CPU_TO_BE32(
+		PED_BE32_TO_CPU(blk->amiga_ChkSum) -
+		_amiga_checksum((struct AmigaBlock *) blk));
+	return;	
+}
+
+static struct AmigaBlock *
+_amiga_read_block (const PedDevice *dev, struct AmigaBlock *blk,
+                   PedSector block, struct AmigaIds *ids)
+{
+	if (!ped_device_read (dev, blk, block, 1))
+		return NULL;
+	if (ids && !_amiga_id_in_list(PED_BE32_TO_CPU(blk->amiga_ID), ids))
+		return NULL;
+	if (_amiga_checksum (blk) != 0) {
+		switch (ped_exception_throw(PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_FIX | PED_EXCEPTION_IGNORE | PED_EXCEPTION_CANCEL,
+			_("%s : Bad checksum on block %llu of type %s."),
+			__func__, block, _amiga_block_id(PED_BE32_TO_CPU(blk->amiga_ID))))
+		{
+			case PED_EXCEPTION_CANCEL :
+				return NULL;
+			case PED_EXCEPTION_FIX :
+				_amiga_calculate_checksum(AMIGA(blk));
+				if (!ped_device_write ((PedDevice*)dev, blk, block, 1))
+					return NULL;
+			case PED_EXCEPTION_IGNORE :
+			case PED_EXCEPTION_UNHANDLED :
+			default : 
+				return blk;
+		}
+	}
+	return blk;
+}
+
+struct RigidDiskBlock {
+    uint32_t	rdb_ID;			/* Identifier 32 bit word : 'RDSK' */
+    uint32_t	rdb_SummedLongs;	/* Size of the structure for checksums */
+    int32_t	rdb_ChkSum;		/* Checksum of the structure */
+    uint32_t	rdb_HostID;		/* SCSI Target ID of host, not really used */
+    uint32_t	rdb_BlockBytes;		/* Size of disk blocks */
+    uint32_t	rdb_Flags;		/* RDB Flags */
+    /* block list heads */
+    uint32_t	rdb_BadBlockList;	/* Bad block list */
+    uint32_t	rdb_PartitionList;	/* Partition list */
+    uint32_t	rdb_FileSysHeaderList;	/* File system header list */
+    uint32_t	rdb_DriveInit;		/* Drive specific init code */
+    uint32_t	rdb_BootBlockList;	/* Amiga OS 4 Boot Blocks */
+    uint32_t	rdb_Reserved1[5];	/* Unused word, need to be set to $ffffffff */
+    /* physical drive characteristics */
+    uint32_t	rdb_Cylinders;		/* Number of the cylinders of the drive */
+    uint32_t	rdb_Sectors;		/* Number of sectors of the drive */
+    uint32_t	rdb_Heads;		/* Number of heads of the drive */
+    uint32_t	rdb_Interleave;		/* Interleave */
+    uint32_t	rdb_Park;		/* Head parking cylinder */
+    uint32_t	rdb_Reserved2[3];	/* Unused word, need to be set to $ffffffff */
+    uint32_t	rdb_WritePreComp;	/* Starting cylinder of write precompensation */
+    uint32_t	rdb_ReducedWrite;	/* Starting cylinder of reduced write current */
+    uint32_t	rdb_StepRate;		/* Step rate of the drive */
+    uint32_t	rdb_Reserved3[5];	/* Unused word, need to be set to $ffffffff */
+    /* logical drive characteristics */
+    uint32_t	rdb_RDBBlocksLo;	/* low block of range reserved for hardblocks */
+    uint32_t	rdb_RDBBlocksHi;	/* high block of range for these hardblocks */
+    uint32_t	rdb_LoCylinder;		/* low cylinder of partitionable disk area */
+    uint32_t	rdb_HiCylinder;		/* high cylinder of partitionable data area */
+    uint32_t	rdb_CylBlocks;		/* number of blocks available per cylinder */
+    uint32_t	rdb_AutoParkSeconds;	/* zero for no auto park */
+    uint32_t	rdb_HighRDSKBlock;	/* highest block used by RDSK */
+					/* (not including replacement bad blocks) */
+    uint32_t	rdb_Reserved4;
+    /* drive identification */
+    char	rdb_DiskVendor[8];
+    char	rdb_DiskProduct[16];
+    char	rdb_DiskRevision[4];
+    char	rdb_ControllerVendor[8];
+    char	rdb_ControllerProduct[16];
+    char	rdb_ControllerRevision[4];
+    uint32_t	rdb_Reserved5[10];
+};
+
+#define RDSK(pos) ((struct RigidDiskBlock *)(pos)) 
+
+#define AMIGA_RDB_NOT_FOUND ((uint32_t)0xffffffff)
+#define	RDB_LOCATION_LIMIT	16
+#define AMIGA_MAX_PARTITIONS 128
+#define MAX_RDB_BLOCK (RDB_LOCATION_LIMIT + 2 * AMIGA_MAX_PARTITIONS + 2)
+
+static uint32_t
+_amiga_find_rdb (const PedDevice *dev, struct RigidDiskBlock *rdb) {
+	int i;
+	struct AmigaIds *ids;
+
+	ids = _amiga_add_id (IDNAME_RIGIDDISK, NULL);
+
+	for (i = 0; i<RDB_LOCATION_LIMIT; i++) {
+		if (!_amiga_read_block (dev, AMIGA(rdb), i, ids)) {
+			continue;
+		}
+		if (PED_BE32_TO_CPU (rdb->rdb_ID) == IDNAME_RIGIDDISK) {
+			_amiga_free_ids (ids);
+			return i;
+		}
+	}
+	_amiga_free_ids (ids);
+	return AMIGA_RDB_NOT_FOUND;
+}
+
+struct PartitionBlock {
+    uint32_t	pb_ID;			/* Identifier 32 bit word : 'PART' */
+    uint32_t	pb_SummedLongs;		/* Size of the structure for checksums */
+    int32_t	pb_ChkSum;		/* Checksum of the structure */
+    uint32_t	pb_HostID;		/* SCSI Target ID of host, not really used */
+    uint32_t	pb_Next;		/* Block number of the next PartitionBlock */
+    uint32_t	pb_Flags;		/* Part Flags (NOMOUNT and BOOTABLE) */
+    uint32_t	pb_Reserved1[2];
+    uint32_t	pb_DevFlags;		/* Preferred flags for OpenDevice */
+    char	pb_DriveName[32];	/* Preferred DOS device name: BSTR form */
+    uint32_t	pb_Reserved2[15];
+    uint32_t	de_TableSize;		/* Size of Environment vector */
+	/* Size of the blocks in 32 bit words, usually 128 */
+    uint32_t	de_SizeBlock;
+    uint32_t	de_SecOrg;	     	/* Not used; must be 0 */
+    uint32_t	de_Surfaces;		/* Number of heads (surfaces) */
+	/* Disk sectors per block, used with SizeBlock, usually 1 */
+    uint32_t	de_SectorPerBlock;
+    uint32_t	de_BlocksPerTrack;	/* Blocks per track. drive specific */
+    uint32_t	de_Reserved;		/* DOS reserved blocks at start of partition. */
+    uint32_t	de_PreAlloc;		/* DOS reserved blocks at end of partition */
+    uint32_t	de_Interleave;		/* Not used, usually 0 */
+    uint32_t	de_LowCyl;		/* First cylinder of the partition */
+    uint32_t	de_HighCyl;		/* Last cylinder of the partition */
+    uint32_t	de_NumBuffers;		/* Initial # DOS of buffers.  */
+    uint32_t	de_BufMemType;		/* Type of mem to allocate for buffers */
+    uint32_t	de_MaxTransfer;		/* Max number of bytes to transfer at a time */
+    uint32_t	de_Mask;		/* Address Mask to block out certain memory */
+    int32_t	de_BootPri;		/* Boot priority for autoboot */
+    uint32_t	de_DosType;		/* Dostype of the file system */
+    uint32_t	de_Baud;		/* Baud rate for serial handler */
+    uint32_t	de_Control;		/* Control word for handler/filesystem */
+    uint32_t	de_BootBlocks;		/* Number of blocks containing boot code */
+    uint32_t	pb_EReserved[12];
+};
+
+#define PART(pos) ((struct PartitionBlock *)(pos))
+
+#define	PBFB_BOOTABLE	0	/* this partition is intended to be bootable */
+#define	PBFF_BOOTABLE	1L	/*   (expected directories and files exist) */
+#define	PBFB_NOMOUNT	1	/* do not mount this partition (e.g. manually */
+#define	PBFF_NOMOUNT	2L	/*   mounted, but space reserved here) */
+#define	PBFB_RAID	2	/* this partition is intended to be part of */
+#define	PBFF_RAID	4L	/*   a RAID array */
+#define	PBFB_LVM	3	/* this partition is intended to be part of */
+#define	PBFF_LVM	8L	/*   a LVM volume group */
+
+
+struct LinkedBlock {
+    uint32_t	lk_ID;			/* Identifier 32 bit word */
+    uint32_t	lk_SummedLongs;		/* Size of the structure for checksums */
+    int32_t	lk_ChkSum;		/* Checksum of the structure */
+    uint32_t	pb_HostID;		/* SCSI Target ID of host, not really used */
+    uint32_t	lk_Next;		/* Block number of the next PartitionBlock */
+};
+struct Linked2Block {
+    uint32_t	lk2_ID;			/* Identifier 32 bit word */
+    uint32_t	lk2_SummedLongs;		/* Size of the structure for checksums */
+    int32_t	lk2_ChkSum;		/* Checksum of the structure */
+    uint32_t	lk2_HostID;		/* SCSI Target ID of host, not really used */
+    uint32_t	lk2_Next;		/* Block number of the next PartitionBlock */
+    uint32_t	lk2_Reverved[13];
+    uint32_t	lk2_Linked;		/* Secondary linked list */
+};
+#define LINK_END	(uint32_t)0xffffffff
+#define LNK(pos)	((struct LinkedBlock *)(pos))
+#define LNK2(pos)	((struct Linked2Block *)(pos))
+
+
+static PedDiskType amiga_disk_type;
+
+static int
+amiga_probe (const PedDevice *dev)
+{
+	struct RigidDiskBlock *rdb;
+	uint32_t found;
+	PED_ASSERT(dev != NULL, return 0);
+
+	if ((rdb=RDSK(ped_malloc(dev->sector_size)))==NULL)
+		return 0;
+	found = _amiga_find_rdb (dev, rdb);
+	ped_free (rdb);
+
+	return (found == AMIGA_RDB_NOT_FOUND ? 0 : 1);
+}
+		
+static PedDisk*
+amiga_alloc (const PedDevice* dev)
+{
+	PedDisk *disk;
+	struct RigidDiskBlock *rdb;
+	PedSector cyl_size;
+	int highest_cylinder, highest_block;
+
+	PED_ASSERT(dev != NULL, return NULL);
+	cyl_size = dev->hw_geom.sectors * dev->hw_geom.heads;
+
+	if (!(disk = _ped_disk_alloc (dev, &amiga_disk_type)))
+		return NULL;
+
+	if (!(disk->disk_specific = ped_malloc (PED_SECTOR_SIZE_DEFAULT))) {
+		ped_free (disk);
+		return NULL;
+	}
+	rdb = disk->disk_specific;
+
+	memset(rdb, 0, sizeof(struct RigidDiskBlock));
+
+	rdb->rdb_ID = PED_CPU_TO_BE32 (IDNAME_RIGIDDISK);
+	rdb->rdb_SummedLongs = PED_CPU_TO_BE32 (64);
+	rdb->rdb_HostID = PED_CPU_TO_BE32 (0);
+	rdb->rdb_BlockBytes = PED_CPU_TO_BE32 (PED_SECTOR_SIZE_DEFAULT);
+	rdb->rdb_Flags = PED_CPU_TO_BE32 (0);
+
+	/* Block lists */
+	rdb->rdb_BadBlockList = PED_CPU_TO_BE32 (LINK_END);
+	rdb->rdb_PartitionList = PED_CPU_TO_BE32 (LINK_END);
+	rdb->rdb_FileSysHeaderList = PED_CPU_TO_BE32 (LINK_END);
+	rdb->rdb_DriveInit = PED_CPU_TO_BE32 (LINK_END);
+	rdb->rdb_BootBlockList = PED_CPU_TO_BE32 (LINK_END);
+	
+	/* Physical drive characteristics */
+	rdb->rdb_Cylinders = PED_CPU_TO_BE32 (dev->hw_geom.cylinders);
+	rdb->rdb_Sectors = PED_CPU_TO_BE32 (dev->hw_geom.sectors);
+	rdb->rdb_Heads = PED_CPU_TO_BE32 (dev->hw_geom.heads);
+	rdb->rdb_Interleave = PED_CPU_TO_BE32 (0);
+	rdb->rdb_Park = PED_CPU_TO_BE32 (dev->hw_geom.cylinders);
+	rdb->rdb_WritePreComp = PED_CPU_TO_BE32 (dev->hw_geom.cylinders);
+	rdb->rdb_ReducedWrite = PED_CPU_TO_BE32 (dev->hw_geom.cylinders);
+	rdb->rdb_StepRate = PED_CPU_TO_BE32 (0);
+
+	highest_cylinder = 1 + MAX_RDB_BLOCK / cyl_size;
+	highest_block = highest_cylinder * cyl_size - 1;
+
+	/* Logical driver characteristics */
+	rdb->rdb_RDBBlocksLo = PED_CPU_TO_BE32 (0);
+	rdb->rdb_RDBBlocksHi = PED_CPU_TO_BE32 (highest_block);
+	rdb->rdb_LoCylinder = PED_CPU_TO_BE32 (highest_cylinder);
+	rdb->rdb_HiCylinder = PED_CPU_TO_BE32 (dev->hw_geom.cylinders -1);
+	rdb->rdb_CylBlocks = PED_CPU_TO_BE32 (cyl_size);
+	rdb->rdb_AutoParkSeconds = PED_CPU_TO_BE32 (0);
+	/* rdb_HighRDSKBlock will only be set when writing */
+	rdb->rdb_HighRDSKBlock = PED_CPU_TO_BE32 (0);
+
+	/* Driver identification */
+	_amiga_set_bstr("", rdb->rdb_DiskVendor, 8);
+	_amiga_set_bstr(dev->model, rdb->rdb_DiskProduct, 16);
+	_amiga_set_bstr("", rdb->rdb_DiskRevision, 4);
+	_amiga_set_bstr("", rdb->rdb_ControllerVendor, 8);
+	_amiga_set_bstr("", rdb->rdb_ControllerProduct, 16);
+	_amiga_set_bstr("", rdb->rdb_ControllerRevision, 4);
+
+	/* And calculate the checksum */
+	_amiga_calculate_checksum ((struct AmigaBlock *) rdb);
+	
+	return disk;
+}
+
+static PedDisk*
+amiga_duplicate (const PedDisk* disk)
+{
+	PedDisk*	new_disk;
+	struct RigidDiskBlock *	new_rdb;
+	struct RigidDiskBlock * old_rdb;
+	PED_ASSERT(disk != NULL, return NULL);
+	PED_ASSERT(disk->dev != NULL, return NULL);
+	PED_ASSERT(disk->disk_specific != NULL, return NULL);
+
+	old_rdb = (struct RigidDiskBlock *) disk->disk_specific;
+       
+	if (!(new_disk = ped_disk_new_fresh (disk->dev, &amiga_disk_type)))
+		return NULL;
+
+	new_rdb = (struct RigidDiskBlock *) new_disk->disk_specific;
+	memcpy (new_rdb, old_rdb, 256);
+	return new_disk;
+}
+
+static void
+amiga_free (PedDisk* disk)
+{
+	PED_ASSERT(disk != NULL, return);
+	PED_ASSERT(disk->disk_specific != NULL, return);
+
+	ped_free (disk->disk_specific);
+	_ped_disk_free (disk);
+}
+
+#ifndef DISCOVER_ONLY
+static int
+amiga_clobber (PedDevice* dev)
+{
+	struct RigidDiskBlock *rdb;
+	uint32_t i;
+	int result = 0;
+	PED_ASSERT(dev != NULL, return 0);
+
+	if ((rdb=RDSK(ped_malloc(PED_SECTOR_SIZE_DEFAULT)))==NULL)
+		return 0;
+
+	while ((i = _amiga_find_rdb (dev, rdb)) != AMIGA_RDB_NOT_FOUND) {
+		rdb->rdb_ID = PED_CPU_TO_BE32 (0);
+		result = ped_device_write (dev, (void*) rdb, i, 1);
+	}
+
+	ped_free (rdb);
+
+	return result;
+}
+#endif /* !DISCOVER_ONLY */
+
+static int
+_amiga_loop_check (uint32_t block, uint32_t * blocklist, uint32_t max)
+{
+	uint32_t i;
+
+	for (i = 0; i < max; i++)
+		if (block == blocklist[i]) {
+			/* We are looping, let's stop.  */
+			return 1;
+		}
+	blocklist[max] = block;
+	return 0;
+}
+
+/* We have already allocated a rdb, we are now reading it from the disk */
+static int
+amiga_read (PedDisk* disk)
+{
+	struct RigidDiskBlock *rdb;
+	struct PartitionBlock *partition;
+	uint32_t partblock;
+	uint32_t partlist[AMIGA_MAX_PARTITIONS];
+	PedSector cylblocks;
+	int i;
+
+	PED_ASSERT(disk != NULL, return 0);
+	PED_ASSERT(disk->dev != NULL, return 0);
+	PED_ASSERT(disk->dev->sector_size % PED_SECTOR_SIZE_DEFAULT == 0,
+                   return 0);
+	PED_ASSERT(disk->disk_specific != NULL, return 0);
+	rdb = RDSK(disk->disk_specific);
+
+	if (_amiga_find_rdb (disk->dev, rdb) == AMIGA_RDB_NOT_FOUND) {
+		ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			_("%s : Didn't find rdb block, should never happen."), __func__);
+		return 0;
+	}
+
+	/* Let's copy the rdb read geometry to the dev */
+	/* FIXME: should this go into disk->dev->bios_geom instead? */
+	disk->dev->hw_geom.cylinders = PED_BE32_TO_CPU (rdb->rdb_Cylinders);
+	disk->dev->hw_geom.heads = PED_BE32_TO_CPU (rdb->rdb_Heads);
+	disk->dev->hw_geom.sectors = PED_BE32_TO_CPU (rdb->rdb_Sectors);
+	cylblocks = (PedSector) PED_BE32_TO_CPU (rdb->rdb_Heads) *
+		(PedSector) PED_BE32_TO_CPU (rdb->rdb_Sectors);
+
+	/* Remove all partitions in the former in memory table */
+	ped_disk_delete_all (disk);
+
+	/* Let's allocate a partition block */
+	if (!(partition = ped_malloc (disk->dev->sector_size)))
+		return 0;
+
+	/* We initialize the hardblock free list to detect loops */
+	for (i = 0; i < AMIGA_MAX_PARTITIONS; i++) partlist[i] = LINK_END;
+
+	for (i = 1, partblock = PED_BE32_TO_CPU(rdb->rdb_PartitionList);
+		i < AMIGA_MAX_PARTITIONS && partblock != LINK_END;
+		i++, partblock = PED_BE32_TO_CPU(partition->pb_Next))
+	{
+		PedPartition *part;
+		PedSector start, end;
+		PedConstraint *constraint_exact;
+
+		/* Let's look for loops in the partition table */
+		if (_amiga_loop_check(partblock, partlist, i)) {
+			break;
+		}
+
+		/* Let's allocate and read a partition block to get its geometry*/
+		if (!_amiga_read_block (disk->dev, AMIGA(partition),
+		                        (PedSector)partblock, NULL)) {
+			ped_free(partition);
+			return 0;
+		}
+
+		start = ((PedSector) PED_BE32_TO_CPU (partition->de_LowCyl))
+			* cylblocks;
+		end = (((PedSector) PED_BE32_TO_CPU (partition->de_HighCyl))
+			+ 1) * cylblocks - 1;
+
+		/* We can now construct a new partition */
+		if (!(part = ped_partition_new (disk, 0, NULL, start, end))) {
+			ped_free(partition);
+			return 0;
+		}
+		/* And copy over the partition block */
+		memcpy(part->disk_specific, partition, 256);
+
+		part->num = i;
+		part->type = 0;
+		/* Let's probe what file system is present on the disk */
+		part->fs_type = ped_file_system_probe (&part->geom);
+		
+		constraint_exact = ped_constraint_exact (&part->geom);
+		if (!ped_disk_add_partition (disk, part, constraint_exact)) {
+			ped_partition_destroy(part);
+			ped_free(partition);
+			return 0;
+		}
+		ped_constraint_destroy (constraint_exact);
+	}
+	return 1;
+}
+
+static int
+_amiga_find_free_blocks(const PedDisk *disk, uint32_t *table,
+	struct LinkedBlock *block, uint32_t first, uint32_t type)
+{
+	PedSector next;
+
+	PED_ASSERT(disk != NULL, return 0);
+	PED_ASSERT(disk->dev != NULL, return 0);
+
+	for (next = first; next != LINK_END; next = PED_BE32_TO_CPU(block->lk_Next)) {
+		if (table[next] != IDNAME_FREE) {
+			switch (ped_exception_throw(PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_FIX | PED_EXCEPTION_IGNORE | PED_EXCEPTION_CANCEL,
+				_("%s : Loop detected at block %d."), __func__, next))
+			{
+				case PED_EXCEPTION_CANCEL :
+					return 0;
+				case PED_EXCEPTION_FIX :
+					/* TODO : Need to add fixing code */
+				case PED_EXCEPTION_IGNORE :
+				case PED_EXCEPTION_UNHANDLED :
+				default : 
+					return 1;
+			}
+		}
+
+		if (!_amiga_read_block (disk->dev, AMIGA(block), next, NULL)) {
+			return 0;
+		}
+		if (PED_BE32_TO_CPU(block->lk_ID) != type) {
+			switch (ped_exception_throw(PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_CANCEL,
+				_("%s : The %s list seems bad at block %s."),
+				__func__, _amiga_block_id(PED_BE32_TO_CPU(block->lk_ID)), next))
+			{
+				/* TODO : to more subtile things here */
+				case PED_EXCEPTION_CANCEL :
+				case PED_EXCEPTION_UNHANDLED :
+				default : 
+					return 0;
+			}
+		}
+		table[next] = type;
+		if (PED_BE32_TO_CPU(block->lk_ID) == IDNAME_FILESYSHEADER) {
+			if (_amiga_find_free_blocks(disk, table, block,
+				PED_BE32_TO_CPU(LNK2(block)->lk2_Linked),
+				IDNAME_LOADSEG) == 0) return 0;
+		}
+	}
+	return 1;
+}
+static uint32_t
+_amiga_next_free_block(uint32_t *table, uint32_t start, uint32_t type) {
+	int i;
+
+	for (i = start; table[i] != type && table[i] != IDNAME_FREE; i++);
+	return i;
+}
+static PedPartition *
+_amiga_next_real_partition(const PedDisk *disk, PedPartition *part) {
+	PedPartition *next;
+
+	for (next = ped_disk_next_partition (disk, part);
+		next != NULL && !ped_partition_is_active (next);
+		next = ped_disk_next_partition (disk, next));
+	return next;
+}
+#ifndef DISCOVER_ONLY
+static int
+amiga_write (const PedDisk* disk)
+{
+	struct RigidDiskBlock *rdb;
+	struct LinkedBlock *block;
+	struct PartitionBlock *partition;
+	PedPartition *part, *next_part;
+	PedSector cylblocks, first_hb, last_hb, last_used_hb;
+	uint32_t * table;
+	uint32_t i;
+	uint32_t rdb_num, part_num, block_num, next_num;
+
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (disk->dev != NULL, return 0);
+	PED_ASSERT (disk->disk_specific != NULL, return 0);
+
+	if (!(rdb = ped_malloc (PED_SECTOR_SIZE_DEFAULT)))
+		return 0;
+
+	/* Let's read the rdb */
+	if ((rdb_num = _amiga_find_rdb (disk->dev, rdb)) == AMIGA_RDB_NOT_FOUND) {
+		rdb_num = 2;
+	} else {
+		memcpy (RDSK(disk->disk_specific), rdb, PED_SECTOR_SIZE_DEFAULT);
+	}
+	ped_free (rdb);
+	rdb = RDSK(disk->disk_specific);
+
+	cylblocks = (PedSector) PED_BE32_TO_CPU (rdb->rdb_Heads) *
+		(PedSector) PED_BE32_TO_CPU (rdb->rdb_Sectors);
+	first_hb = (PedSector) PED_BE32_TO_CPU (rdb->rdb_RDBBlocksLo);
+	last_hb = (PedSector) PED_BE32_TO_CPU (rdb->rdb_RDBBlocksHi);
+	last_used_hb = (PedSector) PED_BE32_TO_CPU (rdb->rdb_HighRDSKBlock);
+
+	/* let's allocate a free block table and initialize it */
+	if (!(table = ped_malloc ((last_hb - first_hb + 1) * sizeof(uint32_t))))
+		return 0;
+
+	memset(table, 0xff, (last_hb - first_hb + 1) * sizeof(uint32_t));
+	for (i = 0; i<=rdb_num; i++) table[i] = IDNAME_RIGIDDISK;
+	
+	/* Let's allocate a partition block */
+	if (!(block = ped_malloc (PED_SECTOR_SIZE_DEFAULT))) {
+		ped_free (table);
+		return 0;
+	}
+
+	/* And fill the free block table */
+	if (_amiga_find_free_blocks(disk, table, block,
+		PED_BE32_TO_CPU (rdb->rdb_BadBlockList), IDNAME_BADBLOCK) == 0)
+	{
+		ped_exception_throw(PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("%s : Failed to list bad blocks."), __func__);
+		goto error_free_table;
+	}
+	if (_amiga_find_free_blocks(disk, table, block,
+		PED_BE32_TO_CPU (rdb->rdb_PartitionList), IDNAME_PARTITION) == 0)
+	{
+		ped_exception_throw(PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("%s : Failed to list partition blocks."), __func__);
+		goto error_free_table;
+	}
+	if (_amiga_find_free_blocks(disk, table, block,
+		PED_BE32_TO_CPU (rdb->rdb_FileSysHeaderList), IDNAME_FILESYSHEADER) == 0)
+	{
+		ped_exception_throw(PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("%s : Failed to list file system blocks."), __func__);
+		goto error_free_table;
+	}
+	if (_amiga_find_free_blocks(disk, table, block,
+		PED_BE32_TO_CPU (rdb->rdb_BootBlockList), IDNAME_BOOT) == 0)
+	{
+		ped_exception_throw(PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("%s : Failed to list boot blocks."), __func__);
+		goto error_free_table;
+	}
+
+	block_num = next_num = part_num = _amiga_next_free_block(table, rdb_num+1,
+	                                                         IDNAME_PARTITION);
+	part = _amiga_next_real_partition(disk, NULL);
+	rdb->rdb_PartitionList = PED_CPU_TO_BE32(part ? part_num : LINK_END);
+	for (; part != NULL; part = next_part, block_num = next_num) {
+		PED_ASSERT(part->disk_specific != NULL, return 0);
+		PED_ASSERT(part->geom.start % cylblocks == 0, return 0);
+		PED_ASSERT((part->geom.end + 1) % cylblocks == 0, return 0);
+
+		next_part = _amiga_next_real_partition(disk, part);
+		next_num = _amiga_next_free_block(table, block_num+1, IDNAME_PARTITION);
+
+		partition = PART(part->disk_specific);
+		if (next_part == NULL)
+			partition->pb_Next = PED_CPU_TO_BE32(LINK_END);
+		else
+			partition->pb_Next = PED_CPU_TO_BE32(next_num);
+		partition->de_LowCyl = PED_CPU_TO_BE32(part->geom.start/cylblocks);
+		partition->de_HighCyl = PED_CPU_TO_BE32((part->geom.end+1)/cylblocks-1);
+		_amiga_calculate_checksum(AMIGA(partition));
+		if (!ped_device_write (disk->dev, (void*) partition, block_num, 1)) {
+			ped_exception_throw(PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_CANCEL,
+				_("Failed to write partition block at %d."),
+				block_num);
+			goto error_free_table;
+			/* WARNING : If we fail here, we stop everything,
+			 * and the partition table is lost. A better
+			 * solution should be found, using the second
+			 * half of the hardblocks to not overwrite the
+			 * old partition table. It becomes problematic
+			 * if we use more than half of the hardblocks. */
+		}
+	}
+
+	if (block_num > PED_BE32_TO_CPU (rdb->rdb_HighRDSKBlock))
+		rdb->rdb_HighRDSKBlock = PED_CPU_TO_BE32(block_num);
+
+	_amiga_calculate_checksum(AMIGA(rdb));
+	if (!ped_device_write (disk->dev, (void*) disk->disk_specific, rdb_num, 1))
+		goto error_free_table;
+
+	ped_free (table);
+	ped_free (block);
+	return ped_device_sync (disk->dev);
+
+error_free_table:
+	ped_free (table);
+	ped_free (block);
+	return 0;
+}
+#endif /* !DISCOVER_ONLY */
+
+static PedPartition*
+amiga_partition_new (const PedDisk* disk, PedPartitionType part_type,
+		   const PedFileSystemType* fs_type,
+		   PedSector start, PedSector end)
+{
+	PedPartition *part;
+	PedDevice *dev;
+	PedSector cyl;
+	struct PartitionBlock *partition;
+	struct RigidDiskBlock *rdb;
+
+	PED_ASSERT(disk != NULL, return NULL);
+	PED_ASSERT(disk->dev != NULL, return NULL);
+	PED_ASSERT(disk->disk_specific != NULL, return NULL);
+	dev = disk->dev;
+	cyl = (PedSector) (dev->hw_geom.sectors * dev->hw_geom.heads);
+	rdb = RDSK(disk->disk_specific);
+
+	if (!(part = _ped_partition_alloc (disk, part_type, fs_type, start, end)))
+		return NULL;
+
+	if (ped_partition_is_active (part)) {
+		if (!(part->disk_specific = ped_malloc (PED_SECTOR_SIZE_DEFAULT))) {
+			ped_free (part);
+			return NULL;
+		}
+		partition = PART(part->disk_specific);
+		memset(partition, 0, sizeof(struct PartitionBlock));
+
+		partition->pb_ID = PED_CPU_TO_BE32(IDNAME_PARTITION);
+		partition->pb_SummedLongs = PED_CPU_TO_BE32(64);
+		partition->pb_HostID = rdb->rdb_HostID;
+		partition->pb_Flags = PED_CPU_TO_BE32(0);
+		/* TODO : use a scheme including the device name and the
+		 * partition number, if it is possible */
+		_amiga_set_bstr("dhx", partition->pb_DriveName, 32);
+
+		partition->de_TableSize = PED_CPU_TO_BE32(19);
+		partition->de_SizeBlock = PED_CPU_TO_BE32(128);
+		partition->de_SecOrg = PED_CPU_TO_BE32(0);
+		partition->de_Surfaces = PED_CPU_TO_BE32(dev->hw_geom.heads);
+		partition->de_SectorPerBlock = PED_CPU_TO_BE32(1);
+		partition->de_BlocksPerTrack
+			= PED_CPU_TO_BE32(dev->hw_geom.sectors);
+		partition->de_Reserved = PED_CPU_TO_BE32(2);
+		partition->de_PreAlloc = PED_CPU_TO_BE32(0);
+		partition->de_Interleave = PED_CPU_TO_BE32(0);
+		partition->de_LowCyl = PED_CPU_TO_BE32(start/cyl);
+		partition->de_HighCyl = PED_CPU_TO_BE32((end+1)/cyl-1);
+		partition->de_NumBuffers = PED_CPU_TO_BE32(30);
+		partition->de_BufMemType = PED_CPU_TO_BE32(0);
+		partition->de_MaxTransfer = PED_CPU_TO_BE32(0x7fffffff);
+		partition->de_Mask = PED_CPU_TO_BE32(0xffffffff);
+		partition->de_BootPri = PED_CPU_TO_BE32(0);
+		partition->de_DosType = PED_CPU_TO_BE32(0x4c4e5800);
+		partition->de_Baud = PED_CPU_TO_BE32(0);
+		partition->de_Control = PED_CPU_TO_BE32(0);
+		partition->de_BootBlocks = PED_CPU_TO_BE32(0);
+
+	} else {
+		part->disk_specific = NULL;
+	}
+	return part;
+}
+
+static PedPartition*
+amiga_partition_duplicate (const PedPartition* part)
+{
+	PedPartition *new_part;
+	struct PartitionBlock *new_amiga_part;
+	struct PartitionBlock *old_amiga_part;
+
+	PED_ASSERT(part != NULL, return NULL);
+	PED_ASSERT(part->disk != NULL, return NULL);
+	PED_ASSERT(part->disk_specific != NULL, return NULL);
+	old_amiga_part = (struct PartitionBlock *) part->disk_specific;
+
+	new_part = ped_partition_new (part->disk, part->type,
+				      part->fs_type, part->geom.start,
+				      part->geom.end);
+	if (!new_part)
+		return NULL;
+
+	new_amiga_part = (struct PartitionBlock *) new_part->disk_specific;
+	memcpy (new_amiga_part, old_amiga_part, 256);
+
+	return new_part;
+}
+
+static void
+amiga_partition_destroy (PedPartition* part)
+{
+	PED_ASSERT (part != NULL, return);
+
+	if (ped_partition_is_active (part)) {
+		PED_ASSERT (part->disk_specific != NULL, return);
+		ped_free (part->disk_specific);
+	}
+	_ped_partition_free (part);
+}
+
+static int
+amiga_partition_set_system (PedPartition* part,
+                            const PedFileSystemType* fs_type)
+{
+	struct PartitionBlock *partition;
+
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk_specific != NULL, return 0);
+	partition = PART(part->disk_specific);
+
+	part->fs_type = fs_type;
+
+	if (!fs_type)
+		partition->de_DosType = PED_CPU_TO_BE32(0x4c4e5800); /* 'LNX\0' */
+	else if (!strcmp (fs_type->name, "ext2"))
+		partition->de_DosType = PED_CPU_TO_BE32(0x4c4e5800); /* 'LNX\0' */
+	else if (!strcmp (fs_type->name, "ext3"))
+		partition->de_DosType = PED_CPU_TO_BE32(0x45585403); /* 'EXT\3' */
+	else if (!strcmp (fs_type->name, "linux-swap"))
+		partition->de_DosType = PED_CPU_TO_BE32(0x53575000); /* 'SWP\0' */
+	else if (!strcmp (fs_type->name, "fat16"))
+		partition->de_DosType = PED_CPU_TO_BE32(0x46415400); /* 'FAT\0' */
+	else if (!strcmp (fs_type->name, "fat32"))
+		partition->de_DosType = PED_CPU_TO_BE32(0x46415401); /* 'FAT\1'*/
+	else if (!strcmp (fs_type->name, "hfs"))
+		partition->de_DosType = PED_CPU_TO_BE32(0x48465300); /* 'HFS\0' */
+	else if (!strcmp (fs_type->name, "jfs"))
+		partition->de_DosType = PED_CPU_TO_BE32(0x4a465300); /* 'JFS\0' */
+	else if (!strcmp (fs_type->name, "ntfs"))
+		partition->de_DosType = PED_CPU_TO_BE32(0x4e544653); /* 'NTFS' */
+	else if (!strcmp (fs_type->name, "reiserfs"))
+		partition->de_DosType = PED_CPU_TO_BE32(0x52465300); /* 'RFS\0' */
+	else if (!strcmp (fs_type->name, "sun-ufs"))
+		partition->de_DosType = PED_CPU_TO_BE32(0x53554653); /* 'SUFS' */
+	else if (!strcmp (fs_type->name, "hp-ufs"))
+		partition->de_DosType = PED_CPU_TO_BE32(0x48554653); /* 'HUFS' */
+	else if (!strcmp (fs_type->name, "xfs"))
+		partition->de_DosType = PED_CPU_TO_BE32(0x58465300); /* 'XFS\0' */
+	else
+		partition->de_DosType = PED_CPU_TO_BE32(0x00000000); /* unknown */
+	return 1;
+}
+
+static int
+amiga_partition_set_flag (PedPartition* part, PedPartitionFlag flag, int state)
+{
+	struct PartitionBlock *partition;
+
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk_specific != NULL, return 0);
+
+	partition = PART(part->disk_specific);
+
+	switch (flag) {
+		case PED_PARTITION_BOOT:
+			if (state) partition->pb_Flags |= PED_CPU_TO_BE32(PBFF_BOOTABLE);
+			else partition->pb_Flags &= ~(PED_CPU_TO_BE32(PBFF_BOOTABLE));
+			return 1;
+		case PED_PARTITION_HIDDEN:
+			if (state) partition->pb_Flags |= PED_CPU_TO_BE32(PBFF_NOMOUNT);
+			else partition->pb_Flags &= ~(PED_CPU_TO_BE32(PBFF_NOMOUNT));
+			return 1;
+		case PED_PARTITION_RAID:
+			if (state) partition->pb_Flags |= PED_CPU_TO_BE32(PBFF_RAID);
+			else partition->pb_Flags &= ~(PED_CPU_TO_BE32(PBFF_RAID));
+			return 1;
+		case PED_PARTITION_LVM:
+			if (state) partition->pb_Flags |= PED_CPU_TO_BE32(PBFF_LVM);
+			else partition->pb_Flags &= ~(PED_CPU_TO_BE32(PBFF_LVM));
+			return 1;
+		default:
+			return 0;
+	}
+}
+
+static int
+amiga_partition_get_flag (const PedPartition* part, PedPartitionFlag flag)
+{
+	struct PartitionBlock *partition;
+
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk_specific != NULL, return 0);
+
+	partition = PART(part->disk_specific);
+
+	switch (flag) {
+		case PED_PARTITION_BOOT:
+			return (partition->pb_Flags & PED_CPU_TO_BE32(PBFF_BOOTABLE));
+		case PED_PARTITION_HIDDEN:
+			return (partition->pb_Flags & PED_CPU_TO_BE32(PBFF_NOMOUNT));
+		case PED_PARTITION_RAID:
+			return (partition->pb_Flags & PED_CPU_TO_BE32(PBFF_RAID));
+		case PED_PARTITION_LVM:
+			return (partition->pb_Flags & PED_CPU_TO_BE32(PBFF_LVM));
+		default:
+			return 0;
+	}
+}
+
+static int
+amiga_partition_is_flag_available (const PedPartition* part,
+				 PedPartitionFlag flag)
+{
+	switch (flag) {
+	case PED_PARTITION_BOOT:
+	case PED_PARTITION_HIDDEN:
+	case PED_PARTITION_RAID:
+	case PED_PARTITION_LVM:
+		return 1;
+	default:
+		return 0;
+	}
+}
+
+static void             
+amiga_partition_set_name (PedPartition* part, const char* name)
+{               
+	struct PartitionBlock *partition;
+
+	PED_ASSERT (part != NULL, return);
+	PED_ASSERT (part->disk_specific != NULL, return);
+
+	partition = PART(part->disk_specific);
+	_amiga_set_bstr(name, partition->pb_DriveName, 32);
+}
+static const char*
+amiga_partition_get_name (const PedPartition* part)
+{
+	struct PartitionBlock *partition;
+
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk_specific != NULL, return 0);
+
+	partition = PART(part->disk_specific);
+
+	return _amiga_get_bstr(partition->pb_DriveName);
+}
+
+static PedConstraint*
+_amiga_get_constraint (const PedDisk *disk)
+{
+	PedDevice *dev = disk->dev;
+	PedAlignment start_align, end_align;
+	PedGeometry max_geom;
+	PedSector cyl_size = dev->hw_geom.sectors * dev->hw_geom.heads;
+
+	if (!ped_alignment_init(&start_align, 0, cyl_size))
+		return NULL;
+	if (!ped_alignment_init(&end_align, -1, cyl_size))
+		return NULL;
+	if (!ped_geometry_init(&max_geom, dev, MAX_RDB_BLOCK + 1,
+			       dev->length - MAX_RDB_BLOCK - 1))
+		return NULL;
+
+	return ped_constraint_new (&start_align, &end_align,
+		&max_geom, &max_geom, 1, dev->length);
+}
+
+static int
+amiga_partition_align (PedPartition* part, const PedConstraint* constraint)
+{
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk != NULL, return 0);
+	
+	if (_ped_partition_attempt_align (part, constraint,
+					  _amiga_get_constraint (part->disk)))
+	       	return 1;
+
+#ifndef DISCOVER_ONLY
+	ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+		_("Unable to satisfy all constraints on the partition."));
+#endif
+	return 0;
+}
+
+static int
+amiga_partition_enumerate (PedPartition* part)
+{
+	int i;
+	PedPartition* p;
+	
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk != NULL, return 0);
+
+	/* never change the partition numbers */
+	if (part->num != -1)
+		return 1;
+	for (i = 1; i <= AMIGA_MAX_PARTITIONS; i++) {
+		p = ped_disk_get_partition (part->disk, i);
+		if (!p) {
+			part->num = i;
+			return 1;
+		}
+	}
+
+	/* failed to allocate a number */
+#ifndef DISCOVER_ONLY
+	ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+		_("Unable to allocate a partition number."));
+#endif
+	return 0;
+}
+
+static int
+amiga_alloc_metadata (PedDisk* disk)
+{
+	PedPartition*		new_part;
+	PedConstraint*		constraint_any = NULL;
+
+	PED_ASSERT (disk != NULL, goto error);
+	PED_ASSERT (disk->dev != NULL, goto error);
+
+	constraint_any = ped_constraint_any (disk->dev);
+
+	/* Allocate space for the RDB */
+	new_part = ped_partition_new (disk, PED_PARTITION_METADATA, NULL,
+	                              0, MAX_RDB_BLOCK);
+	if (!new_part)
+		goto error;
+
+	if (!ped_disk_add_partition (disk, new_part, constraint_any)) {
+		ped_partition_destroy (new_part);
+		goto error;
+	}
+
+	ped_constraint_destroy (constraint_any);
+	return 1;
+error:
+	ped_constraint_destroy (constraint_any);
+	return 0;
+}
+
+static int
+amiga_get_max_primary_partition_count (const PedDisk* disk)
+{
+	return AMIGA_MAX_PARTITIONS;
+}
+
+static PedDiskOps amiga_disk_ops = {
+	probe:			amiga_probe,
+#ifndef DISCOVER_ONLY
+	clobber:		amiga_clobber,
+#else
+	clobber:		NULL,
+#endif
+	alloc:			amiga_alloc,
+	duplicate:		amiga_duplicate,
+	free:			amiga_free,
+	read:			amiga_read,
+#ifndef DISCOVER_ONLY
+	write:			amiga_write,
+#else
+	write:			NULL,
+#endif
+
+	partition_new:		amiga_partition_new,
+	partition_duplicate:	amiga_partition_duplicate,
+	partition_destroy:	amiga_partition_destroy,
+	partition_set_system:	amiga_partition_set_system,
+	partition_set_flag:	amiga_partition_set_flag,
+	partition_get_flag:	amiga_partition_get_flag,
+	partition_is_flag_available:
+				amiga_partition_is_flag_available,
+	partition_set_name:	amiga_partition_set_name,
+	partition_get_name:	amiga_partition_get_name,
+	partition_align:	amiga_partition_align,
+	partition_enumerate:	amiga_partition_enumerate,
+
+
+	alloc_metadata:		amiga_alloc_metadata,
+	get_max_primary_partition_count:
+				amiga_get_max_primary_partition_count
+};
+
+static PedDiskType amiga_disk_type = {
+	next:		NULL,
+	name:		"amiga",
+	ops:		&amiga_disk_ops,
+	features:	PED_DISK_TYPE_PARTITION_NAME
+};
+
+void
+ped_disk_amiga_init ()
+{
+	PED_ASSERT (sizeof (struct AmigaBlock) != 3, return);
+	PED_ASSERT (sizeof (struct RigidDiskBlock) != 64, return);
+	PED_ASSERT (sizeof (struct PartitionBlock) != 64, return);
+	PED_ASSERT (sizeof (struct LinkedBlock) != 5, return);
+	PED_ASSERT (sizeof (struct Linked2Block) != 18, return);
+
+	ped_disk_type_register (&amiga_disk_type);
+}
+
+void
+ped_disk_amiga_done ()
+{
+	ped_disk_type_unregister (&amiga_disk_type);
+}
diff --git a/parted-1.8.7/libparted/labels/sun.c b/parted-1.8.7/libparted/labels/sun.c
new file mode 100644
index 0000000..feb4123
--- /dev/null
+++ b/parted-1.8.7/libparted/labels/sun.c
@@ -0,0 +1,853 @@
+/* -*- Mode: c; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2000, 2001, 2005, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+
+    Contributor:  Ben Collins <bcollins@debian.org>
+*/
+
+#include <config.h>
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+#include <parted/endian.h>
+
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+/* Most of this came from util-linux's sun support, which was mostly done
+   by Jakub Jelinek.  */
+
+#define SUN_DISK_MAGIC		0xDABE	/* Disk magic number */
+#define SUN_DISK_MAXPARTITIONS	8
+
+#define WHOLE_DISK_ID		0x05
+#define WHOLE_DISK_PART		2	/* as in 0, 1, 2 (3rd partition) */
+#define LINUX_SWAP_ID		0x82
+
+typedef struct _SunRawPartition     SunRawPartition;
+typedef struct _SunPartitionInfo    SunPartitionInfo;
+typedef struct _SunRawLabel         SunRawLabel;
+typedef struct _SunPartitionData    SunPartitionData;
+typedef struct _SunDiskData         SunDiskData;
+
+struct __attribute__ ((packed)) _SunRawPartition {
+	u_int32_t	start_cylinder; /* where the part starts... */
+	u_int32_t	num_sectors;	/* ...and it's length */
+};
+
+struct __attribute__ ((packed)) _SunPartitionInfo {
+	u_int8_t	spare1;
+	u_int8_t	id;		/* Partition type */
+	u_int8_t	spare2;
+	u_int8_t	flags;		/* Partition flags */
+};
+
+struct __attribute__ ((packed)) _SunRawLabel {
+	char 		info[128];	/* Informative text string */
+	u_int8_t	spare0[14];
+	SunPartitionInfo infos[SUN_DISK_MAXPARTITIONS];
+	u_int8_t	spare1[246];	/* Boot information etc. */
+	u_int16_t	rspeed;		/* Disk rotational speed */
+	u_int16_t	pcylcount;	/* Physical cylinder count */
+	u_int16_t	sparecyl;	/* extra sects per cylinder */
+	u_int8_t	spare2[4];	/* More magic... */
+	u_int16_t	ilfact;		/* Interleave factor */
+	u_int16_t	ncyl;		/* Data cylinder count */
+	u_int16_t	nacyl;		/* Alt. cylinder count */
+	u_int16_t	ntrks;		/* Tracks per cylinder */
+	u_int16_t	nsect;		/* Sectors per track */
+	u_int8_t	spare3[4];	/* Even more magic... */
+	SunRawPartition partitions[SUN_DISK_MAXPARTITIONS];
+	u_int16_t	magic;		/* Magic number */
+	u_int16_t	csum;		/* Label xor'd checksum */
+};
+
+struct _SunPartitionData {
+	u_int8_t		type;
+	int			is_boot;
+	int			is_root;
+	int			is_lvm;
+};
+
+struct _SunDiskData {
+	PedSector		length; /* This is based on cyl - alt-cyl */
+	SunRawLabel		raw_label;
+};
+
+static PedDiskType sun_disk_type;
+
+/* Checksum computation */
+static void
+sun_compute_checksum (SunRawLabel *label)
+{
+	u_int16_t *ush = (u_int16_t *)label;
+	u_int16_t csum = 0;
+
+        while(ush < (u_int16_t *)(&label->csum))
+                csum ^= *ush++;
+        label->csum = csum;
+}
+
+/* Checksum Verification */
+static int
+sun_verify_checksum (SunRawLabel *label)
+{
+	u_int16_t *ush = ((u_int16_t *)(label + 1)) - 1;
+	u_int16_t csum = 0;
+
+	while (ush >= (u_int16_t *)label)
+		csum ^= *ush--;
+
+	return !csum;
+}
+
+static int
+sun_probe (const PedDevice *dev)
+{
+	SunRawLabel	label;
+
+	PED_ASSERT (dev != NULL, return 0);
+
+        if (dev->sector_size != 512)
+                return 0;
+
+	if (!ped_device_read (dev, &label, 0, 1))
+		return 0;
+
+	/* check magic */
+	if (PED_BE16_TO_CPU (label.magic) != SUN_DISK_MAGIC)
+		return 0;
+
+#ifndef DISCOVER_ONLY
+	if (!sun_verify_checksum(&label)) {
+		ped_exception_throw (
+			PED_EXCEPTION_ERROR,
+			PED_EXCEPTION_CANCEL,
+			_("Corrupted Sun disk label detected."));
+		return 0;
+	}
+#endif
+
+	return 1;
+}
+
+#ifndef DISCOVER_ONLY
+static int
+sun_clobber (PedDevice* dev)
+{
+	SunRawLabel label;
+
+	PED_ASSERT (dev != NULL, return 0);
+	PED_ASSERT (sun_probe (dev), return 0);
+
+	if (!ped_device_read (dev, &label, 0, 1))
+		return 0;
+	
+	label.magic = 0;
+	return ped_device_write (dev, &label, 0, 1);
+}
+#endif /* !DISCOVER_ONLY */
+
+static PedDisk*
+sun_alloc (const PedDevice* dev)
+{
+	PedDisk*	disk;
+	SunRawLabel*	label;
+	SunDiskData*	sun_specific;
+	PedCHSGeometry*	bios_geom = &((PedDevice*)dev)->bios_geom;
+	PedSector	cyl_size = bios_geom->sectors * bios_geom->heads;
+
+        disk = _ped_disk_alloc (dev, &sun_disk_type);
+	if (!disk)
+		goto error;
+
+	disk->disk_specific = (SunDiskData*) ped_malloc (sizeof (SunDiskData));
+	if (!disk->disk_specific)
+		goto error_free_disk;
+	sun_specific = (SunDiskData*) disk->disk_specific;
+
+	bios_geom->cylinders = dev->length / cyl_size;
+	sun_specific->length = bios_geom->cylinders * cyl_size;
+
+	label = &sun_specific->raw_label;
+	memset(label, 0, sizeof(SunRawLabel));
+
+	/* #gentoo-sparc people agree that nacyl = 0 is the best option */
+	label->magic	= PED_CPU_TO_BE16 (SUN_DISK_MAGIC);
+	label->nacyl	= 0;
+	label->pcylcount	= PED_CPU_TO_BE16 (bios_geom->cylinders);
+	label->rspeed	= PED_CPU_TO_BE16 (5400);
+	label->ilfact	= PED_CPU_TO_BE16 (1);
+	label->sparecyl	= 0;
+	label->ntrks	= PED_CPU_TO_BE16 (bios_geom->heads);
+	label->nsect	= PED_CPU_TO_BE16 (bios_geom->sectors);
+	label->ncyl	= PED_CPU_TO_BE16 (bios_geom->cylinders - 0);
+
+	/* Add a whole disk partition at a minimum */
+	label->infos[WHOLE_DISK_PART].id = WHOLE_DISK_ID;
+	label->partitions[WHOLE_DISK_PART].start_cylinder = 0;
+	label->partitions[WHOLE_DISK_PART].num_sectors =
+		PED_CPU_TO_BE32(bios_geom->cylinders * cyl_size);
+
+	/* Now a neato string to describe this label */
+	snprintf(label->info, sizeof(label->info) - 1,
+		 "GNU Parted Custom cyl %d alt %d hd %d sec %d",
+		 PED_BE16_TO_CPU(label->ncyl),
+		 PED_BE16_TO_CPU(label->nacyl),
+		 PED_BE16_TO_CPU(label->ntrks),
+		 PED_BE16_TO_CPU(label->nsect));
+
+	sun_compute_checksum(label);
+	return disk;
+
+error_free_disk:
+	_ped_disk_free (disk);
+error:
+	return NULL;
+}
+
+static PedDisk*
+sun_duplicate (const PedDisk* disk)
+{
+	PedDisk*	new_disk;
+	SunDiskData*	new_sun_data;
+	SunDiskData*	old_sun_data = (SunDiskData*) disk->disk_specific;
+       
+	new_disk = ped_disk_new_fresh (disk->dev, &sun_disk_type);
+	if (!new_disk)
+		return NULL;
+
+	new_sun_data = (SunDiskData*) new_disk->disk_specific;
+	memcpy (new_sun_data, old_sun_data, sizeof (SunDiskData));
+	return new_disk;
+}
+
+static void
+sun_free (PedDisk *disk)
+{
+	ped_free (disk->disk_specific);
+	_ped_disk_free (disk);
+}
+
+static int
+_check_geometry_sanity (PedDisk* disk, SunRawLabel* label)
+{
+	PedDevice*	dev = disk->dev;
+
+	if (PED_BE16_TO_CPU(label->nsect) == dev->hw_geom.sectors &&
+	    PED_BE16_TO_CPU(label->ntrks) == dev->hw_geom.heads)
+		dev->bios_geom = dev->hw_geom;
+
+	if (PED_BE16_TO_CPU(label->nsect) != dev->bios_geom.sectors ||
+	    PED_BE16_TO_CPU(label->ntrks) != dev->bios_geom.heads) {
+#ifndef DISCOVER_ONLY
+		if (ped_exception_throw (
+				PED_EXCEPTION_WARNING,
+				PED_EXCEPTION_IGNORE_CANCEL,
+				_("The disk CHS geometry (%d,%d,%d) reported "
+				  "by the operating system does not match "
+				  "the geometry stored on the disk label "
+				  "(%d,%d,%d)."),
+				dev->bios_geom.cylinders,
+			       	dev->bios_geom.heads,
+			       	dev->bios_geom.sectors,
+				PED_BE16_TO_CPU(label->pcylcount),
+				PED_BE16_TO_CPU(label->ntrks),
+				PED_BE16_TO_CPU(label->nsect))
+			== PED_EXCEPTION_CANCEL)
+			return 0;
+#endif
+		dev->bios_geom.sectors = PED_BE16_TO_CPU(label->nsect);
+		dev->bios_geom.heads = PED_BE16_TO_CPU(label->ntrks);
+		dev->bios_geom.cylinders = PED_BE16_TO_CPU(label->pcylcount);
+
+		if (dev->bios_geom.sectors * dev->bios_geom.heads
+			      	* dev->bios_geom.cylinders > dev->length) {
+			if (ped_exception_throw (
+				PED_EXCEPTION_WARNING,
+				PED_EXCEPTION_IGNORE_CANCEL,
+				_("The disk label describes a disk bigger than "
+				  "%s."),
+				dev->path)
+				!= PED_EXCEPTION_IGNORE)
+				return 0;
+		}
+	}
+	return 1;
+}
+
+static int
+sun_read (PedDisk* disk)
+{
+	SunRawLabel* label;
+	SunPartitionData* sun_data;
+	SunDiskData* disk_data;
+	int i;
+	PedPartition* part;
+	PedSector end, start, block;
+	PedConstraint* constraint_exact;
+	
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (disk->dev != NULL, return 0);
+	PED_ASSERT (disk->disk_specific != NULL, return 0);
+	
+	disk_data = (SunDiskData*) disk->disk_specific;
+	label = &disk_data->raw_label;
+
+	ped_disk_delete_all (disk);
+
+	if (!ped_device_read (disk->dev, label, 0, 1))
+		goto error;
+	if (!_check_geometry_sanity (disk, label))
+		goto error;
+
+	block = disk->dev->bios_geom.sectors * disk->dev->bios_geom.heads;
+	disk_data->length = block * disk->dev->bios_geom.cylinders;
+
+	for (i = 0; i < SUN_DISK_MAXPARTITIONS; i++) {
+		if (!PED_BE32_TO_CPU(label->partitions[i].num_sectors))
+			continue;
+		if (!label->infos[i].id)
+			continue;
+		if (label->infos[i].id == WHOLE_DISK_ID)
+	       		continue;
+
+		start = PED_BE32_TO_CPU(label->partitions[i].start_cylinder)
+				    * block;
+		end = start
+		      + PED_BE32_TO_CPU(label->partitions[i].num_sectors) - 1;
+
+		part = ped_partition_new (disk, 0, NULL, start, end);
+		if (!part)
+			goto error;
+
+		sun_data = part->disk_specific;
+		sun_data->type = label->infos[i].id;
+		sun_data->is_boot = sun_data->type == 0x1;
+		sun_data->is_root = sun_data->type == 0x2;
+		sun_data->is_lvm = sun_data->type == 0x8e;
+
+		part->num = i + 1;
+		part->fs_type = ped_file_system_probe (&part->geom);
+	
+		constraint_exact = ped_constraint_exact (&part->geom);
+		if (!ped_disk_add_partition (disk, part, constraint_exact))
+			goto error;
+		ped_constraint_destroy (constraint_exact);
+	}
+
+	return 1;
+
+ error:
+	return 0;
+}
+
+#ifndef DISCOVER_ONLY
+static void
+_probe_and_use_old_info (const PedDisk* disk)
+{
+	SunDiskData*		sun_specific;
+	SunRawLabel		old_label;
+
+	sun_specific = (SunDiskData*) disk->disk_specific;
+
+	if (!ped_device_read (disk->dev, &old_label, 0, 1))
+		return;
+	if (old_label.info [0]
+	    && PED_BE16_TO_CPU (old_label.magic) == SUN_DISK_MAGIC)
+		memcpy (&sun_specific->raw_label, &old_label, 512);
+}
+
+static int
+sun_write (const PedDisk* disk)
+{
+	SunRawLabel*		label;
+	SunPartitionData*	sun_data;
+	SunDiskData*		disk_data;
+	PedPartition*		part;
+	int			i;
+
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (disk->dev != NULL, return 0);
+
+	_probe_and_use_old_info (disk);
+
+	disk_data = (SunDiskData*) disk->disk_specific;
+	label = &disk_data->raw_label;
+
+	memset (label->partitions, 0,
+		sizeof (SunRawPartition) * SUN_DISK_MAXPARTITIONS);
+	memset (label->infos, 0,
+		sizeof (SunPartitionInfo) * SUN_DISK_MAXPARTITIONS);
+
+	for (i = 0; i < SUN_DISK_MAXPARTITIONS; i++) {
+		part = ped_disk_get_partition (disk, i + 1);
+
+		if (!part && i == WHOLE_DISK_PART) {
+			/* Ok, nothing explicitly in the whole disk
+			   partition, so let's put it there for safety
+			   sake.  */
+
+			label->infos[i].id = WHOLE_DISK_ID;
+			label->partitions[i].start_cylinder = 0;
+			label->partitions[i].num_sectors = 
+				PED_CPU_TO_BE32(disk_data->length);
+			continue;
+		}
+		if (!part)
+			continue;
+
+		sun_data = part->disk_specific;
+		label->infos[i].id = sun_data->type;
+		label->partitions[i].start_cylinder
+			= PED_CPU_TO_BE32 (part->geom.start
+				/ (disk->dev->bios_geom.sectors
+				       	* disk->dev->bios_geom.heads));
+		label->partitions[i].num_sectors
+			= PED_CPU_TO_BE32 (part->geom.end
+					   - part->geom.start + 1);
+	}
+
+	/* We assume the harddrive is always right, and that the label may
+	   be wrong. I don't think this will cause any problems, since the
+	   cylinder count is always enforced by our alignment, and we
+	   sanity checked the sectors/heads when we detected the device. The
+	   worst that could happen here is that the drive seems bigger or
+	   smaller than it really is, but we'll have that problem even if we
+	   don't do this.  */
+
+	if (disk->dev->bios_geom.cylinders > 65536) {
+		ped_exception_throw (
+			PED_EXCEPTION_WARNING,
+			PED_EXCEPTION_IGNORE,
+			_("The disk has %d cylinders, which is greater than "
+			  "the maximum of 65536."),
+			disk->dev->bios_geom.cylinders);
+	}
+
+	label->pcylcount = PED_CPU_TO_BE16 (disk->dev->bios_geom.cylinders);
+	label->ncyl = PED_CPU_TO_BE16 (disk->dev->bios_geom.cylinders
+			- PED_BE16_TO_CPU (label->nacyl));
+
+	sun_compute_checksum (label);
+
+	if (!ped_device_write (disk->dev, label, 0, 1))
+		goto error;
+	return ped_device_sync (disk->dev);
+
+error:
+	return 0;
+}
+#endif /* !DISCOVER_ONLY */
+
+static PedPartition*
+sun_partition_new (const PedDisk* disk, PedPartitionType part_type,
+		   const PedFileSystemType* fs_type,
+		   PedSector start, PedSector end)
+{
+	PedPartition*		part;
+	SunPartitionData*	sun_data;
+
+	part = _ped_partition_alloc (disk, part_type, fs_type, start, end);
+	if (!part)
+		goto error;
+
+	if (ped_partition_is_active (part)) {
+		part->disk_specific
+		       	= sun_data = ped_malloc (sizeof (SunPartitionData));
+		if (!sun_data)
+			goto error_free_part;
+		sun_data->type = 0;
+		sun_data->is_boot = 0;
+		sun_data->is_root = 0;
+		sun_data->is_lvm = 0;
+	} else {
+		part->disk_specific = NULL;
+	}
+
+	return part;
+
+	ped_free (sun_data);
+error_free_part:
+	ped_free (part);
+error:
+	return NULL;
+}
+
+static PedPartition*
+sun_partition_duplicate (const PedPartition* part)
+{
+	PedPartition*		new_part;
+	SunPartitionData*	new_sun_data;
+	SunPartitionData*	old_sun_data;
+
+	new_part = ped_partition_new (part->disk, part->type,
+				      part->fs_type, part->geom.start,
+				      part->geom.end);
+	if (!new_part)
+		return NULL;
+	new_part->num = part->num;
+
+	old_sun_data = (SunPartitionData*) part->disk_specific;
+	new_sun_data = (SunPartitionData*) new_part->disk_specific;
+	new_sun_data->type = old_sun_data->type;
+	new_sun_data->is_boot = old_sun_data->is_boot;
+	new_sun_data->is_root = old_sun_data->is_root;
+	new_sun_data->is_lvm = old_sun_data->is_lvm;
+	return new_part;
+}
+
+static void
+sun_partition_destroy (PedPartition* part)
+{
+	PED_ASSERT (part != NULL, return);
+
+	if (ped_partition_is_active (part))
+		ped_free (part->disk_specific);
+	ped_free (part);
+}
+
+static int
+sun_partition_set_system (PedPartition* part, const PedFileSystemType* fs_type)
+{
+	SunPartitionData*		sun_data = part->disk_specific;
+
+	part->fs_type = fs_type;
+
+	if (sun_data->is_boot) {
+		sun_data->type = 0x1;
+		return 1;
+	}
+	if (sun_data->is_root) {
+		sun_data->type = 0x2;
+		return 1;
+	}
+	if (sun_data->is_lvm) {
+		sun_data->type = 0x8e;
+		return 1;
+	}
+
+	sun_data->type = 0x83;
+	if (fs_type) {
+		if (!strcmp (fs_type->name, "linux-swap"))
+			sun_data->type = 0x82;
+		else if (!strcmp (fs_type->name, "ufs"))
+			sun_data->type = 0x6;
+	}
+
+	return 1;
+}
+
+static int
+sun_partition_set_flag (PedPartition* part, PedPartitionFlag flag, int state)
+{
+	SunPartitionData*		sun_data;
+
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk_specific != NULL, return 0);
+	PED_ASSERT (ped_partition_is_flag_available (part, flag), return 0);
+
+	sun_data = part->disk_specific;
+
+	switch (flag) {
+		case PED_PARTITION_BOOT:
+			sun_data->is_boot = state;
+			if (state)
+				sun_data->is_root = sun_data->is_lvm = 0;
+			return ped_partition_set_system (part, part->fs_type);
+
+		case PED_PARTITION_ROOT:
+			sun_data->is_root = state;
+			if (state)
+				sun_data->is_boot = sun_data->is_lvm = 0;
+			return ped_partition_set_system (part, part->fs_type);
+
+		case PED_PARTITION_LVM:
+			sun_data->is_lvm = state;
+			if (state)
+				sun_data->is_root = sun_data->is_boot = 0;
+			return ped_partition_set_system (part, part->fs_type);
+
+		default:
+			return 0;
+	}
+}
+
+
+static int
+sun_partition_get_flag (const PedPartition* part, PedPartitionFlag flag)
+{
+	SunPartitionData*       sun_data;
+
+	PED_ASSERT (part != NULL, return 0);
+	PED_ASSERT (part->disk_specific != NULL, return 0);
+
+	sun_data = part->disk_specific;
+
+	switch (flag) {
+		case PED_PARTITION_BOOT:
+			return sun_data->is_boot;
+		case PED_PARTITION_ROOT:
+			return sun_data->is_root;
+		case PED_PARTITION_LVM:
+			return sun_data->is_lvm;
+
+		default:
+			return 0;
+	}
+}
+
+
+static int
+sun_partition_is_flag_available (const PedPartition* part,
+				 PedPartitionFlag flag)
+{
+	switch (flag) {
+		case PED_PARTITION_BOOT:
+		case PED_PARTITION_ROOT:
+		case PED_PARTITION_LVM:
+			return 1;
+
+		default:
+			return 0;
+	}
+}
+
+
+static int
+sun_get_max_primary_partition_count (const PedDisk* disk)
+{
+	return SUN_DISK_MAXPARTITIONS;
+}
+
+static PedConstraint*
+_get_strict_constraint (PedDisk* disk)
+{
+	PedDevice*	dev = disk->dev;
+        PedAlignment    start_align;
+        PedAlignment    end_align;
+        PedGeometry     max_geom;
+	SunDiskData*	disk_data = disk->disk_specific;
+	PedSector	block = dev->bios_geom.sectors * dev->bios_geom.heads;
+
+        if (!ped_alignment_init (&start_align, 0, block))
+                return NULL;
+        if (!ped_alignment_init (&end_align, -1, block))
+                return NULL;
+	if (!ped_geometry_init (&max_geom, dev, 0, disk_data->length))
+		return NULL;
+
+        return ped_constraint_new (&start_align, &end_align, &max_geom,
+                                   &max_geom, 1, dev->length);
+}
+
+static PedConstraint*
+_get_lax_constraint (PedDisk* disk)
+{
+	PedDevice*	dev = disk->dev;
+        PedAlignment    start_align;
+        PedGeometry     max_geom;
+	SunDiskData*	disk_data = disk->disk_specific;
+	PedSector	block = dev->bios_geom.sectors * dev->bios_geom.heads;
+
+        if (!ped_alignment_init (&start_align, 0, block))
+                return NULL;
+	if (!ped_geometry_init (&max_geom, dev, 0, disk_data->length))
+		return NULL;
+
+        return ped_constraint_new (&start_align, ped_alignment_any, &max_geom,
+                                   &max_geom, 1, dev->length);
+}
+
+/* _get_strict_constraint() will align the partition to the end of the cylinder.
+ * This isn't required, but since partitions must start at the start of the
+ * cylinder, space between the end of a partition and the end of a cylinder
+ * is unusable, so there's no point wasting space!
+ *	However, if they really insist (via constraint)... which they will
+ * if they're reading a weird table of the disk... then we allow the end to
+ * be anywhere, with _get_lax_constraint()
+ */
+static int
+sun_partition_align (PedPartition* part, const PedConstraint* constraint)
+{
+        PED_ASSERT (part != NULL, return 0);
+
+	if (_ped_partition_attempt_align (part, constraint,
+					  _get_strict_constraint (part->disk)))
+	       	return 1;
+	if (_ped_partition_attempt_align (part, constraint,
+					  _get_lax_constraint (part->disk)))
+	       	return 1;
+
+#ifndef DISCOVER_ONLY
+	ped_exception_throw (
+		PED_EXCEPTION_ERROR,
+		PED_EXCEPTION_CANCEL,
+		_("Unable to satisfy all constraints on the partition."));
+#endif
+	return 0;
+}
+
+static int
+sun_partition_enumerate (PedPartition* part)
+{
+	int i;
+	PedPartition* p;
+	
+	/* never change the partition numbers */
+	if (part->num != -1)
+		return 1;
+	for (i = 1; i <= SUN_DISK_MAXPARTITIONS; i++) {
+		/* skip the Whole Disk partition for now */
+		if (i == WHOLE_DISK_PART + 1)
+			continue;
+		p = ped_disk_get_partition (part->disk, i);
+		if (!p) {
+			part->num = i;
+			return 1;
+		}
+	}
+
+#ifndef DISCOVER_ONLY
+	/* Ok, now allocate the Whole disk if it isn't already */
+	p = ped_disk_get_partition (part->disk, WHOLE_DISK_PART + 1);
+	if (!p) {
+		int j = ped_exception_throw (
+				PED_EXCEPTION_WARNING,
+				PED_EXCEPTION_IGNORE_CANCEL,
+				_("The Whole Disk partition is the only "
+				  "available one left.  Generally, it is not a "
+				  "good idea to overwrite this partition with "
+				  "a real one.  Solaris may not be able to "
+				  "boot without it, and SILO (the sparc boot "
+				  "loader) appreciates it as well."));
+		if (j == PED_EXCEPTION_IGNORE) {
+			/* bad bad bad...you will suffer your own fate */
+			part->num = WHOLE_DISK_PART + 1;
+			return 1;
+		}
+	}
+
+	/* failed to allocate a number, this means we are full */
+	ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+			     _("Sun disk label is full."));
+#endif
+	return 0;
+}
+
+static int
+sun_alloc_metadata (PedDisk* disk)
+{
+	PedPartition*	new_part;
+	SunDiskData*	disk_data;
+	PedConstraint*	constraint_any;
+
+	PED_ASSERT (disk != NULL, return 0);
+	PED_ASSERT (disk->disk_specific != NULL, return 0);
+	PED_ASSERT (disk->dev != NULL, return 0);
+
+	constraint_any = ped_constraint_any (disk->dev);
+
+	/* Sun disk label does not need to allocate a sector. The disk
+	   label is contained within the first 512 bytes, which should not
+	   be overwritten by any boot loader or superblock. It is safe for
+	   most partitions to start at sector 0. We do however, allocate
+	   the space used by alt-cyl's, since we cannot use those. Put them
+	   at the end of the disk.  */
+
+	disk_data = disk->disk_specific;
+
+	if (disk->dev->length <= 0 ||
+	    disk_data->length <= 0 ||
+	    disk->dev->length == disk_data->length)
+		goto error;
+
+	new_part = ped_partition_new (disk, PED_PARTITION_METADATA, NULL,
+			disk_data->length, disk->dev->length - 1);
+	if (!new_part)
+		goto error;
+
+	if (!ped_disk_add_partition (disk, new_part, constraint_any)) {
+		ped_partition_destroy (new_part);
+		goto error;
+	}
+
+	ped_constraint_destroy (constraint_any);
+	return 1;
+error:
+	ped_constraint_destroy (constraint_any);
+	return 0;
+}
+
+static PedDiskOps sun_disk_ops = {
+	probe:			sun_probe,
+#ifndef DISCOVER_ONLY
+	clobber:		sun_clobber,
+#else
+	clobber:		NULL,
+#endif
+	alloc:			sun_alloc,
+	duplicate:		sun_duplicate,
+	free:			sun_free,
+	read:			sun_read,
+#ifndef DISCOVER_ONLY
+	write:			sun_write,
+#else
+	write:			NULL,
+#endif
+
+	partition_new:		sun_partition_new,
+	partition_duplicate:	sun_partition_duplicate,
+	partition_destroy:	sun_partition_destroy,
+	partition_set_system:	sun_partition_set_system,
+	partition_set_flag:	sun_partition_set_flag,
+	partition_get_flag:	sun_partition_get_flag,
+	partition_is_flag_available:	sun_partition_is_flag_available,
+	partition_align:	sun_partition_align,
+	partition_enumerate:	sun_partition_enumerate,
+	alloc_metadata:		sun_alloc_metadata,
+	get_max_primary_partition_count:
+				sun_get_max_primary_partition_count,
+
+	partition_set_name:		NULL,
+	partition_get_name:		NULL,
+};
+
+static PedDiskType sun_disk_type = {
+	next:		NULL,
+	name:		"sun",
+	ops:		&sun_disk_ops,
+	features:	0
+};
+
+void
+ped_disk_sun_init ()
+{
+	PED_ASSERT (sizeof (SunRawLabel) == 512, return);
+	ped_disk_type_register (&sun_disk_type);
+}
+
+void
+ped_disk_sun_done ()
+{
+	ped_disk_type_unregister (&sun_disk_type);
+}
diff --git a/parted-1.8.7/libparted/labels/vtoc.c b/parted-1.8.7/libparted/labels/vtoc.c
new file mode 100644
index 0000000..bd2c905
--- /dev/null
+++ b/parted-1.8.7/libparted/labels/vtoc.c
@@ -0,0 +1,1154 @@
+#include <config.h>
+#include <parted/vtoc.h>
+
+#ifdef DEBUG_DASD
+#define PDEBUG fprintf(stderr, "%s:%d:%s\n", \
+                       __FILE__,                              \
+                       __LINE__,                              \
+                       __PRETTY_FUNCTION__);
+#else
+#define PDEBUG
+#endif
+
+#include <parted/parted.h>
+
+#include <libintl.h>
+#if ENABLE_NLS
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+static const unsigned char EBCtoASC[256] =
+{
+/* 0x00  NUL   SOH   STX   ETX  *SEL    HT  *RNL   DEL */
+	0x00, 0x01, 0x02, 0x03, 0x07, 0x09, 0x07, 0x7F,
+/* 0x08  -GE  -SPS  -RPT    VT    FF    CR    SO    SI */
+	0x07, 0x07, 0x07, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
+/* 0x10  DLE   DC1   DC2   DC3  -RES   -NL    BS  -POC
+                                -ENP  ->LF             */
+	0x10, 0x11, 0x12, 0x13, 0x07, 0x0A, 0x08, 0x07,
+/* 0x18  CAN    EM  -UBS  -CU1  -IFS  -IGS  -IRS  -ITB
+                                                  -IUS */
+	0x18, 0x19, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+/* 0x20  -DS  -SOS    FS  -WUS  -BYP    LF   ETB   ESC
+                                -INP                   */
+	0x07, 0x07, 0x1C, 0x07, 0x07, 0x0A, 0x17, 0x1B,
+/* 0x28  -SA  -SFE   -SM  -CSP  -MFA   ENQ   ACK   BEL
+                     -SW                               */ 
+	0x07, 0x07, 0x07, 0x07, 0x07, 0x05, 0x06, 0x07,
+/* 0x30 ----  ----   SYN   -IR   -PP  -TRN  -NBS   EOT */
+	0x07, 0x07, 0x16, 0x07, 0x07, 0x07, 0x07, 0x04,
+/* 0x38 -SBS   -IT  -RFF  -CU3   DC4   NAK  ----   SUB */
+	0x07, 0x07, 0x07, 0x07, 0x14, 0x15, 0x07, 0x1A,
+/* 0x40   SP   RSP           ä              ----       */
+	0x20, 0xFF, 0x83, 0x84, 0x85, 0xA0, 0x07, 0x86,
+/* 0x48                      .     <     (     +     | */
+	0x87, 0xA4, 0x9B, 0x2E, 0x3C, 0x28, 0x2B, 0x7C,
+/* 0x50    &                                      ---- */
+	0x26, 0x82, 0x88, 0x89, 0x8A, 0xA1, 0x8C, 0x07,
+/* 0x58          ß     !     $     *     )     ;       */
+	0x8D, 0xE1, 0x21, 0x24, 0x2A, 0x29, 0x3B, 0xAA,
+/* 0x60    -     /  ----     Ä  ----  ----  ----       */
+	0x2D, 0x2F, 0x07, 0x8E, 0x07, 0x07, 0x07, 0x8F,
+/* 0x68             ----     ,     %     _     >     ? */ 
+	0x80, 0xA5, 0x07, 0x2C, 0x25, 0x5F, 0x3E, 0x3F,
+/* 0x70  ---        ----  ----  ----  ----  ----  ---- */
+	0x07, 0x90, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+/* 0x78    *     `     :     #     @     '     =     " */
+	0x70, 0x60, 0x3A, 0x23, 0x40, 0x27, 0x3D, 0x22,
+/* 0x80    *     a     b     c     d     e     f     g */
+	0x07, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+/* 0x88    h     i              ----  ----  ----       */
+	0x68, 0x69, 0xAE, 0xAF, 0x07, 0x07, 0x07, 0xF1,
+/* 0x90    °     j     k     l     m     n     o     p */
+	0xF8, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70,
+/* 0x98    q     r                    ----        ---- */
+	0x71, 0x72, 0xA6, 0xA7, 0x91, 0x07, 0x92, 0x07,
+/* 0xA0          ~     s     t     u     v     w     x */
+	0xE6, 0x7E, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
+/* 0xA8    y     z              ----  ----  ----  ---- */
+	0x79, 0x7A, 0xAD, 0xAB, 0x07, 0x07, 0x07, 0x07,
+/* 0xB0    ^                    ----     §  ----       */
+	0x5E, 0x9C, 0x9D, 0xFA, 0x07, 0x07, 0x07, 0xAC,
+/* 0xB8       ----     [     ]  ----  ----  ----  ---- */
+	0xAB, 0x07, 0x5B, 0x5D, 0x07, 0x07, 0x07, 0x07,
+/* 0xC0    {     A     B     C     D     E     F     G */
+	0x7B, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
+/* 0xC8    H     I  ----           ö              ---- */
+	0x48, 0x49, 0x07, 0x93, 0x94, 0x95, 0xA2, 0x07,
+/* 0xD0    }     J     K     L     M     N     O     P */
+	0x7D, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50,
+/* 0xD8    Q     R  ----           ü                   */
+	0x51, 0x52, 0x07, 0x96, 0x81, 0x97, 0xA3, 0x98,
+/* 0xE0    \           S     T     U     V     W     X */
+	0x5C, 0xF6, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
+/* 0xE8    Y     Z        ----     Ö  ----  ----  ---- */
+	0x59, 0x5A, 0xFD, 0x07, 0x99, 0x07, 0x07, 0x07,
+/* 0xF0    0     1     2     3     4     5     6     7 */
+	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
+/* 0xF8    8     9  ----  ----     Ü  ----  ----  ---- */
+	0x38, 0x39, 0x07, 0x07, 0x9A, 0x07, 0x07, 0x07
+};
+
+static const unsigned char ASCtoEBC[256] =
+{
+    /*00  NL    SH    SX    EX    ET    NQ    AK    BL */
+	0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F,
+    /*08  BS    HT    LF    VT    FF    CR    SO    SI */
+	0x16, 0x05, 0x15, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
+    /*10  DL    D1    D2    D3    D4    NK    SN    EB */
+	0x10, 0x11, 0x12, 0x13, 0x3C, 0x15, 0x32, 0x26,
+    /*18  CN    EM    SB    EC    FS    GS    RS    US */
+	0x18, 0x19, 0x3F, 0x27, 0x1C, 0x1D, 0x1E, 0x1F,
+    /*20  SP     !     "     #     $     %     &     ' */
+	0x40, 0x5A, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D,
+    /*28   (     )     *     +     ,     -    .      / */
+	0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61,
+    /*30   0     1     2     3     4     5     6     7 */
+	0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
+    /*38   8     9     :     ;     <     =     >     ? */
+	0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F,
+    /*40   @     A     B     C     D     E     F     G */
+	0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
+    /*48   H     I     J     K     L     M     N     O */
+	0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
+    /*50   P     Q     R     S     T     U     V     W */
+	0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6,
+    /*58   X     Y     Z     [     \     ]     ^     _ */
+	0xE7, 0xE8, 0xE9, 0xAD, 0xE0, 0xBD, 0x5F, 0x6D,
+    /*60   `     a     b     c     d     e     f     g */
+	0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
+    /*68   h     i     j     k     l     m     n     o */
+	0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
+    /*70   p     q     r     s     t     u     v     w */
+	0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6,
+    /*78   x     y     z     {     |     }     ~    DL */
+	0xA7, 0xA8, 0xA9, 0xC0, 0x4F, 0xD0, 0xA1, 0x07,
+	0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
+	0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
+	0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
+	0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
+	0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
+	0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
+	0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
+	0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
+	0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
+	0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
+	0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
+	0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
+	0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
+	0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
+	0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
+	0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0xFF
+};
+
+enum failure {
+	unable_to_open,
+	unable_to_seek,
+	unable_to_write,
+	unable_to_read
+};
+
+static char buffer[85];
+
+static void 
+vtoc_error (enum failure why, char *s1, char *s2) 
+{
+	PDEBUG
+	char error[8192];
+
+	switch (why) {
+		case unable_to_open:
+			sprintf(error, _("%s opening device '%s' failed.\n%s\n"),
+					VTOC_ERROR, s1, s2);
+			break;
+		case unable_to_seek:
+			sprintf(error, _("%s seeking device '%s' failed.\n%s\n"),
+					VTOC_ERROR, s1, s2);
+			break;
+		case unable_to_write:
+			sprintf(error, _("%s writing to device '%s' failed,\n%s\n"),
+					VTOC_ERROR, s1, s2);
+			break;
+		case unable_to_read:
+			sprintf(error, _("%s reading from device '%s' failed.\n%s\n"),
+					VTOC_ERROR, s1, s2);
+			break;
+		default:
+			sprintf(error, _("Fatal error\n"));
+	}
+
+	ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, error);
+}
+
+char * 
+vtoc_ebcdic_enc (char source[LINE_LENGTH],
+                 char target[LINE_LENGTH],
+                 int l) 
+{
+	PDEBUG
+	int i;
+
+	for (i = 0; i < l; i++) 
+		target[i]=ASCtoEBC[(unsigned char)(source[i])];
+
+	return target;
+}
+
+char * 
+vtoc_ebcdic_dec (char source[LINE_LENGTH],
+                 char target[LINE_LENGTH],
+                 int l)
+{
+	PDEBUG
+	int i;
+
+	for (i = 0; i < l; i++) 
+		target[i]=EBCtoASC[(unsigned char)(source[i])];
+
+	return target;
+}
+
+void 
+vtoc_set_extent (extent_t *ext, u_int8_t typeind, u_int8_t seqno,
+                 cchh_t *lower, cchh_t *upper) 
+{ 
+	PDEBUG
+	ext->typeind = typeind;
+	ext->seqno   = seqno;
+	memcpy(&ext->llimit,lower,sizeof(cchh_t));
+	memcpy(&ext->ulimit,upper,sizeof(cchh_t));
+}
+
+void 
+vtoc_set_cchh (cchh_t *addr, u_int16_t cc, u_int16_t hh) 
+{
+	PDEBUG
+	addr->cc = cc;
+	addr->hh = hh;
+}
+
+static void 
+vtoc_set_ttr (ttr_t *addr, u_int16_t tt, u_int8_t r) 
+{
+	PDEBUG
+	addr->tt = tt;
+	addr->r = r;
+}
+
+void 
+vtoc_set_cchhb (cchhb_t *addr, u_int16_t cc, u_int16_t hh, u_int8_t b) 
+{
+	PDEBUG
+	addr->cc = cc;
+	addr->hh = hh;
+	addr->b = b;
+}
+
+void 
+vtoc_set_date (labeldate_t * d, u_int8_t year, u_int16_t day) 
+{
+	PDEBUG
+	d->year = year;
+	d->day = day;
+}
+
+/*
+ * initializes the volume label with EBCDIC spaces
+ */
+void
+vtoc_volume_label_init (volume_label_t *vlabel)
+{
+	PDEBUG
+	sprintf(buffer, "%84s", " ");
+	vtoc_ebcdic_enc(buffer, buffer, 84);	
+	strncpy(vlabel->volkey, buffer, 84);
+}
+
+/*
+ * reads the volume label from dasd
+ */
+int 
+vtoc_read_volume_label (int f, unsigned long vlabel_start,
+                        volume_label_t *vlabel) 
+{
+	PDEBUG
+	int rc;
+
+	if (lseek(f, vlabel_start, SEEK_SET) == -1) {
+		vtoc_error(unable_to_seek, "vtoc_read_volume_label",
+				   "Could not read volume label.");
+		return 1;
+	}
+
+	rc = read(f, vlabel, sizeof(volume_label_t));
+	if (rc != sizeof(volume_label_t)) {
+		vtoc_error(unable_to_read, "vtoc_read_volume_label",
+				   "Could not read volume label.");
+		return 1;
+	}
+
+	return 0;
+}
+
+/*
+ * writes the volume label to dasd
+ */
+int 
+vtoc_write_volume_label (int f, unsigned long vlabel_start,
+                         volume_label_t *vlabel) 
+{
+	PDEBUG
+	int rc;
+
+	if (lseek(f, vlabel_start, SEEK_SET) == -1)
+		vtoc_error(unable_to_seek, "vtoc_write_volume_label",
+				   "Could not write volume label.");
+
+	rc = write(f, vlabel, sizeof(volume_label_t)); 
+	if (rc != sizeof(volume_label_t)) 
+		vtoc_error(unable_to_write, "vtoc_write_volume_label",
+				   "Could not write volume label.");
+
+	return 0;
+}
+
+/*
+ * takes a string as input, converts it to uppercase, translates
+ * it to EBCDIC and fills it up with spaces before it copies it
+ * as volume serial to the volume label
+ */
+void
+vtoc_volume_label_set_volser (volume_label_t *vlabel, char *volser)
+{
+	PDEBUG
+	int j, i = strlen(volser);
+	char s[VOLSER_LENGTH + 1];
+
+	strcpy(s, "      ");
+	vtoc_ebcdic_enc(s, s, VOLSER_LENGTH);
+	strncpy(vlabel->volid, s, VOLSER_LENGTH);
+
+	if (i > VOLSER_LENGTH)
+		i = VOLSER_LENGTH;
+
+	strncpy(s, volser, i);
+	for (j=0; j<i; j++)
+		s[j] = toupper(s[j]);
+
+	s[VOLSER_LENGTH] = 0x00;
+	vtoc_ebcdic_enc(s, s, i);
+	strncpy(vlabel->volid, s, i);
+
+	return;
+}
+
+/*
+ * returns the volume serial number right after it is translated 
+ * to ASCII
+ */
+char *
+vtoc_volume_label_get_volser (volume_label_t *vlabel, char *volser)
+{
+	PDEBUG
+	vtoc_ebcdic_dec(vlabel->volid, volser, VOLSER_LENGTH);
+
+	return volser;
+}
+
+/*
+ * sets the volume label key right after
+ * it has been translated to EBCDIC
+ */
+void
+vtoc_volume_label_set_key (volume_label_t *vlabel, char *key)
+{
+	PDEBUG
+	char s[4];
+ 
+	vtoc_ebcdic_enc(key, s, 4);
+	strncpy(vlabel->volkey, s, 4);
+ 
+	return;
+}                
+
+/*
+ * sets the volume label identifier right
+ * after it has been translated to EBCDIC
+ */
+void
+vtoc_volume_label_set_label (volume_label_t *vlabel, char *lbl)
+{
+	PDEBUG
+	char s[4];
+
+	vtoc_ebcdic_enc(lbl, s, 4);
+	strncpy(vlabel->vollbl, s, 4);
+
+	return;
+}
+
+/*
+ * returns the volume label key = the label identifier
+ * right after it has been translated to ASCII
+ */
+char *
+vtoc_volume_label_get_label (volume_label_t *vlabel, char *lbl)
+{
+	PDEBUG
+	vtoc_ebcdic_dec(vlabel->vollbl, lbl, 4);
+
+	return lbl;
+}
+
+/*
+ * reads either a format4 label or a format1 label
+ * from the specified position
+ */
+void 
+vtoc_read_label (int f, unsigned long position, format1_label_t *f1,
+                 format4_label_t *f4, format5_label_t *f5, format7_label_t *f7) 
+{        
+	PDEBUG
+	int t;
+
+	if (lseek(f, position, SEEK_SET) == -1) 
+		vtoc_error(unable_to_seek, "vtoc_read_label",
+				   _("Could not read VTOC labels."));
+
+	if (f1 != NULL) {
+		t = sizeof(format1_label_t);
+		if (read(f, f1, t) != t) 
+			vtoc_error(unable_to_read, "vtoc_read_label",
+					   _("Could not read VTOC FMT1 DSCB."));
+	}
+
+	if (f4 != NULL) {
+		t = sizeof(format4_label_t);
+		if (read(f, f4, t) != t) 
+			vtoc_error(unable_to_read, "vtoc_read_label",
+					   _("Could not read VTOC FMT4 DSCB."));
+	}
+
+	if (f5 != NULL) {
+		t = sizeof(format5_label_t);
+		if (read(f, f5, t) != t)
+			vtoc_error(unable_to_read, "vtoc_read_label",
+					   _("Could not read VTOC FMT5 DSCB."));
+	}
+
+	if (f7 != NULL) {
+		t = sizeof(format7_label_t);
+		if (read(f, f7, t) != t) 
+			vtoc_error(unable_to_read, "vtoc_read_label",
+					   _("Could not read VTOC FMT7 DSCB."));
+	}
+}
+
+/*
+ * writes either a FMT1, FMT4 or FMT5 label
+ * to the specified position
+ */
+void
+vtoc_write_label (int f, unsigned long position, format1_label_t *f1, 
+                  format4_label_t *f4, format5_label_t *f5, format7_label_t *f7)
+{
+	PDEBUG
+	int t;
+
+	if (lseek(f, position, SEEK_SET) == -1) 
+		vtoc_error(unable_to_seek, "vtoc_write_label",
+				   _("Could not write VTOC labels."));
+
+	if (f1 != NULL) {
+		t = sizeof(format1_label_t);
+		if (write(f, f1, t) != t) 
+			vtoc_error(unable_to_write, "vtoc_write_label",
+					   _("Could not write VTOC FMT1 DSCB."));
+	}
+
+	if (f4 != NULL) {
+		t = sizeof(format4_label_t);
+		if (write(f, f4, t) != t) 
+			vtoc_error(unable_to_write, "vtoc_write_label",
+					   _("Could not write VTOC FMT4 DSCB."));
+	}
+
+	if (f5 != NULL) {
+		t = sizeof(format5_label_t);
+		if (write(f, f5, t) != t) 
+			vtoc_error(unable_to_write, "vtoc_write_label",
+					   _("Could not write VTOC FMT5 DSCB."));
+	}
+
+	if (f7 != NULL) {
+		t = sizeof(format7_label_t);
+		if (write(f, f7, t) != t) 
+			vtoc_error(unable_to_write, "vtoc_write_label",
+					   _("Could not write VTOC FMT7 DSCB."));
+	}
+}
+
+/*
+ * initializes a format4 label
+ */
+void 
+vtoc_init_format4_label (format4_label_t *f4, unsigned int usable_partitions,
+                         unsigned int cylinders, unsigned int tracks,
+                         unsigned int blocks, unsigned int blksize,
+                         u_int16_t dev_type) 
+{
+	PDEBUG
+	int i;
+
+	cchh_t lower = {VTOC_START_CC, VTOC_START_HH};
+	cchh_t upper = {VTOC_START_CC, VTOC_START_HH};
+
+	for (i=0; i<44; i++) f4->DS4KEYCD[i] = 0x04;
+        f4->DS4IDFMT = 0xf4;
+
+	vtoc_set_cchhb(&f4->DS4HPCHR, 0x0000, 0x0000, 0x00);
+	f4->DS4DSREC = blocks - 2;
+	/* free space starts right behind VTOC
+	   vtoc_set_cchh(&f4->DS4HCCHH, VTOC_START_CC, VTOC_START_HH + 1);*/
+	vtoc_set_cchh(&f4->DS4HCCHH, 0x0000, 0x0000);
+	f4->DS4NOATK = 0x0000;
+	f4->DS4VTOCI = 0x00;
+	f4->DS4NOEXT = 0x01;
+	f4->DS4SMSFG = 0x00;
+	f4->DS4DEVAC = 0x00;
+
+	/* -- begin f4->DS4DEVCT -- */
+	f4->DS4DEVCT.DS4DSCYL = cylinders;
+	f4->DS4DEVCT.DS4DSTRK = tracks;
+
+	switch (dev_type) {
+		case DASD_3380_TYPE:
+			f4->DS4DEVCT.DS4DEVTK = DASD_3380_VALUE;
+			break;
+		case DASD_3390_TYPE:
+			f4->DS4DEVCT.DS4DEVTK = DASD_3390_VALUE;
+			break;
+		case DASD_9345_TYPE:
+			f4->DS4DEVCT.DS4DEVTK = DASD_9345_VALUE;
+			break;
+		default:
+			f4->DS4DEVCT.DS4DEVTK = blocks * blksize;;
+	}
+
+	f4->DS4DEVCT.DS4DEVI  = 0x00;
+	f4->DS4DEVCT.DS4DEVL  = 0x00;
+	f4->DS4DEVCT.DS4DEVK  = 0x00;
+	f4->DS4DEVCT.DS4DEVFG = 0x30;
+	f4->DS4DEVCT.DS4DEVTL = 0x0000;
+	f4->DS4DEVCT.DS4DEVDT = blocks;
+	f4->DS4DEVCT.DS4DEVDB = 0x00;
+	/* -- end f4->DS4DEVCT -- */
+
+	bzero(f4->DS4AMTIM, sizeof(f4->DS4AMTIM));
+	bzero(f4->DS4AMCAT, sizeof(f4->DS4AMCAT));
+	bzero(f4->DS4R2TIM, sizeof(f4->DS4R2TIM));
+	bzero(f4->res1, sizeof(f4->res1));
+	bzero(f4->DS4F6PTR, sizeof(f4->DS4F6PTR));
+
+	/* -- begin f4lbl->DS4VTOCE -- */
+	vtoc_set_extent(&f4->DS4VTOCE, 0x01, 0x00, &lower, &upper);
+	/* -- end f4lbl->DS4VTOCE -- */
+
+	bzero(f4->res2, sizeof(f4->res2));
+	f4->DS4EFLVL = 0x00;
+	bzero(&f4->DS4EFPTR, sizeof(f4->DS4EFPTR));
+	bzero(f4->res3, sizeof(f4->res3));
+}
+
+/*
+ * initializes a format5 label
+ */
+void
+vtoc_init_format5_label (format5_label_t *f5) 
+{
+	PDEBUG
+	int i;
+
+	bzero(f5, sizeof(format5_label_t));
+	for (i=0; i<4; i++)
+		f5->DS5KEYID[i] = 0x05;
+	f5->DS5FMTID = 0xf5;
+}
+
+/*
+ * initializes a format7 label
+ */
+void
+vtoc_init_format7_label (format7_label_t *f7) 
+{
+	PDEBUG
+	int i;
+
+	bzero(f7, sizeof(format7_label_t));
+	for (i=0; i<4; i++)
+		f7->DS7KEYID[i] = 0x07;
+	f7->DS7FMTID = 0xf7;
+}
+
+/*
+ * initializes a format1 label
+ */
+void 
+vtoc_init_format1_label (char *volid, unsigned int blksize,
+                         extent_t *part_extent, format1_label_t *f1) 
+{
+	PDEBUG
+	struct tm * creatime;
+	time_t t;
+	char str[80];
+
+	/* get actual date */
+	t = time(NULL);
+	creatime = gmtime(&t);
+
+	bzero(f1->DS1DSNAM, sizeof(f1->DS1DSNAM));
+	sprintf(str, "PART    .NEW                                ");
+	vtoc_ebcdic_enc(str, str, 44);
+	strncpy(f1->DS1DSNAM, str, 44);
+	f1->DS1FMTID = 0xf1;
+	strncpy(f1->DS1DSSN, "      ", 6);
+	f1->DS1VOLSQ = 0x0001;
+
+	vtoc_set_date(&f1->DS1CREDT, (u_int8_t) creatime->tm_year,
+				  (u_int16_t) creatime->tm_yday);
+	/* expires never - 99 365 */
+	vtoc_set_date(&f1->DS1EXPDT, 0x63, 0x016D);
+	f1->DS1NOEPV = 0x01;
+	f1->DS1NOBDB = 0x00;
+	f1->DS1FLAG1 = 0x00;
+	vtoc_ebcdic_enc("IBM LINUX    ", str, 13);
+	strncpy(f1->DS1SYSCD, str, 13);
+	vtoc_set_date(&f1->DS1REFD, (u_int8_t) creatime->tm_year,
+				  (u_int16_t) creatime->tm_yday);
+	f1->DS1SMSFG = 0x00;
+	f1->DS1SCXTF = 0x00;
+	f1->DS1SCXTV = 0x0000;
+	f1->DS1DSRG1 = 0x00;
+	f1->DS1DSRG2 = 0x00;
+	f1->DS1RECFM = 0x88;
+	f1->DS1OPTCD = 0x00;
+	f1->DS1BLKL  = blksize;
+	f1->DS1LRECL = blksize;
+	f1->DS1KEYL  = 0x00;
+	f1->DS1RKP   = 0x0000;
+	f1->DS1DSIND = 0x80; /* last volume for this dataset */
+	f1->DS1SCAL1 = 0x80;
+	bzero(&f1->DS1SCAL3, sizeof(f1->DS1SCAL3));
+	vtoc_set_ttr(&f1->DS1LSTAR, 0x0000, 0x00);
+	f1->DS1TRBAL = 0x00;
+	bzero(&f1->res1, sizeof(f1->res1));
+	memcpy(&f1->DS1EXT1, part_extent, sizeof(extent_t));
+	bzero(&f1->DS1EXT2, sizeof(extent_t));
+	bzero(&f1->DS1EXT3, sizeof(extent_t));
+	vtoc_set_cchhb(&f1->DS1PTRDS, 0x0000, 0x0000, 0x00);
+}
+
+/*
+ * do some updates to the VTOC format4 label
+ */
+void 
+vtoc_update_format4_label (format4_label_t *f4, cchhb_t *highest_f1,
+                           u_int16_t unused_update)
+{
+	PDEBUG
+	/* update highest address of a format 1 label */
+	memcpy(&f4->DS4HPCHR, highest_f1, sizeof(cchhb_t));
+
+	/* update unused DSCB count */
+	f4->DS4DSREC = unused_update;
+}
+
+/*
+ * reorganizes all extents within a FMT5 label
+ */
+static void
+vtoc_reorganize_FMT5_extents (format5_label_t *f5) 
+{
+	PDEBUG
+	ds5ext_t *ext, *last, tmp;
+	int i, j;
+
+	for (i=0; i<26; i++) {
+		if (i==0) 
+			last = &f5->DS5AVEXT; 
+		else if ((i > 0) && (i < 8))
+			last = &f5->DS5EXTAV[i-1];
+		else
+			last = &f5->DS5MAVET[i-8];
+
+		for (j=i; j<26; j++) {
+			if (j==0) 
+				ext = &f5->DS5AVEXT; 
+			else if ((j > 0) && (j < 8))
+				ext = &f5->DS5EXTAV[j-1];
+			else
+				ext = &f5->DS5MAVET[j-8];
+
+			if (((ext->t > 0) && (last->t == 0)) || 
+			    ((ext->t > 0) && (ext->t < last->t)))
+			{
+				tmp.t  = last->t;
+				tmp.fc = last->fc;
+				tmp.ft = last->ft;
+				last->t  = ext->t;
+				last->fc = ext->fc;
+				last->ft = ext->ft;
+				ext->t  = tmp.t;
+				ext->fc = tmp.fc;
+				ext->ft = tmp.ft;
+			}
+		}
+	}
+}
+
+/*
+ * add a free space extent description to the VTOC FMT5 DSCB
+ */
+void 
+vtoc_update_format5_label_add (format5_label_t *f5, int verbose, int cyl,
+                               int trk, u_int16_t a, u_int16_t b, u_int8_t c) 
+{
+	PDEBUG
+	ds5ext_t *ext = NULL, *tmp = NULL;
+	int i;	
+
+	for (i=0; i<26; i++) {
+		if (i==0) 
+			ext = &f5->DS5AVEXT; 
+		else if ((i > 0) && (i < 8))
+			ext = &f5->DS5EXTAV[i-1];
+		else
+			ext = &f5->DS5MAVET[i-8];
+
+		if (((a < ext->t) && (a + b*trk + c > ext->t)) || 
+		    ((a > ext->t) && (ext->t + ext->fc*trk + ext->ft > a)))
+		{
+			puts ("BUG: overlapping free space extents "
+			      "in FMT5 DSCB!\nexiting...");
+			exit(1);
+		}
+
+		if ((ext->t + ext->fc + ext->ft) == 0x0000) {
+			ext->t  = a;
+			ext->fc = b;
+			ext->ft = c;
+			tmp = ext;
+			if (verbose) 
+                                puts ("FMT5 add extent: add new extent");
+			break;
+		}
+	}
+
+	if (tmp == NULL) {
+		/* BUG: no free extent found */
+		puts ("BUG: no free FMT5 DSCB extent found!\nexiting...");
+		exit(1);
+	}
+
+	for (i=0; i<26; i++) {
+		if (i==0)
+			ext = &f5->DS5AVEXT;
+		else if ((i > 0) && (i < 8))
+			ext = &f5->DS5EXTAV[i-1];
+		else
+			ext = &f5->DS5MAVET[i-8];
+
+		if ((ext->t + ext->fc + ext->ft) == 0x0000)
+			continue;
+
+		if ((ext->t + ext->fc*trk + ext->ft) == tmp->t) {
+			/* this extent precedes the new one */
+			ext->fc += (tmp->fc + (tmp->ft + ext->ft)/trk);
+			ext->ft = (tmp->ft + ext->ft) % trk;
+			bzero(tmp, sizeof(ds5ext_t));
+			tmp = ext;
+
+			if (verbose) 
+				puts ("FMT5 add extent: "
+                                      "merge with predecessor");
+
+			i = -1;
+			continue;
+		} 
+
+		if ((tmp->t + tmp->fc*trk + tmp->ft) == ext->t) {
+			/* this extent succeeds the new one */
+			ext->t = tmp->t;
+			ext->fc += (tmp->fc + (tmp->ft + ext->ft)/trk);
+			ext->ft = (tmp->ft + ext->ft) % trk;
+			bzero(tmp, sizeof(ds5ext_t));
+			tmp = ext;
+
+			if (verbose) 
+				puts ("FMT5 add extent: "
+				      "merge with successor");
+
+			i = -1;
+			continue;
+		} 
+	}
+}
+
+/*
+ * remove a free space extent description from the VTOC FMT5 DSCB
+ */
+void 
+vtoc_update_format5_label_del (format5_label_t *f5, int verbose, int cyl,
+                               int trk, u_int16_t a, u_int16_t b, u_int8_t c) 
+{
+	PDEBUG
+	ds5ext_t *ext;
+	int i, counter=0;
+	
+	for (i=0; i<26; i++) {
+		if (i==0) 
+			ext = &f5->DS5AVEXT; 
+		else if ((i > 0) && (i < 8))
+			ext = &f5->DS5EXTAV[i-1];
+		else
+			ext = &f5->DS5MAVET[i-8];
+
+		if ((a == ext->t) && (b == ext->fc) && (c == ext->ft)) {
+			/* fills up whole free space gap */
+			bzero(ext, sizeof(ds5ext_t));
+
+			if (verbose) 
+				puts ("FMT5 del extent: fills whole gap");
+
+			counter++;
+			break;
+		}
+
+		if ((a == ext->t) && ((b < ext->fc) || (c < ext->ft))) {
+			/* left-bounded in free space gap */
+			ext->t = ext->t + b*trk + c;
+
+			if (c > ext->ft) {
+				ext->fc -= (b + 1);
+				ext->ft -= (c - trk);
+			} else {
+				ext->fc -= b;
+				ext->ft -= c;
+			}
+
+			if (verbose) 
+				puts ("FMT5 del extent: left bounded");
+
+			counter++;
+			break;
+		}
+
+		if ((ext->t < a)
+		    && ((ext->t + ext->fc*trk + ext->ft) == (a + b*trk + c)))
+		{
+			/* right-bounded in free space gap */
+			if (c > ext->ft) {
+				ext->fc -= (b + 1);
+				ext->ft -= (c - trk);
+			} else {
+				ext->fc -= b;
+				ext->ft -= c;
+			}
+
+			if (verbose) 
+				puts ("FMT5 del extent: right bounded");
+
+			counter++;
+			break;
+		}
+
+		if ((a > ext->t)
+			&& ((ext->t + ext->fc*trk + ext->ft) > (a + b*trk + c)))
+		{
+			/* partition devides free space into 2 pieces */
+			u_int16_t x = a + b*trk + c;
+			u_int16_t w,y;
+			u_int8_t z;
+
+			w = (ext->t + ext->fc*trk + ext->ft) - (a + b*trk + c);
+			y = w / trk;
+			z = w % trk;
+
+			ext->fc = (a - ext->t) / trk;
+			ext->ft = (a - ext->t) % trk;
+
+			vtoc_update_format5_label_add(f5, verbose, 
+						      cyl, trk, x, y, z);
+
+			if (verbose) 
+				puts ("FMT5 del extent: 2 pieces");
+
+			counter++;
+			break;
+		}
+
+		if ((a < ext->t) && (a + b*trk + c > ext->t)
+		    && (a + b*trk + c < ext->t + ext->fc*trk + ext->ft))
+		{
+			puts ("BUG: corresponding free space extent "
+			      "doesn't match free space currently shown "
+			      "in FMT5 DSCB!\nexiting...");
+			exit(1);
+		}
+		
+		if ((a > ext->t) && (a < ext->t + ext->fc*trk + ext->ft)
+		    && (a + b*trk + c > ext->t + ext->fc*trk + ext->ft))
+		{
+			puts ("BUG: specified free space extent for "
+			      "deleting doesn't match free space "
+			      "currently shown in FMT5 DSCB!\n"
+			      "exiting...");
+			exit(1);
+		}
+	}
+
+	if (counter > 0)
+		return;
+
+	puts ("BUG: specified free space extent for "
+	      "deleting not found in FMT5 DSCB!\n"
+	      "exiting...");
+	exit(1);
+}
+
+/*
+ * reorganizes all extents within a FMT7 label
+ */
+static void
+vtoc_reorganize_FMT7_extents (format7_label_t *f7) 
+{
+	PDEBUG
+	ds7ext_t *ext, *last, tmp;
+	int i, j;
+
+	for (i=0; i<16; i++) {
+		if (i<5) 
+			last = &f7->DS7EXTNT[i]; 
+		else 
+			last = &f7->DS7ADEXT[i-5];
+
+		for (j=i; j<16; j++) {
+			if (j<5) 
+				ext = &f7->DS7EXTNT[j]; 
+			else 
+				ext = &f7->DS7ADEXT[j-5];
+
+			if (((ext->a > 0) && (last->a == 0))
+			    || ((ext->a > 0) && (ext->a < last->a)))
+			{
+				tmp.a = last->a;
+				tmp.b = last->b;
+				last->a = ext->a;
+				last->b = ext->b;
+				ext->a = tmp.a;
+				ext->b = tmp.b;
+			}
+		}
+	}
+}
+
+/*
+ * add a free space extent description to the VTOC FMT7 DSCB
+ */
+void 
+vtoc_update_format7_label_add (format7_label_t *f7, int verbose,
+                               u_int32_t a, u_int32_t b) 
+{
+	PDEBUG
+	ds7ext_t *ext = NULL, *tmp = NULL;
+	int i;	
+
+	for (i=0; i<16; i++) {
+		if (i<5) 
+			ext = &f7->DS7EXTNT[i]; 
+		else 
+			ext = &f7->DS7ADEXT[i-5];
+
+		if (((a < ext->a) && (b > ext->a) && (b < ext->b))
+		    || ((a > ext->a) && (a < ext->b) && (b > ext->b)))
+		{
+			puts ("BUG: overlapping free space extents "
+			      "in FMT7 DSCB!\nexiting...");
+			exit(1);
+		}
+
+		if ((ext->a + ext->b) == 0x00000000) {
+			ext->a = a;
+			ext->b = b;
+			tmp = ext;
+
+			if (verbose) 
+				puts ("FMT7 add extent: add new extent");
+
+			break;
+		}
+	}
+
+	if (tmp == NULL) {
+		/* BUG: no free extent found */
+		puts ("BUG: no free FMT7 DSCB extent found!\nexiting...");
+		exit(1);
+	}
+
+	for (i=0; i<16; i++) {
+		if (i<5) 
+			ext = &f7->DS7EXTNT[i]; 
+		else 
+			ext = &f7->DS7ADEXT[i-5];
+
+		if ((ext->a + ext->b) == 0x00000000)
+			continue;
+
+		if ((ext->b + 1) == tmp->a) {
+			/* this extent precedes the new one */
+			ext->b = tmp->b;
+			bzero(tmp, sizeof(ds7ext_t));
+			tmp = ext;
+
+			if (verbose) 
+                                puts ("FMT7 add extent: "
+                                      "merge with predecessor");
+
+			i = -1;
+			continue;
+		} 
+
+		if (ext->a == (tmp->b + 1)) {
+			/* this extent succeeds the new one */
+			ext->a = tmp->a;
+			bzero(tmp, sizeof(ds7ext_t));
+			tmp = ext;
+
+			if (verbose) 
+				puts ("FMT7 add extent: merge with successor");
+
+			i = -1;
+			continue;
+		} 
+	}
+}
+
+/*
+ * remove a free space extent description from the VTOC FMT7 DSCB
+ */
+void 
+vtoc_update_format7_label_del (format7_label_t *f7, int verbose,
+                               u_int32_t a, u_int32_t b) 
+{
+	PDEBUG
+	ds7ext_t *ext;
+	int i, counter=0;
+	
+	for (i=0; i<16; i++) {
+		if (i<5) 
+			ext = &f7->DS7EXTNT[i]; 
+		else 
+			ext = &f7->DS7ADEXT[i-5];
+
+		if ((a == ext->a) && (b == ext->b)) {
+			/* fills up whole free space gap */
+			bzero(ext, sizeof(ds7ext_t));
+
+			if (verbose) 
+				puts ("FMT7 del extent: fills whole gap");
+
+			counter++;
+			break;
+		}
+
+		if ((a == ext->a) && (b < ext->b)) {
+			/* left-bounded in free space gap */
+			ext->a = b + 1;
+
+			if (verbose) 
+				puts ("FMT7 add extent: left-bounded");
+
+			counter++;
+			break;
+		}
+
+		if ((a > ext->a) && (b == ext->b)) {
+			/* right-bounded in free space gap */
+			ext->b = a - 1;
+
+			if (verbose) 
+				puts ("FMT7 add extent: right-bounded");
+
+			counter++;
+			break;
+		}
+
+		if ((a > ext->a) && (b < ext->b)) {
+			/* partition devides free space into 2 pieces */
+			vtoc_update_format7_label_add(f7, verbose, b+1, ext->b);
+			ext->b = a - 1;
+
+			if (verbose) 
+				puts ("FMT7 add extent: 2 pieces");
+
+			counter++;
+			break;
+		}
+
+		if (((a < ext->a) && (b > ext->a)) || ((a < ext->b) && (b > ext->b))) {
+                        puts ("BUG: specified free space extent for deleting "
+                              "doesn't match free space currently shown in "
+                              "FMT7 DSCB!\nexiting...");
+			printf ("%d %d %d %d\n", a, b, ext->a, ext->b);
+			exit(1);
+		}
+	}
+
+	if (counter > 0)
+		return;
+
+	puts ("BUG: specified free space extent for "
+	      "deleting not found in FMT7 DSCB!\n"
+	      "exiting...");
+	exit(1);
+}
+
+void
+vtoc_set_freespace(format4_label_t *f4, format5_label_t *f5,
+                   format7_label_t *f7, char ch, int verbose,
+                   u_int32_t start, u_int32_t stop, int cyl, int trk)
+{
+	PDEBUG
+	if ((cyl * trk) > BIG_DISK_SIZE) {
+		if (ch == '+')
+			vtoc_update_format7_label_add(f7, verbose, start, stop);
+		else if (ch == '-')
+			vtoc_update_format7_label_del(f7, verbose, start, stop);
+		else
+			puts ("BUG: syntax error in vtoc_set_freespace call");
+
+		vtoc_reorganize_FMT7_extents (f7);
+
+		f4->DS4VTOCI = 0xa0;
+		f4->DS4EFLVL = 0x07;
+		vtoc_set_cchhb(&f4->DS4EFPTR, 0x0000, 0x0001, 0x03);
+	} else {
+		u_int16_t x,y;
+		u_int8_t z;
+
+		x = (u_int16_t) start;
+		y = (u_int16_t) ((stop - start + 1) / trk);
+		z =  (u_int8_t) ((stop - start + 1) % trk);
+
+		if (ch == '+')
+			vtoc_update_format5_label_add(f5, verbose, cyl, trk, x, y, z);
+		else if (ch == '-')
+			vtoc_update_format5_label_del(f5, verbose, cyl, trk, x, y, z);
+		else
+			puts ("BUG: syntax error in vtoc_set_freespace call");
+
+		vtoc_reorganize_FMT5_extents (f5);
+	}
+}
diff --git a/parted-1.8.7/libparted/libparted.c b/parted-1.8.7/libparted/libparted.c
new file mode 100644
index 0000000..b1a6201
--- /dev/null
+++ b/parted-1.8.7/libparted/libparted.c
@@ -0,0 +1,343 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 1999, 2000, 2001, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+#include "configmake.h"
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+
+#ifdef linux
+#  include <parted/linux.h>
+#elif defined(__BEOS__)
+#  include <parted/beos.h>
+#else
+#  include <parted/gnu.h>
+#endif
+
+#if ENABLE_NLS
+#  include <locale.h>
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+const PedArchitecture* ped_architecture;
+
+/* ped_malloc() debugging.  Stick the address and size of memory blocks that
+ * weren't ped_free()d in here, and an exception will be thrown when it is
+ * allocated.  That way, you can find out what, exactly, the allocated thing
+ * is, and where it is created.
+ */
+typedef struct
+{
+    void*	pointer;
+    size_t	size;
+} pointer_size_type;
+
+#ifdef DEBUG
+static pointer_size_type dodgy_malloc_list[] = {
+ {0,		0},
+ {0,		0},
+ {0,		0},
+ {0,		0},
+ {0,		0},
+ {0,		0},
+ {0,		0},
+ {0,		0},
+ {0,		0},
+ {0,		0}
+};
+
+static int	dodgy_memory_active[100];
+#endif /* DEBUG */
+
+int
+ped_set_architecture (const PedArchitecture* arch)
+{
+	PED_ASSERT (ped_device_get_next (NULL) == NULL, return 0);
+
+	ped_architecture = arch;
+	return 1;
+}
+
+extern void ped_disk_aix_init ();
+extern void ped_disk_bsd_init ();
+extern void ped_disk_dvh_init ();
+extern void ped_disk_gpt_init ();
+extern void ped_disk_loop_init ();
+extern void ped_disk_mac_init ();
+extern void ped_disk_msdos_init ();
+extern void ped_disk_pc98_init ();
+extern void ped_disk_sun_init ();
+extern void ped_disk_amiga_init ();
+extern void ped_disk_dasd_init ();
+
+static void
+init_disk_types ()
+{
+	ped_disk_loop_init ();	/* must be last in the probe list */
+
+#if defined(__s390__) || defined(__s390x__)
+	ped_disk_dasd_init();
+#endif
+
+	ped_disk_sun_init ();
+#ifdef ENABLE_PC98
+	ped_disk_pc98_init ();
+#endif
+	ped_disk_msdos_init ();
+	ped_disk_mac_init ();
+	ped_disk_gpt_init ();
+	ped_disk_dvh_init ();
+	ped_disk_bsd_init ();
+	ped_disk_amiga_init ();
+	ped_disk_aix_init ();
+}
+
+#ifdef ENABLE_FS
+extern void ped_file_system_amiga_init (void);
+extern void ped_file_system_xfs_init (void);
+extern void ped_file_system_ufs_init (void);
+extern void ped_file_system_reiserfs_init (void);
+extern void ped_file_system_ntfs_init (void);
+extern void ped_file_system_linux_swap_init (void);
+extern void ped_file_system_jfs_init (void);
+extern void ped_file_system_hfs_init (void);
+extern void ped_file_system_fat_init (void);
+extern void ped_file_system_ext2_init (void);
+
+static void
+init_file_system_types ()
+{
+	ped_file_system_amiga_init ();
+	ped_file_system_xfs_init ();
+	ped_file_system_ufs_init ();
+	ped_file_system_reiserfs_init ();
+	ped_file_system_ntfs_init ();
+	ped_file_system_linux_swap_init ();
+	ped_file_system_jfs_init ();
+	ped_file_system_hfs_init ();
+	ped_file_system_fat_init ();
+	ped_file_system_ext2_init ();
+}
+#endif /* ENABLE_FS */
+
+extern void ped_disk_aix_done ();
+extern void ped_disk_bsd_done ();
+extern void ped_disk_dvh_done ();
+extern void ped_disk_gpt_done ();
+extern void ped_disk_loop_done ();
+extern void ped_disk_mac_done ();
+extern void ped_disk_msdos_done ();
+extern void ped_disk_pc98_done ();
+extern void ped_disk_sun_done ();
+extern void ped_disk_amiga_done ();
+extern void ped_disk_dasd_done ();
+
+static void
+done_disk_types ()
+{
+#if defined(__s390__) || (__s390x__)
+	ped_disk_dasd_done ();
+#endif
+	ped_disk_sun_done ();
+#ifdef ENABLE_PC98
+	ped_disk_pc98_done ();
+#endif
+	ped_disk_msdos_done ();
+	ped_disk_mac_done ();
+	ped_disk_loop_done ();
+	ped_disk_gpt_done ();
+	ped_disk_dvh_done ();
+	ped_disk_bsd_done ();
+	ped_disk_amiga_done ();
+	ped_disk_aix_done ();
+}
+
+static void _init() __attribute__ ((constructor));
+
+static void
+_init()
+{
+#ifdef ENABLE_NLS
+	bindtextdomain (PACKAGE, LOCALEDIR);
+#endif
+
+	init_disk_types ();
+
+#ifdef ENABLE_FS
+	init_file_system_types ();
+#endif
+
+	/* FIXME: a better way of doing this? */
+#ifdef linux
+	ped_set_architecture (&ped_linux_arch);
+#elif defined(__BEOS__)
+	ped_set_architecture (&ped_beos_arch);
+#else
+	ped_set_architecture (&ped_gnu_arch);
+#endif
+
+#ifdef DEBUG
+	memset (dodgy_memory_active, 0, sizeof (dodgy_memory_active));
+#endif
+}
+
+#ifdef ENABLE_FS
+extern void ped_file_system_ext2_done (void);
+extern void ped_file_system_fat_done (void);
+extern void ped_file_system_hfs_done (void);
+extern void ped_file_system_jfs_done (void);
+extern void ped_file_system_linux_swap_done (void);
+extern void ped_file_system_ntfs_done (void);
+extern void ped_file_system_reiserfs_done (void);
+extern void ped_file_system_ufs_done (void);
+extern void ped_file_system_xfs_done (void);
+extern void ped_file_system_amiga_done (void);
+
+static void
+done_file_system_types ()
+{
+	ped_file_system_ext2_done ();
+	ped_file_system_fat_done ();
+	ped_file_system_hfs_done ();
+	ped_file_system_jfs_done ();
+	ped_file_system_linux_swap_done ();
+	ped_file_system_ntfs_done ();
+	ped_file_system_reiserfs_done ();
+	ped_file_system_ufs_done ();
+	ped_file_system_xfs_done ();
+	ped_file_system_amiga_done ();
+}
+#endif /* ENABLE_FS */
+
+static void _done() __attribute__ ((destructor));
+
+static void
+_done()
+{
+	ped_device_free_all ();
+
+	done_disk_types ();
+
+#ifdef ENABLE_FS
+	done_file_system_types ();
+#endif
+}
+
+const char*
+ped_get_version ()
+{
+	return VERSION;
+}
+
+#ifdef DEBUG
+static void
+_check_dodgy_pointer (const void* ptr, size_t size, int is_malloc)
+{
+	int		i;
+
+	for (i=0; dodgy_malloc_list[i].pointer; i++) {
+		if (dodgy_malloc_list[i].pointer != ptr)
+ 			continue;
+		if (is_malloc && dodgy_malloc_list[i].size != size)
+			continue;
+		if (!is_malloc && !dodgy_memory_active[i])
+			continue;
+
+
+		if (is_malloc) {
+			ped_exception_throw (
+				PED_EXCEPTION_INFORMATION,
+				PED_EXCEPTION_OK,
+				"Dodgy malloc(%x) == %p occurred (active==%d)",
+				size, ptr, dodgy_memory_active[i]);
+			dodgy_memory_active[i]++;
+		} else {
+			ped_exception_throw (
+				PED_EXCEPTION_INFORMATION,
+				PED_EXCEPTION_OK,
+				"Dodgy free(%p) occurred (active==%d)",
+				ptr, dodgy_memory_active[i]);
+			dodgy_memory_active[i]--;
+		}
+
+		return;
+	}
+}
+#endif /* DEBUG */
+
+void*
+ped_malloc (size_t size)
+{
+	void*		mem;
+
+	mem = (void*) malloc (size);
+	if (!mem) {
+		ped_exception_throw (PED_EXCEPTION_FATAL, PED_EXCEPTION_CANCEL,
+				     _("Out of memory."));
+		return NULL;
+	}
+
+#ifdef DEBUG
+	memset (mem, 0xff, size);
+	_check_dodgy_pointer (mem, size, 1);
+#endif
+
+	return mem;
+}
+
+int
+ped_realloc (void** old, size_t size)
+{
+	void*		mem;
+
+	mem = (void*) realloc (*old, size);
+	if (!mem) {
+		ped_exception_throw (PED_EXCEPTION_FATAL, PED_EXCEPTION_CANCEL,
+				     _("Out of memory."));
+		return 0;
+	}
+	*old = mem;
+	return 1;
+}
+
+
+void* ped_calloc (size_t size)
+{
+        void* buf = ped_malloc (size);
+
+        memset (buf, 0, size);
+
+        return buf;
+}
+
+
+void
+ped_free (void* ptr)
+{
+#ifdef DEBUG
+	_check_dodgy_pointer (ptr, 0, 0);
+#endif
+
+	free (ptr);
+}
+
diff --git a/parted-1.8.7/libparted/mbr.s b/parted-1.8.7/libparted/mbr.s
new file mode 100644
index 0000000..0d35aa9
--- /dev/null
+++ b/parted-1.8.7/libparted/mbr.s
@@ -0,0 +1,86 @@
+;   libparted - a library for manipulating disk partitions
+;   Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+;
+;   This program is free software; you can redistribute it and/or modify
+;   it under the terms of the GNU General Public License as published by
+;   the Free Software Foundation; either version 2 of the License, or
+;   (at your option) any later version.
+;
+;   This program is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;   GNU General Public License for more details.
+;
+;   You should have received a copy of the GNU General Public License
+;   along with this program; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+
+; NOTE: I build this with:
+;	$ as86 -b /dev/stdout mbr.s | hexdump -e '8/1 "0x%02x, " "\n"'
+;
+; The build isn't done automagically by make, because as86 may not be on many
+; machines (particularly non-x86).  Also, it seems rather difficult to get
+; as86 to build object files that can be linked, especially as it's 16 bit
+; code...
+
+USE16
+
+; This code, plus the partition table is loaded into 0000:7C00 by the BIOS
+
+.text
+
+; set top of stack to 1000:B000
+
+	cli
+
+	mov	ax, #0x1000
+	mov	ss, ax
+	mov	sp, #0xB000
+
+	mov	ax, #0x0000
+	mov	ds, ax
+	mov	es, ax
+
+	sti
+
+; Copy what the BIOS loaded (i.e. the MBR + head of partition table) from
+; 0000:7c00 to 0000:0600
+
+	mov	si, #0x7c00
+	mov	di, #0x0600
+	mov	cx, #0x200
+	rep
+	movsb
+
+; Jump to the copy of the MBR
+
+	jmp	0x0000:find_boot_partition + 0x0600
+
+find_boot_partition:
+	mov	si, #0x07BE
+
+check_next_bootable:
+	cmp	[si], al
+	jnz	found_bootable
+	add	si, #0x0010
+	cmp	si, #0x07FE
+	jnz	check_next_bootable
+	jmp	error
+
+found_bootable:
+
+; Load in the boot sector at 0000:7c00
+
+	mov	ah, #2			; BIOS command (read)
+	mov	al, #1			; count
+	mov	bx, #0x7c00		; destination pointer
+	mov	dl, #0x80		; drive
+	mov	dh, byte ptr [si + 1]	; head
+	mov	cx, word ptr [si + 2]	; sector / cylinder
+	int	#0x13			; BIOS read interrupt
+
+	jmp	0x0000:0x7c00		; hand control to boot sector
+
+error:
+	jmp	error
+
diff --git a/parted-1.8.7/libparted/tests/Makefile.am b/parted-1.8.7/libparted/tests/Makefile.am
new file mode 100644
index 0000000..8c1e07b
--- /dev/null
+++ b/parted-1.8.7/libparted/tests/Makefile.am
@@ -0,0 +1,12 @@
+# This file is part of GNU Parted
+# Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+#
+# This file may be modified and/or distributed without restriction.
+
+TESTS = label
+bin_PROGRAMS     = label
+label_CFLAGS    = $(CHECK_CFLAGS) -I$(top_srcdir)/include
+label_LDADD     = $(CHECK_LIBS) $(top_builddir)/libparted/libparted.la
+label_SOURCES   = common.h common.c label.c
+
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/parted-1.8.7/libparted/tests/Makefile.in b/parted-1.8.7/libparted/tests/Makefile.in
new file mode 100644
index 0000000..1a708c2
--- /dev/null
+++ b/parted-1.8.7/libparted/tests/Makefile.in
@@ -0,0 +1,763 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# This file is part of GNU Parted
+# Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+#
+# This file may be modified and/or distributed without restriction.
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+TESTS = label$(EXEEXT)
+bin_PROGRAMS = label$(EXEEXT)
+subdir = libparted/tests
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)"
+binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+PROGRAMS = $(bin_PROGRAMS)
+am_label_OBJECTS = label-common.$(OBJEXT) label-label.$(OBJEXT)
+label_OBJECTS = $(am_label_OBJECTS)
+am__DEPENDENCIES_1 =
+label_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(top_builddir)/libparted/libparted.la
+label_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(label_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/lib@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(label_SOURCES)
+DIST_SOURCES = $(label_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+label_CFLAGS = $(CHECK_CFLAGS) -I$(top_srcdir)/include
+label_LDADD = $(CHECK_LIBS) $(top_builddir)/libparted/libparted.la
+label_SOURCES = common.h common.c label.c
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  libparted/tests/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  libparted/tests/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-binPROGRAMS: $(bin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  if test -f $$p \
+	     || test -f $$p1 \
+	  ; then \
+	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+	   $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
+	  else :; fi; \
+	done
+
+uninstall-binPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
+	done
+
+clean-binPROGRAMS:
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  echo " rm -f $$p $$f"; \
+	  rm -f $$p $$f ; \
+	done
+label$(EXEEXT): $(label_OBJECTS) $(label_DEPENDENCIES) 
+	@rm -f label$(EXEEXT)
+	$(label_LINK) $(label_OBJECTS) $(label_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/label-common.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/label-label.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+label-common.o: common.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(label_CFLAGS) $(CFLAGS) -MT label-common.o -MD -MP -MF $(DEPDIR)/label-common.Tpo -c -o label-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/label-common.Tpo $(DEPDIR)/label-common.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='label-common.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(label_CFLAGS) $(CFLAGS) -c -o label-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+
+label-common.obj: common.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(label_CFLAGS) $(CFLAGS) -MT label-common.obj -MD -MP -MF $(DEPDIR)/label-common.Tpo -c -o label-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/label-common.Tpo $(DEPDIR)/label-common.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='label-common.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(label_CFLAGS) $(CFLAGS) -c -o label-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+
+label-label.o: label.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(label_CFLAGS) $(CFLAGS) -MT label-label.o -MD -MP -MF $(DEPDIR)/label-label.Tpo -c -o label-label.o `test -f 'label.c' || echo '$(srcdir)/'`label.c
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/label-label.Tpo $(DEPDIR)/label-label.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='label.c' object='label-label.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(label_CFLAGS) $(CFLAGS) -c -o label-label.o `test -f 'label.c' || echo '$(srcdir)/'`label.c
+
+label-label.obj: label.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(label_CFLAGS) $(CFLAGS) -MT label-label.obj -MD -MP -MF $(DEPDIR)/label-label.Tpo -c -o label-label.obj `if test -f 'label.c'; then $(CYGPATH_W) 'label.c'; else $(CYGPATH_W) '$(srcdir)/label.c'; fi`
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/label-label.Tpo $(DEPDIR)/label-label.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='label.c' object='label-label.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(label_CFLAGS) $(CFLAGS) -c -o label-label.obj `if test -f 'label.c'; then $(CYGPATH_W) 'label.c'; else $(CYGPATH_W) '$(srcdir)/label.c'; fi`
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+check-TESTS: $(TESTS)
+	@failed=0; all=0; xfail=0; xpass=0; skip=0; ws='[	 ]'; \
+	srcdir=$(srcdir); export srcdir; \
+	list=' $(TESTS) '; \
+	if test -n "$$list"; then \
+	  for tst in $$list; do \
+	    if test -f ./$$tst; then dir=./; \
+	    elif test -f $$tst; then dir=; \
+	    else dir="$(srcdir)/"; fi; \
+	    if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+	      all=`expr $$all + 1`; \
+	      case " $(XFAIL_TESTS) " in \
+	      *$$ws$$tst$$ws*) \
+		xpass=`expr $$xpass + 1`; \
+		failed=`expr $$failed + 1`; \
+		echo "XPASS: $$tst"; \
+	      ;; \
+	      *) \
+		echo "PASS: $$tst"; \
+	      ;; \
+	      esac; \
+	    elif test $$? -ne 77; then \
+	      all=`expr $$all + 1`; \
+	      case " $(XFAIL_TESTS) " in \
+	      *$$ws$$tst$$ws*) \
+		xfail=`expr $$xfail + 1`; \
+		echo "XFAIL: $$tst"; \
+	      ;; \
+	      *) \
+		failed=`expr $$failed + 1`; \
+		echo "FAIL: $$tst"; \
+	      ;; \
+	      esac; \
+	    else \
+	      skip=`expr $$skip + 1`; \
+	      echo "SKIP: $$tst"; \
+	    fi; \
+	  done; \
+	  if test "$$failed" -eq 0; then \
+	    if test "$$xfail" -eq 0; then \
+	      banner="All $$all tests passed"; \
+	    else \
+	      banner="All $$all tests behaved as expected ($$xfail expected failures)"; \
+	    fi; \
+	  else \
+	    if test "$$xpass" -eq 0; then \
+	      banner="$$failed of $$all tests failed"; \
+	    else \
+	      banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \
+	    fi; \
+	  fi; \
+	  dashes="$$banner"; \
+	  skipped=""; \
+	  if test "$$skip" -ne 0; then \
+	    skipped="($$skip tests were not run)"; \
+	    test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+	      dashes="$$skipped"; \
+	  fi; \
+	  report=""; \
+	  if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+	    report="Please report to $(PACKAGE_BUGREPORT)"; \
+	    test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+	      dashes="$$report"; \
+	  fi; \
+	  dashes=`echo "$$dashes" | sed s/./=/g`; \
+	  echo "$$dashes"; \
+	  echo "$$banner"; \
+	  test -z "$$skipped" || echo "$$skipped"; \
+	  test -z "$$report" || echo "$$report"; \
+	  echo "$$dashes"; \
+	  test "$$failed" -eq 0; \
+	else :; fi
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+	for dir in "$(DESTDIR)$(bindir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
+	clean-binPROGRAMS clean-generic clean-libtool ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-binPROGRAMS install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags uninstall uninstall-am uninstall-binPROGRAMS
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/libparted/tests/common.c b/parted-1.8.7/libparted/tests/common.c
new file mode 100644
index 0000000..e7ce56f
--- /dev/null
+++ b/parted-1.8.7/libparted/tests/common.c
@@ -0,0 +1,74 @@
+#include <config.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <string.h>
+
+#include <check.h>
+
+#include "common.h"
+
+PedExceptionOption
+_test_exception_handler (PedException* e)
+{
+        fail ("Exception of type %s has been raised: %s",
+              ped_exception_get_type_string (e->type),
+              e->message);
+
+        return PED_EXCEPTION_UNHANDLED;
+}
+
+char*
+_create_disk (const off_t size)
+{
+        char* filename = strdup ("parted-test-XXXXXX");
+
+        if (filename == NULL)
+                return NULL;
+
+        int fd = mkstemp (filename);
+        if (fd < 0) {
+        free_filename:
+                free (filename);
+                return NULL;
+        }
+
+        FILE* disk = fdopen (fd, "w");
+        if (disk == NULL)
+                goto free_filename;
+
+        off_t total_size = size * 1024 * 1024;	/* Mb */
+
+        int fail = (fseek (disk, total_size, SEEK_SET) != 0
+                    || fwrite ("", sizeof (char), 1, disk) != 1);
+
+        if (fclose (disk) != 0 || fail)
+                goto free_filename;
+
+        return filename;
+}
+
+PedDisk*
+_create_disk_label (PedDevice *dev, PedDiskType *type)
+{
+        PedDisk* disk = NULL;
+
+        /* Create the label */
+        disk = ped_disk_new_fresh (dev, type);
+        fail_if (!disk, "Failed to create a label of type: %s",
+                 type->name);
+        fail_if (!ped_disk_commit(disk),
+		 "Failed to commit label to device");
+
+        return disk;
+}
+
+int
+_implemented_disk_label (const char *label)
+{
+        /* Not implemented yet */
+        if (strncmp (label, "aix", 3) == 0)
+                return 0;
+        
+        return 1;
+}
diff --git a/parted-1.8.7/libparted/tests/common.h b/parted-1.8.7/libparted/tests/common.h
new file mode 100644
index 0000000..3fbad73
--- /dev/null
+++ b/parted-1.8.7/libparted/tests/common.h
@@ -0,0 +1,27 @@
+#include <parted/parted.h>
+
+/* Create an empty disk image
+ *
+ * filename: file (with full path) where to write the disk image
+ *     size: size of disk image (megabytes)
+ */
+char* _create_disk (const off_t size);
+
+/* Create a disk label
+ *
+ *  dev: device to use when creating the label
+ * type: label type
+ */
+PedDisk* _create_disk_label (PedDevice* dev, PedDiskType* type);
+
+/* Return if a disk label is implemented
+ *
+ * label: disk label name
+ */
+int _implemented_disk_label (const char* label);
+
+/* Test specific exception handler
+ *
+ */
+PedExceptionOption _test_exception_handler (PedException* e);
+
diff --git a/parted-1.8.7/libparted/tests/label.c b/parted-1.8.7/libparted/tests/label.c
new file mode 100644
index 0000000..54f40c3
--- /dev/null
+++ b/parted-1.8.7/libparted/tests/label.c
@@ -0,0 +1,193 @@
+#include <config.h>
+#include <unistd.h>
+
+#include <check.h>
+
+#include <parted/parted.h>
+
+#include "common.h"
+
+static char* temporary_disk;
+
+static void
+create_disk (void)
+{
+        temporary_disk = _create_disk (20);
+        fail_if (temporary_disk == NULL, "Failed to create temporary disk");
+}
+
+static void
+destroy_disk (void)
+{
+        unlink (temporary_disk);
+        free (temporary_disk);
+}
+
+/* TEST: Create a disklabel on a simple disk image */
+START_TEST (test_create_label)
+{
+        PedDevice* dev = ped_device_get (temporary_disk);
+        if (dev == NULL)
+                return;
+
+        PedDiskType* type;
+        PedDisk* disk;
+
+        for (type = ped_disk_type_get_next (NULL); type;
+             type = ped_disk_type_get_next (type)) {
+                if (!_implemented_disk_label (type->name))
+                        continue;
+
+                disk = _create_disk_label (dev, type);
+                ped_disk_destroy (disk);
+        }
+        ped_device_destroy (dev);
+}
+END_TEST
+
+/* TEST: Probe the disk label of a loop device. */
+START_TEST (test_probe_label)
+{
+        PedDevice* dev = ped_device_get (temporary_disk);
+        if (dev == NULL)
+                return;
+
+        PedDiskType* probed;
+        PedDiskType* type;
+        PedDisk* disk;
+
+        for (type = ped_disk_type_get_next (NULL); type;
+             type = ped_disk_type_get_next (type)) {
+                if (!_implemented_disk_label (type->name))
+                        continue;
+
+                disk = _create_disk_label (dev, type);
+                ped_disk_destroy (disk);
+
+                /* Try to probe the disk label. */
+                probed = ped_disk_probe (dev);
+                fail_if (!probed,
+                         "Failed to probe the just created label of type: %s",
+                         type->name);
+                fail_if (strcmp (probed->name, type->name) != 0,
+                         "Probe returned label of type: %s as type: %s",
+                         type->name, probed->name);
+        }
+        ped_device_destroy (dev);
+}
+END_TEST
+
+/* TEST: Read the disk label of a loop device. */
+START_TEST (test_read_label)
+{
+        PedDevice* dev = ped_device_get (temporary_disk);
+        if (dev == NULL)
+                return;
+
+        PedDiskType* type;
+        PedDisk* disk;
+
+        for (type = ped_disk_type_get_next (NULL); type;
+             type = ped_disk_type_get_next (type)) {
+                if (!_implemented_disk_label (type->name))
+                        continue;
+
+                disk = _create_disk_label (dev, type);
+                ped_disk_destroy (disk);
+
+                /* Try to read the disk label. */
+                disk = ped_disk_new (dev);
+                fail_if (!disk,
+                         "Failed to read the just created label of type: %s",
+                         type->name);
+                fail_if (strcmp (disk->type->name, type->name) != 0,
+                         "Read returned label of type: %s as type: %s",
+                         type->name, disk->type->name);
+
+                ped_disk_destroy (disk);
+        }
+        ped_device_destroy (dev);
+}
+END_TEST
+
+/* TEST: Clone the disk label of a loop device. */
+START_TEST (test_clone_label)
+{
+        PedDevice* dev = ped_device_get (temporary_disk);
+        if (dev == NULL)
+                return;
+
+        PedDiskType* type;
+        PedDisk* clone;
+        PedDisk* disk;
+
+        for (type = ped_disk_type_get_next (NULL); type;
+             type = ped_disk_type_get_next (type)) {
+                if (!_implemented_disk_label (type->name))
+                        continue;
+
+                /* FIXME: skip this test temporarily, while we wait
+                   for someone to find the cycles to fix the bug.  */
+                if (strcmp (type->name, "dvh") == 0)
+                        continue;
+
+                disk = _create_disk_label (dev, type);
+
+                /* Try to clone the disk label. */
+                clone = ped_disk_duplicate (disk);
+                fail_if (!clone,
+                         "Failed to clone the just created label of type: %s",
+                         type->name);
+
+                ped_disk_destroy (clone);
+                ped_disk_destroy (disk);
+        }
+        ped_device_destroy (dev);
+}
+END_TEST
+
+int
+main (void)
+{
+        int number_failed;
+        Suite* suite = suite_create ("Disk Label");
+        TCase* tcase_basic = tcase_create ("Create");
+        TCase* tcase_probe = tcase_create ("Probe");
+        TCase* tcase_read = tcase_create ("Read");
+        TCase* tcase_clone = tcase_create ("Clone");
+
+        /* Fail when an exception is raised */
+        ped_exception_set_handler (_test_exception_handler);
+
+        tcase_add_checked_fixture (tcase_basic, create_disk, destroy_disk);
+        tcase_add_test (tcase_basic, test_create_label);
+        /* Disable timeout for this test */
+        tcase_set_timeout (tcase_basic, 0);
+        suite_add_tcase (suite, tcase_basic);
+
+        tcase_add_checked_fixture (tcase_probe, create_disk, destroy_disk);
+        tcase_add_test (tcase_probe, test_probe_label);
+        /* Disable timeout for this test. */
+        tcase_set_timeout (tcase_probe, 0);
+        suite_add_tcase (suite, tcase_probe);
+
+        tcase_add_checked_fixture (tcase_read, create_disk, destroy_disk);
+        tcase_add_test (tcase_read, test_read_label);
+        /* Disable timeout for this test. */
+        tcase_set_timeout (tcase_read, 0);
+        suite_add_tcase (suite, tcase_read);
+
+        tcase_add_checked_fixture (tcase_clone, create_disk, destroy_disk);
+        tcase_add_test (tcase_clone, test_clone_label);
+        /* Disable timeout for this test. */
+        tcase_set_timeout (tcase_clone, 0);
+        suite_add_tcase (suite, tcase_clone);
+
+        SRunner* srunner = srunner_create (suite);
+        srunner_run_all (srunner, CK_VERBOSE);
+
+        number_failed = srunner_ntests_failed (srunner);
+        srunner_free (srunner);
+
+        return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
+}
diff --git a/parted-1.8.7/libparted/timer.c b/parted-1.8.7/libparted/timer.c
new file mode 100644
index 0000000..e315273
--- /dev/null
+++ b/parted-1.8.7/libparted/timer.c
@@ -0,0 +1,246 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2001, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+/** \file timer.c */
+
+/**
+ * \addtogroup PedTimer
+ *
+ * \brief A PedTimer keeps track of the progress of a single (possibly 
+ * compound) operation.  
+ *
+ * The user of libparted constructs a PedTimer, and passes it to libparted 
+ * functions that are likely to be expensive operations 
+ * (like ped_file_system_resize).  Use of timers is optional... you may
+ * pass NULL instead.
+ * 
+ * When you create a PedTimer, you must specify a timer handler function.
+ * This will be called when there's an update on how work is progressing.
+ * 
+ * Timers may be nested.  When a timer is constructed, you can choose
+ * to assign it a parent, along with an estimate of what proportion of
+ * the total (parent's) time will be used in the nested operation.  In
+ * this case, the nested timer's handler is internal to libparted,
+ * and simply updates the parent's progress, and calls its handler.
+ * 
+ * @{
+ */
+
+
+#include <config.h>
+#include <parted/parted.h>
+#include <parted/debug.h>
+
+#define PED_TIMER_START_DELAY	2
+
+typedef struct {
+	PedTimer*	parent;
+	float		nest_frac;
+	float		start_frac;
+} NestedContext;
+
+
+/**
+ * \brief Creates a timer.  
+ *
+ * Context will be passed in the \p context
+ *         argument to the \p handler, when it is invoked.
+ *
+ * \return a new PedTimer
+ */
+PedTimer*
+ped_timer_new (PedTimerHandler* handler, void* context)
+{
+	PedTimer*	timer;
+
+	PED_ASSERT (handler != NULL, return NULL);
+
+	timer = (PedTimer*) ped_malloc (sizeof (PedTimer));
+	if (!timer)
+		return NULL;
+
+	timer->handler = handler;
+	timer->context = context;
+	ped_timer_reset (timer);
+	return timer;
+}
+
+
+/**
+ * \brief Destroys a \p timer.
+ */
+void
+ped_timer_destroy (PedTimer* timer)
+{
+	if (!timer)
+		return;
+
+	ped_free (timer);
+}
+
+/* This function is used by ped_timer_new_nested() as the timer->handler
+ * function.
+ */
+static void
+_nest_handler (PedTimer* timer, void* context)
+{
+	NestedContext*	ncontext = (NestedContext*) context;
+
+	ped_timer_update (
+		ncontext->parent,
+		ncontext->start_frac + ncontext->nest_frac * timer->frac);
+}
+
+
+/** 
+ * \brief Creates a new nested timer. 
+ *
+ * This function creates a "nested" timer that describes the progress
+ * of a subtask. \p parent is the parent timer, and \p nested_frac is 
+ * the estimated proportion (between 0 and 1) of the time that will be 
+ * spent doing the nested timer's operation. The timer should only be 
+ * constructed immediately prior to starting the nested operation.  
+ * (It will be inaccurate, otherwise).
+ * Updates to the progress of the subtask are propagated
+ * back through to the parent task's timer.
+ *
+ * \return nested timer
+ */
+PedTimer*
+ped_timer_new_nested (PedTimer* parent, float nest_frac)
+{
+	NestedContext*	context;
+
+	if (!parent)
+		return NULL;
+
+	PED_ASSERT (nest_frac >= 0.0, return NULL);
+	PED_ASSERT (nest_frac <= 1.0, return NULL);
+
+	context = (NestedContext*) ped_malloc (sizeof (NestedContext));
+	if (!context)
+		return NULL;
+	context->parent = parent;
+	context->nest_frac = nest_frac;
+	context->start_frac = parent->frac;
+
+	return ped_timer_new (_nest_handler, context);
+}
+
+/**
+ * \brief Destroys a nested \p timer.
+ */
+void
+ped_timer_destroy_nested (PedTimer* timer)
+{
+	if (!timer)
+		return;
+
+	ped_free (timer->context);
+	ped_timer_destroy (timer);
+}
+
+/**
+ * \internal 
+ *
+ * \brief This function calls the update handler, making sure that it has
+ * 	the latest time. 
+ *
+ * First it updates \p timer->now and recomputes \p timer->predicted_end, 
+ * and then calls the handler.
+ */
+void
+ped_timer_touch (PedTimer* timer)
+{
+	if (!timer)
+	       return;
+
+	timer->now = time (NULL);
+	if (timer->now > timer->predicted_end)
+		timer->predicted_end = timer->now;
+
+	timer->handler (timer, timer->context);
+}
+
+/** 
+ * \internal
+ * 
+ * \brief This function sets the \p timer into a "start of task" position.
+ * 
+ * It resets the \p timer, by setting \p timer->start and \p timer->now
+ * to the current time.
+ */
+void
+ped_timer_reset (PedTimer* timer)
+{
+	if (!timer)
+	       return;
+
+	timer->start = timer->now = timer->predicted_end = time (NULL);
+	timer->state_name = NULL;
+	timer->frac = 0;
+
+	ped_timer_touch (timer);
+}
+
+/** 
+ * \internal
+ * 
+ * \brief This function tells a \p timer what fraction \p frac of the task
+ * has been completed.
+ * 
+ * Sets the new \p timer->frac, and calls ped_timer_touch().
+ */
+void
+ped_timer_update (PedTimer* timer, float frac)
+{
+	if (!timer)
+	       return;
+
+	timer->now = time (NULL);
+	timer->frac = frac;
+
+	if (frac)
+		timer->predicted_end
+			= timer->start
+			  + (long) ((timer->now - timer->start) / frac);
+
+	ped_timer_touch (timer);
+}
+
+/**
+ * \internal 
+ * 
+ * \brief This function changes the description of the current task that the
+ * 	\p timer describes.
+ * 	
+ * Sets a new name - \p state_name - for the current "phase" of the operation,
+ * and calls ped_timer_touch().
+ */
+void
+ped_timer_set_state_name (PedTimer* timer, const char* state_name)
+{
+	if (!timer)
+	       return;
+
+	timer->state_name = state_name;
+	ped_timer_touch (timer);
+}
+
+/** @} */
diff --git a/parted-1.8.7/libparted/unit.c b/parted-1.8.7/libparted/unit.c
new file mode 100644
index 0000000..4810246
--- /dev/null
+++ b/parted-1.8.7/libparted/unit.c
@@ -0,0 +1,566 @@
+/*
+    libparted - a library for manipulating disk partitions
+    Copyright (C) 2005, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+/** \file unit.c */
+
+/**
+ * \addtogroup PedUnit
+ * 
+ * \brief The PedUnit module provides a standard mechanism for describing
+ * and parsing locations within devices in human-friendly plain text. 
+ *
+ * Internally, libparted uses PedSector (which is typedef'ed to be long long 
+ * in <parted/device.h>) to describe device locations such as the start and 
+ * end of partitions.  However, sector numbers are often long and unintuitive.  
+ * For example, my extended partition starts at sector 208845.  PedUnit allows 
+ * this location to be represented in more intutitive ways, including "106Mb", 
+ * "0Gb" and "0%", as well as "208845s".  PedUnit aims to provide facilities 
+ * to provide a consistent system for describing device locations all
+ * throughout libparted.
+ * 
+ * PedUnit provides two basic services: converting a PedSector into a text
+ * representation, and parsing a text representation into a PedSector.
+ * PedUnit currently supports these units:
+ * 
+ * 	sectors, bytes, kilobytes, megabytes, gigabytes, terabytes, compact,
+ * 	cylinder and percent.
+ * 	
+ * PedUnit has a global variable that contains the default unit for all
+ * conversions.
+ *
+ * @{
+ */
+
+
+
+
+#include <config.h>
+#include <parted/parted.h>
+#include <parted/debug.h>
+
+#include <ctype.h>
+#include <stdio.h>
+#include <float.h>
+
+#define N_(String) String
+#if ENABLE_NLS
+#  include <libintl.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+
+static PedUnit default_unit = PED_UNIT_COMPACT;
+static const char* unit_names[] = {
+	"s",
+	"B",
+	"kB",
+	"MB",
+	"GB",
+	"TB",
+	"compact",
+	"cyl",
+	"chs",
+	"%",
+	"kiB",
+	"MiB",
+	"GiB",
+	"TiB"
+};
+
+
+/**
+ * \brief Set the default \p unit used by subsequent calls to the PedUnit API.
+ *
+ * In particular, this affects how locations inside error messages
+ * (exceptions) are displayed.
+ */
+void
+ped_unit_set_default (PedUnit unit)
+{
+	default_unit = unit;
+}
+
+
+/**
+ * \brief Get the current default unit.
+ */
+PedUnit
+ped_unit_get_default ()
+{
+	return default_unit;
+}
+
+/**
+ * Get the byte size of a given \p unit.
+ */
+long long
+ped_unit_get_size (const PedDevice* dev, PedUnit unit)
+{
+	PedSector cyl_size = dev->bios_geom.heads * dev->bios_geom.sectors;
+
+	switch (unit) {
+		case PED_UNIT_SECTOR:	return dev->sector_size;
+		case PED_UNIT_BYTE:	return 1;
+		case PED_UNIT_KILOBYTE:	return PED_KILOBYTE_SIZE;
+		case PED_UNIT_MEGABYTE:	return PED_MEGABYTE_SIZE;
+		case PED_UNIT_GIGABYTE:	return PED_GIGABYTE_SIZE;
+		case PED_UNIT_TERABYTE:	return PED_TERABYTE_SIZE;
+		case PED_UNIT_KIBIBYTE:	return PED_KIBIBYTE_SIZE;
+		case PED_UNIT_MEBIBYTE:	return PED_MEBIBYTE_SIZE;
+		case PED_UNIT_GIBIBYTE:	return PED_GIBIBYTE_SIZE;
+		case PED_UNIT_TEBIBYTE:	return PED_TEBIBYTE_SIZE;
+		case PED_UNIT_CYLINDER:	return cyl_size * dev->sector_size;
+		case PED_UNIT_CHS:	return dev->sector_size;
+
+		case PED_UNIT_PERCENT:
+			return dev->length * dev->sector_size / 100;
+
+		case PED_UNIT_COMPACT:
+			ped_exception_throw (
+				PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+				_("Cannot get unit size for special unit "
+				  "'COMPACT'."));
+			return 0;
+	}
+
+	/* never reached */
+	PED_ASSERT(0, return 0);
+	return 0;
+}
+
+/**
+ * Get a textual (non-internationalized) representation of a \p unit.
+ * 
+ * For example, the textual representation of PED_UNIT_SECTOR is "s".
+ */
+const char*
+ped_unit_get_name (PedUnit unit)
+{
+	return unit_names[unit];
+}
+
+/**
+ * Get a unit based on its textual representation: \p unit_name.
+ *
+ * For example, ped_unit_get_by_name("Mb") returns PED_UNIT_MEGABYTE.
+ */
+PedUnit
+ped_unit_get_by_name (const char* unit_name)
+{
+	PedUnit unit;
+	for (unit = PED_UNIT_FIRST; unit <= PED_UNIT_LAST; unit++) {
+		if (!strcasecmp (unit_names[unit], unit_name))
+			return unit;
+	}
+	return -1;
+}
+
+static char*
+ped_strdup (const char *str)
+{
+	char *result;
+	result = ped_malloc (strlen (str) + 1);
+	if (!result)
+		return NULL;
+	strcpy (result, str);
+	return result;
+}
+
+/**
+ * \brief Get a string that describes the location of the \p byte on
+ * device \p dev.
+ * 
+ * The string is described with the desired \p unit.
+ * The returned string must be freed with ped_free().
+ */
+char*
+ped_unit_format_custom_byte (const PedDevice* dev, PedSector byte, PedUnit unit)
+{
+	char buf[100];
+	PedSector sector = byte / dev->sector_size;
+	double d, w;
+	int p;
+
+	PED_ASSERT (dev != NULL, return NULL);
+	
+	/* CHS has a special comma-separated format. */
+	if (unit == PED_UNIT_CHS) {
+		const PedCHSGeometry *chs = &dev->bios_geom;
+		snprintf (buf, 100, "%lld,%lld,%lld",
+			  sector / chs->sectors / chs->heads,
+			  (sector / chs->sectors) % chs->heads,
+			  sector % chs->sectors);
+		return ped_strdup (buf);
+	}
+
+	/* Cylinders, sectors and bytes should be rounded down... */
+	if (unit == PED_UNIT_CYLINDER
+	    || unit == PED_UNIT_SECTOR
+	    || unit == PED_UNIT_BYTE) {
+		snprintf (buf, 100, "%lld%s",
+			  byte / ped_unit_get_size (dev, unit),
+			  ped_unit_get_name (unit));
+		return ped_strdup (buf);
+	}
+	
+        if (unit == PED_UNIT_COMPACT) {
+                if (byte >= 10LL * PED_TERABYTE_SIZE)
+                        unit = PED_UNIT_TERABYTE;
+                else if (byte >= 10LL * PED_GIGABYTE_SIZE)
+                        unit = PED_UNIT_GIGABYTE;
+                else if (byte >= 10LL * PED_MEGABYTE_SIZE)
+                        unit = PED_UNIT_MEGABYTE;
+                else if (byte >= 10LL * PED_KILOBYTE_SIZE)
+                        unit = PED_UNIT_KILOBYTE;
+                else
+                        unit = PED_UNIT_BYTE;
+	}
+
+	/* IEEE754 says that 100.5 has to be rounded to 100 (by printf) */
+	/* but 101.5 has to be rounded to 102... so we multiply by 1+E. */
+	/* This just divide by 2 the natural IEEE754 extended precision */
+	/* and won't cause any trouble before 1000 TB */
+	d = ((double)byte / (double)ped_unit_get_size (dev, unit))
+	    * (1. + DBL_EPSILON);
+	w = d + ( (d < 10. ) ? 0.005 :
+		  (d < 100.) ? 0.05  :
+			       0.5  );
+	p = (w < 10. ) ? 2 :
+	    (w < 100.) ? 1 :
+			 0 ;
+
+#ifdef __BEOS__
+	snprintf (buf, 100, "%.*f%s", p, d, ped_unit_get_name(unit));
+#else
+	snprintf (buf, 100, "%1$.*2$f%3$s", d, p, ped_unit_get_name (unit));
+#endif
+
+	return ped_strdup (buf);
+}
+
+/**
+ * \brief Get a string that describes the location of the \p byte on
+ * device \p dev.
+ * 
+ * The string is described with the default unit, which is set
+ * by ped_unit_set_default().
+ * The returned string must be freed with ped_free().
+ */
+char*
+ped_unit_format_byte (const PedDevice* dev, PedSector byte)
+{
+	PED_ASSERT (dev != NULL, return NULL);
+	return ped_unit_format_custom_byte (dev, byte, default_unit);
+}
+
+/**
+ * \brief Get a string that describes the location \p sector on device \p dev.
+ * 
+ * The string is described with the desired \p unit.
+ * The returned string must be freed with ped_free().
+ */
+char*
+ped_unit_format_custom (const PedDevice* dev, PedSector sector, PedUnit unit)
+{
+	PED_ASSERT (dev != NULL, return NULL);
+	return ped_unit_format_custom_byte(dev, sector*dev->sector_size, unit);
+}
+
+/**
+ * \brief Get a string that describes the location \p sector on device \p dev.
+ * 
+ * The string is described with the default unit, which is set
+ * by ped_unit_set_default().
+ * The returned string must be freed with ped_free().
+ */
+char*
+ped_unit_format (const PedDevice* dev, PedSector sector)
+{
+	PED_ASSERT (dev != NULL, return NULL);
+	return ped_unit_format_custom_byte (dev, sector * dev->sector_size,
+					    default_unit);
+}
+
+/**
+ * If \p str contains a valid description of a location on \p dev, 
+ * then \p *sector is modified to describe the location and a geometry 
+ * is created in \p *range describing a 2 units large area centered on 
+ * \p *sector.  If the \p range as described here would be partially outside 
+ * the device \p dev, the geometry returned is the intersection between the 
+ * former and the whole	device geometry.  If no units are specified, then the 
+ * default unit is assumed.  
+ *
+ * \return \c 1 if \p str is a valid location description, \c 0 otherwise
+ */
+int
+ped_unit_parse (const char* str, const PedDevice* dev, PedSector *sector,
+		PedGeometry** range)
+{
+	return ped_unit_parse_custom (str, dev, default_unit, sector, range);
+}
+
+/* Inefficiently removes all spaces from a string, in-place. */
+static void
+strip_string (char* str)
+{
+	int i;
+
+	for (i = 0; str[i] != 0; i++) {
+		if (isspace (str[i])) {
+			int j;
+			for (j = i + 1; str[j] != 0; j++)
+				str[j - 1] = str[j];
+		}
+	}
+}
+
+
+/* Find non-number suffix.  Eg: find_suffix("32Mb") returns a pointer to
+ * "Mb". */
+static char*
+find_suffix (const char* str)
+{
+	while (str[0] != 0 && (isdigit (str[0]) || strchr(",.-", str[0])))
+		str++;
+	return (char *) str;
+}
+
+static void
+remove_punct (char* str)
+{
+	int i = 0;
+
+	for (i = 0; str[i]; i++) {
+		if (ispunct (str[i]))
+			str[i] = ' ';
+	}
+}
+
+static int
+is_chs (const char* str)
+{
+	int punct_count = 0;
+	int i = 0;
+
+	for (i = 0; str[i]; i++)
+		punct_count += ispunct (str[i]) != 0;
+	return punct_count == 2;
+}
+
+static int
+parse_chs (const char* str, const PedDevice* dev, PedSector* sector,
+		PedGeometry** range)
+{
+	PedSector cyl_size = dev->bios_geom.heads * dev->bios_geom.sectors;
+	char* copy = ped_strdup (str);
+	PedCHSGeometry chs;
+
+	copy = ped_strdup (str);
+	if (!copy)
+		return 0;
+	strip_string (copy);
+	remove_punct (copy);
+
+	if (sscanf (copy, "%d %d %d",
+		    &chs.cylinders, &chs.heads, &chs.sectors) != 3) {
+		ped_exception_throw (
+				PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+				_("\"%s\" has invalid syntax for locations."),
+				copy);
+		goto error_free_copy;
+	}
+
+	if (chs.heads >= dev->bios_geom.heads) {
+		ped_exception_throw (
+				PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+				_("The maximum head value is %d."),
+				dev->bios_geom.heads - 1);
+		goto error_free_copy;
+	}
+	if (chs.sectors >= dev->bios_geom.sectors) {
+		ped_exception_throw (
+				PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+				_("The maximum sector value is %d."),
+				dev->bios_geom.sectors - 1);
+		goto error_free_copy;
+	}
+
+	*sector = 1LL * chs.cylinders * cyl_size
+		+ chs.heads * dev->bios_geom.sectors
+		+ chs.sectors;
+
+	if (*sector >= dev->length) {
+		ped_exception_throw (
+				PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+				_("The location %s is outside of the "
+				  "device %s."),
+				str, dev->path);
+		goto error_free_copy;
+	}
+	if (range)
+		*range = ped_geometry_new (dev, *sector, 1);
+	ped_free (copy);
+	return !range || *range != NULL;
+
+error_free_copy:
+	ped_free (copy);
+	*sector = 0;
+	if (range)
+		*range = NULL;
+	return 0;
+}
+
+static PedSector
+clip (const PedDevice* dev, PedSector sector)
+{
+	if (sector < 0)
+		return 0;
+	if (sector > dev->length - 1)
+		return dev->length - 1;
+	return sector;
+}
+
+static PedGeometry*
+geometry_from_centre_radius (const PedDevice* dev,
+                             PedSector sector, PedSector radius)
+{
+	PedSector start = clip (dev, sector - radius);
+	PedSector end = clip (dev, sector + radius);
+	if (sector - end > radius || start - sector > radius)
+		return NULL;
+	return ped_geometry_new (dev, start, end - start + 1);
+}
+
+static PedUnit
+parse_unit_suffix (const char* suffix, PedUnit suggested_unit)
+{
+	if (strlen (suffix) > 1 && tolower (suffix[1]) == 'i') {
+		switch (tolower (suffix[0])) {
+			case 'k': return PED_UNIT_KIBIBYTE;
+			case 'm': return PED_UNIT_MEBIBYTE;
+			case 'g': return PED_UNIT_GIBIBYTE;
+			case 't': return PED_UNIT_TEBIBYTE;
+		}
+	} else if (strlen (suffix) > 0) {
+		switch (tolower (suffix[0])) {
+			case 's': return PED_UNIT_SECTOR;
+			case 'b': return PED_UNIT_BYTE;
+			case 'k': return PED_UNIT_KILOBYTE;
+			case 'm': return PED_UNIT_MEGABYTE;
+			case 'g': return PED_UNIT_GIGABYTE; 
+			case 't': return PED_UNIT_TERABYTE;
+			case 'c': return PED_UNIT_CYLINDER; 
+			case '%': return PED_UNIT_PERCENT;
+		}
+	}
+
+	if (suggested_unit == PED_UNIT_COMPACT) {
+		if (default_unit == PED_UNIT_COMPACT)
+			return PED_UNIT_MEGABYTE;
+		else
+			return default_unit;
+	}
+
+	return suggested_unit;
+}
+
+/**
+ * If \p str contains a valid description of a location on \p dev, then 
+ * \p *sector is modified to describe the location and a geometry is created
+ * in \p *range describing a 2 units large area centered on \p *sector.  If the
+ * \p range as described here would be partially outside the device \p dev, the
+ * geometry returned is the intersection between the former and the whole
+ * device geometry.  If no units are specified, then the default unit is
+ * assumed. 
+ *
+ * \throws PED_EXCEPTION_ERROR if \p str contains invalid description of a
+ * location
+ * \throws PED_EXCEPTION_ERROR if location described by \p str 
+ * is outside of the device \p dev->path
+ *
+ * \return \c 1 if \p str is a valid location description, \c 0 otherwise.
+ */
+int
+ped_unit_parse_custom (const char* str, const PedDevice* dev, PedUnit unit,
+		       PedSector* sector, PedGeometry** range)
+{
+	char*     copy;
+	char*     suffix;
+	double    num;
+	long long unit_size;
+	PedSector radius;
+
+	if (is_chs (str))
+		return parse_chs (str, dev, sector, range);
+
+	copy = ped_strdup (str);
+	if (!copy)
+		goto error;
+	strip_string (copy);
+
+	suffix = find_suffix (copy);
+	unit = parse_unit_suffix (suffix, unit);
+	suffix[0] = 0;
+
+	if (sscanf (copy, "%lf", &num) != 1) {
+		ped_exception_throw (
+				PED_EXCEPTION_ERROR,
+				PED_EXCEPTION_CANCEL,
+				_("Invalid number."));
+		goto error_free_copy;
+	}
+
+	unit_size = ped_unit_get_size (dev, unit);
+	radius = ped_div_round_up (unit_size, dev->sector_size) - 1;
+	if (radius < 0)
+		radius = 0;
+
+	*sector = num * unit_size / dev->sector_size;
+	/* negative numbers count from the end */
+	if (copy[0] == '-')
+		*sector += dev->length;
+	if (range) {
+		*range = geometry_from_centre_radius (dev, *sector, radius);
+		if (!*range) {
+			ped_exception_throw (
+				PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+				_("The location %s is outside of the "
+				  "device %s."),
+				str, dev->path);
+			goto error_free_copy;
+		}
+	}
+	*sector = clip (dev, *sector);
+
+	ped_free (copy);
+	return 1;
+
+error_free_copy:
+	ped_free (copy);
+error:
+	*sector = 0;
+	if (range)
+		*range = NULL;
+	return 0;
+}
+
+
+/** @} */
diff --git a/parted-1.8.7/m4/absolute-header.m4 b/parted-1.8.7/m4/absolute-header.m4
new file mode 100644
index 0000000..c649df0
--- /dev/null
+++ b/parted-1.8.7/m4/absolute-header.m4
@@ -0,0 +1,44 @@
+# absolute-header.m4 serial 6
+dnl Copyright (C) 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Derek Price.
+
+# gl_ABSOLUTE_HEADER(HEADER1 HEADER2 ...)
+# ---------------------------------------
+# Find the absolute name of a header file, assuming the header exists.
+# If the header were sys/inttypes.h, this macro would define
+# ABSOLUTE_SYS_INTTYPES_H to the `""' quoted absolute name of sys/inttypes.h
+# in config.h
+# (e.g. `#define ABSOLUTE_SYS_INTTYPES_H "///usr/include/sys/inttypes.h"').
+# The three "///" are to pacify Sun C 5.8, which otherwise would say
+# "warning: #include of /usr/include/... may be non-portable".
+# Use `""', not `<>', so that the /// cannot be confused with a C99 comment.
+AC_DEFUN([gl_ABSOLUTE_HEADER],
+[AC_LANG_PREPROC_REQUIRE()dnl
+AC_FOREACH([gl_HEADER_NAME], [$1],
+  [AS_VAR_PUSHDEF([gl_absolute_header],
+                  [gl_cv_absolute_]m4_quote(m4_defn([gl_HEADER_NAME])))dnl
+  AC_CACHE_CHECK([absolute name of <]m4_quote(m4_defn([gl_HEADER_NAME]))[>],
+    m4_quote(m4_defn([gl_absolute_header])),
+    [AS_VAR_PUSHDEF([ac_header_exists],
+                    [ac_cv_header_]m4_quote(m4_defn([gl_HEADER_NAME])))dnl
+    AC_CHECK_HEADERS_ONCE(m4_quote(m4_defn([gl_HEADER_NAME])))dnl
+    if test AS_VAR_GET(ac_header_exists) = yes; then
+      AC_LANG_CONFTEST([AC_LANG_SOURCE([[#include <]]m4_dquote(m4_defn([gl_HEADER_NAME]))[[>]])])
+dnl eval is necessary to expand ac_cpp.
+dnl Ultrix and Pyramid sh refuse to redirect output of eval, so use subshell.
+      AS_VAR_SET(gl_absolute_header,
+[`(eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD |
+sed -n '\#/]m4_quote(m4_defn([gl_HEADER_NAME]))[#{s#.*"\(.*/]m4_quote(m4_defn([gl_HEADER_NAME]))[\)".*#\1#;s#^/[^/]#//&#;p;q;}'`])
+    fi
+    AS_VAR_POPDEF([ac_header_exists])dnl
+    ])dnl
+  AC_DEFINE_UNQUOTED(AS_TR_CPP([ABSOLUTE_]m4_quote(m4_defn([gl_HEADER_NAME]))),
+                     ["AS_VAR_GET(gl_absolute_header)"],
+                     [Define this to an absolute name of <]m4_quote(m4_defn([gl_HEADER_NAME]))[>.])
+  AS_VAR_POPDEF([gl_absolute_header])dnl
+])dnl
+])# gl_ABSOLUTE_HEADER
diff --git a/parted-1.8.7/m4/alloca.m4 b/parted-1.8.7/m4/alloca.m4
new file mode 100644
index 0000000..eb62e0e
--- /dev/null
+++ b/parted-1.8.7/m4/alloca.m4
@@ -0,0 +1,50 @@
+# alloca.m4 serial 7
+dnl Copyright (C) 2002-2004, 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_ALLOCA],
+[
+  dnl Work around a bug of AC_EGREP_CPP in autoconf-2.57.
+  AC_REQUIRE([AC_PROG_CPP])
+  AC_REQUIRE([AC_PROG_EGREP])
+
+  AC_REQUIRE([AC_FUNC_ALLOCA])
+  if test $ac_cv_func_alloca_works = no; then
+    gl_PREREQ_ALLOCA
+  fi
+
+  # Define an additional variable used in the Makefile substitution.
+  if test $ac_cv_working_alloca_h = yes; then
+    AC_CACHE_CHECK([for alloca as a compiler built-in], [gl_cv_rpl_alloca], [
+      AC_EGREP_CPP([Need own alloca], [
+#if defined __GNUC__ || defined _AIX || defined _MSC_VER
+        Need own alloca
+#endif
+        ], [gl_cv_rpl_alloca=yes], [gl_cv_rpl_alloca=no])
+    ])
+    if test $gl_cv_rpl_alloca = yes; then
+      dnl OK, alloca can be implemented through a compiler built-in.
+      AC_DEFINE([HAVE_ALLOCA], 1,
+        [Define to 1 if you have 'alloca' after including <alloca.h>,
+         a header that may be supplied by this distribution.])
+      ALLOCA_H=alloca.h
+    else
+      dnl alloca exists as a library function, i.e. it is slow and probably
+      dnl a memory leak. Don't define HAVE_ALLOCA in this case.
+      ALLOCA_H=
+    fi
+  else
+    ALLOCA_H=alloca.h
+  fi
+  AC_SUBST([ALLOCA_H])
+
+  AC_DEFINE(HAVE_ALLOCA_H, 1,
+    [Define HAVE_ALLOCA_H for backward compatibility with older code
+     that includes <alloca.h> only if HAVE_ALLOCA_H is defined.])
+])
+
+# Prerequisites of lib/alloca.c.
+# STACK_DIRECTION is already handled by AC_FUNC_ALLOCA.
+AC_DEFUN([gl_PREREQ_ALLOCA], [:])
diff --git a/parted-1.8.7/m4/assert.m4 b/parted-1.8.7/m4/assert.m4
new file mode 100644
index 0000000..bfdc00f
--- /dev/null
+++ b/parted-1.8.7/m4/assert.m4
@@ -0,0 +1,19 @@
+#serial 5
+
+# Copyright (C) 1998, 1999, 2001, 2004 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+dnl based on code from Eleftherios Gkioulekas
+
+AC_DEFUN([gl_ASSERT],
+[
+  AC_MSG_CHECKING(whether to enable assertions)
+  AC_ARG_ENABLE(assert,
+	[  --disable-assert        turn off assertions],
+	[ AC_MSG_RESULT(no)
+	  AC_DEFINE(NDEBUG,1,[Define to 1 if assertions should be disabled.]) ],
+	[ AC_MSG_RESULT(yes) ]
+               )
+])
diff --git a/parted-1.8.7/m4/atexit.m4 b/parted-1.8.7/m4/atexit.m4
new file mode 100644
index 0000000..348912f
--- /dev/null
+++ b/parted-1.8.7/m4/atexit.m4
@@ -0,0 +1,18 @@
+# atexit.m4 serial 2
+dnl Copyright (C) 2002 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_ATEXIT],
+[
+  AC_REPLACE_FUNCS(atexit)
+  if test $ac_cv_func_atexit = no; then
+    gl_PREREQ_ATEXIT
+  fi
+])
+
+# Prerequisites of lib/atexit.c.
+AC_DEFUN([gl_PREREQ_ATEXIT], [
+  :
+])
diff --git a/parted-1.8.7/m4/calloc.m4 b/parted-1.8.7/m4/calloc.m4
new file mode 100644
index 0000000..c109171
--- /dev/null
+++ b/parted-1.8.7/m4/calloc.m4
@@ -0,0 +1,43 @@
+# calloc.m4 serial 6
+
+# Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# Written by Jim Meyering.
+
+# Determine whether calloc (N, S) returns non-NULL when N*S is zero,
+# and returns NULL when N*S overflows.
+# If so, define HAVE_CALLOC.  Otherwise, define calloc to rpl_calloc
+# and arrange to use a calloc wrapper function that does work in that case.
+
+# _AC_FUNC_CALLOC_IF(IF-WORKS, IF-NOT)
+# -------------------------------------
+# If `calloc (0, 0)' is properly handled, run IF-WORKS, otherwise, IF-NOT.
+AC_DEFUN([_AC_FUNC_CALLOC_IF],
+[AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+AC_CACHE_CHECK([for GNU libc compatible calloc], ac_cv_func_calloc_0_nonnull,
+[AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
+		  [exit (!calloc (0, 0) || calloc ((size_t) -1 / 8 + 1, 8));])],
+	       [ac_cv_func_calloc_0_nonnull=yes],
+	       [ac_cv_func_calloc_0_nonnull=no],
+	       [ac_cv_func_calloc_0_nonnull=no])])
+AS_IF([test $ac_cv_func_calloc_0_nonnull = yes], [$1], [$2])
+])# AC_FUNC_CALLOC
+
+
+# AC_FUNC_CALLOC
+# ---------------
+# Report whether `calloc (0, 0)' is properly handled, and replace calloc if
+# needed.
+AC_DEFUN([AC_FUNC_CALLOC],
+[_AC_FUNC_CALLOC_IF(
+  [AC_DEFINE([HAVE_CALLOC], 1,
+	     [Define to 1 if your system has a GNU libc compatible `calloc'
+	      function, and to 0 otherwise.])],
+  [AC_DEFINE([HAVE_CALLOC], 0)
+   AC_LIBOBJ([calloc])
+   AC_DEFINE([calloc], [rpl_calloc],
+      [Define to rpl_calloc if the replacement function should be used.])])
+])# AC_FUNC_CALLOC
diff --git a/parted-1.8.7/m4/close-stream.m4 b/parted-1.8.7/m4/close-stream.m4
new file mode 100644
index 0000000..b1f9d54
--- /dev/null
+++ b/parted-1.8.7/m4/close-stream.m4
@@ -0,0 +1,13 @@
+#serial 3
+dnl Copyright (C) 2006-2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_CLOSE_STREAM],
+[
+  AC_LIBOBJ([close-stream])
+
+  dnl Prerequisites of lib/close-stream.c.
+  :
+])
diff --git a/parted-1.8.7/m4/closeout.m4 b/parted-1.8.7/m4/closeout.m4
new file mode 100644
index 0000000..55a65f0
--- /dev/null
+++ b/parted-1.8.7/m4/closeout.m4
@@ -0,0 +1,13 @@
+# closeout.m4 serial 5
+dnl Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_CLOSEOUT],
+[
+  AC_LIBOBJ([closeout])
+
+  dnl Prerequisites of lib/closeout.c.
+  :
+])
diff --git a/parted-1.8.7/m4/codeset.m4 b/parted-1.8.7/m4/codeset.m4
new file mode 100644
index 0000000..223955b
--- /dev/null
+++ b/parted-1.8.7/m4/codeset.m4
@@ -0,0 +1,21 @@
+# codeset.m4 serial 2 (gettext-0.16)
+dnl Copyright (C) 2000-2002, 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([AM_LANGINFO_CODESET],
+[
+  AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
+    [AC_TRY_LINK([#include <langinfo.h>],
+      [char* cs = nl_langinfo(CODESET); return !cs;],
+      am_cv_langinfo_codeset=yes,
+      am_cv_langinfo_codeset=no)
+    ])
+  if test $am_cv_langinfo_codeset = yes; then
+    AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
+      [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
+  fi
+])
diff --git a/parted-1.8.7/m4/config-h.m4 b/parted-1.8.7/m4/config-h.m4
new file mode 100644
index 0000000..807d515
--- /dev/null
+++ b/parted-1.8.7/m4/config-h.m4
@@ -0,0 +1,13 @@
+# Say that -DHAVE_CONFIG_H is not needed.
+
+dnl Copyright (C) 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl Written by Paul Eggert.
+
+# This package's source files all include config.h unconditionally,
+# so there's no need to pass -DHAVE_CONFIG_H to the compiler.
+AC_DEFUN([gl_CONFIG_H],
+  [AC_CONFIG_COMMANDS_PRE([test "X$DEFS" = X-DHAVE_CONFIG_H && DEFS=])])
diff --git a/parted-1.8.7/m4/dirname.m4 b/parted-1.8.7/m4/dirname.m4
new file mode 100644
index 0000000..e35da96
--- /dev/null
+++ b/parted-1.8.7/m4/dirname.m4
@@ -0,0 +1,18 @@
+#serial 7   -*- autoconf -*-
+dnl Copyright (C) 2002-2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_DIRNAME],
+[
+  AC_LIBOBJ([basename])
+  AC_LIBOBJ([dirname])
+  AC_LIBOBJ([stripslash])
+
+  dnl Prerequisites of lib/dirname.h.
+  AC_REQUIRE([gl_AC_DOS])
+  AC_REQUIRE([gl_DOUBLE_SLASH_ROOT])
+
+  dnl No prerequisites of lib/basename.c, lib/dirname.c, lib/stripslash.c.
+])
diff --git a/parted-1.8.7/m4/dos.m4 b/parted-1.8.7/m4/dos.m4
new file mode 100644
index 0000000..dd59571
--- /dev/null
+++ b/parted-1.8.7/m4/dos.m4
@@ -0,0 +1,71 @@
+#serial 10   -*- autoconf -*-
+
+# Define some macros required for proper operation of code in lib/*.c
+# on MSDOS/Windows systems.
+
+# Copyright (C) 2000, 2001, 2004, 2005, 2006 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# From Jim Meyering.
+
+AC_DEFUN([gl_AC_DOS],
+  [
+    AC_CACHE_CHECK([whether system is Windows or MSDOS], [ac_cv_win_or_dos],
+      [
+	AC_TRY_COMPILE([],
+	[#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __CYGWIN__
+neither MSDOS nor Windows
+#endif],
+	[ac_cv_win_or_dos=yes],
+	[ac_cv_win_or_dos=no])
+      ])
+
+    if test x"$ac_cv_win_or_dos" = xyes; then
+      ac_fs_accepts_drive_letter_prefix=1
+      ac_fs_backslash_is_file_name_separator=1
+      AC_CACHE_CHECK([whether drive letter can start relative path],
+		     [ac_cv_drive_letter_can_be_relative],
+	[
+	  AC_TRY_COMPILE([],
+	  [#if defined __CYGWIN__
+drive letters are always absolute
+#endif],
+	  [ac_cv_drive_letter_can_be_relative=yes],
+	  [ac_cv_drive_letter_can_be_relative=no])
+	])
+      if test x"$ac_cv_drive_letter_can_be_relative" = xyes; then
+	ac_fs_drive_letter_can_be_relative=1
+      else
+	ac_fs_drive_letter_can_be_relative=0
+      fi
+    else
+      ac_fs_accepts_drive_letter_prefix=0
+      ac_fs_backslash_is_file_name_separator=0
+      ac_fs_drive_letter_can_be_relative=0
+    fi
+
+    AC_DEFINE_UNQUOTED([FILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX],
+      $ac_fs_accepts_drive_letter_prefix,
+      [Define on systems for which file names may have a so-called
+       `drive letter' prefix, define this to compute the length of that
+       prefix, including the colon.])
+
+    AH_VERBATIM(ISSLASH,
+    [#if FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR
+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
+#else
+# define ISSLASH(C) ((C) == '/')
+#endif])
+
+    AC_DEFINE_UNQUOTED([FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR],
+      $ac_fs_backslash_is_file_name_separator,
+      [Define if the backslash character may also serve as a file name
+       component separator.])
+
+    AC_DEFINE_UNQUOTED([FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE],
+      $ac_fs_drive_letter_can_be_relative,
+      [Define if a drive letter prefix denotes a relative path if it is
+       not followed by a file name component separator.])
+  ])
diff --git a/parted-1.8.7/m4/double-slash-root.m4 b/parted-1.8.7/m4/double-slash-root.m4
new file mode 100644
index 0000000..69d60d0
--- /dev/null
+++ b/parted-1.8.7/m4/double-slash-root.m4
@@ -0,0 +1,38 @@
+# double-slash-root.m4 serial 2   -*- Autoconf -*-
+dnl Copyright (C) 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_DOUBLE_SLASH_ROOT],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_CACHE_CHECK([whether // is distinct from /], [gl_cv_double_slash_root],
+    [ if test x"$cross_compiling" = xyes ; then
+	# When cross-compiling, there is no way to tell whether // is special
+	# short of a list of hosts.  However, the only known hosts to date
+	# that have a distinct // are Apollo DomainOS (too old to port to),
+	# Cygwin, and z/OS.  If anyone knows of another system for which // has
+	# special semantics and is distinct from /, please report it to
+	# <bug-gnulib@gnu.org>.
+	case $host in
+	  *-cygwin | i370-ibm-openedition)
+	    gl_cv_double_slash_root=yes ;;
+	  *)
+	    # Be optimistic and assume that / and // are the same when we
+	    # don't know.
+	    gl_cv_double_slash_root='unknown, assuming no' ;;
+	esac
+      else
+	set x `ls -di / //`
+	if test $[2] = $[4] && wc //dev/null >/dev/null 2>&1; then
+	  gl_cv_double_slash_root=no
+	else
+	  gl_cv_double_slash_root=yes
+	fi
+      fi])
+  if test "$gl_cv_double_slash_root" = yes; then
+    AC_DEFINE([DOUBLE_SLASH_IS_DISTINCT_ROOT], 1,
+      [Define to 1 if // is a file system root distinct from /.])
+  fi
+])
diff --git a/parted-1.8.7/m4/error.m4 b/parted-1.8.7/m4/error.m4
new file mode 100644
index 0000000..7c7746e
--- /dev/null
+++ b/parted-1.8.7/m4/error.m4
@@ -0,0 +1,22 @@
+#serial 11
+
+# Copyright (C) 1996, 1997, 1998, 2001, 2002, 2003, 2004 Free Software
+# Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_ERROR],
+[
+  AC_FUNC_ERROR_AT_LINE
+  dnl Note: AC_FUNC_ERROR_AT_LINE does AC_LIBSOURCES([error.h, error.c]).
+  gl_PREREQ_ERROR
+])
+
+# Prerequisites of lib/error.c.
+AC_DEFUN([gl_PREREQ_ERROR],
+[
+  AC_REQUIRE([AC_FUNC_STRERROR_R])
+  :
+])
diff --git a/parted-1.8.7/m4/exitfail.m4 b/parted-1.8.7/m4/exitfail.m4
new file mode 100644
index 0000000..b7a691e
--- /dev/null
+++ b/parted-1.8.7/m4/exitfail.m4
@@ -0,0 +1,13 @@
+# exitfail.m4 serial 6
+dnl Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_EXITFAIL],
+[
+  AC_LIBOBJ([exitfail])
+
+  dnl No prerequisites of lib/exitfail.c.
+  :
+])
diff --git a/parted-1.8.7/m4/extensions.m4 b/parted-1.8.7/m4/extensions.m4
new file mode 100644
index 0000000..143a9e5
--- /dev/null
+++ b/parted-1.8.7/m4/extensions.m4
@@ -0,0 +1,58 @@
+# serial 4  -*- Autoconf -*-
+# Enable extensions on systems that normally disable them.
+
+# Copyright (C) 2003, 2006 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from CVS
+# Autoconf.  Perhaps we can remove this once we can assume Autoconf
+# 2.61 or later everywhere, but since CVS Autoconf mutates rapidly
+# enough in this area it's likely we'll need to redefine
+# AC_USE_SYSTEM_EXTENSIONS for quite some time.
+
+# AC_USE_SYSTEM_EXTENSIONS
+# ------------------------
+# Enable extensions on systems that normally disable them,
+# typically due to standards-conformance issues.
+AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS],
+[
+  AC_BEFORE([$0], [AC_COMPILE_IFELSE])
+  AC_BEFORE([$0], [AC_RUN_IFELSE])
+
+  AC_REQUIRE([AC_GNU_SOURCE])
+  AC_REQUIRE([AC_AIX])
+  AC_REQUIRE([AC_MINIX])
+
+  AH_VERBATIM([__EXTENSIONS__],
+[/* Enable extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# undef _POSIX_PTHREAD_SEMANTICS
+#endif
+#ifndef _TANDEM_SOURCE
+# undef _TANDEM_SOURCE
+#endif])
+  AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__],
+    [ac_cv_safe_to_define___extensions__],
+    [AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM([
+#	  define __EXTENSIONS__ 1
+	  AC_INCLUDES_DEFAULT])],
+       [ac_cv_safe_to_define___extensions__=yes],
+       [ac_cv_safe_to_define___extensions__=no])])
+  test $ac_cv_safe_to_define___extensions__ = yes &&
+    AC_DEFINE([__EXTENSIONS__])
+  AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
+  AC_DEFINE([_TANDEM_SOURCE])
+])
+
+# gl_USE_SYSTEM_EXTENSIONS
+# ------------------------
+# Enable extensions on systems that normally disable them,
+# typically due to standards-conformance issues.
+AC_DEFUN([gl_USE_SYSTEM_EXTENSIONS],
+  [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])])
diff --git a/parted-1.8.7/m4/fpending.m4 b/parted-1.8.7/m4/fpending.m4
new file mode 100644
index 0000000..a073483
--- /dev/null
+++ b/parted-1.8.7/m4/fpending.m4
@@ -0,0 +1,78 @@
+#serial 10
+
+# Copyright (C) 2000, 2001, 2004, 2005, 2006 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+dnl From Jim Meyering
+dnl Using code from emacs, based on suggestions from Paul Eggert
+dnl and Ulrich Drepper.
+
+dnl Find out how to determine the number of pending output bytes on a stream.
+dnl glibc (2.1.93 and newer) and Solaris provide __fpending.  On other systems,
+dnl we have to grub around in the FILE struct.
+
+AC_DEFUN([gl_FUNC_FPENDING],
+[
+  AC_CHECK_HEADERS_ONCE(stdio_ext.h)
+  AC_REPLACE_FUNCS([__fpending])
+  fp_headers='
+#     include <stdio.h>
+#     if HAVE_STDIO_EXT_H
+#      include <stdio_ext.h>
+#     endif
+'
+  AC_CHECK_DECLS([__fpending], , , $fp_headers)
+  if test $ac_cv_func___fpending = no; then
+    AC_CACHE_CHECK(
+	      [how to determine the number of pending output bytes on a stream],
+		   ac_cv_sys_pending_output_n_bytes,
+      [
+	for ac_expr in						\
+								\
+	    '# glibc2'						\
+	    'fp->_IO_write_ptr - fp->_IO_write_base'		\
+								\
+	    '# traditional Unix'				\
+	    'fp->_ptr - fp->_base'				\
+								\
+	    '# BSD'						\
+	    'fp->_p - fp->_bf._base'				\
+								\
+	    '# SCO, Unixware'					\
+	    '(fp->__ptr ? fp->__ptr - fp->__base : 0)'		\
+								\
+	    '# old glibc?'					\
+	    'fp->__bufp - fp->__buffer'				\
+								\
+	    '# old glibc iostream?'				\
+	    'fp->_pptr - fp->_pbase'				\
+								\
+	    '# VMS'						\
+	    '(*fp)->_ptr - (*fp)->_base'			\
+								\
+	    '# e.g., DGUX R4.11; the info is not available'	\
+	    1							\
+	    ; do
+
+	  # Skip each embedded comment.
+	  case "$ac_expr" in '#'*) continue;; esac
+
+	  AC_TRY_COMPILE(
+	    [#include <stdio.h>
+	    ],
+	    [FILE *fp = stdin; (void) ($ac_expr);],
+	    fp_done=yes
+	  )
+	  test "$fp_done" = yes && break
+	done
+
+	ac_cv_sys_pending_output_n_bytes=$ac_expr
+      ]
+    )
+    AC_DEFINE_UNQUOTED(PENDING_OUTPUT_N_BYTES,
+      $ac_cv_sys_pending_output_n_bytes,
+      [the number of pending output bytes on stream `fp'])
+  fi
+])
diff --git a/parted-1.8.7/m4/free.m4 b/parted-1.8.7/m4/free.m4
new file mode 100644
index 0000000..566734b
--- /dev/null
+++ b/parted-1.8.7/m4/free.m4
@@ -0,0 +1,40 @@
+# Check whether free (NULL) is supposed to work.
+
+# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# Written by Paul Eggert.
+
+# We can't test for free (NULL) even at runtime, since it might
+# happen to "work" for our test program, but not in general.  So, be
+# conservative and use feature tests for relatively modern hosts,
+# where free (NULL) is known to work.  This costs a bit of
+# performance on some older hosts, but we can fix that later if
+# needed.
+
+AC_DEFUN([gl_FUNC_FREE],
+[
+  AC_CACHE_CHECK([whether free (NULL) is known to work],
+    [gl_cv_func_free],
+    [AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM(
+	  [[@%:@include <unistd.h>]],
+	  [[@%:@if _POSIX_VERSION < 199009L && \
+	        (defined unix || defined _unix || defined _unix_ \
+	         || defined __unix || defined __unix__)
+	      @%:@error "'free (NULL)' is not known to work"
+	    @%:@endif]])],
+       [gl_cv_func_free=yes],
+       [gl_cv_func_free=no])])
+
+  if test $gl_cv_func_free = no; then
+    AC_LIBOBJ(free)
+    AC_DEFINE(free, rpl_free,
+      [Define to rpl_free if the replacement function should be used.])
+  fi
+])
+
+# Prerequisites of lib/free.c.
+AC_DEFUN([gl_PREREQ_FREE], [:])
diff --git a/parted-1.8.7/m4/getopt.m4 b/parted-1.8.7/m4/getopt.m4
new file mode 100644
index 0000000..c0a73b2
--- /dev/null
+++ b/parted-1.8.7/m4/getopt.m4
@@ -0,0 +1,83 @@
+# getopt.m4 serial 13
+dnl Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# The getopt module assume you want GNU getopt, with getopt_long etc,
+# rather than vanilla POSIX getopt.  This means your code should
+# always include <getopt.h> for the getopt prototypes.
+
+AC_DEFUN([gl_GETOPT_SUBSTITUTE],
+[
+  AC_LIBOBJ([getopt])
+  AC_LIBOBJ([getopt1])
+  gl_GETOPT_SUBSTITUTE_HEADER
+  gl_PREREQ_GETOPT
+])
+
+AC_DEFUN([gl_GETOPT_SUBSTITUTE_HEADER],
+[
+  GETOPT_H=getopt.h
+  AC_DEFINE([__GETOPT_PREFIX], [[rpl_]],
+    [Define to rpl_ if the getopt replacement functions and variables
+     should be used.])
+  AC_SUBST([GETOPT_H])
+])
+
+AC_DEFUN([gl_GETOPT_CHECK_HEADERS],
+[
+  if test -z "$GETOPT_H"; then
+    AC_CHECK_HEADERS([getopt.h], [], [GETOPT_H=getopt.h])
+  fi
+
+  if test -z "$GETOPT_H"; then
+    AC_CHECK_FUNCS([getopt_long_only], [], [GETOPT_H=getopt.h])
+  fi
+
+  dnl BSD getopt_long uses an incompatible method to reset option processing,
+  dnl and (as of 2004-10-15) mishandles optional option-arguments.
+  if test -z "$GETOPT_H"; then
+    AC_CHECK_DECL([optreset], [GETOPT_H=getopt.h], [], [#include <getopt.h>])
+  fi
+
+  dnl Solaris 10 getopt doesn't handle `+' as a leading character in an
+  dnl option string (as of 2005-05-05).
+  if test -z "$GETOPT_H"; then
+    AC_CACHE_CHECK([for working GNU getopt function], [gl_cv_func_gnu_getopt],
+      [AC_RUN_IFELSE(
+	[AC_LANG_PROGRAM([#include <getopt.h>],
+	   [[
+	     char *myargv[3];
+	     myargv[0] = "conftest";
+	     myargv[1] = "-+";
+	     myargv[2] = 0;
+	     return getopt (2, myargv, "+a") != '?';
+	   ]])],
+	[gl_cv_func_gnu_getopt=yes],
+	[gl_cv_func_gnu_getopt=no],
+	[dnl cross compiling - pessimistically guess based on decls
+	 dnl Solaris 10 getopt doesn't handle `+' as a leading character in an
+	 dnl option string (as of 2005-05-05).
+	 AC_CHECK_DECL([getopt_clip],
+	   [gl_cv_func_gnu_getopt=no], [gl_cv_func_gnu_getopt=yes],
+	   [#include <getopt.h>])])])
+    if test "$gl_cv_func_gnu_getopt" = "no"; then
+      GETOPT_H=getopt.h
+    fi
+  fi
+])
+
+AC_DEFUN([gl_GETOPT_IFELSE],
+[
+  AC_REQUIRE([gl_GETOPT_CHECK_HEADERS])
+  AS_IF([test -n "$GETOPT_H"], [$1], [$2])
+])
+
+AC_DEFUN([gl_GETOPT], [gl_GETOPT_IFELSE([gl_GETOPT_SUBSTITUTE])])
+
+# Prerequisites of lib/getopt*.
+AC_DEFUN([gl_PREREQ_GETOPT],
+[
+  AC_CHECK_DECLS_ONCE([getenv])
+])
diff --git a/parted-1.8.7/m4/gettext.m4 b/parted-1.8.7/m4/gettext.m4
new file mode 100644
index 0000000..4ffe433
--- /dev/null
+++ b/parted-1.8.7/m4/gettext.m4
@@ -0,0 +1,420 @@
+# gettext.m4 serial 59 (gettext-0.16.1)
+dnl Copyright (C) 1995-2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2006.
+
+dnl Macro to add for using GNU gettext.
+
+dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
+dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
+dnl    default (if it is not specified or empty) is 'no-libtool'.
+dnl    INTLSYMBOL should be 'external' for packages with no intl directory,
+dnl    and 'no-libtool' or 'use-libtool' for packages with an intl directory.
+dnl    If INTLSYMBOL is 'use-libtool', then a libtool library
+dnl    $(top_builddir)/intl/libintl.la will be created (shared and/or static,
+dnl    depending on --{enable,disable}-{shared,static} and on the presence of
+dnl    AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
+dnl    $(top_builddir)/intl/libintl.a will be created.
+dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
+dnl    implementations (in libc or libintl) without the ngettext() function
+dnl    will be ignored.  If NEEDSYMBOL is specified and is
+dnl    'need-formatstring-macros', then GNU gettext implementations that don't
+dnl    support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
+dnl INTLDIR is used to find the intl libraries.  If empty,
+dnl    the value `$(top_builddir)/intl/' is used.
+dnl
+dnl The result of the configuration is one of three cases:
+dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
+dnl    and used.
+dnl    Catalog format: GNU --> install in $(datadir)
+dnl    Catalog extension: .mo after installation, .gmo in source tree
+dnl 2) GNU gettext has been found in the system's C library.
+dnl    Catalog format: GNU --> install in $(datadir)
+dnl    Catalog extension: .mo after installation, .gmo in source tree
+dnl 3) No internationalization, always use English msgid.
+dnl    Catalog format: none
+dnl    Catalog extension: none
+dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
+dnl The use of .gmo is historical (it was needed to avoid overwriting the
+dnl GNU format catalogs when building on a platform with an X/Open gettext),
+dnl but we keep it in order not to force irrelevant filename changes on the
+dnl maintainers.
+dnl
+AC_DEFUN([AM_GNU_GETTEXT],
+[
+  dnl Argument checking.
+  ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
+    [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
+])])])])])
+  ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
+    [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
+])])])])
+  define([gt_included_intl],
+    ifelse([$1], [external],
+      ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]),
+      [yes]))
+  define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], []))
+  gt_NEEDS_INIT
+  AM_GNU_GETTEXT_NEED([$2])
+
+  AC_REQUIRE([AM_PO_SUBDIRS])dnl
+  ifelse(gt_included_intl, yes, [
+    AC_REQUIRE([AM_INTL_SUBDIR])dnl
+  ])
+
+  dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  AC_REQUIRE([AC_LIB_RPATH])
+
+  dnl Sometimes libintl requires libiconv, so first search for libiconv.
+  dnl Ideally we would do this search only after the
+  dnl      if test "$USE_NLS" = "yes"; then
+  dnl        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
+  dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
+  dnl the configure script would need to contain the same shell code
+  dnl again, outside any 'if'. There are two solutions:
+  dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
+  dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
+  dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
+  dnl documented, we avoid it.
+  ifelse(gt_included_intl, yes, , [
+    AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
+  ])
+
+  dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation.
+  gt_INTL_MACOSX
+
+  dnl Set USE_NLS.
+  AC_REQUIRE([AM_NLS])
+
+  ifelse(gt_included_intl, yes, [
+    BUILD_INCLUDED_LIBINTL=no
+    USE_INCLUDED_LIBINTL=no
+  ])
+  LIBINTL=
+  LTLIBINTL=
+  POSUB=
+
+  dnl Add a version number to the cache macros.
+  case " $gt_needs " in
+    *" need-formatstring-macros "*) gt_api_version=3 ;;
+    *" need-ngettext "*) gt_api_version=2 ;;
+    *) gt_api_version=1 ;;
+  esac
+  gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc"
+  gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl"
+
+  dnl If we use NLS figure out what method
+  if test "$USE_NLS" = "yes"; then
+    gt_use_preinstalled_gnugettext=no
+    ifelse(gt_included_intl, yes, [
+      AC_MSG_CHECKING([whether included gettext is requested])
+      AC_ARG_WITH(included-gettext,
+        [  --with-included-gettext use the GNU gettext library included here],
+        nls_cv_force_use_gnu_gettext=$withval,
+        nls_cv_force_use_gnu_gettext=no)
+      AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
+
+      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
+      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
+    ])
+        dnl User does not insist on using GNU NLS library.  Figure out what
+        dnl to use.  If GNU gettext is available we use this.  Else we have
+        dnl to fall back to GNU NLS library.
+
+        if test $gt_api_version -ge 3; then
+          gt_revision_test_code='
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+'
+        else
+          gt_revision_test_code=
+        fi
+        if test $gt_api_version -ge 2; then
+          gt_expression_test_code=' + * ngettext ("", "", 0)'
+        else
+          gt_expression_test_code=
+        fi
+
+        AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc],
+         [AC_TRY_LINK([#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern int *_nl_domain_bindings;],
+            [bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings],
+            [eval "$gt_func_gnugettext_libc=yes"],
+            [eval "$gt_func_gnugettext_libc=no"])])
+
+        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
+          dnl Sometimes libintl requires libiconv, so first search for libiconv.
+          ifelse(gt_included_intl, yes, , [
+            AM_ICONV_LINK
+          ])
+          dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
+          dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
+          dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
+          dnl even if libiconv doesn't exist.
+          AC_LIB_LINKFLAGS_BODY([intl])
+          AC_CACHE_CHECK([for GNU gettext in libintl],
+            [$gt_func_gnugettext_libintl],
+           [gt_save_CPPFLAGS="$CPPFLAGS"
+            CPPFLAGS="$CPPFLAGS $INCINTL"
+            gt_save_LIBS="$LIBS"
+            LIBS="$LIBS $LIBINTL"
+            dnl Now see whether libintl exists and does not depend on libiconv.
+            AC_TRY_LINK([#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);],
+              [bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")],
+              [eval "$gt_func_gnugettext_libintl=yes"],
+              [eval "$gt_func_gnugettext_libintl=no"])
+            dnl Now see whether libintl exists and depends on libiconv.
+            if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
+              LIBS="$LIBS $LIBICONV"
+              AC_TRY_LINK([#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);],
+                [bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")],
+               [LIBINTL="$LIBINTL $LIBICONV"
+                LTLIBINTL="$LTLIBINTL $LTLIBICONV"
+                eval "$gt_func_gnugettext_libintl=yes"
+               ])
+            fi
+            CPPFLAGS="$gt_save_CPPFLAGS"
+            LIBS="$gt_save_LIBS"])
+        fi
+
+        dnl If an already present or preinstalled GNU gettext() is found,
+        dnl use it.  But if this macro is used in GNU gettext, and GNU
+        dnl gettext is already preinstalled in libintl, we update this
+        dnl libintl.  (Cf. the install rule in intl/Makefile.in.)
+        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
+           || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \
+                && test "$PACKAGE" != gettext-runtime \
+                && test "$PACKAGE" != gettext-tools; }; then
+          gt_use_preinstalled_gnugettext=yes
+        else
+          dnl Reset the values set by searching for libintl.
+          LIBINTL=
+          LTLIBINTL=
+          INCINTL=
+        fi
+
+    ifelse(gt_included_intl, yes, [
+        if test "$gt_use_preinstalled_gnugettext" != "yes"; then
+          dnl GNU gettext is not found in the C library.
+          dnl Fall back on included GNU gettext library.
+          nls_cv_use_gnu_gettext=yes
+        fi
+      fi
+
+      if test "$nls_cv_use_gnu_gettext" = "yes"; then
+        dnl Mark actions used to generate GNU NLS library.
+        BUILD_INCLUDED_LIBINTL=yes
+        USE_INCLUDED_LIBINTL=yes
+        LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD"
+        LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD"
+        LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
+      fi
+
+      CATOBJEXT=
+      if test "$gt_use_preinstalled_gnugettext" = "yes" \
+         || test "$nls_cv_use_gnu_gettext" = "yes"; then
+        dnl Mark actions to use GNU gettext tools.
+        CATOBJEXT=.gmo
+      fi
+    ])
+
+    if test -n "$INTL_MACOSX_LIBS"; then
+      if test "$gt_use_preinstalled_gnugettext" = "yes" \
+         || test "$nls_cv_use_gnu_gettext" = "yes"; then
+        dnl Some extra flags are needed during linking.
+        LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
+        LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
+      fi
+    fi
+
+    if test "$gt_use_preinstalled_gnugettext" = "yes" \
+       || test "$nls_cv_use_gnu_gettext" = "yes"; then
+      AC_DEFINE(ENABLE_NLS, 1,
+        [Define to 1 if translation of program messages to the user's native language
+   is requested.])
+    else
+      USE_NLS=no
+    fi
+  fi
+
+  AC_MSG_CHECKING([whether to use NLS])
+  AC_MSG_RESULT([$USE_NLS])
+  if test "$USE_NLS" = "yes"; then
+    AC_MSG_CHECKING([where the gettext function comes from])
+    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+      if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
+        gt_source="external libintl"
+      else
+        gt_source="libc"
+      fi
+    else
+      gt_source="included intl directory"
+    fi
+    AC_MSG_RESULT([$gt_source])
+  fi
+
+  if test "$USE_NLS" = "yes"; then
+
+    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+      if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
+        AC_MSG_CHECKING([how to link with libintl])
+        AC_MSG_RESULT([$LIBINTL])
+        AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
+      fi
+
+      dnl For backward compatibility. Some packages may be using this.
+      AC_DEFINE(HAVE_GETTEXT, 1,
+       [Define if the GNU gettext() function is already present or preinstalled.])
+      AC_DEFINE(HAVE_DCGETTEXT, 1,
+       [Define if the GNU dcgettext() function is already present or preinstalled.])
+    fi
+
+    dnl We need to process the po/ directory.
+    POSUB=po
+  fi
+
+  ifelse(gt_included_intl, yes, [
+    dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
+    dnl to 'yes' because some of the testsuite requires it.
+    if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
+      BUILD_INCLUDED_LIBINTL=yes
+    fi
+
+    dnl Make all variables we use known to autoconf.
+    AC_SUBST(BUILD_INCLUDED_LIBINTL)
+    AC_SUBST(USE_INCLUDED_LIBINTL)
+    AC_SUBST(CATOBJEXT)
+
+    dnl For backward compatibility. Some configure.ins may be using this.
+    nls_cv_header_intl=
+    nls_cv_header_libgt=
+
+    dnl For backward compatibility. Some Makefiles may be using this.
+    DATADIRNAME=share
+    AC_SUBST(DATADIRNAME)
+
+    dnl For backward compatibility. Some Makefiles may be using this.
+    INSTOBJEXT=.mo
+    AC_SUBST(INSTOBJEXT)
+
+    dnl For backward compatibility. Some Makefiles may be using this.
+    GENCAT=gencat
+    AC_SUBST(GENCAT)
+
+    dnl For backward compatibility. Some Makefiles may be using this.
+    INTLOBJS=
+    if test "$USE_INCLUDED_LIBINTL" = yes; then
+      INTLOBJS="\$(GETTOBJS)"
+    fi
+    AC_SUBST(INTLOBJS)
+
+    dnl Enable libtool support if the surrounding package wishes it.
+    INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
+    AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
+  ])
+
+  dnl For backward compatibility. Some Makefiles may be using this.
+  INTLLIBS="$LIBINTL"
+  AC_SUBST(INTLLIBS)
+
+  dnl Make all documented variables known to autoconf.
+  AC_SUBST(LIBINTL)
+  AC_SUBST(LTLIBINTL)
+  AC_SUBST(POSUB)
+])
+
+
+dnl Checks for special options needed on MacOS X.
+dnl Defines INTL_MACOSX_LIBS.
+AC_DEFUN([gt_INTL_MACOSX],
+[
+  dnl Check for API introduced in MacOS X 10.2.
+  AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
+    gt_cv_func_CFPreferencesCopyAppValue,
+    [gt_save_LIBS="$LIBS"
+     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+     AC_TRY_LINK([#include <CoreFoundation/CFPreferences.h>],
+       [CFPreferencesCopyAppValue(NULL, NULL)],
+       [gt_cv_func_CFPreferencesCopyAppValue=yes],
+       [gt_cv_func_CFPreferencesCopyAppValue=no])
+     LIBS="$gt_save_LIBS"])
+  if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
+    AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1,
+      [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
+  fi
+  dnl Check for API introduced in MacOS X 10.3.
+  AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent,
+    [gt_save_LIBS="$LIBS"
+     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+     AC_TRY_LINK([#include <CoreFoundation/CFLocale.h>], [CFLocaleCopyCurrent();],
+       [gt_cv_func_CFLocaleCopyCurrent=yes],
+       [gt_cv_func_CFLocaleCopyCurrent=no])
+     LIBS="$gt_save_LIBS"])
+  if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+    AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1,
+      [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
+  fi
+  INTL_MACOSX_LIBS=
+  if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+    INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
+  fi
+  AC_SUBST([INTL_MACOSX_LIBS])
+])
+
+
+dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized.
+m4_define([gt_NEEDS_INIT],
+[
+  m4_divert_text([DEFAULTS], [gt_needs=])
+  m4_define([gt_NEEDS_INIT], [])
+])
+
+
+dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL])
+AC_DEFUN([AM_GNU_GETTEXT_NEED],
+[
+  m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"])
+])
+
+
+dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
+AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
+	      AC_DEFUN([gl_LOCK_EARLY], [])
diff --git a/parted-1.8.7/m4/glibc21.m4 b/parted-1.8.7/m4/glibc21.m4
new file mode 100644
index 0000000..d95fd98
--- /dev/null
+++ b/parted-1.8.7/m4/glibc21.m4
@@ -0,0 +1,30 @@
+# glibc21.m4 serial 3
+dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# Test for the GNU C Library, version 2.1 or newer.
+# From Bruno Haible.
+
+AC_DEFUN([gl_GLIBC21],
+  [
+    AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
+      ac_cv_gnu_library_2_1,
+      [AC_EGREP_CPP([Lucky GNU user],
+	[
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
+  Lucky GNU user
+ #endif
+#endif
+	],
+	ac_cv_gnu_library_2_1=yes,
+	ac_cv_gnu_library_2_1=no)
+      ]
+    )
+    AC_SUBST(GLIBC21)
+    GLIBC21="$ac_cv_gnu_library_2_1"
+  ]
+)
diff --git a/parted-1.8.7/m4/gnulib-common.m4 b/parted-1.8.7/m4/gnulib-common.m4
new file mode 100644
index 0000000..5398010
--- /dev/null
+++ b/parted-1.8.7/m4/gnulib-common.m4
@@ -0,0 +1,22 @@
+# gnulib-common.m4 serial 2
+dnl Copyright (C) 2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# gl_MODULE_INDICATOR([modulename])
+# defines a C macro indicating the presence of the given module.
+AC_DEFUN([gl_MODULE_INDICATOR],
+[
+  AC_DEFINE([GNULIB_]translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [1],
+    [Define to 1 when using the gnulib module ]$1[.])
+])
+
+# AC_PROG_MKDIR_P
+# is a backport of autoconf-2.60's AC_PROG_MKDIR_P.
+# Remove this macro when we can assume autoconf >= 2.60.
+m4_ifdef([AC_PROG_MKDIR_P], [], [
+  AC_DEFUN([AC_PROG_MKDIR_P],
+    [AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
+     MKDIR_P='$(mkdir_p)'
+     AC_SUBST([MKDIR_P])])])
diff --git a/parted-1.8.7/m4/gnulib-comp.m4 b/parted-1.8.7/m4/gnulib-comp.m4
new file mode 100644
index 0000000..982083a
--- /dev/null
+++ b/parted-1.8.7/m4/gnulib-comp.m4
@@ -0,0 +1,312 @@
+# -*- buffer-read-only: t -*- vi: set ro:
+# DO NOT EDIT! GENERATED AUTOMATICALLY!
+# DO NOT EDIT! GENERATED AUTOMATICALLY!
+# Copyright (C) 2004-2007 Free Software Foundation, Inc.
+#
+# This file is free software, distributed under the terms of the GNU
+# General Public License.  As a special exception to the GNU General
+# Public License, this file may be distributed as part of a program
+# that contains a configuration script generated by Autoconf, under
+# the same distribution terms as the rest of that program.
+#
+# Generated by gnulib-tool.
+#
+# This file represents the compiled summary of the specification in
+# gnulib-cache.m4. It lists the computed macro invocations that need
+# to be invoked from configure.ac.
+# In projects using CVS, this file can be treated like other built files.
+
+
+# This macro should be invoked from ./configure.ac, in the section
+# "Checks for programs", right after AC_PROG_CC, and certainly before
+# any checks for libraries, header files, types and library functions.
+AC_DEFUN([gl_EARLY],
+[
+  m4_pattern_forbid([^gl_[A-Z]])dnl the gnulib macro namespace
+  m4_pattern_allow([^gl_ES$])dnl a valid locale name
+  m4_pattern_allow([^gl_LIBOBJS$])dnl a variable
+  m4_pattern_allow([^gl_LTLIBOBJS$])dnl a variable
+  AC_REQUIRE([AC_PROG_RANLIB])
+  AC_REQUIRE([AC_GNU_SOURCE])
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  dnl Some compilers (e.g., AIX 5.3 cc) need to be in c99 mode
+  dnl for the builtin va_copy to work.  With Autoconf 2.60 or later,
+  dnl AC_PROG_CC_STDC arranges for this.  With older Autoconf AC_PROG_CC_STDC
+  dnl shouldn't hurt, though installers are on their own to set c99 mode.
+  AC_REQUIRE([AC_PROG_CC_STDC])
+])
+
+# This macro should be invoked from ./configure.ac, in the section
+# "Check for header files, types and library functions".
+AC_DEFUN([gl_INIT],
+[
+  m4_pushdef([AC_LIBOBJ], m4_defn([gl_LIBOBJ]))
+  m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gl_REPLACE_FUNCS]))
+  m4_pushdef([AC_LIBSOURCES], m4_defn([gl_LIBSOURCES]))
+  AM_CONDITIONAL([GL_COND_LIBTOOL], [true])
+  gl_cond_libtool=true
+  gl_source_base='lib'
+changequote(,)dnl
+LTALLOCA=`echo "$ALLOCA" | sed 's/\.[^.]* /.lo /g;s/\.[^.]*$/.lo/'`
+changequote([, ])dnl
+AC_SUBST([LTALLOCA])
+  gl_FUNC_ALLOCA
+  gl_ASSERT
+  gl_FUNC_ATEXIT
+  AC_FUNC_CALLOC
+  gl_CLOSE_STREAM
+  gl_MODULE_INDICATOR([close-stream])
+  gl_CLOSEOUT
+  gl_CONFIG_H
+  gl_DIRNAME
+  gl_DOUBLE_SLASH_ROOT
+  gl_ERROR
+  gl_EXITFAIL
+  gl_FUNC_FPENDING
+  gl_FUNC_FREE
+  gl_GETOPT
+  dnl you must add AM_GNU_GETTEXT([external]) or similar to configure.ac.
+  AM_GNU_GETTEXT_VERSION([0.16.1])
+  AC_SUBST([LIBINTL])
+  AC_SUBST([LTLIBINTL])
+  gl_INLINE
+  gl_INTTYPES_H
+  gl_IGNORE_UNUSED_LIBRARIES
+  gl_LOCALCHARSET
+  gl_LONG_OPTIONS
+  AC_FUNC_MALLOC
+  gl_FUNC_MEMCHR
+  gl_FUNC_MEMCMP
+  gl_FUNC_MEMCPY
+  gl_FUNC_MEMMOVE
+  gl_FUNC_MEMSET
+  gl_QUOTEARG
+  AC_FUNC_REALLOC
+  gl_REGEX
+  gl_FUNC_RENAME
+  gl_FUNC_RPMATCH
+  gl_SAFE_READ
+  gl_SAFE_WRITE
+  gt_TYPE_SSIZE_T
+  gl_STDARG_H
+  AM_STDBOOL_H
+  gl_STDINT_H
+  gl_STDLIB_H
+  gl_FUNC_STRCSPN
+  gl_HEADER_STRING_H
+  gl_FUNC_STRNDUP
+  gl_STRING_MODULE_INDICATOR([strndup])
+  gl_FUNC_STRNLEN
+  gl_STRING_MODULE_INDICATOR([strnlen])
+  gl_FUNC_STRTOD
+  gl_FUNC_STRTOL
+  gl_UNISTD_H
+  gl_FUNC_UTIME
+  gl_WCHAR_H
+  gl_WCTYPE_H
+  gl_XALLOC
+  gl_XSTRNDUP
+  m4_popdef([AC_LIBSOURCES])
+  m4_popdef([AC_REPLACE_FUNCS])
+  m4_popdef([AC_LIBOBJ])
+  AC_CONFIG_COMMANDS_PRE([
+    gl_libobjs=
+    gl_ltlibobjs=
+    if test -n "$gl_LIBOBJS"; then
+      # Remove the extension.
+      sed_drop_objext='s/\.o$//;s/\.obj$//'
+      for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed "$sed_drop_objext" | sort | uniq`; do
+        gl_libobjs="$gl_libobjs $i.$ac_objext"
+        gl_ltlibobjs="$gl_ltlibobjs $i.lo"
+      done
+    fi
+    AC_SUBST([gl_LIBOBJS], [$gl_libobjs])
+    AC_SUBST([gl_LTLIBOBJS], [$gl_ltlibobjs])
+  ])
+])
+
+# Like AC_LIBOBJ, except that the module name goes
+# into gl_LIBOBJS instead of into LIBOBJS.
+AC_DEFUN([gl_LIBOBJ],
+  [gl_LIBOBJS="$gl_LIBOBJS $1.$ac_objext"])
+
+# Like AC_REPLACE_FUNCS, except that the module name goes
+# into gl_LIBOBJS instead of into LIBOBJS.
+AC_DEFUN([gl_REPLACE_FUNCS],
+  [AC_CHECK_FUNCS([$1], , [gl_LIBOBJ($ac_func)])])
+
+# Like AC_LIBSOURCES, except that it does nothing.
+# We rely on EXTRA_lib..._SOURCES instead.
+AC_DEFUN([gl_LIBSOURCES],
+  [])
+
+# This macro records the list of files which have been installed by
+# gnulib-tool and may be removed by future gnulib-tool invocations.
+AC_DEFUN([gl_FILE_LIST], [
+  build-aux/announce-gen
+  build-aux/config.rpath
+  build-aux/gnupload
+  build-aux/link-warning.h
+  doc/fdl.texi
+  lib/__fpending.c
+  lib/__fpending.h
+  lib/alloca.c
+  lib/alloca_.h
+  lib/atexit.c
+  lib/basename.c
+  lib/calloc.c
+  lib/close-stream.c
+  lib/close-stream.h
+  lib/closeout.c
+  lib/closeout.h
+  lib/config.charset
+  lib/dirname.c
+  lib/dirname.h
+  lib/error.c
+  lib/error.h
+  lib/exitfail.c
+  lib/exitfail.h
+  lib/free.c
+  lib/full-write.c
+  lib/full-write.h
+  lib/getopt.c
+  lib/getopt1.c
+  lib/getopt_.h
+  lib/getopt_int.h
+  lib/gettext.h
+  lib/inttypes_.h
+  lib/localcharset.c
+  lib/localcharset.h
+  lib/long-options.c
+  lib/long-options.h
+  lib/malloc.c
+  lib/memchr.c
+  lib/memcmp.c
+  lib/memcpy.c
+  lib/memmove.c
+  lib/memset.c
+  lib/quotearg.c
+  lib/quotearg.h
+  lib/realloc.c
+  lib/ref-add.sin
+  lib/ref-del.sin
+  lib/regcomp.c
+  lib/regex.c
+  lib/regex.h
+  lib/regex_internal.c
+  lib/regex_internal.h
+  lib/regexec.c
+  lib/rename.c
+  lib/rpmatch.c
+  lib/safe-read.c
+  lib/safe-read.h
+  lib/safe-write.c
+  lib/safe-write.h
+  lib/stdbool_.h
+  lib/stdint_.h
+  lib/stdlib_.h
+  lib/strcspn.c
+  lib/string_.h
+  lib/stripslash.c
+  lib/strndup.c
+  lib/strnlen.c
+  lib/strtod.c
+  lib/strtol.c
+  lib/unistd_.h
+  lib/utime.c
+  lib/version-etc-fsf.c
+  lib/version-etc.c
+  lib/version-etc.h
+  lib/wchar_.h
+  lib/wctype_.h
+  lib/xalloc-die.c
+  lib/xalloc.h
+  lib/xmalloc.c
+  lib/xstrndup.c
+  lib/xstrndup.h
+  m4/absolute-header.m4
+  m4/alloca.m4
+  m4/assert.m4
+  m4/atexit.m4
+  m4/calloc.m4
+  m4/close-stream.m4
+  m4/closeout.m4
+  m4/codeset.m4
+  m4/config-h.m4
+  m4/dirname.m4
+  m4/dos.m4
+  m4/double-slash-root.m4
+  m4/error.m4
+  m4/exitfail.m4
+  m4/extensions.m4
+  m4/fpending.m4
+  m4/free.m4
+  m4/getopt.m4
+  m4/gettext.m4
+  m4/glibc2.m4
+  m4/glibc21.m4
+  m4/gnulib-common.m4
+  m4/iconv.m4
+  m4/inline.m4
+  m4/intdiv0.m4
+  m4/intl.m4
+  m4/intldir.m4
+  m4/intmax.m4
+  m4/inttypes-pri.m4
+  m4/inttypes.m4
+  m4/inttypes_h.m4
+  m4/lcmessage.m4
+  m4/lib-ignore.m4
+  m4/lib-ld.m4
+  m4/lib-link.m4
+  m4/lib-prefix.m4
+  m4/localcharset.m4
+  m4/lock.m4
+  m4/long-options.m4
+  m4/longlong.m4
+  m4/mbrtowc.m4
+  m4/mbstate_t.m4
+  m4/memchr.m4
+  m4/memcmp.m4
+  m4/memcpy.m4
+  m4/memmove.m4
+  m4/memset.m4
+  m4/nls.m4
+  m4/po.m4
+  m4/printf-posix.m4
+  m4/progtest.m4
+  m4/quotearg.m4
+  m4/regex.m4
+  m4/rename.m4
+  m4/rpmatch.m4
+  m4/safe-read.m4
+  m4/safe-write.m4
+  m4/size_max.m4
+  m4/ssize_t.m4
+  m4/stdarg.m4
+  m4/stdbool.m4
+  m4/stdint.m4
+  m4/stdint_h.m4
+  m4/stdlib_h.m4
+  m4/strcspn.m4
+  m4/string_h.m4
+  m4/strndup.m4
+  m4/strnlen.m4
+  m4/strtod.m4
+  m4/strtol.m4
+  m4/uintmax_t.m4
+  m4/ulonglong.m4
+  m4/unistd_h.m4
+  m4/utimbuf.m4
+  m4/utime.m4
+  m4/utimes-null.m4
+  m4/utimes.m4
+  m4/visibility.m4
+  m4/wchar.m4
+  m4/wchar_t.m4
+  m4/wctype.m4
+  m4/wint_t.m4
+  m4/xalloc.m4
+  m4/xsize.m4
+  m4/xstrndup.m4
+])
diff --git a/parted-1.8.7/m4/iconv.m4 b/parted-1.8.7/m4/iconv.m4
new file mode 100644
index 0000000..32239e3
--- /dev/null
+++ b/parted-1.8.7/m4/iconv.m4
@@ -0,0 +1,179 @@
+# iconv.m4 serial AM5 (gettext-0.16.2)
+dnl Copyright (C) 2000-2002, 2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
+[
+  dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  AC_REQUIRE([AC_LIB_RPATH])
+
+  dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
+  dnl accordingly.
+  AC_LIB_LINKFLAGS_BODY([iconv])
+])
+
+AC_DEFUN([AM_ICONV_LINK],
+[
+  dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
+  dnl those with the standalone portable GNU libiconv installed).
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+  dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
+  dnl accordingly.
+  AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
+
+  dnl Add $INCICONV to CPPFLAGS before performing the following checks,
+  dnl because if the user has installed libiconv and not disabled its use
+  dnl via --without-libiconv-prefix, he wants to use it. The first
+  dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
+  am_save_CPPFLAGS="$CPPFLAGS"
+  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
+
+  AC_CACHE_CHECK([for iconv], am_cv_func_iconv, [
+    am_cv_func_iconv="no, consider installing GNU libiconv"
+    am_cv_lib_iconv=no
+    AC_TRY_LINK([#include <stdlib.h>
+#include <iconv.h>],
+      [iconv_t cd = iconv_open("","");
+       iconv(cd,NULL,NULL,NULL,NULL);
+       iconv_close(cd);],
+      am_cv_func_iconv=yes)
+    if test "$am_cv_func_iconv" != yes; then
+      am_save_LIBS="$LIBS"
+      LIBS="$LIBS $LIBICONV"
+      AC_TRY_LINK([#include <stdlib.h>
+#include <iconv.h>],
+        [iconv_t cd = iconv_open("","");
+         iconv(cd,NULL,NULL,NULL,NULL);
+         iconv_close(cd);],
+        am_cv_lib_iconv=yes
+        am_cv_func_iconv=yes)
+      LIBS="$am_save_LIBS"
+    fi
+  ])
+  if test "$am_cv_func_iconv" = yes; then
+    AC_CACHE_CHECK([for working iconv], am_cv_func_iconv_works, [
+      dnl This tests against bugs in AIX 5.1 and HP-UX 11.11.
+      am_save_LIBS="$LIBS"
+      if test $am_cv_lib_iconv = yes; then
+        LIBS="$LIBS $LIBICONV"
+      fi
+      AC_TRY_RUN([
+#include <iconv.h>
+#include <string.h>
+int main ()
+{
+  /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
+     returns.  */
+  {
+    iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
+    if (cd_utf8_to_88591 != (iconv_t)(-1))
+      {
+        static const char input[] = "\342\202\254"; /* EURO SIGN */
+        char buf[10];
+        const char *inptr = input;
+        size_t inbytesleft = strlen (input);
+        char *outptr = buf;
+        size_t outbytesleft = sizeof (buf);
+        size_t res = iconv (cd_utf8_to_88591,
+                            (char **) &inptr, &inbytesleft,
+                            &outptr, &outbytesleft);
+        if (res == 0)
+          return 1;
+      }
+  }
+#if 0 /* This bug could be worked around by the caller.  */
+  /* Test against HP-UX 11.11 bug: Positive return value instead of 0.  */
+  {
+    iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
+    if (cd_88591_to_utf8 != (iconv_t)(-1))
+      {
+        static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+        char buf[50];
+        const char *inptr = input;
+        size_t inbytesleft = strlen (input);
+        char *outptr = buf;
+        size_t outbytesleft = sizeof (buf);
+        size_t res = iconv (cd_88591_to_utf8,
+                            (char **) &inptr, &inbytesleft,
+                            &outptr, &outbytesleft);
+        if ((int)res > 0)
+          return 1;
+      }
+  }
+#endif
+  /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
+     provided.  */
+  if (/* Try standardized names.  */
+      iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
+      /* Try IRIX, OSF/1 names.  */
+      && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
+      /* Try AIX names.  */
+      && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
+      /* Try HP-UX names.  */
+      && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
+  return 0;
+}], [am_cv_func_iconv_works=yes], [am_cv_func_iconv_works=no],
+        [case "$host_os" in
+           aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+           *)            am_cv_func_iconv_works="guessing yes" ;;
+         esac])
+      LIBS="$am_save_LIBS"
+    ])
+    case "$am_cv_func_iconv_works" in
+      *no) am_func_iconv=no am_cv_lib_iconv=no ;;
+      *)   am_func_iconv=yes ;;
+    esac
+  else
+    am_func_iconv=no am_cv_lib_iconv=no
+  fi
+  if test "$am_func_iconv" = yes; then
+    AC_DEFINE(HAVE_ICONV, 1,
+      [Define if you have the iconv() function and it works.])
+  fi
+  if test "$am_cv_lib_iconv" = yes; then
+    AC_MSG_CHECKING([how to link with libiconv])
+    AC_MSG_RESULT([$LIBICONV])
+  else
+    dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
+    dnl either.
+    CPPFLAGS="$am_save_CPPFLAGS"
+    LIBICONV=
+    LTLIBICONV=
+  fi
+  AC_SUBST(LIBICONV)
+  AC_SUBST(LTLIBICONV)
+])
+
+AC_DEFUN([AM_ICONV],
+[
+  AM_ICONV_LINK
+  if test "$am_cv_func_iconv" = yes; then
+    AC_MSG_CHECKING([for iconv declaration])
+    AC_CACHE_VAL(am_cv_proto_iconv, [
+      AC_TRY_COMPILE([
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
+      am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
+    am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
+    AC_MSG_RESULT([$]{ac_t:-
+         }[$]am_cv_proto_iconv)
+    AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
+      [Define as const if the declaration of iconv() needs const.])
+  fi
+])
diff --git a/parted-1.8.7/m4/inline.m4 b/parted-1.8.7/m4/inline.m4
new file mode 100644
index 0000000..a07076c
--- /dev/null
+++ b/parted-1.8.7/m4/inline.m4
@@ -0,0 +1,40 @@
+# inline.m4 serial 3
+dnl Copyright (C) 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl Test for the 'inline' keyword or equivalent.
+dnl Define 'inline' to a supported equivalent, or to nothing if not supported,
+dnl like AC_C_INLINE does.  Also, define HAVE_INLINE if 'inline' or an
+dnl equivalent is effectively supported, i.e. if the compiler is likely to
+dnl drop unused 'static inline' functions.
+AC_DEFUN([gl_INLINE],
+[
+  AC_REQUIRE([AC_C_INLINE])
+  AC_CACHE_CHECK([whether the compiler generally respects inline],
+    [gl_cv_c_inline_effective],
+    [if test $ac_cv_c_inline = no; then
+       gl_cv_c_inline_effective=no
+     else
+       dnl GCC defines __NO_INLINE__ if not optimizing or if -fno-inline is
+       dnl specified.
+       dnl Use AC_COMPILE_IFELSE here, not AC_EGREP_CPP, because the result
+       dnl depends on optimization flags, which can be in CFLAGS.
+       dnl (AC_EGREP_CPP looks only at the CPPFLAGS.)
+       AC_COMPILE_IFELSE(
+         [AC_LANG_PROGRAM([[]],
+           [[#ifdef __NO_INLINE__
+               #error "inline is not effective"
+             #endif]])],
+         [gl_cv_c_inline_effective=yes],
+         [gl_cv_c_inline_effective=no])
+     fi
+    ])
+  if test $gl_cv_c_inline_effective = yes; then
+    AC_DEFINE([HAVE_INLINE], 1,
+      [Define to 1 if the compiler supports one of the keywords
+       'inline', '__inline__', '__inline' and effectively inlines
+       functions marked as such.])
+  fi
+])
diff --git a/parted-1.8.7/m4/inttypes-pri.m4 b/parted-1.8.7/m4/inttypes-pri.m4
new file mode 100644
index 0000000..7c7f894
--- /dev/null
+++ b/parted-1.8.7/m4/inttypes-pri.m4
@@ -0,0 +1,36 @@
+# inttypes-pri.m4 serial 4 (gettext-0.16)
+dnl Copyright (C) 1997-2002, 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_PREREQ(2.52)
+
+# Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI*
+# macros to non-string values.  This is the case on AIX 4.3.3.
+
+AC_DEFUN([gt_INTTYPES_PRI],
+[
+  AC_CHECK_HEADERS([inttypes.h])
+  if test $ac_cv_header_inttypes_h = yes; then
+    AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken],
+      gt_cv_inttypes_pri_broken,
+      [
+        AC_TRY_COMPILE([#include <inttypes.h>
+#ifdef PRId32
+char *p = PRId32;
+#endif
+], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes)
+      ])
+  fi
+  if test "$gt_cv_inttypes_pri_broken" = yes; then
+    AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1,
+      [Define if <inttypes.h> exists and defines unusable PRI* macros.])
+    PRI_MACROS_BROKEN=1
+  else
+    PRI_MACROS_BROKEN=0
+  fi
+  AC_SUBST([PRI_MACROS_BROKEN])
+])
diff --git a/parted-1.8.7/m4/inttypes.m4 b/parted-1.8.7/m4/inttypes.m4
new file mode 100644
index 0000000..095ace9
--- /dev/null
+++ b/parted-1.8.7/m4/inttypes.m4
@@ -0,0 +1,223 @@
+# inttypes.m4 serial 8
+dnl Copyright (C) 2006-2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Derek Price, Bruno Haible.
+dnl Test whether <inttypes.h> is supported or must be substituted.
+
+AC_DEFUN([gl_INTTYPES_H],
+[
+  AC_REQUIRE([gl_STDINT_H])
+  AC_REQUIRE([gt_INTTYPES_PRI])
+  AC_CHECK_DECLS_ONCE([imaxabs])
+  AC_CHECK_DECLS_ONCE([imaxdiv])
+  AC_CHECK_DECLS_ONCE([strtoimax])
+  AC_CHECK_DECLS_ONCE([strtoumax])
+
+  dnl Now see if we need a substitute <inttypes.h>.
+  dnl A complete <inttypes.h> requires
+  dnl   - a complete <stdint.h>,
+  dnl   - the existence of an <inttypes.h>,
+  dnl   - that imaxabs, imaxdiv, strtoimax, strtoumax are declared,
+  dnl   - some additional tests.
+  AC_CACHE_CHECK([whether inttypes.h conforms to C99],
+    [gl_cv_header_working_inttypes_h],
+    [gl_cv_header_working_inttypes_h=no
+     if test "$gl_cv_header_working_stdint_h" = yes \
+	&& test $ac_cv_header_inttypes_h = yes \
+	&& test "$ac_cv_have_decl_imaxabs" = yes \
+	&& test "$ac_cv_have_decl_imaxdiv" = yes \
+	&& test "$ac_cv_have_decl_strtoimax" = yes \
+	&& test "$ac_cv_have_decl_strtoumax" = yes; then
+       AC_COMPILE_IFELSE([
+	 AC_LANG_PROGRAM([
+#include <stddef.h>
+#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
+#define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */
+#define __STDC_FORMAT_MACROS 1 /* to make it work also in C++ mode */
+#include ABSOLUTE_INTTYPES_H
+
+/* No need to duplicate the tests of stdint.m4; they are subsumed by
+   $gl_cv_header_working_stdint_h = yes.  */
+
+/* Tests for macros supposed to be defined in inttypes.h.  */
+
+const char *k = /* implicit string concatenation */
+#ifdef INT8_MAX
+  PRId8 PRIi8
+#endif
+#ifdef UINT8_MAX
+  PRIo8 PRIu8 PRIx8 PRIX8
+#endif
+#ifdef INT16_MAX
+  PRId16 PRIi16
+#endif
+#ifdef UINT16_MAX
+  PRIo16 PRIu16 PRIx16 PRIX16
+#endif
+#ifdef INT32_MAX
+  PRId32 PRIi32
+#endif
+#ifdef UINT32_MAX
+  PRIo32 PRIu32 PRIx32 PRIX32
+#endif
+#ifdef INT64_MAX
+  PRId64 PRIi64
+#endif
+#ifdef UINT64_MAX
+  PRIo64 PRIu64 PRIx64 PRIX64
+#endif
+  PRIdLEAST8 PRIiLEAST8 PRIoLEAST8 PRIuLEAST8 PRIxLEAST8 PRIXLEAST8
+  PRIdLEAST16 PRIiLEAST16 PRIoLEAST16 PRIuLEAST16 PRIxLEAST16 PRIXLEAST16
+  PRIdLEAST32 PRIiLEAST32 PRIoLEAST32 PRIuLEAST32 PRIxLEAST32 PRIXLEAST32
+  PRIdLEAST64 PRIiLEAST64
+  PRIoLEAST64 PRIuLEAST64 PRIxLEAST64 PRIXLEAST64
+  PRIdFAST8 PRIiFAST8 PRIoFAST8 PRIuFAST8 PRIxFAST8 PRIXFAST8
+  PRIdFAST16 PRIiFAST16 PRIoFAST16 PRIuFAST16 PRIxFAST16 PRIXFAST16
+  PRIdFAST32 PRIiFAST32 PRIoFAST32 PRIuFAST32 PRIxFAST32 PRIXFAST32
+  PRIdFAST64 PRIiFAST64
+  PRIoFAST64 PRIuFAST64 PRIxFAST64 PRIXFAST64
+  PRIdMAX PRIiMAX PRIoMAX PRIuMAX PRIxMAX PRIXMAX
+#ifdef INTPTR_MAX
+  PRIdPTR PRIiPTR
+#endif
+#ifdef UINTPTR_MAX
+  PRIoPTR PRIuPTR PRIxPTR PRIXPTR
+#endif
+  ;
+const char *l = /* implicit string concatenation */
+#ifdef INT8_MAX
+  SCNd8 SCNi8
+#endif
+#ifdef UINT8_MAX
+  SCNo8 SCNu8 SCNx8
+#endif
+#ifdef INT16_MAX
+  SCNd16 SCNi16
+#endif
+#ifdef UINT16_MAX
+  SCNo16 SCNu16 SCNx16
+#endif
+#ifdef INT32_MAX
+  SCNd32 SCNi32
+#endif
+#ifdef UINT32_MAX
+  SCNo32 SCNu32 SCNx32
+#endif
+#ifdef INT64_MAX
+  SCNd64 SCNi64
+#endif
+#ifdef UINT64_MAX
+  SCNo64 SCNu64 SCNx64
+#endif
+  SCNdLEAST8 SCNiLEAST8 SCNoLEAST8 SCNuLEAST8 SCNxLEAST8
+  SCNdLEAST16 SCNiLEAST16 SCNoLEAST16 SCNuLEAST16 SCNxLEAST16
+  SCNdLEAST32 SCNiLEAST32 SCNoLEAST32 SCNuLEAST32 SCNxLEAST32
+  SCNdLEAST64 SCNiLEAST64
+  SCNoLEAST64 SCNuLEAST64 SCNxLEAST64
+  SCNdFAST8 SCNiFAST8 SCNoFAST8 SCNuFAST8 SCNxFAST8
+  SCNdFAST16 SCNiFAST16 SCNoFAST16 SCNuFAST16 SCNxFAST16
+  SCNdFAST32 SCNiFAST32 SCNoFAST32 SCNuFAST32 SCNxFAST32
+  SCNdFAST64 SCNiFAST64
+  SCNoFAST64 SCNuFAST64 SCNxFAST64
+  SCNdMAX SCNiMAX SCNoMAX SCNuMAX SCNxMAX
+#ifdef INTPTR_MAX
+  SCNdPTR SCNiPTR
+#endif
+#ifdef UINTPTR_MAX
+  SCNoPTR SCNuPTR SCNxPTR
+#endif
+  ;
+	 ])],
+	 [gl_cv_header_working_inttypes_h=yes])
+     fi])
+
+  dnl Override <inttypes.h> always, so that the portability warnings work.
+  if false && test $gl_cv_header_working_inttypes_h = yes; then
+    dnl Use the existing <inttypes.h>.
+    INTTYPES_H=''
+  else
+
+    AC_REQUIRE([gl_INTTYPES_H_DEFAULTS])
+    dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_inttypes_h.
+    if test $ac_cv_header_inttypes_h = yes; then
+      gl_ABSOLUTE_HEADER([inttypes.h])
+      ABSOLUTE_INTTYPES_H=\"$gl_cv_absolute_inttypes_h\"
+    else
+      ABSOLUTE_INTTYPES_H=\"no/such/file/inttypes.h\"
+    fi
+    AC_SUBST([ABSOLUTE_INTTYPES_H])
+
+    PRIPTR_PREFIX=
+    if test -n "$STDINT_H"; then
+      dnl Using the gnulib <stdint.h>. It always defines intptr_t to 'long'.
+      PRIPTR_PREFIX='"l"'
+    else
+      dnl Using the system's <stdint.h>.
+      for glpfx in '' l ll I64; do
+        case $glpfx in
+          '')  gltype1='int';;
+          l)   gltype1='long int';;
+          ll)  gltype1='long long int';;
+          I64) gltype1='__int64';;
+        esac
+        AC_COMPILE_IFELSE(
+          [AC_LANG_PROGRAM([#include <stdint.h>
+             extern intptr_t foo;
+             extern $gltype1 foo;])],
+          [PRIPTR_PREFIX='"'$glpfx'"'])
+        test -n "$PRIPTR_PREFIX" && break
+      done
+    fi
+    AC_SUBST([PRIPTR_PREFIX])
+
+    if test "$ac_cv_have_decl_imaxabs" = yes; then
+      HAVE_DECL_IMAXABS=1
+    else
+      HAVE_DECL_IMAXABS=0
+    fi
+
+    if test "$ac_cv_have_decl_imaxdiv" = yes; then
+      HAVE_DECL_IMAXDIV=1
+    else
+      HAVE_DECL_IMAXDIV=0
+    fi
+
+    if test "$ac_cv_have_decl_strtoimax" = yes; then
+      HAVE_DECL_STRTOIMAX=1
+    else
+      HAVE_DECL_STRTOIMAX=0
+    fi
+
+    if test "$ac_cv_have_decl_strtoumax" = yes; then
+      HAVE_DECL_STRTOUMAX=1
+    else
+      HAVE_DECL_STRTOUMAX=0
+    fi
+
+    INTTYPES_H='inttypes.h'
+  fi
+  AC_SUBST(INTTYPES_H)
+])
+
+AC_DEFUN([gl_INTTYPES_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_INTTYPES_H_DEFAULTS])
+  GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
+])
+
+AC_DEFUN([gl_INTTYPES_H_DEFAULTS],
+[
+  GNULIB_IMAXABS=0;      AC_SUBST([GNULIB_IMAXABS])
+  GNULIB_IMAXDIV=0;      AC_SUBST([GNULIB_IMAXDIV])
+  GNULIB_STRTOIMAX=0;    AC_SUBST([GNULIB_STRTOIMAX])
+  GNULIB_STRTOUMAX=0;    AC_SUBST([GNULIB_STRTOUMAX])
+  dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE_DECL_IMAXABS=1;   AC_SUBST([HAVE_DECL_IMAXABS])
+  HAVE_DECL_IMAXDIV=1;   AC_SUBST([HAVE_DECL_IMAXDIV])
+  HAVE_DECL_STRTOIMAX=1; AC_SUBST([HAVE_DECL_STRTOIMAX])
+  HAVE_DECL_STRTOUMAX=1; AC_SUBST([HAVE_DECL_STRTOUMAX])
+])
diff --git a/parted-1.8.7/m4/lib-ignore.m4 b/parted-1.8.7/m4/lib-ignore.m4
new file mode 100644
index 0000000..e518f81
--- /dev/null
+++ b/parted-1.8.7/m4/lib-ignore.m4
@@ -0,0 +1,43 @@
+# If possible, ignore libraries that are not depended on.
+
+dnl Copyright (C) 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl Written by Paul Eggert.
+
+AC_DEFUN([gl_IGNORE_UNUSED_LIBRARIES],
+[
+  AC_CACHE_CHECK([for flag to ignore unused libraries],
+    [gl_cv_ignore_unused_libraries],
+    [gl_cv_ignore_unused_libraries=none
+     gl_saved_ldflags=$LDFLAGS
+     gl_saved_libs=$LIBS
+     # Link with -lm to detect binutils 2.16 bug with --as-needed; see
+     # <http://lists.gnu.org/archive/html/bug-gnulib/2006-06/msg00131.html>.
+     LIBS="$LIBS -lm"
+     # Use long option sequences like '-z ignore' to test for the feature,
+     # to forestall problems with linkers that have -z, -i, -g, -n, etc. flags.
+     # GCC + binutils likes '-Wl,--as-needed'.
+     # GCC + Solaris ld likes '-Wl,-z,ignore'.
+     # Sun C likes '-z ignore'.
+     # Don't try bare '--as-needed'; nothing likes it and the HP-UX 11.11
+     # native cc issues annoying warnings and then ignores it,
+     # which would cause us to incorrectly conclude that it worked.
+     for gl_flags in \
+	'-Wl,--as-needed' \
+	'-Wl,-z,ignore' \
+	'-z ignore'
+     do
+       LDFLAGS="$gl_flags $LDFLAGS"
+       AC_LINK_IFELSE([AC_LANG_PROGRAM()],
+	 [gl_cv_ignore_unused_libraries=$gl_flags])
+       LDFLAGS=$gl_saved_ldflags
+       test "$gl_cv_ignore_unused_libraries" != none && break
+     done
+     LIBS=$gl_saved_libs])
+
+  test "$gl_cv_ignore_unused_libraries" != none &&
+    LDFLAGS="$LDFLAGS $gl_cv_ignore_unused_libraries"
+])
diff --git a/parted-1.8.7/m4/lib-ld.m4 b/parted-1.8.7/m4/lib-ld.m4
new file mode 100644
index 0000000..96c4e2c
--- /dev/null
+++ b/parted-1.8.7/m4/lib-ld.m4
@@ -0,0 +1,110 @@
+# lib-ld.m4 serial 3 (gettext-0.13)
+dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl Subroutines of libtool.m4,
+dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
+dnl with libtool.m4.
+
+dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
+AC_DEFUN([AC_LIB_PROG_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  acl_cv_prog_gnu_ld=yes ;;
+*)
+  acl_cv_prog_gnu_ld=no ;;
+esac])
+with_gnu_ld=$acl_cv_prog_gnu_ld
+])
+
+dnl From libtool-1.4. Sets the variable LD.
+AC_DEFUN([AC_LIB_PROG_LD],
+[AC_ARG_WITH(gnu-ld,
+[  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
+test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by GCC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]* | [A-Za-z]:[\\/]*)]
+      [re_direlt='/[^/][^/]*/\.\./']
+      # Canonicalize the path of ld
+      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(acl_cv_path_LD,
+[if test -z "$LD"; then
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      acl_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some GNU ld's only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break ;;
+      *)
+	test "$with_gnu_ld" != yes && break ;;
+      esac
+    fi
+  done
+  IFS="$ac_save_ifs"
+else
+  acl_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$acl_cv_path_LD"
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_LIB_PROG_LD_GNU
+])
diff --git a/parted-1.8.7/m4/lib-link.m4 b/parted-1.8.7/m4/lib-link.m4
new file mode 100644
index 0000000..f157d98
--- /dev/null
+++ b/parted-1.8.7/m4/lib-link.m4
@@ -0,0 +1,709 @@
+# lib-link.m4 serial 13 (gettext-0.16.2)
+dnl Copyright (C) 2001-2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_PREREQ(2.54)
+
+dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
+dnl the libraries corresponding to explicit and implicit dependencies.
+dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
+dnl augments the CPPFLAGS variable.
+dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
+dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
+AC_DEFUN([AC_LIB_LINKFLAGS],
+[
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  AC_REQUIRE([AC_LIB_RPATH])
+  define([Name],[translit([$1],[./-], [___])])
+  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+  AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
+    AC_LIB_LINKFLAGS_BODY([$1], [$2])
+    ac_cv_lib[]Name[]_libs="$LIB[]NAME"
+    ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
+    ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
+    ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX"
+  ])
+  LIB[]NAME="$ac_cv_lib[]Name[]_libs"
+  LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
+  INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
+  LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix"
+  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+  AC_SUBST([LIB]NAME)
+  AC_SUBST([LTLIB]NAME)
+  AC_SUBST([LIB]NAME[_PREFIX])
+  dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
+  dnl results of this search when this library appears as a dependency.
+  HAVE_LIB[]NAME=yes
+  undefine([Name])
+  undefine([NAME])
+])
+
+dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
+dnl searches for libname and the libraries corresponding to explicit and
+dnl implicit dependencies, together with the specified include files and
+dnl the ability to compile and link the specified testcode. If found, it
+dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
+dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
+dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
+dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
+dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
+dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
+AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
+[
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  AC_REQUIRE([AC_LIB_RPATH])
+  define([Name],[translit([$1],[./-], [___])])
+  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+
+  dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
+  dnl accordingly.
+  AC_LIB_LINKFLAGS_BODY([$1], [$2])
+
+  dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
+  dnl because if the user has installed lib[]Name and not disabled its use
+  dnl via --without-lib[]Name-prefix, he wants to use it.
+  ac_save_CPPFLAGS="$CPPFLAGS"
+  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+
+  AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
+    ac_save_LIBS="$LIBS"
+    LIBS="$LIBS $LIB[]NAME"
+    AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
+    LIBS="$ac_save_LIBS"
+  ])
+  if test "$ac_cv_lib[]Name" = yes; then
+    HAVE_LIB[]NAME=yes
+    AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
+    AC_MSG_CHECKING([how to link with lib[]$1])
+    AC_MSG_RESULT([$LIB[]NAME])
+  else
+    HAVE_LIB[]NAME=no
+    dnl If $LIB[]NAME didn't lead to a usable library, we don't need
+    dnl $INC[]NAME either.
+    CPPFLAGS="$ac_save_CPPFLAGS"
+    LIB[]NAME=
+    LTLIB[]NAME=
+    LIB[]NAME[]_PREFIX=
+  fi
+  AC_SUBST([HAVE_LIB]NAME)
+  AC_SUBST([LIB]NAME)
+  AC_SUBST([LTLIB]NAME)
+  AC_SUBST([LIB]NAME[_PREFIX])
+  undefine([Name])
+  undefine([NAME])
+])
+
+dnl Determine the platform dependent parameters needed to use rpath:
+dnl   acl_libext,
+dnl   acl_shlibext,
+dnl   acl_hardcode_libdir_flag_spec,
+dnl   acl_hardcode_libdir_separator,
+dnl   acl_hardcode_direct,
+dnl   acl_hardcode_minus_L.
+AC_DEFUN([AC_LIB_RPATH],
+[
+  dnl Tell automake >= 1.10 to complain if config.rpath is missing.
+  m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
+  AC_REQUIRE([AC_PROG_CC])                dnl we use $CC, $GCC, $LDFLAGS
+  AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld
+  AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host
+  AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
+  AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
+    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+    . ./conftest.sh
+    rm -f ./conftest.sh
+    acl_cv_rpath=done
+  ])
+  wl="$acl_cv_wl"
+  acl_libext="$acl_cv_libext"
+  acl_shlibext="$acl_cv_shlibext"
+  acl_libname_spec="$acl_cv_libname_spec"
+  acl_library_names_spec="$acl_cv_library_names_spec"
+  acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+  acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+  acl_hardcode_direct="$acl_cv_hardcode_direct"
+  acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
+  dnl Determine whether the user wants rpath handling at all.
+  AC_ARG_ENABLE(rpath,
+    [  --disable-rpath         do not hardcode runtime library paths],
+    :, enable_rpath=yes)
+])
+
+dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
+dnl the libraries corresponding to explicit and implicit dependencies.
+dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
+dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found
+dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
+AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
+[
+  AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
+  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+  dnl Autoconf >= 2.61 supports dots in --with options.
+  define([N_A_M_E],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit([$1],[.],[_])],[$1])])
+  dnl By default, look in $includedir and $libdir.
+  use_additional=yes
+  AC_LIB_WITH_FINAL_PREFIX([
+    eval additional_includedir=\"$includedir\"
+    eval additional_libdir=\"$libdir\"
+  ])
+  AC_LIB_ARG_WITH([lib]N_A_M_E[-prefix],
+[  --with-lib]N_A_M_E[-prefix[=DIR]  search for lib$1 in DIR/include and DIR/lib
+  --without-lib]N_A_M_E[-prefix     don't search for lib$1 in includedir and libdir],
+[
+    if test "X$withval" = "Xno"; then
+      use_additional=no
+    else
+      if test "X$withval" = "X"; then
+        AC_LIB_WITH_FINAL_PREFIX([
+          eval additional_includedir=\"$includedir\"
+          eval additional_libdir=\"$libdir\"
+        ])
+      else
+        additional_includedir="$withval/include"
+        additional_libdir="$withval/$acl_libdirstem"
+      fi
+    fi
+])
+  dnl Search the library and its dependencies in $additional_libdir and
+  dnl $LDFLAGS. Using breadth-first-seach.
+  LIB[]NAME=
+  LTLIB[]NAME=
+  INC[]NAME=
+  LIB[]NAME[]_PREFIX=
+  rpathdirs=
+  ltrpathdirs=
+  names_already_handled=
+  names_next_round='$1 $2'
+  while test -n "$names_next_round"; do
+    names_this_round="$names_next_round"
+    names_next_round=
+    for name in $names_this_round; do
+      already_handled=
+      for n in $names_already_handled; do
+        if test "$n" = "$name"; then
+          already_handled=yes
+          break
+        fi
+      done
+      if test -z "$already_handled"; then
+        names_already_handled="$names_already_handled $name"
+        dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
+        dnl or AC_LIB_HAVE_LINKFLAGS call.
+        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+        eval value=\"\$HAVE_LIB$uppername\"
+        if test -n "$value"; then
+          if test "$value" = yes; then
+            eval value=\"\$LIB$uppername\"
+            test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
+            eval value=\"\$LTLIB$uppername\"
+            test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
+          else
+            dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
+            dnl that this library doesn't exist. So just drop it.
+            :
+          fi
+        else
+          dnl Search the library lib$name in $additional_libdir and $LDFLAGS
+          dnl and the already constructed $LIBNAME/$LTLIBNAME.
+          found_dir=
+          found_la=
+          found_so=
+          found_a=
+          eval libname=\"$acl_libname_spec\"    # typically: libname=lib$name
+          if test -n "$acl_shlibext"; then
+            shrext=".$acl_shlibext"             # typically: shrext=.so
+          else
+            shrext=
+          fi
+          if test $use_additional = yes; then
+            dir="$additional_libdir"
+            dnl The same code as in the loop below:
+            dnl First look for a shared library.
+            if test -n "$acl_shlibext"; then
+              if test -f "$dir/$libname$shrext"; then
+                found_dir="$dir"
+                found_so="$dir/$libname$shrext"
+              else
+                if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+                  ver=`(cd "$dir" && \
+                        for f in "$libname$shrext".*; do echo "$f"; done \
+                        | sed -e "s,^$libname$shrext\\\\.,," \
+                        | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+                        | sed 1q ) 2>/dev/null`
+                  if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+                    found_dir="$dir"
+                    found_so="$dir/$libname$shrext.$ver"
+                  fi
+                else
+                  eval library_names=\"$acl_library_names_spec\"
+                  for f in $library_names; do
+                    if test -f "$dir/$f"; then
+                      found_dir="$dir"
+                      found_so="$dir/$f"
+                      break
+                    fi
+                  done
+                fi
+              fi
+            fi
+            dnl Then look for a static library.
+            if test "X$found_dir" = "X"; then
+              if test -f "$dir/$libname.$acl_libext"; then
+                found_dir="$dir"
+                found_a="$dir/$libname.$acl_libext"
+              fi
+            fi
+            if test "X$found_dir" != "X"; then
+              if test -f "$dir/$libname.la"; then
+                found_la="$dir/$libname.la"
+              fi
+            fi
+          fi
+          if test "X$found_dir" = "X"; then
+            for x in $LDFLAGS $LTLIB[]NAME; do
+              AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+              case "$x" in
+                -L*)
+                  dir=`echo "X$x" | sed -e 's/^X-L//'`
+                  dnl First look for a shared library.
+                  if test -n "$acl_shlibext"; then
+                    if test -f "$dir/$libname$shrext"; then
+                      found_dir="$dir"
+                      found_so="$dir/$libname$shrext"
+                    else
+                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+                        ver=`(cd "$dir" && \
+                              for f in "$libname$shrext".*; do echo "$f"; done \
+                              | sed -e "s,^$libname$shrext\\\\.,," \
+                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+                              | sed 1q ) 2>/dev/null`
+                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+                          found_dir="$dir"
+                          found_so="$dir/$libname$shrext.$ver"
+                        fi
+                      else
+                        eval library_names=\"$acl_library_names_spec\"
+                        for f in $library_names; do
+                          if test -f "$dir/$f"; then
+                            found_dir="$dir"
+                            found_so="$dir/$f"
+                            break
+                          fi
+                        done
+                      fi
+                    fi
+                  fi
+                  dnl Then look for a static library.
+                  if test "X$found_dir" = "X"; then
+                    if test -f "$dir/$libname.$acl_libext"; then
+                      found_dir="$dir"
+                      found_a="$dir/$libname.$acl_libext"
+                    fi
+                  fi
+                  if test "X$found_dir" != "X"; then
+                    if test -f "$dir/$libname.la"; then
+                      found_la="$dir/$libname.la"
+                    fi
+                  fi
+                  ;;
+              esac
+              if test "X$found_dir" != "X"; then
+                break
+              fi
+            done
+          fi
+          if test "X$found_dir" != "X"; then
+            dnl Found the library.
+            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
+            if test "X$found_so" != "X"; then
+              dnl Linking with a shared library. We attempt to hardcode its
+              dnl directory into the executable's runpath, unless it's the
+              dnl standard /usr/lib.
+              if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then
+                dnl No hardcoding is needed.
+                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+              else
+                dnl Use an explicit option to hardcode DIR into the resulting
+                dnl binary.
+                dnl Potentially add DIR to ltrpathdirs.
+                dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+                haveit=
+                for x in $ltrpathdirs; do
+                  if test "X$x" = "X$found_dir"; then
+                    haveit=yes
+                    break
+                  fi
+                done
+                if test -z "$haveit"; then
+                  ltrpathdirs="$ltrpathdirs $found_dir"
+                fi
+                dnl The hardcoding into $LIBNAME is system dependent.
+                if test "$acl_hardcode_direct" = yes; then
+                  dnl Using DIR/libNAME.so during linking hardcodes DIR into the
+                  dnl resulting binary.
+                  LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+                else
+                  if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+                    dnl Use an explicit option to hardcode DIR into the resulting
+                    dnl binary.
+                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+                    dnl Potentially add DIR to rpathdirs.
+                    dnl The rpathdirs will be appended to $LIBNAME at the end.
+                    haveit=
+                    for x in $rpathdirs; do
+                      if test "X$x" = "X$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      rpathdirs="$rpathdirs $found_dir"
+                    fi
+                  else
+                    dnl Rely on "-L$found_dir".
+                    dnl But don't add it if it's already contained in the LDFLAGS
+                    dnl or the already constructed $LIBNAME
+                    haveit=
+                    for x in $LDFLAGS $LIB[]NAME; do
+                      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                      if test "X$x" = "X-L$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
+                    fi
+                    if test "$acl_hardcode_minus_L" != no; then
+                      dnl FIXME: Not sure whether we should use
+                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+                      dnl here.
+                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+                    else
+                      dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH
+                      dnl here, because this doesn't fit in flags passed to the
+                      dnl compiler. So give up. No hardcoding. This affects only
+                      dnl very old systems.
+                      dnl FIXME: Not sure whether we should use
+                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+                      dnl here.
+                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+                    fi
+                  fi
+                fi
+              fi
+            else
+              if test "X$found_a" != "X"; then
+                dnl Linking with a static library.
+                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
+              else
+                dnl We shouldn't come here, but anyway it's good to have a
+                dnl fallback.
+                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
+              fi
+            fi
+            dnl Assume the include files are nearby.
+            additional_includedir=
+            case "$found_dir" in
+              */$acl_libdirstem | */$acl_libdirstem/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
+                LIB[]NAME[]_PREFIX="$basedir"
+                additional_includedir="$basedir/include"
+                ;;
+            esac
+            if test "X$additional_includedir" != "X"; then
+              dnl Potentially add $additional_includedir to $INCNAME.
+              dnl But don't add it
+              dnl   1. if it's the standard /usr/include,
+              dnl   2. if it's /usr/local/include and we are using GCC on Linux,
+              dnl   3. if it's already present in $CPPFLAGS or the already
+              dnl      constructed $INCNAME,
+              dnl   4. if it doesn't exist as a directory.
+              if test "X$additional_includedir" != "X/usr/include"; then
+                haveit=
+                if test "X$additional_includedir" = "X/usr/local/include"; then
+                  if test -n "$GCC"; then
+                    case $host_os in
+                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                    esac
+                  fi
+                fi
+                if test -z "$haveit"; then
+                  for x in $CPPFLAGS $INC[]NAME; do
+                    AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                    if test "X$x" = "X-I$additional_includedir"; then
+                      haveit=yes
+                      break
+                    fi
+                  done
+                  if test -z "$haveit"; then
+                    if test -d "$additional_includedir"; then
+                      dnl Really add $additional_includedir to $INCNAME.
+                      INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
+                    fi
+                  fi
+                fi
+              fi
+            fi
+            dnl Look for dependencies.
+            if test -n "$found_la"; then
+              dnl Read the .la file. It defines the variables
+              dnl dlname, library_names, old_library, dependency_libs, current,
+              dnl age, revision, installed, dlopen, dlpreopen, libdir.
+              save_libdir="$libdir"
+              case "$found_la" in
+                */* | *\\*) . "$found_la" ;;
+                *) . "./$found_la" ;;
+              esac
+              libdir="$save_libdir"
+              dnl We use only dependency_libs.
+              for dep in $dependency_libs; do
+                case "$dep" in
+                  -L*)
+                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+                    dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
+                    dnl But don't add it
+                    dnl   1. if it's the standard /usr/lib,
+                    dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
+                    dnl   3. if it's already present in $LDFLAGS or the already
+                    dnl      constructed $LIBNAME,
+                    dnl   4. if it doesn't exist as a directory.
+                    if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
+                      haveit=
+                      if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
+                        if test -n "$GCC"; then
+                          case $host_os in
+                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                          esac
+                        fi
+                      fi
+                      if test -z "$haveit"; then
+                        haveit=
+                        for x in $LDFLAGS $LIB[]NAME; do
+                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                            dnl Really add $additional_libdir to $LIBNAME.
+                            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
+                          fi
+                        fi
+                        haveit=
+                        for x in $LDFLAGS $LTLIB[]NAME; do
+                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                            dnl Really add $additional_libdir to $LTLIBNAME.
+                            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
+                          fi
+                        fi
+                      fi
+                    fi
+                    ;;
+                  -R*)
+                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
+                    if test "$enable_rpath" != no; then
+                      dnl Potentially add DIR to rpathdirs.
+                      dnl The rpathdirs will be appended to $LIBNAME at the end.
+                      haveit=
+                      for x in $rpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        rpathdirs="$rpathdirs $dir"
+                      fi
+                      dnl Potentially add DIR to ltrpathdirs.
+                      dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+                      haveit=
+                      for x in $ltrpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        ltrpathdirs="$ltrpathdirs $dir"
+                      fi
+                    fi
+                    ;;
+                  -l*)
+                    dnl Handle this in the next round.
+                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+                    ;;
+                  *.la)
+                    dnl Handle this in the next round. Throw away the .la's
+                    dnl directory; it is already contained in a preceding -L
+                    dnl option.
+                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+                    ;;
+                  *)
+                    dnl Most likely an immediate library name.
+                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
+                    LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
+                    ;;
+                esac
+              done
+            fi
+          else
+            dnl Didn't find the library; assume it is in the system directories
+            dnl known to the linker and runtime loader. (All the system
+            dnl directories known to the linker should also be known to the
+            dnl runtime loader, otherwise the system is severely misconfigured.)
+            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
+          fi
+        fi
+      fi
+    done
+  done
+  if test "X$rpathdirs" != "X"; then
+    if test -n "$acl_hardcode_libdir_separator"; then
+      dnl Weird platform: only the last -rpath option counts, the user must
+      dnl pass all path elements in one option. We can arrange that for a
+      dnl single library, but not when more than one $LIBNAMEs are used.
+      alldirs=
+      for found_dir in $rpathdirs; do
+        alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
+      done
+      dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl.
+      acl_save_libdir="$libdir"
+      libdir="$alldirs"
+      eval flag=\"$acl_hardcode_libdir_flag_spec\"
+      libdir="$acl_save_libdir"
+      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+    else
+      dnl The -rpath options are cumulative.
+      for found_dir in $rpathdirs; do
+        acl_save_libdir="$libdir"
+        libdir="$found_dir"
+        eval flag=\"$acl_hardcode_libdir_flag_spec\"
+        libdir="$acl_save_libdir"
+        LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+      done
+    fi
+  fi
+  if test "X$ltrpathdirs" != "X"; then
+    dnl When using libtool, the option that works for both libraries and
+    dnl executables is -R. The -R options are cumulative.
+    for found_dir in $ltrpathdirs; do
+      LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
+    done
+  fi
+])
+
+dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
+dnl unless already present in VAR.
+dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
+dnl contains two or three consecutive elements that belong together.
+AC_DEFUN([AC_LIB_APPENDTOVAR],
+[
+  for element in [$2]; do
+    haveit=
+    for x in $[$1]; do
+      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+      if test "X$x" = "X$element"; then
+        haveit=yes
+        break
+      fi
+    done
+    if test -z "$haveit"; then
+      [$1]="${[$1]}${[$1]:+ }$element"
+    fi
+  done
+])
+
+dnl For those cases where a variable contains several -L and -l options
+dnl referring to unknown libraries and directories, this macro determines the
+dnl necessary additional linker options for the runtime path.
+dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL])
+dnl sets LDADDVAR to linker options needed together with LIBSVALUE.
+dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed,
+dnl otherwise linking without libtool is assumed.
+AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
+[
+  AC_REQUIRE([AC_LIB_RPATH])
+  AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
+  $1=
+  if test "$enable_rpath" != no; then
+    if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+      dnl Use an explicit option to hardcode directories into the resulting
+      dnl binary.
+      rpathdirs=
+      next=
+      for opt in $2; do
+        if test -n "$next"; then
+          dir="$next"
+          dnl No need to hardcode the standard /usr/lib.
+          if test "X$dir" != "X/usr/$acl_libdirstem"; then
+            rpathdirs="$rpathdirs $dir"
+          fi
+          next=
+        else
+          case $opt in
+            -L) next=yes ;;
+            -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
+                 dnl No need to hardcode the standard /usr/lib.
+                 if test "X$dir" != "X/usr/$acl_libdirstem"; then
+                   rpathdirs="$rpathdirs $dir"
+                 fi
+                 next= ;;
+            *) next= ;;
+          esac
+        fi
+      done
+      if test "X$rpathdirs" != "X"; then
+        if test -n ""$3""; then
+          dnl libtool is used for linking. Use -R options.
+          for dir in $rpathdirs; do
+            $1="${$1}${$1:+ }-R$dir"
+          done
+        else
+          dnl The linker is used for linking directly.
+          if test -n "$acl_hardcode_libdir_separator"; then
+            dnl Weird platform: only the last -rpath option counts, the user
+            dnl must pass all path elements in one option.
+            alldirs=
+            for dir in $rpathdirs; do
+              alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir"
+            done
+            acl_save_libdir="$libdir"
+            libdir="$alldirs"
+            eval flag=\"$acl_hardcode_libdir_flag_spec\"
+            libdir="$acl_save_libdir"
+            $1="$flag"
+          else
+            dnl The -rpath options are cumulative.
+            for dir in $rpathdirs; do
+              acl_save_libdir="$libdir"
+              libdir="$dir"
+              eval flag=\"$acl_hardcode_libdir_flag_spec\"
+              libdir="$acl_save_libdir"
+              $1="${$1}${$1:+ }$flag"
+            done
+          fi
+        fi
+      fi
+    fi
+  fi
+  AC_SUBST([$1])
+])
diff --git a/parted-1.8.7/m4/lib-prefix.m4 b/parted-1.8.7/m4/lib-prefix.m4
new file mode 100644
index 0000000..a8684e1
--- /dev/null
+++ b/parted-1.8.7/m4/lib-prefix.m4
@@ -0,0 +1,185 @@
+# lib-prefix.m4 serial 5 (gettext-0.15)
+dnl Copyright (C) 2001-2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
+dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
+dnl require excessive bracketing.
+ifdef([AC_HELP_STRING],
+[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
+[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
+
+dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
+dnl to access previously installed libraries. The basic assumption is that
+dnl a user will want packages to use other packages he previously installed
+dnl with the same --prefix option.
+dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
+dnl libraries, but is otherwise very convenient.
+AC_DEFUN([AC_LIB_PREFIX],
+[
+  AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
+  AC_REQUIRE([AC_PROG_CC])
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  dnl By default, look in $includedir and $libdir.
+  use_additional=yes
+  AC_LIB_WITH_FINAL_PREFIX([
+    eval additional_includedir=\"$includedir\"
+    eval additional_libdir=\"$libdir\"
+  ])
+  AC_LIB_ARG_WITH([lib-prefix],
+[  --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
+  --without-lib-prefix    don't search for libraries in includedir and libdir],
+[
+    if test "X$withval" = "Xno"; then
+      use_additional=no
+    else
+      if test "X$withval" = "X"; then
+        AC_LIB_WITH_FINAL_PREFIX([
+          eval additional_includedir=\"$includedir\"
+          eval additional_libdir=\"$libdir\"
+        ])
+      else
+        additional_includedir="$withval/include"
+        additional_libdir="$withval/$acl_libdirstem"
+      fi
+    fi
+])
+  if test $use_additional = yes; then
+    dnl Potentially add $additional_includedir to $CPPFLAGS.
+    dnl But don't add it
+    dnl   1. if it's the standard /usr/include,
+    dnl   2. if it's already present in $CPPFLAGS,
+    dnl   3. if it's /usr/local/include and we are using GCC on Linux,
+    dnl   4. if it doesn't exist as a directory.
+    if test "X$additional_includedir" != "X/usr/include"; then
+      haveit=
+      for x in $CPPFLAGS; do
+        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+        if test "X$x" = "X-I$additional_includedir"; then
+          haveit=yes
+          break
+        fi
+      done
+      if test -z "$haveit"; then
+        if test "X$additional_includedir" = "X/usr/local/include"; then
+          if test -n "$GCC"; then
+            case $host_os in
+              linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+            esac
+          fi
+        fi
+        if test -z "$haveit"; then
+          if test -d "$additional_includedir"; then
+            dnl Really add $additional_includedir to $CPPFLAGS.
+            CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
+          fi
+        fi
+      fi
+    fi
+    dnl Potentially add $additional_libdir to $LDFLAGS.
+    dnl But don't add it
+    dnl   1. if it's the standard /usr/lib,
+    dnl   2. if it's already present in $LDFLAGS,
+    dnl   3. if it's /usr/local/lib and we are using GCC on Linux,
+    dnl   4. if it doesn't exist as a directory.
+    if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
+      haveit=
+      for x in $LDFLAGS; do
+        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+        if test "X$x" = "X-L$additional_libdir"; then
+          haveit=yes
+          break
+        fi
+      done
+      if test -z "$haveit"; then
+        if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
+          if test -n "$GCC"; then
+            case $host_os in
+              linux*) haveit=yes;;
+            esac
+          fi
+        fi
+        if test -z "$haveit"; then
+          if test -d "$additional_libdir"; then
+            dnl Really add $additional_libdir to $LDFLAGS.
+            LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
+          fi
+        fi
+      fi
+    fi
+  fi
+])
+
+dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
+dnl acl_final_exec_prefix, containing the values to which $prefix and
+dnl $exec_prefix will expand at the end of the configure script.
+AC_DEFUN([AC_LIB_PREPARE_PREFIX],
+[
+  dnl Unfortunately, prefix and exec_prefix get only finally determined
+  dnl at the end of configure.
+  if test "X$prefix" = "XNONE"; then
+    acl_final_prefix="$ac_default_prefix"
+  else
+    acl_final_prefix="$prefix"
+  fi
+  if test "X$exec_prefix" = "XNONE"; then
+    acl_final_exec_prefix='${prefix}'
+  else
+    acl_final_exec_prefix="$exec_prefix"
+  fi
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+  prefix="$acl_save_prefix"
+])
+
+dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
+dnl variables prefix and exec_prefix bound to the values they will have
+dnl at the end of the configure script.
+AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
+[
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  $1
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+])
+
+dnl AC_LIB_PREPARE_MULTILIB creates a variable acl_libdirstem, containing
+dnl the basename of the libdir, either "lib" or "lib64".
+AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
+[
+  dnl There is no formal standard regarding lib and lib64. The current
+  dnl practice is that on a system supporting 32-bit and 64-bit instruction
+  dnl sets or ABIs, 64-bit libraries go under $prefix/lib64 and 32-bit
+  dnl libraries go under $prefix/lib. We determine the compiler's default
+  dnl mode by looking at the compiler's library search path. If at least
+  dnl of its elements ends in /lib64 or points to a directory whose absolute
+  dnl pathname ends in /lib64, we assume a 64-bit ABI. Otherwise we use the
+  dnl default, namely "lib".
+  acl_libdirstem=lib
+  searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
+  if test -n "$searchpath"; then
+    acl_save_IFS="${IFS= 	}"; IFS=":"
+    for searchdir in $searchpath; do
+      if test -d "$searchdir"; then
+        case "$searchdir" in
+          */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
+          *) searchdir=`cd "$searchdir" && pwd`
+             case "$searchdir" in
+               */lib64 ) acl_libdirstem=lib64 ;;
+             esac ;;
+        esac
+      fi
+    done
+    IFS="$acl_save_IFS"
+  fi
+])
diff --git a/parted-1.8.7/m4/localcharset.m4 b/parted-1.8.7/m4/localcharset.m4
new file mode 100644
index 0000000..b2b7733
--- /dev/null
+++ b/parted-1.8.7/m4/localcharset.m4
@@ -0,0 +1,16 @@
+# localcharset.m4 serial 5
+dnl Copyright (C) 2002, 2004, 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_LOCALCHARSET],
+[
+  dnl Prerequisites of lib/localcharset.c.
+  AC_REQUIRE([AM_LANGINFO_CODESET])
+  AC_CHECK_DECLS_ONCE(getc_unlocked)
+
+  dnl Prerequisites of the lib/Makefile.am snippet.
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_REQUIRE([gl_GLIBC21])
+])
diff --git a/parted-1.8.7/m4/long-options.m4 b/parted-1.8.7/m4/long-options.m4
new file mode 100644
index 0000000..2712bad
--- /dev/null
+++ b/parted-1.8.7/m4/long-options.m4
@@ -0,0 +1,12 @@
+# long-options.m4 serial 5
+dnl Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_LONG_OPTIONS],
+[
+  AC_LIBOBJ([long-options])
+
+  dnl Prerequisites of lib/long-options.c.
+])
diff --git a/parted-1.8.7/m4/longlong.m4 b/parted-1.8.7/m4/longlong.m4
new file mode 100644
index 0000000..1f9e862
--- /dev/null
+++ b/parted-1.8.7/m4/longlong.m4
@@ -0,0 +1,72 @@
+# longlong.m4 serial 10
+dnl Copyright (C) 1999-2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Paul Eggert.
+
+# Define HAVE_LONG_LONG_INT if 'long long int' works.
+# This fixes a bug in Autoconf 2.60, but can be removed once we
+# assume 2.61 everywhere.
+
+# Note: If the type 'long long int' exists but is only 32 bits large
+# (as on some very old compilers), HAVE_LONG_LONG_INT will not be
+# defined. In this case you can treat 'long long int' like 'long int'.
+
+AC_DEFUN([AC_TYPE_LONG_LONG_INT],
+[
+  AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int],
+    [AC_LINK_IFELSE(
+       [AC_LANG_PROGRAM(
+	  [[long long int ll = 9223372036854775807ll;
+	    long long int nll = -9223372036854775807LL;
+	    typedef int a[((-9223372036854775807LL < 0
+			    && 0 < 9223372036854775807ll)
+			   ? 1 : -1)];
+	    int i = 63;]],
+	  [[long long int llmax = 9223372036854775807ll;
+	    return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
+		    | (llmax / ll) | (llmax % ll));]])],
+       [dnl This catches a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004.
+	dnl If cross compiling, assume the bug isn't important, since
+	dnl nobody cross compiles for this platform as far as we know.
+        AC_RUN_IFELSE(
+	  [AC_LANG_PROGRAM(
+	     [[@%:@include <limits.h>
+	       @%:@ifndef LLONG_MAX
+	       @%:@ define HALF \
+			(1LL << (sizeof (long long int) * CHAR_BIT - 2))
+	       @%:@ define LLONG_MAX (HALF - 1 + HALF)
+	       @%:@endif]],
+	     [[long long int n = 1;
+	       int i;
+	       for (i = 0; ; i++)
+		 {
+		   long long int m = n << i;
+		   if (m >> i != n)
+		     return 1;
+		   if (LLONG_MAX / 2 < m)
+		     break;
+		 }
+	       return 0;]])],
+	  [ac_cv_type_long_long_int=yes],
+	  [ac_cv_type_long_long_int=no],
+	  [ac_cv_type_long_long_int=yes])],
+       [ac_cv_type_long_long_int=no])])
+  if test $ac_cv_type_long_long_int = yes; then
+    AC_DEFINE([HAVE_LONG_LONG_INT], 1,
+      [Define to 1 if the system has the type `long long int'.])
+  fi
+])
+
+# This macro is obsolescent and should go away soon.
+AC_DEFUN([gl_AC_TYPE_LONG_LONG],
+[
+  AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
+  ac_cv_type_long_long=$ac_cv_type_long_long_int
+  if test $ac_cv_type_long_long = yes; then
+    AC_DEFINE(HAVE_LONG_LONG, 1,
+      [Define if you have the 'long long' type.])
+  fi
+])
diff --git a/parted-1.8.7/m4/mbrtowc.m4 b/parted-1.8.7/m4/mbrtowc.m4
new file mode 100644
index 0000000..a3bd911
--- /dev/null
+++ b/parted-1.8.7/m4/mbrtowc.m4
@@ -0,0 +1,31 @@
+# mbrtowc.m4 serial 8
+dnl Copyright (C) 2001-2002, 2004-2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Paul Eggert
+
+dnl This file can be removed, and gl_FUNC_MBRTOWC replaced with
+dnl AC_FUNC_MBRTOWC, when autoconf 2.60 can be assumed everywhere.
+
+AC_DEFUN([gl_FUNC_MBRTOWC],
+[
+  dnl Same as AC_FUNC_MBRTOWC in autoconf-2.60.
+  AC_CACHE_CHECK([whether mbrtowc and mbstate_t are properly declared],
+    gl_cv_func_mbrtowc,
+    [AC_LINK_IFELSE(
+       [AC_LANG_PROGRAM(
+            [[#include <wchar.h>]],
+            [[wchar_t wc;
+              char const s[] = "";
+              size_t n = 1;
+              mbstate_t state;
+              return ! (sizeof state && (mbrtowc) (&wc, s, n, &state));]])],
+       gl_cv_func_mbrtowc=yes,
+       gl_cv_func_mbrtowc=no)])
+  if test $gl_cv_func_mbrtowc = yes; then
+    AC_DEFINE([HAVE_MBRTOWC], 1,
+      [Define to 1 if mbrtowc and mbstate_t are properly declared.])
+  fi
+])
diff --git a/parted-1.8.7/m4/mbstate_t.m4 b/parted-1.8.7/m4/mbstate_t.m4
new file mode 100644
index 0000000..df2a275
--- /dev/null
+++ b/parted-1.8.7/m4/mbstate_t.m4
@@ -0,0 +1,30 @@
+# mbstate_t.m4 serial 9
+dnl Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# From Paul Eggert.
+
+# BeOS 5 has <wchar.h> but does not define mbstate_t,
+# so you can't declare an object of that type.
+# Check for this incompatibility with Standard C.
+
+# AC_TYPE_MBSTATE_T
+# -----------------
+AC_DEFUN([AC_TYPE_MBSTATE_T],
+  [AC_CACHE_CHECK([for mbstate_t], ac_cv_type_mbstate_t,
+     [AC_COMPILE_IFELSE(
+	[AC_LANG_PROGRAM(
+	   [AC_INCLUDES_DEFAULT
+#	    include <wchar.h>],
+	   [mbstate_t x; return sizeof x;])],
+	[ac_cv_type_mbstate_t=yes],
+	[ac_cv_type_mbstate_t=no])])
+   if test $ac_cv_type_mbstate_t = yes; then
+     AC_DEFINE([HAVE_MBSTATE_T], 1,
+	       [Define to 1 if <wchar.h> declares mbstate_t.])
+   else
+     AC_DEFINE([mbstate_t], int,
+	       [Define to a type if <wchar.h> does not define.])
+   fi])
diff --git a/parted-1.8.7/m4/memchr.m4 b/parted-1.8.7/m4/memchr.m4
new file mode 100644
index 0000000..91b8636
--- /dev/null
+++ b/parted-1.8.7/m4/memchr.m4
@@ -0,0 +1,18 @@
+# memchr.m4 serial 4
+dnl Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_MEMCHR],
+[
+  AC_REPLACE_FUNCS(memchr)
+  if test $ac_cv_func_memchr = no; then
+    gl_PREREQ_MEMCHR
+  fi
+])
+
+# Prerequisites of lib/memchr.c.
+AC_DEFUN([gl_PREREQ_MEMCHR], [
+  AC_CHECK_HEADERS(bp-sym.h)
+])
diff --git a/parted-1.8.7/m4/memcmp.m4 b/parted-1.8.7/m4/memcmp.m4
new file mode 100644
index 0000000..099b141
--- /dev/null
+++ b/parted-1.8.7/m4/memcmp.m4
@@ -0,0 +1,19 @@
+# memcmp.m4 serial 12
+dnl Copyright (C) 2002, 2003, 2004, 2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_MEMCMP],
+[
+  AC_FUNC_MEMCMP
+  dnl Note: AC_FUNC_MEMCMP does AC_LIBOBJ(memcmp).
+  if test $ac_cv_func_memcmp_working = no; then
+    AC_DEFINE(memcmp, rpl_memcmp,
+      [Define to rpl_memcmp if the replacement function should be used.])
+    gl_PREREQ_MEMCMP
+  fi
+])
+
+# Prerequisites of lib/memcmp.c.
+AC_DEFUN([gl_PREREQ_MEMCMP], [:])
diff --git a/parted-1.8.7/m4/memcpy.m4 b/parted-1.8.7/m4/memcpy.m4
new file mode 100644
index 0000000..3edc62e
--- /dev/null
+++ b/parted-1.8.7/m4/memcpy.m4
@@ -0,0 +1,18 @@
+# memcpy.m4 serial 2
+dnl Copyright (C) 2002 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_MEMCPY],
+[
+  AC_REPLACE_FUNCS(memcpy)
+  if test $ac_cv_func_memcpy = no; then
+    gl_PREREQ_MEMCPY
+  fi
+])
+
+# Prerequisites of lib/memcpy.c.
+AC_DEFUN([gl_PREREQ_MEMCPY], [
+  :
+])
diff --git a/parted-1.8.7/m4/memmove.m4 b/parted-1.8.7/m4/memmove.m4
new file mode 100644
index 0000000..66054e4
--- /dev/null
+++ b/parted-1.8.7/m4/memmove.m4
@@ -0,0 +1,18 @@
+# memmove.m4 serial 2
+dnl Copyright (C) 2002 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_MEMMOVE],
+[
+  AC_REPLACE_FUNCS(memmove)
+  if test $ac_cv_func_memmove = no; then
+    gl_PREREQ_MEMMOVE
+  fi
+])
+
+# Prerequisites of lib/memmove.c.
+AC_DEFUN([gl_PREREQ_MEMMOVE], [
+  :
+])
diff --git a/parted-1.8.7/m4/memset.m4 b/parted-1.8.7/m4/memset.m4
new file mode 100644
index 0000000..14ac267
--- /dev/null
+++ b/parted-1.8.7/m4/memset.m4
@@ -0,0 +1,18 @@
+# memset.m4 serial 2
+dnl Copyright (C) 2002 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_MEMSET],
+[
+  AC_REPLACE_FUNCS(memset)
+  if test $ac_cv_func_memset = no; then
+    gl_PREREQ_MEMSET
+  fi
+])
+
+# Prerequisites of lib/memset.c.
+AC_DEFUN([gl_PREREQ_MEMSET], [
+  :
+])
diff --git a/parted-1.8.7/m4/nls.m4 b/parted-1.8.7/m4/nls.m4
new file mode 100644
index 0000000..7967cc2
--- /dev/null
+++ b/parted-1.8.7/m4/nls.m4
@@ -0,0 +1,31 @@
+# nls.m4 serial 3 (gettext-0.15)
+dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+AC_PREREQ(2.50)
+
+AC_DEFUN([AM_NLS],
+[
+  AC_MSG_CHECKING([whether NLS is requested])
+  dnl Default is enabled NLS
+  AC_ARG_ENABLE(nls,
+    [  --disable-nls           do not use Native Language Support],
+    USE_NLS=$enableval, USE_NLS=yes)
+  AC_MSG_RESULT($USE_NLS)
+  AC_SUBST(USE_NLS)
+])
diff --git a/parted-1.8.7/m4/po.m4 b/parted-1.8.7/m4/po.m4
new file mode 100644
index 0000000..00133ef
--- /dev/null
+++ b/parted-1.8.7/m4/po.m4
@@ -0,0 +1,428 @@
+# po.m4 serial 13 (gettext-0.15)
+dnl Copyright (C) 1995-2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+AC_PREREQ(2.50)
+
+dnl Checks for all prerequisites of the po subdirectory.
+AC_DEFUN([AM_PO_SUBDIRS],
+[
+  AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+  AC_REQUIRE([AC_PROG_INSTALL])dnl
+  AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
+  AC_REQUIRE([AM_NLS])dnl
+
+  dnl Perform the following tests also if --disable-nls has been given,
+  dnl because they are needed for "make dist" to work.
+
+  dnl Search for GNU msgfmt in the PATH.
+  dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
+  dnl The second test excludes FreeBSD msgfmt.
+  AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+    [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
+     (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+    :)
+  AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+
+  dnl Test whether it is GNU msgfmt >= 0.15.
+changequote(,)dnl
+  case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+    '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;;
+    *) MSGFMT_015=$MSGFMT ;;
+  esac
+changequote([,])dnl
+  AC_SUBST([MSGFMT_015])
+changequote(,)dnl
+  case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+    '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;;
+    *) GMSGFMT_015=$GMSGFMT ;;
+  esac
+changequote([,])dnl
+  AC_SUBST([GMSGFMT_015])
+
+  dnl Search for GNU xgettext 0.12 or newer in the PATH.
+  dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
+  dnl The second test excludes FreeBSD xgettext.
+  AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+    [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
+     (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+    :)
+  dnl Remove leftover from FreeBSD xgettext call.
+  rm -f messages.po
+
+  dnl Test whether it is GNU xgettext >= 0.15.
+changequote(,)dnl
+  case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+    '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;;
+    *) XGETTEXT_015=$XGETTEXT ;;
+  esac
+changequote([,])dnl
+  AC_SUBST([XGETTEXT_015])
+
+  dnl Search for GNU msgmerge 0.11 or newer in the PATH.
+  AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
+    [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :)
+
+  dnl Installation directories.
+  dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we
+  dnl have to define it here, so that it can be used in po/Makefile.
+  test -n "$localedir" || localedir='${datadir}/locale'
+  AC_SUBST([localedir])
+
+  AC_CONFIG_COMMANDS([po-directories], [[
+    for ac_file in $CONFIG_FILES; do
+      # Support "outfile[:infile[:infile...]]"
+      case "$ac_file" in
+        *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+      esac
+      # PO directories have a Makefile.in generated from Makefile.in.in.
+      case "$ac_file" in */Makefile.in)
+        # Adjust a relative srcdir.
+        ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+        ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+        ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+        # In autoconf-2.13 it is called $ac_given_srcdir.
+        # In autoconf-2.50 it is called $srcdir.
+        test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+        case "$ac_given_srcdir" in
+          .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+          /*) top_srcdir="$ac_given_srcdir" ;;
+          *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
+        esac
+        # Treat a directory as a PO directory if and only if it has a
+        # POTFILES.in file. This allows packages to have multiple PO
+        # directories under different names or in different locations.
+        if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
+          rm -f "$ac_dir/POTFILES"
+          test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
+          cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ 	]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
+          POMAKEFILEDEPS="POTFILES.in"
+          # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
+          # on $ac_dir but don't depend on user-specified configuration
+          # parameters.
+          if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+            # The LINGUAS file contains the set of available languages.
+            if test -n "$OBSOLETE_ALL_LINGUAS"; then
+              test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+            fi
+            ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+            # Hide the ALL_LINGUAS assigment from automake < 1.5.
+            eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+            POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+          else
+            # The set of available languages was given in configure.in.
+            # Hide the ALL_LINGUAS assigment from automake < 1.5.
+            eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
+          fi
+          # Compute POFILES
+          # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+          # Compute UPDATEPOFILES
+          # as      $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+          # Compute DUMMYPOFILES
+          # as      $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+          # Compute GMOFILES
+          # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+          case "$ac_given_srcdir" in
+            .) srcdirpre= ;;
+            *) srcdirpre='$(srcdir)/' ;;
+          esac
+          POFILES=
+          UPDATEPOFILES=
+          DUMMYPOFILES=
+          GMOFILES=
+          for lang in $ALL_LINGUAS; do
+            POFILES="$POFILES $srcdirpre$lang.po"
+            UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+            DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+            GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+          done
+          # CATALOGS depends on both $ac_dir and the user's LINGUAS
+          # environment variable.
+          INST_LINGUAS=
+          if test -n "$ALL_LINGUAS"; then
+            for presentlang in $ALL_LINGUAS; do
+              useit=no
+              if test "%UNSET%" != "$LINGUAS"; then
+                desiredlanguages="$LINGUAS"
+              else
+                desiredlanguages="$ALL_LINGUAS"
+              fi
+              for desiredlang in $desiredlanguages; do
+                # Use the presentlang catalog if desiredlang is
+                #   a. equal to presentlang, or
+                #   b. a variant of presentlang (because in this case,
+                #      presentlang can be used as a fallback for messages
+                #      which are not translated in the desiredlang catalog).
+                case "$desiredlang" in
+                  "$presentlang"*) useit=yes;;
+                esac
+              done
+              if test $useit = yes; then
+                INST_LINGUAS="$INST_LINGUAS $presentlang"
+              fi
+            done
+          fi
+          CATALOGS=
+          if test -n "$INST_LINGUAS"; then
+            for lang in $INST_LINGUAS; do
+              CATALOGS="$CATALOGS $lang.gmo"
+            done
+          fi
+          test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
+          sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
+          for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
+            if test -f "$f"; then
+              case "$f" in
+                *.orig | *.bak | *~) ;;
+                *) cat "$f" >> "$ac_dir/Makefile" ;;
+              esac
+            fi
+          done
+        fi
+        ;;
+      esac
+    done]],
+   [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
+    # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
+    # from automake < 1.5.
+    eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
+    # Capture the value of LINGUAS because we need it to compute CATALOGS.
+    LINGUAS="${LINGUAS-%UNSET%}"
+   ])
+])
+
+dnl Postprocesses a Makefile in a directory containing PO files.
+AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE],
+[
+  # When this code is run, in config.status, two variables have already been
+  # set:
+  # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in,
+  # - LINGUAS is the value of the environment variable LINGUAS at configure
+  #   time.
+
+changequote(,)dnl
+  # Adjust a relative srcdir.
+  ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+  ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+  ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+  # In autoconf-2.13 it is called $ac_given_srcdir.
+  # In autoconf-2.50 it is called $srcdir.
+  test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+  case "$ac_given_srcdir" in
+    .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+    /*) top_srcdir="$ac_given_srcdir" ;;
+    *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
+  esac
+
+  # Find a way to echo strings without interpreting backslash.
+  if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then
+    gt_echo='echo'
+  else
+    if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then
+      gt_echo='printf %s\n'
+    else
+      echo_func () {
+        cat <<EOT
+$*
+EOT
+      }
+      gt_echo='echo_func'
+    fi
+  fi
+
+  # A sed script that extracts the value of VARIABLE from a Makefile.
+  sed_x_variable='
+# Test if the hold space is empty.
+x
+s/P/P/
+x
+ta
+# Yes it was empty. Look if we have the expected variable definition.
+/^[	 ]*VARIABLE[	 ]*=/{
+  # Seen the first line of the variable definition.
+  s/^[	 ]*VARIABLE[	 ]*=//
+  ba
+}
+bd
+:a
+# Here we are processing a line from the variable definition.
+# Remove comment, more precisely replace it with a space.
+s/#.*$/ /
+# See if the line ends in a backslash.
+tb
+:b
+s/\\$//
+# Print the line, without the trailing backslash.
+p
+tc
+# There was no trailing backslash. The end of the variable definition is
+# reached. Clear the hold space.
+s/^.*$//
+x
+bd
+:c
+# A trailing backslash means that the variable definition continues in the
+# next line. Put a nonempty string into the hold space to indicate this.
+s/^.*$/P/
+x
+:d
+'
+changequote([,])dnl
+
+  # Set POTFILES to the value of the Makefile variable POTFILES.
+  sed_x_POTFILES=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'`
+  POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"`
+  # Compute POTFILES_DEPS as
+  #   $(foreach file, $(POTFILES), $(top_srcdir)/$(file))
+  POTFILES_DEPS=
+  for file in $POTFILES; do
+    POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file"
+  done
+  POMAKEFILEDEPS=""
+
+  if test -n "$OBSOLETE_ALL_LINGUAS"; then
+    test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+  fi
+  if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+    # The LINGUAS file contains the set of available languages.
+    ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+    POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+  else
+    # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS.
+    sed_x_LINGUAS=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`
+    ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
+  fi
+  # Hide the ALL_LINGUAS assigment from automake < 1.5.
+  eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+  # Compute POFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+  # Compute UPDATEPOFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+  # Compute DUMMYPOFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+  # Compute GMOFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+  # Compute PROPERTIESFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties)
+  # Compute CLASSFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class)
+  # Compute QMFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm)
+  # Compute MSGFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg)
+  # Compute RESOURCESDLLFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll)
+  case "$ac_given_srcdir" in
+    .) srcdirpre= ;;
+    *) srcdirpre='$(srcdir)/' ;;
+  esac
+  POFILES=
+  UPDATEPOFILES=
+  DUMMYPOFILES=
+  GMOFILES=
+  PROPERTIESFILES=
+  CLASSFILES=
+  QMFILES=
+  MSGFILES=
+  RESOURCESDLLFILES=
+  for lang in $ALL_LINGUAS; do
+    POFILES="$POFILES $srcdirpre$lang.po"
+    UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+    DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+    GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+    PROPERTIESFILES="$PROPERTIESFILES \$(top_srcdir)/\$(DOMAIN)_$lang.properties"
+    CLASSFILES="$CLASSFILES \$(top_srcdir)/\$(DOMAIN)_$lang.class"
+    QMFILES="$QMFILES $srcdirpre$lang.qm"
+    frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+    MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg"
+    frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
+    RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll"
+  done
+  # CATALOGS depends on both $ac_dir and the user's LINGUAS
+  # environment variable.
+  INST_LINGUAS=
+  if test -n "$ALL_LINGUAS"; then
+    for presentlang in $ALL_LINGUAS; do
+      useit=no
+      if test "%UNSET%" != "$LINGUAS"; then
+        desiredlanguages="$LINGUAS"
+      else
+        desiredlanguages="$ALL_LINGUAS"
+      fi
+      for desiredlang in $desiredlanguages; do
+        # Use the presentlang catalog if desiredlang is
+        #   a. equal to presentlang, or
+        #   b. a variant of presentlang (because in this case,
+        #      presentlang can be used as a fallback for messages
+        #      which are not translated in the desiredlang catalog).
+        case "$desiredlang" in
+          "$presentlang"*) useit=yes;;
+        esac
+      done
+      if test $useit = yes; then
+        INST_LINGUAS="$INST_LINGUAS $presentlang"
+      fi
+    done
+  fi
+  CATALOGS=
+  JAVACATALOGS=
+  QTCATALOGS=
+  TCLCATALOGS=
+  CSHARPCATALOGS=
+  if test -n "$INST_LINGUAS"; then
+    for lang in $INST_LINGUAS; do
+      CATALOGS="$CATALOGS $lang.gmo"
+      JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties"
+      QTCATALOGS="$QTCATALOGS $lang.qm"
+      frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+      TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg"
+      frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
+      CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll"
+    done
+  fi
+
+  sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp"
+  if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then
+    # Add dependencies that cannot be formulated as a simple suffix rule.
+    for lang in $ALL_LINGUAS; do
+      frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+      cat >> "$ac_file.tmp" <<EOF
+$frobbedlang.msg: $lang.po
+	@echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
+	\$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+EOF
+    done
+  fi
+  if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then
+    # Add dependencies that cannot be formulated as a simple suffix rule.
+    for lang in $ALL_LINGUAS; do
+      frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
+      cat >> "$ac_file.tmp" <<EOF
+$frobbedlang/\$(DOMAIN).resources.dll: $lang.po
+	@echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
+	\$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+EOF
+    done
+  fi
+  if test -n "$POMAKEFILEDEPS"; then
+    cat >> "$ac_file.tmp" <<EOF
+Makefile: $POMAKEFILEDEPS
+EOF
+  fi
+  mv "$ac_file.tmp" "$ac_file"
+])
diff --git a/parted-1.8.7/m4/progtest.m4 b/parted-1.8.7/m4/progtest.m4
new file mode 100644
index 0000000..a56365c
--- /dev/null
+++ b/parted-1.8.7/m4/progtest.m4
@@ -0,0 +1,92 @@
+# progtest.m4 serial 4 (gettext-0.14.2)
+dnl Copyright (C) 1996-2003, 2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl   Ulrich Drepper <drepper@cygnus.com>, 1996.
+
+AC_PREREQ(2.50)
+
+# Search path for a program which passes the given test.
+
+dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
+dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
+AC_DEFUN([AM_PATH_PROG_WITH_TEST],
+[
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+  ac_executable_p="test -x"
+else
+  ac_executable_p="test -f"
+fi
+rm -f conf$$.file
+
+# Extract the first word of "$2", so it can be a program name with args.
+set dummy $2; ac_word=[$]2
+AC_MSG_CHECKING([for $ac_word])
+AC_CACHE_VAL(ac_cv_path_$1,
+[case "[$]$1" in
+  [[\\/]]* | ?:[[\\/]]*)
+    ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+    ;;
+  *)
+    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in ifelse([$5], , $PATH, [$5]); do
+      IFS="$ac_save_IFS"
+      test -z "$ac_dir" && ac_dir=.
+      for ac_exec_ext in '' $ac_executable_extensions; do
+        if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+          echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD
+          if [$3]; then
+            ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
+            break 2
+          fi
+        fi
+      done
+    done
+    IFS="$ac_save_IFS"
+dnl If no 4th arg is given, leave the cache variable unset,
+dnl so AC_PATH_PROGS will keep looking.
+ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+])dnl
+    ;;
+esac])dnl
+$1="$ac_cv_path_$1"
+if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
+  AC_MSG_RESULT([$]$1)
+else
+  AC_MSG_RESULT(no)
+fi
+AC_SUBST($1)dnl
+])
diff --git a/parted-1.8.7/m4/quotearg.m4 b/parted-1.8.7/m4/quotearg.m4
new file mode 100644
index 0000000..db635d0
--- /dev/null
+++ b/parted-1.8.7/m4/quotearg.m4
@@ -0,0 +1,15 @@
+# quotearg.m4 serial 6
+dnl Copyright (C) 2002, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_QUOTEARG],
+[
+  AC_LIBOBJ([quotearg])
+
+  dnl Prerequisites of lib/quotearg.c.
+  AC_CHECK_FUNCS_ONCE([mbsinit])
+  AC_TYPE_MBSTATE_T
+  gl_FUNC_MBRTOWC
+])
diff --git a/parted-1.8.7/m4/regex.m4 b/parted-1.8.7/m4/regex.m4
new file mode 100644
index 0000000..b8d5b1e
--- /dev/null
+++ b/parted-1.8.7/m4/regex.m4
@@ -0,0 +1,211 @@
+#serial 46
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+# 2006, 2007 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+dnl Initially derived from code in GNU grep.
+dnl Mostly written by Jim Meyering.
+
+AC_PREREQ([2.50])
+
+AC_DEFUN([gl_REGEX],
+[
+  AC_CHECK_HEADERS_ONCE([locale.h])
+
+  AC_ARG_WITH([included-regex],
+    [AC_HELP_STRING([--without-included-regex],
+		    [don't compile regex; this is the default on 32-bit
+		     systems with recent-enough versions of the GNU C
+		     Library (use with caution on other systems).
+		     On systems with 64-bit ptrdiff_t and 32-bit int,
+		     --with-included-regex is the default, in case
+		     regex functions operate on very long strings (>2GB)])])
+
+  case $with_included_regex in #(
+  yes|no) ac_use_included_regex=$with_included_regex
+	;;
+  '')
+    # If the system regex support is good enough that it passes the
+    # following run test, then default to *not* using the included regex.c.
+    # If cross compiling, assume the test would fail and use the included
+    # regex.c.
+    AC_CACHE_CHECK([for working re_compile_pattern],
+		   [gl_cv_func_re_compile_pattern_working],
+      [AC_RUN_IFELSE(
+	[AC_LANG_PROGRAM(
+	  [AC_INCLUDES_DEFAULT
+	   #if HAVE_LOCALE_H
+	    #include <locale.h>
+	   #endif
+	   #include <limits.h>
+	   #include <regex.h>
+	   ],
+	  [[static struct re_pattern_buffer regex;
+	    unsigned char folded_chars[UCHAR_MAX + 1];
+	    int i;
+	    const char *s;
+	    struct re_registers regs;
+
+	    #if HAVE_LOCALE_H
+	      /* http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html
+		 This test needs valgrind to catch the bug on Debian
+		 GNU/Linux 3.1 x86, but it might catch the bug better
+		 on other platforms and it shouldn't hurt to try the
+		 test here.  */
+	      if (setlocale (LC_ALL, "en_US.UTF-8"))
+		{
+		  static char const pat[] = "insert into";
+		  static char const data[] =
+		    "\xFF\0\x12\xA2\xAA\xC4\xB1,K\x12\xC4\xB1*\xACK";
+		  re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE
+				 | RE_ICASE);
+		  memset (&regex, 0, sizeof regex);
+		  s = re_compile_pattern (pat, sizeof pat - 1, &regex);
+		  if (s)
+		    return 1;
+		  if (re_search (&regex, data, sizeof data - 1,
+				 0, sizeof data - 1, &regs)
+		      != -1)
+		    return 1;
+		  if (! setlocale (LC_ALL, "C"))
+		    return 1;
+		}
+	    #endif
+
+	    /* This test is from glibc bug 3957, reported by Andrew Mackey.  */
+	    re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE);
+	    memset (&regex, 0, sizeof regex);
+	    s = re_compile_pattern ("a[^x]b", 6, &regex);
+	    if (s)
+	      return 1;
+
+	    /* This should fail, but succeeds for glibc-2.5.  */
+	    if (re_search (&regex, "a\nb", 3, 0, 3, &regs) != -1)
+	      return 1;
+
+	    /* This regular expression is from Spencer ere test number 75
+	       in grep-2.3.  */
+	    re_set_syntax (RE_SYNTAX_POSIX_EGREP);
+	    memset (&regex, 0, sizeof regex);
+	    for (i = 0; i <= UCHAR_MAX; i++)
+	      folded_chars[i] = i;
+	    regex.translate = folded_chars;
+	    s = re_compile_pattern ("a[[:@:>@:]]b\n", 11, &regex);
+	    /* This should fail with _Invalid character class name_ error.  */
+	    if (!s)
+	      return 1;
+
+	    /* This should succeed, but does not for glibc-2.1.3.  */
+	    memset (&regex, 0, sizeof regex);
+	    s = re_compile_pattern ("{1", 2, &regex);
+
+	    if (s)
+	      return 1;
+
+	    /* The following example is derived from a problem report
+	       against gawk from Jorge Stolfi <stolfi@ic.unicamp.br>.  */
+	    memset (&regex, 0, sizeof regex);
+	    s = re_compile_pattern ("[an\371]*n", 7, &regex);
+	    if (s)
+	      return 1;
+
+	    /* This should match, but does not for glibc-2.2.1.  */
+	    if (re_match (&regex, "an", 2, 0, &regs) != 2)
+	      return 1;
+
+	    memset (&regex, 0, sizeof regex);
+	    s = re_compile_pattern ("x", 1, &regex);
+	    if (s)
+	      return 1;
+
+	    /* glibc-2.2.93 does not work with a negative RANGE argument.  */
+	    if (re_search (&regex, "wxy", 3, 2, -2, &regs) != 1)
+	      return 1;
+
+	    /* The version of regex.c in older versions of gnulib
+	       ignored RE_ICASE.  Detect that problem too.  */
+	    re_set_syntax (RE_SYNTAX_EMACS | RE_ICASE);
+	    memset (&regex, 0, sizeof regex);
+	    s = re_compile_pattern ("x", 1, &regex);
+	    if (s)
+	      return 1;
+
+	    if (re_search (&regex, "WXY", 3, 0, 3, &regs) < 0)
+	      return 1;
+
+	    /* REG_STARTEND was added to glibc on 2004-01-15.
+	       Reject older versions.  */
+	    if (! REG_STARTEND)
+	      return 1;
+
+	    /* Reject hosts whose regoff_t values are too narrow.
+	       These include glibc 2.3.5 on hosts with 64-bit ptrdiff_t
+	       and 32-bit int.  */
+	    if (sizeof (regoff_t) < sizeof (ptrdiff_t)
+		|| sizeof (regoff_t) < sizeof (ssize_t))
+	      return 1;
+
+	    return 0;]])],
+       [gl_cv_func_re_compile_pattern_working=yes],
+       [gl_cv_func_re_compile_pattern_working=no],
+       dnl When crosscompiling, assume it is not working.
+       [gl_cv_func_re_compile_pattern_working=no])])
+    case $gl_cv_func_re_compile_pattern_working in #(
+    yes) ac_use_included_regex=no;; #(
+    no) ac_use_included_regex=yes;;
+    esac
+    ;;
+  *) AC_MSG_ERROR([Invalid value for --with-included-regex: $with_included_regex])
+    ;;
+  esac
+
+  if test $ac_use_included_regex = yes; then
+    AC_DEFINE([_REGEX_LARGE_OFFSETS], 1,
+      [Define if you want regoff_t to be at least as wide POSIX requires.])
+    AC_DEFINE([re_syntax_options], [rpl_re_syntax_options],
+      [Define to rpl_re_syntax_options if the replacement should be used.])
+    AC_DEFINE([re_set_syntax], [rpl_re_set_syntax],
+      [Define to rpl_re_set_syntax if the replacement should be used.])
+    AC_DEFINE([re_compile_pattern], [rpl_re_compile_pattern],
+      [Define to rpl_re_compile_pattern if the replacement should be used.])
+    AC_DEFINE([re_compile_fastmap], [rpl_re_compile_fastmap],
+      [Define to rpl_re_compile_fastmap if the replacement should be used.])
+    AC_DEFINE([re_search], [rpl_re_search],
+      [Define to rpl_re_search if the replacement should be used.])
+    AC_DEFINE([re_search_2], [rpl_re_search_2],
+      [Define to rpl_re_search_2 if the replacement should be used.])
+    AC_DEFINE([re_match], [rpl_re_match],
+      [Define to rpl_re_match if the replacement should be used.])
+    AC_DEFINE([re_match_2], [rpl_re_match_2],
+      [Define to rpl_re_match_2 if the replacement should be used.])
+    AC_DEFINE([re_set_registers], [rpl_re_set_registers],
+      [Define to rpl_re_set_registers if the replacement should be used.])
+    AC_DEFINE([re_comp], [rpl_re_comp],
+      [Define to rpl_re_comp if the replacement should be used.])
+    AC_DEFINE([re_exec], [rpl_re_exec],
+      [Define to rpl_re_exec if the replacement should be used.])
+    AC_DEFINE([regcomp], [rpl_regcomp],
+      [Define to rpl_regcomp if the replacement should be used.])
+    AC_DEFINE([regexec], [rpl_regexec],
+      [Define to rpl_regexec if the replacement should be used.])
+    AC_DEFINE([regerror], [rpl_regerror],
+      [Define to rpl_regerror if the replacement should be used.])
+    AC_DEFINE([regfree], [rpl_regfree],
+      [Define to rpl_regfree if the replacement should be used.])
+    AC_LIBOBJ([regex])
+    gl_PREREQ_REGEX
+  fi
+])
+
+# Prerequisites of lib/regex.c and lib/regex_internal.c.
+AC_DEFUN([gl_PREREQ_REGEX],
+[
+  AC_REQUIRE([AC_GNU_SOURCE])
+  AC_REQUIRE([AC_C_RESTRICT])
+  AC_CHECK_FUNCS_ONCE([iswctype mbrtowc wcrtomb wcscoll])
+  AC_CHECK_DECLS([isblank], [], [], [#include <ctype.h>])
+])
diff --git a/parted-1.8.7/m4/rename.m4 b/parted-1.8.7/m4/rename.m4
new file mode 100644
index 0000000..39ad5e7
--- /dev/null
+++ b/parted-1.8.7/m4/rename.m4
@@ -0,0 +1,52 @@
+#serial 10
+
+# Copyright (C) 2001, 2003, 2005, 2006 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+dnl From Volker Borchert.
+dnl Determine whether rename works for source file names with a trailing slash.
+dnl The rename from SunOS 4.1.1_U1 doesn't.
+dnl
+dnl If it doesn't, then define RENAME_TRAILING_SLASH_BUG and arrange
+dnl to compile the wrapper function.
+dnl
+
+AC_DEFUN([gl_FUNC_RENAME],
+[
+ AC_CACHE_CHECK([whether rename is broken],
+  gl_cv_func_rename_trailing_slash_bug,
+  [
+    rm -rf conftest.d1 conftest.d2
+    mkdir conftest.d1 ||
+      AC_MSG_ERROR([cannot create temporary directory])
+    AC_TRY_RUN([
+#       include <stdio.h>
+#       include <stdlib.h>
+        int
+        main ()
+        {
+          exit (rename ("conftest.d1/", "conftest.d2") ? 1 : 0);
+        }
+      ],
+      gl_cv_func_rename_trailing_slash_bug=no,
+      gl_cv_func_rename_trailing_slash_bug=yes,
+      dnl When crosscompiling, assume rename is broken.
+      gl_cv_func_rename_trailing_slash_bug=yes)
+
+      rm -rf conftest.d1 conftest.d2
+  ])
+  if test $gl_cv_func_rename_trailing_slash_bug = yes; then
+    AC_LIBOBJ(rename)
+    AC_DEFINE(rename, rpl_rename,
+      [Define to rpl_rename if the replacement function should be used.])
+    AC_DEFINE(RENAME_TRAILING_SLASH_BUG, 1,
+      [Define if rename does not work for source file names with a trailing
+       slash, like the one from SunOS 4.1.1_U1.])
+    gl_PREREQ_RENAME
+  fi
+])
+
+# Prerequisites of lib/rename.c.
+AC_DEFUN([gl_PREREQ_RENAME], [:])
diff --git a/parted-1.8.7/m4/rpmatch.m4 b/parted-1.8.7/m4/rpmatch.m4
new file mode 100644
index 0000000..4a471ac
--- /dev/null
+++ b/parted-1.8.7/m4/rpmatch.m4
@@ -0,0 +1,16 @@
+# rpmatch.m4 serial 5
+dnl Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_RPMATCH],
+[
+  AC_REPLACE_FUNCS(rpmatch)
+  if test $ac_cv_func_rpmatch = no; then
+    gl_PREREQ_RPMATCH
+  fi
+])
+
+# Prerequisites of lib/rpmatch.c.
+AC_DEFUN([gl_PREREQ_RPMATCH], [:])
diff --git a/parted-1.8.7/m4/safe-read.m4 b/parted-1.8.7/m4/safe-read.m4
new file mode 100644
index 0000000..7a89d0a
--- /dev/null
+++ b/parted-1.8.7/m4/safe-read.m4
@@ -0,0 +1,18 @@
+# safe-read.m4 serial 5
+dnl Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_SAFE_READ],
+[
+  AC_LIBOBJ([safe-read])
+
+  gl_PREREQ_SAFE_READ
+])
+
+# Prerequisites of lib/safe-read.c.
+AC_DEFUN([gl_PREREQ_SAFE_READ],
+[
+  AC_REQUIRE([gt_TYPE_SSIZE_T])
+])
diff --git a/parted-1.8.7/m4/safe-write.m4 b/parted-1.8.7/m4/safe-write.m4
new file mode 100644
index 0000000..db119ff
--- /dev/null
+++ b/parted-1.8.7/m4/safe-write.m4
@@ -0,0 +1,18 @@
+# safe-write.m4 serial 3
+dnl Copyright (C) 2002, 2005, 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_SAFE_WRITE],
+[
+  AC_LIBOBJ([safe-write])
+
+  gl_PREREQ_SAFE_WRITE
+])
+
+# Prerequisites of lib/safe-write.c.
+AC_DEFUN([gl_PREREQ_SAFE_WRITE],
+[
+  gl_PREREQ_SAFE_READ
+])
diff --git a/parted-1.8.7/m4/ssize_t.m4 b/parted-1.8.7/m4/ssize_t.m4
new file mode 100644
index 0000000..4eaef93
--- /dev/null
+++ b/parted-1.8.7/m4/ssize_t.m4
@@ -0,0 +1,21 @@
+# ssize_t.m4 serial 4 (gettext-0.15)
+dnl Copyright (C) 2001-2003, 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+dnl Test whether ssize_t is defined.
+
+AC_DEFUN([gt_TYPE_SSIZE_T],
+[
+  AC_CACHE_CHECK([for ssize_t], [gt_cv_ssize_t],
+    [AC_TRY_COMPILE([#include <sys/types.h>],
+       [int x = sizeof (ssize_t *) + sizeof (ssize_t);
+        return !x;],
+       [gt_cv_ssize_t=yes], [gt_cv_ssize_t=no])])
+  if test $gt_cv_ssize_t = no; then
+    AC_DEFINE([ssize_t], [int],
+              [Define as a signed type of the same size as size_t.])
+  fi
+])
diff --git a/parted-1.8.7/m4/stdarg.m4 b/parted-1.8.7/m4/stdarg.m4
new file mode 100644
index 0000000..e8e680a
--- /dev/null
+++ b/parted-1.8.7/m4/stdarg.m4
@@ -0,0 +1,40 @@
+# stdarg.m4 serial 1
+dnl Copyright (C) 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+dnl Provide a working va_copy in combination with <stdarg.h>.
+
+AC_DEFUN([gl_STDARG_H],
+[
+  AC_MSG_CHECKING([for va_copy])
+  AC_CACHE_VAL([gl_cv_func_va_copy], [
+    AC_TRY_COMPILE([#include <stdarg.h>], [
+#ifndef va_copy
+void (*func) (va_list, va_list) = va_copy;
+#endif
+],
+      [gl_cv_func_va_copy=yes], [gl_cv_func_va_copy=no])])
+  AC_MSG_RESULT([$gl_cv_func_va_copy])
+  if test $gl_cv_func_va_copy = no; then
+    # Provide a substitute, either __va_copy or as a simple assignment.
+    AC_CACHE_VAL([gl_cv_func___va_copy], [
+      AC_TRY_COMPILE([#include <stdarg.h>], [
+#ifndef __va_copy
+error, bail out
+#endif
+],
+        [gl_cv_func___va_copy=yes], [gl_cv_func___va_copy=no])])
+    if test $gl_cv_func___va_copy = yes; then
+      AC_DEFINE([va_copy], [__va_copy],
+        [Define as a macro for copying va_list variables.])
+    else
+      AH_VERBATIM([gl_VA_COPY], [/* A replacement for va_copy, if needed.  */
+#define gl_va_copy(a,b) ((a) = (b))])
+      AC_DEFINE([va_copy], [gl_va_copy],
+        [Define as a macro for copying va_list variables.])
+    fi
+  fi
+])
diff --git a/parted-1.8.7/m4/stdbool.m4 b/parted-1.8.7/m4/stdbool.m4
new file mode 100644
index 0000000..2204ecd
--- /dev/null
+++ b/parted-1.8.7/m4/stdbool.m4
@@ -0,0 +1,115 @@
+# Check for stdbool.h that conforms to C99.
+
+dnl Copyright (C) 2002-2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# Prepare for substituting <stdbool.h> if it is not supported.
+
+AC_DEFUN([AM_STDBOOL_H],
+[
+  AC_REQUIRE([AC_HEADER_STDBOOL])
+
+  # Define two additional variables used in the Makefile substitution.
+
+  if test "$ac_cv_header_stdbool_h" = yes; then
+    STDBOOL_H=''
+  else
+    STDBOOL_H='stdbool.h'
+  fi
+  AC_SUBST([STDBOOL_H])
+
+  if test "$ac_cv_type__Bool" = yes; then
+    HAVE__BOOL=1
+  else
+    HAVE__BOOL=0
+  fi
+  AC_SUBST([HAVE__BOOL])
+])
+
+# AM_STDBOOL_H will be renamed to gl_STDBOOL_H in the future.
+AC_DEFUN([gl_STDBOOL_H], [AM_STDBOOL_H])
+
+# This macro is only needed in autoconf <= 2.59.  Newer versions of autoconf
+# have this macro built-in.
+
+AC_DEFUN([AC_HEADER_STDBOOL],
+  [AC_CACHE_CHECK([for stdbool.h that conforms to C99],
+     [ac_cv_header_stdbool_h],
+     [AC_TRY_COMPILE(
+	[
+	  #include <stdbool.h>
+	  #ifndef bool
+	   "error: bool is not defined"
+	  #endif
+	  #ifndef false
+	   "error: false is not defined"
+	  #endif
+	  #if false
+	   "error: false is not 0"
+	  #endif
+	  #ifndef true
+	   "error: true is not defined"
+	  #endif
+	  #if true != 1
+	   "error: true is not 1"
+	  #endif
+	  #ifndef __bool_true_false_are_defined
+	   "error: __bool_true_false_are_defined is not defined"
+	  #endif
+
+	  struct s { _Bool s: 1; _Bool t; } s;
+
+	  char a[true == 1 ? 1 : -1];
+	  char b[false == 0 ? 1 : -1];
+	  char c[__bool_true_false_are_defined == 1 ? 1 : -1];
+	  char d[(bool) 0.5 == true ? 1 : -1];
+	  bool e = &s;
+	  char f[(_Bool) 0.0 == false ? 1 : -1];
+	  char g[true];
+	  char h[sizeof (_Bool)];
+	  char i[sizeof s.t];
+	  enum { j = false, k = true, l = false * true, m = true * 256 };
+	  _Bool n[m];
+	  char o[sizeof n == m * sizeof n[0] ? 1 : -1];
+	  char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
+	  #if defined __xlc__ || defined __GNUC__
+	   /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0
+	      reported by James Lemley on 2005-10-05; see
+	      http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
+	      This test is not quite right, since xlc is allowed to
+	      reject this program, as the initializer for xlcbug is
+	      not one of the forms that C requires support for.
+	      However, doing the test right would require a run-time
+	      test, and that would make cross-compilation harder.
+	      Let us hope that IBM fixes the xlc bug, and also adds
+	      support for this kind of constant expression.  In the
+	      meantime, this test will reject xlc, which is OK, since
+	      our stdbool.h substitute should suffice.  We also test
+	      this with GCC, where it should work, to detect more
+	      quickly whether someone messes up the test in the
+	      future.  */
+	   char digs[] = "0123456789";
+	   int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1);
+	  #endif
+	  /* Catch a bug in an HP-UX C compiler.  See
+	     http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+	     http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+	   */
+	  _Bool q = true;
+	  _Bool *pq = &q;
+	],
+	[
+	  *pq |= q;
+	  *pq |= ! q;
+	  /* Refer to every declared value, to avoid compiler optimizations.  */
+	  return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
+		  + !m + !n + !o + !p + !q + !pq);
+	],
+	[ac_cv_header_stdbool_h=yes],
+	[ac_cv_header_stdbool_h=no])])
+   AC_CHECK_TYPES([_Bool])
+   if test $ac_cv_header_stdbool_h = yes; then
+     AC_DEFINE(HAVE_STDBOOL_H, 1, [Define to 1 if stdbool.h conforms to C99.])
+   fi])
diff --git a/parted-1.8.7/m4/stdint.m4 b/parted-1.8.7/m4/stdint.m4
new file mode 100644
index 0000000..659ca85
--- /dev/null
+++ b/parted-1.8.7/m4/stdint.m4
@@ -0,0 +1,369 @@
+# stdint.m4 serial 23
+dnl Copyright (C) 2001-2002, 2004-2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Paul Eggert and Bruno Haible.
+dnl Test whether <stdint.h> is supported or must be substituted.
+
+AC_DEFUN([gl_STDINT_H],
+[
+  AC_PREREQ(2.59)dnl
+
+  dnl Check for long long int and unsigned long long int.
+  AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
+  if test $ac_cv_type_long_long_int = yes; then
+    HAVE_LONG_LONG_INT=1
+  else
+    HAVE_LONG_LONG_INT=0
+  fi
+  AC_SUBST([HAVE_LONG_LONG_INT])
+  AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
+  if test $ac_cv_type_unsigned_long_long_int = yes; then
+    HAVE_UNSIGNED_LONG_LONG_INT=1
+  else
+    HAVE_UNSIGNED_LONG_LONG_INT=0
+  fi
+  AC_SUBST([HAVE_UNSIGNED_LONG_LONG_INT])
+
+  dnl Check for <inttypes.h>.
+  dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_inttypes_h.
+  if test $ac_cv_header_inttypes_h = yes; then
+    HAVE_INTTYPES_H=1
+  else
+    HAVE_INTTYPES_H=0
+  fi
+  AC_SUBST([HAVE_INTTYPES_H])
+
+  dnl Check for <sys/types.h>.
+  dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_sys_types_h.
+  if test $ac_cv_header_sys_types_h = yes; then
+    HAVE_SYS_TYPES_H=1
+  else
+    HAVE_SYS_TYPES_H=0
+  fi
+  AC_SUBST([HAVE_SYS_TYPES_H])
+
+  dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_stdint_h.
+  if test $ac_cv_header_stdint_h = yes; then
+    gl_ABSOLUTE_HEADER([stdint.h])
+    ABSOLUTE_STDINT_H=\"$gl_cv_absolute_stdint_h\"
+    HAVE_STDINT_H=1
+  else
+    ABSOLUTE_STDINT_H=\"no/such/file/stdint.h\"
+    HAVE_STDINT_H=0
+  fi
+  AC_SUBST([ABSOLUTE_STDINT_H])
+  AC_SUBST([HAVE_STDINT_H])
+
+  dnl Now see whether we need a substitute <stdint.h>.  Use
+  dnl ABSOLUTE_STDINT_H, not <stdint.h>, so that it also works during
+  dnl a "config.status --recheck" if a stdint.h has been
+  dnl created in the build directory.
+  if test $ac_cv_header_stdint_h = yes; then
+    AC_CACHE_CHECK([whether stdint.h conforms to C99],
+      [gl_cv_header_working_stdint_h],
+      [gl_cv_header_working_stdint_h=no
+       AC_COMPILE_IFELSE([
+         AC_LANG_PROGRAM([gl_STDINT_INCLUDES
+         [
+#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
+#define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */
+#include ABSOLUTE_STDINT_H
+#ifdef INT8_MAX
+int8_t a1 = INT8_MAX;
+int8_t a1min = INT8_MIN;
+#endif
+#ifdef INT16_MAX
+int16_t a2 = INT16_MAX;
+int16_t a2min = INT16_MIN;
+#endif
+#ifdef INT32_MAX
+int32_t a3 = INT32_MAX;
+int32_t a3min = INT32_MIN;
+#endif
+#ifdef INT64_MAX
+int64_t a4 = INT64_MAX;
+int64_t a4min = INT64_MIN;
+#endif
+#ifdef UINT8_MAX
+uint8_t b1 = UINT8_MAX;
+#else
+typedef int b1[(unsigned char) -1 != 255 ? 1 : -1];
+#endif
+#ifdef UINT16_MAX
+uint16_t b2 = UINT16_MAX;
+#endif
+#ifdef UINT32_MAX
+uint32_t b3 = UINT32_MAX;
+#endif
+#ifdef UINT64_MAX
+uint64_t b4 = UINT64_MAX;
+#endif
+int_least8_t c1 = INT8_C (0x7f);
+int_least8_t c1max = INT_LEAST8_MAX;
+int_least8_t c1min = INT_LEAST8_MIN;
+int_least16_t c2 = INT16_C (0x7fff);
+int_least16_t c2max = INT_LEAST16_MAX;
+int_least16_t c2min = INT_LEAST16_MIN;
+int_least32_t c3 = INT32_C (0x7fffffff);
+int_least32_t c3max = INT_LEAST32_MAX;
+int_least32_t c3min = INT_LEAST32_MIN;
+int_least64_t c4 = INT64_C (0x7fffffffffffffff);
+int_least64_t c4max = INT_LEAST64_MAX;
+int_least64_t c4min = INT_LEAST64_MIN;
+uint_least8_t d1 = UINT8_C (0xff);
+uint_least8_t d1max = UINT_LEAST8_MAX;
+uint_least16_t d2 = UINT16_C (0xffff);
+uint_least16_t d2max = UINT_LEAST16_MAX;
+uint_least32_t d3 = UINT32_C (0xffffffff);
+uint_least32_t d3max = UINT_LEAST32_MAX;
+uint_least64_t d4 = UINT64_C (0xffffffffffffffff);
+uint_least64_t d4max = UINT_LEAST64_MAX;
+int_fast8_t e1 = INT_FAST8_MAX;
+int_fast8_t e1min = INT_FAST8_MIN;
+int_fast16_t e2 = INT_FAST16_MAX;
+int_fast16_t e2min = INT_FAST16_MIN;
+int_fast32_t e3 = INT_FAST32_MAX;
+int_fast32_t e3min = INT_FAST32_MIN;
+int_fast64_t e4 = INT_FAST64_MAX;
+int_fast64_t e4min = INT_FAST64_MIN;
+uint_fast8_t f1 = UINT_FAST8_MAX;
+uint_fast16_t f2 = UINT_FAST16_MAX;
+uint_fast32_t f3 = UINT_FAST32_MAX;
+uint_fast64_t f4 = UINT_FAST64_MAX;
+#ifdef INTPTR_MAX
+intptr_t g = INTPTR_MAX;
+intptr_t gmin = INTPTR_MIN;
+#endif
+#ifdef UINTPTR_MAX
+uintptr_t h = UINTPTR_MAX;
+#endif
+intmax_t i = INTMAX_MAX;
+uintmax_t j = UINTMAX_MAX;
+struct s {
+  int check_PTRDIFF: PTRDIFF_MIN < (ptrdiff_t) 0 && (ptrdiff_t) 0 < PTRDIFF_MAX ? 1 : -1;
+  int check_SIG_ATOMIC: SIG_ATOMIC_MIN <= (sig_atomic_t) 0 && (sig_atomic_t) 0 < SIG_ATOMIC_MAX ? 1 : -1;
+  int check_SIZE: (size_t) 0 < SIZE_MAX ? 1 : -1;
+  int check_WCHAR: WCHAR_MIN <= (wchar_t) 0 && (wchar_t) 0 < WCHAR_MAX ? 1 : -1;
+  int check_WINT: WINT_MIN <= (wint_t) 0 && (wint_t) 0 < WINT_MAX ? 1 : -1;
+
+  /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others.  */
+  int check_UINT8_C:
+        (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1;
+  int check_UINT16_C:
+        (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1;
+
+  /* Detect bugs in OpenBSD 3.9 stdint.h.  */
+#ifdef UINT8_MAX
+  int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1;
+#endif
+#ifdef UINT16_MAX
+  int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1;
+#endif
+#ifdef UINT32_MAX
+  int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1;
+#endif
+#ifdef UINT64_MAX
+  int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1;
+#endif
+  int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1;
+  int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1;
+  int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1;
+  int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1;
+  int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1;
+  int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1;
+  int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1;
+  int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1;
+  int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1;
+  int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1;
+  int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1;
+};
+         ]])],
+         [gl_cv_header_working_stdint_h=yes])])
+  fi
+  if test "$gl_cv_header_working_stdint_h" = yes; then
+    STDINT_H=
+  else
+    dnl Check for <sys/inttypes.h>, and for
+    dnl <sys/bitypes.h> (used in Linux libc4 >= 4.6.7 and libc5).
+    AC_CHECK_HEADERS([sys/inttypes.h sys/bitypes.h])
+    if test $ac_cv_header_sys_inttypes_h = yes; then
+      HAVE_SYS_INTTYPES_H=1
+    else
+      HAVE_SYS_INTTYPES_H=0
+    fi
+    AC_SUBST([HAVE_SYS_INTTYPES_H])
+    if test $ac_cv_header_sys_bitypes_h = yes; then
+      HAVE_SYS_BITYPES_H=1
+    else
+      HAVE_SYS_BITYPES_H=0
+    fi
+    AC_SUBST([HAVE_SYS_BITYPES_H])
+
+    gl_STDINT_TYPE_PROPERTIES
+    STDINT_H=stdint.h
+  fi
+  AC_SUBST(STDINT_H)
+])
+
+dnl gl_STDINT_BITSIZEOF(TYPES, INCLUDES)
+dnl Determine the size of each of the given types in bits.
+AC_DEFUN([gl_STDINT_BITSIZEOF],
+[
+  dnl Use a shell loop, to avoid bloating configure, and
+  dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into
+  dnl   config.h.in,
+  dnl - extra AC_SUBST calls, so that the right substitutions are made.
+  AC_FOREACH([gltype], [$1],
+    [AH_TEMPLATE([BITSIZEOF_]translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]),
+       [Define to the number of bits in type ']gltype['.])])
+  for gltype in $1 ; do
+    AC_CACHE_CHECK([for bit size of $gltype], [gl_cv_bitsizeof_${gltype}],
+      [AC_COMPUTE_INT([result], [sizeof ($gltype) * CHAR_BIT],
+         [$2
+#include <limits.h>], [result=unknown])
+       eval gl_cv_bitsizeof_${gltype}=\$result
+      ])
+    eval result=\$gl_cv_bitsizeof_${gltype}
+    if test $result = unknown; then
+      dnl Use a nonempty default, because some compilers, such as IRIX 5 cc,
+      dnl do a syntax check even on unused #if conditions and give an error
+      dnl on valid C code like this:
+      dnl   #if 0
+      dnl   # if  > 32
+      dnl   # endif
+      dnl   #endif
+      result=0
+    fi
+    GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    AC_DEFINE_UNQUOTED([BITSIZEOF_${GLTYPE}], [$result])
+    eval BITSIZEOF_${GLTYPE}=\$result
+  done
+  AC_FOREACH([gltype], [$1],
+    [AC_SUBST([BITSIZEOF_]translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))])
+])
+
+dnl gl_CHECK_TYPES_SIGNED(TYPES, INCLUDES)
+dnl Determine the signedness of each of the given types.
+dnl Define HAVE_SIGNED_TYPE if type is signed.
+AC_DEFUN([gl_CHECK_TYPES_SIGNED],
+[
+  dnl Use a shell loop, to avoid bloating configure, and
+  dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into
+  dnl   config.h.in,
+  dnl - extra AC_SUBST calls, so that the right substitutions are made.
+  AC_FOREACH([gltype], [$1],
+    [AH_TEMPLATE([HAVE_SIGNED_]translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]),
+       [Define to 1 if ']gltype[' is a signed integer type.])])
+  for gltype in $1 ; do
+    AC_CACHE_CHECK([whether $gltype is signed], [gl_cv_type_${gltype}_signed],
+      [AC_COMPILE_IFELSE(
+         [AC_LANG_PROGRAM([$2[
+            int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];]])],
+         result=yes, result=no)
+       eval gl_cv_type_${gltype}_signed=\$result
+      ])
+    eval result=\$gl_cv_type_${gltype}_signed
+    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    if test "$result" = yes; then
+      AC_DEFINE_UNQUOTED([HAVE_SIGNED_${GLTYPE}], 1)
+      eval HAVE_SIGNED_${GLTYPE}=1
+    else
+      eval HAVE_SIGNED_${GLTYPE}=0
+    fi
+  done
+  AC_FOREACH([gltype], [$1],
+    [AC_SUBST([HAVE_SIGNED_]translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))])
+])
+
+dnl gl_INTEGER_TYPE_SUFFIX(TYPES, INCLUDES)
+dnl Determine the suffix to use for integer constants of the given types.
+dnl Define t_SUFFIX for each such type.
+AC_DEFUN([gl_INTEGER_TYPE_SUFFIX],
+[
+  dnl Use a shell loop, to avoid bloating configure, and
+  dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into
+  dnl   config.h.in,
+  dnl - extra AC_SUBST calls, so that the right substitutions are made.
+  AC_FOREACH([gltype], [$1],
+    [AH_TEMPLATE(translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX],
+       [Define to l, ll, u, ul, ull, etc., as suitable for
+        constants of type ']gltype['.])])
+  for gltype in $1 ; do
+    AC_CACHE_CHECK([for $gltype integer literal suffix],
+      [gl_cv_type_${gltype}_suffix],
+      [eval gl_cv_type_${gltype}_suffix=no
+       eval result=\$gl_cv_type_${gltype}_signed
+       if test "$result" = yes; then
+         glsufu=
+       else
+         glsufu=u
+       fi
+       for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do
+         case $glsuf in
+           '')  gltype1='int';;
+           l)	gltype1='long int';;
+           ll)	gltype1='long long int';;
+           i64)	gltype1='__int64';;
+           u)	gltype1='unsigned int';;
+           ul)	gltype1='unsigned long int';;
+           ull)	gltype1='unsigned long long int';;
+           ui64)gltype1='unsigned __int64';;
+         esac
+         AC_COMPILE_IFELSE(
+           [AC_LANG_PROGRAM([$2
+              extern $gltype foo;
+              extern $gltype1 foo;])],
+           [eval gl_cv_type_${gltype}_suffix=\$glsuf])
+         eval result=\$gl_cv_type_${gltype}_suffix
+         test "$result" != no && break
+       done])
+    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    eval result=\$gl_cv_type_${gltype}_suffix
+    test "$result" = no && result=
+    eval ${GLTYPE}_SUFFIX=\$result
+    AC_DEFINE_UNQUOTED([${GLTYPE}_SUFFIX], $result)
+  done
+  AC_FOREACH([gltype], [$1],
+    [AC_SUBST(translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX])])
+])
+
+dnl gl_STDINT_INCLUDES
+AC_DEFUN([gl_STDINT_INCLUDES],
+[[
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #include <stdio.h>
+  #include <time.h>
+  #include <wchar.h>
+]])
+
+dnl gl_STDINT_TYPE_PROPERTIES
+dnl Compute HAVE_SIGNED_t, BITSIZEOF_t and t_SUFFIX, for all the types t
+dnl of interest to stdint_.h.
+AC_DEFUN([gl_STDINT_TYPE_PROPERTIES],
+[
+  gl_STDINT_BITSIZEOF([ptrdiff_t sig_atomic_t size_t wchar_t wint_t],
+    [gl_STDINT_INCLUDES])
+  gl_CHECK_TYPES_SIGNED([sig_atomic_t wchar_t wint_t],
+    [gl_STDINT_INCLUDES])
+  gl_cv_type_ptrdiff_t_signed=yes
+  gl_cv_type_size_t_signed=no
+  gl_INTEGER_TYPE_SUFFIX([ptrdiff_t sig_atomic_t size_t wchar_t wint_t],
+    [gl_STDINT_INCLUDES])
+])
+
+dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in.
+dnl Remove this when we can assume autoconf >= 2.61.
+m4_ifdef([AC_COMPUTE_INT], [], [
+  AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])])
+])
+
+# Hey Emacs!
+# Local Variables:
+# indent-tabs-mode: nil
+# End:
diff --git a/parted-1.8.7/m4/stdlib_h.m4 b/parted-1.8.7/m4/stdlib_h.m4
new file mode 100644
index 0000000..d46a5f0
--- /dev/null
+++ b/parted-1.8.7/m4/stdlib_h.m4
@@ -0,0 +1,31 @@
+# stdlib_h.m4 serial 1
+dnl Copyright (C) 2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_STDLIB_H],
+[
+  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+  gl_ABSOLUTE_HEADER([stdlib.h])
+  ABSOLUTE_STDLIB_H=\"$gl_cv_absolute_stdlib_h\"
+  AC_SUBST([ABSOLUTE_STDLIB_H])
+])
+
+AC_DEFUN([gl_STDLIB_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+  GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
+])
+
+AC_DEFUN([gl_STDLIB_H_DEFAULTS],
+[
+  GNULIB_GETSUBOPT=0; AC_SUBST([GNULIB_GETSUBOPT])
+  GNULIB_MKDTEMP=0;   AC_SUBST([GNULIB_MKDTEMP])
+  GNULIB_MKSTEMP=0;   AC_SUBST([GNULIB_MKSTEMP])
+  dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE_GETSUBOPT=1;   AC_SUBST([HAVE_GETSUBOPT])
+  HAVE_MKDTEMP=1;     AC_SUBST([HAVE_MKDTEMP])
+  REPLACE_MKSTEMP=0;  AC_SUBST([REPLACE_MKSTEMP])
+])
diff --git a/parted-1.8.7/m4/strcspn.m4 b/parted-1.8.7/m4/strcspn.m4
new file mode 100644
index 0000000..9565004
--- /dev/null
+++ b/parted-1.8.7/m4/strcspn.m4
@@ -0,0 +1,16 @@
+# strcspn.m4 serial 2
+dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_STRCSPN],
+[
+  AC_REPLACE_FUNCS(strcspn)
+  if test $ac_cv_func_strcspn = no; then
+    gl_PREREQ_STRCSPN
+  fi
+])
+
+# Prerequisites of lib/strcspn.c.
+AC_DEFUN([gl_PREREQ_STRCSPN], [:])
diff --git a/parted-1.8.7/m4/string_h.m4 b/parted-1.8.7/m4/string_h.m4
new file mode 100644
index 0000000..f706d49
--- /dev/null
+++ b/parted-1.8.7/m4/string_h.m4
@@ -0,0 +1,78 @@
+# Configure a GNU-like replacement for <string.h>.
+
+# Copyright (C) 2007 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# Written by Paul Eggert.
+
+AC_DEFUN([gl_HEADER_STRING_H],
+[
+  dnl Use AC_REQUIRE here, so that the default behavior below is expanded
+  dnl once only, before all statements that occur in other macros.
+  AC_REQUIRE([gl_HEADER_STRING_H_BODY])
+])
+
+AC_DEFUN([gl_HEADER_STRING_H_BODY],
+[
+  AC_REQUIRE([AC_C_RESTRICT])
+  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+  gl_ABSOLUTE_HEADER([string.h])
+  ABSOLUTE_STRING_H=\"$gl_cv_absolute_string_h\"
+  AC_SUBST([ABSOLUTE_STRING_H])
+])
+
+AC_DEFUN([gl_STRING_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+  GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
+])
+
+AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS],
+[
+  GNULIB_MEMMEM=0;      AC_SUBST([GNULIB_MEMMEM])
+  GNULIB_MEMPCPY=0;     AC_SUBST([GNULIB_MEMPCPY])
+  GNULIB_MEMRCHR=0;     AC_SUBST([GNULIB_MEMRCHR])
+  GNULIB_STPCPY=0;      AC_SUBST([GNULIB_STPCPY])
+  GNULIB_STPNCPY=0;     AC_SUBST([GNULIB_STPNCPY])
+  GNULIB_STRCHRNUL=0;   AC_SUBST([GNULIB_STRCHRNUL])
+  GNULIB_STRDUP=0;      AC_SUBST([GNULIB_STRDUP])
+  GNULIB_STRNDUP=0;     AC_SUBST([GNULIB_STRNDUP])
+  GNULIB_STRNLEN=0;     AC_SUBST([GNULIB_STRNLEN])
+  GNULIB_STRPBRK=0;     AC_SUBST([GNULIB_STRPBRK])
+  GNULIB_STRSEP=0;      AC_SUBST([GNULIB_STRSEP])
+  GNULIB_STRCASESTR=0;  AC_SUBST([GNULIB_STRCASESTR])
+  GNULIB_STRTOK_R=0;    AC_SUBST([GNULIB_STRTOK_R])
+  GNULIB_MBSLEN=0;      AC_SUBST([GNULIB_MBSLEN])
+  GNULIB_MBSCHR=0;      AC_SUBST([GNULIB_MBSCHR])
+  GNULIB_MBSRCHR=0;     AC_SUBST([GNULIB_MBSRCHR])
+  GNULIB_MBSSTR=0;      AC_SUBST([GNULIB_MBSSTR])
+  GNULIB_MBSCASECMP=0;  AC_SUBST([GNULIB_MBSCASECMP])
+  GNULIB_MBSNCASECMP=0; AC_SUBST([GNULIB_MBSNCASECMP])
+  GNULIB_MBSPCASECMP=0; AC_SUBST([GNULIB_MBSPCASECMP])
+  GNULIB_MBSCASESTR=0;  AC_SUBST([GNULIB_MBSCASESTR])
+  GNULIB_MBSCSPN=0;     AC_SUBST([GNULIB_MBSCSPN])
+  GNULIB_MBSPBRK=0;     AC_SUBST([GNULIB_MBSPBRK])
+  GNULIB_MBSSPN=0;      AC_SUBST([GNULIB_MBSSPN])
+  GNULIB_MBSSEP=0;      AC_SUBST([GNULIB_MBSSEP])
+  GNULIB_MBSTOK_R=0;    AC_SUBST([GNULIB_MBSTOK_R])
+  dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE_DECL_MEMMEM=1;		AC_SUBST([HAVE_DECL_MEMMEM])
+  HAVE_MEMPCPY=1;		AC_SUBST([HAVE_MEMPCPY])
+  HAVE_DECL_MEMRCHR=1;		AC_SUBST([HAVE_DECL_MEMRCHR])
+  HAVE_STPCPY=1;		AC_SUBST([HAVE_STPCPY])
+  HAVE_STPNCPY=1;		AC_SUBST([HAVE_STPNCPY])
+  HAVE_STRCASECMP=1;		AC_SUBST([HAVE_STRCASECMP])
+  HAVE_DECL_STRNCASECMP=1;	AC_SUBST([HAVE_DECL_STRNCASECMP])
+  HAVE_STRCHRNUL=1;		AC_SUBST([HAVE_STRCHRNUL])
+  HAVE_DECL_STRDUP=1;		AC_SUBST([HAVE_DECL_STRDUP])
+  HAVE_STRNDUP=1;		AC_SUBST([HAVE_STRNDUP])
+  HAVE_DECL_STRNDUP=1;		AC_SUBST([HAVE_DECL_STRNDUP])
+  HAVE_DECL_STRNLEN=1;		AC_SUBST([HAVE_DECL_STRNLEN])
+  HAVE_STRPBRK=1;		AC_SUBST([HAVE_STRPBRK])
+  HAVE_STRSEP=1;		AC_SUBST([HAVE_STRSEP])
+  HAVE_STRCASESTR=1;		AC_SUBST([HAVE_STRCASESTR])
+  HAVE_DECL_STRTOK_R=1;		AC_SUBST([HAVE_DECL_STRTOK_R])
+])
diff --git a/parted-1.8.7/m4/strndup.m4 b/parted-1.8.7/m4/strndup.m4
new file mode 100644
index 0000000..baa6c03
--- /dev/null
+++ b/parted-1.8.7/m4/strndup.m4
@@ -0,0 +1,53 @@
+# strndup.m4 serial 13
+dnl Copyright (C) 2002-2003, 2005-2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_STRNDUP],
+[
+  dnl Persuade glibc <string.h> to declare strndup().
+  AC_REQUIRE([AC_GNU_SOURCE])
+
+  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+  AC_CHECK_DECLS_ONCE([strndup])
+  if test $ac_cv_have_decl_strndup = no; then
+    HAVE_DECL_STRNDUP=0
+  fi
+
+  # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'.
+  AC_CACHE_CHECK([for working strndup], gl_cv_func_strndup,
+    [AC_RUN_IFELSE([
+       AC_LANG_PROGRAM([#include <string.h>
+		 	#include <stdlib.h>], [[
+#ifndef HAVE_DECL_STRNDUP
+  extern char *strndup (const char *, size_t);
+#endif
+  char *s;
+  s = strndup ("some longer string", 15);
+  free (s);
+  s = strndup ("shorter string", 13);
+  return s[13] != '\0';]])],
+       [gl_cv_func_strndup=yes],
+       [gl_cv_func_strndup=no],
+       [AC_CHECK_FUNC([strndup],
+          [AC_EGREP_CPP([too risky], [
+#ifdef _AIX
+               too risky
+#endif
+             ],
+             [gl_cv_func_strndup=no],
+             [gl_cv_func_strndup=yes])],
+          [gl_cv_func_strndup=no])])])
+  if test $gl_cv_func_strndup = yes; then
+    AC_DEFINE([HAVE_STRNDUP], 1,
+      [Define if you have the strndup() function and it works.])
+  else
+    HAVE_STRNDUP=0
+    AC_LIBOBJ([strndup])
+    gl_PREREQ_STRNDUP
+  fi
+])
+
+# Prerequisites of lib/strndup.c.
+AC_DEFUN([gl_PREREQ_STRNDUP], [:])
diff --git a/parted-1.8.7/m4/strnlen.m4 b/parted-1.8.7/m4/strnlen.m4
new file mode 100644
index 0000000..0e2815b
--- /dev/null
+++ b/parted-1.8.7/m4/strnlen.m4
@@ -0,0 +1,31 @@
+# strnlen.m4 serial 8
+dnl Copyright (C) 2002-2003, 2005-2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_STRNLEN],
+[
+  dnl Persuade glibc <string.h> to declare strnlen().
+  AC_REQUIRE([AC_GNU_SOURCE])
+
+  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+  AC_CHECK_DECLS_ONCE([strnlen])
+  if test $ac_cv_have_decl_strnlen = no; then
+    HAVE_DECL_STRNLEN=0
+  fi
+
+  AC_FUNC_STRNLEN
+  if test $ac_cv_func_strnlen_working = no; then
+    # This is necessary because automake-1.6.1 doens't understand
+    # that the above use of AC_FUNC_STRNLEN means we may have to use
+    # lib/strnlen.c.
+    #AC_LIBOBJ(strnlen)
+    AC_DEFINE(strnlen, rpl_strnlen,
+      [Define to rpl_strnlen if the replacement function should be used.])
+    gl_PREREQ_STRNLEN
+  fi
+])
+
+# Prerequisites of lib/strnlen.c.
+AC_DEFUN([gl_PREREQ_STRNLEN], [:])
diff --git a/parted-1.8.7/m4/strtod.m4 b/parted-1.8.7/m4/strtod.m4
new file mode 100644
index 0000000..1de2f2f
--- /dev/null
+++ b/parted-1.8.7/m4/strtod.m4
@@ -0,0 +1,20 @@
+# strtod.m4 serial 6
+dnl Copyright (C) 2002, 2003, 2006, 2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_STRTOD],
+[
+  AC_FUNC_STRTOD
+  dnl Note: AC_FUNC_STRTOD does AC_LIBOBJ(strtod).
+  if test $ac_cv_func_strtod = no; then
+    AC_DEFINE(strtod, rpl_strtod,
+      [Define to rpl_strtod if the replacement function should be used.])
+    gl_PREREQ_STRTOD
+  fi
+])
+
+# Prerequisites of lib/strtod.c.
+# The need for pow() is already handled by AC_FUNC_STRTOD.
+AC_DEFUN([gl_PREREQ_STRTOD], [:])
diff --git a/parted-1.8.7/m4/strtol.m4 b/parted-1.8.7/m4/strtol.m4
new file mode 100644
index 0000000..7fbae60
--- /dev/null
+++ b/parted-1.8.7/m4/strtol.m4
@@ -0,0 +1,10 @@
+# strtol.m4 serial 4
+dnl Copyright (C) 2002, 2003, 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_STRTOL],
+[
+  AC_REPLACE_FUNCS(strtol)
+])
diff --git a/parted-1.8.7/m4/unistd_h.m4 b/parted-1.8.7/m4/unistd_h.m4
new file mode 100644
index 0000000..d62da69
--- /dev/null
+++ b/parted-1.8.7/m4/unistd_h.m4
@@ -0,0 +1,53 @@
+# unistd_h.m4 serial 6
+dnl Copyright (C) 2006-2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl Written by Simon Josefsson, Bruno Haible.
+
+AC_DEFUN([gl_UNISTD_H],
+[
+  dnl Use AC_REQUIRE here, so that the default behavior below is expanded
+  dnl once only, before all statements that occur in other macros.
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+
+  AC_CHECK_HEADERS_ONCE([unistd.h])
+  if test $ac_cv_header_unistd_h = yes; then
+    HAVE_UNISTD_H=1
+    gl_ABSOLUTE_HEADER([unistd.h])
+    ABSOLUTE_UNISTD_H=\"$gl_cv_absolute_unistd_h\"
+  else
+    HAVE_UNISTD_H=0
+  fi
+  AC_SUBST([HAVE_UNISTD_H])
+  AC_SUBST([ABSOLUTE_UNISTD_H])
+])
+
+AC_DEFUN([gl_UNISTD_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
+])
+
+AC_DEFUN([gl_UNISTD_H_DEFAULTS],
+[
+  GNULIB_CHOWN=0;         AC_SUBST([GNULIB_CHOWN])
+  GNULIB_DUP2=0;          AC_SUBST([GNULIB_DUP2])
+  GNULIB_FCHDIR=0;        AC_SUBST([GNULIB_FCHDIR])
+  GNULIB_FTRUNCATE=0;     AC_SUBST([GNULIB_FTRUNCATE])
+  GNULIB_GETCWD=0;        AC_SUBST([GNULIB_GETCWD])
+  GNULIB_GETLOGIN_R=0;    AC_SUBST([GNULIB_GETLOGIN_R])
+  GNULIB_READLINK=0;      AC_SUBST([GNULIB_READLINK])
+  GNULIB_SLEEP=0;         AC_SUBST([GNULIB_SLEEP])
+  dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE_DUP2=1;            AC_SUBST([HAVE_DUP2])
+  HAVE_FTRUNCATE=1;       AC_SUBST([HAVE_FTRUNCATE])
+  HAVE_READLINK=1;        AC_SUBST([HAVE_READLINK])
+  HAVE_SLEEP=1;           AC_SUBST([HAVE_SLEEP])
+  HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R])
+  REPLACE_CHOWN=0;        AC_SUBST([REPLACE_CHOWN])
+  REPLACE_FCHDIR=0;       AC_SUBST([REPLACE_FCHDIR])
+  REPLACE_GETCWD=0;       AC_SUBST([REPLACE_GETCWD])
+])
diff --git a/parted-1.8.7/m4/utimbuf.m4 b/parted-1.8.7/m4/utimbuf.m4
new file mode 100644
index 0000000..9927908
--- /dev/null
+++ b/parted-1.8.7/m4/utimbuf.m4
@@ -0,0 +1,39 @@
+#serial 8
+
+# Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2007 Free Software
+# Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+dnl From Jim Meyering
+
+dnl Define HAVE_STRUCT_UTIMBUF if `struct utimbuf' is declared --
+dnl usually in <utime.h>.
+dnl Some systems have utime.h but don't declare the struct anywhere.
+
+AC_DEFUN([gl_CHECK_TYPE_STRUCT_UTIMBUF],
+[
+  AC_CHECK_HEADERS_ONCE(sys/time.h utime.h)
+  AC_CACHE_CHECK([for struct utimbuf], [gl_cv_sys_struct_utimbuf],
+    [AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM(
+	  [[#if HAVE_SYS_TIME_H
+	     #include <sys/time.h>
+	    #endif
+	    #include <time.h>
+	    #ifdef HAVE_UTIME_H
+	     #include <utime.h>
+	    #endif
+	  ]],
+	  [[static struct utimbuf x; x.actime = x.modtime;]])],
+       [gl_cv_sys_struct_utimbuf=yes],
+       [gl_cv_sys_struct_utimbuf=no])])
+
+  if test $gl_cv_sys_struct_utimbuf = yes; then
+    AC_DEFINE(HAVE_STRUCT_UTIMBUF, 1,
+      [Define if struct utimbuf is declared -- usually in <utime.h>.
+       Some systems have utime.h but don't declare the struct anywhere. ])
+  fi
+])
diff --git a/parted-1.8.7/m4/utime.m4 b/parted-1.8.7/m4/utime.m4
new file mode 100644
index 0000000..967faa2
--- /dev/null
+++ b/parted-1.8.7/m4/utime.m4
@@ -0,0 +1,30 @@
+#serial 7
+
+dnl From Jim Meyering
+dnl Replace the utime function on systems that need it.
+
+# Copyright (C) 1998, 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+dnl FIXME
+
+AC_DEFUN([gl_FUNC_UTIME],
+[
+  AC_REQUIRE([AC_FUNC_UTIME_NULL])
+  if test $ac_cv_func_utime_null = no; then
+    AC_LIBOBJ(utime)
+    AC_DEFINE(utime, rpl_utime,
+      [Define to rpl_utime if the replacement function should be used.])
+    gl_PREREQ_UTIME
+  fi
+])
+
+# Prerequisites of lib/utime.c.
+AC_DEFUN([gl_PREREQ_UTIME],
+[
+  AC_CHECK_HEADERS_ONCE(utime.h)
+  AC_REQUIRE([gl_CHECK_TYPE_STRUCT_UTIMBUF])
+  gl_FUNC_UTIMES_NULL
+])
diff --git a/parted-1.8.7/m4/utimes-null.m4 b/parted-1.8.7/m4/utimes-null.m4
new file mode 100644
index 0000000..8d5c8ae
--- /dev/null
+++ b/parted-1.8.7/m4/utimes-null.m4
@@ -0,0 +1,41 @@
+#serial 7
+
+# Copyright (C) 1998, 1999, 2001, 2003, 2004, 2006 Free Software
+# Foundation, Inc.
+
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+dnl Shamelessly cloned from acspecific.m4's AC_FUNC_UTIME_NULL,
+dnl then do case-insensitive s/utime/utimes/.
+
+AC_DEFUN([gl_FUNC_UTIMES_NULL],
+[AC_CACHE_CHECK(whether utimes accepts a null argument, ac_cv_func_utimes_null,
+[rm -f conftest.data; > conftest.data
+AC_TRY_RUN([
+/* In case stat has been defined to rpl_stat, undef it here.  */
+#undef stat
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+int
+main () {
+struct stat s, t;
+return ! (stat ("conftest.data", &s) == 0
+	  && utimes ("conftest.data", 0) == 0
+	  && stat ("conftest.data", &t) == 0
+	  && t.st_mtime >= s.st_mtime
+	  && t.st_mtime - s.st_mtime < 120));
+}],
+  ac_cv_func_utimes_null=yes,
+  ac_cv_func_utimes_null=no,
+  ac_cv_func_utimes_null=no)
+rm -f core core.* *.core])
+
+    if test $ac_cv_func_utimes_null = yes; then
+      AC_DEFINE(HAVE_UTIMES_NULL, 1,
+		[Define if utimes accepts a null argument])
+    fi
+  ]
+)
diff --git a/parted-1.8.7/m4/wchar.m4 b/parted-1.8.7/m4/wchar.m4
new file mode 100644
index 0000000..068f22d
--- /dev/null
+++ b/parted-1.8.7/m4/wchar.m4
@@ -0,0 +1,29 @@
+dnl A placeholder for ISO C99 <wchar.h>, for platforms that have issues.
+
+dnl Copyright (C) 2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl Written by Eric Blake.
+
+# wchar.m4 serial 1
+
+AC_DEFUN([gl_WCHAR_H],
+[
+  AC_CACHE_CHECK([whether <wchar.h> is standalone],
+    [gl_cv_header_wchar_h_standalone],
+    [AC_COMPILE_IFELSE([[#include <wchar.h>
+wchar_t w;]],
+      [gl_cv_header_wchar_h_standalone=yes],
+      [gl_cv_header_wchar_h_standalone=no])])
+  if test $gl_cv_header_wchar_h_standalone = yes; then
+    WCHAR_H=
+  else
+    gl_ABSOLUTE_HEADER([wchar.h])
+    ABSOLUTE_WCHAR_H=\"$gl_cv_absolute_wchar_h\"
+    WCHAR_H=wchar.h
+  fi
+  AC_SUBST([ABSOLUTE_WCHAR_H])
+  AC_SUBST([WCHAR_H])
+])
diff --git a/parted-1.8.7/m4/wctype.m4 b/parted-1.8.7/m4/wctype.m4
new file mode 100644
index 0000000..a56834d
--- /dev/null
+++ b/parted-1.8.7/m4/wctype.m4
@@ -0,0 +1,47 @@
+dnl A placeholder for ISO C99 <wctype.h>, for platforms that lack it.
+
+dnl Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl Written by Paul Eggert.
+
+AC_DEFUN([gl_WCTYPE_H],
+[
+  AC_CHECK_FUNCS_ONCE([iswcntrl])
+  if test $ac_cv_func_iswcntrl = yes; then
+    HAVE_ISWCNTRL=1
+  else
+    HAVE_ISWCNTRL=0
+  fi
+  AC_SUBST([HAVE_ISWCNTRL])
+  AC_CHECK_HEADERS_ONCE([wctype.h])
+  AC_REQUIRE([AC_C_INLINE])
+
+  AC_REQUIRE([gt_TYPE_WINT_T])
+  if test $gt_cv_c_wint_t = yes; then
+    HAVE_WINT_T=1
+  else
+    HAVE_WINT_T=0
+  fi
+  AC_SUBST([HAVE_WINT_T])
+
+  WCTYPE_H=wctype.h
+  if test $ac_cv_header_wctype_h = yes; then
+    if test $ac_cv_func_iswcntrl = yes; then
+      WCTYPE_H=
+    fi
+    dnl Compute ABSOLUTE_WCTYPE_H even if WCTYPE_H is empty,
+    dnl for the benefit of builds from non-distclean directories.
+    gl_ABSOLUTE_HEADER([wctype.h])
+    ABSOLUTE_WCTYPE_H=\"$gl_cv_absolute_wctype_h\"
+    HAVE_WCTYPE_H=1
+  else
+    ABSOLUTE_WCTYPE_H=\"no/such/file/wctype.h\"
+    HAVE_WCTYPE_H=0
+  fi
+  AC_SUBST([ABSOLUTE_WCTYPE_H])
+  AC_SUBST([HAVE_WCTYPE_H])
+  AC_SUBST([WCTYPE_H])
+])
diff --git a/parted-1.8.7/m4/wint_t.m4 b/parted-1.8.7/m4/wint_t.m4
new file mode 100644
index 0000000..3706c04
--- /dev/null
+++ b/parted-1.8.7/m4/wint_t.m4
@@ -0,0 +1,28 @@
+# wint_t.m4 serial 2 (gettext-0.12)
+dnl Copyright (C) 2003, 2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+dnl Test whether <wchar.h> has the 'wint_t' type.
+dnl Prerequisite: AC_PROG_CC
+
+AC_DEFUN([gt_TYPE_WINT_T],
+[
+  AC_CACHE_CHECK([for wint_t], gt_cv_c_wint_t,
+    [AC_TRY_COMPILE([
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
+   before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+       wint_t foo = (wchar_t)'\0';], ,
+       gt_cv_c_wint_t=yes, gt_cv_c_wint_t=no)])
+  if test $gt_cv_c_wint_t = yes; then
+    AC_DEFINE(HAVE_WINT_T, 1, [Define if you have the 'wint_t' type.])
+  fi
+])
diff --git a/parted-1.8.7/m4/xalloc.m4 b/parted-1.8.7/m4/xalloc.m4
new file mode 100644
index 0000000..837a948
--- /dev/null
+++ b/parted-1.8.7/m4/xalloc.m4
@@ -0,0 +1,24 @@
+# xalloc.m4 serial 16
+dnl Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_XALLOC],
+[
+  AC_LIBOBJ([xmalloc])
+
+  gl_PREREQ_XALLOC
+  gl_PREREQ_XMALLOC
+])
+
+# Prerequisites of lib/xalloc.h.
+AC_DEFUN([gl_PREREQ_XALLOC], [
+  AC_REQUIRE([gl_INLINE])
+  :
+])
+
+# Prerequisites of lib/xmalloc.c.
+AC_DEFUN([gl_PREREQ_XMALLOC], [
+  :
+])
diff --git a/parted-1.8.7/m4/xstrndup.m4 b/parted-1.8.7/m4/xstrndup.m4
new file mode 100644
index 0000000..8a30ab1
--- /dev/null
+++ b/parted-1.8.7/m4/xstrndup.m4
@@ -0,0 +1,15 @@
+# xstrndup.m4 serial 2
+dnl Copyright (C) 2003 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_XSTRNDUP],
+[
+  gl_PREREQ_XSTRNDUP
+])
+
+# Prerequisites of lib/xstrndup.c.
+AC_DEFUN([gl_PREREQ_XSTRNDUP], [
+  :
+])
diff --git a/parted-1.8.7/parted.spec b/parted-1.8.7/parted.spec
new file mode 100644
index 0000000..279672f
--- /dev/null
+++ b/parted-1.8.7/parted.spec
@@ -0,0 +1,105 @@
+# Default to disabling device-mapper and SELinux
+%define use_devmapper 0
+%define use_selinux 0
+%define use_sepol 0
+
+# Enable device-mapper support if we find devmapper
+%define use_devmapper %(pkg-config --libs devmapper >/dev/null 2>&1; [ $? -eq 0 ] && echo 1)
+
+# Enable SELinux if we find libselinux and libsepol
+%define use_selinux %([ -r %{_libdir}/libselinux.a ] && echo 1)
+%define use_sepol %([ -r %{_libdir}/libsepol.so ] && echo 1)
+
+Summary:   The GNU disk partition manipulation program
+Name:      parted
+Version:   1.8.7
+Release:   1
+Source:    ftp://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.bz2
+Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+License:   GPL
+Group:     Applications/System
+
+BuildRequires: e2fsprogs-devel readline-devel ncurses-devel
+BuildRequires: automake libtool gettext-devel texinfo pkgconfig
+
+BuildRequires: device-mapper-devel, libselinux-devel libsepol-devel
+
+Prereq: /sbin/install-info
+
+%description
+The GNU Parted program allows you to create, destroy, resize, move,
+and copy hard disk partitions. Parted can be used for creating space
+for new operating systems, reorganizing disk usage, and copying data
+to new hard disks.
+
+%package devel
+Summary:  Files for developing apps which will manipulate disk partitions
+Group:    Development/Libraries
+Requires: %{name}-%{version}-%{release}
+%description devel
+The GNU Parted library is a set of routines for hard disk partition
+manipulation. If you want to develop programs that manipulate disk
+partitions and filesystems using the routines provided by the GNU
+Parted library, you need to install this package.
+
+%prep
+%setup -q
+
+%build
+%configure \
+   --enable-shared \
+%if "%{use_devmapper}" == "1"
+   --enable-device-mapper \
+%else
+   --disable-devmapper \
+%endif
+%if "%{use_selinux}" == "1" && "%{use_sepol}" == "1"
+   --enable-selinux \
+%else
+   --disable-selinux \
+%endif
+   --enable-part-static \
+   --enable-pc98=no \
+   --enable-Werror=no \
+   --disable-dynamic-loading
+%{__make} %{?_smp_mflags}
+
+%install
+%{__rm} -rf %{buildroot}
+%{__make} install DESTDIR=%{buildroot}
+
+%find_lang %{name}
+
+%clean
+%{__rm} -rf %{buildroot}
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%files -f %{name}.lang
+%defattr(-,root,root,-)
+%doc AUTHORS BUGS COPYING ChangeLog NEWS README THANKS TODO doc/API doc/FAT
+%{_sbindir}/parted
+%{_sbindir}/partprobe
+%{_mandir}/man8/parted.8.gz
+%{_mandir}/man8/partprobe.8.gz
+%{_libdir}/libparted-*.so.*
+%{_libdir}/libparted-*.so.*
+%{_infodir}/parted.info.gz
+
+%files devel
+%defattr(-,root,root,-)
+%{_includedir}/parted
+%{_libdir}/libparted.a
+%{_libdir}/libparted.so
+%{_libdir}/pkgconfig/libparted.pc
+
+%changelog
+* Tue Mar 13 2007 David Cantrell <dcantrell@redhat.com>
+- Updated spec file
+
+* Mon Mar 13 2000 Fabian Emmes <fab@orlen.de>
+- changed "unset LINGUAS" line
+- reintroduced %build section ;)
+- started changelog
diff --git a/parted-1.8.7/parted.spec.in b/parted-1.8.7/parted.spec.in
new file mode 100644
index 0000000..735107e
--- /dev/null
+++ b/parted-1.8.7/parted.spec.in
@@ -0,0 +1,105 @@
+# Default to disabling device-mapper and SELinux
+%define use_devmapper 0
+%define use_selinux 0
+%define use_sepol 0
+
+# Enable device-mapper support if we find devmapper
+%define use_devmapper %(pkg-config --libs devmapper >/dev/null 2>&1; [ $? -eq 0 ] && echo 1)
+
+# Enable SELinux if we find libselinux and libsepol
+%define use_selinux %([ -r %{_libdir}/libselinux.a ] && echo 1)
+%define use_sepol %([ -r %{_libdir}/libsepol.so ] && echo 1)
+
+Summary:   The GNU disk partition manipulation program
+Name:      @PACKAGE@
+Version:   @VERSION@
+Release:   1
+Source:    ftp://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.bz2
+Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+License:   GPL
+Group:     Applications/System
+
+BuildRequires: e2fsprogs-devel readline-devel ncurses-devel
+BuildRequires: automake libtool gettext-devel texinfo pkgconfig
+
+BuildRequires: device-mapper-devel, libselinux-devel libsepol-devel
+
+Prereq: /sbin/install-info
+
+%description
+The GNU Parted program allows you to create, destroy, resize, move,
+and copy hard disk partitions. Parted can be used for creating space
+for new operating systems, reorganizing disk usage, and copying data
+to new hard disks.
+
+%package devel
+Summary:  Files for developing apps which will manipulate disk partitions
+Group:    Development/Libraries
+Requires: %{name}-%{version}-%{release}
+%description devel
+The GNU Parted library is a set of routines for hard disk partition
+manipulation. If you want to develop programs that manipulate disk
+partitions and filesystems using the routines provided by the GNU
+Parted library, you need to install this package.
+
+%prep
+%setup -q
+
+%build
+%configure \
+   --enable-shared \
+%if "%{use_devmapper}" == "1"
+   --enable-device-mapper \
+%else
+   --disable-devmapper \
+%endif
+%if "%{use_selinux}" == "1" && "%{use_sepol}" == "1"
+   --enable-selinux \
+%else
+   --disable-selinux \
+%endif
+   --enable-part-static \
+   --enable-pc98=no \
+   --enable-Werror=no \
+   --disable-dynamic-loading
+%{__make} %{?_smp_mflags}
+
+%install
+%{__rm} -rf %{buildroot}
+%{__make} install DESTDIR=%{buildroot}
+
+%find_lang %{name}
+
+%clean
+%{__rm} -rf %{buildroot}
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%files -f %{name}.lang
+%defattr(-,root,root,-)
+%doc AUTHORS BUGS COPYING ChangeLog NEWS README THANKS TODO doc/API doc/FAT
+%{_sbindir}/parted
+%{_sbindir}/partprobe
+%{_mandir}/man8/parted.8.gz
+%{_mandir}/man8/partprobe.8.gz
+%{_libdir}/libparted-*.so.*
+%{_libdir}/libparted-*.so.*
+%{_infodir}/parted.info.gz
+
+%files devel
+%defattr(-,root,root,-)
+%{_includedir}/parted
+%{_libdir}/libparted.a
+%{_libdir}/libparted.so
+%{_libdir}/pkgconfig/libparted.pc
+
+%changelog
+* Tue Mar 13 2007 David Cantrell <dcantrell@redhat.com>
+- Updated spec file
+
+* Mon Mar 13 2000 Fabian Emmes <fab@orlen.de>
+- changed "unset LINGUAS" line
+- reintroduced %build section ;)
+- started changelog
diff --git a/parted-1.8.7/parted/Makefile.am b/parted-1.8.7/parted/Makefile.am
new file mode 100644
index 0000000..c699102
--- /dev/null
+++ b/parted-1.8.7/parted/Makefile.am
@@ -0,0 +1,28 @@
+sbin_PROGRAMS = parted
+
+partedincludedir      = -I$(top_srcdir)/lib -I$(top_srcdir)/include
+
+parted_SOURCES = command.c	\
+		 command.h	\
+		 parted.c	\
+		 strlist.c	\
+		 strlist.h	\
+		 ui.c		\
+		 ui.h		\
+		 table.c	\
+		 table.h
+
+#parted_CFLAGS = -DBUILDINFO='"\"'$(BUILDINFO)'\""'
+parted_CFLAGS = -DBUILDINFO=
+
+parted_LDADD = \
+  $(top_builddir)/lib/libparted.la \
+  $(top_builddir)/libparted/libparted.la \
+  $(INTLLIBS) $(LIBS) \
+  $(PARTED_LIBS)
+
+parted_LDFLAGS = $(PARTEDLDFLAGS)
+
+INCLUDES	= $(partedincludedir) $(INTLINCS)
+
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/parted-1.8.7/parted/Makefile.in b/parted-1.8.7/parted/Makefile.in
new file mode 100644
index 0000000..610127f
--- /dev/null
+++ b/parted-1.8.7/parted/Makefile.in
@@ -0,0 +1,751 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+sbin_PROGRAMS = parted$(EXEEXT)
+subdir = parted
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES =
+am__installdirs = "$(DESTDIR)$(sbindir)"
+sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+PROGRAMS = $(sbin_PROGRAMS)
+am_parted_OBJECTS = parted-command.$(OBJEXT) parted-parted.$(OBJEXT) \
+	parted-strlist.$(OBJEXT) parted-ui.$(OBJEXT) \
+	parted-table.$(OBJEXT)
+parted_OBJECTS = $(am_parted_OBJECTS)
+am__DEPENDENCIES_1 =
+parted_DEPENDENCIES = $(top_builddir)/lib/libparted.la \
+	$(top_builddir)/libparted/libparted.la $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+parted_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(parted_CFLAGS) $(CFLAGS) \
+	$(parted_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/lib@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(parted_SOURCES)
+DIST_SOURCES = $(parted_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+partedincludedir = -I$(top_srcdir)/lib -I$(top_srcdir)/include
+parted_SOURCES = command.c	\
+		 command.h	\
+		 parted.c	\
+		 strlist.c	\
+		 strlist.h	\
+		 ui.c		\
+		 ui.h		\
+		 table.c	\
+		 table.h
+
+
+#parted_CFLAGS = -DBUILDINFO='"\"'$(BUILDINFO)'\""'
+parted_CFLAGS = -DBUILDINFO=
+parted_LDADD = \
+  $(top_builddir)/lib/libparted.la \
+  $(top_builddir)/libparted/libparted.la \
+  $(INTLLIBS) $(LIBS) \
+  $(PARTED_LIBS)
+
+parted_LDFLAGS = $(PARTEDLDFLAGS)
+INCLUDES = $(partedincludedir) $(INTLINCS)
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  parted/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  parted/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-sbinPROGRAMS: $(sbin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)"
+	@list='$(sbin_PROGRAMS)'; for p in $$list; do \
+	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  if test -f $$p \
+	     || test -f $$p1 \
+	  ; then \
+	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(sbinPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(sbindir)/$$f'"; \
+	   $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(sbinPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(sbindir)/$$f" || exit 1; \
+	  else :; fi; \
+	done
+
+uninstall-sbinPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(sbin_PROGRAMS)'; for p in $$list; do \
+	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+	  echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(sbindir)/$$f"; \
+	done
+
+clean-sbinPROGRAMS:
+	@list='$(sbin_PROGRAMS)'; for p in $$list; do \
+	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  echo " rm -f $$p $$f"; \
+	  rm -f $$p $$f ; \
+	done
+parted$(EXEEXT): $(parted_OBJECTS) $(parted_DEPENDENCIES) 
+	@rm -f parted$(EXEEXT)
+	$(parted_LINK) $(parted_OBJECTS) $(parted_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parted-command.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parted-parted.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parted-strlist.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parted-table.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parted-ui.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+parted-command.o: command.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(parted_CFLAGS) $(CFLAGS) -MT parted-command.o -MD -MP -MF $(DEPDIR)/parted-command.Tpo -c -o parted-command.o `test -f 'command.c' || echo '$(srcdir)/'`command.c
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/parted-command.Tpo $(DEPDIR)/parted-command.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='command.c' object='parted-command.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(parted_CFLAGS) $(CFLAGS) -c -o parted-command.o `test -f 'command.c' || echo '$(srcdir)/'`command.c
+
+parted-command.obj: command.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(parted_CFLAGS) $(CFLAGS) -MT parted-command.obj -MD -MP -MF $(DEPDIR)/parted-command.Tpo -c -o parted-command.obj `if test -f 'command.c'; then $(CYGPATH_W) 'command.c'; else $(CYGPATH_W) '$(srcdir)/command.c'; fi`
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/parted-command.Tpo $(DEPDIR)/parted-command.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='command.c' object='parted-command.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(parted_CFLAGS) $(CFLAGS) -c -o parted-command.obj `if test -f 'command.c'; then $(CYGPATH_W) 'command.c'; else $(CYGPATH_W) '$(srcdir)/command.c'; fi`
+
+parted-parted.o: parted.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(parted_CFLAGS) $(CFLAGS) -MT parted-parted.o -MD -MP -MF $(DEPDIR)/parted-parted.Tpo -c -o parted-parted.o `test -f 'parted.c' || echo '$(srcdir)/'`parted.c
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/parted-parted.Tpo $(DEPDIR)/parted-parted.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='parted.c' object='parted-parted.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(parted_CFLAGS) $(CFLAGS) -c -o parted-parted.o `test -f 'parted.c' || echo '$(srcdir)/'`parted.c
+
+parted-parted.obj: parted.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(parted_CFLAGS) $(CFLAGS) -MT parted-parted.obj -MD -MP -MF $(DEPDIR)/parted-parted.Tpo -c -o parted-parted.obj `if test -f 'parted.c'; then $(CYGPATH_W) 'parted.c'; else $(CYGPATH_W) '$(srcdir)/parted.c'; fi`
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/parted-parted.Tpo $(DEPDIR)/parted-parted.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='parted.c' object='parted-parted.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(parted_CFLAGS) $(CFLAGS) -c -o parted-parted.obj `if test -f 'parted.c'; then $(CYGPATH_W) 'parted.c'; else $(CYGPATH_W) '$(srcdir)/parted.c'; fi`
+
+parted-strlist.o: strlist.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(parted_CFLAGS) $(CFLAGS) -MT parted-strlist.o -MD -MP -MF $(DEPDIR)/parted-strlist.Tpo -c -o parted-strlist.o `test -f 'strlist.c' || echo '$(srcdir)/'`strlist.c
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/parted-strlist.Tpo $(DEPDIR)/parted-strlist.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='strlist.c' object='parted-strlist.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(parted_CFLAGS) $(CFLAGS) -c -o parted-strlist.o `test -f 'strlist.c' || echo '$(srcdir)/'`strlist.c
+
+parted-strlist.obj: strlist.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(parted_CFLAGS) $(CFLAGS) -MT parted-strlist.obj -MD -MP -MF $(DEPDIR)/parted-strlist.Tpo -c -o parted-strlist.obj `if test -f 'strlist.c'; then $(CYGPATH_W) 'strlist.c'; else $(CYGPATH_W) '$(srcdir)/strlist.c'; fi`
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/parted-strlist.Tpo $(DEPDIR)/parted-strlist.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='strlist.c' object='parted-strlist.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(parted_CFLAGS) $(CFLAGS) -c -o parted-strlist.obj `if test -f 'strlist.c'; then $(CYGPATH_W) 'strlist.c'; else $(CYGPATH_W) '$(srcdir)/strlist.c'; fi`
+
+parted-ui.o: ui.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(parted_CFLAGS) $(CFLAGS) -MT parted-ui.o -MD -MP -MF $(DEPDIR)/parted-ui.Tpo -c -o parted-ui.o `test -f 'ui.c' || echo '$(srcdir)/'`ui.c
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/parted-ui.Tpo $(DEPDIR)/parted-ui.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='ui.c' object='parted-ui.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(parted_CFLAGS) $(CFLAGS) -c -o parted-ui.o `test -f 'ui.c' || echo '$(srcdir)/'`ui.c
+
+parted-ui.obj: ui.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(parted_CFLAGS) $(CFLAGS) -MT parted-ui.obj -MD -MP -MF $(DEPDIR)/parted-ui.Tpo -c -o parted-ui.obj `if test -f 'ui.c'; then $(CYGPATH_W) 'ui.c'; else $(CYGPATH_W) '$(srcdir)/ui.c'; fi`
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/parted-ui.Tpo $(DEPDIR)/parted-ui.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='ui.c' object='parted-ui.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(parted_CFLAGS) $(CFLAGS) -c -o parted-ui.obj `if test -f 'ui.c'; then $(CYGPATH_W) 'ui.c'; else $(CYGPATH_W) '$(srcdir)/ui.c'; fi`
+
+parted-table.o: table.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(parted_CFLAGS) $(CFLAGS) -MT parted-table.o -MD -MP -MF $(DEPDIR)/parted-table.Tpo -c -o parted-table.o `test -f 'table.c' || echo '$(srcdir)/'`table.c
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/parted-table.Tpo $(DEPDIR)/parted-table.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='table.c' object='parted-table.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(parted_CFLAGS) $(CFLAGS) -c -o parted-table.o `test -f 'table.c' || echo '$(srcdir)/'`table.c
+
+parted-table.obj: table.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(parted_CFLAGS) $(CFLAGS) -MT parted-table.obj -MD -MP -MF $(DEPDIR)/parted-table.Tpo -c -o parted-table.obj `if test -f 'table.c'; then $(CYGPATH_W) 'table.c'; else $(CYGPATH_W) '$(srcdir)/table.c'; fi`
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/parted-table.Tpo $(DEPDIR)/parted-table.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='table.c' object='parted-table.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(parted_CFLAGS) $(CFLAGS) -c -o parted-table.obj `if test -f 'table.c'; then $(CYGPATH_W) 'table.c'; else $(CYGPATH_W) '$(srcdir)/table.c'; fi`
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+	for dir in "$(DESTDIR)$(sbindir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-sbinPROGRAMS \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am: install-sbinPROGRAMS
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-sbinPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-sbinPROGRAMS ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-sbinPROGRAMS install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags uninstall uninstall-am uninstall-sbinPROGRAMS
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/parted/command.c b/parted-1.8.7/parted/command.c
new file mode 100644
index 0000000..7ce9090
--- /dev/null
+++ b/parted-1.8.7/parted/command.c
@@ -0,0 +1,141 @@
+/*
+    parted - a frontend to libparted
+    Copyright (C) 1999, 2000, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+#include "command.h"
+#include "ui.h"
+
+#include <parted/debug.h>
+
+#include <stdlib.h>
+#include <string.h>
+
+Command*
+command_create (const StrList* names,
+		int (*method) (PedDevice** dev),
+		const StrList* summary,
+		const StrList* help,
+                const int non_interactive)
+{
+	Command*	cmd;
+
+	cmd = malloc (sizeof (Command));
+        
+        if (non_interactive)
+                cmd->non_interactive = 1;
+        else
+                cmd->non_interactive = 0;
+                
+	cmd->names = (StrList*) names;
+	cmd->method = method;
+	cmd->summary = (StrList*) summary;
+	cmd->help = (StrList*) help;
+
+	return cmd;
+}
+
+void
+command_destroy (Command* cmd)
+{
+	str_list_destroy (cmd->names);
+	str_list_destroy (cmd->summary);
+	str_list_destroy (cmd->help);
+	free (cmd);
+}
+
+void
+command_register (Command** list, Command* cmd)
+{
+	int	i;
+
+	for (i = 0; list [i]; i++);
+
+	list [i] = cmd;
+	list [i + 1] = (Command*) NULL;
+}
+
+Command*
+command_get (Command** list, char* name)
+{
+	int		i;
+	int		partial_match = -1;
+	int		ambiguous = 0;
+
+	if (!name)
+		return NULL;
+
+	for (i=0; list [i]; i++) {
+		switch (str_list_match_any (list [i]->names, name)) {
+		case 2:
+			return list [i];
+
+		case 1:
+			if (!ambiguous) {
+				if (partial_match == -1) {
+					partial_match = i;
+				} else {
+					partial_match = -1;
+					ambiguous = 1;
+				}
+			}
+		}
+	}
+
+	if (partial_match == -1)
+		return NULL;
+	else
+		return list [partial_match];
+}
+
+StrList*
+command_get_names (Command** list)
+{
+	Command**	walk;
+	StrList*	result = NULL;
+
+	for (walk = list; *walk; walk++)
+		result = str_list_join (result,
+					str_list_duplicate ((*walk)->names));
+	return result;
+}
+
+void
+command_print_summary (Command* cmd)
+{
+        fputs ("  ", stdout);
+	str_list_print_wrap (cmd->summary, screen_width(), 2, 8);
+	putchar ('\n');
+}
+
+void
+command_print_help (Command* cmd)
+{
+	command_print_summary (cmd);
+	if (cmd->help) {
+                fputs ("\n\t", stdout);
+		str_list_print_wrap (cmd->help, screen_width(), 8, 8);
+	}
+}
+
+int
+command_run (Command* cmd, PedDevice** dev)
+{
+	return cmd->method (dev);
+}
+
diff --git a/parted-1.8.7/parted/command.h b/parted-1.8.7/parted/command.h
new file mode 100644
index 0000000..b636af7
--- /dev/null
+++ b/parted-1.8.7/parted/command.h
@@ -0,0 +1,49 @@
+/*
+    parted - a frontend to libparted
+    Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef COMMAND_H_INCLUDED
+#define COMMAND_H_INCLUDED
+
+#include <parted/parted.h>
+#include "strlist.h"
+
+typedef struct {
+	StrList*	names;
+	int		(*method) (PedDevice** dev);
+	StrList*	summary;
+	StrList*	help;
+        int             non_interactive:1;
+} Command;
+
+extern Command* command_create (const StrList* names,
+				int (*method) (PedDevice** dev),
+				const StrList* summary,
+				const StrList* help,
+                                int non_interactive);
+extern void command_destroy (Command* cmd);
+void command_register (Command** list, Command* cmd);
+
+extern Command* command_get (Command** list, char* name);
+extern StrList* command_get_names (Command** list);
+extern void command_print_summary (Command* cmd);
+extern void command_print_help (Command* cmd);
+extern int command_run (Command* cmd, PedDevice** dev);
+
+#endif /* COMMAND_H_INCLUDED */
+
diff --git a/parted-1.8.7/parted/parted.c b/parted-1.8.7/parted/parted.c
new file mode 100644
index 0000000..d16ad96
--- /dev/null
+++ b/parted-1.8.7/parted/parted.c
@@ -0,0 +1,2482 @@
+/*
+    parted - a frontend to libparted
+    Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005, 2006, 2007
+    Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+
+#include "closeout.h"
+#include "configmake.h"
+#include "version-etc.h"
+#include "command.h"
+#include "ui.h"
+#include "table.h"
+
+#define AUTHORS \
+  "<http://parted.alioth.debian.org/cgi-bin/trac.cgi/browser/AUTHORS>"
+
+/* The official name of this program (e.g., no `g' prefix).  */
+#define PROGRAM_NAME "parted"
+
+#define N_(String) String
+#if ENABLE_NLS
+#  include <libintl.h>
+#  include <locale.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+
+#include <ctype.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <limits.h>
+
+#ifdef ENABLE_MTRACE
+#include <mcheck.h>
+#endif
+
+#include <getopt.h>
+
+/* minimum amount of free space to leave, or maximum amount to gobble up */
+#define MIN_FREESPACE           (1000 * 2)      /* 1000k */
+
+static int MEGABYTE_SECTORS (PedDevice* dev)
+{
+        return PED_MEGABYTE_SIZE / dev->sector_size;
+}
+
+/* For long options that have no equivalent short option, use a
+   non-character as a pseudo short option, starting with CHAR_MAX + 1.  */
+enum
+{
+  PRETEND_INPUT_TTY = CHAR_MAX + 1,
+};
+
+
+typedef struct {
+        time_t  last_update;
+        time_t  predicted_time_left;
+} TimerContext;
+
+static struct option    options[] = {
+        /* name, has-arg, string-return-val, char-return-val */
+        {"help",        0, NULL, 'h'},
+        {"list",        0, NULL, 'l'},
+        {"machine",     0, NULL, 'm'},
+        {"script",      0, NULL, 's'},
+        {"version",     0, NULL, 'v'},
+        {"-pretend-input-tty", 0, NULL, PRETEND_INPUT_TTY},
+        {NULL,          0, NULL, 0}
+};
+
+static char*    options_help [][2] = {
+        {"help",        N_("displays this help message")},
+        {"list",        N_("lists partition layout on all block devices")},
+        {"machine",     N_("displays machine parseable output")},
+        {"script",      N_("never prompts for user intervention")},
+        {"version",     N_("displays the version")},
+        {NULL,          NULL}
+};
+
+char *program_name;
+
+int     opt_script_mode = 0;
+int     pretend_input_tty = 0;
+int     opt_machine_mode = 0;
+int     disk_is_modified = 0;
+int     is_toggle_mode = 0;
+
+static char* number_msg = N_(
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n");
+
+static char* label_type_msg_start = N_("LABEL-TYPE is one of: ");
+static char* flag_msg_start =   N_("FLAG is one of: ");
+static char* unit_msg_start =   N_("UNIT is one of: ");
+static char* part_type_msg =    N_("PART-TYPE is one of: primary, logical, "
+                                   "extended\n");
+static char* fs_type_msg_start = N_("FS-TYPE is one of: ");
+static char* start_end_msg =    N_("START and END are disk locations, such as "
+                "4GB or 10%.  Negative values count from the end of the disk.  "
+                "For example, -1s specifies exactly the last sector.\n");
+static char* state_msg =        N_("STATE is one of: on, off\n");
+static char* device_msg =       N_("DEVICE is usually /dev/hda or /dev/sda\n");
+static char* name_msg =         N_("NAME is any word you want\n");
+static char* resize_msg_start = N_("The partition must have one of the "
+                                   "following FS-TYPEs: ");
+
+static char* copyright_msg = N_(
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n\n");
+
+static char* label_type_msg;
+static char* flag_msg;
+static char* unit_msg;
+
+static char* mkfs_fs_type_msg;
+static char* mkpart_fs_type_msg;
+static char* resize_fs_type_msg;
+
+static Command* commands [256] = {NULL};
+static PedTimer* g_timer;
+static TimerContext timer_context;
+
+static int _print_list ();
+static void _done (PedDevice* dev);
+
+static void
+_timer_handler (PedTimer* timer, void* context)
+{
+        TimerContext*   tcontext = (TimerContext*) context;
+        int             draw_this_time;
+
+        if (opt_script_mode || !isatty(fileno(stdout)))
+                return;
+
+        if (tcontext->last_update != timer->now && timer->now > timer->start) {
+                tcontext->predicted_time_left
+                        = timer->predicted_end - timer->now;
+                tcontext->last_update = timer->now;
+                draw_this_time = 1;
+        } else {
+                draw_this_time = 0;
+        }
+
+        if (draw_this_time) {
+                wipe_line ();
+
+                if (timer->state_name)
+                        printf ("%s... ", timer->state_name);
+                printf (_("%0.f%%\t(time left %.2d:%.2d)"),
+                        100.0 * timer->frac,
+                        (int) (tcontext->predicted_time_left / 60),
+                        (int) (tcontext->predicted_time_left % 60));
+
+                fflush (stdout);
+        }
+}
+
+static int
+_partition_warn_busy (PedPartition* part)
+{
+        char* path;
+
+        if (ped_partition_is_busy (part)) {
+                path = ped_partition_get_path (part);
+                ped_exception_throw (
+                        PED_EXCEPTION_ERROR,
+                        PED_EXCEPTION_CANCEL,
+                        _("Partition %s is being used. You must unmount it "
+                          "before you modify it with Parted."),
+                        path);
+                ped_free (path);
+                return 0;
+        }
+        return 1;
+}
+
+static int
+_disk_warn_busy (PedDisk* disk)
+{
+        if (ped_device_is_busy (disk->dev))
+                return ped_exception_throw (
+                        PED_EXCEPTION_WARNING,
+                        PED_EXCEPTION_IGNORE_CANCEL,
+                        _("Partition(s) on %s are being used."),
+                        disk->dev->path) == PED_EXCEPTION_IGNORE;
+
+        return 1;
+}
+
+static int
+_partition_warn_loss ()
+{
+        return ped_exception_throw (
+                PED_EXCEPTION_WARNING,
+                PED_EXCEPTION_YES_NO,
+                _("The existing file system will be destroyed and "
+                  "all data on the partition will be lost. Do "
+                  "you want to continue?"), 
+                NULL) == PED_EXCEPTION_YES;
+}
+
+static int
+_disk_warn_loss (PedDisk* disk)
+{
+        return ped_exception_throw (
+                PED_EXCEPTION_WARNING,
+                PED_EXCEPTION_YES_NO,
+                _("The existing disk label on %s will be destroyed "
+                  "and all data on this disk will be lost. Do you "
+                  "want to continue?"), 
+                disk->dev->path) == PED_EXCEPTION_YES;
+}
+
+/* This function changes "sector" to "new_sector" if the new value lies
+ * within the required range.
+ */
+static int
+snap (PedSector* sector, PedSector new_sector, PedGeometry* range)
+{
+        PED_ASSERT (ped_geometry_test_sector_inside (range, *sector), return 0);
+        if (!ped_geometry_test_sector_inside (range, new_sector))
+                return 0;
+        *sector = new_sector;
+        return 1;
+}
+
+typedef enum {
+        MOVE_NO         = 0,
+        MOVE_STILL      = 1,
+        MOVE_UP         = 2,
+        MOVE_DOWN       = 4
+} EMoves;
+
+enum { /* Don't change these values */
+        SECT_START      =  0,
+        SECT_END        = -1
+};
+
+/* Find the prefered way to adjust the sector s inside range.
+ * If a move isn't allowed or is out of range it can't be selected.
+ * what contains SECT_START if the sector to adjust is a start sector
+ * or SECT_END if it's an end one.
+ * The prefered move is to the nearest allowed boundary of the part
+ * partition (if at equal distance: to start if SECT_START or to end
+ * if SECT_END).
+ * The distance is returned in dist.
+ */
+static EMoves
+prefer_snap (PedSector s, int what, PedGeometry* range, EMoves* allow,
+             PedPartition* part, PedSector* dist)
+{
+        PedSector up_dist = -1, down_dist = -1;
+        PedSector new_sect;
+        EMoves move;
+
+        PED_ASSERT (what == SECT_START || what == SECT_END, return 0);
+
+        if (!(*allow & (MOVE_UP | MOVE_DOWN))) {
+                *dist = 0;
+                return MOVE_STILL;
+        }
+
+        if (*allow & MOVE_UP) {
+                new_sect = part->geom.end + 1 + what;
+                if (ped_geometry_test_sector_inside (range, new_sect))
+                        up_dist = new_sect - s;
+                else
+                        *allow &= ~MOVE_UP;
+        }
+
+        if (*allow & MOVE_DOWN) {
+                new_sect = part->geom.start + what;
+                if (ped_geometry_test_sector_inside (range, new_sect))
+                        down_dist = s - new_sect;
+                else
+                        *allow &= ~MOVE_DOWN;
+        }
+
+        move = MOVE_STILL;
+        if ((*allow & MOVE_UP) && (*allow & MOVE_DOWN)) {
+                if (down_dist < up_dist || (down_dist == up_dist
+                                            && what == SECT_START) )
+                        move = MOVE_DOWN;
+                else if (up_dist < down_dist || (down_dist == up_dist
+                                                 && what == SECT_END) )
+                        move = MOVE_UP;
+                else
+                        PED_ASSERT (0, return 0);
+        } else if (*allow & MOVE_UP)
+                move = MOVE_UP;
+        else if (*allow & MOVE_DOWN)
+                move = MOVE_DOWN;
+
+        *dist = ( move == MOVE_DOWN ? down_dist :
+                ( move == MOVE_UP   ? up_dist   :
+                  0 ) );
+        return move;
+}
+
+/* Snaps a partition to nearby partition boundaries.  This is useful for
+ * gobbling up small amounts of free space, and also for reinterpreting small
+ * changes to a partition as non-changes (eg: perhaps the user only wanted to
+ * resize the end of a partition).
+ *      Note that this isn't the end of the story... this function is
+ * always called before the constraint solver kicks in.  So you don't need to
+ * worry too much about inadvertantly creating overlapping partitions, etc.
+ */
+static void
+snap_to_boundaries (PedGeometry* new_geom, PedGeometry* old_geom,
+                    PedDisk* disk,
+                    PedGeometry* start_range, PedGeometry* end_range)
+{
+        PedPartition*   start_part;
+        PedPartition*   end_part;
+        PedSector       start = new_geom->start;
+        PedSector       end = new_geom->end;
+        PedSector       start_dist = -1, end_dist = -1;
+        EMoves          start_allow, end_allow, start_want, end_want;
+        int             adjacent;
+
+        start_want = end_want = MOVE_NO;
+        start_allow = end_allow = MOVE_STILL | MOVE_UP | MOVE_DOWN;
+
+        start_part = ped_disk_get_partition_by_sector (disk, start);
+        end_part = ped_disk_get_partition_by_sector (disk, end);
+        adjacent = (start_part->geom.end + 1 == end_part->geom.start);
+
+        /* If we can snap to old_geom, then we will... */
+        /* and this will enforce the snapped positions  */
+        if (old_geom) {
+                if (snap (&start, old_geom->start, start_range))
+                        start_allow = MOVE_STILL;
+                if (snap (&end, old_geom->end, end_range))
+                        end_allow = MOVE_STILL;
+        }
+
+        /* If start and end are on the same partition, we */
+        /* don't allow them to cross. */
+        if (start_part == end_part) {
+                start_allow &= ~MOVE_UP;
+                end_allow &= ~MOVE_DOWN;
+        }
+
+        /* Let's find our way */
+        start_want = prefer_snap (start, SECT_START, start_range, &start_allow,
+                                  start_part, &start_dist );
+        end_want = prefer_snap (end, SECT_END, end_range, &end_allow,
+                                end_part, &end_dist );
+
+        PED_ASSERT (start_dist >= 0 && end_dist >= 0, return);
+
+        /* If start and end are on adjacent partitions,    */
+        /* and if they would prefer crossing, then refrain */
+        /* the farthest to do so. */
+        if (adjacent && start_want == MOVE_UP && end_want == MOVE_DOWN) {
+                if (end_dist < start_dist) {
+                        start_allow &= ~MOVE_UP;
+                        start_want = prefer_snap (start, SECT_START,
+                                                  start_range, &start_allow,
+                                                  start_part, &start_dist );
+                        PED_ASSERT (start_dist >= 0, return);
+                } else {
+                        end_allow &= ~MOVE_DOWN;
+                        end_want = prefer_snap (end, SECT_END,
+                                                end_range, &end_allow,
+                                                end_part, &end_dist );
+                        PED_ASSERT (end_dist >= 0, return);
+                }
+        }
+
+        /* New positions */
+        start = ( start_want == MOVE_DOWN ? start_part->geom.start :
+                ( start_want == MOVE_UP ? start_part->geom.end + 1 :
+                  start ) );
+        end = ( end_want == MOVE_DOWN ? end_part->geom.start - 1 :
+              ( end_want == MOVE_UP ? end_part->geom.end :
+                end ) );
+        PED_ASSERT (ped_geometry_test_sector_inside(start_range,start), return);
+        PED_ASSERT (ped_geometry_test_sector_inside (end_range, end), return);
+        PED_ASSERT (start <= end,
+                    PED_DEBUG (0, "start = %d, end = %d\n", start, end));
+        ped_geometry_set (new_geom, start, end - start + 1);
+}
+
+/* This functions constructs a constraint from the following information:
+ *      start, is_start_exact, end, is_end_exact.
+ *      
+ * If is_start_exact == 1, then the constraint requires start be as given in
+ * "start".  Otherwise, the constraint does not set any requirements on the
+ * start.
+ */
+static PedConstraint*
+constraint_from_start_end (PedDevice* dev, PedGeometry* range_start,
+                           PedGeometry* range_end)
+{
+        return ped_constraint_new (ped_alignment_any, ped_alignment_any,
+                range_start, range_end, 1, dev->length);
+}
+
+static PedConstraint*
+constraint_intersect_and_destroy (PedConstraint* a, PedConstraint* b)
+{
+        PedConstraint* result = ped_constraint_intersect (a, b);
+        ped_constraint_destroy (a);
+        ped_constraint_destroy (b);
+        return result;
+}
+
+void
+help_on (char* topic)
+{
+        Command*        cmd;
+
+        cmd = command_get (commands, topic);
+        if (!cmd) return;
+
+        command_print_help (cmd);
+}
+
+static int
+do_check (PedDevice** dev)
+{
+        PedDisk*        disk;
+        PedFileSystem*  fs;
+        PedPartition*   part = NULL;
+
+        disk = ped_disk_new (*dev);
+        if (!disk)
+                goto error;
+
+        if (!command_line_get_partition (_("Partition number?"), disk, &part))
+                goto error_destroy_disk;
+        if (!_partition_warn_busy (part))
+                goto error_destroy_disk;
+
+        if (!ped_disk_check (disk))
+                goto error_destroy_disk;
+
+        fs = ped_file_system_open (&part->geom);
+        if (!fs)
+                goto error_destroy_disk;
+        if (!ped_file_system_check (fs, g_timer))
+                goto error_close_fs;
+        ped_file_system_close (fs);
+        ped_disk_destroy (disk);
+        return 1;
+
+error_close_fs:
+        ped_file_system_close (fs);
+error_destroy_disk:
+        ped_disk_destroy (disk);
+error:
+        return 0;
+}
+
+static int
+do_cp (PedDevice** dev)
+{
+        PedDisk*                src_disk;
+        PedDisk*                dst_disk;
+        PedPartition*           src = NULL;
+        PedPartition*           dst = NULL;
+        PedFileSystem*          src_fs;
+        PedFileSystem*          dst_fs;
+        PedFileSystemType*      dst_fs_type;
+
+        dst_disk = ped_disk_new (*dev);
+        if (!dst_disk)
+                goto error;
+
+        src_disk = dst_disk;
+        if (!command_line_is_integer ()) {
+                if (!command_line_get_disk (_("Source device?"), &src_disk))
+                        goto error_destroy_disk;
+        }
+
+        if (!command_line_get_partition (_("Source partition number?"),
+                                         src_disk, &src))
+                goto error_destroy_disk;
+        if (src->type == PED_PARTITION_EXTENDED) {
+                ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+                        _("Can't copy an extended partition."));
+                goto error_destroy_disk;
+        }
+        if (!_partition_warn_busy (src))
+                goto error_destroy_disk;
+
+        if (!command_line_get_partition (_("Destination partition number?"),
+                                         dst_disk, &dst))
+                goto error_destroy_disk;
+        if (!_partition_warn_busy (dst))
+                goto error_destroy_disk;
+
+/* do the copy */
+        src_fs = ped_file_system_open (&src->geom);
+        if (!src_fs)
+                goto error_destroy_disk;
+        dst_fs = ped_file_system_copy (src_fs, &dst->geom, g_timer);
+        if (!dst_fs)
+                goto error_close_src_fs;
+        dst_fs_type = dst_fs->type;     /* may be different to src_fs->type */
+        ped_file_system_close (src_fs);
+        ped_file_system_close (dst_fs);
+
+/* update the partition table, close disks */
+        if (!ped_partition_set_system (dst, dst_fs_type))
+                goto error_destroy_disk;
+        if (!ped_disk_commit (dst_disk))
+                goto error_destroy_disk;
+        if (src_disk != dst_disk)
+                ped_disk_destroy (src_disk);
+        ped_disk_destroy (dst_disk);
+
+        if ((*dev)->type != PED_DEVICE_FILE)
+                disk_is_modified = 1;
+
+        return 1;
+
+error_close_src_fs:
+        ped_file_system_close (src_fs);
+error_destroy_disk:
+        if (src_disk && src_disk != dst_disk)
+                ped_disk_destroy (src_disk);
+        ped_disk_destroy (dst_disk);
+error:
+        return 0;
+}
+
+void
+print_commands_help ()
+{
+        int             i;
+
+        for (i=0; commands [i]; i++)
+                command_print_summary (commands [i]);
+}
+
+void
+print_options_help ()
+{
+        int             i;
+
+        for (i=0; options_help [i][0]; i++) {
+                printf ("  -%c, --%-23.23s %s\n",
+                        options_help [i][0][0],
+                        options_help [i][0],
+                        _(options_help [i][1]));
+        }
+}
+
+int
+do_help (PedDevice** dev)
+{
+        if (command_line_get_word_count ()) {
+                char*   word = command_line_pop_word ();
+                if (word) {
+                        help_on (word);
+                        free (word);
+                }
+        } else {
+                print_commands_help();
+        }
+        return 1;
+}
+
+static int
+do_mklabel (PedDevice** dev)
+{
+        PedDisk*                disk;
+        const PedDiskType*      type = ped_disk_probe (*dev);
+
+        ped_exception_fetch_all ();
+        disk = ped_disk_new (*dev);
+        if (!disk) ped_exception_catch ();
+        ped_exception_leave_all ();
+
+        if (disk) {
+                if (!opt_script_mode) {
+                        if (!_disk_warn_busy (disk))
+                                goto error_destroy_disk;
+                        if (!_disk_warn_loss (disk))
+                                goto error_destroy_disk;
+                }
+
+                ped_disk_destroy (disk);
+        }
+
+        if (!command_line_get_disk_type (_("New disk label type?"), &type))
+                goto error;
+
+        disk = ped_disk_new_fresh (*dev, type);
+        if (!disk)
+                goto error;
+
+        if (!ped_disk_commit (disk))
+                goto error_destroy_disk;
+        ped_disk_destroy (disk);
+
+        if ((*dev)->type != PED_DEVICE_FILE)
+                disk_is_modified = 1;
+
+        return 1;
+
+error_destroy_disk:
+        ped_disk_destroy (disk);
+error:
+        return 0;
+}
+
+static int
+do_mkfs (PedDevice** dev)
+{
+        PedDisk*                disk;
+        PedPartition*           part = NULL;
+        const PedFileSystemType* type = ped_file_system_type_get ("ext2");
+        PedFileSystem*          fs;
+
+        disk = ped_disk_new (*dev);
+        if (!disk)
+                goto error;
+
+        if  (!opt_script_mode && !_partition_warn_loss())
+                goto error_destroy_disk;
+
+        if (!command_line_get_partition (_("Partition number?"), disk, &part))
+                goto error_destroy_disk;
+        if (!_partition_warn_busy (part))
+                goto error_destroy_disk;
+        if (!command_line_get_fs_type (_("File system?"), &type))
+                goto error_destroy_disk;
+
+        fs = ped_file_system_create (&part->geom, type, g_timer);
+        if (!fs)
+                goto error_destroy_disk;
+        ped_file_system_close (fs);
+
+        if (!ped_partition_set_system (part, type))
+                goto error_destroy_disk;
+        if (ped_partition_is_flag_available (part, PED_PARTITION_LBA))
+                ped_partition_set_flag (part, PED_PARTITION_LBA, 1);
+        if (!ped_disk_commit (disk))
+                goto error_destroy_disk;
+        ped_disk_destroy (disk);
+
+        if ((*dev)->type != PED_DEVICE_FILE)
+                disk_is_modified = 1;
+
+        return 1;
+
+error_destroy_disk:
+        ped_disk_destroy (disk);
+error:
+        return 0;
+}
+
+static int
+do_mkpart (PedDevice** dev)
+{
+        PedDisk*                 disk;
+        PedPartition*            part;
+        PedPartitionType         part_type;
+        const PedFileSystemType* fs_type = ped_file_system_type_get ("ext2");
+        PedSector                start = 0, end = 0;
+        PedGeometry              *range_start = NULL, *range_end = NULL;
+        PedConstraint*           user_constraint;
+        PedConstraint*           dev_constraint;
+        PedConstraint*           final_constraint;
+        char*                    peek_word;
+        char*                    part_name = NULL;
+        char                     *start_usr = NULL, *end_usr = NULL;
+        char                     *start_sol = NULL, *end_sol = NULL;
+        
+        disk = ped_disk_new (*dev);
+        if (!disk)
+                goto error;
+
+        if (!ped_disk_type_check_feature (disk->type, PED_DISK_TYPE_EXTENDED)) {
+                part_type = PED_PARTITION_NORMAL;
+        } else {
+                if (!command_line_get_part_type (_("Partition type?"),
+                                                disk, &part_type))
+                        goto error_destroy_disk;
+        }
+
+        if (ped_disk_type_check_feature (disk->type,
+                                         PED_DISK_TYPE_PARTITION_NAME)) 
+                part_name = command_line_get_word (_("Partition name?"),
+                                                   "", NULL, 1); 
+                
+        peek_word = command_line_peek_word ();
+        if (part_type == PED_PARTITION_EXTENDED
+            || (peek_word && isdigit (peek_word[0]))) {
+                fs_type = NULL;
+        } else {
+                if (!command_line_get_fs_type (_("File system type?"),
+                                               &fs_type))
+                        goto error_destroy_disk;
+        }
+        if (peek_word)
+                ped_free (peek_word);
+
+        if (!command_line_get_sector (_("Start?"), *dev, &start, &range_start))
+                goto error_destroy_disk;
+        if (!command_line_get_sector (_("End?"), *dev, &end, &range_end))
+                goto error_destroy_disk;
+        
+        /* processing starts here */
+        part = ped_partition_new (disk, part_type, fs_type, start, end);
+        if (!part)
+                goto error_destroy_disk;
+
+        snap_to_boundaries (&part->geom, NULL, disk, range_start, range_end);
+
+        /* create constraints */
+        user_constraint = constraint_from_start_end (*dev, range_start,
+                        range_end);
+        PED_ASSERT (user_constraint != NULL, return 0);
+
+        dev_constraint = ped_device_get_constraint (*dev);
+        PED_ASSERT (dev_constraint != NULL, return 0);
+
+        final_constraint = ped_constraint_intersect (user_constraint,
+                        dev_constraint);
+        if (!final_constraint)
+                goto error_destroy_simple_constraints;
+
+        /* subject to partition constraint */
+        ped_exception_fetch_all();
+        if (!ped_disk_add_partition (disk, part, final_constraint)) {
+                ped_exception_leave_all();
+               
+                if (ped_disk_add_partition (disk, part,
+                                        ped_constraint_any (*dev))) {
+                        start_usr = ped_unit_format (*dev, start);
+                        end_usr   = ped_unit_format (*dev, end);
+                        start_sol = ped_unit_format (*dev, part->geom.start);
+                        end_sol   = ped_unit_format (*dev, part->geom.end);
+
+                        switch (ped_exception_throw (
+                                PED_EXCEPTION_WARNING,
+                                PED_EXCEPTION_YES_NO,
+                                _("You requested a partition from %s to %s.\n"
+                                  "The closest location we can manage is "
+                                  "%s to %s.  "
+                                  "Is this still acceptable to you?"),
+                                start_usr, end_usr, start_sol, end_sol))
+                        {
+                                case PED_EXCEPTION_YES:
+                                        /* all is well in this state */
+                                        break;
+                                case PED_EXCEPTION_NO:
+                                case PED_EXCEPTION_UNHANDLED:
+                                default:
+                                        /* undo partition addition */
+                                        goto error_remove_part;
+                        }
+                } else {
+                        goto error_remove_part;
+                }
+        }
+        ped_exception_catch();
+
+        /* set minor attributes */
+        if (part_name)
+                PED_ASSERT (ped_partition_set_name (part, part_name), return 0);
+        if (!ped_partition_set_system (part, fs_type))
+                goto error_destroy_disk;
+        if (ped_partition_is_flag_available (part, PED_PARTITION_LBA))
+                ped_partition_set_flag (part, PED_PARTITION_LBA, 1);
+        
+        if (!ped_disk_commit (disk))
+                goto error_destroy_disk;
+        
+        /* clean up */
+        ped_constraint_destroy (final_constraint);
+        ped_constraint_destroy (user_constraint);
+        ped_constraint_destroy (dev_constraint);
+
+        ped_disk_destroy (disk);
+        
+        if (range_start != NULL)
+                ped_geometry_destroy (range_start);
+        if (range_end != NULL)
+                ped_geometry_destroy (range_end);
+        
+        if (start_usr != NULL)
+                ped_free (start_usr);
+        if (end_usr != NULL)
+                ped_free (end_usr);
+        if (start_sol != NULL)
+                ped_free (start_sol);
+        if (end_sol != NULL)
+                ped_free (end_sol);
+
+        if ((*dev)->type != PED_DEVICE_FILE)
+                disk_is_modified = 1;
+
+        return 1;
+
+error_remove_part:
+        ped_disk_remove_partition (disk, part);
+        ped_constraint_destroy (final_constraint);
+error_destroy_simple_constraints:
+        ped_constraint_destroy (user_constraint);
+        ped_constraint_destroy (dev_constraint);
+        ped_partition_destroy (part);
+error_destroy_disk:
+        ped_disk_destroy (disk);
+error:
+        if (range_start != NULL)
+                ped_geometry_destroy (range_start);
+        if (range_end != NULL)
+                ped_geometry_destroy (range_end);
+
+        if (start_usr != NULL)
+                ped_free (start_usr);
+        if (end_usr != NULL)
+                ped_free (end_usr);
+        if (start_sol != NULL)
+                ped_free (start_sol);
+        if (end_sol != NULL)
+                ped_free (end_sol);
+
+        return 0;
+}
+
+static int
+do_mkpartfs (PedDevice** dev)
+{
+        PedDisk*            disk;
+        PedPartition*       part;
+        PedPartitionType    part_type;
+        const PedFileSystemType* fs_type = ped_file_system_type_get ("ext2");
+        PedSector           start = 0, end = 0;
+        PedGeometry         *range_start = NULL, *range_end = NULL;
+        PedConstraint*      user_constraint;
+        PedConstraint*      dev_constraint;
+        PedConstraint*      final_constraint;
+        PedFileSystem*      fs;
+        char*               part_name = NULL;
+        char                *start_usr = NULL, *end_usr = NULL;
+        char                *start_sol = NULL, *end_sol = NULL;
+
+        disk = ped_disk_new (*dev);
+        if (!disk)
+                goto error;
+
+        if (!ped_disk_type_check_feature (disk->type, PED_DISK_TYPE_EXTENDED)) {
+                part_type = PED_PARTITION_NORMAL;
+        } else {
+                if (!command_line_get_part_type (_("Partition type?"),
+                                                disk, &part_type))
+                        goto error_destroy_disk;
+        }
+
+        if (ped_disk_type_check_feature (disk->type,
+                                         PED_DISK_TYPE_PARTITION_NAME)) 
+                part_name = command_line_get_word (_("Partition name?"),
+                                                   "", NULL, 1); 
+
+        if (part_type == PED_PARTITION_EXTENDED) {
+                ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+                        _("An extended partition cannot hold a file system.  "
+                          "Did you want mkpart?"));
+                goto error_destroy_disk;
+        }
+
+        if (!command_line_get_fs_type (_("File system type?"), &fs_type))
+                goto error_destroy_disk;
+        if (!command_line_get_sector (_("Start?"), *dev, &start,
+                                      &range_start))
+                goto error_destroy_disk;
+        if (!command_line_get_sector (_("End?"), *dev, &end, &range_end))
+                goto error_destroy_disk;
+
+        /* attempt to create the partition now */
+        part = ped_partition_new (disk, part_type, fs_type, start, end);
+        if (!part)
+                goto error_destroy_disk;
+
+        snap_to_boundaries (&part->geom, NULL, disk, range_start, range_end);
+
+        /* create constraints */
+        user_constraint = constraint_from_start_end (*dev, range_start,
+                                                                range_end);
+        PED_ASSERT (user_constraint != NULL, return 0);
+
+        dev_constraint = ped_device_get_constraint (*dev);
+        PED_ASSERT (dev_constraint != NULL, return 0);
+
+        final_constraint = ped_constraint_intersect (user_constraint,
+                                                     dev_constraint);
+        if (!final_constraint)
+                goto error_destroy_simple_constraints;
+
+        /* subject to partition constraint */
+        ped_exception_fetch_all();
+        if (!ped_disk_add_partition (disk, part, final_constraint)) {
+                ped_exception_leave_all();
+               
+                if (ped_disk_add_partition (disk, part,
+                                        ped_constraint_any (*dev))) {
+                        start_usr = ped_unit_format (*dev, start);
+                        end_usr   = ped_unit_format (*dev, end);
+                        start_sol = ped_unit_format (*dev, part->geom.start);
+                        end_sol   = ped_unit_format (*dev, part->geom.end);
+
+                        switch (ped_exception_throw (
+                                PED_EXCEPTION_WARNING,
+                                PED_EXCEPTION_YES_NO,
+                                _("You requested a partition from %s to %s.\n"
+                                  "The closest location we can manage is "
+                                  "%s to %s.  "
+                                  "Is this still acceptable to you?"),
+                                start_usr, end_usr, start_sol, end_sol)) {
+                                case PED_EXCEPTION_YES:
+                                        /* all is well in this state */
+                                        break;
+                                case PED_EXCEPTION_NO:
+                                case PED_EXCEPTION_UNHANDLED:
+                                default:
+                                        /* undo partition addition */
+                                        goto error_remove_part;
+                        }
+                } else {
+                        goto error_remove_part;
+                }
+        }
+        ped_exception_catch();
+        ped_exception_leave_all();
+
+        /* set LBA flag automatically if available */
+        if (ped_partition_is_flag_available (part, PED_PARTITION_LBA))
+                ped_partition_set_flag (part, PED_PARTITION_LBA, 1);
+
+        /* fs creation */
+        fs = ped_file_system_create (&part->geom, fs_type, g_timer);
+        if (!fs) 
+                goto error_destroy_disk;
+        ped_file_system_close (fs);
+
+        if (!ped_partition_set_system (part, fs_type))
+                goto error_destroy_disk;
+
+        if (!ped_disk_commit (disk))
+                goto error_destroy_disk;
+
+        /* clean up */
+        ped_constraint_destroy (final_constraint);
+        ped_constraint_destroy (user_constraint);
+        ped_constraint_destroy (dev_constraint);
+
+        ped_disk_destroy (disk);
+
+        if (range_start != NULL)
+                ped_geometry_destroy (range_start);
+        if (range_end != NULL)
+                ped_geometry_destroy (range_end);
+
+        if (start_usr != NULL)
+                ped_free (start_usr);
+        if (end_usr != NULL)
+                ped_free (end_usr);
+        if (start_sol != NULL)
+                ped_free (start_sol);
+        if (end_sol != NULL)
+                ped_free (end_sol);
+
+        if ((*dev)->type != PED_DEVICE_FILE)
+                disk_is_modified = 1;
+
+        return 1;
+
+error_remove_part:
+        ped_disk_remove_partition (disk, part);
+        ped_constraint_destroy (final_constraint);
+error_destroy_simple_constraints:
+        ped_constraint_destroy (user_constraint);
+        ped_constraint_destroy (dev_constraint);
+        ped_partition_destroy (part);
+error_destroy_disk:
+        ped_disk_destroy (disk);
+error:
+        if (range_start != NULL)
+                ped_geometry_destroy (range_start);
+        if (range_end != NULL)
+                ped_geometry_destroy (range_end);
+
+        if (start_usr != NULL)
+                ped_free (start_usr);
+        if (end_usr != NULL)
+                ped_free (end_usr);
+        if (start_sol != NULL)
+                ped_free (start_sol);
+        if (end_sol != NULL)
+                ped_free (end_sol);
+
+        return 0;
+}
+
+static int
+do_move (PedDevice** dev)
+{
+        PedDisk*        disk;
+        PedPartition*   part = NULL;
+        PedFileSystem*  fs;
+        PedFileSystem*  fs_copy;
+        PedConstraint*  constraint;
+        PedSector       start = 0, end = 0;
+        PedGeometry     *range_start = NULL, *range_end = NULL;
+        PedGeometry     old_geom, new_geom;
+
+        disk = ped_disk_new (*dev);
+        if (!disk)
+                goto error;
+
+        if (!command_line_get_partition (_("Partition number?"), disk, &part))
+                goto error_destroy_disk;
+        if (!_partition_warn_busy (part))
+                goto error_destroy_disk;
+        if (part->type == PED_PARTITION_EXTENDED) {
+                ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+                        _("Can't move an extended partition."));
+                goto error_destroy_disk;
+        }
+        old_geom = part->geom;
+        fs = ped_file_system_open (&old_geom);
+        if (!fs)
+                goto error_destroy_disk;
+
+        /* get new target */
+        if (!command_line_get_sector (_("Start?"), *dev, &start, &range_start))
+                goto error_close_fs;
+        end = start + old_geom.length - 1;
+        if (!command_line_get_sector (_("End?"), *dev, &end, &range_end))
+                goto error_close_fs;
+
+        /* set / test on "disk" */
+        if (!ped_geometry_init (&new_geom, *dev, start, end - start + 1))
+                goto error_close_fs;
+        snap_to_boundaries (&new_geom, NULL, disk, range_start, range_end);
+
+        constraint = constraint_intersect_and_destroy (
+                        ped_file_system_get_copy_constraint (fs, *dev),
+                        constraint_from_start_end(*dev,range_start,range_end));
+        if (!ped_disk_set_partition_geom (disk, part, constraint,
+                                          new_geom.start, new_geom.end))
+                goto error_destroy_constraint;
+        ped_constraint_destroy (constraint);
+        if (ped_geometry_test_overlap (&old_geom, &part->geom)) {
+                ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+                        _("Can't move a partition onto itself.  Try using "
+                          "resize, perhaps?"));
+                goto error_close_fs;
+        }
+
+        /* do the move */
+        fs_copy = ped_file_system_copy (fs, &part->geom, g_timer);
+        if (!fs_copy)
+                goto error_close_fs;
+        ped_file_system_close (fs_copy);
+        ped_file_system_close (fs);
+        if (!ped_disk_commit (disk))
+                goto error_destroy_disk;
+        ped_disk_destroy (disk);
+        if (range_start != NULL)
+                ped_geometry_destroy (range_start);
+        if (range_end != NULL)
+                ped_geometry_destroy (range_end);
+
+        if ((*dev)->type != PED_DEVICE_FILE)
+                disk_is_modified = 1;
+
+        return 1;
+
+error_destroy_constraint:
+        ped_constraint_destroy (constraint);
+error_close_fs:
+        ped_file_system_close (fs);
+error_destroy_disk:
+        ped_disk_destroy (disk);
+error:
+        if (range_start != NULL)
+                ped_geometry_destroy (range_start);
+        if (range_end != NULL)
+                ped_geometry_destroy (range_end);
+        return 0;
+}
+
+static int
+do_name (PedDevice** dev)
+{
+        PedDisk*        disk;
+        PedPartition*   part = NULL;
+        char*           name;
+
+        disk = ped_disk_new (*dev);
+        if (!disk)
+                goto error;
+
+        if (!command_line_get_partition (_("Partition number?"), disk, &part))
+                goto error_destroy_disk;
+
+        name = command_line_get_word (_("Partition name?"),
+                        ped_partition_get_name (part), NULL, 0);
+        if (!name)
+                goto error_destroy_disk;
+        if (!ped_partition_set_name (part, name))
+                goto error_free_name;
+        free (name);
+
+        if (!ped_disk_commit (disk))
+                goto error_destroy_disk;
+        ped_disk_destroy (disk);
+        return 1;
+
+error_free_name:
+        free (name);
+error_destroy_disk:
+        ped_disk_destroy (disk);
+error:
+        return 0;
+}
+
+static char*
+partition_print_flags (PedPartition* part)
+{
+        PedPartitionFlag        flag;
+        int                     first_flag;
+        const char*             name;
+        char*                   res = ped_malloc(1); 
+        void*                   _res = res;
+
+        *res = '\0';
+
+        first_flag = 1;
+        for (flag = ped_partition_flag_next (0); flag;
+             flag = ped_partition_flag_next (flag)) {
+                if (ped_partition_get_flag (part, flag)) {
+                        if (first_flag)
+                                first_flag = 0;
+                        else {
+                                _res = res;
+                                ped_realloc (&_res, strlen (res)
+                                                           + 1 + 2);
+                                res = _res;
+                                strncat (res, ", ", 2);
+                        }
+
+                        name = _(ped_partition_flag_get_name (flag));
+                        _res = res;
+                        ped_realloc (&_res, strlen (res) + 1
+                                                   + strlen (name));
+                        res = _res;
+                        strncat (res, name, 21);
+                }
+        }
+
+        return res;
+}
+
+/* Prints a sector out, first in compact form, and then with a percentage.
+ * Eg: 32Gb (40%)
+ */
+static void
+print_sector_compact_and_percent (PedSector sector, PedDevice* dev)
+{
+        char* compact;
+        char* percent;
+
+        if (ped_unit_get_default() == PED_UNIT_PERCENT)
+                compact = ped_unit_format (dev, sector);
+        else
+                compact = ped_unit_format_custom (dev, sector,
+                                                  PED_UNIT_COMPACT);
+
+        percent = ped_unit_format_custom (dev, sector, PED_UNIT_PERCENT);
+
+        printf ("%s (%s)\n", compact, percent);
+
+        ped_free (compact);
+        ped_free (percent);
+}
+
+static int
+partition_print (PedPartition* part)
+{
+        PedFileSystem*  fs;
+        PedConstraint*  resize_constraint;
+        char*           flags;
+
+        fs = ped_file_system_open (&part->geom);
+        if (!fs)
+                return 1;
+
+        putchar ('\n');
+
+        flags = partition_print_flags (part);
+     
+        printf (_("Minor: %d\n"), part->num);
+        printf (_("Flags: %s\n"), flags);
+        printf (_("File System: %s\n"), fs->type->name);
+        fputs (_("Size:         "), stdout);
+        print_sector_compact_and_percent (part->geom.length, part->geom.dev);
+
+        resize_constraint = ped_file_system_get_resize_constraint (fs);
+        if (resize_constraint) {
+                fputs (_("Minimum size: "), stdout);
+                print_sector_compact_and_percent (resize_constraint->min_size,
+                        part->geom.dev);
+                fputs (_("Maximum size: "), stdout);
+                print_sector_compact_and_percent (resize_constraint->max_size,
+                        part->geom.dev);
+                ped_constraint_destroy (resize_constraint);
+        }
+
+        putchar ('\n');
+
+        ped_free (flags);
+        ped_file_system_close (fs);
+
+        return 1;
+}
+
+static int
+do_print (PedDevice** dev)
+{
+        PedUnit         default_unit;
+        PedDisk*        disk;
+        Table*          table;
+        StrList*        row;
+        int             has_extended;
+        int             has_name;
+        int             has_devices_arg = 0;
+        int             has_free_arg = 0;
+        int             has_list_arg = 0;
+        int             has_num_arg = 0;
+        char*           transport[13] = {"unknown", "scsi", "ide", "dac960",
+                                         "cpqarray", "file", "ataraid", "i2o",
+                                         "ubd", "dasd", "viodasd", "sx8", "dm"};
+        char*           peek_word;
+        char*           start;
+        char*           end;
+        char*           size;
+        const char*     name;
+        char*           tmp;
+        wchar_t*        table_rendered;
+
+        disk = ped_disk_new (*dev);
+        if (!disk)
+                goto error;
+
+        peek_word = command_line_peek_word ();
+        if (peek_word) {
+                if (strncmp (peek_word, "devices", 7) == 0) {
+                        command_line_pop_word();
+                        has_devices_arg = 1;
+                }
+                else if (strncmp (peek_word, "free", 4) == 0) {
+                        command_line_pop_word ();
+                        has_free_arg = 1;
+                } 
+                else if (strncmp (peek_word, "list", 4) == 0 ||
+                         strncmp (peek_word, "all", 3) == 0) {
+                        command_line_pop_word();
+                        has_list_arg = 1;
+                }
+                else
+                        has_num_arg = isdigit(peek_word[0]);
+
+                ped_free (peek_word);
+        }
+
+        if (has_devices_arg) {
+                char*           dev_name;
+                PedDevice*      current_dev = NULL;
+
+                ped_device_probe_all();
+
+                while ((current_dev = ped_device_get_next(current_dev))) {
+                        end = ped_unit_format_byte (current_dev,
+                                             current_dev->length
+                                             * current_dev->sector_size);
+                        printf ("%s (%s)\n", current_dev->path, end);
+                        ped_free (end);
+                }    
+
+                dev_name = strdup ((*dev)->path);
+                ped_device_free_all ();
+
+                *dev = ped_device_get (dev_name);
+                if (!*dev)
+		        return 0;
+                if (!ped_device_open (*dev))
+                        return 0;
+
+                ped_free (dev_name);
+
+                return 1;
+        }
+
+        else if (has_list_arg) 
+                return _print_list ();
+
+        else if (has_num_arg) {
+                PedPartition*   part = NULL;
+                int             status = 0;
+                if (command_line_get_partition ("", disk, &part))
+                        status = partition_print (part);
+                ped_disk_destroy (disk);
+                return status;
+        }
+
+        start = ped_unit_format (*dev, 0);
+        default_unit = ped_unit_get_default ();
+        end = ped_unit_format_byte (*dev, (*dev)->length * (*dev)->sector_size
+                                    - (default_unit == PED_UNIT_CHS ||
+                                       default_unit == PED_UNIT_CYLINDER));
+
+        if (opt_machine_mode) {
+            switch (default_unit) {
+                case PED_UNIT_CHS:      puts ("CHS;");
+                                        break;
+                case PED_UNIT_CYLINDER: puts ("CYL;");
+                                        break;
+                default:                puts ("BYT;");
+                                        break;
+
+            }
+            printf ("%s:%s:%s:%lld:%lld:%s:%s;\n",
+                    (*dev)->path, end, transport[(*dev)->type],
+                    (*dev)->sector_size, (*dev)->phys_sector_size,
+                    disk->type->name, (*dev)->model);
+        } else {
+            printf (_("Model: %s (%s)\n"), 
+                    (*dev)->model, transport[(*dev)->type]);
+            printf (_("Disk %s: %s\n"), (*dev)->path, end);
+            printf (_("Sector size (logical/physical): %lldB/%lldB\n"),
+                    (*dev)->sector_size, (*dev)->phys_sector_size);
+        }
+
+        ped_free (start);
+        ped_free (end);
+
+        if (ped_unit_get_default () == PED_UNIT_CHS
+            || ped_unit_get_default () == PED_UNIT_CYLINDER) {
+                PedCHSGeometry* chs = &(*dev)->bios_geom;
+                char* cyl_size = ped_unit_format_custom (*dev,
+                                        chs->heads * chs->sectors,
+                                        PED_UNIT_KILOBYTE);
+                
+                if (opt_machine_mode) {
+                    printf ("%d:%d:%d:%s;\n",
+                            chs->cylinders, chs->heads, chs->sectors, cyl_size);
+                } else {
+                    printf (_("BIOS cylinder,head,sector geometry: %d,%d,%d.  "
+                              "Each cylinder is %s.\n"),
+                            chs->cylinders, chs->heads, chs->sectors, cyl_size);
+                }
+
+                ped_free (cyl_size);
+        }
+
+        if (!opt_machine_mode) {
+            printf (_("Partition Table: %s\n"), disk->type->name);
+            putchar ('\n');
+        }
+        
+        has_extended = ped_disk_type_check_feature (disk->type,
+                                         PED_DISK_TYPE_EXTENDED);
+        has_name = ped_disk_type_check_feature (disk->type,
+                                         PED_DISK_TYPE_PARTITION_NAME);
+
+        
+        PedPartition* part;
+        if (!opt_machine_mode) {
+
+            if (ped_unit_get_default() == PED_UNIT_CHS) {
+                    row = str_list_create (_("Number"), _("Start"),
+                                               _("End"), NULL);
+            } else {
+                    row = str_list_create (_("Number"), _("Start"),
+                                               _("End"), _("Size"), NULL);
+            }
+
+            if (has_extended)
+                    str_list_append (row, _("Type"));
+
+            str_list_append (row, _("File system"));
+
+            if (has_name)
+                    str_list_append (row, _("Name"));
+
+            str_list_append (row, _("Flags"));
+
+
+            table = table_new (str_list_length(row));
+
+            table_add_row_from_strlist (table, row);
+
+
+            for (part = ped_disk_next_partition (disk, NULL); part;
+                 part = ped_disk_next_partition (disk, part)) {
+
+                    if ((!has_free_arg && !ped_partition_is_active(part)) ||
+                        part->type & PED_PARTITION_METADATA)
+                            continue;
+
+                    tmp = ped_malloc (4);
+
+                    if (part->num >= 0)
+                            sprintf (tmp, "%2d ", part->num);
+                    else
+                            sprintf (tmp, "%2s ", "");
+
+                    row = str_list_create (tmp, NULL);
+
+                    start = ped_unit_format (*dev, part->geom.start);
+                    end = ped_unit_format_byte (
+                            *dev,
+                            (part->geom.end + 1) * (*dev)->sector_size - 1);
+                    size = ped_unit_format (*dev, part->geom.length);
+                    if (ped_unit_get_default() == PED_UNIT_CHS) {
+                            str_list_append (row, start);
+                            str_list_append (row, end);
+                    } else {
+                            str_list_append (row, start);
+                            str_list_append (row, end);
+                            str_list_append (row, size);
+                    }
+
+                    if (!(part->type & PED_PARTITION_FREESPACE)) {
+                            if (has_extended) {
+                                name = ped_partition_type_get_name (part->type);
+                                str_list_append (row, name);
+                            }
+
+                            str_list_append (row, part->fs_type ?
+                                             part->fs_type->name : "");
+
+                            if (has_name) {
+                                    name = ped_partition_get_name (part);
+                                    str_list_append (row, name);
+                            }
+
+                            str_list_append (row, partition_print_flags (part));
+                    } else {
+                            if (has_extended)
+                                    str_list_append (row, "");
+                            str_list_append (row, _("Free Space"));
+                            if (has_name)
+                                    str_list_append (row, "");
+                            str_list_append (row, "");
+                    }
+
+                    //PED_ASSERT (row.cols == caption.cols)
+                    table_add_row_from_strlist (table, row);
+            }
+
+            table_rendered = table_render (table); 
+#ifdef ENABLE_NLS
+            printf("%ls\n", table_rendered);
+#else
+            printf("%s\n", table_rendered);
+#endif
+            ped_free (table_rendered);
+            table_destroy (table);
+
+        } else {
+    
+            for (part = ped_disk_next_partition (disk, NULL); part;
+                 part = ped_disk_next_partition (disk, part)) {
+
+                if ((!has_free_arg && !ped_partition_is_active(part)) ||
+                        part->type & PED_PARTITION_METADATA)
+                            continue; 
+                
+                if (part->num >= 0)
+                    printf ("%d:", part->num);
+                else
+                    fputs ("1:", stdout);
+
+                printf ("%s:", ped_unit_format (*dev, part->geom.start));
+                printf ("%s:", ped_unit_format_byte (
+                                *dev,
+                                (part->geom.end + 1) * 
+                                (*dev)->sector_size - 1));
+
+                if (ped_unit_get_default() != PED_UNIT_CHS)
+                    printf ("%s:", ped_unit_format (*dev,
+                                                    part->geom.length));
+                    
+                if (!(part->type & PED_PARTITION_FREESPACE)) {
+
+                    if (part->fs_type)
+                        printf ("%s:", part->fs_type->name);
+                    else
+                        putchar (':');
+
+                    if (has_name) 
+                        printf ("%s:", _(ped_partition_get_name (part)));
+                    else
+                        putchar (':');
+
+                    printf ("%s;\n", partition_print_flags (part));
+
+                } else {
+                    puts ("free;");
+                }
+            }
+        }
+
+        ped_disk_destroy (disk);
+
+        return 1;
+
+        ped_disk_destroy (disk);
+error:
+        return 0;
+}
+
+static int
+_print_list ()
+{
+        PedDevice *current_dev = NULL;
+
+        ped_device_probe_all();
+
+        while ((current_dev = ped_device_get_next(current_dev))) {
+                do_print (&current_dev);
+                putchar ('\n');
+        }    
+
+        return 1;
+}
+
+static int
+do_quit (PedDevice** dev)
+{
+        _done (*dev);
+        exit (0);
+}
+
+static PedPartitionType
+_disk_get_part_type_for_sector (PedDisk* disk, PedSector sector)
+{
+        PedPartition*   extended;
+
+        extended = ped_disk_extended_partition (disk);
+        if (!extended
+            || !ped_geometry_test_sector_inside (&extended->geom, sector))
+                return 0;
+
+        return PED_PARTITION_LOGICAL;
+}
+
+/* This function checks if "part" contains a file system, and returs
+ *      0 if either no file system was found, or the user declined to add it.
+ *      1 if a file system was found, and the user chose to add it.
+ *      -1 if the user chose to cancel the entire search.
+ */
+static int
+_rescue_add_partition (PedPartition* part)
+{
+        const PedFileSystemType*        fs_type;
+        PedGeometry*                    probed;
+        PedExceptionOption              ex_opt;
+        PedConstraint*                  constraint;
+        char*                           found_start;
+        char*                           found_end;
+
+        fs_type = ped_file_system_probe (&part->geom);
+        if (!fs_type)
+                return 0;
+        probed = ped_file_system_probe_specific (fs_type, &part->geom);
+        if (!probed)
+                return 0;
+
+        if (!ped_geometry_test_inside (&part->geom, probed)) {
+                ped_geometry_destroy (probed);
+                return 0;
+        }
+
+        constraint = ped_constraint_exact (probed);
+        if (!ped_disk_set_partition_geom (part->disk, part, constraint,
+                                          probed->start, probed->end)) {
+                ped_constraint_destroy (constraint);
+                return 0;
+        }
+        ped_constraint_destroy (constraint);
+
+        found_start = ped_unit_format (probed->dev, probed->start);
+        found_end = ped_unit_format (probed->dev, probed->end);
+        ex_opt = ped_exception_throw (
+                PED_EXCEPTION_INFORMATION,
+                PED_EXCEPTION_YES_NO_CANCEL,
+                _("A %s %s partition was found at %s -> %s.  "
+                  "Do you want to add it to the partition table?"),
+                fs_type->name, ped_partition_type_get_name (part->type),
+                found_start, found_end);
+        ped_geometry_destroy (probed);
+        ped_free (found_start);
+        ped_free (found_end);
+
+        switch (ex_opt) {
+                case PED_EXCEPTION_CANCEL: return -1;
+                case PED_EXCEPTION_NO: return 0;
+                default: break;
+        }
+
+        ped_partition_set_system (part, fs_type);
+        ped_disk_commit (part->disk);
+        return 1;
+}
+
+/* hack: we only iterate through the start, since most (all) fs's have their
+ * superblocks at the start.  We'll need to change this if we generalize
+ * for RAID, or something...
+ */
+static int
+_rescue_pass (PedDisk* disk, PedGeometry* start_range, PedGeometry* end_range)
+{
+        PedSector               start;
+        PedGeometry             start_geom_exact;
+        PedGeometry             entire_dev;
+        PedConstraint           constraint;
+        PedPartition*           part;
+        PedPartitionType        part_type;
+
+        part_type = _disk_get_part_type_for_sector (
+                        disk, (start_range->start + end_range->end) / 2);
+
+        ped_geometry_init (&entire_dev, disk->dev, 0, disk->dev->length);
+
+        ped_timer_reset (g_timer);
+        ped_timer_set_state_name (g_timer, _("searching for file systems"));
+        for (start = start_range->start; start <= start_range->end; start++) {
+                ped_timer_update (g_timer, 1.0 * (start - start_range->start)
+                                         / start_range->length);
+
+                ped_geometry_init (&start_geom_exact, disk->dev, start, 1);
+                ped_constraint_init (
+                        &constraint, ped_alignment_any, ped_alignment_any,
+                        &start_geom_exact, &entire_dev,
+                        1, disk->dev->length);
+                part = ped_partition_new (disk, part_type, NULL, start,
+                                end_range->end);
+                if (!part) {
+                        ped_constraint_done (&constraint);
+                        continue;
+                }
+
+                ped_exception_fetch_all ();
+                if (ped_disk_add_partition (disk, part, &constraint)) {
+                        ped_exception_leave_all ();
+                        switch (_rescue_add_partition (part)) {
+                        case 1:
+                                ped_constraint_done (&constraint);
+                                return 1;
+
+                        case 0:
+                                ped_disk_remove_partition (disk, part);
+                                break;
+
+                        case -1:
+                                goto error_remove_partition;
+                        }
+                } else {
+                        ped_exception_leave_all ();
+                }
+                ped_partition_destroy (part);
+                ped_constraint_done (&constraint);
+        }
+        ped_timer_update (g_timer, 1.0);
+
+        return 1;
+
+error_remove_partition:
+        ped_disk_remove_partition (disk, part);
+        ped_partition_destroy (part);
+        ped_constraint_done (&constraint);
+        return 0;
+}
+
+static int
+do_rescue (PedDevice** dev)
+{
+        PedDisk*                disk;
+        PedSector               start = 0, end = 0;
+        PedSector               fuzz;
+        PedGeometry             probe_start_region;
+        PedGeometry             probe_end_region;
+
+        disk = ped_disk_new (*dev);
+        if (!disk)
+                goto error;
+
+        if (!command_line_get_sector (_("Start?"), *dev, &start, NULL))
+                goto error_destroy_disk;
+        if (!command_line_get_sector (_("End?"), *dev, &end, NULL))
+                goto error_destroy_disk;
+
+        fuzz = PED_MAX (PED_MIN ((end - start) / 10, MEGABYTE_SECTORS(*dev)),
+                        MEGABYTE_SECTORS(*dev) * 16);
+
+        ped_geometry_init (&probe_start_region, *dev,
+                           PED_MAX(start - fuzz, 0),
+                           PED_MIN(2 * fuzz, (*dev)->length - (start - fuzz)));
+        ped_geometry_init (&probe_end_region, *dev,
+                           PED_MAX(end - fuzz, 0),
+                           PED_MIN(2 * fuzz, (*dev)->length - (end - fuzz)));
+
+        if (!_rescue_pass (disk, &probe_start_region, &probe_end_region))
+                goto error_destroy_disk;
+
+        ped_disk_destroy (disk);
+
+        if ((*dev)->type != PED_DEVICE_FILE)
+                disk_is_modified = 1;
+
+        return 1;
+
+error_destroy_disk:
+        ped_disk_destroy (disk);
+error:
+        return 0;
+}
+
+static int
+do_resize (PedDevice** dev)
+{
+        PedDisk                 *disk;
+        PedPartition            *part = NULL;
+        PedFileSystem           *fs;
+        PedConstraint           *constraint;
+        PedSector               start, end;
+        PedGeometry             *range_start = NULL, *range_end = NULL;
+        PedGeometry             new_geom;
+
+        disk = ped_disk_new (*dev);
+        if (!disk)
+                goto error;
+
+        if (!command_line_get_partition (_("Partition number?"), disk, &part))
+                goto error_destroy_disk;
+        if (part->type != PED_PARTITION_EXTENDED) {
+                if (!_partition_warn_busy (part))
+                        goto error_destroy_disk;
+        }
+
+        start = part->geom.start;
+        end = part->geom.end;
+        if (!command_line_get_sector (_("Start?"), *dev, &start, &range_start))
+                goto error_destroy_disk;
+        if (!command_line_get_sector (_("End?"), *dev, &end, &range_end))
+                goto error_destroy_disk;
+
+        if (!ped_geometry_init (&new_geom, *dev, start, end - start + 1))
+                goto error_destroy_disk;
+        snap_to_boundaries (&new_geom, &part->geom, disk,
+                            range_start, range_end);
+
+        if (part->type == PED_PARTITION_EXTENDED) {
+                constraint = constraint_from_start_end (*dev,
+                                range_start, range_end);
+                if (!ped_disk_set_partition_geom (disk, part, constraint,
+                                                  new_geom.start, new_geom.end))
+                        goto error_destroy_constraint;
+                ped_partition_set_system (part, NULL);
+        } else {
+                fs = ped_file_system_open (&part->geom);
+                if (!fs)
+                        goto error_destroy_disk;
+                constraint = constraint_intersect_and_destroy (
+                                ped_file_system_get_resize_constraint (fs),
+                                constraint_from_start_end (
+                                        *dev, range_start, range_end));
+                if (!ped_disk_set_partition_geom (disk, part, constraint,
+                                                  new_geom.start, new_geom.end))
+                        goto error_close_fs;
+                if (!ped_file_system_resize (fs, &part->geom, g_timer))
+                        goto error_close_fs;
+                /* may have changed... eg fat16 -> fat32 */
+                ped_partition_set_system (part, fs->type);
+                ped_file_system_close (fs);
+        }
+
+        ped_disk_commit (disk);
+        ped_constraint_destroy (constraint);
+        ped_disk_destroy (disk);
+        if (range_start != NULL)
+                ped_geometry_destroy (range_start);
+        if (range_end != NULL)
+                ped_geometry_destroy (range_end);
+
+        if ((*dev)->type != PED_DEVICE_FILE)
+                disk_is_modified = 1;
+
+        return 1;
+
+error_close_fs:
+        ped_file_system_close (fs);
+error_destroy_constraint:
+        ped_constraint_destroy (constraint);
+error_destroy_disk:
+        ped_disk_destroy (disk);
+error:
+        if (range_start != NULL)
+                ped_geometry_destroy (range_start);
+        if (range_end != NULL)
+                ped_geometry_destroy (range_end);
+        return 0;
+}
+
+static int
+do_rm (PedDevice** dev)
+{
+        PedDisk*                disk;
+        PedPartition*           part = NULL;
+
+        disk = ped_disk_new (*dev);
+        if (!disk)
+                goto error;
+
+        if (!command_line_get_partition (_("Partition number?"), disk, &part))
+                goto error_destroy_disk;
+        if (!_partition_warn_busy (part))
+                goto error_destroy_disk;
+
+        ped_disk_delete_partition (disk, part);
+        ped_disk_commit (disk);
+        ped_disk_destroy (disk);
+
+        if ((*dev)->type != PED_DEVICE_FILE)
+                disk_is_modified = 1;
+
+        return 1;
+
+error_destroy_disk:
+        ped_disk_destroy (disk);
+error:
+        return 0;
+}
+
+static int
+do_select (PedDevice** dev)
+{
+        PedDevice*      new_dev = *dev;
+
+        if (!command_line_get_device (_("New device?"), &new_dev))
+                return 0;
+        if (!ped_device_open (new_dev))
+                return 0;
+
+        ped_device_close (*dev);
+        *dev = new_dev;
+        print_using_dev (*dev);
+        return 1;
+}
+
+static int
+do_set (PedDevice** dev)
+{
+        PedDisk*                disk;
+        PedPartition*           part = NULL;
+        PedPartitionFlag        flag;
+        int                     state;
+        
+        disk = ped_disk_new (*dev);
+        if (!disk)
+                goto error;
+        
+        if (!command_line_get_partition (_("Partition number?"), disk, &part))
+                goto error_destroy_disk;
+        if (!command_line_get_part_flag (_("Flag to Invert?"), part, &flag))
+                goto error_destroy_disk;
+        state = (ped_partition_get_flag (part, flag) == 0 ? 1 : 0);      
+        
+        if (!is_toggle_mode) {
+                if (!command_line_get_state (_("New state?"), &state))
+		            goto error_destroy_disk;
+        }
+    
+        if (!ped_partition_set_flag (part, flag, state))
+	        	goto error_destroy_disk;
+    	if (!ped_disk_commit (disk))
+	        	goto error_destroy_disk;
+    	ped_disk_destroy (disk);
+
+        if ((*dev)->type != PED_DEVICE_FILE)
+                disk_is_modified = 1;
+
+	    return 1;
+
+error_destroy_disk:
+        ped_disk_destroy (disk);
+error:
+        return 0;
+}
+
+static int
+do_toggle (PedDevice **dev)
+{
+        int result;
+        
+        is_toggle_mode = 1;
+        result = do_set (dev);
+        is_toggle_mode = 0;
+
+        return result;
+}
+
+static int
+do_unit (PedDevice** dev)
+{
+        PedUnit unit = ped_unit_get_default ();
+        if (!command_line_get_unit (_("Unit?"), &unit))
+                return 0;
+        ped_unit_set_default (unit);
+        return 1;
+}
+
+static int
+do_version ()
+{
+    printf ("\n%s\n%s",
+            prog_name,
+            _(copyright_msg));
+    return 1;
+}
+
+static void
+_init_messages ()
+{
+        StrList*                list;
+        int                     first;
+        PedFileSystemType*      fs_type;
+        PedDiskType*            disk_type;
+        PedPartitionFlag        part_flag;
+        PedUnit                 unit;
+
+/* flags */
+        first = 1;
+        list = str_list_create (_(flag_msg_start), NULL);
+        for (part_flag = ped_partition_flag_next (0); part_flag;
+                        part_flag = ped_partition_flag_next (part_flag)) {
+                if (first)
+                        first = 0;
+                else
+                        str_list_append (list, ", ");
+                str_list_append (list,
+                                 _(ped_partition_flag_get_name (part_flag)));
+        }
+        str_list_append (list, "\n");
+
+        flag_msg = str_list_convert (list);
+        str_list_destroy (list);
+
+/* units */
+        first = 1;
+        list = str_list_create (_(unit_msg_start), NULL);
+        for (unit = PED_UNIT_FIRST; unit <= PED_UNIT_LAST; unit++) {
+                if (first)
+                        first = 0;
+                else
+                        str_list_append (list, ", ");
+                str_list_append (list, ped_unit_get_name (unit));
+        }
+        str_list_append (list, "\n");
+
+        unit_msg = str_list_convert (list);
+        str_list_destroy (list);
+
+/* disk type */
+        list = str_list_create (_(label_type_msg_start), NULL);
+
+        first = 1;
+        for (disk_type = ped_disk_type_get_next (NULL);
+             disk_type; disk_type = ped_disk_type_get_next (disk_type)) {
+                if (disk_type->ops->write == NULL)
+                        continue;
+
+                if (first)
+                        first = 0;
+                else
+                        str_list_append (list, ", ");
+                str_list_append (list, disk_type->name);
+        }
+        str_list_append (list, "\n");
+
+        label_type_msg = str_list_convert (list);
+        str_list_destroy (list);
+
+/* mkfs - file system types */
+        list = str_list_create (_(fs_type_msg_start), NULL);
+
+        first = 1;
+        for (fs_type = ped_file_system_type_get_next (NULL);
+             fs_type; fs_type = ped_file_system_type_get_next (fs_type)) {
+                if (fs_type->ops->create == NULL)
+                        continue;
+
+                if (first)
+                        first = 0;
+                else
+                        str_list_append (list, ", ");
+                str_list_append (list, fs_type->name);
+        }
+        str_list_append (list, "\n");
+
+        mkfs_fs_type_msg = str_list_convert (list);
+        str_list_destroy (list);
+
+/* mkpart - file system types */
+        list = str_list_create (_(fs_type_msg_start), NULL);
+
+        first = 1;
+        for (fs_type = ped_file_system_type_get_next (NULL);
+             fs_type; fs_type = ped_file_system_type_get_next (fs_type)) {
+                if (first)
+                        first = 0;
+                else
+                        str_list_append (list, ", ");
+                str_list_append (list, fs_type->name);
+        }
+        str_list_append (list, "\n");
+
+        mkpart_fs_type_msg = str_list_convert (list);
+        str_list_destroy (list);
+
+/* resize - file system types */
+        list = str_list_create (_(resize_msg_start), NULL);
+
+        first = 1;
+        for (fs_type = ped_file_system_type_get_next (NULL);
+             fs_type; fs_type = ped_file_system_type_get_next (fs_type)) {
+                if (fs_type->ops->resize == NULL)
+                        continue;
+
+                if (first)
+                        first = 0;
+                else
+                        str_list_append (list, ", ");
+                str_list_append (list, fs_type->name);
+        }
+        str_list_append (list, "\n");
+
+        resize_fs_type_msg = str_list_convert (list);
+        str_list_destroy (list);
+}
+
+static void
+_done_messages ()
+{
+        free (flag_msg);
+        free (mkfs_fs_type_msg);
+        free (mkpart_fs_type_msg);
+        free (resize_fs_type_msg);
+        free (label_type_msg);
+}
+
+static void
+_init_commands ()
+{
+        command_register (commands, command_create (
+                str_list_create_unique ("check", _("check"), NULL),
+                do_check,
+                str_list_create (
+_("check NUMBER                             do a simple check on the file "
+  "system"),
+NULL),
+                str_list_create (_(number_msg), NULL), 1));
+
+        command_register (commands, command_create (
+                str_list_create_unique ("cp", _("cp"), NULL),
+                do_cp,
+                str_list_create (
+_("cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+  "partition"),
+NULL),
+                str_list_create (_(number_msg), _(device_msg), NULL), 1));
+
+        command_register (commands, command_create (
+                str_list_create_unique ("help", _("help"), NULL),
+                do_help,
+                str_list_create (
+_("help [COMMAND]                           print general help, or help "
+  "on COMMAND"),
+NULL),
+                NULL, 1));
+
+        command_register (commands, command_create (
+                str_list_create_unique ("mklabel", _("mklabel"), "mktable", _("mktable"), NULL),
+                do_mklabel,
+                str_list_create (
+_("mklabel,mktable LABEL-TYPE               create a new disklabel "
+  "(partition table)"),
+NULL),
+                str_list_create (label_type_msg, NULL), 1));
+
+        command_register (commands, command_create (
+                str_list_create_unique ("mkfs", _("mkfs"), NULL),
+                do_mkfs,
+                str_list_create (
+_("mkfs NUMBER FS-TYPE                      make a FS-TYPE file "
+  "system on partititon NUMBER"),
+NULL),
+                str_list_create (_(number_msg), _(mkfs_fs_type_msg), NULL), 1));
+
+        command_register (commands, command_create (
+                str_list_create_unique ("mkpart", _("mkpart"), NULL),
+                do_mkpart,
+                str_list_create (
+_("mkpart PART-TYPE [FS-TYPE] START END     make a partition"),
+NULL),
+                str_list_create (_(part_type_msg),
+                                 _(mkpart_fs_type_msg),
+                                 _(start_end_msg),
+                                 "\n",
+_("'mkpart' makes a partition without creating a new file system on the "
+  "partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"),
+NULL), 1));
+
+        command_register (commands, command_create (
+                str_list_create_unique ("mkpartfs", _("mkpartfs"), NULL),
+                do_mkpartfs,
+                str_list_create (
+_("mkpartfs PART-TYPE FS-TYPE START END     make a partition with a "
+  "file system"),
+NULL),
+        str_list_create (_(part_type_msg), _(start_end_msg), NULL), 1));
+
+command_register (commands, command_create (
+        str_list_create_unique ("move", _("move"), NULL),
+        do_move,
+        str_list_create (
+_("move NUMBER START END                    move partition NUMBER"),
+NULL),
+        str_list_create (_(number_msg), _(start_end_msg), NULL), 1));
+
+command_register (commands, command_create (
+        str_list_create_unique ("name", _("name"), NULL),
+        do_name,
+        str_list_create (
+_("name NUMBER NAME                         name partition NUMBER as NAME"),
+NULL),
+        str_list_create (_(number_msg), _(name_msg), NULL), 1));
+
+command_register (commands, command_create (
+        str_list_create_unique ("print", _("print"), NULL),
+        do_print,
+        str_list_create (
+_("print [devices|free|list,all|NUMBER]     display the partition table, "
+  "available devices, free space, all found partitions, or a particular "
+  "partition"),
+NULL),
+        str_list_create (
+_("Without arguments, 'print' displays the entire partition table. However "
+  "with the following arguments it performs various other actions.\n"),
+_("  devices   : display all active block devices\n"),
+_("  free      : display information about free unpartitioned space on the "
+  "current block device\n"),
+_("  list, all : display the partition tables of all active block devices\n"),
+_("  NUMBER    : display more detailed information about this particular "
+  "partition\n"),
+NULL), 1));
+
+command_register (commands, command_create (
+        str_list_create_unique ("quit", _("quit"), NULL),
+        do_quit,
+        str_list_create (
+_("quit                                     exit program"),
+NULL),
+        NULL, 1));
+
+command_register (commands, command_create (
+        str_list_create_unique ("rescue", _("rescue"), NULL),
+        do_rescue,
+        str_list_create (
+_("rescue START END                         rescue a lost partition near "
+"START and END"),
+NULL),
+        str_list_create (_(start_end_msg), NULL), 1));
+
+command_register (commands, command_create (
+        str_list_create_unique ("resize", _("resize"), NULL),
+        do_resize,
+        str_list_create (
+_("resize NUMBER START END                  resize partition NUMBER and "
+"its file system"),
+NULL),
+        str_list_create (_(number_msg),
+                         _(start_end_msg),
+                         _(resize_fs_type_msg), NULL), 1));
+
+command_register (commands, command_create (
+        str_list_create_unique ("rm", _("rm"), NULL),
+        do_rm,
+        str_list_create (
+_("rm NUMBER                                delete partition NUMBER"),
+NULL),
+        str_list_create (_(number_msg), NULL), 1));
+
+command_register (commands, command_create (
+        str_list_create_unique ("select", _("select"), NULL),
+        do_select,
+        str_list_create (
+_("select DEVICE                            choose the device to edit"),
+NULL),
+        str_list_create (_(device_msg), NULL), 1));
+
+command_register (commands, command_create (
+		str_list_create_unique ("set", _("set"), NULL),
+		do_set,
+		str_list_create (
+_("set NUMBER FLAG STATE                    change the FLAG on partition "
+  "NUMBER"),
+NULL),
+        str_list_create (_(number_msg), flag_msg, _(state_msg), NULL), 1));
+
+command_register (commands, command_create (
+        str_list_create_unique ("toggle", _("toggle"), NULL),
+        do_toggle,
+        str_list_create (
+_("toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+  "partition NUMBER"),
+NULL),
+        str_list_create (_(number_msg), flag_msg, NULL), 1));
+
+command_register (commands, command_create (
+        str_list_create_unique ("unit", _("unit"), NULL),
+        do_unit,
+        str_list_create (
+_("unit UNIT                                set the default unit to UNIT"),
+NULL),
+        str_list_create (unit_msg, NULL), 1));
+
+command_register (commands, command_create (
+        str_list_create_unique ("version", _("version"), NULL),
+        do_version,
+        str_list_create (
+_("version                                  display the version number "
+"and copyright information of GNU Parted"),
+NULL),
+        str_list_create (
+_("'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"),
+NULL), 1));
+
+}
+
+static void
+_done_commands ()
+{
+Command**       walk;
+
+for (walk = commands; *walk; walk++) {
+        command_destroy (*walk);
+        *walk = NULL;
+}
+}
+
+static void
+_init_i18n ()
+{
+/* intialize i18n */
+#ifdef ENABLE_NLS
+setlocale(LC_ALL, "");
+bindtextdomain(PACKAGE, LOCALEDIR);
+textdomain(PACKAGE);
+#endif /* ENABLE_NLS */
+}
+
+void
+_version ()
+{
+  version_etc (stdout, PROGRAM_NAME, PACKAGE_NAME, VERSION, AUTHORS,
+               (char *) NULL);
+}
+
+static int
+_parse_options (int* argc_ptr, char*** argv_ptr)
+{
+int     opt, help = 0, list = 0, version = 0, wrong = 0;
+
+while (1)
+{
+        opt = getopt_long (*argc_ptr, *argv_ptr, "hilmsv",
+                           options, NULL);
+        if (opt == -1)
+                break;
+
+        switch (opt) {
+                case 'h': help = 1; break;
+                case 'l': list = 1; break;
+                case 'm': opt_machine_mode = 1; break;
+                case 's': opt_script_mode = 1; break;
+                case 'v': version = 1; break;
+                case PRETEND_INPUT_TTY:
+                  pretend_input_tty = 1;
+                  break;
+                default:  wrong = 1; break;
+        }
+}
+
+if (wrong == 1) {
+        fprintf (stderr,
+                 _("Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"),
+                 program_name);
+        return 0;
+}
+
+if (version == 1) {
+        _version ();
+        exit (EXIT_SUCCESS);
+}
+
+if (help == 1) {
+        help_msg ();
+        exit (EXIT_SUCCESS);
+}
+
+if (list == 1) {
+        _print_list ();
+        exit (EXIT_SUCCESS);
+}
+
+*argc_ptr -= optind;
+*argv_ptr += optind;
+return 1;
+}
+
+static PedDevice*
+_choose_device (int* argc_ptr, char*** argv_ptr)
+{
+PedDevice*      dev;
+
+/* specified on comand line? */
+if (*argc_ptr) {
+        dev = ped_device_get ((*argv_ptr) [0]);
+        if (!dev)
+                return NULL;
+        (*argc_ptr)--;
+        (*argv_ptr)++;
+} else {
+retry:
+        ped_device_probe_all ();
+        dev = ped_device_get_next (NULL);
+        if (!dev) {
+                if (ped_exception_throw (PED_EXCEPTION_ERROR,
+                        PED_EXCEPTION_RETRY_CANCEL,
+                        _("No device found"))
+                                == PED_EXCEPTION_RETRY)
+                        goto retry;
+                else
+                        return NULL;
+        }
+}
+
+if (!ped_device_open (dev))
+        return NULL;
+return dev;     
+}
+
+static PedDevice*
+_init (int* argc_ptr, char*** argv_ptr)
+{
+PedDevice*      dev;
+
+#ifdef ENABLE_MTRACE
+mtrace();
+#endif
+
+_init_i18n ();
+if (!init_ui ())
+        goto error;
+_init_messages ();
+_init_commands ();
+
+if (!_parse_options (argc_ptr, argv_ptr))
+        goto error_done_commands;
+
+#ifdef HAVE_GETUID
+        if (getuid() != 0 && !opt_script_mode) {
+            puts (_("WARNING: You are not superuser.  Watch out for "
+                    "permissions."));
+        }
+#endif
+
+dev = _choose_device (argc_ptr, argv_ptr);
+if (!dev)
+        goto error_done_commands;
+
+g_timer = ped_timer_new (_timer_handler, &timer_context);
+if (!g_timer)
+        goto error_done_commands;
+timer_context.last_update = 0;
+
+return dev;
+
+error_done_commands:
+_done_commands ();
+_done_messages ();
+done_ui ();
+error:
+return NULL;
+}
+
+static void
+_done (PedDevice* dev)
+{
+if (dev->boot_dirty && dev->type != PED_DEVICE_FILE) {
+        ped_exception_throw (
+                PED_EXCEPTION_WARNING,
+                PED_EXCEPTION_OK,
+        _("You should reinstall your boot loader before "
+          "rebooting.  Read section 4 of the Parted User "
+          "documentation for more information."));
+}
+if (!opt_script_mode && !opt_machine_mode && disk_is_modified) {
+        ped_exception_throw (
+                PED_EXCEPTION_INFORMATION, PED_EXCEPTION_OK,
+                _("You may need to update /etc/fstab.\n"));
+}
+
+ped_device_close (dev);
+
+ped_timer_destroy (g_timer);
+_done_commands ();
+_done_messages ();
+done_ui();
+}
+
+int
+main (int argc, char** argv)
+{
+        PedDevice*      dev;
+        int             status;
+
+        program_name = argv[0];
+        atexit (close_stdout);
+
+        dev = _init (&argc, &argv);
+        if (!dev)
+                return 1;
+
+        if (argc || opt_script_mode)
+                status = non_interactive_mode (&dev, commands, argc, argv);
+        else
+                status = interactive_mode (&dev, commands);
+
+        _done (dev);
+
+        return !status;
+}
diff --git a/parted-1.8.7/parted/strlist.c b/parted-1.8.7/parted/strlist.c
new file mode 100644
index 0000000..da1b09f
--- /dev/null
+++ b/parted-1.8.7/parted/strlist.c
@@ -0,0 +1,605 @@
+/*
+    parted - a frontend to libparted
+    Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <config.h>
+
+#include <parted/debug.h>
+
+#include <ctype.h>
+#include <errno.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <limits.h>
+
+#ifdef ENABLE_NLS
+
+#undef __USE_GNU
+#define __USE_GNU
+
+#include <wchar.h>
+#include <wctype.h>
+
+#else /* ENABLE_NLS */
+
+#ifdef wchar_t
+#undef wchar_t
+#endif
+
+#define wchar_t char
+
+#endif /* !ENABLE_NLS */
+
+#include "strlist.h"
+
+#define MIN(a,b)	( (a<b)?  a : b )
+
+int
+wchar_strlen (const wchar_t* str)
+{
+#ifdef ENABLE_NLS
+	return wcslen (str);
+#else
+	return strlen (str);
+#endif
+}
+
+wchar_t*
+wchar_strchr (const wchar_t* str, char ch)
+{
+#ifdef ENABLE_NLS
+	return wcschr (str, ch);
+#else
+	return strchr (str, ch);
+#endif
+}
+
+int
+wchar_strcasecmp (const wchar_t* a, const wchar_t* b)
+{
+#ifdef ENABLE_NLS
+	return wcscasecmp (a, b);
+#else
+	return strcasecmp (a, b);
+#endif
+}
+
+int
+wchar_strncasecmp (const wchar_t* a, const wchar_t* b, size_t n)
+{
+#ifdef ENABLE_NLS
+	return wcsncasecmp (a, b, n);
+#else
+	return strncasecmp (a, b, n);
+#endif
+}
+
+wchar_t*
+wchar_strdup (const wchar_t* str)
+{
+#ifdef ENABLE_NLS
+	return wcsdup (str);
+#else
+	return strdup (str);
+#endif
+}
+
+/* converts a string from the encoding in the gettext catalogues to wide
+ * character strings (of type wchar_t*).
+ */
+#ifdef ENABLE_NLS
+static wchar_t*
+gettext_to_wchar (const char* str)
+{
+	int		count;
+	wchar_t*	result;
+	size_t		status;
+	mbstate_t	ps;
+
+	count = strlen (str) + 1;
+	result = malloc (count * sizeof (wchar_t));
+	if (!result)
+		goto error;
+
+	memset(&ps, 0, sizeof (ps));
+	status = mbsrtowcs(result, &str, count, &ps);
+	if (status == (size_t) -1)
+		goto error;
+
+	result = realloc (result, (wcslen (result) + 1) * sizeof (wchar_t));
+	return result;
+
+error:
+	printf ("Error during translation: %s\n", strerror (errno));
+	exit (1);
+}
+
+#else /* ENABLE_NLS */
+
+static wchar_t*
+gettext_to_wchar (const char* str)
+{
+	return strdup (str);
+}
+
+#endif /* !ENABLE_NLS */
+
+
+#ifdef ENABLE_NLS
+static char*
+wchar_to_str (const wchar_t* str, size_t count)
+{
+	char*		result;
+	char*		out_buf;
+	size_t		status;
+	mbstate_t	ps;
+	size_t		i;
+
+	if (count == 0 || wcslen(str) < count)
+		count = wcslen (str);
+
+	out_buf = result = malloc ((count + 1) *  MB_LEN_MAX);
+	if (!result)
+		goto error;
+
+	memset(&ps, 0, sizeof(ps));
+
+	for (i = 0; i < count; i++) {
+		status = wcrtomb (out_buf, str[i], &ps);
+		if (status == (size_t) -1)
+			goto error;
+		out_buf += status;
+	}
+
+	status = wcrtomb (out_buf, 0, &ps);
+	if (status == (size_t) -1)
+		goto error;
+
+	result = realloc (result, strlen (result) + 1);
+	return result;
+
+error:
+	printf ("Error during translation: %s\n", strerror (errno));
+	exit (1);
+}
+
+#else /* ENABLE_NLS */
+
+static char*
+wchar_to_str (const wchar_t* str, size_t count)
+{
+	char*		result;
+
+	result = strdup (str);
+	if (count && count < strlen (result))
+		result [count] = 0;
+	return result;
+}
+
+#endif /* !ENABLE_NLS */
+
+static void
+print_wchar (const wchar_t* str, size_t count)
+{
+	char*	tmp = wchar_to_str (str, count);
+	printf ("%s", tmp);
+	free (tmp);
+}
+
+static StrList* 
+str_list_alloc ()
+{
+	StrList*	list;
+
+	list = (StrList*) malloc (sizeof (StrList));
+	list->next = NULL;
+
+	return list;
+}
+
+void
+str_list_destroy (StrList* list)
+{
+	if (list) {
+		str_list_destroy (list->next);
+		str_list_destroy_node (list);
+	}
+}
+
+void
+str_list_destroy_node (StrList* list)
+{
+	free ((wchar_t*) list->str);
+	free (list);
+}
+
+StrList*
+str_list_duplicate_node (const StrList* node)
+{
+	StrList*	result = str_list_alloc ();
+	result->str = wchar_strdup (node->str);
+	return result;
+}
+
+StrList*
+str_list_duplicate (const StrList* list)
+{
+	if (list)
+		return str_list_join (str_list_duplicate_node (list),
+				      str_list_duplicate (list->next));
+	else
+		return NULL;
+}
+
+StrList*
+str_list_join (StrList* a, StrList* b)
+{
+	StrList*	walk;
+
+	for (walk = a; walk && walk->next; walk = walk->next);
+
+	if (walk) {
+		walk->next = b;
+		return a;
+	} else {
+		return b;
+	}
+}
+
+static StrList*
+_str_list_append (StrList* list, const wchar_t* str)
+{
+	StrList*	walk;
+
+	if (list) {
+		for (walk = list; walk->next; walk = walk->next);
+		walk->next = str_list_alloc ();
+		walk = walk->next;
+	} else {
+		walk = list = str_list_alloc ();
+	}
+	walk->str = str;
+
+	return list;
+}
+
+StrList*
+str_list_append (StrList* list, const char* str)
+{
+	return _str_list_append (list, gettext_to_wchar (str));
+}
+
+StrList*
+str_list_append_unique (StrList* list, const char* str)
+{
+	StrList*	walk;
+	wchar_t*	new_str = gettext_to_wchar (str);
+
+	for (walk=list; walk; walk=walk->next) {
+		if (walk->str) {
+			if (wchar_strcasecmp (new_str, walk->str) == 0) {
+				free (new_str);
+				return list;
+			}
+		}
+	}
+
+	return _str_list_append (list, new_str);
+}
+
+StrList*
+str_list_insert (StrList* list, const char* str)
+{
+	return str_list_join (str_list_create (str, NULL), list);
+}
+
+StrList*
+str_list_create (const char* first, ...)
+{
+	va_list		args;
+	char*		str;
+	StrList*	list;
+
+	list = str_list_append (NULL, first);
+
+	if (first) {
+		va_start (args, first);
+		while ( (str = va_arg (args, char*)) )
+			str_list_append (list, str);
+		va_end (args);
+	}
+
+	return list;
+}
+
+StrList*
+str_list_create_unique (const char* first, ...)
+{
+	va_list		args;
+	char*		str;
+	StrList*	list;
+
+	list = str_list_append (NULL, first);
+
+	if (first) {
+		va_start (args, first);
+		while ( (str = va_arg (args, char*)) )
+			str_list_append_unique (list, str);
+		va_end (args);
+	}
+
+	return list;
+}
+
+char*
+str_list_convert_node (const StrList* list)
+{
+	return wchar_to_str (list->str, 0);
+}
+
+char*
+str_list_convert (const StrList* list)
+{
+	const StrList*	walk;
+	int		pos = 0;
+	int		length = 1;
+	char*		str = strdup ("");
+
+	for (walk = list; walk; walk = walk->next) {
+		if (walk->str) {
+			char*	tmp = wchar_to_str (walk->str, 0);
+
+			length += strlen (tmp);
+
+			str = realloc (str, length);
+			strcpy (str + pos, tmp);
+
+			pos = length - 1;
+			free (tmp);
+		}
+	}
+
+	return str;
+}
+
+void
+str_list_print (const StrList* list)
+{
+	const StrList*	walk;
+
+	for (walk=list; walk; walk=walk->next) {
+		if (walk->str)
+			print_wchar (walk->str, 0);
+	}
+}
+
+static char*
+get_spaces (int space_count)
+{
+	char*	str;
+	int	i;
+
+	str = malloc (space_count + 1);
+	for (i = 0; i < space_count; i++)
+		str [i] = ' ';
+	str [i] = 0;
+
+	return str;
+}
+
+static int
+str_search (const wchar_t* str, int n, wchar_t c)
+{
+	int	i;
+
+	for (i=0; i<n; i++)
+		if (str [i] == c)
+			return i;
+	return -1;
+}
+
+
+/* Japanese don't leave spaces between words, so ALL Japanese characters
+ * are treated as delimiters.  Note: since the translations should already
+ * be properly formatted (eg: spaces after commas), there should be no
+ * need to include them.  Best not to avoid side effects, like 3.
+14159 :-)
+ * FIXME: how do we exclude "." and "(" ?
+ * FIXME: glibc doesn't like umlaute.  i.e. \"o (TeX notation), which should
+ * look like: ö
+ */
+
+static int
+is_break_point (wchar_t c)
+{
+#ifdef ENABLE_NLS
+	return !iswalnum (c) && !iswpunct (c);
+#else
+	return !isalnum (c) && !ispunct (c);
+#endif
+}
+
+/* NOTE: this should not return '\n' as a space, because explicit '\n' may
+ * be placed inside strings.
+ */
+static int
+is_space (wchar_t c)
+{
+#ifdef ENABLE_NLS
+	return c == (wchar_t) btowc(' ');
+#else
+	return c == ' ';
+#endif
+}
+
+void
+str_list_print_wrap (const StrList* list, int line_length, int offset,
+		     int indent)
+{
+	const StrList*	walk;
+	const wchar_t*	str;
+	int		str_len;
+	int		cut_right;
+	int		cut_left;
+	int		line_left;
+	char*		spaces;
+	int		search_result;
+	int		line_break;
+
+	PED_ASSERT (line_length - indent > 10, return);
+
+	spaces = get_spaces (indent);
+	line_left = line_length - offset;
+
+	for (walk=list; walk; walk=walk->next) {
+		if (!walk->str)
+			continue;
+		str = walk->str;
+		str_len = wchar_strlen (str);
+
+		while (line_left < str_len || wchar_strchr (str, '\n')) {
+			line_break = 0;
+
+			cut_left = MIN (line_left - 1, str_len - 1);
+
+			/* we can have a space "over", but not a comma */
+			if (cut_left < str_len
+					&& is_space (str [cut_left + 1]))
+				cut_left++;
+
+			while (cut_left && !is_break_point (str [cut_left]))
+				cut_left--;
+			while (cut_left && is_space (str [cut_left]))
+				cut_left--;
+
+		/* str [cut_left] is either the end of a word, or a
+		 * Japanese character, or the start of a blank line.
+		 */
+
+			search_result = str_search (str, cut_left + 1, '\n');
+			if (search_result != -1) {
+				cut_left = search_result - 1;
+				line_break = 1;
+			}
+
+			for (cut_right = cut_left + (line_break ? 2 : 1);
+			     cut_right < str_len && is_space (str [cut_right]);
+			     cut_right++);
+
+			if (cut_left > 0)
+				print_wchar (str, cut_left + 1);
+
+			str += cut_right;
+			str_len -= cut_right;
+			line_left = line_length - indent;
+
+			if (walk->next || *str)
+				printf ("\n%s", spaces);
+			else if (line_break)
+				putchar ('\n');
+		}
+
+		print_wchar (str, 0);
+		line_left -= wchar_strlen (str);
+	}
+
+	free (spaces);
+}
+
+static int
+_str_list_match_node (const StrList* list, const wchar_t* str)
+{
+	if (wchar_strcasecmp (list->str, str) == 0)
+		return 2;
+	if (wchar_strncasecmp (list->str, str, wchar_strlen (str)) == 0)
+		return 1;
+	return 0;
+}
+
+int
+str_list_match_node (const StrList* list, const char* str)
+{
+	wchar_t*	wc_str = gettext_to_wchar (str);	/* FIXME */
+	int		status;
+
+	status = _str_list_match_node (list, wc_str);
+	free (wc_str);
+
+	return status;
+}
+
+/* returns:  2 for full match
+	     1 for partial match
+	     0 for no match
+ */
+int
+str_list_match_any (const StrList* list, const char* str)
+{
+	const StrList*	walk;
+	int		best_status = 0;
+	wchar_t*	wc_str = gettext_to_wchar (str);
+
+	for (walk = list; walk; walk = walk->next) {
+		int	this_status = _str_list_match_node (walk, wc_str);
+		if (this_status > best_status)
+	       		best_status = this_status;
+	}
+
+	free (wc_str);
+	return best_status;
+}
+
+StrList*
+str_list_match (const StrList* list, const char* str)
+{
+	const StrList*	walk;
+	const StrList*	partial_match = NULL;
+	int		ambiguous = 0;
+	wchar_t*	wc_str = gettext_to_wchar (str);
+
+	for (walk = list; walk; walk = walk->next) {
+		switch (_str_list_match_node (walk, wc_str)) {
+			case 2:
+				free (wc_str);
+				return (StrList*) walk;
+
+			case 1:
+				if (partial_match)
+					ambiguous = 1;
+				partial_match = walk;
+		}
+	}
+
+	free (wc_str);
+	return ambiguous ? NULL : (StrList*) partial_match;
+}
+
+int
+str_list_length (const StrList* list)
+{
+	int		length = 0;
+	const StrList*	walk;
+
+	for (walk = list; walk; walk = walk->next)
+		length++;
+
+	return length;
+}
+
diff --git a/parted-1.8.7/parted/strlist.h b/parted-1.8.7/parted/strlist.h
new file mode 100644
index 0000000..e458ba1
--- /dev/null
+++ b/parted-1.8.7/parted/strlist.h
@@ -0,0 +1,59 @@
+/*
+    parted - a frontend to libparted
+    Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef STRLIST_H_INCLUDED
+#define STRLIST_H_INCLUDED
+
+#include <wchar.h>
+
+typedef struct _StrList StrList;
+struct _StrList {
+	StrList*	next;
+	const wchar_t*	str;
+};
+
+extern char* language;
+extern char* gettext_charset;
+extern char* term_charset;
+
+extern StrList* str_list_create (const char* first, ...);
+extern StrList* str_list_create_unique (const char* first, ...);
+extern void str_list_destroy (StrList* list);
+extern void str_list_destroy_node (StrList* list);
+
+extern StrList* str_list_duplicate (const StrList* list);
+extern StrList* str_list_duplicate_node (const StrList* list);
+extern StrList* str_list_insert (StrList* list, const char* str);
+extern StrList* str_list_append (StrList* list, const char* str);
+extern StrList* str_list_append_unique (StrList* list, const char* str);
+extern StrList* str_list_join (StrList* a, StrList* b);
+extern char* str_list_convert (const StrList* list);
+extern char* str_list_convert_node (const StrList* list);
+
+extern void str_list_print (const StrList* list);
+extern void str_list_print_wrap (const StrList* list, int line_length,
+				 int offset, int indent);
+extern int str_list_match_any (const StrList* list, const char* str);
+extern int str_list_match_node (const StrList* list, const char* str);
+extern StrList* str_list_match (const StrList* list, const char* str);
+
+extern int str_list_length (const StrList* list);
+
+#endif /* STRLIST_H_INCLUDED */
+
diff --git a/parted-1.8.7/parted/table.c b/parted-1.8.7/parted/table.c
new file mode 100644
index 0000000..8768a92
--- /dev/null
+++ b/parted-1.8.7/parted/table.c
@@ -0,0 +1,246 @@
+/*
+ * TODO: - make right and centered alignment possible
+ */
+/*
+    parted - a frontend to libparted
+    Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <assert.h>
+
+#include <config.h>
+
+#ifdef ENABLE_NLS
+#       include <wchar.h>
+        int wcswidth (const wchar_t *s, size_t n);
+#	define L_(str) L##str
+#else
+#	define L_(str) str
+#       ifdef wchar_t
+#               undef wchar_t
+#       endif
+#       include <string.h>
+#       define wchar_t char
+#       define wcslen strlen
+#       define wcswidth strnlen
+#       define wcscat strcat
+#       define wcsdup strdup
+        size_t strnlen (const char *, size_t);
+#endif
+
+#include "xalloc.h"
+#include "strlist.h"
+
+
+static const unsigned int       MAX_WIDTH = 512;
+static const wchar_t*           DELIMITER = L_("  ");
+static const wchar_t*           COLSUFFIX = L_("\n");
+
+typedef struct
+{
+        unsigned int    ncols;
+        unsigned int    nrows;
+        wchar_t***      rows;
+        int*            widths;
+} Table;
+
+
+Table* table_new(int ncols)
+{
+        assert ( ncols >= 0 );
+        
+        Table *t = malloc(sizeof(Table));
+
+        t->ncols = ncols;
+        t->nrows = 0;
+        t->rows = (wchar_t***)NULL;
+        t->widths = NULL;
+        
+        return t;
+}
+
+
+void table_destroy (Table* t)
+{
+        unsigned int r, c;
+        
+        assert (t);
+        assert (t->ncols > 0);
+        
+        for (r = 0; r < t->nrows; ++r)
+        {
+                for (c = 0; c < t->ncols; ++c)
+                        free (t->rows[r][c]);
+                free (t->rows[r]);
+        }
+
+        if (t->rows)
+                free (t->rows);
+
+        if (t->widths)
+                free (t->widths);
+
+        free (t);
+}
+
+
+static int max (int x, int y)
+{
+        return x > y ? x : y;
+}
+
+
+static void table_calc_column_widths (Table* t)
+{
+        unsigned int r, c;
+        
+        assert(t);
+        assert(t->ncols > 0);
+        
+        if (!t->widths)
+                t->widths = (int*)malloc(t->ncols * sizeof(int));
+
+        for (c = 0; c < t->ncols; ++c)
+                t->widths[c] = 0;
+        
+        for (r = 0; r < t->nrows; ++r)
+                for (c = 0; c < t->ncols; ++c)
+                {
+                        t->widths[c] = max ( t->widths[c],
+                                             wcswidth(t->rows[r][c],
+                                                      MAX_WIDTH) );
+                }
+}
+
+
+/* 
+ * add a row which is a string array of ncols elements.
+ * 'row' will get freed by table_destroy;  you must not free it
+ * yourself.
+ */
+void table_add_row (Table* t, wchar_t** row)
+{
+        assert(t);
+
+        /*unsigned int i;
+        fputs ("adding row: ", stdout);
+        for (i = 0; i < t->ncols; ++i)
+                printf("[%s]", row[i]);
+        putchar ('\n');*/
+
+        t->rows = (wchar_t***)realloc (t->rows, (t->nrows + 1)
+                                                * sizeof(wchar_t***));
+         
+        t->rows[t->nrows] = row;
+
+        ++t->nrows;
+
+        table_calc_column_widths (t);
+}
+
+
+void table_add_row_from_strlist (Table* t, StrList* list)
+{
+        wchar_t** row = (wchar_t**)malloc(str_list_length(list)
+                                          * sizeof(wchar_t**));
+        int i = 0;
+
+        while (list)
+        {
+                row[i] = (wchar_t*)list->str;
+
+                list = list->next;
+                ++i;
+        }
+
+        table_add_row (t, row);
+}
+
+
+/* render a row */
+static void table_render_row (Table* t, int rownum, int ncols, wchar_t** s)
+{
+        wchar_t** row = t->rows[rownum];
+        int len = 1, i;
+        size_t newsize;
+
+        assert(t);
+        assert(s != NULL);
+
+        for (i = 0; i < ncols; ++i)
+                len += t->widths[i] + wcslen(DELIMITER);
+
+        len += wcslen(COLSUFFIX);
+
+        newsize = (wcslen(*s) + len + 1) * sizeof(wchar_t);
+        *s = xrealloc (*s, newsize);
+
+        for (i = 0; i < ncols; ++i)
+        {
+                int j;
+                int nspaces = max(t->widths[i] - wcswidth(row[i], MAX_WIDTH),
+                                  0);
+                wchar_t* pad = xmalloc ((nspaces + 1) * sizeof(wchar_t));
+
+                for (j = 0; j < nspaces; ++j)
+                       pad[j] = L' '; 
+
+                pad[nspaces] = L_('\0');
+
+                wcscat (*s, row[i]);
+                wcscat (*s, pad);
+                if (i + 1 < ncols) 
+                        wcscat (*s, DELIMITER);
+
+                free (pad);
+                pad = NULL;
+        }
+
+        wcscat (*s, COLSUFFIX);
+}
+
+
+/* 
+ * Render the rows.
+ * \p s must be a null-terminated string.
+ */
+static void table_render_rows (Table* t, wchar_t** s)
+{
+        unsigned int i;
+
+        assert (**s == L_('\0'));
+        for (i = 0; i < t->nrows; ++i)
+                table_render_row (t, i, t->ncols, s);
+}
+
+/* 
+ * Render the table to a string.
+ * You are responsible for freeing the returned string.
+ */
+wchar_t* table_render(Table* t)
+{
+        wchar_t* s = malloc(sizeof(wchar_t));
+
+        *s = L_('\0');
+        table_render_rows (t, &s);
+        return s;
+}
diff --git a/parted-1.8.7/parted/table.h b/parted-1.8.7/parted/table.h
new file mode 100644
index 0000000..b423a9e
--- /dev/null
+++ b/parted-1.8.7/parted/table.h
@@ -0,0 +1,55 @@
+/*
+    parted - a frontend to libparted
+    Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <wchar.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <assert.h>
+
+#include "strlist.h"
+
+#include <config.h>
+
+#ifdef ENABLE_NLS
+#       include <wchar.h>
+#else
+#       ifdef wchar_t
+#               undef wchar_t
+#       endif
+#       define wchar_t char
+#endif
+
+
+/* opaque data type */
+typedef void Table;
+
+Table* table_new(int ncols);
+void table_destroy (Table* t);
+
+/* 
+ * you must not free neither 'row' nor 'list'
+ *      -- this will be done by table_destroy()
+ */
+void table_add_row (Table* t, wchar_t** row);
+void table_add_row_from_strlist (Table* t, StrList* list);
+        
+wchar_t* table_render(Table* t);
+
diff --git a/parted-1.8.7/parted/ui.c b/parted-1.8.7/parted/ui.c
new file mode 100644
index 0000000..fb311e2
--- /dev/null
+++ b/parted-1.8.7/parted/ui.c
@@ -0,0 +1,1532 @@
+/*
+    parted - a frontend to libparted
+    Copyright (C) 1999, 2000, 2001, 2002, 2006, 2007
+    Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#include <parted/parted.h>
+#include <parted/debug.h>
+
+#include <ctype.h>
+#include <signal.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <setjmp.h>
+
+#include <config.h>
+#include "command.h"
+#include "strlist.h"
+#include "ui.h"
+
+#define N_(String) String
+#if ENABLE_NLS
+#  include <libintl.h>
+#  include <locale.h>
+#  define _(String) dgettext (PACKAGE, String)
+#else
+#  define _(String) (String)
+#endif /* ENABLE_NLS */
+
+#ifdef HAVE_LIBREADLINE
+
+#ifdef HAVE_TERMCAP_H
+#include <termcap.h>
+#else
+extern int tgetnum (char* key);
+#endif
+
+#include <readline/readline.h>
+#include <readline/history.h>
+
+#ifndef HAVE_RL_COMPLETION_MATCHES
+#define rl_completion_matches completion_matches
+#endif
+
+#ifndef rl_compentry_func_t
+#define rl_compentry_func_t void
+#endif
+
+#endif /* HAVE_LIBREADLINE */
+
+#ifndef SA_SIGINFO
+#  ifndef HAVE_SIGACTION
+
+struct sigaction {
+};
+
+static inline int
+sigaction (int signum, const struct* sigaction, struct* sigaction)
+{
+}
+
+#  endif /* HAVE_SIGACTON */
+
+struct siginfo_t {
+        int si_code;
+};
+
+#endif /* SA_SIGINFO */
+
+#ifndef SEGV_MAPERR
+#  define SEGV_MAPERR (INTMAX - 1)
+#endif
+
+#ifndef SEGV_ACCERR
+#  define SEGV_ACCERR (INTMAX - 2)
+#endif
+
+#ifndef FPE_INTDIV
+#  define FPE_INTDIV (INTMAX - 1)
+#endif
+
+#ifndef FPE_INTOVF
+#  define FPE_INTOVF (INTMAX - 2)
+#endif
+
+#ifndef FPE_FLTDIV
+#  define FPE_FLTDIV (INTMAX - 3)
+#endif
+
+#ifndef FPE_FLTOVF
+#  define FPE_FLTOVF (INTMAX - 4)
+#endif
+
+#ifndef FPE_FLTUND
+#  define FPE_FLTUND (INTMAX - 5)
+#endif
+
+#ifndef FPE_FLTRES
+#  define FPE_FLTRES (INTMAX - 6)
+#endif
+
+#ifndef FPE_FLTINV
+#  define FPE_FLTINV (INTMAX - 7)
+#endif
+
+#ifndef FPE_FLTSUB
+#  define FPE_FLTSUB (INTMAX - 8)
+#endif
+
+#ifndef ILL_ILLOPC
+#  define ILL_ILLOPC (INTMAX - 1)
+#endif
+
+#ifndef ILL_ILLOPN
+#  define ILL_ILLOPN (INTMAX - 2)
+#endif
+
+#ifndef ILL_ILLADR
+#  define ILL_ILLADR (INTMAX - 3)
+#endif
+
+#ifndef ILL_ILLTRP
+#  define ILL_ILLTRP (INTMAX - 4)
+#endif
+
+#ifndef ILL_PRVOPC
+#  define ILL_PRVOPC (INTMAX - 5)
+#endif
+
+#ifndef ILL_PRVREG
+#  define ILL_PRVREG (INTMAX - 6)
+#endif
+
+#ifndef ILL_COPROC
+#  define ILL_COPROC (INTMAX - 7)
+#endif
+
+#ifndef ILL_BADSTK
+#  define ILL_BADSTK (INTMAX - 8)
+#endif
+
+char* prog_name = "GNU Parted " VERSION "\n";
+
+static char* banner_msg = N_(
+"Welcome to GNU Parted! Type 'help' to view a list of commands.\n");
+
+static char* usage_msg = N_(
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, "
+"run in\ninteractive mode.\n");
+
+static char* bug_msg = N_(
+"\n\nYou found a bug in GNU Parted! Here's what you have to do:\n\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n\n"
+"Please check this version prior to bug reporting.\n\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n\n"
+"\thttp://www.gnu.org/software/parted\n\n"
+"for further information.\n\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n\n"
+"\tparted DEVICE unit co print unit s print\n\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n");
+
+#define MAX_WORDS    1024
+
+static StrList*     command_line;
+static Command**    commands;
+static StrList*     ex_opt_str [64];
+static StrList*     on_list;
+static StrList*     off_list;
+static StrList*     on_off_list;
+static StrList*     fs_type_list;
+static StrList*     disk_type_list;
+
+static struct {
+        const StrList*    possibilities;
+        const StrList*    cur_pos;
+        int               in_readline;
+        sigjmp_buf        jmp_state;
+} readline_state;
+
+static struct sigaction    sig_segv;
+static struct sigaction    sig_int;
+static struct sigaction    sig_fpe;
+static struct sigaction    sig_ill;
+
+volatile int got_ctrl_c = 0;    /* used in exception_handler */
+
+int
+screen_width ()
+{
+        int    width = 0;
+
+        if (opt_script_mode || pretend_input_tty)
+                return 32768;    /* no wrapping ;) */
+
+/* HACK: don't specify termcap separately - it'll annoy the users. */
+#ifdef HAVE_LIBREADLINE
+        width = tgetnum ("co");
+#endif
+
+        if (width <= 0)
+                width = 80;
+
+        return width;
+}
+
+void
+wipe_line ()
+{
+        if (opt_script_mode)
+                return;
+
+        /* yuck */
+        fputs ("\r                                     "
+               "                                     \r", stdout);
+}
+
+#ifdef HAVE_LIBREADLINE
+/* returns matching commands for text */
+static char*
+command_generator (char* text, int state)
+{
+        if (!state)
+                readline_state.cur_pos = readline_state.possibilities;
+
+        while (readline_state.cur_pos) {
+                const StrList*    cur = readline_state.cur_pos;
+                readline_state.cur_pos = cur->next;
+                if (str_list_match_node (cur, text))
+                        return str_list_convert_node (cur);
+        }
+
+        return NULL;
+}
+
+/* completion function for readline() */
+char**
+complete_function (char* text, int start, int end)
+{
+        return rl_completion_matches (text,
+                (rl_compentry_func_t*) command_generator);
+}
+
+static void
+_add_history_unique (const char* line)
+{
+        HIST_ENTRY*    last_entry = current_history ();
+        if (!strlen (line))
+                return;
+        if (!last_entry || strcmp (last_entry->line, line))
+                add_history ((char*) line);
+}
+
+/* Prints command history, to be used before aborting */
+static void
+_dump_history ()
+{
+        int             i = 0;
+        HIST_ENTRY**    all_entries = history_list ();
+
+        fputs (_("\nCommand History:\n"), stdout);
+        while (all_entries[i]) {
+                puts(all_entries[i++]->line);
+        }
+}
+
+#else
+
+/* Print nothing because Readline is absent. */
+static inline void
+_dump_history (void)
+{
+}
+
+#endif /* HAVE_LIBREADLINE */
+
+static void
+mask_signal()
+{
+        sigset_t    curr;
+        sigset_t    prev;
+  
+        sigfillset(&curr);
+        sigprocmask(SIG_SETMASK, &curr, &prev);
+}
+
+/* Resets the environment by jumping to the initial state
+ * saved during ui intitialisation.
+ * Pass 1 as the parameter if you want to quit parted, 
+ * 0 if you just want to reset to the command prompt.
+ */
+static void
+reset_env (int quit)
+{
+        int    in_readline = readline_state.in_readline;
+
+        readline_state.in_readline = 0;
+        
+        if (in_readline) {
+                putchar ('\n');
+                if (quit)    
+                        exit (0);
+
+                siglongjmp (readline_state.jmp_state, 1);
+        }
+}
+
+/* Signal handler for SIGINT using 'sigaction'. */
+static void
+sa_sigint_handler (int signum, siginfo_t* info, void *ucontext)
+{
+        if (info)
+                sigaction (SIGINT, &sig_int, NULL);
+
+        got_ctrl_c = 1;
+        reset_env (0);
+}
+
+/* Signal handler for SIGINT using 'signal'. */
+static void
+s_sigint_handler (int signum)
+{
+        signal (SIGINT, &s_sigint_handler);
+        mask_signal ();
+        sa_sigint_handler (signum, NULL, NULL);
+}
+
+/* Signal handler for SIGSEGV using 'sigaction'. */
+static void
+sa_sigsegv_handler (int signum, siginfo_t* info, void* ucontext)
+{
+        printf (bug_msg, VERSION);
+        _dump_history ();
+
+        if (!info)
+                abort ();
+
+        sigaction (SIGSEGV, &sig_segv, NULL);
+
+        switch (info->si_code) {
+
+                case SEGV_MAPERR:
+                        fputs(_("\nError: SEGV_MAPERR (Address not mapped "
+                                "to object)\n"), stdout);
+                        PED_ASSERT(0, break); /* Force a backtrace */
+                        break;
+
+                case SEGV_ACCERR:
+                        fputs(_("\nError: SEGV_ACCERR (Invalid permissions "
+                                "for mapped object)\n"), stdout);
+                        break;
+
+                default:
+                        fputs(_("\nError: A general SIGSEGV signal was "
+                                "encountered.\n"), stdout);
+                        PED_ASSERT(0, break); /* Force a backtrace */
+                        break;
+        }
+
+        abort ();
+}
+
+/* Signal handler for SIGSEGV using 'signal'. */
+static void
+s_sigsegv_handler (int signum)
+{
+        signal (SIGSEGV, &s_sigsegv_handler);
+        mask_signal ();
+        sa_sigsegv_handler (signum, NULL, NULL);
+}
+
+/* Signal handler for SIGFPE using 'sigaction'. */
+static void
+sa_sigfpe_handler (int signum, siginfo_t* info, void* ucontext)
+{
+        printf (bug_msg, VERSION);
+        _dump_history ();
+
+        if (!info)
+                abort ();
+
+        sigaction (SIGFPE, &sig_fpe, NULL);
+
+        switch (info->si_code) {
+
+                case FPE_INTDIV:
+                        fputs(_("\nError: FPE_INTDIV (Integer: "
+                                "divide by zero)"), stdout);
+                        break;
+        
+                case FPE_INTOVF:
+                        fputs(_("\nError: FPE_INTOVF (Integer: "
+                                "overflow)"), stdout);
+                        break;
+        
+                case FPE_FLTDIV:
+                        fputs(_("\nError: FPE_FLTDIV (Float: "
+                                "divide by zero)"), stdout);
+                        break;
+
+                case FPE_FLTOVF:
+                        fputs(_("\nError: FPE_FLTOVF (Float: "
+                                "overflow)"), stdout);
+                        break;
+
+                case FPE_FLTUND:
+                        fputs(_("\nError: FPE_FLTUND (Float: "
+                                "underflow)"), stdout);
+                        break;
+
+                case FPE_FLTRES:
+                        fputs(_("\nError: FPE_FLTRES (Float: "
+                                "inexact result)"), stdout);
+                        break;
+
+                case FPE_FLTINV:
+                        fputs(_("\nError: FPE_FLTINV (Float: "
+                                "invalid operation)"), stdout);
+                        break;
+
+                case FPE_FLTSUB:
+                        fputs(_("\nError: FPE_FLTSUB (Float: "
+                                "subscript out of range)"), stdout);
+                        break;
+
+                default:
+                        fputs(_("\nError: A general SIGFPE signal "
+                                "was encountered."), stdout);
+                        break;
+
+        }
+
+        abort ();
+}
+
+/* Signal handler for SIGFPE using 'signal'. */
+static void
+s_sigfpe_handler (int signum)
+{
+        signal (SIGFPE, &s_sigfpe_handler);
+        mask_signal ();
+        sa_sigfpe_handler (signum, NULL, NULL);
+}
+
+/* Signal handler for SIGILL using 'sigaction'. */
+static void
+sa_sigill_handler (int signum, siginfo_t* info, void* ucontext)
+{
+        printf (bug_msg, VERSION);
+        _dump_history ();
+
+        if (!info)
+                abort();
+
+        sigaction (SIGILL, &sig_ill, NULL);
+
+        switch (info->si_code) {
+
+                case ILL_ILLOPC:
+                        fputs(_("\nError: ILL_ILLOPC "
+                                "(Illegal Opcode)"), stdout);
+                        break;
+
+                case ILL_ILLOPN:
+                        fputs(_("\nError: ILL_ILLOPN "
+                                "(Illegal Operand)"), stdout);
+                        break;
+
+                case ILL_ILLADR:
+                        fputs(_("\nError: ILL_ILLADR "
+                                "(Illegal addressing mode)"), stdout);
+                        break;
+
+                case ILL_ILLTRP:
+                        fputs(_("\nError: ILL_ILLTRP "
+                                "(Illegal Trap)"), stdout);
+                        break;
+
+                case ILL_PRVOPC:
+                        fputs(_("\nError: ILL_PRVOPC "
+                                "(Privileged Opcode)"), stdout);
+                        break;
+
+                case ILL_PRVREG:
+                        fputs(_("\nError: ILL_PRVREG "
+                                "(Privileged Register)"), stdout);
+                        break;
+
+                case ILL_COPROC:
+                        fputs(_("\nError: ILL_COPROC "
+                                "(Coprocessor Error)"), stdout);
+                        break;
+
+                case ILL_BADSTK:
+                        fputs(_("\nError: ILL_BADSTK "
+                                "(Internal Stack Error)"), stdout);
+                        break;
+
+                default:
+                        fputs(_("\nError: A general SIGILL "
+                                "signal was encountered."), stdout);
+                        break;
+        }
+   
+        abort ();
+}
+
+/* Signal handler for SIGILL using 'signal'. */
+static void
+s_sigill_handler (int signum)
+{
+        signal (SIGILL, &s_sigill_handler);
+        mask_signal ();
+        sa_sigill_handler (signum, NULL, NULL);
+}
+
+static char*
+_readline (const char* prompt, const StrList* possibilities)
+{
+        char*    line;
+
+        readline_state.possibilities = possibilities;
+        readline_state.cur_pos = NULL;
+        readline_state.in_readline = 1;
+
+        if (sigsetjmp (readline_state.jmp_state,1))
+                return NULL;
+
+        wipe_line ();
+#ifdef HAVE_LIBREADLINE
+        if (!opt_script_mode) {
+                /* XXX: why isn't prompt const? */
+                line = readline ((char*) prompt);
+                if (line)
+                        _add_history_unique (line);
+        } else
+#endif
+        {
+                fputs (prompt, stdout);
+                fflush (stdout);
+                line = (char*) malloc (256);
+                if (fgets (line, 256, stdin) && strcmp (line, "") != 0)
+                        line [strlen (line) - 1] = 0;    /* kill trailing CR */
+                else {
+                        free (line);
+                        line = NULL;
+                }
+        }
+
+        readline_state.in_readline = 0;
+        return line;
+}
+
+static PedExceptionOption
+option_get_next (PedExceptionOption options, PedExceptionOption current)
+{
+        PedExceptionOption    i;
+
+        if (current == 0)
+                i = PED_EXCEPTION_OPTION_FIRST;
+        else
+                i = current * 2;
+
+        for (; i <= options; i *= 2) {
+                if (options & i)
+                        return i;
+        }
+        return 0;
+}
+
+static void
+_print_exception_text (PedException* ex)
+{
+        StrList*    text;
+
+        wipe_line ();
+
+        if (ex->type == PED_EXCEPTION_BUG) {
+                printf (bug_msg, VERSION);
+                text = str_list_create ("\n", ex->message, "\n\n", NULL);
+        } else {
+                text = str_list_create (
+                           _(ped_exception_get_type_string (ex->type)),
+                           ": ", ex->message, "\n", NULL);
+        }
+
+        str_list_print_wrap (text, screen_width (), 0, 0);
+        str_list_destroy (text);
+}
+
+static PedExceptionOption
+exception_handler (PedException* ex)
+{
+        PedExceptionOption    opt;
+
+        _print_exception_text (ex);
+
+        /* only one choice?  Take it ;-) */
+        opt = option_get_next (ex->options, 0);
+        if (!option_get_next (ex->options, opt))
+                return opt;
+
+        /* script-mode: don't handle the exception */
+        if (opt_script_mode || (!isatty (0) && !pretend_input_tty))
+                return PED_EXCEPTION_UNHANDLED;
+
+        got_ctrl_c = 0;
+
+        do {
+                opt = command_line_get_ex_opt ("", ex->options);
+        } while (opt == PED_EXCEPTION_UNHANDLED
+                 && (isatty (0) || pretend_input_tty) && !got_ctrl_c);
+
+        if (got_ctrl_c) {
+                got_ctrl_c = 0;
+                opt = PED_EXCEPTION_UNHANDLED;
+        }
+
+        return opt;
+}
+
+void
+command_line_push_word (const char* word)
+{
+        command_line = str_list_append (command_line, word);
+}
+
+char*
+command_line_pop_word ()
+{
+        char*       result;
+        StrList*    next;
+
+        PED_ASSERT (command_line != NULL, return NULL);
+
+        result = str_list_convert_node (command_line);
+        next = command_line->next;
+
+        str_list_destroy_node (command_line);
+        command_line = next;
+        return result;
+}
+
+void
+command_line_flush ()
+{
+        str_list_destroy (command_line);
+        command_line = NULL;
+}
+
+char*
+command_line_peek_word ()
+{
+        if (command_line)
+                return str_list_convert_node (command_line);
+        else
+                return NULL;
+}
+
+int
+command_line_get_word_count ()
+{
+        return str_list_length (command_line);
+}
+
+static int
+_str_is_spaces (const char* str)
+{
+        while (isspace (*str))
+                str++;
+
+        return *str == 0;
+}
+
+/* "multi_word mode" is the "normal" mode... many words can be typed,
+ * delimited by spaces, etc.
+ *         In single-word mode, only one word is parsed per line.
+ * Leading and trailing spaces are removed.  For example: " a b c "
+ * is a single word "a b c".  The motivation for this mode is partition
+ * names, etc.  In single-word mode, the empty string is a word.
+ * (but not in multi-word mode).
+ */
+void
+command_line_push_line (const char* line, int multi_word)
+{
+        int     quoted = 0;
+        char    quote_char = 0;
+        char    this_word [256];
+        int     i;
+
+        do {
+                while (*line == ' ')
+                        line++;
+
+                i = 0;
+                for (; *line; line++) {
+                        if (*line == ' ' && !quoted) {
+                                if (multi_word)
+                                        break;
+
+                        /* single word: check for trailing spaces + eol */
+                                if (_str_is_spaces (line))
+                                        break;
+                        }
+
+                        if (!quoted && strchr ("'\"", *line)) {
+                                quoted = 1;
+                                quote_char = *line;
+                                continue;
+                        }
+
+                        if (quoted && *line == quote_char) {
+                                quoted = 0;
+                                continue;
+                        }
+
+                        /* hack: escape characters */
+                        if (quoted && line[0] == '\\' && line[1])
+                                line++;
+
+                        this_word [i++] = *line;
+                }
+                if (i || !multi_word) {
+                        this_word [i] = 0;
+                        command_line_push_word (this_word);
+                }
+        } while (*line && multi_word);
+}
+
+static char*
+realloc_and_cat (char* str, const char* append)
+{
+        int      length = strlen (str) + strlen (append) + 1;
+        char*    new_str = realloc (str, length);
+
+        strcat (new_str, append);
+        return new_str;
+}
+
+static char*
+_construct_prompt (const char* head, const char* def,
+                   const StrList* possibilities)
+{
+        char*    prompt = strdup (head);
+
+        if (def && possibilities)
+                PED_ASSERT (str_list_match_any (possibilities, def),
+                            return NULL);
+
+        if (possibilities && str_list_length (possibilities) < 8) {
+                const StrList*    walk;
+
+                if (strlen (prompt))
+                        prompt = realloc_and_cat (prompt, "  ");
+
+                for (walk = possibilities; walk; walk = walk->next) {
+                        if (walk != possibilities)
+                                prompt = realloc_and_cat (prompt, "/");
+
+                        if (def && str_list_match_node (walk, def) == 2) {
+                                prompt = realloc_and_cat (prompt, "[");
+                                prompt = realloc_and_cat (prompt, def);
+                                prompt = realloc_and_cat (prompt, "]");
+                        } else {
+                                char*    text = str_list_convert_node (walk);
+                                prompt = realloc_and_cat (prompt, text);
+                                free (text);
+                        }
+                }
+                prompt = realloc_and_cat (prompt, "? ");
+        } else if (def) {
+                if (strlen (prompt))
+                        prompt = realloc_and_cat (prompt, "  ");
+                prompt = realloc_and_cat (prompt, "[");
+                prompt = realloc_and_cat (prompt, def);
+                prompt = realloc_and_cat (prompt, "]? ");
+        } else {
+                if (strlen (prompt))
+                        prompt = realloc_and_cat (prompt, " ");
+        }
+
+        return prompt;
+}
+
+void
+command_line_prompt_words (const char* prompt, const char* def,
+                           const StrList* possibilities, int multi_word)
+{
+        char*    line;
+        char*    real_prompt;
+        char*    _def = (char*) def;
+        int      _def_needs_free = 0;
+
+        if (!def && str_list_length (possibilities) == 1) {
+                _def = str_list_convert_node (possibilities);
+                _def_needs_free = 1;
+        }
+
+        if (opt_script_mode) {
+                if (_def)
+                        command_line_push_line (_def, 0);
+                return;
+        }
+
+        do {
+                real_prompt = _construct_prompt (prompt, _def, possibilities);
+                line = _readline (real_prompt, possibilities);
+                free (real_prompt);
+                if (!line)
+                        break;
+
+                if (!strlen (line)) {
+                        if (_def)
+                                command_line_push_line (_def, 0);
+                } else {
+                        command_line_push_line (line, multi_word);
+                }
+                free (line);
+        } while (!command_line_get_word_count () && !_def);
+
+        if (_def_needs_free)
+                free (_def);
+}
+
+/**
+ * Get a word from command line.
+ *
+ * \param possibilities a StrList of valid strings, NULL if all are valid.
+ * \param multi_word whether multiple words are allowed.
+ *
+ * \return The word(s), or NULL if empty.
+ */
+char*
+command_line_get_word (const char* prompt, const char* def,
+                       const StrList* possibilities, int multi_word)
+{
+        do {
+                if (command_line_get_word_count ()) {
+                        char*       result = command_line_pop_word ();
+                        StrList*    result_node;
+
+                        if (!possibilities)
+                                return result;
+
+                        result_node = str_list_match (possibilities, result);
+                        free (result);
+                        if (result_node)
+                                return str_list_convert_node (result_node);
+
+                        command_line_flush ();
+                }
+
+                command_line_prompt_words (prompt, def, possibilities,
+                                           multi_word);
+        } while (command_line_get_word_count ());
+
+        return NULL;
+}
+
+int
+command_line_get_integer (const char* prompt, int* value)
+{
+        char     def_str [10];
+        char*    input;
+        int      valid;
+
+        snprintf (def_str, 10, "%d", *value);
+        input = command_line_get_word (prompt, *value ? def_str : NULL,
+                                       NULL, 1);
+        if (!input)
+                return 0;
+        valid = sscanf (input, "%d", value);
+        free (input);
+        return valid;
+}
+
+int
+command_line_get_sector (const char* prompt, PedDevice* dev, PedSector* value,
+                         PedGeometry** range)
+{
+        char*    def_str;
+        char*    input;
+        int      valid;
+
+        def_str = ped_unit_format (dev, *value);
+        input = command_line_get_word (prompt, *value ? def_str : NULL,
+                                       NULL, 1);
+
+        /* def_str might have rounded *value a little bit.  If the user picked
+         * the default, make sure the selected sector is identical to the
+         * default.
+         */
+        if (input && *value && !strcmp (input, def_str)) {
+                if (range) {
+                        *range = ped_geometry_new (dev, *value, 1);
+                        ped_free (def_str);
+                        return *range != NULL;
+                }
+
+                ped_free (def_str);
+                return 1;
+        }
+
+        ped_free (def_str);
+        if (!input) {
+                *value = 0;
+                if (range)
+                        *range = NULL;
+                return 0;
+        }
+
+        valid = ped_unit_parse (input, dev, value, range);
+
+        free (input);
+        return valid;
+}
+
+int
+command_line_get_state (const char* prompt, int* value)
+{
+        char*    def_word;
+        char*    input;
+
+        if (*value)
+                def_word = str_list_convert_node (on_list);
+        else
+                def_word = str_list_convert_node (off_list);
+        input = command_line_get_word (prompt, def_word, on_off_list, 1);
+        free (def_word);
+        if (!input)
+                return 0;
+        if (str_list_match_any (on_list, input))
+                *value = 1;
+        else
+                *value = 0;
+        free (input);
+        return 1;
+}
+
+int
+command_line_get_device (const char* prompt, PedDevice** value)
+{
+        char*         def_dev_name = *value ? (*value)->path : NULL;
+        char*         dev_name;
+        PedDevice*    dev;
+
+        dev_name = command_line_get_word (prompt, def_dev_name, NULL, 1);
+        if (!dev_name)
+                return 0;
+
+        dev = ped_device_get (dev_name);
+        free (dev_name);
+        if (!dev)
+                return 0;
+
+        *value = dev;
+        return 1;
+}
+
+int
+command_line_get_disk (const char* prompt, PedDisk** value)
+{
+        PedDevice*    dev = *value ? (*value)->dev : NULL;
+
+        if (!command_line_get_device (prompt, &dev))
+                return 0;
+
+        if (dev != (*value)->dev) {
+                PedDisk*    new_disk = ped_disk_new (dev);
+                if (!new_disk)
+                        return 0;
+                *value = new_disk;
+        }
+        return 1;
+}
+
+int
+command_line_get_partition (const char* prompt, PedDisk* disk,
+                            PedPartition** value)
+{
+        PedPartition*    part;
+
+        /* Flawed logic, doesn't seem to work?! 
+        check = ped_disk_next_partition (disk, part);
+        part  = ped_disk_next_partition (disk, check);
+
+        if (part == NULL) {
+
+        *value = check;          
+        printf (_("The (only) primary partition has "
+                  "been automatically selected\n"));
+        return 1;          
+
+        } else {
+        */
+        int num = (*value) ? (*value)->num : 0;
+
+        if (!command_line_get_integer (prompt, &num)) {
+                ped_exception_throw (PED_EXCEPTION_ERROR,
+                                     PED_EXCEPTION_CANCEL,
+                                     _("Expecting a partition number."));
+                return 0;
+        }
+
+        part = ped_disk_get_partition (disk, num);
+
+        if (!part) {
+                ped_exception_throw (PED_EXCEPTION_ERROR,
+                                     PED_EXCEPTION_CANCEL,
+                                     _("Partition doesn't exist."));
+            return 0;
+        }
+
+        *value = part;
+        return 1;
+        //}
+}
+
+int
+command_line_get_fs_type (const char* prompt, const PedFileSystemType*(* value))
+{
+        char*                 fs_type_name;
+        PedFileSystemType*    fs_type;
+
+        fs_type_name = command_line_get_word (prompt,
+                                              *value ? (*value)->name : NULL,
+                                                     fs_type_list, 1);
+        if (!fs_type_name) {
+                ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+                                     _("Expecting a file system type."));
+                return 0;
+        }
+
+        fs_type = ped_file_system_type_get (fs_type_name);
+        if (!fs_type) {
+                ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+                                     _("Unknown file system type \"%s\"."),
+                                     fs_type_name);
+                return 0;
+        }
+
+        free (fs_type_name);
+        *value = fs_type;
+        return 1;
+}
+
+int
+command_line_get_disk_type (const char* prompt, const PedDiskType*(* value))
+{
+        char*    disk_type_name;
+
+        disk_type_name = command_line_get_word (prompt,
+                                                *value ? (*value)->name : NULL,
+                                                disk_type_list, 1);
+        if (!disk_type_name) {
+                ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+                                     _("Expecting a disk label type."));
+                return 0;
+        }
+
+        *value = ped_disk_type_get (disk_type_name);
+        free (disk_type_name);
+        PED_ASSERT (*value != NULL, return 0);
+        return 1;
+}
+
+int
+command_line_get_part_flag (const char* prompt, const PedPartition* part,
+                            PedPartitionFlag* flag)
+{
+        StrList*            opts = NULL;
+        PedPartitionFlag    walk = 0;
+        char*               flag_name;
+
+        while ( (walk = ped_partition_flag_next (walk)) ) {
+                if (ped_partition_is_flag_available (part, walk)) {
+                        const char*        walk_name;
+
+                        walk_name = ped_partition_flag_get_name (walk);
+                        opts = str_list_append (opts, walk_name);
+                        opts = str_list_append_unique (opts, _(walk_name));
+                }
+        }
+
+        flag_name = command_line_get_word (prompt, NULL, opts, 1);
+        str_list_destroy (opts);
+
+        if (flag_name) {
+                *flag = ped_partition_flag_get_by_name (flag_name);
+                ped_free (flag_name);
+                return 1;
+        } else
+                return 0;
+}
+
+static int
+_can_create_primary (const PedDisk* disk)
+{
+        int    i;
+
+        for (i = 1; i <= ped_disk_get_max_primary_partition_count (disk); i++) {
+                if (!ped_disk_get_partition (disk, i))
+                        return 1;
+        }
+
+        return 0;
+}
+
+static int
+_can_create_extended (const PedDisk* disk)
+{
+        if (!_can_create_primary (disk))
+                return 0;
+
+        if (!ped_disk_type_check_feature (disk->type, PED_DISK_TYPE_EXTENDED))
+                return 0;
+
+        if (ped_disk_extended_partition (disk))
+                return 0;
+
+        return 1;
+}
+
+static int
+_can_create_logical (const PedDisk* disk)
+{
+        if (!ped_disk_type_check_feature (disk->type, PED_DISK_TYPE_EXTENDED))
+                return 0;
+
+        return ped_disk_extended_partition (disk) != 0;
+}
+
+int
+command_line_get_part_type (const char* prompt, const PedDisk* disk,
+                                   PedPartitionType* type)
+{
+        StrList*    opts = NULL;
+        char*       type_name;
+
+        if (_can_create_primary (disk)) {
+                opts = str_list_append_unique (opts, "primary");
+                opts = str_list_append_unique (opts, _("primary"));
+        }
+        if (_can_create_extended (disk)) {
+                opts = str_list_append_unique (opts, "extended");
+                opts = str_list_append_unique (opts, _("extended"));
+        }
+        if (_can_create_logical (disk)) {
+                opts = str_list_append_unique (opts, "logical");
+                opts = str_list_append_unique (opts, _("logical"));
+        }
+        if (!opts) {
+                ped_exception_throw (
+                        PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+                        _("Can't create any more partitions."));
+                return 0;
+        }
+
+        type_name = command_line_get_word (prompt, NULL, opts, 1);
+        str_list_destroy (opts);
+
+        if (!type_name) {
+                ped_exception_throw (
+                        PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+                        _("Expecting a partition type."));
+                return 0;
+        }
+
+        if (!strcmp (type_name, "primary")
+                        || !strcmp (type_name, _("primary"))) {
+                *type = 0;
+        }
+        if (!strcmp (type_name, "extended")
+                        || !strcmp (type_name, _("extended"))) {
+                *type = PED_PARTITION_EXTENDED;
+        }
+        if (!strcmp (type_name, "logical")
+                        || !strcmp (type_name, _("logical"))) {
+                *type = PED_PARTITION_LOGICAL;
+        }
+
+        free (type_name);
+        return 1;
+}
+
+PedExceptionOption
+command_line_get_ex_opt (const char* prompt, PedExceptionOption options)
+{
+        StrList*              options_strlist = NULL;
+        PedExceptionOption    opt;
+        char*                 opt_name;
+
+        for (opt = option_get_next (options, 0); opt; 
+             opt = option_get_next (options, opt)) {
+                options_strlist = str_list_append_unique (options_strlist,
+                                     _(ped_exception_get_option_string (opt)));
+                options_strlist = str_list_append_unique (options_strlist,
+                                     ped_exception_get_option_string (opt));
+        }
+
+        opt_name = command_line_get_word (prompt, NULL, options_strlist, 1);
+        if (!opt_name)
+                return PED_EXCEPTION_UNHANDLED;
+        str_list_destroy (options_strlist);
+
+        opt = PED_EXCEPTION_OPTION_FIRST;
+        while (1) {
+                if (strcmp (opt_name,
+                            ped_exception_get_option_string (opt)) == 0)
+                        break;
+                if (strcmp (opt_name,
+                            _(ped_exception_get_option_string (opt))) == 0)
+                        break;
+                opt = option_get_next (options, opt);
+        }
+        free (opt_name);
+        return opt;
+}
+
+int
+command_line_get_unit (const char* prompt, PedUnit* unit)
+{
+        StrList*       opts = NULL;
+        PedUnit        walk;
+        char*          unit_name;
+        const char*    default_unit_name;
+
+        for (walk = PED_UNIT_FIRST; walk <= PED_UNIT_LAST; walk++)
+                opts = str_list_append (opts, ped_unit_get_name (walk));
+
+        default_unit_name = ped_unit_get_name (ped_unit_get_default ());
+        unit_name = command_line_get_word (prompt, default_unit_name, opts, 1);
+        str_list_destroy (opts);
+
+        if (unit_name) {
+                *unit = ped_unit_get_by_name (unit_name);
+                free (unit_name);
+                return 1;
+        } else
+                return 0;
+}
+
+int
+command_line_is_integer ()
+{
+        char*    word;
+        int      is_integer;
+        int      scratch;
+
+        word = command_line_peek_word ();
+        if (!word)
+                return 0;
+
+        is_integer = sscanf (word, "%d", &scratch);
+        free (word);
+        return is_integer;
+}
+
+static int
+init_ex_opt_str ()
+{
+        int                   i;
+        PedExceptionOption    opt;
+
+        for (i = 0; (1 << i) <= PED_EXCEPTION_OPTION_LAST; i++) {
+                opt = (1 << i);
+                ex_opt_str [i]
+                        = str_list_create (
+                                ped_exception_get_option_string (opt),
+                                _(ped_exception_get_option_string (opt)),
+                                NULL);
+                if (!ex_opt_str [i])
+                        return 0;
+        }
+
+        ex_opt_str [i] = NULL;
+        return 1;
+}
+
+static void
+done_ex_opt_str ()
+{
+        int    i;
+
+        for (i=0; ex_opt_str [i]; i++)
+                str_list_destroy (ex_opt_str [i]);
+}
+
+static int
+init_state_str ()
+{
+        on_list = str_list_create_unique (_("on"), "on", NULL);
+        off_list = str_list_create_unique (_("off"), "off", NULL);
+        on_off_list = str_list_join (str_list_duplicate (on_list),
+                                     str_list_duplicate (off_list));
+        return 1;
+}
+
+static void
+done_state_str ()
+{
+        str_list_destroy (on_list);
+        str_list_destroy (off_list);
+        str_list_destroy (on_off_list);
+}
+
+static int
+init_fs_type_str ()
+{
+        PedFileSystemType*    walk;
+
+        fs_type_list = NULL;
+
+        for (walk = ped_file_system_type_get_next (NULL); walk;
+             walk = ped_file_system_type_get_next (walk))
+        {
+                fs_type_list = str_list_insert (fs_type_list, walk->name);
+                if (!fs_type_list)
+                        return 0;
+        }
+
+        return 1;
+}
+
+static int
+init_disk_type_str ()
+{
+        PedDiskType*    walk;
+
+        disk_type_list = NULL;
+
+        for (walk = ped_disk_type_get_next (NULL); walk;
+             walk = ped_disk_type_get_next (walk))
+        {
+                disk_type_list = str_list_insert (disk_type_list, walk->name);
+                if (!disk_type_list)
+                        return 0;
+        }
+
+        return 1;
+}
+
+int
+init_ui ()
+{
+        if (!init_ex_opt_str ()
+            || !init_state_str ()
+            || !init_fs_type_str ()
+            || !init_disk_type_str ())
+                return 0;
+        ped_exception_set_handler (exception_handler);
+
+#ifdef HAVE_LIBREADLINE
+        rl_initialize ();
+        rl_attempted_completion_function = (CPPFunction*) complete_function;
+        readline_state.in_readline = 0;
+#endif
+
+#ifdef SA_SIGINFO
+        sigset_t curr;
+        sigfillset (&curr);
+
+        sig_segv.sa_sigaction = &sa_sigsegv_handler;
+        sig_int.sa_sigaction = &sa_sigint_handler;
+        sig_fpe.sa_sigaction = &sa_sigfpe_handler;
+        sig_ill.sa_sigaction = &sa_sigill_handler;
+
+        sig_segv.sa_mask = 
+                sig_int.sa_mask = 
+                        sig_fpe.sa_mask = 
+                                sig_ill.sa_mask = curr;
+    
+        sig_segv.sa_flags = 
+                sig_int.sa_flags = 
+                        sig_fpe.sa_flags = 
+                                sig_ill.sa_flags = SA_SIGINFO;
+
+        sigaction (SIGSEGV, &sig_segv, NULL);
+        sigaction (SIGINT, &sig_int, NULL);
+        sigaction (SIGFPE, &sig_fpe, NULL);
+        sigaction (SIGILL, &sig_ill, NULL);
+#else
+        signal (SIGSEGV, s_sigsegv_handler);
+        signal (SIGINT, s_sigint_handler);
+        signal (SIGFPE, s_sigfpe_handler);
+        signal (SIGILL, s_sigill_handler);
+#endif /* SA_SIGINFO */
+
+        return 1;
+}
+
+void
+done_ui ()
+{
+        ped_exception_set_handler (NULL);
+        done_ex_opt_str ();
+        done_state_str ();
+        str_list_destroy (fs_type_list);
+        str_list_destroy (disk_type_list);
+}
+
+void
+help_msg ()
+{
+        fputs (_(usage_msg), stdout);
+
+        putchar ('\n');
+        fputs (_("OPTIONs:"), stdout);
+        putchar ('\n');
+        print_options_help ();
+
+        putchar ('\n');
+        fputs (_("COMMANDs:"), stdout);
+        putchar ('\n');
+        print_commands_help ();
+        exit (0);
+}
+
+void
+print_using_dev (PedDevice* dev)
+{
+        printf (_("Using %s\n"), dev->path);
+}
+
+int
+interactive_mode (PedDevice** dev, Command* cmd_list[])
+{
+        StrList*    list;
+        StrList*    command_names = command_get_names (cmd_list);
+
+        commands = cmd_list;    /* FIXME yucky, nasty, evil hack */
+
+        fputs (prog_name, stdout);
+
+        print_using_dev (*dev);
+
+        list = str_list_create (_(banner_msg), NULL);
+        str_list_print_wrap (list, screen_width (), 0, 0);
+        str_list_destroy (list);
+
+        while (1) {
+                char*       word;
+                Command*    cmd;
+
+                while (!command_line_get_word_count ()) {
+                        if (feof (stdin)) {
+                                putchar ('\n');
+                                return 1;
+                        }
+                        command_line_prompt_words ("(parted)", NULL,
+                                                   command_names, 1);
+                }
+
+                word = command_line_pop_word ();
+                if (word) {
+                        cmd = command_get (commands, word);
+                        free (word);
+                        if (cmd) {
+                                if (!command_run (cmd, dev))
+                                        command_line_flush ();
+                        } else
+                                print_commands_help ();
+                }
+        }
+
+        return 1;
+}
+
+
+int
+non_interactive_mode (PedDevice** dev, Command* cmd_list[],
+                      int argc, char* argv[])
+{
+        int         i;
+        Command*    cmd;
+
+        commands = cmd_list;    /* FIXME yucky, nasty, evil hack */
+
+        for (i = 0; i < argc; i++)
+                command_line_push_line (argv [i], 1);
+
+        while (command_line_get_word_count ()) {
+                char*    word;
+
+                word = command_line_pop_word ();
+                if (!word)
+                        break;
+
+                cmd = command_get (commands, word);
+                free (word);
+                if (!cmd) {
+                        help_msg ();
+                        goto error;
+                }
+                if (!(cmd->non_interactive)) {
+                        fputs(_("This command does not make sense in "
+                                "non-interactive mode.\n"), stdout);
+                        exit(1);
+                        goto error;
+                }
+                
+                if (!command_run (cmd, dev))
+                        goto error;
+        }
+        return 1;
+
+error:
+        return 0;
+}
diff --git a/parted-1.8.7/parted/ui.h b/parted-1.8.7/parted/ui.h
new file mode 100644
index 0000000..147b170
--- /dev/null
+++ b/parted-1.8.7/parted/ui.h
@@ -0,0 +1,83 @@
+/*
+    parted - a frontend to libparted
+    Copyright (C) 1999, 2000, 2001, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+#ifndef UI_H_INCLUDED
+#define UI_H_INCLUDED
+
+#include "strlist.h"
+
+extern char*	prog_name;
+
+extern int init_ui ();
+extern int non_interactive_mode (PedDevice** dev, Command* cmd_list[],
+				 int argc, char* argv[]);
+extern int interactive_mode (PedDevice** dev, Command* cmd_list[]);
+extern void done_ui ();
+
+extern int screen_width ();
+extern void wipe_line ();
+
+extern void command_line_push_word (const char* word);
+extern char* command_line_pop_word ();
+extern char* command_line_peek_word ();
+extern void command_line_flush ();
+extern int command_line_get_word_count ();
+extern void command_line_prompt_words (const char* prompt, const char* def,
+				       const StrList* possibilities,
+				       int multi_word);
+extern char* command_line_get_word (const char* prompt, const char* def,
+				    const StrList* possibilities,
+				    int multi_word);
+extern int command_line_get_integer (const char* prompt, int* value);
+extern int command_line_get_sector (const char* prompt, PedDevice* dev,
+				    PedSector* value, PedGeometry** range);
+extern int command_line_get_state (const char* prompt, int* value);
+extern int command_line_get_device (const char* prompt, PedDevice** value);
+extern int command_line_get_disk (const char* prompt, PedDisk** value);
+extern int command_line_get_partition (const char* prompt, PedDisk* disk,
+				       PedPartition** value);
+extern int command_line_get_fs_type (const char* prompt,
+				     const PedFileSystemType*(* value));
+extern int command_line_get_disk_type (const char* prompt,
+				       const PedDiskType*(* value));
+extern int command_line_get_part_flag (const char* prompt,
+				       const PedPartition* part,
+				       PedPartitionFlag* flag);
+extern int command_line_get_part_type (const char* prompt, const PedDisk* disk,
+				       PedPartitionType* type);
+extern PedExceptionOption command_line_get_ex_opt (const char* prompt,
+						   PedExceptionOption options);
+extern int command_line_get_unit (const char* prompt, PedUnit* unit);
+
+extern int command_line_is_integer ();
+extern int command_line_is_sector ();
+
+extern void help_msg ();
+
+extern void print_using_dev (PedDevice* dev);
+
+/* in parted.c */
+extern int	opt_script_mode;
+extern int	pretend_input_tty;
+
+extern void print_options_help ();
+extern void print_commands_help ();
+
+
+#endif /* UI_H_INCLUDED */
diff --git a/parted-1.8.7/partprobe/Makefile.am b/parted-1.8.7/partprobe/Makefile.am
new file mode 100644
index 0000000..cbb955f
--- /dev/null
+++ b/parted-1.8.7/partprobe/Makefile.am
@@ -0,0 +1,17 @@
+partedincludedir      = -I$(top_srcdir)/lib -I$(top_srcdir)/include
+
+sbin_PROGRAMS = partprobe
+
+partprobe_SOURCES = partprobe.c
+
+partprobe_LDADD = \
+  $(top_builddir)/lib/libparted.la \
+  $(top_builddir)/libparted/libparted.la \
+  $(INTLLIBS) $(LIBS) \
+  $(PARTED_LIBS)
+
+partprobe_LDFLAGS = $(PARTEDLDFLAGS)
+
+INCLUDES	= $(partedincludedir) $(INTLINCS)
+
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/parted-1.8.7/partprobe/Makefile.in b/parted-1.8.7/partprobe/Makefile.in
new file mode 100644
index 0000000..d75fc03
--- /dev/null
+++ b/parted-1.8.7/partprobe/Makefile.in
@@ -0,0 +1,663 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+sbin_PROGRAMS = partprobe$(EXEEXT)
+subdir = partprobe
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES =
+am__installdirs = "$(DESTDIR)$(sbindir)"
+sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+PROGRAMS = $(sbin_PROGRAMS)
+am_partprobe_OBJECTS = partprobe.$(OBJEXT)
+partprobe_OBJECTS = $(am_partprobe_OBJECTS)
+am__DEPENDENCIES_1 =
+partprobe_DEPENDENCIES = $(top_builddir)/lib/libparted.la \
+	$(top_builddir)/libparted/libparted.la $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+partprobe_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(partprobe_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/lib@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(partprobe_SOURCES)
+DIST_SOURCES = $(partprobe_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+partedincludedir = -I$(top_srcdir)/lib -I$(top_srcdir)/include
+partprobe_SOURCES = partprobe.c
+partprobe_LDADD = \
+  $(top_builddir)/lib/libparted.la \
+  $(top_builddir)/libparted/libparted.la \
+  $(INTLLIBS) $(LIBS) \
+  $(PARTED_LIBS)
+
+partprobe_LDFLAGS = $(PARTEDLDFLAGS)
+INCLUDES = $(partedincludedir) $(INTLINCS)
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  partprobe/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  partprobe/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-sbinPROGRAMS: $(sbin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)"
+	@list='$(sbin_PROGRAMS)'; for p in $$list; do \
+	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  if test -f $$p \
+	     || test -f $$p1 \
+	  ; then \
+	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(sbinPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(sbindir)/$$f'"; \
+	   $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(sbinPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(sbindir)/$$f" || exit 1; \
+	  else :; fi; \
+	done
+
+uninstall-sbinPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(sbin_PROGRAMS)'; for p in $$list; do \
+	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+	  echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(sbindir)/$$f"; \
+	done
+
+clean-sbinPROGRAMS:
+	@list='$(sbin_PROGRAMS)'; for p in $$list; do \
+	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  echo " rm -f $$p $$f"; \
+	  rm -f $$p $$f ; \
+	done
+partprobe$(EXEEXT): $(partprobe_OBJECTS) $(partprobe_DEPENDENCIES) 
+	@rm -f partprobe$(EXEEXT)
+	$(partprobe_LINK) $(partprobe_OBJECTS) $(partprobe_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/partprobe.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+	for dir in "$(DESTDIR)$(sbindir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-sbinPROGRAMS \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am: install-sbinPROGRAMS
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-sbinPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-sbinPROGRAMS ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-sbinPROGRAMS install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags uninstall uninstall-am uninstall-sbinPROGRAMS
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/partprobe/partprobe.c b/parted-1.8.7/partprobe/partprobe.c
new file mode 100644
index 0000000..1659100
--- /dev/null
+++ b/parted-1.8.7/partprobe/partprobe.c
@@ -0,0 +1,210 @@
+/*
+    partprobe - informs the OS kernel of partition layout
+    Copyright (C) 2001, 2002, 2007 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+/* it's best to compile this with:
+ *
+ * 	 CFLAGS=-Os ./configure --disable-nls --disable-shared --disable-debug
+ * 	 	    --enable-discover-only
+ *
+ * And strip(1) afterwards!
+ */
+
+#include <config.h>
+
+#include <parted/parted.h>
+
+#include <stdio.h>
+#include <string.h>
+#include <getopt.h>
+
+#include "closeout.h"
+#include "configmake.h"
+#include "version-etc.h"
+
+#include <locale.h>
+#include "gettext.h"
+#if ! ENABLE_NLS
+# undef textdomain
+# define textdomain(Domainname) /* empty */
+# undef bindtextdomain
+# define bindtextdomain(Domainname, Dirname) /* empty */
+#endif
+
+#undef _
+#define _(msgid) gettext (msgid)
+
+#define AUTHORS \
+  "<http://parted.alioth.debian.org/cgi-bin/trac.cgi/browser/AUTHORS>"
+
+/* The official name of this program (e.g., no `g' prefix).  */
+#define PROGRAM_NAME "partprobe"
+
+static struct option const long_options[] =
+  {
+    {"no-update", no_argument, NULL, 'd'},
+    {"summary", no_argument, NULL, 's'},
+    {"help", no_argument, NULL, 'h'},
+    {"version", no_argument, NULL, 'v'},
+    {NULL, 0, NULL, 0}
+  };
+
+
+char *program_name;
+
+/* initialized to 0 according to the language lawyers */
+static int	opt_no_probe;
+static int	opt_summary;
+
+static void
+summary (PedDisk* disk)
+{
+	PedPartition*	walk;
+
+	printf ("%s: %s partitions", disk->dev->path, disk->type->name);
+	for (walk = disk->part_list; walk; walk = walk->next) {
+		if (!ped_partition_is_active (walk))
+			continue;
+
+		printf (" %d", walk->num);
+		if (walk->type & PED_PARTITION_EXTENDED) {
+			PedPartition*	log_walk;
+			int		is_first = 1;
+
+			printf (" <");
+			for (log_walk = walk->part_list; log_walk;
+			     log_walk = log_walk->next) {
+				if (!ped_partition_is_active (log_walk))
+					continue;
+				if (!is_first)
+					printf (" ");
+				printf ("%d", log_walk->num);
+				is_first = 0;
+			}
+			printf (">");
+		}
+	}
+	printf ("\n");
+}
+
+static int
+process_dev (PedDevice* dev)
+{
+	PedDiskType*	disk_type;
+	PedDisk*	disk;
+
+	disk_type = ped_disk_probe (dev);
+	if (!disk_type || !strcmp (disk_type->name, "loop"))
+		return 1;
+
+	disk = ped_disk_new (dev);
+	if (!disk)
+		goto error;
+	if (!opt_no_probe) {
+		if (!ped_disk_commit_to_os (disk))
+			goto error_destroy_disk;
+	}
+	if (opt_summary)
+		summary (disk);
+	ped_disk_destroy (disk);
+	return 1;
+
+error_destroy_disk:
+	ped_disk_destroy (disk);
+error:
+	return 0;
+}
+
+void
+usage (int status)
+{
+  if (status != EXIT_SUCCESS)
+    fprintf (stderr, _("Try `%s --help' for more information.\n"),
+	     program_name);
+  else
+    {
+      printf (_("Usage: %s [OPTION] [DEVICE]...\n"), PROGRAM_NAME);
+      fputs (_("\
+Inform the OS of partition table changes.\n\
+\n\
+  -d, --no-update  don't update the kernel\n\
+  -s, --summary    print a summary of contents\n\
+  -h, --help       display this help and exit\n\
+  -v, --version    output version information and exit\n\
+"), stdout);
+      fputs (_("\
+\n\
+With no DEVICE, probe all partitions.\n\
+"), stdout);
+      printf (_("\nReport bugs to <%s>.\n"), PACKAGE_BUGREPORT);
+    }
+  exit (status);
+}
+
+int
+main (int argc, char* argv[])
+{
+	int		status = 0;
+
+	program_name = argv[0];
+	atexit (close_stdout);
+
+	int c;
+	while ((c = getopt_long (argc, argv, "dhsv", long_options, NULL)) != -1)
+		switch (c) {
+			case 'd':
+				opt_no_probe = 1;
+				break;
+
+			case 's':
+				opt_summary = 1;
+				break;
+
+			case 'h':
+				usage (EXIT_SUCCESS);
+				break;
+
+			case 'v':
+				version_etc (stdout, PROGRAM_NAME, PACKAGE_NAME,
+				             VERSION, AUTHORS, (char *) NULL);
+				exit (EXIT_SUCCESS);
+				break;
+
+			default:
+				usage (EXIT_FAILURE);
+                }
+
+        int n_dev = argc - optind;
+	if (n_dev != 0) {
+		int i;
+		for (i = optind; i < argc; i++) {
+			PedDevice *dev = ped_device_get (argv[i]);
+			if (dev == NULL || process_dev (dev) == 0)
+				status = 1;
+		}
+	} else {
+		ped_device_probe_all ();
+		PedDevice *dev;
+		for (dev = ped_device_get_next (NULL); dev;
+		     dev = ped_device_get_next (dev))
+			if (process_dev (dev) == 0)
+				status = 1;
+	}
+
+	return status;
+}
diff --git a/parted-1.8.7/po/ChangeLog.0 b/parted-1.8.7/po/ChangeLog.0
new file mode 100644
index 0000000..df19c9f
--- /dev/null
+++ b/parted-1.8.7/po/ChangeLog.0
@@ -0,0 +1,52 @@
+2004-03-11  gettextize  <bug-gnu-gettext@gnu.org>
+
+	* Makefile.in.in: Upgrade to gettext-0.14.1.
+	* boldquot.sed: New file, from gettext-0.14.1.
+	* en@boldquot.header: New file, from gettext-0.14.1.
+	* en@quot.header: New file, from gettext-0.14.1.
+	* insert-header.sin: New file, from gettext-0.14.1.
+	* quot.sed: New file, from gettext-0.14.1.
+	* remove-potcdate.sin: New file, from gettext-0.14.1.
+	* Rules-quot: New file, from gettext-0.14.1.
+
+2003-06-13  gettextize  <bug-gnu-utils@gnu.org>
+
+	* Makefile.in.in: Upgrade to gettext-0.10.40.
+
+2002-11-15  gettextize  <bug-gnu-utils@gnu.org>
+
+	* Makefile.in.in: Upgrade to gettext-0.10.40.
+
+2001-12-31  gettextize  <bug-gnu-utils@gnu.org>
+
+	* Makefile.in.in: Upgrade to gettext-0.10.40.
+
+2001-12-27  gettextize  <bug-gnu-utils@gnu.org>
+
+	* Makefile.in.in: Upgrade to gettext-0.10.40.
+
+2001-12-16  gettextize  <bug-gnu-utils@gnu.org>
+
+	* Makefile.in.in: Upgrade to gettext-0.10.40.
+
+2001-12-12  gettextize  <bug-gnu-utils@gnu.org>
+
+	* Makefile.in.in: Upgrade to gettext-0.10.40.
+
+2001-11-09  gettextize  <bug-gnu-utils@gnu.org>
+
+	* Makefile.in.in: Upgrade to gettext-0.10.40.
+
+2001-07-14  gettextize  <bug-gnu-utils@gnu.org>
+
+	* Makefile.in.in: Upgrade to gettext-0.10.38.
+	* cat-id-tbl.c: Remove file.
+	* stamp-cat-id: Remove file.
+
+-----------------------------------------------------------------------------
+
+This file is part of GNU Parted
+Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation Inc.
+
+This file may be modified and/or distributed without restriction.  This is
+not an invitation to misrepresent the history of GNU Parted.
diff --git a/parted-1.8.7/po/LINGUAS b/parted-1.8.7/po/LINGUAS
new file mode 100644
index 0000000..9646765
--- /dev/null
+++ b/parted-1.8.7/po/LINGUAS
@@ -0,0 +1,24 @@
+ca
+cs
+da
+de
+es
+fr
+gl
+id
+it
+ja
+nl
+nn
+pl
+pt
+pt_BR
+ro
+ru
+rw
+sv
+tr
+uk
+vi
+zh_CN
+zh_TW
diff --git a/parted-1.8.7/po/Makefile.in.in b/parted-1.8.7/po/Makefile.in.in
new file mode 100644
index 0000000..e7d1ab2
--- /dev/null
+++ b/parted-1.8.7/po/Makefile.in.in
@@ -0,0 +1,395 @@
+# -*- buffer-read-only: t -*- vi: set ro:
+# DO NOT EDIT! GENERATED AUTOMATICALLY!
+# Makefile for PO directory in any package using GNU gettext.
+# Copyright (C) 1995-1997, 2000-2006 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+#
+# This file can be copied and used freely without restrictions.  It can
+# be used in projects which are not available under the GNU General Public
+# License but which still want to provide support for the GNU gettext
+# functionality.
+# Please note that the actual code of GNU gettext is covered by the GNU
+# General Public License and is *not* in the public domain.
+#
+# Origin: gettext-0.15
+
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+
+SHELL = /bin/sh
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datarootdir = @datarootdir@
+datadir = @datadir@
+localedir = @localedir@
+gettextsrcdir = $(datadir)/gettext/po
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+mkinstalldirs = $(SHELL) @install_sh@ -d
+mkdir_p = @mkdir_p@
+
+GMSGFMT_ = @GMSGFMT@
+GMSGFMT_no = @GMSGFMT@
+GMSGFMT_yes = @GMSGFMT_015@
+GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT))
+MSGFMT_ = @MSGFMT@
+MSGFMT_no = @MSGFMT@
+MSGFMT_yes = @MSGFMT_015@
+MSGFMT = $(MSGFMT_$(USE_MSGCTXT))
+XGETTEXT_ = @XGETTEXT@
+XGETTEXT_no = @XGETTEXT@
+XGETTEXT_yes = @XGETTEXT_015@
+XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT))
+MSGMERGE = msgmerge
+MSGMERGE_UPDATE = @MSGMERGE@ --update
+MSGINIT = msginit
+MSGCONV = msgconv
+MSGFILTER = msgfilter
+
+POFILES = @POFILES@
+GMOFILES = @GMOFILES@
+UPDATEPOFILES = @UPDATEPOFILES@
+DUMMYPOFILES = @DUMMYPOFILES@
+DISTFILES.common = Makefile.in.in remove-potcdate.sin \
+$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
+DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \
+$(POFILES) $(GMOFILES) \
+$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
+
+POTFILES = \
+
+CATALOGS = @CATALOGS@
+
+# Makevars gets inserted here. (Don't remove this line!)
+
+.SUFFIXES:
+.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update
+
+.po.mo:
+	@echo "$(MSGFMT) -c -o $@ $<"; \
+	$(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
+
+.po.gmo:
+	@lang=`echo $* | sed -e 's,.*/,,'`; \
+	test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+	echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
+	cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
+
+.sin.sed:
+	sed -e '/^#/d' $< > t-$@
+	mv t-$@ $@
+
+
+all: all-@USE_NLS@
+
+all-yes: stamp-po
+all-no:
+
+# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no
+# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because
+# we don't want to bother translators with empty POT files). We assume that
+# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty.
+# In this case, stamp-po is a nop (i.e. a phony target).
+
+# stamp-po is a timestamp denoting the last time at which the CATALOGS have
+# been loosely updated. Its purpose is that when a developer or translator
+# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
+# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent
+# invocations of "make" will do nothing. This timestamp would not be necessary
+# if updating the $(CATALOGS) would always touch them; however, the rule for
+# $(POFILES) has been designed to not touch files that don't need to be
+# changed.
+stamp-po: $(srcdir)/$(DOMAIN).pot
+	test ! -f $(srcdir)/$(DOMAIN).pot || \
+	  test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
+	@test ! -f $(srcdir)/$(DOMAIN).pot || { \
+	  echo "touch stamp-po" && \
+	  echo timestamp > stamp-poT && \
+	  mv stamp-poT stamp-po; \
+	}
+
+# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
+# otherwise packages like GCC can not be built if only parts of the source
+# have been downloaded.
+
+# This target rebuilds $(DOMAIN).pot; it is an expensive operation.
+# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
+$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
+	if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \
+	  msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \
+	else \
+	  msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \
+	fi; \
+	$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
+	  --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
+	  --files-from=$(srcdir)/POTFILES.in \
+	  --copyright-holder='$(COPYRIGHT_HOLDER)' \
+	  --msgid-bugs-address="$$msgid_bugs_address"
+	test ! -f $(DOMAIN).po || { \
+	  if test -f $(srcdir)/$(DOMAIN).pot; then \
+	    sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
+	    sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
+	    if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
+	      rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
+	    else \
+	      rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
+	      mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+	    fi; \
+	  else \
+	    mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+	  fi; \
+	}
+
+# This rule has no dependencies: we don't need to update $(DOMAIN).pot at
+# every "make" invocation, only create it when it is missing.
+# Only "make $(DOMAIN).pot-update" or "make dist" will force an update.
+$(srcdir)/$(DOMAIN).pot:
+	$(MAKE) $(DOMAIN).pot-update
+
+# This target rebuilds a PO file if $(DOMAIN).pot has changed.
+# Note that a PO file is not touched if it doesn't need to be changed.
+$(POFILES): $(srcdir)/$(DOMAIN).pot
+	@lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
+	if test -f "$(srcdir)/$${lang}.po"; then \
+	  test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+	  echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
+	  cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \
+	else \
+	  $(MAKE) $${lang}.po-create; \
+	fi
+
+
+install: install-exec install-data
+install-exec:
+install-data: install-data-@USE_NLS@
+	if test "$(PACKAGE)" = "gettext-tools"; then \
+	  $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
+	  for file in $(DISTFILES.common) Makevars.template; do \
+	    $(INSTALL_DATA) $(srcdir)/$$file \
+			    $(DESTDIR)$(gettextsrcdir)/$$file; \
+	  done; \
+	  for file in Makevars; do \
+	    rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+	  done; \
+	else \
+	  : ; \
+	fi
+install-data-no: all
+install-data-yes: all
+	$(mkdir_p) $(DESTDIR)$(datadir)
+	@catalogs='$(CATALOGS)'; \
+	for cat in $$catalogs; do \
+	  cat=`basename $$cat`; \
+	  lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+	  dir=$(localedir)/$$lang/LC_MESSAGES; \
+	  $(mkdir_p) $(DESTDIR)$$dir; \
+	  if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
+	  $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
+	  echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
+	  for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
+	    if test -n "$$lc"; then \
+	      if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
+	        link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
+	        mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+	        mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+	        (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
+	         for file in *; do \
+	           if test -f $$file; then \
+	             ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
+	           fi; \
+	         done); \
+	        rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+	      else \
+	        if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
+	          :; \
+	        else \
+	          rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
+	          mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+	        fi; \
+	      fi; \
+	      rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+	      ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
+	      ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
+	      cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+	      echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
+	    fi; \
+	  done; \
+	done
+
+install-strip: install
+
+installdirs: installdirs-exec installdirs-data
+installdirs-exec:
+installdirs-data: installdirs-data-@USE_NLS@
+	if test "$(PACKAGE)" = "gettext-tools"; then \
+	  $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
+	else \
+	  : ; \
+	fi
+installdirs-data-no:
+installdirs-data-yes:
+	$(mkdir_p) $(DESTDIR)$(datadir)
+	@catalogs='$(CATALOGS)'; \
+	for cat in $$catalogs; do \
+	  cat=`basename $$cat`; \
+	  lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+	  dir=$(localedir)/$$lang/LC_MESSAGES; \
+	  $(mkdir_p) $(DESTDIR)$$dir; \
+	  for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
+	    if test -n "$$lc"; then \
+	      if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
+	        link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
+	        mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+	        mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+	        (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
+	         for file in *; do \
+	           if test -f $$file; then \
+	             ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
+	           fi; \
+	         done); \
+	        rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+	      else \
+	        if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
+	          :; \
+	        else \
+	          rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
+	          mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+	        fi; \
+	      fi; \
+	    fi; \
+	  done; \
+	done
+
+# Define this as empty until I found a useful application.
+installcheck:
+
+uninstall: uninstall-exec uninstall-data
+uninstall-exec:
+uninstall-data: uninstall-data-@USE_NLS@
+	if test "$(PACKAGE)" = "gettext-tools"; then \
+	  for file in $(DISTFILES.common) Makevars.template; do \
+	    rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+	  done; \
+	else \
+	  : ; \
+	fi
+uninstall-data-no:
+uninstall-data-yes:
+	catalogs='$(CATALOGS)'; \
+	for cat in $$catalogs; do \
+	  cat=`basename $$cat`; \
+	  lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+	  for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
+	    rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+	  done; \
+	done
+
+check: all
+
+info dvi ps pdf html tags TAGS ctags CTAGS ID:
+
+mostlyclean:
+	rm -f remove-potcdate.sed
+	rm -f stamp-poT
+	rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
+	rm -fr *.o
+
+clean: mostlyclean
+
+distclean: clean
+	rm -f Makefile Makefile.in POTFILES *.mo
+
+maintainer-clean: distclean
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+	rm -f stamp-po $(GMOFILES)
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir:
+	$(MAKE) update-po
+	@$(MAKE) dist2
+# This is a separate target because 'update-po' must be executed before.
+dist2: stamp-po $(DISTFILES)
+	dists="$(DISTFILES)"; \
+	if test "$(PACKAGE)" = "gettext-tools"; then \
+	  dists="$$dists Makevars.template"; \
+	fi; \
+	if test -f $(srcdir)/$(DOMAIN).pot; then \
+	  dists="$$dists $(DOMAIN).pot stamp-po"; \
+	fi; \
+	if test -f $(srcdir)/ChangeLog; then \
+	  dists="$$dists ChangeLog"; \
+	fi; \
+	for i in 0 1 2 3 4 5 6 7 8 9; do \
+	  if test -f $(srcdir)/ChangeLog.$$i; then \
+	    dists="$$dists ChangeLog.$$i"; \
+	  fi; \
+	done; \
+	if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
+	for file in $$dists; do \
+	  if test -f $$file; then \
+	    cp -p $$file $(distdir) || exit 1; \
+	  else \
+	    cp -p $(srcdir)/$$file $(distdir) || exit 1; \
+	  fi; \
+	done
+
+update-po: Makefile
+	$(MAKE) $(DOMAIN).pot-update
+	test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
+	$(MAKE) update-gmo
+
+# General rule for creating PO files.
+
+.nop.po-create:
+	@lang=`echo $@ | sed -e 's/\.po-create$$//'`; \
+	echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \
+	exit 1
+
+# General rule for updating PO files.
+
+.nop.po-update:
+	@lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
+	if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \
+	tmpdir=`pwd`; \
+	echo "$$lang:"; \
+	test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+	echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
+	cd $(srcdir); \
+	if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
+	  if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+	    rm -f $$tmpdir/$$lang.new.po; \
+	  else \
+	    if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+	      :; \
+	    else \
+	      echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+	      exit 1; \
+	    fi; \
+	  fi; \
+	else \
+	  echo "msgmerge for $$lang.po failed!" 1>&2; \
+	  rm -f $$tmpdir/$$lang.new.po; \
+	fi
+
+$(DUMMYPOFILES):
+
+update-gmo: Makefile $(GMOFILES)
+	@:
+
+Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@
+	cd $(top_builddir) \
+	  && $(SHELL) ./config.status $(subdir)/$@.in po-directories
+
+force:
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/po/Makevars b/parted-1.8.7/po/Makevars
new file mode 100644
index 0000000..ad51716
--- /dev/null
+++ b/parted-1.8.7/po/Makevars
@@ -0,0 +1,53 @@
+# -*- buffer-read-only: t -*- vi: set ro:
+# DO NOT EDIT! GENERATED AUTOMATICALLY!
+# Makefile variables for PO directory in any package using GNU gettext.
+
+# Usually the message domain is the same as the package name.
+DOMAIN = $(PACKAGE)
+
+# These two variables depend on the location of this directory.
+subdir = po
+top_builddir = ..
+
+# These options get passed to xgettext.
+XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ \
+	\
+ --flag=_:1:pass-c-format\
+ --flag=N_:1:pass-c-format\
+ --flag=error:3:c-format --flag=error_at_line:5:c-format\
+\
+ --from-code=UTF-8\
+ --flag=asprintf:2:c-format --flag=vasprintf:2:c-format\
+ --flag=asnprintf:3:c-format --flag=vasnprintf:3:c-format\
+ --flag=wrapf:1:c-format\
+ $${end_of_xgettext_options+}
+
+# This is the copyright holder that gets inserted into the header of the
+# $(DOMAIN).pot file.  Set this to the copyright holder of the surrounding
+# package.  (Note that the msgstr strings, extracted from the package's
+# sources, belong to the copyright holder of the package.)  Translators are
+# expected to transfer the copyright for their translations to this person
+# or entity, or to disclaim their copyright.  The empty string stands for
+# the public domain; in this case the translators are expected to disclaim
+# their copyright.
+COPYRIGHT_HOLDER = Free Software Foundation, Inc.
+
+# This is the email address or URL to which the translators shall report
+# bugs in the untranslated strings:
+# - Strings which are not entire sentences, see the maintainer guidelines
+#   in the GNU gettext documentation, section 'Preparing Strings'.
+# - Strings which use unclear terms or require additional context to be
+#   understood.
+# - Strings which make invalid assumptions about notation of date, time or
+#   money.
+# - Pluralisation problems.
+# - Incorrect English spelling.
+# - Incorrect formatting.
+# It can be your email address, or a mailing list address where translators
+# can write to without being subscribed, or the URL of a web page through
+# which the translators can contact you.
+MSGID_BUGS_ADDRESS = bug-parted@gnu.org
+
+# This is the list of locale categories, beyond LC_MESSAGES, for which the
+# message catalogs shall be used.  It is usually empty.
+EXTRA_LOCALE_CATEGORIES = 
diff --git a/parted-1.8.7/po/POTFILES.in b/parted-1.8.7/po/POTFILES.in
new file mode 100644
index 0000000..35b3677
--- /dev/null
+++ b/parted-1.8.7/po/POTFILES.in
@@ -0,0 +1,92 @@
+# libparted
+# Copyright (C) 1999, 2000, 2001, 2006, 2007  Free Software Foundation, Inc.
+# This file may be modified and/or copied without restriction.
+
+# list of files containing translatable strings
+
+# lib
+lib/closeout.c
+lib/error.c
+lib/getopt.c
+lib/quotearg.c
+lib/regcomp.c
+lib/rpmatch.c
+lib/version-etc.c
+lib/xalloc-die.c
+libparted/arch/beos.c
+
+debug/clearfat/clearfat.c
+partprobe/partprobe.c
+
+# libparted
+libparted/arch/gnu.c
+libparted/arch/linux.c
+libparted/cs/geom.c
+libparted/debug.c
+libparted/disk.c
+libparted/exception.c
+libparted/filesys.c
+libparted/fs/reiserfs/reiserfs.c
+libparted/labels/aix.c
+libparted/labels/bsd.c
+libparted/labels/dasd.c
+libparted/labels/dos.c
+libparted/labels/dvh.c
+libparted/labels/fdasd.c
+libparted/labels/gpt.c
+libparted/labels/loop.c
+libparted/labels/mac.c
+libparted/labels/pc98.c
+libparted/labels/rdb.c
+libparted/labels/sun.c
+libparted/labels/vtoc.c
+libparted/libparted.c
+libparted/unit.c
+
+libparted/fs/amiga/affs.c
+libparted/fs/amiga/amiga.c
+libparted/fs/amiga/apfs.c
+libparted/fs/amiga/asfs.c
+
+# libparted/fs_ext2
+libparted/fs/ext2/ext2.c
+libparted/fs/ext2/ext2_inode_relocator.c
+libparted/fs/ext2/ext2_resize.c
+libparted/fs/ext2/ext2_block_relocator.c
+libparted/fs/ext2/interface.c
+libparted/fs/ext2/ext2_buffer.c
+libparted/fs/ext2/ext2_mkfs.c
+
+# libparted/fs/fat
+libparted/fs/fat/calc.c
+libparted/fs/fat/context.c
+libparted/fs/fat/fat.c
+libparted/fs/fat/resize.c
+libparted/fs/fat/bootsector.c
+libparted/fs/fat/count.c
+libparted/fs/fat/table.c
+
+# libparted/fs/linux_swap
+libparted/fs/linux_swap/linux_swap.c
+
+# libparted/fs/hfs
+libparted/fs/hfs/advfs.c
+libparted/fs/hfs/advfs_plus.c
+libparted/fs/hfs/cache.c
+libparted/fs/hfs/file.c
+libparted/fs/hfs/file_plus.c
+libparted/fs/hfs/hfs.c
+libparted/fs/hfs/journal.c
+libparted/fs/hfs/probe.c
+libparted/fs/hfs/reloc.c
+libparted/fs/hfs/reloc_plus.c
+
+# libparted/fs/jfs
+
+# libparted/fs/ufs
+
+# libparted/fs/xfs
+
+# parted
+parted/parted.c
+parted/ui.c
diff --git a/parted-1.8.7/po/Rules-quot b/parted-1.8.7/po/Rules-quot
new file mode 100644
index 0000000..9c2a995
--- /dev/null
+++ b/parted-1.8.7/po/Rules-quot
@@ -0,0 +1,47 @@
+# Special Makefile rules for English message catalogs with quotation marks.
+
+DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot
+
+.SUFFIXES: .insert-header .po-update-en
+
+en@quot.po-create:
+	$(MAKE) en@quot.po-update
+en@boldquot.po-create:
+	$(MAKE) en@boldquot.po-update
+
+en@quot.po-update: en@quot.po-update-en
+en@boldquot.po-update: en@boldquot.po-update-en
+
+.insert-header.po-update-en:
+	@lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \
+	if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \
+	tmpdir=`pwd`; \
+	echo "$$lang:"; \
+	ll=`echo $$lang | sed -e 's/@.*//'`; \
+	LC_ALL=C; export LC_ALL; \
+	cd $(srcdir); \
+	if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \
+	  if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+	    rm -f $$tmpdir/$$lang.new.po; \
+	  else \
+	    if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+	      :; \
+	    else \
+	      echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+	      exit 1; \
+	    fi; \
+	  fi; \
+	else \
+	  echo "creation of $$lang.po failed!" 1>&2; \
+	  rm -f $$tmpdir/$$lang.new.po; \
+	fi
+
+en@quot.insert-header: insert-header.sin
+	sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header
+
+en@boldquot.insert-header: insert-header.sin
+	sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header
+
+mostlyclean: mostlyclean-quot
+mostlyclean-quot:
+	rm -f *.insert-header
diff --git a/parted-1.8.7/po/boldquot.sed b/parted-1.8.7/po/boldquot.sed
new file mode 100644
index 0000000..4b937aa
--- /dev/null
+++ b/parted-1.8.7/po/boldquot.sed
@@ -0,0 +1,10 @@
+s/"\([^"]*\)"/“\1”/g
+s/`\([^`']*\)'/‘\1’/g
+s/ '\([^`']*\)' / ‘\1’ /g
+s/ '\([^`']*\)'$/ ‘\1’/g
+s/^'\([^`']*\)' /‘\1’ /g
+s/“”/""/g
+s/“/“/g
+s/”/”/g
+s/‘/‘/g
+s/’/’/g
diff --git a/parted-1.8.7/po/ca.gmo b/parted-1.8.7/po/ca.gmo
new file mode 100644
index 0000000..2823e9b
--- /dev/null
+++ b/parted-1.8.7/po/ca.gmo
Binary files differ
diff --git a/parted-1.8.7/po/ca.po b/parted-1.8.7/po/ca.po
new file mode 100644
index 0000000..a0a886c
--- /dev/null
+++ b/parted-1.8.7/po/ca.po
@@ -0,0 +1,3359 @@
+# GNU Parted en català
+# Copyright (C) 2002 Free Software Foundation, Inc.
+# Miquel Matas <miquelmatas@wanadoo.es>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: parted 1.6.0\n"
+"Report-Msgid-Bugs-To: bug-parted@gnu.org\n"
+"POT-Creation-Date: 2007-05-09 17:02-0400\n"
+"PO-Revision-Date: 2002-05-05 14:47+0100\n"
+"Last-Translator: Miquel Matas <miquelmatas@wanadoo.es>\n"
+"Language-Team: Catalan <ca@dodds.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 0.7\n"
+
+#: lib/closeout.c:74
+msgid "write error"
+msgstr ""
+
+#: lib/error.c:125
+#, fuzzy
+msgid "Unknown system error"
+msgstr "Tipus de sistema de fitxers desconegut \"%s\"."
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK).  A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#.
+#. If you don't know what to put here, please see
+#. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr ""
+
+#: lib/regcomp.c:131
+msgid "Success"
+msgstr ""
+
+#: lib/regcomp.c:134
+msgid "No match"
+msgstr ""
+
+#: lib/regcomp.c:137
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regcomp.c:140
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regcomp.c:143
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regcomp.c:146
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regcomp.c:149
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regcomp.c:152
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regcomp.c:155
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regcomp.c:158
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regcomp.c:161
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regcomp.c:164
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regcomp.c:170
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regcomp.c:173
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regcomp.c:176
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regcomp.c:179
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regcomp.c:680
+msgid "No previous regular expression"
+msgstr ""
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr ""
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:66
+msgid "(C)"
+msgstr ""
+
+#: lib/version-etc.c:68
+msgid ""
+"\n"
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:84
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:88
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:92
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:98
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:104
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:110
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:132
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+
+#: lib/xalloc-die.c:35
+msgid "memory exhausted"
+msgstr ""
+
+#: libparted/arch/beos.c:237
+msgid "Disk Image"
+msgstr ""
+
+#: libparted/arch/beos.c:338 libparted/arch/gnu.c:261
+#: libparted/arch/linux.c:1272
+#, c-format
+msgid "Error opening %s: %s"
+msgstr "Error obrint %s: %s"
+
+#: libparted/arch/beos.c:349 libparted/arch/gnu.c:271
+#: libparted/arch/linux.c:1283
+#, c-format
+msgid "Unable to open %s read-write (%s).  %s has been opened read-only."
+msgstr ""
+"No s'ha pogut obrir %s lectura/escritura (%s). %s s'ha obert només lectura. "
+
+#: libparted/arch/beos.c:411 libparted/arch/linux.c:1431
+#, c-format
+msgid "%s during seek for read on %s"
+msgstr "%s mentre es preparava per llegir a %s"
+
+#: libparted/arch/beos.c:444 libparted/arch/gnu.c:449 libparted/arch/gnu.c:548
+#: libparted/arch/gnu.c:676 libparted/arch/linux.c:1391
+#: libparted/arch/linux.c:1469
+#, c-format
+msgid "%s during read on %s"
+msgstr "%s mentre s'estava llegint a %s"
+
+#: libparted/arch/beos.c:480 libparted/arch/gnu.c:509
+#: libparted/arch/linux.c:1546
+#, c-format
+msgid "Can't write to %s, because it is opened read-only."
+msgstr "No s'ha pogut escriure a %s, ja que era obert per només lectura"
+
+#: libparted/arch/beos.c:496 libparted/arch/linux.c:1570
+#, c-format
+msgid "%s during seek for write on %s"
+msgstr "%s mentre es preparava per escruire a %s"
+
+#: libparted/arch/beos.c:533 libparted/arch/gnu.c:585 libparted/arch/gnu.c:630
+#: libparted/arch/gnu.c:707 libparted/arch/linux.c:1517
+#: libparted/arch/linux.c:1612 libparted/arch/linux.c:1684
+#, c-format
+msgid "%s during write on %s"
+msgstr "%s mentre s'estava escrivint a %s"
+
+#: debug/clearfat/clearfat.c:63 partprobe/partprobe.c:137
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:67
+#, c-format
+msgid ""
+"Usage: %s [OPTION]\n"
+"  or:  %s DEVICE MINOR\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:70
+msgid ""
+"Clear unused space on a FAT partition (a GNU Parted testing tool).\n"
+"\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:74
+msgid "      --help     display this help and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:75
+msgid "      --version  output version information and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:77 partprobe/partprobe.c:154
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:285
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:290
+#, fuzzy, c-format
+msgid "too many arguments"
+msgstr "Massa pàgines incorrectes."
+
+#: partprobe/partprobe.c:141
+#, c-format
+msgid "Usage: %s [OPTION] [DEVICE]...\n"
+msgstr ""
+
+#: partprobe/partprobe.c:142
+msgid ""
+"Inform the OS of partition table changes.\n"
+"\n"
+"  -d, --no-update  don't update the kernel\n"
+"  -s, --summary    print a summary of contents\n"
+"  -h, --help       display this help and exit\n"
+"  -v, --version    output version information and exit\n"
+msgstr ""
+
+#: partprobe/partprobe.c:150
+msgid ""
+"\n"
+"With no DEVICE, probe all partitions.\n"
+msgstr ""
+
+#: libparted/arch/gnu.c:94
+#, c-format
+msgid "Unable to open %s."
+msgstr "No s'ha pogut obrir %s"
+
+#: libparted/arch/gnu.c:114
+msgid "Unable to probe store."
+msgstr "No s'ha pogut provar d'emmagatzemar."
+
+#: libparted/arch/gnu.c:352
+#, fuzzy
+msgid ""
+"The partition table cannot be re-read.  This means you need to reboot before "
+"mounting any modified partitions.  You also need to reinstall your boot "
+"loader before you reboot (which may require mounting modified partitions).  "
+"It is impossible do both things!  So you'll need to boot off a rescue disk, "
+"and reinstall your boot loader from the rescue disk.  Read section 4 of the "
+"Parted User documentation for more information."
+msgstr ""
+"La taula de particions no s'ha pogut rellegir, per tant es necessita fer "
+"reboot abans de muntar una partició modificada. També es necessita "
+"reinstal·lar el carregador d'arrencada abans de reinicialitzar ( que pot "
+"necessitar el muntatge de les particions modificades ). No és possible fer "
+"les dues coses! Per tant, necessites arrencar amb un disquet de rescat i "
+"reinstal·lar el carregador d'arrencada des del disc de rescat. Llegeix la "
+"secció 4 de la documentació de l'Usuari de Parted per més informació. "
+
+#: libparted/arch/gnu.c:369
+#, fuzzy, c-format
+msgid ""
+"The partition table on %s cannot be re-read (%s).  This means the Hurd knows "
+"nothing about any modifications you made.  You should reboot your computer "
+"before doing anything with %s."
+msgstr ""
+"La taula de particions a %s (%s).Aixó vol dir que Linux no reconeixerà cap "
+"de les modificacions fetes. S'ha de re-arrencar la màquina abans de fer res "
+"amb %s."
+
+#: libparted/arch/gnu.c:380 parted/parted.c:2443
+msgid ""
+"You should reinstall your boot loader before rebooting.  Read section 4 of "
+"the Parted User documentation for more information."
+msgstr ""
+"S'ha de reinstal·lar el carregador d'arrencada abans de rearrencar llegir la "
+"secció 4 de la documentació de l'Usuari de Parted per més informació."
+
+#: libparted/arch/gnu.c:772
+#, c-format
+msgid "%s trying to sync %s to disk"
+msgstr "%s intentant de sincronitzar %s al dics"
+
+#: libparted/arch/linux.c:408
+#, c-format
+msgid "Could not stat device %s - %s."
+msgstr "Impossible d'inicialitzar el dispositiu %s - %s."
+
+#: libparted/arch/linux.c:523
+#, c-format
+msgid ""
+"Could not determine sector size for %s: %s.\n"
+"Using the default sector size (%lld)."
+msgstr ""
+
+#: libparted/arch/linux.c:539
+#, c-format
+msgid ""
+"Device %s has a logical sector size of %lld.  Not all parts of GNU Parted "
+"support this at the moment, and the working code is HIGHLY EXPERIMENTAL.\n"
+msgstr ""
+
+#: libparted/arch/linux.c:579
+#, fuzzy, c-format
+msgid "Unable to determine the size of %s (%s)."
+msgstr "No s'ha pogut determinar la mida de %s (%s)"
+
+#: libparted/arch/linux.c:668
+#, c-format
+msgid "Could not get identity of device %s - %s"
+msgstr "No s'ha pogut obtenir la identitat del dispositiu %s - %s"
+
+#: libparted/arch/linux.c:677
+msgid "Generic IDE"
+msgstr ""
+
+#: libparted/arch/linux.c:698
+#, c-format
+msgid ""
+"Device %s has multiple (%d) logical sectors per physical sector.\n"
+"GNU Parted supports this EXPERIMENTALLY for some special disk label/file "
+"system combinations, e.g. GPT and ext2/3.\n"
+"Please consult the web site for up-to-date information."
+msgstr ""
+
+#: libparted/arch/linux.c:873
+#, c-format
+msgid "Error initialising SCSI device %s - %s"
+msgstr "Error inicialitzant el dispositiu SCSI %s - %s"
+
+#: libparted/arch/linux.c:928
+#, c-format
+msgid ""
+"The device %s has zero length, and can't possibly store a file system or "
+"partition table.  Perhaps you selected the wrong device?"
+msgstr ""
+
+#: libparted/arch/linux.c:1032
+#, fuzzy, c-format
+msgid ""
+"Unable to determine geometry of file/device %s.  You should not use Parted "
+"unless you REALLY know what you're doing!"
+msgstr ""
+"No s'ha pogut determinar la geometria del fitxer/dispositiu. No s'hauria de "
+"fer servir Parted EXCEPTE que se sàpiga el que s'està fent!"
+
+#: libparted/arch/linux.c:1110
+msgid "DAC960 RAID controller"
+msgstr "Controlador RAID DAC960"
+
+#: libparted/arch/linux.c:1115
+msgid "Promise SX8 SATA Device"
+msgstr ""
+
+#: libparted/arch/linux.c:1120
+msgid "IBM S390 DASD drive"
+msgstr ""
+
+#: libparted/arch/linux.c:1125
+msgid "IBM iSeries Virtual DASD"
+msgstr ""
+
+#: libparted/arch/linux.c:1130
+msgid "Compaq Smart Array"
+msgstr "Compaq Smart Array"
+
+#: libparted/arch/linux.c:1135
+msgid "ATARAID Controller"
+msgstr "Controlador ATARAID"
+
+#: libparted/arch/linux.c:1140
+msgid "I2O Controller"
+msgstr "Controlador I20"
+
+#: libparted/arch/linux.c:1145
+msgid "User-Mode Linux UBD"
+msgstr ""
+
+#: libparted/arch/linux.c:1156
+msgid "Linux device-mapper"
+msgstr ""
+
+#: libparted/arch/linux.c:1162
+msgid "Unknown"
+msgstr "Desconegut"
+
+#: libparted/arch/linux.c:1169
+msgid "ped_device_new()  Unsupported device type"
+msgstr "ped_device_new()  Dispositiu no suportat"
+
+#: libparted/arch/linux.c:2083
+#, fuzzy, c-format
+msgid ""
+"Error informing the kernel about modifications to partition %s -- %s.  This "
+"means Linux won't know about any changes you made to %s until you reboot -- "
+"so you shouldn't mount it or use it in any way before rebooting."
+msgstr ""
+"Error informant el kernel sobre modificacions a la partició %s - %s. Això "
+"vol dir que Linux no reconeixerà cap canvi que haveu fet a %s fins que no "
+"reinicieu - per tant no podeu muntar-la o utilitzar-la en cap sentit abans "
+"d'inicialitzar la màquina. "
+
+#: libparted/arch/linux.c:2262
+#, fuzzy, c-format
+msgid ""
+"parted was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made. "
+msgstr ""
+"El kernel no ha pogut rellegir la taula de particions a %s (%s).Aixó vol dir "
+"que Linux no reconeixerà cap de les modificacions fetes. Heu d'arrencar la "
+"màquina abans de fer res amb %s."
+
+#: libparted/arch/linux.c:2368
+#, fuzzy, c-format
+msgid ""
+"The kernel was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made until you "
+"reboot.  You should reboot your computer before doing anything with %s."
+msgstr ""
+"El kernel no ha pogut rellegir la taula de particions a %s (%s).Aixó vol dir "
+"que Linux no reconeixerà cap de les modificacions fetes. Heu d'arrencar la "
+"màquina abans de fer res amb %s."
+
+#: libparted/cs/geom.c:162
+msgid "Can't have the end before the start!"
+msgstr "No es pot acabar abans de començar!"
+
+#: libparted/cs/geom.c:169
+msgid "Can't have a partition outside the disk!"
+msgstr "No es pot fer una partició fora del disc!"
+
+#: libparted/cs/geom.c:366
+#, fuzzy, c-format
+msgid "Attempt to write sectors %ld-%ld outside of partition on %s."
+msgstr "S'ha intentat escriure sectors %ld-%ld fora de la partició a %s"
+
+#: libparted/cs/geom.c:406 libparted/fs/linux_swap/linux_swap.c:475
+msgid "checking for bad blocks"
+msgstr "comprovant blocs errònis"
+
+#: libparted/debug.c:102
+#, c-format
+msgid "Backtrace has %d calls on stack:\n"
+msgstr ""
+
+#: libparted/debug.c:114
+#, c-format
+msgid "Assertion (%s) at %s:%d in function %s() failed."
+msgstr ""
+
+#: libparted/disk.c:203
+#, c-format
+msgid "Unable to open %s - unrecognised disk label."
+msgstr "No s'ha pogut obrir %s - etiqueta de disc desconeguda."
+
+#: libparted/disk.c:471
+#, c-format
+msgid ""
+"This libparted doesn't have write support for %s.  Perhaps it was compiled "
+"read-only."
+msgstr ""
+"Aquesta libparted no té suport per escriure a %s. Potser va ser compilada "
+"per només lectura."
+
+#: libparted/disk.c:598
+#, fuzzy, c-format
+msgid "Partition %d is %s, but the file system is %s."
+msgstr "La partició %d és de %.3fMb, però el sistema de fitxers és de %.3fMb."
+
+#: libparted/disk.c:1075
+#, c-format
+msgid "%s disk labels do not support extended partitions."
+msgstr "Les etiquetes de disc de %s no suporten particions exteses."
+
+#: libparted/disk.c:1634
+#, c-format
+msgid "%s disk labels don't support logical or extended partitions."
+msgstr "Les etiquetes de disc de %s no suporten particions lògiques o exteses."
+
+#: libparted/disk.c:1647
+#, fuzzy
+msgid "Too many primary partitions."
+msgstr "Massa particions primàries."
+
+#: libparted/disk.c:1656
+#, c-format
+msgid ""
+"Can't add a logical partition to %s, because there is no extended partition."
+msgstr ""
+"No es pot afegir una partició lògica a %s, ja que no hi ha una partició "
+"extesa"
+
+#: libparted/disk.c:1680
+#, fuzzy, c-format
+msgid "Can't have more than one extended partition on %s."
+msgstr "No pot haver més d'una partició extesa a %s"
+
+#: libparted/disk.c:1690
+msgid "Can't have logical partitions outside of the extended partition."
+msgstr "No poden haver particions lògiques fora de la partició extesa."
+
+#: libparted/disk.c:1715
+#, c-format
+msgid "Can't have a logical partition outside of the extended partition on %s."
+msgstr "No pot haver una partició lògica fora de la partició extesa a %s."
+
+#: libparted/disk.c:1725 libparted/disk.c:1779 libparted/disk.c:1945
+#, fuzzy
+msgid "Can't have overlapping partitions."
+msgstr "No poden haver particions solapades."
+
+#: libparted/disk.c:1733
+msgid "Can't have a primary partition inside an extended partition."
+msgstr "No pot haver una partició primaria dins d'una partició extesa."
+
+#: libparted/disk.c:2140
+msgid "metadata"
+msgstr "metadata"
+
+#: libparted/disk.c:2142
+msgid "free"
+msgstr "lliure"
+
+#: libparted/disk.c:2144 parted/ui.c:1169 parted/ui.c:1197
+msgid "extended"
+msgstr "extesa"
+
+#: libparted/disk.c:2146 parted/ui.c:1173 parted/ui.c:1201
+msgid "logical"
+msgstr "lògica"
+
+#: libparted/disk.c:2148 parted/ui.c:1165 parted/ui.c:1193
+msgid "primary"
+msgstr "primària"
+
+#: libparted/disk.c:2164
+msgid "boot"
+msgstr "boot"
+
+#: libparted/disk.c:2166
+msgid "root"
+msgstr "root"
+
+#: libparted/disk.c:2168
+msgid "swap"
+msgstr "swap"
+
+#: libparted/disk.c:2170
+msgid "hidden"
+msgstr "oculta"
+
+#: libparted/disk.c:2172
+msgid "raid"
+msgstr "raid"
+
+#: libparted/disk.c:2174
+msgid "lvm"
+msgstr "lvm"
+
+#: libparted/disk.c:2176
+msgid "lba"
+msgstr "lba"
+
+#: libparted/disk.c:2178
+msgid "hp-service"
+msgstr "servei-hp"
+
+#: libparted/disk.c:2180
+msgid "palo"
+msgstr ""
+
+#: libparted/disk.c:2182
+msgid "prep"
+msgstr ""
+
+#: libparted/disk.c:2184
+msgid "msftres"
+msgstr ""
+
+#: libparted/disk.c:2190
+#, fuzzy, c-format
+msgid "Unknown partition flag, %d."
+msgstr "Flag desconegut a %d."
+
+#: libparted/exception.c:78
+msgid "Information"
+msgstr "Informació"
+
+#: libparted/exception.c:79
+msgid "Warning"
+msgstr "Perill"
+
+#: libparted/exception.c:80
+msgid "Error"
+msgstr "Error"
+
+#: libparted/exception.c:81
+msgid "Fatal"
+msgstr "Fatal"
+
+#: libparted/exception.c:82
+msgid "Bug"
+msgstr "Bug"
+
+#: libparted/exception.c:83
+msgid "No Implementation"
+msgstr "No Implementat"
+
+#: libparted/exception.c:87
+msgid "Fix"
+msgstr "Fix"
+
+#: libparted/exception.c:88
+msgid "Yes"
+msgstr "Sí"
+
+#: libparted/exception.c:89
+msgid "No"
+msgstr "No"
+
+#: libparted/exception.c:90
+msgid "OK"
+msgstr "D'accord"
+
+#: libparted/exception.c:91
+msgid "Retry"
+msgstr "Reintentar"
+
+#: libparted/exception.c:92
+msgid "Ignore"
+msgstr "Ignorar"
+
+#: libparted/exception.c:93
+msgid "Cancel"
+msgstr "Cancel·lar"
+
+#: libparted/exception.c:133
+#, fuzzy, c-format
+msgid ""
+"A bug has been detected in GNU Parted.  Refer to the web site of parted "
+"http://www.gnu.org/software/parted/parted.html for more informations of what "
+"could be useful for bug submitting!  Please email a bug report to bug-"
+"parted@gnu.org containing at least the version (%s) and the following "
+"message:  "
+msgstr ""
+"S'ha detectat un bug a GNU Parted. Si-us-plau, envieu un e-mail a bug-"
+"parted@gnu.org que contingui la versió (%s) i el següent missatge:"
+
+#: libparted/filesys.c:384
+msgid "Could not detect file system."
+msgstr "No s'ha pogut detectar el sistema de fitxers."
+
+#: libparted/filesys.c:395
+#, fuzzy
+msgid "The file system is bigger than its volume!"
+msgstr "El sistema de fitxers és més gran que ho és el volum!"
+
+#: libparted/filesys.c:403
+#, c-format
+msgid "Support for opening %s file systems is not implemented yet."
+msgstr ""
+"El suport per obrir sistemes de fitxers de %s encara no està implementat."
+
+#: libparted/filesys.c:445
+#, c-format
+msgid "Support for creating %s file systems is not implemented yet."
+msgstr ""
+"El suport per crear sistemes de fitxers de %s encara no està implementat."
+
+#: libparted/filesys.c:505
+#, c-format
+msgid "Support for checking %s file systems is not implemented yet."
+msgstr ""
+"El suport per comprovar sistemes de fitxers de %s encara no està implementat."
+
+#: libparted/filesys.c:571
+msgid "raw block copying"
+msgstr "copiant bloc raw"
+
+#: libparted/filesys.c:582
+msgid "growing file system"
+msgstr "sistema de fitxers creixent"
+
+#: libparted/filesys.c:622
+msgid "Can't copy onto an overlapping partition."
+msgstr "No es pot copiar a una partició solapada."
+
+#: libparted/filesys.c:644
+#, fuzzy, c-format
+msgid ""
+"Direct support for copying file systems is not yet implemented for %s.  "
+"However, support for resizing is implemented.  Therefore, the file system "
+"can be copied if the new partition is at least as big as the old one.  So, "
+"either shrink the partition you are trying to copy, or copy to a bigger "
+"partition."
+msgstr ""
+"Support directe per copiar sistemes de fitxers encara no ha estat "
+"implementada per %s. No obstant, si que està implementat el suport per el "
+"redimensionament. Per tant, el sistema de fitxers pot ser copiat si la nova "
+"partició és, com a mínim, tant gran com la antiga. Per tant, o es contrau la "
+"partició que es vol copiar o es copia a una partició més gran."
+
+#: libparted/filesys.c:658
+#, c-format
+msgid "Support for copying %s file systems is not implemented yet."
+msgstr "Suport per copiar sistemes de fitxers %s encara no està implementat."
+
+#: libparted/filesys.c:696
+#, c-format
+msgid "Support for resizing %s file systems is not implemented yet."
+msgstr ""
+"El suport per redimensionar sistemes de fitxers de %s encara no està "
+"implementat."
+
+#: libparted/fs/reiserfs/reiserfs.c:315
+msgid "creating"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:402
+#, fuzzy
+msgid "The file system is in an invalid state.  Perhaps it is mounted?"
+msgstr "El sistema de fitxers és més gran que ho és el volum!"
+
+#: libparted/fs/reiserfs/reiserfs.c:410
+msgid "The file system is in old (unresizeable) format."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:416
+msgid "Invalid free blocks count.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:431
+#, fuzzy
+msgid "checking"
+msgstr "comprova"
+
+#: libparted/fs/reiserfs/reiserfs.c:437
+msgid "Reiserfs tree seems to be corrupted.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:449
+#, fuzzy
+msgid ""
+"The reiserfs file system passed a basic check.  For a more comprehensive "
+"check, run reiserfsck --check."
+msgstr ""
+"El sistema de fitxers ext2 ha passat una comprovació bàsica. Per una "
+"comprovació més completa utilitzar el programa e2fsck."
+
+#: libparted/fs/reiserfs/reiserfs.c:474
+#, fuzzy
+msgid "Sorry, can't move the start of reiserfs partitions yet."
+msgstr "Ho sento, no es pot moure encara el començament de les particions ext2"
+
+#: libparted/fs/reiserfs/reiserfs.c:490
+msgid "Couldn't reopen device abstraction layer for read/write."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:508 libparted/fs/ext2/ext2_resize.c:552
+#: libparted/fs/hfs/hfs.c:250 libparted/fs/hfs/hfs.c:629
+msgid "shrinking"
+msgstr "encongint"
+
+#: libparted/fs/reiserfs/reiserfs.c:520
+#, fuzzy
+msgid "expanding"
+msgstr "Perill"
+
+#: libparted/fs/reiserfs/reiserfs.c:592
+msgid "Couldn't create reiserfs device abstraction handler."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:606
+#, fuzzy, c-format
+msgid "Device is too small for %lu blocks."
+msgstr "Sistema de fitxers massa petit per ext2."
+
+#: libparted/fs/reiserfs/reiserfs.c:615
+msgid "copying"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:682
+#, c-format
+msgid "Couldn't resolve symbol %s.  Error: %s."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:704
+msgid "GNU Parted found an invalid libreiserfs library."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:715
+#, c-format
+msgid ""
+"GNU Parted has detected libreiserfs interface version mismatch.  Found %d-%"
+"d, required %d. ReiserFS support will be disabled."
+msgstr ""
+
+#: libparted/labels/aix.c:137
+#, fuzzy
+msgid "Support for reading AIX disk labels is is not implemented yet."
+msgstr ""
+"El suport per crear sistemes de fitxers de %s encara no està implementat."
+
+#: libparted/labels/aix.c:148
+#, fuzzy
+msgid "Support for writing AIX disk labels is is not implemented yet."
+msgstr ""
+"El suport per crear sistemes de fitxers de %s encara no està implementat."
+
+#: libparted/labels/aix.c:161
+#, fuzzy
+msgid ""
+"Support for adding partitions to AIX disk labels is not implemented yet."
+msgstr ""
+"El suport per crear sistemes de fitxers de %s encara no està implementat."
+
+#: libparted/labels/aix.c:171
+#, fuzzy
+msgid ""
+"Support for duplicating partitions in AIX disk labels is not implemented yet."
+msgstr ""
+"El suport per crear sistemes de fitxers de %s encara no està implementat."
+
+#: libparted/labels/aix.c:189
+#, fuzzy
+msgid ""
+"Support for setting system type of partitions in AIX disk labels is not "
+"implemented yet."
+msgstr ""
+"El suport per crear sistemes de fitxers de %s encara no està implementat."
+
+#: libparted/labels/aix.c:199
+#, fuzzy
+msgid "Support for setting flags in AIX disk labels is not implemented yet."
+msgstr ""
+"El suport per crear sistemes de fitxers de %s encara no està implementat."
+
+#: libparted/labels/bsd.c:501 libparted/labels/dasd.c:755
+#: libparted/labels/dos.c:1974 libparted/labels/dvh.c:770
+#: libparted/labels/gpt.c:1448 libparted/labels/loop.c:248
+#: libparted/labels/mac.c:1408 libparted/labels/pc98.c:759
+#: libparted/labels/rdb.c:1041 libparted/labels/sun.c:705
+msgid "Unable to satisfy all constraints on the partition."
+msgstr "No s'ha pogut satisfer les limitacions a la partició"
+
+#: libparted/labels/bsd.c:526
+#, fuzzy
+msgid "Unable to allocate a bsd disklabel slot."
+msgstr "No s'ha pogut reservar una etiqueta bsd"
+
+#: libparted/labels/dasd.c:166
+#, fuzzy
+msgid "Unable to determine the block size of this dasd"
+msgstr "No s'ha pogut determinar la mida de %s (%s)"
+
+#: libparted/labels/dasd.c:781
+#, fuzzy
+msgid "Unable to allocate a dasd disklabel slot"
+msgstr "No s'ha pogut reservar una etiqueta bsd"
+
+#: libparted/labels/dos.c:827
+#, fuzzy, c-format
+msgid "Invalid partition table on %s -- wrong signature %x."
+msgstr "Taula de particions invàlida a %s - signatura dolenta %x."
+
+#: libparted/labels/dos.c:855
+#, c-format
+msgid "Invalid partition table - recursive partition on %s."
+msgstr "Taula de particions invàlida - partició recursiva a %s."
+
+#: libparted/labels/dos.c:1318
+msgid "Extended partitions cannot be hidden on msdos disk labels."
+msgstr ""
+
+#: libparted/labels/dos.c:1958
+msgid "Parted can't resize partitions managed by Windows Dynamic Disk."
+msgstr ""
+
+#: libparted/labels/dvh.c:190
+#, fuzzy, c-format
+msgid "%s has no extended partition (volume header partition)."
+msgstr ""
+"%s no té partició extesa (partició de capçalera de volum).  Si ignoreu, tots "
+"els volums d'arrencada seràn esborrats. "
+
+#: libparted/labels/dvh.c:313
+msgid "Checksum is wrong, indicating the partition table is corrupt."
+msgstr ""
+"Checksum incorrecte, la qual cosa indica que la taula de particions és "
+"corrupte."
+
+#: libparted/labels/dvh.c:616
+msgid "Only primary partitions can be root partitions."
+msgstr "Només les particions primàries poden ser particions root."
+
+#: libparted/labels/dvh.c:630
+msgid "Only primary partitions can be swap partitions."
+msgstr "Només les particions primàries poden ser particions swap."
+
+#: libparted/labels/dvh.c:644
+msgid "Only logical partitions can be a boot file."
+msgstr "Només les particions lògiques poden ser un fitxer d'arrencada."
+
+#: libparted/labels/dvh.c:721
+msgid "Only logical partitions (boot files) have a name."
+msgstr "Només les particions lògiques (fitxers d'arrencada) tenen nom."
+
+#: libparted/labels/dvh.c:812
+msgid "Too many primary partitions"
+msgstr "Massa particions primàries."
+
+#: libparted/labels/fdasd.c:103
+#, c-format
+msgid ""
+"%s open error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:107
+#, c-format
+msgid ""
+"%s seek error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:110
+#, c-format
+msgid ""
+"%s read error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:113
+#, fuzzy, c-format
+msgid ""
+"%s write error\n"
+"%s\n"
+msgstr "%s mentre s'estava escrivint a %s"
+
+#: libparted/labels/fdasd.c:116
+#, c-format
+msgid ""
+"%s IOCTL error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:119
+#, c-format
+msgid ""
+"%s API version mismatch\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:122
+#, c-format
+msgid ""
+"%s Unsupported disk type\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:126
+#, c-format
+msgid ""
+"%s Unsupported disk format\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:130
+#, fuzzy, c-format
+msgid ""
+"%s Disk in use\n"
+"%s\n"
+msgstr "%s  %s  %s"
+
+#: libparted/labels/fdasd.c:133
+#, c-format
+msgid ""
+"%s Config file syntax error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:137
+#, c-format
+msgid ""
+"%s Volume label is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:141
+#, c-format
+msgid ""
+"%s a data set name is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:145
+#, c-format
+msgid ""
+"%s space allocation\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:149
+#, c-format
+msgid ""
+"%s device verification failed\n"
+"The specified device is not a valid DASD device\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:154
+#, c-format
+msgid ""
+"%s Fatal error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/gpt.c:454
+#, fuzzy, c-format
+msgid ""
+"%s contains GPT signatures, indicating that it has a GPT table.  However, it "
+"does not have a valid fake msdos partition table, as it should.  Perhaps it "
+"was corrupted -- possibly by a program that doesn't understand GPT partition "
+"tables.  Or perhaps you deleted the GPT table, and are now using an msdos "
+"partition table.  Is this a GPT partition table?"
+msgstr ""
+"%s conté signatures GPT, la qual cosa indica que té una taula GPT. No "
+"obstant, no té una taula de particions msdos imitada, com hauria de ser.  "
+"Potser és corrupte - possiblement per un programa que no és capaç d'entendre "
+"les taules de partició GPT. O potser, també, heu esborrat la taula GPT i ara "
+"feu servir una taula de particions msdos. És aquesta una partició GPT? "
+
+#: libparted/labels/gpt.c:648
+#, fuzzy, c-format
+msgid ""
+"The format of the GPT partition table is version %x, which is newer than "
+"what Parted can recognise.  Please tell us!  bug-parted@gnu.org"
+msgstr ""
+"El format de la taula de particions GPT és més nou que el que Parted pot "
+"reconeixer. Si-us-plau, diga'ns-ho a  bug-parted@gnu.org"
+
+#: libparted/labels/gpt.c:698
+#, c-format
+msgid ""
+"Not all of the space available to %s appears to be used, you can fix the GPT "
+"to use all of the space (an extra %llu blocks) or continue with the current "
+"setting? "
+msgstr ""
+
+#: libparted/labels/gpt.c:827
+msgid ""
+"The backup GPT table is not at the end of the disk, as it should be.  This "
+"might mean that another operating system believes the disk is smaller.  Fix, "
+"by moving the backup to the end (and removing the old backup)?"
+msgstr ""
+"La còpia de la taula GPT no és al final del disc com hauriea d'ser. Això pot "
+"voler dir que un altre sistema operatiu creu que el disc és més petit. Ho "
+"voleu arreglar novent la còpia al final ( i esborrant la còpia antiga)?"
+
+#: libparted/labels/gpt.c:862
+#, fuzzy
+msgid ""
+"The primary GPT table is corrupt, but the backup appears OK, so that will be "
+"used."
+msgstr ""
+"La taula primària GPT és corrupte, però la còpia sembla correcta, per tant "
+"es farà servir aquesta."
+
+#: libparted/labels/gpt.c:870
+#, fuzzy
+msgid ""
+"Both the primary and backup GPT tables are corrupt.  Try making a fresh "
+"table, and using Parted's rescue feature to recover partitions."
+msgstr ""
+"Tant la taula primària GPT com la còpia són corruptes.  Intenteu crear una "
+"taula actualitzada, i fent servir la opció de rescat de Parted per "
+"reconstruïr les particions."
+
+#: libparted/labels/mac.c:181
+#, c-format
+msgid "Invalid signature %x for Mac disk labels."
+msgstr "Signatura invàlida %x per etiquetes de discs Mac."
+
+#: libparted/labels/mac.c:226
+msgid "Partition map has no partition map entry!"
+msgstr "El Mapa de particions no té entrada de mapa de particions!"
+
+#: libparted/labels/mac.c:273
+#, c-format
+msgid "%s is too small for a Mac disk label!"
+msgstr "%s massa petita per una etiqueta d'un disc Mac."
+
+#: libparted/labels/mac.c:532
+#, c-format
+msgid "Partition %d has an invalid signature %x."
+msgstr "La partició %d té una signatura invàlida %x."
+
+#: libparted/labels/mac.c:550
+#, c-format
+msgid "Partition %d has an invalid length of 0 bytes!"
+msgstr "La partició %d té una logitud invàlida de 0 bytes!"
+
+#: libparted/labels/mac.c:580
+#, fuzzy
+msgid "The data region doesn't start at the start of the partition."
+msgstr "La regió de dades no comença al principi de la partició"
+
+#: libparted/labels/mac.c:597
+#, fuzzy
+msgid "The boot region doesn't start at the start of the partition."
+msgstr "La regió d'arrencada no comemça al principi de la partició"
+
+#: libparted/labels/mac.c:611
+msgid "The partition's boot region doesn't occupy the entire partition."
+msgstr "La regió d'arrencada de la partició no ocupa la partició sencera."
+
+#: libparted/labels/mac.c:622
+msgid "The partition's data region doesn't occupy the entire partition."
+msgstr "La regió de dades de la partició no ocupa la partició sencera."
+
+#: libparted/labels/mac.c:675
+#, c-format
+msgid ""
+"Weird block size on device descriptor: %d bytes is not divisible by 512."
+msgstr ""
+"La mida de bloc extrany al dispositiu: %d bytes no és divisible per 512."
+
+#: libparted/labels/mac.c:688
+#, c-format
+msgid ""
+"The driver descriptor says the physical block size is %d bytes, but Linux "
+"says it is %d bytes."
+msgstr ""
+"El controlador diu que el tamany de bloc físic és de %d bytes, però Linux "
+"troba que és de %d bytes."
+
+#: libparted/labels/mac.c:736
+msgid "No valid partition map found."
+msgstr "No s'ha trobat un mapa de particions vàlid."
+
+#: libparted/labels/mac.c:795
+#, fuzzy, c-format
+msgid ""
+"Conflicting partition map entry sizes!  Entry 1 says it is %d, but entry %d "
+"says it is %d!"
+msgstr ""
+"Conflicte de mida de entrada del mapa de particions! La entrada 1 diu que és "
+"%d, però la entrada %d diu que és %d!"
+
+#: libparted/labels/mac.c:822
+#, fuzzy
+msgid "Weird!  There are 2 partitions map entries!"
+msgstr "Estrany - 2 entrades de mapes de particions!"
+
+#: libparted/labels/mac.c:1347
+msgid ""
+"Changing the name of a root or swap partition will prevent Linux from "
+"recognising it as such."
+msgstr ""
+"Canviar el nom d'una partició root o swap impedirà que Linux les reconeixi "
+"com a tals."
+
+#: libparted/labels/mac.c:1443
+#, fuzzy
+msgid "Can't add another partition -- the partition map is too small!"
+msgstr ""
+"No es pot afegir una altra partició - el mapa de particions és massa petit!"
+
+#: libparted/labels/pc98.c:354
+#, fuzzy, c-format
+msgid "Invalid partition table on %s."
+msgstr "Taula de particions invàlida a %s"
+
+#: libparted/labels/pc98.c:406 libparted/labels/pc98.c:484
+#, fuzzy, c-format
+msgid ""
+"Partition %d isn't aligned to cylinder boundaries.  This is still "
+"unsupported."
+msgstr ""
+"La partició %d no està aliniada als límits dels cilindres. Cal afegir suport "
+"per aquesta característica."
+
+#: libparted/labels/pc98.c:791
+msgid "Can't add another partition."
+msgstr "No es pot afegir un altra partició."
+
+#: libparted/labels/rdb.c:162
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:497
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen."
+msgstr ""
+
+#: libparted/labels/rdb.c:581
+#, c-format
+msgid "%s : Loop detected at block %d."
+msgstr ""
+
+#: libparted/labels/rdb.c:600
+#, c-format
+msgid "%s : The %s list seems bad at block %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:689
+#, c-format
+msgid "%s : Failed to list bad blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:697
+#, c-format
+msgid "%s : Failed to list partition blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:705
+#, c-format
+msgid "%s : Failed to list file system blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:713
+#, c-format
+msgid "%s : Failed to list boot blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:740
+#, fuzzy, c-format
+msgid "Failed to write partition block at %d."
+msgstr "No s'ha pogut determinar si la partició està muntada."
+
+#: libparted/labels/rdb.c:1069
+#, fuzzy
+msgid "Unable to allocate a partition number."
+msgstr "S'esperava un múmero de partició."
+
+#: libparted/labels/sun.c:145
+msgid "Corrupted Sun disk label detected."
+msgstr "S'ha detectat una etiqueta Sun corrupte."
+
+#: libparted/labels/sun.c:266
+#, fuzzy, c-format
+msgid ""
+"The disk CHS geometry (%d,%d,%d) reported by the operating system does not "
+"match the geometry stored on the disk label (%d,%d,%d)."
+msgstr ""
+"La geometria del disc CHS (%d,%d,%d) no coincideix amb la geometria "
+"emmagatzemada a la etiqueta del disc (%d,%d,%d)."
+
+#: libparted/labels/sun.c:288
+#, c-format
+msgid "The disk label describes a disk bigger than %s."
+msgstr "La etiqueta del disc descriu un disc més gran de %s."
+
+#: libparted/labels/sun.c:442
+#, c-format
+msgid "The disk has %d cylinders, which is greater than the maximum of 65536."
+msgstr ""
+
+#: libparted/labels/sun.c:737
+msgid ""
+"The Whole Disk partition is the only available one left.  Generally, it is "
+"not a good idea to overwrite this partition with a real one.  Solaris may "
+"not be able to boot without it, and SILO (the sparc boot loader) appreciates "
+"it as well."
+msgstr ""
+"La partició sencera de disk és la única disponible que queda. Generalment, "
+"no és una bona idea sobreescriure aquesta partició amb una d'autèntica. "
+"Solaris pot no ser capaç d'arrencar sense ella i SILO ( el gestor "
+"d'arrencada d'sparc) també la té en compte."
+
+#: libparted/labels/sun.c:752
+msgid "Sun disk label is full."
+msgstr "La etiqueta del disc de Sun està plena."
+
+#: libparted/labels/vtoc.c:163
+#, c-format
+msgid ""
+"%s opening device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:167
+#, c-format
+msgid ""
+"%s seeking device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:171
+#, c-format
+msgid ""
+"%s writing to device '%s' failed,\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:175
+#, c-format
+msgid ""
+"%s reading from device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:179
+#, c-format
+msgid "Fatal error\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:418
+msgid "Could not read VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:424
+msgid "Could not read VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:431
+msgid "Could not read VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:438
+msgid "Could not read VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:445
+msgid "Could not read VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:462
+msgid "Could not write VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:468
+msgid "Could not write VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:475
+msgid "Could not write VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:482
+msgid "Could not write VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:489
+msgid "Could not write VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/libparted.c:296 libparted/libparted.c:316
+msgid "Out of memory."
+msgstr "Sense memòria."
+
+#: libparted/unit.c:139
+msgid "Cannot get unit size for special unit 'COMPACT'."
+msgstr ""
+
+#: libparted/unit.c:386
+#, c-format
+msgid "\"%s\" has invalid syntax for locations."
+msgstr ""
+
+#: libparted/unit.c:394
+#, c-format
+msgid "The maximum head value is %d."
+msgstr ""
+
+#: libparted/unit.c:401
+#, c-format
+msgid "The maximum sector value is %d."
+msgstr ""
+
+#: libparted/unit.c:413 libparted/unit.c:545
+#, c-format
+msgid "The location %s is outside of the device %s."
+msgstr ""
+
+#: libparted/unit.c:527
+msgid "Invalid number."
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:63 libparted/fs/amiga/apfs.c:56
+#: libparted/fs/amiga/asfs.c:70
+#, fuzzy, c-format
+msgid "%s : Failed to allocate partition block\n"
+msgstr "No s'ha pogut determinar si la partició està muntada."
+
+#: libparted/fs/amiga/affs.c:78 libparted/fs/amiga/apfs.c:70
+#: libparted/fs/amiga/asfs.c:86
+#, c-format
+msgid "%s : Failed to allocate block\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:83 libparted/fs/amiga/apfs.c:75
+#, c-format
+msgid "%s : Couldn't read boot block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:99 libparted/fs/amiga/apfs.c:86
+#: libparted/fs/amiga/asfs.c:92 libparted/fs/amiga/asfs.c:106
+#, c-format
+msgid "%s : Couldn't read root block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:72
+#, c-format
+msgid "%s : Failed to allocate id list element\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:189
+#, c-format
+msgid "%s : Couldn't read block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:202
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:212
+#, fuzzy, c-format
+msgid "%s : Couldn't write block %d\n"
+msgstr "%s mentre s'estava escrivint a %s"
+
+#: libparted/fs/amiga/amiga.c:278
+#, c-format
+msgid "%s : Failed to allocate disk_specific rdb block\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:289
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:318
+#, fuzzy, c-format
+msgid "%s : Failed to read partition block %llu\n"
+msgstr "No s'ha pogut determinar si la partició està muntada."
+
+#: libparted/fs/ext2/ext2.c:87 libparted/fs/ext2/ext2.c:112
+msgid "Inconsistent group descriptors!"
+msgstr "Grup de descriptors inconsistent!"
+
+#: libparted/fs/ext2/ext2.c:91 libparted/fs/ext2/ext2.c:116
+#, fuzzy
+msgid "File system full!"
+msgstr "Sistema de fitxers ple!"
+
+#: libparted/fs/ext2/ext2.c:686
+#, fuzzy
+msgid "Invalid superblock.  Are you sure this is an ext2 file system?"
+msgstr "Superblock invàlid. Segur que és un sistema de fitxers ext2?"
+
+#: libparted/fs/ext2/ext2.c:700 libparted/fs/ext2/ext2_resize.c:658
+#, fuzzy
+msgid "File system has errors!  You should run e2fsck."
+msgstr "El sistema de fitxers té errors! Has d'executar e2fsck."
+
+#: libparted/fs/ext2/ext2.c:711
+#, fuzzy
+msgid ""
+"File system was not cleanly unmounted!  You should run e2fsck.  Modifying an "
+"unclean file system could cause severe corruption."
+msgstr ""
+"El sistema de fitxers no ha estat desmuntat correctament! S'ha d'executar "
+"e2fsck."
+
+#: libparted/fs/ext2/ext2.c:731
+#, fuzzy
+msgid "File system has an incompatible feature enabled."
+msgstr "El sistema de fitxers té una característica incompatible activada"
+
+#: libparted/fs/ext2/ext2.c:742
+msgid "Error allocating buffer cache."
+msgstr "Error en la reserva de la memòria cau de la memòria intermèdia"
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:114
+#, fuzzy
+msgid ""
+"Found an inode with a incorrect link count.  Better go run e2fsck first!"
+msgstr ""
+"S'ha trobat un inode amb un número d'enllaços incorrecte. Millor que primer "
+"s'executi e2fsck."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:487
+msgid "Not enough free inodes!"
+msgstr "No hi ha suficients inodes lliures!"
+
+#: libparted/fs/ext2/ext2_resize.c:223
+#, fuzzy
+msgid "File system is too full to remove a group!"
+msgstr "El sistema de fitxers està massa ocupat a suprimir un grup!"
+
+#: libparted/fs/ext2/ext2_resize.c:232
+#, fuzzy
+msgid "File system has too many allocated inodes to remove a group!"
+msgstr "El sistema de fitxers té massa inodes reservats per suprimir un grup!"
+
+#: libparted/fs/ext2/ext2_resize.c:491
+msgid "adding groups"
+msgstr "afegint grups"
+
+#: libparted/fs/ext2/ext2_resize.c:528
+#, fuzzy, c-format
+msgid "Your file system is too full to resize it to %i blocks.  Sorry."
+msgstr ""
+"El sistema de fitxers està massa ocupat en redimensionar-se a %i blocs.Ho "
+"sento."
+
+#: libparted/fs/ext2/ext2_resize.c:538
+#, fuzzy, c-format
+msgid ""
+"Your file system has too many occupied inodes to resize it to %i blocks.  "
+"Sorry."
+msgstr ""
+"El sistema de fitxers té massa inodes ocupats per redimensionar-se a %i "
+"blocs.Ho sento."
+
+#: libparted/fs/ext2/ext2_resize.c:666
+#, fuzzy
+msgid "File system was not cleanly unmounted!  You should run e2fsck."
+msgstr ""
+"El sistema de fitxers no ha estat desmuntat correctament! S'ha d'executar "
+"e2fsck."
+
+#: libparted/fs/ext2/ext2_resize.c:675
+msgid ""
+"The file system has the 'dir_index' feature enabled.  Parted can only resize "
+"the file system if it disables this feature.  You can enable it later by "
+"running 'tune2fs -O dir_index DEVICE' and then 'e2fsck -fD DEVICE'."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:691
+msgid ""
+"A resize operation on this file system will use EXPERIMENTAL code\n"
+"that MAY CORRUPT it (although no one has reported any such damage yet).\n"
+"You should at least backup your data first, and run 'e2fsck -f' afterwards."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_block_relocator.c:198
+#, fuzzy
+msgid "Cross-linked blocks found!  Better go run e2fsck first!"
+msgstr ""
+"S'ha trobat blocs amb enllaços creuats! Millor que primer s'executi e2fsck!"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:537
+#, fuzzy, c-format
+msgid "Block %i has no reference?  Weird."
+msgstr "El bloc %i no té referència? Extrany"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:737
+#, fuzzy, c-format
+msgid "Block %i shouldn't have been marked (%d, %d)!"
+msgstr "El bloc %i no hauria d'estar marcat!"
+
+#: libparted/fs/ext2/interface.c:186
+#, fuzzy
+msgid ""
+"The ext2 file system passed a basic check.  For a more comprehensive check, "
+"use the e2fsck program."
+msgstr ""
+"El sistema de fitxers ext2 ha passat una comprovació bàsica. Per una "
+"comprovació més completa utilitzar el programa e2fsck."
+
+#: libparted/fs/ext2/interface.c:203
+msgid "Sorry, can't move the start of ext2 partitions yet!"
+msgstr "Ho sento, no es pot moure encara el començament de les particions ext2"
+
+#: libparted/fs/ext2/ext2_buffer.c:82
+msgid "Couldn't flush buffer cache!"
+msgstr "No s'ha pogut buidar la memòria cau de la memòria intermèdia!"
+
+#: libparted/fs/ext2/ext2_mkfs.c:162
+msgid "writing per-group metadata"
+msgstr "escribint metadata per-grup"
+
+#: libparted/fs/ext2/ext2_mkfs.c:564
+msgid "File system too small for ext2."
+msgstr "Sistema de fitxers massa petit per ext2."
+
+#: libparted/fs/fat/calc.c:135
+#, fuzzy, c-format
+msgid ""
+"You need %s of free disk space to shrink this partition to this size.  "
+"Currently, only %s is free."
+msgstr ""
+"Es necessiten %dM d'espai lliure per contraure aquesta partició a aquesta "
+"mida (actualment només hi ha %dM lliures)"
+
+#: libparted/fs/fat/context.c:56
+#, c-format
+msgid ""
+"Cluster start delta = %d, which is not a multiple of the cluster size %d."
+msgstr ""
+"El començament delta de cluster = %d, que no és multiple de la mida de "
+"cluster %d. "
+
+#: libparted/fs/fat/fat.c:308
+#, fuzzy, c-format
+msgid "Partition too big/small for a %s file system."
+msgstr "Partició massa gran/petita per un sistema de fitxers %s"
+
+#: libparted/fs/fat/fat.c:474
+msgid ""
+"The FATs don't match.  If you don't know what this means, then select "
+"cancel, run scandisk on the file system, and then come back."
+msgstr ""
+"Les FATs no coincideixen. Si no saps què vols dir aixó, llavors selecciona "
+"cancelar, executa scandisk al sistema de fitxers, i després torna."
+
+#: libparted/fs/fat/fat.c:514
+msgid "There are no possible configurations for this FAT type."
+msgstr "No hi ha configuracions possibles per aquest tipus de FAT."
+
+#: libparted/fs/fat/fat.c:526
+#, c-format
+msgid ""
+"File system doesn't have expected sizes for Windows to like it.  Cluster "
+"size is %dk (%dk expected); number of clusters is %d (%d expected); size of "
+"FATs is %d sectors (%d expected)."
+msgstr ""
+"El sistema de fitxers no té unes mides que agradin a Windows. La mida de "
+"clúster es %dk (hauria de ser de %dk); el número de clústers és de %d "
+"(hauria de ser de %d); la mida de FAT és de %d sectors ( hauria de ser de %d "
+"sectors)."
+
+#: libparted/fs/fat/fat.c:549
+#, c-format
+msgid ""
+"File system is reporting the free space as %d clusters, not %d clusters."
+msgstr ""
+"El sistema de fitxers diu que la mida de l'espai lliure en clústers és de %"
+"d, no de %d clústers."
+
+#: libparted/fs/fat/fat.c:874
+#, fuzzy
+msgid ""
+"GNU Parted was miscompiled: the FAT boot sector should be 512 bytes.  FAT "
+"support will be disabled."
+msgstr ""
+"GNU Parted va ser mal compilat: el sector boot de FAT ha de ser de 512 "
+"bytes. El suport per FAT serà desactivat."
+
+#: libparted/fs/fat/resize.c:159
+#, fuzzy
+msgid ""
+"There's not enough room in the root directory for all of the files.  Either "
+"cancel, or ignore to lose the files."
+msgstr ""
+"No hi ha espai suficient al directori root, per a tots els fitxers. O bé, "
+"cancel·lar, o bé, Ignorar perdent els fitxers. "
+
+#: libparted/fs/fat/resize.c:300
+msgid "Error writing to the root directory."
+msgstr "Error escribint al directori root."
+
+#: libparted/fs/fat/resize.c:489
+#, fuzzy
+msgid "If you leave your file system as FAT16, then you will have no problems."
+msgstr ""
+"Si deixes el sistema de fitxers com FAT16, llavors no tindràs problemes"
+
+#: libparted/fs/fat/resize.c:492
+msgid ""
+"If you convert to FAT16, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual)."
+msgstr ""
+"Si converteixes a FAT16, i MS Windows està instal·lat a aquesta partició, "
+"llavors hauràs de reinstal·lar el carregador d'arrencada de MS Windows. Si "
+"vols fer aixó, hauries de consultar el manual de Parted ( o el manual de la "
+"teva distribució)."
+
+#: libparted/fs/fat/resize.c:500
+msgid ""
+"If you leave your file system as FAT32, then you will not introduce any new "
+"problems."
+msgstr ""
+"Si deixes el teu sistema de fitxers com a FAT32, llavors no tindràs més "
+"problemes."
+
+#: libparted/fs/fat/resize.c:504
+msgid ""
+"If you convert to FAT32, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual).  Also, "
+"converting to FAT32 will make the file system unreadable by MS DOS, MS "
+"Windows 95a, and MS Windows NT."
+msgstr ""
+"Si converteixes a FAT32, i MS Windows està instal·lat a aquesta partició, "
+"llavors hauràs de reinstal·lar el carregador d'arrencada de MS Windows. Si "
+"vols fer aixó, hauries de consultar el manual de Parted ( o el manual de la "
+"teva distribució). També, convertint a FAT32 faràs que MS DOS, MS Windows "
+"95a i Windows NT no puguin llegir el sistema de fitxers "
+
+#: libparted/fs/fat/resize.c:518
+#, c-format
+msgid "%s  %s  %s"
+msgstr "%s  %s  %s"
+
+#: libparted/fs/fat/resize.c:519
+msgid "Would you like to use FAT32?"
+msgstr "Vol fer servir FAT32?"
+
+#: libparted/fs/fat/resize.c:550 libparted/fs/fat/resize.c:566
+#, c-format
+msgid "%s  %s"
+msgstr "%s  %s"
+
+#: libparted/fs/fat/resize.c:551
+msgid ""
+"The file system can only be resized to this size by converting to FAT16."
+msgstr ""
+"El sistema de fitxers només pot ser redimensionada a aquesta mida covertint-"
+"la a FAT16."
+
+#: libparted/fs/fat/resize.c:567
+msgid ""
+"The file system can only be resized to this size by converting to FAT32."
+msgstr ""
+"El sistema de fitxers només pot ser redimensionada a aquesta mida covertint-"
+"la a FAT32."
+
+#: libparted/fs/fat/resize.c:580
+#, fuzzy
+msgid ""
+"GNU Parted cannot resize this partition to this size.  We're working on it!"
+msgstr ""
+"GNU Parted no por redimensionar aquesta partició a aquesta mida. Estem "
+"treballant en aixó!"
+
+#: libparted/fs/fat/bootsector.c:49 libparted/fs/fat/bootsector.c:56
+msgid "File system has an invalid signature for a FAT file system."
+msgstr ""
+"El sistema de fitxers té una signatura invàlida per a un sistema de fitxers "
+"FAT."
+
+#: libparted/fs/fat/bootsector.c:64
+msgid "File system has an invalid sector size for a FAT file system."
+msgstr ""
+"El sistema de fitxers té una mida de sector invàlida per a un sistema de "
+"fitxers FAT."
+
+#: libparted/fs/fat/bootsector.c:71
+#, fuzzy
+msgid "File system has an invalid cluster size for a FAT file system."
+msgstr ""
+"El sistema de fitxers té una mida de sector invàlida per a un sistema de "
+"fitxers FAT."
+
+#: libparted/fs/fat/bootsector.c:78
+#, fuzzy
+msgid ""
+"File system has an invalid number of reserved sectors for a FAT file system."
+msgstr ""
+"El sistema de fitxers té un número de sectors reservats per a un sistema de "
+"fitxers FAT."
+
+#: libparted/fs/fat/bootsector.c:85
+#, fuzzy
+msgid "File system has an invalid number of FATs."
+msgstr "El sistema de fitxers té un número de FATS invàlid."
+
+#: libparted/fs/fat/bootsector.c:139
+#, c-format
+msgid ""
+"This file system has a logical sector size of %d.  GNU Parted is known not "
+"to work properly with sector sizes other than 512 bytes."
+msgstr ""
+"Aquest sistema de fitxers té una mida de sector lògic de %d. GNU Parted no "
+"treballarà correctament amb mides de sectors diferents de 512 bytes."
+
+#: libparted/fs/fat/bootsector.c:164
+#, c-format
+msgid ""
+"The file system's CHS geometry is (%d, %d, %d), which is invalid.  The "
+"partition table's CHS geometry is (%d, %d, %d).  If you select Ignore, the "
+"file system's CHS geometry will be left unchanged.  If you select Fix, the "
+"file system's CHS geometry will be set to match the partition table's CHS "
+"geometry."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:213
+msgid "FAT boot sector says logical sector size is 0.  This is weird. "
+msgstr ""
+"El sector boot de la FAT diu que la mida del sector lògic és 0. Això és "
+"extrany."
+
+#: libparted/fs/fat/bootsector.c:219
+msgid "FAT boot sector says there are no FAT tables.  This is weird. "
+msgstr ""
+"El sector boot de la FAT diu que no hi ha taules FAT.  Això és extrany."
+
+#: libparted/fs/fat/bootsector.c:225
+msgid "FAT boot sector says clusters are 0 sectors.  This is weird. "
+msgstr ""
+"El sector boot de la FAT diu que els clústers tenen 0 sectors. Això és "
+"extrany."
+
+#: libparted/fs/fat/bootsector.c:235
+#, fuzzy
+msgid "File system is FAT12, which is unsupported."
+msgstr "El sistema de fitxers és FAT12, que no està suportat."
+
+#: libparted/fs/fat/bootsector.c:411
+#, c-format
+msgid ""
+"The information sector has the wrong signature (%x).  Select cancel for now, "
+"and send in a bug report.  If you're desperate, it's probably safe to ignore."
+msgstr ""
+"El sector d'informació té una signatura incorrecta (%x).  Selecciona "
+"cancel·la ara mateix, i envia-ns un informe.  Si estas desesperat, el més "
+"segur és Ignorar."
+
+#: libparted/fs/fat/count.c:152
+#, c-format
+msgid "Bad directory entry for %s: first cluster is the end of file marker."
+msgstr ""
+"Entrada de directori incorrecta per %s: el primer clúster és el final de la "
+"marca de fitxer."
+
+#: libparted/fs/fat/count.c:165
+#, c-format
+msgid ""
+"Bad FAT: unterminated chain for %s.  You should run dosfsck or scandisk."
+msgstr ""
+"FAT incorrecta: cadena sense acabar per %s. Has de executar dosfsck o "
+"scandisk."
+
+#: libparted/fs/fat/count.c:174
+#, fuzzy, c-format
+msgid ""
+"Bad FAT: cluster %d outside file system in chain for %s.  You should run "
+"dosfsck or scandisk."
+msgstr ""
+"FAT incorrecta: clúster %d fora del sistema de fitxers a la cadena per %s. "
+"Has de executar dosfsck o scandisk."
+
+#: libparted/fs/fat/count.c:184
+#, c-format
+msgid ""
+"Bad FAT: cluster %d is cross-linked for %s.  You should run dosfsck or "
+"scandisk."
+msgstr ""
+"FAT incorrecta: clúster %d té un enllaç creuat per %s. Has d'executar "
+"dosfsck o scandisk."
+
+#: libparted/fs/fat/count.c:203
+#, fuzzy, c-format
+msgid "%s is %dk, but it has %d clusters (%dk)."
+msgstr "%s és %dk, però té %d clústers (%dk)."
+
+#: libparted/fs/fat/count.c:266
+#, c-format
+msgid ""
+"The file %s is marked as a system file.  This means moving it could cause "
+"some programs to stop working."
+msgstr ""
+"El fitxer %s està marcat com un sistema de fitxers.  Això vol dir que si el "
+"moveu por ocasionar que alguns programes no funcionin."
+
+#: libparted/fs/fat/table.c:137
+#, c-format
+msgid ""
+"FAT %d media %x doesn't match the boot sector's media %x.  You should "
+"probably run scandisk."
+msgstr ""
+"La FAT %d del medi %x no coincideix amb sector boot del medi %x.  Hauries "
+"d'executar scandisk."
+
+#: libparted/fs/fat/table.c:269
+#, fuzzy, c-format
+msgid "fat_table_set: cluster %ld outside file system"
+msgstr "fat_table_set: clúster %ld fora del sistema de fitxers"
+
+#: libparted/fs/fat/table.c:301
+#, fuzzy, c-format
+msgid "fat_table_get: cluster %ld outside file system"
+msgstr "fat_table_get: clúster %ld fora del sistema de fitxers"
+
+#: libparted/fs/fat/table.c:343
+msgid "fat_table_alloc_cluster: no free clusters"
+msgstr "fat_table_alloc_cluster: no hi ha clústers lliures"
+
+#: libparted/fs/linux_swap/linux_swap.c:275
+#, fuzzy, c-format
+msgid "Unrecognised old style linux swap signature '%10s'."
+msgstr "Signatura de linux swap '%10s' no reconeguda."
+
+#: libparted/fs/linux_swap/linux_swap.c:318
+#, fuzzy, c-format
+msgid "Unrecognised new style linux swap signature '%10s'."
+msgstr "Signatura de linux swap '%10s' no reconeguda."
+
+#: libparted/fs/linux_swap/linux_swap.c:358
+#, fuzzy, c-format
+msgid "Unrecognised swsusp linux swap signature '%9s'."
+msgstr "Signatura de linux swap '%10s' no reconeguda."
+
+#: libparted/fs/linux_swap/linux_swap.c:434
+msgid "Too many bad pages."
+msgstr "Massa pàgines incorrectes."
+
+#: libparted/fs/hfs/advfs.c:121 libparted/fs/hfs/advfs_plus.c:122
+#: libparted/fs/hfs/reloc.c:414 libparted/fs/hfs/reloc.c:508
+#: libparted/fs/hfs/reloc_plus.c:539 libparted/fs/hfs/reloc_plus.c:658
+#: libparted/fs/hfs/reloc_plus.c:772
+msgid "The file system contains errors."
+msgstr ""
+
+#: libparted/fs/hfs/advfs_plus.c:287
+msgid "Bad blocks could not be read."
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:137
+#, c-format
+msgid ""
+"Trying to register an extent starting at block 0x%X, but another one already "
+"exists at this position.  You should check the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:214
+#, c-format
+msgid ""
+"Trying to move an extent from block Ox%X to block Ox%X, but another one "
+"already exists at this position.  This should not happen!"
+msgstr ""
+
+#: libparted/fs/hfs/file.c:143
+#, c-format
+msgid "Could not update the extent cache for HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:180
+#, c-format
+msgid "Trying to read HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:190 libparted/fs/hfs/file.c:220
+#, c-format
+msgid "Could not find sector %lli of HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:210
+#, c-format
+msgid "Trying to write HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:157
+#, c-format
+msgid "Could not update the extent cache for HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:202
+#, c-format
+msgid "Trying to read HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:213 libparted/fs/hfs/file_plus.c:256
+#, c-format
+msgid "Could not find sector %lli of HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:245
+#, c-format
+msgid "Trying to write HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:232
+msgid "Sorry, HFS cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:262 libparted/fs/hfs/hfs.c:641
+msgid "Data relocation has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:281
+msgid "Data relocation left some data in the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:320
+#, fuzzy
+msgid "writing HFS Master Directory Block"
+msgstr "Error escribint al directori root."
+
+#: libparted/fs/hfs/hfs.c:468
+msgid "No valid HFS[+X] signature has been found while opening."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:478
+#, c-format
+msgid "Version %d of HFS+ isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:489
+#, c-format
+msgid "Version %d of HFSX isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:672
+msgid "Data relocation left some data at the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:720
+#, fuzzy
+msgid "Error while writing the allocation file."
+msgstr "Error escribint al directori root."
+
+#: libparted/fs/hfs/hfs.c:735
+msgid "Error while writing the compatibility part of the allocation file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:750
+msgid "writing HFS+ Volume Header"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:850
+msgid "An error occurred while looking for the mandatory bad blocks file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:904
+msgid ""
+"It seems there is an error in the HFS wrapper: the bad blocks file doesn't "
+"contain the embedded HFS+ volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:940
+msgid "Sorry, HFS+ cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:975
+msgid "shrinking embedded HFS+ volume"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:991
+msgid "Resizing the HFS+ volume has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:998
+#, fuzzy
+msgid "shrinking HFS wrapper"
+msgstr "encongint"
+
+#: libparted/fs/hfs/hfs.c:1007
+msgid "Updating the HFS wrapper has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:1109 libparted/fs/hfs/hfs.c:1194
+#, c-format
+msgid ""
+"This is not a real %s check.  This is going to extract special low level "
+"files for debugging purposes."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:155
+msgid "Bad block list header checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:168
+#, c-format
+msgid ""
+"Invalid size of a transaction block while replaying the journal (%i bytes)."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:260
+msgid ""
+"Journal stored outside of the volume are not supported.  Try to desactivate "
+"the journal and run Parted again."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:271
+#, fuzzy
+msgid "Journal offset or size is not multiple of the sector size."
+msgstr ""
+"El començament delta de cluster = %d, que no és multiple de la mida de "
+"cluster %d. "
+
+#: libparted/fs/hfs/journal.c:292
+msgid "Incorrect magic values in the journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:302
+msgid "Journal size mismatch between journal info block and journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:314
+#, fuzzy
+msgid "Some header fields are not multiple of the sector size."
+msgstr ""
+"El començament delta de cluster = %d, que no és multiple de la mida de "
+"cluster %d. "
+
+#: libparted/fs/hfs/journal.c:323
+msgid ""
+"The sector size stored in the journal is not 512 bytes.  Parted only "
+"supports 512 bytes length sectors."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:335
+msgid "Bad journal checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:353
+msgid ""
+"The journal is not empty.  Parted must replay the transactions before "
+"opening the file system.  This will modify the file system."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:381
+msgid ""
+"The volume header or the master directory block has changed while replaying "
+"the journal.  You should restart Parted."
+msgstr ""
+
+#: libparted/fs/hfs/probe.c:51
+#, c-format
+msgid ""
+"Parted can't use HFS file systems on disks with a sector size not equal to %"
+"d bytes."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:151 libparted/fs/hfs/reloc_plus.c:155
+msgid "An extent has not been relocated."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:251 libparted/fs/hfs/reloc_plus.c:307
+msgid ""
+"A reference to an extent comes from a place it should not.  You should check "
+"the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:381
+msgid "This HFS volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:475
+msgid "This HFS volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:517 libparted/fs/hfs/reloc_plus.c:668
+msgid ""
+"The extents overflow file should not contain its own extents!  You should "
+"check the file system."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:574 libparted/fs/hfs/reloc_plus.c:847
+#, fuzzy
+msgid "Could not cache the file system in memory."
+msgstr "No s'ha pogut detectar el sistema de fitxers."
+
+#: libparted/fs/hfs/reloc.c:635 libparted/fs/hfs/reloc_plus.c:908
+msgid "Bad blocks list could not be loaded."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:649 libparted/fs/hfs/reloc_plus.c:924
+msgid "An error occurred during extent relocation."
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:495
+msgid "This HFS+ volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:619
+msgid "This HFS+ volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: parted/parted.c:94
+msgid "displays this help message"
+msgstr "mostra aquest missatge d'ajuda"
+
+#: parted/parted.c:95
+msgid "lists partition layout on all block devices"
+msgstr ""
+
+#: parted/parted.c:96
+msgid "displays machine parseable output"
+msgstr ""
+
+#: parted/parted.c:97
+msgid "never prompts for user intervention"
+msgstr "mai pregunta a l'usuari"
+
+#: parted/parted.c:98
+msgid "displays the version"
+msgstr "mostra la versió"
+
+#: parted/parted.c:111
+#, fuzzy
+msgid ""
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"
+msgstr ""
+"MINOR és el número de partició utilitzada per Linux. A etiquetes de disk "
+"msdos, les particions primàries són numeradas de 1 a 4, i les particions "
+"lògiques de la 5 en davant.\n"
+
+#: parted/parted.c:114
+msgid "LABEL-TYPE is one of: "
+msgstr "TIPUS-ETI és una d'aquestes: "
+
+#: parted/parted.c:115
+msgid "FLAG is one of: "
+msgstr "FLAG és una d'aquests:"
+
+#: parted/parted.c:116
+#, fuzzy
+msgid "UNIT is one of: "
+msgstr "FLAG és una d'aquests:"
+
+#: parted/parted.c:117
+msgid "PART-TYPE is one of: primary, logical, extended\n"
+msgstr "TIPUS-PART és una d'aquestes: primària, lògica, extesa\n"
+
+#: parted/parted.c:119
+msgid "FS-TYPE is one of: "
+msgstr "TIPUS-SF és un d'aquests: "
+
+#: parted/parted.c:120
+msgid ""
+"START and END are disk locations, such as 4GB or 10%.  Negative values count "
+"from the end of the disk.  For example, -1s specifies exactly the last "
+"sector.\n"
+msgstr ""
+
+#: parted/parted.c:123
+msgid "STATE is one of: on, off\n"
+msgstr "ESTAT és un d'aquests: on, off\n"
+
+#: parted/parted.c:124
+msgid "DEVICE is usually /dev/hda or /dev/sda\n"
+msgstr "DISPOS és, normalment, /dev/hda o /dev/sda\n"
+
+#: parted/parted.c:125
+msgid "NAME is any word you want\n"
+msgstr "NOM és qualsevol paraula que vulguis\n"
+
+#: parted/parted.c:126
+msgid "The partition must have one of the following FS-TYPEs: "
+msgstr ""
+
+#: parted/parted.c:130
+#, fuzzy
+msgid ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+msgstr ""
+"Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.\n"
+"Aquest programa és programari obert sota Llicència Pública General GNU.\n"
+"\n"
+"Aquest programa es distribueix en la esperança que sigui útil, però SENSE "
+"CAP GARANTIA; sense la garantia implícita de COMERCIALITZACIO ni que "
+"CUMPLEIXI CAP PROPOSIT PARTICULAR.  Per més detalls, vegeu la Llicència "
+"General Pública GNU.\n"
+"\n"
+
+#: parted/parted.c:176
+#, c-format
+msgid "%0.f%%\t(time left %.2d:%.2d)"
+msgstr "%0.f%%\t(temps que queda %.2d:%.2d)"
+
+#: parted/parted.c:195
+#, c-format
+msgid ""
+"Partition %s is being used. You must unmount it before you modify it with "
+"Parted."
+msgstr ""
+
+#: parted/parted.c:211
+#, c-format
+msgid "Partition(s) on %s are being used."
+msgstr "La(s) partició(ns) a %s s'està utilitzant."
+
+#: parted/parted.c:223
+msgid ""
+"The existing file system will be destroyed and all data on the partition "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:235
+#, c-format
+msgid ""
+"The existing disk label on %s will be destroyed and all data on this disk "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:458 parted/parted.c:652 parted/parted.c:1044
+#: parted/parted.c:1128 parted/parted.c:1771 parted/parted.c:1852
+#: parted/parted.c:1900
+msgid "Partition number?"
+msgstr "Número de partició?"
+
+#: parted/parted.c:500
+msgid "Source device?"
+msgstr "Dispositiu d'origen?"
+
+#: parted/parted.c:504
+msgid "Source partition number?"
+msgstr "Número de partició d'origen?"
+
+#: parted/parted.c:509
+#, fuzzy
+msgid "Can't copy an extended partition."
+msgstr "No es poden copiar particions exteses."
+
+#: parted/parted.c:515
+msgid "Destination partition number?"
+msgstr "Número de partició destí?"
+
+#: parted/parted.c:615
+msgid "New disk label type?"
+msgstr "Nou tipus d'etiqueta?"
+
+#: parted/parted.c:656
+msgid "File system?"
+msgstr "Sistema de fitxers?"
+
+#: parted/parted.c:707 parted/parted.c:878
+msgid "Partition type?"
+msgstr "Tipus de partició?"
+
+#: parted/parted.c:714 parted/parted.c:885 parted/parted.c:1131
+msgid "Partition name?"
+msgstr "Nom de la partició?"
+
+#: parted/parted.c:722 parted/parted.c:895
+msgid "File system type?"
+msgstr "Sistema de fitxers?"
+
+#: parted/parted.c:729 parted/parted.c:897 parted/parted.c:1059
+#: parted/parted.c:1725 parted/parted.c:1780
+msgid "Start?"
+msgstr "Inici?"
+
+#: parted/parted.c:731 parted/parted.c:900 parted/parted.c:1062
+#: parted/parted.c:1727 parted/parted.c:1782
+msgid "End?"
+msgstr "Fi?"
+
+#: parted/parted.c:769 parted/parted.c:938
+#, c-format
+msgid ""
+"You requested a partition from %s to %s.\n"
+"The closest location we can manage is %s to %s.  Is this still acceptable to "
+"you?"
+msgstr ""
+
+#: parted/parted.c:890
+#, fuzzy
+msgid "An extended partition cannot hold a file system.  Did you want mkpart?"
+msgstr ""
+"Les particions exteses no poden tenir sistemes de fitxers.  Voleu executar "
+"mkpart?"
+
+#: parted/parted.c:1050
+#, fuzzy
+msgid "Can't move an extended partition."
+msgstr "No es poden moure particions exteses"
+
+#: parted/parted.c:1079
+msgid "Can't move a partition onto itself.  Try using resize, perhaps?"
+msgstr ""
+"No es por moure una partició a ella mateixa.  Vols redimensionar-la, potser?"
+
+#: parted/parted.c:1227
+#, c-format
+msgid "Minor: %d\n"
+msgstr "Minor: %d\n"
+
+#: parted/parted.c:1228
+#, fuzzy, c-format
+msgid "Flags: %s\n"
+msgstr "Flags:"
+
+#: parted/parted.c:1229
+#, c-format
+msgid "File System: %s\n"
+msgstr "Sistema de fitxers:%s\n"
+
+#: parted/parted.c:1230
+#, fuzzy
+msgid "Size:         "
+msgstr "Mida:         %10.3fMb (%d%%)\n"
+
+#: parted/parted.c:1235
+#, fuzzy
+msgid "Minimum size: "
+msgstr "Mida mínima: %10.3fMb (%d%%)\n"
+
+#: parted/parted.c:1238
+#, fuzzy
+msgid "Maximum size: "
+msgstr "Mida màxima: %10.3fMb (%d%%)\n"
+
+#: parted/parted.c:1362
+#, c-format
+msgid "Model: %s (%s)\n"
+msgstr ""
+
+#: parted/parted.c:1364
+#, fuzzy, c-format
+msgid "Disk %s: %s\n"
+msgstr "%s  %s  %s"
+
+#: parted/parted.c:1365
+#, c-format
+msgid "Sector size (logical/physical): %lldB/%lldB\n"
+msgstr ""
+
+#: parted/parted.c:1383
+#, c-format
+msgid "BIOS cylinder,head,sector geometry: %d,%d,%d.  Each cylinder is %s.\n"
+msgstr ""
+
+#: parted/parted.c:1392
+#, fuzzy, c-format
+msgid "Partition Table: %s\n"
+msgstr "Nom de la partició?"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Number"
+msgstr ""
+
+#: parted/parted.c:1406 parted/parted.c:1409
+#, fuzzy
+msgid "Start"
+msgstr "Inici?"
+
+#: parted/parted.c:1407 parted/parted.c:1410
+#, fuzzy
+msgid "End"
+msgstr "Fi?"
+
+#: parted/parted.c:1410
+#, fuzzy
+msgid "Size"
+msgstr "resize"
+
+#: parted/parted.c:1414
+msgid "Type"
+msgstr ""
+
+#: parted/parted.c:1416
+#, fuzzy
+msgid "File system"
+msgstr "Sistema de fitxers?"
+
+#: parted/parted.c:1419
+#, fuzzy
+msgid "Name"
+msgstr "name"
+
+#: parted/parted.c:1421
+msgid "Flags"
+msgstr "Flags"
+
+#: parted/parted.c:1477
+msgid "Free Space"
+msgstr ""
+
+#: parted/parted.c:1624
+#, fuzzy, c-format
+msgid ""
+"A %s %s partition was found at %s -> %s.  Do you want to add it to the "
+"partition table?"
+msgstr ""
+"Una partició %s %s ha estat trobada a %.3fMb -> %.3fMb.  Vols afegir-la a la "
+"taula de particions?"
+
+#: parted/parted.c:1663
+#, fuzzy
+msgid "searching for file systems"
+msgstr "sistema de fitxers creixent"
+
+#: parted/parted.c:1877
+msgid "New device?"
+msgstr "Nou dispositiu?"
+
+#: parted/parted.c:1902
+#, fuzzy
+msgid "Flag to Invert?"
+msgstr "Flag a canviar?"
+
+#: parted/parted.c:1907
+msgid "New state?"
+msgstr "Nou estat?"
+
+#: parted/parted.c:1944
+msgid "Unit?"
+msgstr ""
+
+#: parted/parted.c:2093
+msgid "check"
+msgstr "comprova"
+
+#: parted/parted.c:2096
+#, fuzzy
+msgid ""
+"check NUMBER                             do a simple check on the file system"
+msgstr ""
+"comprova MINOR                 fa una simple comprovació al sistema de "
+"fitxers"
+
+#: parted/parted.c:2102
+msgid "cp"
+msgstr "cp"
+
+#: parted/parted.c:2105
+#, fuzzy
+msgid ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+"partition"
+msgstr ""
+"cp [DESDE-DISPOS] DE-MINOR A-MINOR      copia un sistema de fitxers a una "
+"altra partició"
+
+#: parted/parted.c:2111
+msgid "help"
+msgstr "ajuda"
+
+#: parted/parted.c:2114
+#, fuzzy
+msgid ""
+"help [COMMAND]                           print general help, or help on "
+"COMMAND"
+msgstr "Ajuda [ORDRE]                 imprimeix ajuda general, o ajuda d'ORDRE"
+
+#: parted/parted.c:2120
+msgid "mklabel"
+msgstr "mklabel"
+
+#: parted/parted.c:2120
+#, fuzzy
+msgid "mktable"
+msgstr "mklabel"
+
+#: parted/parted.c:2123
+#, fuzzy
+msgid ""
+"mklabel,mktable LABEL-TYPE               create a new disklabel (partition "
+"table)"
+msgstr ""
+"mklabel TIPUS-ETI        crea una nova etiqueta de disc (taula de partició)"
+
+#: parted/parted.c:2129
+msgid "mkfs"
+msgstr "mkfs"
+
+#: parted/parted.c:2132
+#, fuzzy
+msgid ""
+"mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on "
+"partititon NUMBER"
+msgstr ""
+"mkfs MINOR TIPUS-SF      crea un sistema de fitxers TIPUS-SF a la partició "
+"MINOR"
+
+#: parted/parted.c:2138
+msgid "mkpart"
+msgstr "mkpart"
+
+#: parted/parted.c:2141
+#, fuzzy
+msgid "mkpart PART-TYPE [FS-TYPE] START END     make a partition"
+msgstr "mkpart TIPUS-PART [TIPUS-SF] INICI FI      crea una partició"
+
+#: parted/parted.c:2147
+#, fuzzy
+msgid ""
+"'mkpart' makes a partition without creating a new file system on the "
+"partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"
+msgstr ""
+"mkpart crea una partició sense crear cap sistema de fitxers a la partició. "
+"TIPUS-SF ha de ser especificat per assignar una ID de partició.\n"
+
+#: parted/parted.c:2152
+msgid "mkpartfs"
+msgstr "mkpartfs"
+
+#: parted/parted.c:2155
+#, fuzzy
+msgid ""
+"mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system"
+msgstr ""
+"mkpartfs TIPUS-PART TIPUS-SF INICI FI      crea una partició amb un sistema "
+"de fitxers"
+
+#: parted/parted.c:2161
+msgid "move"
+msgstr "move"
+
+#: parted/parted.c:2164
+#, fuzzy
+msgid "move NUMBER START END                    move partition NUMBER"
+msgstr "move MINOR INICI FI          mou la partició MINOR"
+
+#: parted/parted.c:2169
+msgid "name"
+msgstr "name"
+
+#: parted/parted.c:2172
+#, fuzzy
+msgid "name NUMBER NAME                         name partition NUMBER as NAME"
+msgstr "name MINOR NOM               anomena la partició MINOR NOM"
+
+#: parted/parted.c:2177
+msgid "print"
+msgstr "print"
+
+#: parted/parted.c:2180
+msgid ""
+"print [devices|free|list,all|NUMBER]     display the partition table, "
+"available devices, free space, all found partitions, or a particular "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2185
+msgid ""
+"Without arguments, 'print' displays the entire partition table. However with "
+"the following arguments it performs various other actions.\n"
+msgstr ""
+
+#: parted/parted.c:2187
+msgid "  devices   : display all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2188
+msgid ""
+"  free      : display information about free unpartitioned space on the "
+"current block device\n"
+msgstr ""
+
+#: parted/parted.c:2190
+#, fuzzy
+msgid ""
+"  list, all : display the partition tables of all active block devices\n"
+msgstr ""
+"print[MINOR]                  mostra la taula de particions; o una partició"
+
+#: parted/parted.c:2191
+msgid ""
+"  NUMBER    : display more detailed information about this particular "
+"partition\n"
+msgstr ""
+
+#: parted/parted.c:2196
+msgid "quit"
+msgstr "quit"
+
+#: parted/parted.c:2199
+#, fuzzy
+msgid "quit                                     exit program"
+msgstr "quit                          surt del programa"
+
+#: parted/parted.c:2204
+msgid "rescue"
+msgstr "rescatar"
+
+#: parted/parted.c:2207
+#, fuzzy
+msgid ""
+"rescue START END                         rescue a lost partition near START "
+"and END"
+msgstr "rescatar INICI FI        rescata particions perdudes entre INICI i FI"
+
+#: parted/parted.c:2213
+msgid "resize"
+msgstr "resize"
+
+#: parted/parted.c:2216
+#, fuzzy
+msgid ""
+"resize NUMBER START END                  resize partition NUMBER and its "
+"file system"
+msgstr "rescatar INICI FI        rescata particions perdudes entre INICI i FI"
+
+#: parted/parted.c:2224
+msgid "rm"
+msgstr "rm"
+
+#: parted/parted.c:2227
+#, fuzzy
+msgid "rm NUMBER                                delete partition NUMBER"
+msgstr "rm MINOR                      suprimeix la partició MINOR"
+
+#: parted/parted.c:2232
+msgid "select"
+msgstr "select"
+
+#: parted/parted.c:2235
+#, fuzzy
+msgid "select DEVICE                            choose the device to edit"
+msgstr "select DISPOSITIU                 escollir el dispositiu a editar"
+
+#: parted/parted.c:2240
+msgid "set"
+msgstr "set"
+
+#: parted/parted.c:2243
+#, fuzzy
+msgid ""
+"set NUMBER FLAG STATE                    change the FLAG on partition NUMBER"
+msgstr "set MINOR FLAG ESTAT          canvia un flag a la partició MINOR"
+
+#: parted/parted.c:2249
+msgid "toggle"
+msgstr ""
+
+#: parted/parted.c:2252
+msgid ""
+"toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+"partition NUMBER"
+msgstr ""
+
+#: parted/parted.c:2258
+#, fuzzy
+msgid "unit"
+msgstr "quit"
+
+#: parted/parted.c:2261
+#, fuzzy
+msgid "unit UNIT                                set the default unit to UNIT"
+msgstr "quit                          surt del programa"
+
+#: parted/parted.c:2266
+msgid "version"
+msgstr ""
+
+#: parted/parted.c:2269
+msgid ""
+"version                                  display the version number and "
+"copyright information of GNU Parted"
+msgstr ""
+
+#: parted/parted.c:2273
+msgid ""
+"'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"
+msgstr ""
+
+#: parted/parted.c:2335
+#, c-format
+msgid "Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"
+msgstr ""
+
+#: parted/parted.c:2379
+msgid "No device found"
+msgstr "No s'ha trobat el dispositiu"
+
+#: parted/parted.c:2412
+msgid "WARNING: You are not superuser.  Watch out for permissions."
+msgstr ""
+
+#: parted/parted.c:2450
+#, fuzzy
+msgid "You may need to update /etc/fstab.\n"
+msgstr "No us oblideu d'actualitzar /etc/fstab si cal.\n"
+
+#: parted/ui.c:160
+msgid "Welcome to GNU Parted! Type 'help' to view a list of commands.\n"
+msgstr ""
+
+#: parted/ui.c:163
+#, fuzzy
+msgid ""
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run "
+"in\n"
+"interactive mode.\n"
+msgstr ""
+"Ús: parted [OPCIÓ]... [DISPOSITIU [ORDRE [PARAMETRES]...]...]\n"
+"Aplica les ORDRES amb PARAMETRES al DISPOSITIU.  Si no s'especifiquen "
+"ORDRES, s'executa en\n"
+"mode interactiu.\n"
+
+#: parted/ui.c:168
+#, c-format
+msgid ""
+"\n"
+"\n"
+"You found a bug in GNU Parted! Here's what you have to do:\n"
+"\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n"
+"\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Please check this version prior to bug reporting.\n"
+"\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"for further information.\n"
+"\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n"
+msgstr ""
+
+#: parted/ui.c:284
+msgid ""
+"\n"
+"Command History:\n"
+msgstr ""
+
+#: parted/ui.c:366
+msgid ""
+"\n"
+"Error: SEGV_MAPERR (Address not mapped to object)\n"
+msgstr ""
+
+#: parted/ui.c:372
+msgid ""
+"\n"
+"Error: SEGV_ACCERR (Invalid permissions for mapped object)\n"
+msgstr ""
+
+#: parted/ui.c:377
+msgid ""
+"\n"
+"Error: A general SIGSEGV signal was encountered.\n"
+msgstr ""
+
+#: parted/ui.c:410
+msgid ""
+"\n"
+"Error: FPE_INTDIV (Integer: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:415
+msgid ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+msgstr ""
+
+#: parted/ui.c:420
+msgid ""
+"\n"
+"Error: FPE_FLTDIV (Float: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:425
+msgid ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+msgstr ""
+
+#: parted/ui.c:430
+msgid ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+msgstr ""
+
+#: parted/ui.c:435
+msgid ""
+"\n"
+"Error: FPE_FLTRES (Float: inexact result)"
+msgstr ""
+
+#: parted/ui.c:440
+msgid ""
+"\n"
+"Error: FPE_FLTINV (Float: invalid operation)"
+msgstr ""
+
+#: parted/ui.c:445
+msgid ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript out of range)"
+msgstr ""
+
+#: parted/ui.c:450
+msgid ""
+"\n"
+"Error: A general SIGFPE signal was encountered."
+msgstr ""
+
+#: parted/ui.c:483
+msgid ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+msgstr ""
+
+#: parted/ui.c:488
+msgid ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+msgstr ""
+
+#: parted/ui.c:493
+msgid ""
+"\n"
+"Error: ILL_ILLADR (Illegal addressing mode)"
+msgstr ""
+
+#: parted/ui.c:498
+msgid ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+msgstr ""
+
+#: parted/ui.c:503
+msgid ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+msgstr ""
+
+#: parted/ui.c:508
+msgid ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+msgstr ""
+
+#: parted/ui.c:513
+msgid ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+msgstr ""
+
+#: parted/ui.c:518
+msgid ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+msgstr ""
+
+#: parted/ui.c:523
+msgid ""
+"\n"
+"Error: A general SIGILL signal was encountered."
+msgstr ""
+
+#: parted/ui.c:1024
+msgid "Expecting a partition number."
+msgstr "S'esperava un múmero de partició."
+
+#: parted/ui.c:1033
+msgid "Partition doesn't exist."
+msgstr "La partició no existeix."
+
+#: parted/ui.c:1053
+msgid "Expecting a file system type."
+msgstr "S'esperava un tipus de sistema de fitxers."
+
+#: parted/ui.c:1060
+#, c-format
+msgid "Unknown file system type \"%s\"."
+msgstr "Tipus de sistema de fitxers desconegut \"%s\"."
+
+#: parted/ui.c:1080
+msgid "Expecting a disk label type."
+msgstr "S'esperava un tipus de etiqueta de dics."
+
+#: parted/ui.c:1178
+msgid "Can't create any more partitions."
+msgstr "No es pot crear cap més partició."
+
+#: parted/ui.c:1188
+msgid "Expecting a partition type."
+msgstr "S'esperava un tipus de partició."
+
+#: parted/ui.c:1315
+msgid "on"
+msgstr "on"
+
+#: parted/ui.c:1316
+msgid "off"
+msgstr "off"
+
+#: parted/ui.c:1431
+msgid "OPTIONs:"
+msgstr "OPCIONS:"
+
+#: parted/ui.c:1436
+msgid "COMMANDs:"
+msgstr "ORDRES:"
+
+#: parted/ui.c:1445
+#, c-format
+msgid "Using %s\n"
+msgstr "Utilitzant %s\n"
+
+#: parted/ui.c:1519
+msgid "This command does not make sense in non-interactive mode.\n"
+msgstr ""
+
+#~ msgid "where necessary, prompts for user intervention"
+#~ msgstr "quan és necessari, pregunta a l'usuari"
+
+#~ msgid ""
+#~ "The sector size on %s is %d bytes.  Parted is known not to work properly "
+#~ "with drives with sector sizes other than %d bytes"
+#~ msgstr ""
+#~ "La mida del sector a %s és de %d bytes. Parted no funcionarà correctament "
+#~ "amb discs d'una mida de sector diferent de %d bytes"
+
+#~ msgid "Could not read geometry of %s - %s."
+#~ msgstr "No s'ha pogut llegir la geometria de %s - %s"
+
+#~ msgid "Device %s has dodgey geometry."
+#~ msgstr "El dispositiu %s té una geometria incorrecte."
+
+#~ msgid "IDE"
+#~ msgstr "IDE"
+
+#~ msgid "SCSI"
+#~ msgstr "SCSI"
+
+#~ msgid "Device %s is neither a SCSI nor IDE drive."
+#~ msgstr "El dispositiu %s no és ni SCSI ni IDE"
+
+#~ msgid "Error reading %s (%s) to determine if partition is mounted."
+#~ msgstr "Error al llegir %s (%s) per determinar si la partició està muntada."
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  However, the most likely reason is that Linux "
+#~ "detected the BIOS geometry for %s incorrectly.  GNU Parted suspects the "
+#~ "real geometry should be %d/%d/%d (not %d/%d/%d).  You should check with "
+#~ "your BIOS first, as this may not be correct.  You can inform Linux by "
+#~ "adding the parameter %s=%d,%d,%d to the command line.  See the LILO or "
+#~ "GRUB documentation for more information.  If you think Parted's suggested "
+#~ "geometry is correct, you may select Ignore to continue (and fix Linux "
+#~ "later).  Otherwise, select Cancel (and fix Linux and/or the BIOS now)."
+#~ msgstr ""
+#~ "La taula de particions a %s és inconsistent.  Hi ha diverses raons per "
+#~ "les quals es pot donar aquest error.  Però la més comú sol ser que Linux "
+#~ "ha detectat la geometria de la BIOS de %s incorrectament. GNU Parted creu "
+#~ "que la autèntica geometria ha de ser %d/%d/%d ( i no %d/%d/%d). Primer "
+#~ "s'ha de comprovar la BIOS que sigui correcta. Es pot especificar a Linux "
+#~ "afegint el paràmetre %s=%d,%d,%d a la línia de comandes. Veieu la "
+#~ "documentació de LILO o GRUB per més informació. Si es creu que la "
+#~ "geometria que suggereix Parted és correcta, seleccioneu Ignorar per "
+#~ "continuar ( i arregleu Linux després). Si no, seleccioneu Cancel·lar ( i "
+#~ "arregleu Linux i/o la BIOS ara mateix)."
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  Often, the reason is that Linux detected the "
+#~ "BIOS geometry incorrectly.  However, this does not appear to be the case "
+#~ "here.  It is safe to ignore,but ignoring may cause (fixable) problems "
+#~ "with some boot loaders, and may cause problems with FAT file systems.  "
+#~ "Using LBA is recommended."
+#~ msgstr ""
+#~ "La taula de particions a %s és inconsistent. Hi ha diverses raons per les "
+#~ "quals es pot donar aquest error. Però la més comú sol ser que Linux ha "
+#~ "detectat la geometria de la BIOS incorrectament. No obstant, no sembla "
+#~ "ser el cas aqui. El més segur és Ignorar, però ignorant pot causar "
+#~ "problemes (que es podren arreglar) en alguns carregadors d'arrencada i "
+#~ "també pot donar problemes amb sistemes de fitxers FAT. Es recomana "
+#~ "utilitzar LBA."
+
+#~ msgid ""
+#~ "Unable to align partition properly.  This probably means that another "
+#~ "partitioning tool generated an incorrect partition table, because it "
+#~ "didn't have the correct BIOS geometry.  It is safe to ignore,but ignoring "
+#~ "may cause (fixable) problems with some boot loaders."
+#~ msgstr ""
+#~ "No s'ha pogut aliniar la partició correctament. Aixó vol dir que, "
+#~ "probablement, que un altre gestor de particions ha generat una taula de "
+#~ "particions incorrecta ja que no té una correcta geometria a la BIOS. El "
+#~ "més segur és Ignorar, però si s'ignora pot causar problemes (que es "
+#~ "podren arreglar)amb alguns carregadors d'arrencada."
+
+#~ msgid "Attempt to read sectors %ld-%ld outside of partition on %s"
+#~ msgstr "S'ha intentat llegir sectors %ld-%ld fora de la partició a %s"
+
+#~ msgid ""
+#~ "This ext2 filesystem has a rather strange layout!  Parted can't resize "
+#~ "this (yet)."
+#~ msgstr ""
+#~ "Aquest sistema de fitxers ext2 té un disseny bastant extrany! Parted "
+#~ "(encara) no el pot redimensionar."
+
+#~ msgid "File system has an invalid signature for a FAT file systems."
+#~ msgstr ""
+#~ "El sistema de fitxers té una signatura invàlida per a un sistema de "
+#~ "fitxers FAT."
+
+#~ msgid ""
+#~ "The FATs aren't big enough to describe all clusters!  Each FAT is %d "
+#~ "sectors.  There are %d clusters, which would require each FAT to be %d "
+#~ "sectors.  This is REALLY weird.  You might want to write us an email: bug-"
+#~ "parted@gnu.org"
+#~ msgstr ""
+#~ "Les FATs no són el suficientment grans per descriure tots els clústers!  "
+#~ "Cada FAT és de %d sectors.  Hi ha %d clústers, que vol dir que cada FAT "
+#~ "tingui %d sectors.  Això és molt extrany. Ens podries escriure un e-mail "
+#~ "a: bug-parted@gnu.org"
+
+#~ msgid "START and END are in megabytes\n"
+#~ msgstr "INICI i FI són en megabytes\n"
+
+#~ msgid "Partition is being used."
+#~ msgstr "La partició s'està utilitzant."
+
+#~ msgid ""
+#~ "You requested to create a partition at %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Has demanat de crear una partició a %.3f-%.3fMb. El més proper que Parted "
+#~ "pot manegar és %.3f-%.3fMb."
+
+#~ msgid ""
+#~ "You requested to move the partition to %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Has demanat de moure una partició a %.3f-%.3fMb. El més proper que Parted "
+#~ "pot manegar és %.3f-%.3fMb."
+
+#~ msgid "Disk geometry for %s: 0.000-%.3f megabytes\n"
+#~ msgstr "La geometria del disc per %s: 0.000-%.3f megabytes\n"
+
+#~ msgid "Disk label type: %s\n"
+#~ msgstr "Tipus d'etiqueta: %s\n"
+
+#~ msgid "Minor    Start       End     "
+#~ msgstr "Minor    Inici       Fi     "
+
+#~ msgid "Type      "
+#~ msgstr "Tipus      "
+
+#~ msgid "Filesystem  "
+#~ msgstr "Sistema de fitxers  "
+
+#~ msgid "Name                  "
+#~ msgstr "Nom                   "
+
+#~ msgid ""
+#~ "You requested to resize the partition to %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Has demanat redimensionar una partició a %.3f-%.3fMb. El més proper que "
+#~ "Parted pot manegar és %.3f-%.3fMb."
+
+#~ msgid "resize MINOR START END        resize filesystem on partition MINOR"
+#~ msgstr ""
+#~ "resize MINOR INICI FI        redimensiona el sistema de fitxers a la "
+#~ "partició MINOR"
+
+#~ msgid ""
+#~ "You found a bug in GNU Parted.  Please email a bug report to bug-"
+#~ "parted@gnu.org containing the version (%s), and the following message:\n"
+#~ msgstr ""
+#~ "Has trobat un bug a GNU Parted. Si-us-plau, envia-ns un e-mail amb un "
+#~ "informe a bug-parted@gnu.org que inclogui la versió (%s), i el següent "
+#~ "missatge:\n"
+
+#~ msgid ""
+#~ "  You have Windows FAT partition(s) that are not using LBA.  If your BIOS "
+#~ "supports LBA, then you should switch to LBA by setting the LBA flag on "
+#~ "all FAT partitions.  Otherwise, make sure the operating system and the "
+#~ "BIOS have the same geometry before resizing any FAT partitions."
+#~ msgstr ""
+#~ "  Tens particion(s) Windows FAT que no fan servir LBA. Si la teva BIOS "
+#~ "suporta LBA, llavors hauries d'activar el flag LBA a totes les particions "
+#~ "FAT. D'altra manera, assegura't que el sistema operatiu i la BIOS tenen "
+#~ "la mateixa geometria abans de canviar de mida qualservol partició FAT."
+
+#~ msgid ""
+#~ "The operating system thinks the geometry on %s is %d/%d/%d.  Therefore, "
+#~ "cylinder 1024 ends at %.3fM.%s"
+#~ msgstr ""
+#~ "El sistema operatiu creu que la geometria a %s és %d/%d/%d.  El cilindre "
+#~ "1024 acaba a %.3fM.%s"
+
+#~ msgid "The operating system thinks the geometry on %s is %d/%d/%d.%s"
+#~ msgstr "El sistema operatiu creu que la geometria a %s és %d/%d/%d.%s"
diff --git a/parted-1.8.7/po/cs.gmo b/parted-1.8.7/po/cs.gmo
new file mode 100644
index 0000000..f041f74
--- /dev/null
+++ b/parted-1.8.7/po/cs.gmo
Binary files differ
diff --git a/parted-1.8.7/po/cs.po b/parted-1.8.7/po/cs.po
new file mode 100644
index 0000000..8e5f1f3
--- /dev/null
+++ b/parted-1.8.7/po/cs.po
@@ -0,0 +1,3331 @@
+# Czech translation of parted.
+# Copyright (C) 2003 Miloslav Trmac <mitr@volny.cz>
+# Miloslav Trmac <mitr@volny.cz>, 2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: parted 1.6.6\n"
+"Report-Msgid-Bugs-To: bug-parted@gnu.org\n"
+"POT-Creation-Date: 2007-05-09 17:02-0400\n"
+"PO-Revision-Date: 2003-08-01 03:03+0200\n"
+"Last-Translator: Miloslav Trmac <mitr@volny.cz>\n"
+"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/closeout.c:74
+msgid "write error"
+msgstr ""
+
+#: lib/error.c:125
+#, fuzzy
+msgid "Unknown system error"
+msgstr "Neznámý typ systému souborů \"%s\"."
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK).  A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#.
+#. If you don't know what to put here, please see
+#. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr ""
+
+#: lib/regcomp.c:131
+msgid "Success"
+msgstr ""
+
+#: lib/regcomp.c:134
+msgid "No match"
+msgstr ""
+
+#: lib/regcomp.c:137
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regcomp.c:140
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regcomp.c:143
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regcomp.c:146
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regcomp.c:149
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regcomp.c:152
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regcomp.c:155
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regcomp.c:158
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regcomp.c:161
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regcomp.c:164
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regcomp.c:170
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regcomp.c:173
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regcomp.c:176
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regcomp.c:179
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regcomp.c:680
+msgid "No previous regular expression"
+msgstr ""
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr ""
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:66
+msgid "(C)"
+msgstr ""
+
+#: lib/version-etc.c:68
+msgid ""
+"\n"
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:84
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:88
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:92
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:98
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:104
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:110
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:132
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+
+#: lib/xalloc-die.c:35
+msgid "memory exhausted"
+msgstr ""
+
+#: libparted/arch/beos.c:237
+msgid "Disk Image"
+msgstr ""
+
+#: libparted/arch/beos.c:338 libparted/arch/gnu.c:261
+#: libparted/arch/linux.c:1272
+#, c-format
+msgid "Error opening %s: %s"
+msgstr "Chyba při otevírání %s: %s"
+
+#: libparted/arch/beos.c:349 libparted/arch/gnu.c:271
+#: libparted/arch/linux.c:1283
+#, c-format
+msgid "Unable to open %s read-write (%s).  %s has been opened read-only."
+msgstr ""
+"Nemohu otevřít %s pro čtení/zápis (%s). %s bylo otevřeno jen pro čtení."
+
+#: libparted/arch/beos.c:411 libparted/arch/linux.c:1431
+#, c-format
+msgid "%s during seek for read on %s"
+msgstr "%s při seek pro čtení %s"
+
+#: libparted/arch/beos.c:444 libparted/arch/gnu.c:449 libparted/arch/gnu.c:548
+#: libparted/arch/gnu.c:676 libparted/arch/linux.c:1391
+#: libparted/arch/linux.c:1469
+#, c-format
+msgid "%s during read on %s"
+msgstr "%s při čtení %s"
+
+#: libparted/arch/beos.c:480 libparted/arch/gnu.c:509
+#: libparted/arch/linux.c:1546
+#, c-format
+msgid "Can't write to %s, because it is opened read-only."
+msgstr "Nemohu zapisovat na %s, protože je otevřen jen pro čtení."
+
+#: libparted/arch/beos.c:496 libparted/arch/linux.c:1570
+#, c-format
+msgid "%s during seek for write on %s"
+msgstr "%s při seek pro zápis na %s"
+
+#: libparted/arch/beos.c:533 libparted/arch/gnu.c:585 libparted/arch/gnu.c:630
+#: libparted/arch/gnu.c:707 libparted/arch/linux.c:1517
+#: libparted/arch/linux.c:1612 libparted/arch/linux.c:1684
+#, c-format
+msgid "%s during write on %s"
+msgstr "%s při zápisu na %s"
+
+#: debug/clearfat/clearfat.c:63 partprobe/partprobe.c:137
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:67
+#, c-format
+msgid ""
+"Usage: %s [OPTION]\n"
+"  or:  %s DEVICE MINOR\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:70
+msgid ""
+"Clear unused space on a FAT partition (a GNU Parted testing tool).\n"
+"\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:74
+msgid "      --help     display this help and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:75
+msgid "      --version  output version information and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:77 partprobe/partprobe.c:154
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:285
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:290
+#, fuzzy, c-format
+msgid "too many arguments"
+msgstr "Příliš mnoho špatných stránek."
+
+#: partprobe/partprobe.c:141
+#, c-format
+msgid "Usage: %s [OPTION] [DEVICE]...\n"
+msgstr ""
+
+#: partprobe/partprobe.c:142
+msgid ""
+"Inform the OS of partition table changes.\n"
+"\n"
+"  -d, --no-update  don't update the kernel\n"
+"  -s, --summary    print a summary of contents\n"
+"  -h, --help       display this help and exit\n"
+"  -v, --version    output version information and exit\n"
+msgstr ""
+
+#: partprobe/partprobe.c:150
+msgid ""
+"\n"
+"With no DEVICE, probe all partitions.\n"
+msgstr ""
+
+#: libparted/arch/gnu.c:94
+#, c-format
+msgid "Unable to open %s."
+msgstr "Nemohu otevřít %s."
+
+#: libparted/arch/gnu.c:114
+msgid "Unable to probe store."
+msgstr "Nemohu prozkoumat úložný prostor."
+
+#: libparted/arch/gnu.c:352
+#, fuzzy
+msgid ""
+"The partition table cannot be re-read.  This means you need to reboot before "
+"mounting any modified partitions.  You also need to reinstall your boot "
+"loader before you reboot (which may require mounting modified partitions).  "
+"It is impossible do both things!  So you'll need to boot off a rescue disk, "
+"and reinstall your boot loader from the rescue disk.  Read section 4 of the "
+"Parted User documentation for more information."
+msgstr ""
+"Nebylo možné znovu načíst tabulku oddílů, takže budete muset před připojením "
+"změněných oddílů restartovat počítač. Také musíte před restartem "
+"reinstalovat svůj zavděč systému (což může vyžadovat připojení změněných "
+"oddílů). Nelze provést obojí! Takže budete muset zavést systém ze "
+"záchranného disku a reinstalovat svůj zavaděč systému odtud. Pro více "
+"informací si přečtěte oddíl 4 Uživatelské dokumentace Parted."
+
+#: libparted/arch/gnu.c:369
+#, fuzzy, c-format
+msgid ""
+"The partition table on %s cannot be re-read (%s).  This means the Hurd knows "
+"nothing about any modifications you made.  You should reboot your computer "
+"before doing anything with %s."
+msgstr ""
+"Tabulka oddílů na %s (%s). To znamená, že Hurd neví nic o změnách, které "
+"jste provedli. Než budete cokoli dělat s %s, měli byste restartovat svůj "
+"počítač."
+
+#: libparted/arch/gnu.c:380 parted/parted.c:2443
+msgid ""
+"You should reinstall your boot loader before rebooting.  Read section 4 of "
+"the Parted User documentation for more information."
+msgstr ""
+"Před restartem byste měli reinstalovat svůj zavaděč systému. Pro více "
+"informací si přečtěte oddíl 4 Uživatelské dokumentace Parted."
+
+#: libparted/arch/gnu.c:772
+#, c-format
+msgid "%s trying to sync %s to disk"
+msgstr "%s při pokusu sync %s na disk"
+
+#: libparted/arch/linux.c:408
+#, c-format
+msgid "Could not stat device %s - %s."
+msgstr "Nemohu stat zařízení %s - %s."
+
+#: libparted/arch/linux.c:523
+#, c-format
+msgid ""
+"Could not determine sector size for %s: %s.\n"
+"Using the default sector size (%lld)."
+msgstr ""
+
+#: libparted/arch/linux.c:539
+#, c-format
+msgid ""
+"Device %s has a logical sector size of %lld.  Not all parts of GNU Parted "
+"support this at the moment, and the working code is HIGHLY EXPERIMENTAL.\n"
+msgstr ""
+
+#: libparted/arch/linux.c:579
+#, fuzzy, c-format
+msgid "Unable to determine the size of %s (%s)."
+msgstr "Nemohu určit velikost %s (%s)"
+
+#: libparted/arch/linux.c:668
+#, c-format
+msgid "Could not get identity of device %s - %s"
+msgstr "Nemohu získat identitu zařízení %s - %s"
+
+#: libparted/arch/linux.c:677
+msgid "Generic IDE"
+msgstr ""
+
+#: libparted/arch/linux.c:698
+#, c-format
+msgid ""
+"Device %s has multiple (%d) logical sectors per physical sector.\n"
+"GNU Parted supports this EXPERIMENTALLY for some special disk label/file "
+"system combinations, e.g. GPT and ext2/3.\n"
+"Please consult the web site for up-to-date information."
+msgstr ""
+
+#: libparted/arch/linux.c:873
+#, c-format
+msgid "Error initialising SCSI device %s - %s"
+msgstr "Chyba při inicializaci zařízení SCSI %s - %s"
+
+#: libparted/arch/linux.c:928
+#, fuzzy, c-format
+msgid ""
+"The device %s has zero length, and can't possibly store a file system or "
+"partition table.  Perhaps you selected the wrong device?"
+msgstr ""
+"Zařízení %s má nulovou délku a nemůže obsahovat systém souborů nebo tabulku "
+"oddílů. Možná jste vybrali špatné zařízení?"
+
+#: libparted/arch/linux.c:1032
+#, fuzzy, c-format
+msgid ""
+"Unable to determine geometry of file/device %s.  You should not use Parted "
+"unless you REALLY know what you're doing!"
+msgstr ""
+"Nemohu určit geometrii souboru/zařízení. Neměli byste používat Parted, pokud "
+"OPRAVDU nevíte, co děláte!"
+
+#: libparted/arch/linux.c:1110
+msgid "DAC960 RAID controller"
+msgstr "Řadič RAID DAC960"
+
+#: libparted/arch/linux.c:1115
+msgid "Promise SX8 SATA Device"
+msgstr ""
+
+#: libparted/arch/linux.c:1120
+msgid "IBM S390 DASD drive"
+msgstr ""
+
+#: libparted/arch/linux.c:1125
+msgid "IBM iSeries Virtual DASD"
+msgstr ""
+
+#: libparted/arch/linux.c:1130
+msgid "Compaq Smart Array"
+msgstr "Compaq Smart Array"
+
+#: libparted/arch/linux.c:1135
+msgid "ATARAID Controller"
+msgstr "Řadič ATARAID"
+
+#: libparted/arch/linux.c:1140
+msgid "I2O Controller"
+msgstr "Řadič I2O"
+
+#: libparted/arch/linux.c:1145
+msgid "User-Mode Linux UBD"
+msgstr ""
+
+#: libparted/arch/linux.c:1156
+msgid "Linux device-mapper"
+msgstr ""
+
+#: libparted/arch/linux.c:1162
+msgid "Unknown"
+msgstr "Neznámý"
+
+#: libparted/arch/linux.c:1169
+msgid "ped_device_new()  Unsupported device type"
+msgstr "ped_device_new()  Nepodporovaný typ zařízení"
+
+#: libparted/arch/linux.c:2083
+#, fuzzy, c-format
+msgid ""
+"Error informing the kernel about modifications to partition %s -- %s.  This "
+"means Linux won't know about any changes you made to %s until you reboot -- "
+"so you shouldn't mount it or use it in any way before rebooting."
+msgstr ""
+"Chyba při informování jádra o změnách oddílu %s - %s. To znamená, že Linux "
+"nebude vědět o změnách, které s %s provedete, dokud nerestartujete systém - "
+"takže byste jej neměli připojovat nebo jej před restartem jakkoli používat."
+
+#: libparted/arch/linux.c:2262
+#, fuzzy, c-format
+msgid ""
+"parted was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made. "
+msgstr ""
+"Jádro nemohlo znovu načíst tabulku oddílů na %s (%s). To znamená, že Linux "
+"nebude vědět nic o změnách, které jste provedli, dokud nerestartujete "
+"systém. Měli byste svůj počítač restartovat, než budete s %s něco dělat."
+
+#: libparted/arch/linux.c:2368
+#, fuzzy, c-format
+msgid ""
+"The kernel was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made until you "
+"reboot.  You should reboot your computer before doing anything with %s."
+msgstr ""
+"Jádro nemohlo znovu načíst tabulku oddílů na %s (%s). To znamená, že Linux "
+"nebude vědět nic o změnách, které jste provedli, dokud nerestartujete "
+"systém. Měli byste svůj počítač restartovat, než budete s %s něco dělat."
+
+#: libparted/cs/geom.c:162
+msgid "Can't have the end before the start!"
+msgstr "Nemohu mít konec před začátkem!"
+
+#: libparted/cs/geom.c:169
+msgid "Can't have a partition outside the disk!"
+msgstr "Nemohu mít oddíl mimo disk!"
+
+#: libparted/cs/geom.c:366
+#, fuzzy, c-format
+msgid "Attempt to write sectors %ld-%ld outside of partition on %s."
+msgstr "Pokus zapisovat sektory %ld-%ld mimo oddíl na %s"
+
+#: libparted/cs/geom.c:406 libparted/fs/linux_swap/linux_swap.c:475
+msgid "checking for bad blocks"
+msgstr "hledám špatné bloky"
+
+#: libparted/debug.c:102
+#, c-format
+msgid "Backtrace has %d calls on stack:\n"
+msgstr ""
+
+#: libparted/debug.c:114
+#, c-format
+msgid "Assertion (%s) at %s:%d in function %s() failed."
+msgstr ""
+
+#: libparted/disk.c:203
+#, c-format
+msgid "Unable to open %s - unrecognised disk label."
+msgstr "Nemohu otevřít %s - neznámá jmenovka disku."
+
+#: libparted/disk.c:471
+#, c-format
+msgid ""
+"This libparted doesn't have write support for %s.  Perhaps it was compiled "
+"read-only."
+msgstr ""
+"Tato libparted nemá podporu pro zápis pro %s. Možná byla přeložena jen pro "
+"čtení."
+
+#: libparted/disk.c:598
+#, fuzzy, c-format
+msgid "Partition %d is %s, but the file system is %s."
+msgstr "Oddíl %d je %.3fMb, ale systém souborů je %.3fMb."
+
+#: libparted/disk.c:1075
+#, c-format
+msgid "%s disk labels do not support extended partitions."
+msgstr "Jmenovky disku %s nepodporují rozšířené oddíly."
+
+#: libparted/disk.c:1634
+#, c-format
+msgid "%s disk labels don't support logical or extended partitions."
+msgstr "Jmenovky disku %s nepodporují logické nebo rozšířené oddíly."
+
+#: libparted/disk.c:1647
+#, fuzzy
+msgid "Too many primary partitions."
+msgstr "Příliš mnoho primárních oddílů"
+
+#: libparted/disk.c:1656
+#, c-format
+msgid ""
+"Can't add a logical partition to %s, because there is no extended partition."
+msgstr "Nemohu přidat logický oddíl do %s, protože neexistuje rozšířený oddíl."
+
+#: libparted/disk.c:1680
+#, fuzzy, c-format
+msgid "Can't have more than one extended partition on %s."
+msgstr "Nemohu mít více než jeden rozšířený oddíl na %s"
+
+#: libparted/disk.c:1690
+msgid "Can't have logical partitions outside of the extended partition."
+msgstr "Nemohu mít logické oddíly mimo rozšířený oddíl."
+
+#: libparted/disk.c:1715
+#, c-format
+msgid "Can't have a logical partition outside of the extended partition on %s."
+msgstr "Nemohu mít logický oddíl mimo rozšířený oddíl na %s."
+
+#: libparted/disk.c:1725 libparted/disk.c:1779 libparted/disk.c:1945
+#, fuzzy
+msgid "Can't have overlapping partitions."
+msgstr "Nemohu mít překrývající se oddíly"
+
+#: libparted/disk.c:1733
+msgid "Can't have a primary partition inside an extended partition."
+msgstr "Nemohu mít primární oddíl uvnitř rozšířeného oddílu."
+
+#: libparted/disk.c:2140
+msgid "metadata"
+msgstr "metadata"
+
+#: libparted/disk.c:2142
+msgid "free"
+msgstr "volné"
+
+#: libparted/disk.c:2144 parted/ui.c:1169 parted/ui.c:1197
+msgid "extended"
+msgstr "rozšířený"
+
+#: libparted/disk.c:2146 parted/ui.c:1173 parted/ui.c:1201
+msgid "logical"
+msgstr "logický"
+
+#: libparted/disk.c:2148 parted/ui.c:1165 parted/ui.c:1193
+msgid "primary"
+msgstr "primární"
+
+#: libparted/disk.c:2164
+msgid "boot"
+msgstr "boot"
+
+#: libparted/disk.c:2166
+msgid "root"
+msgstr "root"
+
+#: libparted/disk.c:2168
+msgid "swap"
+msgstr "swap"
+
+#: libparted/disk.c:2170
+msgid "hidden"
+msgstr "skrytý"
+
+#: libparted/disk.c:2172
+msgid "raid"
+msgstr "raid"
+
+#: libparted/disk.c:2174
+msgid "lvm"
+msgstr "lvm"
+
+#: libparted/disk.c:2176
+msgid "lba"
+msgstr "lba"
+
+#: libparted/disk.c:2178
+msgid "hp-service"
+msgstr "hp-service"
+
+#: libparted/disk.c:2180
+msgid "palo"
+msgstr ""
+
+#: libparted/disk.c:2182
+msgid "prep"
+msgstr ""
+
+#: libparted/disk.c:2184
+msgid "msftres"
+msgstr ""
+
+#: libparted/disk.c:2190
+#, fuzzy, c-format
+msgid "Unknown partition flag, %d."
+msgstr "Neznámý příznak oddílu, %d."
+
+#: libparted/exception.c:78
+msgid "Information"
+msgstr "Informace"
+
+#: libparted/exception.c:79
+msgid "Warning"
+msgstr "Varování"
+
+#: libparted/exception.c:80
+msgid "Error"
+msgstr "Chyba"
+
+#: libparted/exception.c:81
+msgid "Fatal"
+msgstr "Fatální"
+
+#: libparted/exception.c:82
+msgid "Bug"
+msgstr "Chyba"
+
+#: libparted/exception.c:83
+msgid "No Implementation"
+msgstr "Neimplementováno"
+
+#: libparted/exception.c:87
+msgid "Fix"
+msgstr "Opravit"
+
+#: libparted/exception.c:88
+msgid "Yes"
+msgstr "Ano"
+
+#: libparted/exception.c:89
+msgid "No"
+msgstr "Ne"
+
+#: libparted/exception.c:90
+msgid "OK"
+msgstr "OK"
+
+#: libparted/exception.c:91
+msgid "Retry"
+msgstr "Znovu"
+
+#: libparted/exception.c:92
+msgid "Ignore"
+msgstr "Ignorovat"
+
+#: libparted/exception.c:93
+msgid "Cancel"
+msgstr "Zrušit"
+
+#: libparted/exception.c:133
+#, fuzzy, c-format
+msgid ""
+"A bug has been detected in GNU Parted.  Refer to the web site of parted "
+"http://www.gnu.org/software/parted/parted.html for more informations of what "
+"could be useful for bug submitting!  Please email a bug report to bug-"
+"parted@gnu.org containing at least the version (%s) and the following "
+"message:  "
+msgstr ""
+"Byla detekována chyba v GNU parted. Pošlete prosím e-mailem hlášení o chybě "
+"na bug-parted@gnu.org obsahující verzi (%s) a následující zprávu:"
+
+#: libparted/filesys.c:384
+msgid "Could not detect file system."
+msgstr "Nemohu detekovat systém souborů."
+
+#: libparted/filesys.c:395
+#, fuzzy
+msgid "The file system is bigger than its volume!"
+msgstr "Systém souborů je větší než jeho obsah!"
+
+#: libparted/filesys.c:403
+#, c-format
+msgid "Support for opening %s file systems is not implemented yet."
+msgstr ""
+"Podpora pro otevírání souborových systémů %s ještě není implementována."
+
+#: libparted/filesys.c:445
+#, c-format
+msgid "Support for creating %s file systems is not implemented yet."
+msgstr ""
+"Podpora pro vytváření souborových systémů %s ještě není implementována."
+
+#: libparted/filesys.c:505
+#, c-format
+msgid "Support for checking %s file systems is not implemented yet."
+msgstr "Podpora pro kontrolu souborových systémů %s ještě není implementována."
+
+#: libparted/filesys.c:571
+msgid "raw block copying"
+msgstr "přímé kopírování bloků"
+
+#: libparted/filesys.c:582
+msgid "growing file system"
+msgstr "zvětšování systému souborů"
+
+#: libparted/filesys.c:622
+msgid "Can't copy onto an overlapping partition."
+msgstr "Nemohu kopírovat do překrývajícího se oddílu."
+
+#: libparted/filesys.c:644
+#, fuzzy, c-format
+msgid ""
+"Direct support for copying file systems is not yet implemented for %s.  "
+"However, support for resizing is implemented.  Therefore, the file system "
+"can be copied if the new partition is at least as big as the old one.  So, "
+"either shrink the partition you are trying to copy, or copy to a bigger "
+"partition."
+msgstr ""
+"Pro %s není ještě implementována přímá podpora pro kopírování systémů "
+"souborů. Je ale implementována podpora pro změnu velikosti. Systém souborů "
+"tedy může být zkopírován, je-li nový oddíl alespoň tak velký jako starý. "
+"Takže buď zmenšete oddíl, který se pokoušíte zkopírovat, nebo kopírujte do "
+"většího oddílu."
+
+#: libparted/filesys.c:658
+#, c-format
+msgid "Support for copying %s file systems is not implemented yet."
+msgstr ""
+"Podpora pro kopírování souborových systémů %s ještě není implementována."
+
+#: libparted/filesys.c:696
+#, c-format
+msgid "Support for resizing %s file systems is not implemented yet."
+msgstr ""
+"Podpora pro změnu velikosti souborových systémů %s ještě není implementována."
+
+#: libparted/fs/reiserfs/reiserfs.c:315
+msgid "creating"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:402
+#, fuzzy
+msgid "The file system is in an invalid state.  Perhaps it is mounted?"
+msgstr "Systém souborů je větší než jeho obsah!"
+
+#: libparted/fs/reiserfs/reiserfs.c:410
+msgid "The file system is in old (unresizeable) format."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:416
+msgid "Invalid free blocks count.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:431
+#, fuzzy
+msgid "checking"
+msgstr "check"
+
+#: libparted/fs/reiserfs/reiserfs.c:437
+msgid "Reiserfs tree seems to be corrupted.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:449
+#, fuzzy
+msgid ""
+"The reiserfs file system passed a basic check.  For a more comprehensive "
+"check, run reiserfsck --check."
+msgstr ""
+"Systém souborů ext2 prošel základní kontrolou. Pro podrobnější kontrolu "
+"použijte program e2fsck."
+
+#: libparted/fs/reiserfs/reiserfs.c:474
+#, fuzzy
+msgid "Sorry, can't move the start of reiserfs partitions yet."
+msgstr "Lituji, ještě neumím přesunout začátek oddílů ext2!"
+
+#: libparted/fs/reiserfs/reiserfs.c:490
+msgid "Couldn't reopen device abstraction layer for read/write."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:508 libparted/fs/ext2/ext2_resize.c:552
+#: libparted/fs/hfs/hfs.c:250 libparted/fs/hfs/hfs.c:629
+msgid "shrinking"
+msgstr "zmenšuji"
+
+#: libparted/fs/reiserfs/reiserfs.c:520
+#, fuzzy
+msgid "expanding"
+msgstr "Varování"
+
+#: libparted/fs/reiserfs/reiserfs.c:592
+msgid "Couldn't create reiserfs device abstraction handler."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:606
+#, fuzzy, c-format
+msgid "Device is too small for %lu blocks."
+msgstr "Systém souborů příliš malý pro ext2."
+
+#: libparted/fs/reiserfs/reiserfs.c:615
+msgid "copying"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:682
+#, c-format
+msgid "Couldn't resolve symbol %s.  Error: %s."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:704
+msgid "GNU Parted found an invalid libreiserfs library."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:715
+#, c-format
+msgid ""
+"GNU Parted has detected libreiserfs interface version mismatch.  Found %d-%"
+"d, required %d. ReiserFS support will be disabled."
+msgstr ""
+
+#: libparted/labels/aix.c:137
+#, fuzzy
+msgid "Support for reading AIX disk labels is is not implemented yet."
+msgstr ""
+"Podpora pro vytváření souborových systémů %s ještě není implementována."
+
+#: libparted/labels/aix.c:148
+#, fuzzy
+msgid "Support for writing AIX disk labels is is not implemented yet."
+msgstr ""
+"Podpora pro vytváření souborových systémů %s ještě není implementována."
+
+#: libparted/labels/aix.c:161
+#, fuzzy
+msgid ""
+"Support for adding partitions to AIX disk labels is not implemented yet."
+msgstr ""
+"Podpora pro vytváření souborových systémů %s ještě není implementována."
+
+#: libparted/labels/aix.c:171
+#, fuzzy
+msgid ""
+"Support for duplicating partitions in AIX disk labels is not implemented yet."
+msgstr ""
+"Podpora pro vytváření souborových systémů %s ještě není implementována."
+
+#: libparted/labels/aix.c:189
+#, fuzzy
+msgid ""
+"Support for setting system type of partitions in AIX disk labels is not "
+"implemented yet."
+msgstr ""
+"Podpora pro vytváření souborových systémů %s ještě není implementována."
+
+#: libparted/labels/aix.c:199
+#, fuzzy
+msgid "Support for setting flags in AIX disk labels is not implemented yet."
+msgstr ""
+"Podpora pro vytváření souborových systémů %s ještě není implementována."
+
+#: libparted/labels/bsd.c:501 libparted/labels/dasd.c:755
+#: libparted/labels/dos.c:1974 libparted/labels/dvh.c:770
+#: libparted/labels/gpt.c:1448 libparted/labels/loop.c:248
+#: libparted/labels/mac.c:1408 libparted/labels/pc98.c:759
+#: libparted/labels/rdb.c:1041 libparted/labels/sun.c:705
+msgid "Unable to satisfy all constraints on the partition."
+msgstr "Nemohu splnit všechna omezení na oddíl."
+
+#: libparted/labels/bsd.c:526
+#, fuzzy
+msgid "Unable to allocate a bsd disklabel slot."
+msgstr "Nemohu alokovat položku jmenovky disku bsd"
+
+#: libparted/labels/dasd.c:166
+#, fuzzy
+msgid "Unable to determine the block size of this dasd"
+msgstr "Nemohu určit velikost %s (%s)"
+
+#: libparted/labels/dasd.c:781
+#, fuzzy
+msgid "Unable to allocate a dasd disklabel slot"
+msgstr "Nemohu alokovat položku jmenovky disku bsd"
+
+#: libparted/labels/dos.c:827
+#, fuzzy, c-format
+msgid "Invalid partition table on %s -- wrong signature %x."
+msgstr "Neplatná tabulka oddílů na %s - nesprávný podpis %x"
+
+#: libparted/labels/dos.c:855
+#, c-format
+msgid "Invalid partition table - recursive partition on %s."
+msgstr "Neplatná tabulka oddílů - rekurzivní oddíl na %s."
+
+#: libparted/labels/dos.c:1318
+msgid "Extended partitions cannot be hidden on msdos disk labels."
+msgstr ""
+
+#: libparted/labels/dos.c:1958
+msgid "Parted can't resize partitions managed by Windows Dynamic Disk."
+msgstr ""
+
+#: libparted/labels/dvh.c:190
+#, fuzzy, c-format
+msgid "%s has no extended partition (volume header partition)."
+msgstr ""
+"%s nemá rozšířený oddíl (oddíl hlavičky svazku). Pokud to budete ignorovat, "
+"budou odstraněny všechny zaváděcí svazky."
+
+#: libparted/labels/dvh.c:313
+msgid "Checksum is wrong, indicating the partition table is corrupt."
+msgstr ""
+"Kontrolní součet je špatně, což indikuje, že tabulka oddílů je poškozená."
+
+#: libparted/labels/dvh.c:616
+msgid "Only primary partitions can be root partitions."
+msgstr "Jen primární oddíly mohou být kořenové oddíly."
+
+#: libparted/labels/dvh.c:630
+msgid "Only primary partitions can be swap partitions."
+msgstr "Jen primární oddíly mohou být odkládací oddíly."
+
+#: libparted/labels/dvh.c:644
+msgid "Only logical partitions can be a boot file."
+msgstr "Jen logické oddíly mohou být zaváděcí soubor."
+
+#: libparted/labels/dvh.c:721
+msgid "Only logical partitions (boot files) have a name."
+msgstr "Jen logické oddíly (zaváděcí soubory) mají název."
+
+#: libparted/labels/dvh.c:812
+msgid "Too many primary partitions"
+msgstr "Příliš mnoho primárních oddílů"
+
+#: libparted/labels/fdasd.c:103
+#, c-format
+msgid ""
+"%s open error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:107
+#, c-format
+msgid ""
+"%s seek error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:110
+#, c-format
+msgid ""
+"%s read error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:113
+#, fuzzy, c-format
+msgid ""
+"%s write error\n"
+"%s\n"
+msgstr "%s při zápisu na %s"
+
+#: libparted/labels/fdasd.c:116
+#, c-format
+msgid ""
+"%s IOCTL error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:119
+#, c-format
+msgid ""
+"%s API version mismatch\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:122
+#, c-format
+msgid ""
+"%s Unsupported disk type\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:126
+#, c-format
+msgid ""
+"%s Unsupported disk format\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:130
+#, fuzzy, c-format
+msgid ""
+"%s Disk in use\n"
+"%s\n"
+msgstr "%s  %s  %s"
+
+#: libparted/labels/fdasd.c:133
+#, c-format
+msgid ""
+"%s Config file syntax error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:137
+#, c-format
+msgid ""
+"%s Volume label is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:141
+#, c-format
+msgid ""
+"%s a data set name is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:145
+#, c-format
+msgid ""
+"%s space allocation\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:149
+#, c-format
+msgid ""
+"%s device verification failed\n"
+"The specified device is not a valid DASD device\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:154
+#, c-format
+msgid ""
+"%s Fatal error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/gpt.c:454
+#, fuzzy, c-format
+msgid ""
+"%s contains GPT signatures, indicating that it has a GPT table.  However, it "
+"does not have a valid fake msdos partition table, as it should.  Perhaps it "
+"was corrupted -- possibly by a program that doesn't understand GPT partition "
+"tables.  Or perhaps you deleted the GPT table, and are now using an msdos "
+"partition table.  Is this a GPT partition table?"
+msgstr ""
+"%s obsahuje podpisy GPT, což znamená, že má tabulku GPT. Nemá ale platnou "
+"falešnou tabulku oddílů msdos, kterou by měl mít. Možná byla poškozena - "
+"např. programem, který nerozumí tabulkám oddílů GPT. Nebo jste možná "
+"odstranili tabulku oddílů GPT a nyní používáte tabulku oddílů msdos. Je toto "
+"tabulka oddílů GPT?"
+
+#: libparted/labels/gpt.c:648
+#, c-format
+msgid ""
+"The format of the GPT partition table is version %x, which is newer than "
+"what Parted can recognise.  Please tell us!  bug-parted@gnu.org"
+msgstr ""
+"Formát tabulky oddílů GPT je verze %x, což je novější, než kterou umí "
+"rozpoznat Parted. Oznamte nám to prosím! bug-parted@gnu.org"
+
+#: libparted/labels/gpt.c:698
+#, c-format
+msgid ""
+"Not all of the space available to %s appears to be used, you can fix the GPT "
+"to use all of the space (an extra %llu blocks) or continue with the current "
+"setting? "
+msgstr ""
+
+#: libparted/labels/gpt.c:827
+msgid ""
+"The backup GPT table is not at the end of the disk, as it should be.  This "
+"might mean that another operating system believes the disk is smaller.  Fix, "
+"by moving the backup to the end (and removing the old backup)?"
+msgstr ""
+"Záložní tabulka GPT není na konci disku, jak by měla být. To možná znamená, "
+"že jiný operační systém si myslí, že disk je menší. Mám to opravit "
+"přesunutím zálohy na konec (a odstraněním staré zálohy)?"
+
+#: libparted/labels/gpt.c:862
+#, fuzzy
+msgid ""
+"The primary GPT table is corrupt, but the backup appears OK, so that will be "
+"used."
+msgstr ""
+"Primární tabulka GPT je poškozená, ale záloha se zdá být v pořádku, takže "
+"bude použita záloha."
+
+#: libparted/labels/gpt.c:870
+#, fuzzy
+msgid ""
+"Both the primary and backup GPT tables are corrupt.  Try making a fresh "
+"table, and using Parted's rescue feature to recover partitions."
+msgstr ""
+"Primární i záložní tabulka GPT je poškozena. Zkuste vytvořit novou tabulku a "
+"obnovit oddíly pomocí schopnosti Partedu rescue."
+
+#: libparted/labels/mac.c:181
+#, c-format
+msgid "Invalid signature %x for Mac disk labels."
+msgstr "Neplatný podpis %x pro jmenovky disku Mac."
+
+#: libparted/labels/mac.c:226
+msgid "Partition map has no partition map entry!"
+msgstr "Mapa oddílů nemá žádnou položku mapy oddílů!"
+
+#: libparted/labels/mac.c:273
+#, c-format
+msgid "%s is too small for a Mac disk label!"
+msgstr "%s je příliš malý pro jmenovku disku Mac!"
+
+#: libparted/labels/mac.c:532
+#, c-format
+msgid "Partition %d has an invalid signature %x."
+msgstr "Oddíl %d má neplatný podpis %x."
+
+#: libparted/labels/mac.c:550
+#, c-format
+msgid "Partition %d has an invalid length of 0 bytes!"
+msgstr "Oddíl %d má neplatnou délku 0 bajtů."
+
+#: libparted/labels/mac.c:580
+#, fuzzy
+msgid "The data region doesn't start at the start of the partition."
+msgstr "Datový region nezačíná na začátku oddílu"
+
+#: libparted/labels/mac.c:597
+#, fuzzy
+msgid "The boot region doesn't start at the start of the partition."
+msgstr "Zaváděcí region nezačíná na začátku oddílu"
+
+#: libparted/labels/mac.c:611
+msgid "The partition's boot region doesn't occupy the entire partition."
+msgstr "Zaváděcí region oddílu nezabírá celý oddíl."
+
+#: libparted/labels/mac.c:622
+msgid "The partition's data region doesn't occupy the entire partition."
+msgstr "Datový region oddílu nezabírá celý oddíl."
+
+#: libparted/labels/mac.c:675
+#, c-format
+msgid ""
+"Weird block size on device descriptor: %d bytes is not divisible by 512."
+msgstr ""
+"Podivná velikost bloku v deskriptoru zařízení: %d bajtů není dělitelné 512."
+
+#: libparted/labels/mac.c:688
+#, c-format
+msgid ""
+"The driver descriptor says the physical block size is %d bytes, but Linux "
+"says it is %d bytes."
+msgstr ""
+"Deskriptor ovladače říká, že fyzická velikost bloku je %d bajtů ale Linux "
+"říká, že je to %d bajtů."
+
+#: libparted/labels/mac.c:736
+msgid "No valid partition map found."
+msgstr "Nenalezena platná mapa oddílů."
+
+#: libparted/labels/mac.c:795
+#, fuzzy, c-format
+msgid ""
+"Conflicting partition map entry sizes!  Entry 1 says it is %d, but entry %d "
+"says it is %d!"
+msgstr ""
+"Kolidující velikosti položek mapy oddílů! Položka 1 říká, že je to %d, ale "
+"položka %d říká, že je to %d!"
+
+#: libparted/labels/mac.c:822
+#, fuzzy
+msgid "Weird!  There are 2 partitions map entries!"
+msgstr "Podivné - 2 položky mapy oddílu!"
+
+#: libparted/labels/mac.c:1347
+msgid ""
+"Changing the name of a root or swap partition will prevent Linux from "
+"recognising it as such."
+msgstr ""
+"Změna názvu kořenového nebo odkládacího oddílu zabrání Linuxu v jeho "
+"rozpoznání."
+
+#: libparted/labels/mac.c:1443
+#, fuzzy
+msgid "Can't add another partition -- the partition map is too small!"
+msgstr "Nemohu přidat další oddíl - mapa oddílů je příliš malá!"
+
+#: libparted/labels/pc98.c:354
+#, fuzzy, c-format
+msgid "Invalid partition table on %s."
+msgstr "Neplatná tabulka oddílů na %s"
+
+#: libparted/labels/pc98.c:406 libparted/labels/pc98.c:484
+#, fuzzy, c-format
+msgid ""
+"Partition %d isn't aligned to cylinder boundaries.  This is still "
+"unsupported."
+msgstr ""
+"Oddíl %d není zarovnán na hranice cylindru. Je potřeba přidat pro to podporu."
+
+#: libparted/labels/pc98.c:791
+msgid "Can't add another partition."
+msgstr "Nemohu přidat další oddíl."
+
+#: libparted/labels/rdb.c:162
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:497
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen."
+msgstr ""
+
+#: libparted/labels/rdb.c:581
+#, c-format
+msgid "%s : Loop detected at block %d."
+msgstr ""
+
+#: libparted/labels/rdb.c:600
+#, c-format
+msgid "%s : The %s list seems bad at block %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:689
+#, c-format
+msgid "%s : Failed to list bad blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:697
+#, c-format
+msgid "%s : Failed to list partition blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:705
+#, c-format
+msgid "%s : Failed to list file system blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:713
+#, c-format
+msgid "%s : Failed to list boot blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:740
+#, c-format
+msgid "Failed to write partition block at %d."
+msgstr ""
+
+#: libparted/labels/rdb.c:1069
+#, fuzzy
+msgid "Unable to allocate a partition number."
+msgstr "Očekávám číslo oddílu."
+
+#: libparted/labels/sun.c:145
+msgid "Corrupted Sun disk label detected."
+msgstr "Detekována poškozená jmenovka disku Sun."
+
+#: libparted/labels/sun.c:266
+#, fuzzy, c-format
+msgid ""
+"The disk CHS geometry (%d,%d,%d) reported by the operating system does not "
+"match the geometry stored on the disk label (%d,%d,%d)."
+msgstr ""
+"Geometrie disku CHS (%d,%d,%d) neodpovídá geometrii uložené v jmenovce disku "
+"(%d,%d,%d)."
+
+#: libparted/labels/sun.c:288
+#, c-format
+msgid "The disk label describes a disk bigger than %s."
+msgstr "Jmenovka disku popisuje disk větší než %s."
+
+#: libparted/labels/sun.c:442
+#, c-format
+msgid "The disk has %d cylinders, which is greater than the maximum of 65536."
+msgstr ""
+
+#: libparted/labels/sun.c:737
+msgid ""
+"The Whole Disk partition is the only available one left.  Generally, it is "
+"not a good idea to overwrite this partition with a real one.  Solaris may "
+"not be able to boot without it, and SILO (the sparc boot loader) appreciates "
+"it as well."
+msgstr ""
+"Jediný zbývající oddíl je oddíl Celý disk. Obecně není dobrý nápad tento "
+"oddíl přepsat skutečným oddílem. Bez něj možná nebude možné zavést Solaris a "
+"SILO (zavaděč systému pro sparc) jej také ocení."
+
+#: libparted/labels/sun.c:752
+msgid "Sun disk label is full."
+msgstr "Jmenovka disku Sun je plná."
+
+#: libparted/labels/vtoc.c:163
+#, c-format
+msgid ""
+"%s opening device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:167
+#, c-format
+msgid ""
+"%s seeking device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:171
+#, c-format
+msgid ""
+"%s writing to device '%s' failed,\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:175
+#, c-format
+msgid ""
+"%s reading from device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:179
+#, c-format
+msgid "Fatal error\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:418
+msgid "Could not read VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:424
+msgid "Could not read VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:431
+msgid "Could not read VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:438
+msgid "Could not read VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:445
+msgid "Could not read VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:462
+msgid "Could not write VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:468
+msgid "Could not write VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:475
+msgid "Could not write VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:482
+msgid "Could not write VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:489
+msgid "Could not write VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/libparted.c:296 libparted/libparted.c:316
+msgid "Out of memory."
+msgstr "Nedostatek paměti."
+
+#: libparted/unit.c:139
+msgid "Cannot get unit size for special unit 'COMPACT'."
+msgstr ""
+
+#: libparted/unit.c:386
+#, c-format
+msgid "\"%s\" has invalid syntax for locations."
+msgstr ""
+
+#: libparted/unit.c:394
+#, c-format
+msgid "The maximum head value is %d."
+msgstr ""
+
+#: libparted/unit.c:401
+#, c-format
+msgid "The maximum sector value is %d."
+msgstr ""
+
+#: libparted/unit.c:413 libparted/unit.c:545
+#, c-format
+msgid "The location %s is outside of the device %s."
+msgstr ""
+
+#: libparted/unit.c:527
+msgid "Invalid number."
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:63 libparted/fs/amiga/apfs.c:56
+#: libparted/fs/amiga/asfs.c:70
+#, fuzzy, c-format
+msgid "%s : Failed to allocate partition block\n"
+msgstr "Očekávám číslo oddílu."
+
+#: libparted/fs/amiga/affs.c:78 libparted/fs/amiga/apfs.c:70
+#: libparted/fs/amiga/asfs.c:86
+#, c-format
+msgid "%s : Failed to allocate block\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:83 libparted/fs/amiga/apfs.c:75
+#, c-format
+msgid "%s : Couldn't read boot block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:99 libparted/fs/amiga/apfs.c:86
+#: libparted/fs/amiga/asfs.c:92 libparted/fs/amiga/asfs.c:106
+#, c-format
+msgid "%s : Couldn't read root block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:72
+#, c-format
+msgid "%s : Failed to allocate id list element\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:189
+#, c-format
+msgid "%s : Couldn't read block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:202
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:212
+#, fuzzy, c-format
+msgid "%s : Couldn't write block %d\n"
+msgstr "%s při zápisu na %s"
+
+#: libparted/fs/amiga/amiga.c:278
+#, c-format
+msgid "%s : Failed to allocate disk_specific rdb block\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:289
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:318
+#, c-format
+msgid "%s : Failed to read partition block %llu\n"
+msgstr ""
+
+#: libparted/fs/ext2/ext2.c:87 libparted/fs/ext2/ext2.c:112
+msgid "Inconsistent group descriptors!"
+msgstr "Nekonzistentní deskriptory skupin!"
+
+#: libparted/fs/ext2/ext2.c:91 libparted/fs/ext2/ext2.c:116
+#, fuzzy
+msgid "File system full!"
+msgstr "Systém souborů plný!"
+
+#: libparted/fs/ext2/ext2.c:686
+#, fuzzy
+msgid "Invalid superblock.  Are you sure this is an ext2 file system?"
+msgstr "Neplatný superblok. Jste si jisti, že toto je systém souborů ext2?"
+
+#: libparted/fs/ext2/ext2.c:700 libparted/fs/ext2/ext2_resize.c:658
+#, fuzzy
+msgid "File system has errors!  You should run e2fsck."
+msgstr "Systém souborů má chyby! Měli byste spustit e2fsck."
+
+#: libparted/fs/ext2/ext2.c:711
+#, fuzzy
+msgid ""
+"File system was not cleanly unmounted!  You should run e2fsck.  Modifying an "
+"unclean file system could cause severe corruption."
+msgstr ""
+"Systém souborů nebyl čistě odpojen! Měli byste e2fsck. Úpravy nečistého "
+"systému souborů mohou způsobit vážné poškození dat."
+
+#: libparted/fs/ext2/ext2.c:731
+#, fuzzy
+msgid "File system has an incompatible feature enabled."
+msgstr "Systém souborů má povolenou nekompatibilní vlastnost"
+
+#: libparted/fs/ext2/ext2.c:742
+msgid "Error allocating buffer cache."
+msgstr "Chyba při alokaci buffer cache."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:114
+#, fuzzy
+msgid ""
+"Found an inode with a incorrect link count.  Better go run e2fsck first!"
+msgstr ""
+"Našel jsem inode s nesprávným počtem odkazů. Radši nejdřív spusťte e2fsck."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:487
+msgid "Not enough free inodes!"
+msgstr "Nedostatek volných inodů!"
+
+#: libparted/fs/ext2/ext2_resize.c:223
+#, fuzzy
+msgid "File system is too full to remove a group!"
+msgstr "Systém souborů je příliš plný na to, abych mohl odstranit skupinu!"
+
+#: libparted/fs/ext2/ext2_resize.c:232
+#, fuzzy
+msgid "File system has too many allocated inodes to remove a group!"
+msgstr ""
+"Systém souborů má příliš mnoho alokovaných inodů na to, abych mohl odstranit "
+"skupinu!"
+
+#: libparted/fs/ext2/ext2_resize.c:491
+msgid "adding groups"
+msgstr "přidávám skupiny"
+
+#: libparted/fs/ext2/ext2_resize.c:528
+#, fuzzy, c-format
+msgid "Your file system is too full to resize it to %i blocks.  Sorry."
+msgstr ""
+"Váš systém souborů je příliš plný na to, abych mohl změnit jeho velikost na %"
+"d bloků. Lituji."
+
+#: libparted/fs/ext2/ext2_resize.c:538
+#, fuzzy, c-format
+msgid ""
+"Your file system has too many occupied inodes to resize it to %i blocks.  "
+"Sorry."
+msgstr ""
+"Váš systém souborů má příliš mnoho použitých inodů na to, abych mohl změnit "
+"jeho velikost na %i bloků. Lituji."
+
+#: libparted/fs/ext2/ext2_resize.c:666
+#, fuzzy
+msgid "File system was not cleanly unmounted!  You should run e2fsck."
+msgstr "Systém souborů nebyl správně odpojen! Měli byste e2fsck."
+
+#: libparted/fs/ext2/ext2_resize.c:675
+msgid ""
+"The file system has the 'dir_index' feature enabled.  Parted can only resize "
+"the file system if it disables this feature.  You can enable it later by "
+"running 'tune2fs -O dir_index DEVICE' and then 'e2fsck -fD DEVICE'."
+msgstr ""
+"Systém souborů má povolenu vlastnost 'dir_index'. Parted může změnit "
+"velikost systému souborů, jen pokud tuto vlastnost zakáže. Můžete ji později "
+"povolit spuštěním 'tune2fs -O dir_index ZAŘÍZENÍ' a pak 'e2fsck -fD "
+"ZAŘÍZENÍ'."
+
+#: libparted/fs/ext2/ext2_resize.c:691
+msgid ""
+"A resize operation on this file system will use EXPERIMENTAL code\n"
+"that MAY CORRUPT it (although no one has reported any such damage yet).\n"
+"You should at least backup your data first, and run 'e2fsck -f' afterwards."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_block_relocator.c:198
+#, fuzzy
+msgid "Cross-linked blocks found!  Better go run e2fsck first!"
+msgstr "Nalezeny bloky s křížovými odkazy! Radši nejdřív spusťte e2fsck!"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:537
+#, fuzzy, c-format
+msgid "Block %i has no reference?  Weird."
+msgstr "Blok %i nemá odkaz? Divné"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:737
+#, fuzzy, c-format
+msgid "Block %i shouldn't have been marked (%d, %d)!"
+msgstr "Blok %i by neměl být označen!"
+
+#: libparted/fs/ext2/interface.c:186
+#, fuzzy
+msgid ""
+"The ext2 file system passed a basic check.  For a more comprehensive check, "
+"use the e2fsck program."
+msgstr ""
+"Systém souborů ext2 prošel základní kontrolou. Pro podrobnější kontrolu "
+"použijte program e2fsck."
+
+#: libparted/fs/ext2/interface.c:203
+msgid "Sorry, can't move the start of ext2 partitions yet!"
+msgstr "Lituji, ještě neumím přesunout začátek oddílů ext2!"
+
+#: libparted/fs/ext2/ext2_buffer.c:82
+msgid "Couldn't flush buffer cache!"
+msgstr "Nemohu vyprázdnit buffer cache!"
+
+#: libparted/fs/ext2/ext2_mkfs.c:162
+msgid "writing per-group metadata"
+msgstr "zapisuji metadata skupin"
+
+#: libparted/fs/ext2/ext2_mkfs.c:564
+msgid "File system too small for ext2."
+msgstr "Systém souborů příliš malý pro ext2."
+
+#: libparted/fs/fat/calc.c:135
+#, fuzzy, c-format
+msgid ""
+"You need %s of free disk space to shrink this partition to this size.  "
+"Currently, only %s is free."
+msgstr ""
+"Pro zmenšení tohoto oddílu na tuto velikost potřebujete %dM volného místa "
+"(momentálně máte volných jen %dM)"
+
+#: libparted/fs/fat/context.c:56
+#, c-format
+msgid ""
+"Cluster start delta = %d, which is not a multiple of the cluster size %d."
+msgstr "Změna začátku clusteru = %d, což není násobek velikosti clusteru %d."
+
+#: libparted/fs/fat/fat.c:308
+#, fuzzy, c-format
+msgid "Partition too big/small for a %s file system."
+msgstr "Oddíl je příliš velký/malý pro systém souborů %s"
+
+#: libparted/fs/fat/fat.c:474
+msgid ""
+"The FATs don't match.  If you don't know what this means, then select "
+"cancel, run scandisk on the file system, and then come back."
+msgstr ""
+"Tabulky FAT si neodpovídají. Pokud nevíte, co to znamená, zvolte Zrušit, "
+"spusťte na systému souborů scandisk a pak se vraťte."
+
+#: libparted/fs/fat/fat.c:514
+msgid "There are no possible configurations for this FAT type."
+msgstr "Pro tento typ FAT neexistuje možná konfigurace."
+
+#: libparted/fs/fat/fat.c:526
+#, c-format
+msgid ""
+"File system doesn't have expected sizes for Windows to like it.  Cluster "
+"size is %dk (%dk expected); number of clusters is %d (%d expected); size of "
+"FATs is %d sectors (%d expected)."
+msgstr ""
+"Systém souborů nemá očekávané velikosti, aby jej Windows měly rády. Velikost "
+"clusteru je %dk (očekáváno %dk); počet clusterů je %d (očekáváno %d); "
+"velikost FAT je %d sektorů (očekáváno %d)."
+
+#: libparted/fs/fat/fat.c:549
+#, c-format
+msgid ""
+"File system is reporting the free space as %d clusters, not %d clusters."
+msgstr "Systém souborů oznamuje volné místo jako %d clusterů, ne %d clusterů."
+
+#: libparted/fs/fat/fat.c:874
+#, fuzzy
+msgid ""
+"GNU Parted was miscompiled: the FAT boot sector should be 512 bytes.  FAT "
+"support will be disabled."
+msgstr ""
+"GNU parted byl nesprávně přeložen; zaváděcí sektor FAT by měl být 512 bajtů. "
+"Podpora FAT bude zakázána."
+
+#: libparted/fs/fat/resize.c:159
+#, fuzzy
+msgid ""
+"There's not enough room in the root directory for all of the files.  Either "
+"cancel, or ignore to lose the files."
+msgstr ""
+"V kořenovém adresáři není dostatek místa pro všechny souborů. Zvolte buď "
+"Zrušit, nebo Ignorovat pro ztrátu těchto souborů."
+
+#: libparted/fs/fat/resize.c:300
+msgid "Error writing to the root directory."
+msgstr "Chyba při zapisování do kořenového adresáře."
+
+#: libparted/fs/fat/resize.c:489
+#, fuzzy
+msgid "If you leave your file system as FAT16, then you will have no problems."
+msgstr ""
+"Pokud svůj systém souborů ponecháte jako FAT16, nebudete mít žádné problémy."
+
+#: libparted/fs/fat/resize.c:492
+msgid ""
+"If you convert to FAT16, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual)."
+msgstr ""
+"Pokud převedete na FAT16 a na tomto oddílu jsou nainstalovány MS Windows, "
+"musíte reinstalovat zavaděč systému MS Windows. Pokud to chcete udělat, měli "
+"byste si přečíst manuál Partedu (nebo manuál své distribuce)."
+
+#: libparted/fs/fat/resize.c:500
+msgid ""
+"If you leave your file system as FAT32, then you will not introduce any new "
+"problems."
+msgstr ""
+"Pokud svůj systém souborů ponecháte jako FAT16, nezpůsobíte žádné nové "
+"problémy."
+
+#: libparted/fs/fat/resize.c:504
+msgid ""
+"If you convert to FAT32, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual).  Also, "
+"converting to FAT32 will make the file system unreadable by MS DOS, MS "
+"Windows 95a, and MS Windows NT."
+msgstr ""
+"Pokud převedete na FAT32 a na tomto oddílu jsou nainstalovány MS Windows, "
+"musíte reinstalovat zavaděč systému MS Windows. Pokud to chcete udělat, měli "
+"byste si přečíst manuál Partedu (nebo manuál své distribuce). Převedení na "
+"FAT32 také učiní systém souborů nečitelným pro MS DOS, MS Windows 95a a MS "
+"Windows NT."
+
+#: libparted/fs/fat/resize.c:518
+#, c-format
+msgid "%s  %s  %s"
+msgstr "%s  %s  %s"
+
+#: libparted/fs/fat/resize.c:519
+msgid "Would you like to use FAT32?"
+msgstr "Chcete použít FAT32?"
+
+#: libparted/fs/fat/resize.c:550 libparted/fs/fat/resize.c:566
+#, c-format
+msgid "%s  %s"
+msgstr "%s  %s"
+
+#: libparted/fs/fat/resize.c:551
+msgid ""
+"The file system can only be resized to this size by converting to FAT16."
+msgstr ""
+"Velikost systému souborů může být na tuto hodnotu změněna jen převodem na "
+"FAT16."
+
+#: libparted/fs/fat/resize.c:567
+msgid ""
+"The file system can only be resized to this size by converting to FAT32."
+msgstr ""
+"Velikost systému souborů může být na tuto hodnotu změněna jen převodem na "
+"FAT32."
+
+#: libparted/fs/fat/resize.c:580
+#, fuzzy
+msgid ""
+"GNU Parted cannot resize this partition to this size.  We're working on it!"
+msgstr ""
+"GNU Parted neumí změnit velikost tohoto oddílu na tuto hodnotu. Pracujeme na "
+"tom!"
+
+#: libparted/fs/fat/bootsector.c:49 libparted/fs/fat/bootsector.c:56
+msgid "File system has an invalid signature for a FAT file system."
+msgstr "Systém souborů má neplatný podpis pro systém souborů FAT."
+
+#: libparted/fs/fat/bootsector.c:64
+msgid "File system has an invalid sector size for a FAT file system."
+msgstr "Systém souborů má neplatnou velikost sektoru pro systém souborů FAT."
+
+#: libparted/fs/fat/bootsector.c:71
+msgid "File system has an invalid cluster size for a FAT file system."
+msgstr "Systém souborů má neplatnou velikost clusteru pro systém souborů FAT."
+
+#: libparted/fs/fat/bootsector.c:78
+#, fuzzy
+msgid ""
+"File system has an invalid number of reserved sectors for a FAT file system."
+msgstr ""
+"Systém souborů má neplatný počet rezervovaných sektorů pro systém souborů "
+"FAT."
+
+#: libparted/fs/fat/bootsector.c:85
+#, fuzzy
+msgid "File system has an invalid number of FATs."
+msgstr "Systém souborů má neplatný počet FAT."
+
+#: libparted/fs/fat/bootsector.c:139
+#, c-format
+msgid ""
+"This file system has a logical sector size of %d.  GNU Parted is known not "
+"to work properly with sector sizes other than 512 bytes."
+msgstr ""
+"Systém souborů má logickou velikost sektoru %d. Ví se, že GNU Parted "
+"nepracuje správně s velikostí sektoru jinou než 512 bajtů."
+
+#: libparted/fs/fat/bootsector.c:164
+#, c-format
+msgid ""
+"The file system's CHS geometry is (%d, %d, %d), which is invalid.  The "
+"partition table's CHS geometry is (%d, %d, %d).  If you select Ignore, the "
+"file system's CHS geometry will be left unchanged.  If you select Fix, the "
+"file system's CHS geometry will be set to match the partition table's CHS "
+"geometry."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:213
+msgid "FAT boot sector says logical sector size is 0.  This is weird. "
+msgstr ""
+"Zaváděcí sektor FAT říká, že logická velikost sektoru je 0. To je divné. "
+
+#: libparted/fs/fat/bootsector.c:219
+msgid "FAT boot sector says there are no FAT tables.  This is weird. "
+msgstr ""
+"Zaváděcí sektor FAT říká, že neexistuje žádná tabulka FAT. To je divné. "
+
+#: libparted/fs/fat/bootsector.c:225
+msgid "FAT boot sector says clusters are 0 sectors.  This is weird. "
+msgstr "Zaváděcí sektor FAT říká, že cluster je 0 sektorů. To je divné. "
+
+#: libparted/fs/fat/bootsector.c:235
+#, fuzzy
+msgid "File system is FAT12, which is unsupported."
+msgstr "Souborový systém je FAT12, což není podporováno."
+
+#: libparted/fs/fat/bootsector.c:411
+#, c-format
+msgid ""
+"The information sector has the wrong signature (%x).  Select cancel for now, "
+"and send in a bug report.  If you're desperate, it's probably safe to ignore."
+msgstr ""
+"Sektor informací má nesprávný podpis (%x). Zatím zvolte Zrušit a pošlete "
+"hlášení o chybě. Pokud jste v úzkých, můžete to pravděpodobně bez obav "
+"ignorovat."
+
+#: libparted/fs/fat/count.c:152
+#, c-format
+msgid "Bad directory entry for %s: first cluster is the end of file marker."
+msgstr "Špatná položka adresáře pro %s: první cluster je značka konce souboru."
+
+#: libparted/fs/fat/count.c:165
+#, c-format
+msgid ""
+"Bad FAT: unterminated chain for %s.  You should run dosfsck or scandisk."
+msgstr ""
+"Špatná FAT: neukončený řetězec pro %s. Měli byste spustit dosfsck nebo "
+"scandisk."
+
+#: libparted/fs/fat/count.c:174
+#, fuzzy, c-format
+msgid ""
+"Bad FAT: cluster %d outside file system in chain for %s.  You should run "
+"dosfsck or scandisk."
+msgstr ""
+"Špatná FAT: cluster %d je mimo systém souborů v řetězci pro %s. Měli byste "
+"spustit dosfsck nebo scandisk."
+
+#: libparted/fs/fat/count.c:184
+#, c-format
+msgid ""
+"Bad FAT: cluster %d is cross-linked for %s.  You should run dosfsck or "
+"scandisk."
+msgstr ""
+"Špatná FAT: cluster %d pro %s má křížové odkazy. Měli byste spustit dosfsck "
+"nebo scandisk."
+
+#: libparted/fs/fat/count.c:203
+#, c-format
+msgid "%s is %dk, but it has %d clusters (%dk)."
+msgstr "%s je %dk, ale má %d clusterů (%dk)."
+
+#: libparted/fs/fat/count.c:266
+#, c-format
+msgid ""
+"The file %s is marked as a system file.  This means moving it could cause "
+"some programs to stop working."
+msgstr ""
+"Soubor %s je označen jako systémový soubor. To znamená, že jeho přesun může "
+"způsobit, že některé programy přestanou fungovat."
+
+#: libparted/fs/fat/table.c:137
+#, c-format
+msgid ""
+"FAT %d media %x doesn't match the boot sector's media %x.  You should "
+"probably run scandisk."
+msgstr ""
+"FAT %d media %x neodpovídá media %x zaváděcího sektoru. Pravděpodobně byste "
+"měli spustit scandisk."
+
+#: libparted/fs/fat/table.c:269
+#, fuzzy, c-format
+msgid "fat_table_set: cluster %ld outside file system"
+msgstr "fat_table_set: cluster %ld mimo systém souborů"
+
+#: libparted/fs/fat/table.c:301
+#, fuzzy, c-format
+msgid "fat_table_get: cluster %ld outside file system"
+msgstr "fat_table_get: cluster %ld mimo systém souborů"
+
+#: libparted/fs/fat/table.c:343
+msgid "fat_table_alloc_cluster: no free clusters"
+msgstr "fat_table_alloc_cluster: nejsou volné clustery"
+
+#: libparted/fs/linux_swap/linux_swap.c:275
+#, fuzzy, c-format
+msgid "Unrecognised old style linux swap signature '%10s'."
+msgstr "Nerozpoznaný podpis odkládacího oddílu linuxu '%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:318
+#, fuzzy, c-format
+msgid "Unrecognised new style linux swap signature '%10s'."
+msgstr "Nerozpoznaný podpis odkládacího oddílu linuxu '%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:358
+#, fuzzy, c-format
+msgid "Unrecognised swsusp linux swap signature '%9s'."
+msgstr "Nerozpoznaný podpis odkládacího oddílu linuxu '%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:434
+msgid "Too many bad pages."
+msgstr "Příliš mnoho špatných stránek."
+
+#: libparted/fs/hfs/advfs.c:121 libparted/fs/hfs/advfs_plus.c:122
+#: libparted/fs/hfs/reloc.c:414 libparted/fs/hfs/reloc.c:508
+#: libparted/fs/hfs/reloc_plus.c:539 libparted/fs/hfs/reloc_plus.c:658
+#: libparted/fs/hfs/reloc_plus.c:772
+msgid "The file system contains errors."
+msgstr ""
+
+#: libparted/fs/hfs/advfs_plus.c:287
+msgid "Bad blocks could not be read."
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:137
+#, c-format
+msgid ""
+"Trying to register an extent starting at block 0x%X, but another one already "
+"exists at this position.  You should check the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:214
+#, c-format
+msgid ""
+"Trying to move an extent from block Ox%X to block Ox%X, but another one "
+"already exists at this position.  This should not happen!"
+msgstr ""
+
+#: libparted/fs/hfs/file.c:143
+#, c-format
+msgid "Could not update the extent cache for HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:180
+#, c-format
+msgid "Trying to read HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:190 libparted/fs/hfs/file.c:220
+#, c-format
+msgid "Could not find sector %lli of HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:210
+#, c-format
+msgid "Trying to write HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:157
+#, c-format
+msgid "Could not update the extent cache for HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:202
+#, c-format
+msgid "Trying to read HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:213 libparted/fs/hfs/file_plus.c:256
+#, c-format
+msgid "Could not find sector %lli of HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:245
+#, c-format
+msgid "Trying to write HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:232
+msgid "Sorry, HFS cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:262 libparted/fs/hfs/hfs.c:641
+msgid "Data relocation has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:281
+msgid "Data relocation left some data in the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:320
+#, fuzzy
+msgid "writing HFS Master Directory Block"
+msgstr "Chyba při zapisování do kořenového adresáře."
+
+#: libparted/fs/hfs/hfs.c:468
+msgid "No valid HFS[+X] signature has been found while opening."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:478
+#, c-format
+msgid "Version %d of HFS+ isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:489
+#, c-format
+msgid "Version %d of HFSX isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:672
+msgid "Data relocation left some data at the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:720
+#, fuzzy
+msgid "Error while writing the allocation file."
+msgstr "Chyba při zapisování do kořenového adresáře."
+
+#: libparted/fs/hfs/hfs.c:735
+msgid "Error while writing the compatibility part of the allocation file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:750
+msgid "writing HFS+ Volume Header"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:850
+msgid "An error occurred while looking for the mandatory bad blocks file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:904
+msgid ""
+"It seems there is an error in the HFS wrapper: the bad blocks file doesn't "
+"contain the embedded HFS+ volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:940
+msgid "Sorry, HFS+ cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:975
+msgid "shrinking embedded HFS+ volume"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:991
+msgid "Resizing the HFS+ volume has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:998
+#, fuzzy
+msgid "shrinking HFS wrapper"
+msgstr "zmenšuji"
+
+#: libparted/fs/hfs/hfs.c:1007
+msgid "Updating the HFS wrapper has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:1109 libparted/fs/hfs/hfs.c:1194
+#, c-format
+msgid ""
+"This is not a real %s check.  This is going to extract special low level "
+"files for debugging purposes."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:155
+msgid "Bad block list header checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:168
+#, c-format
+msgid ""
+"Invalid size of a transaction block while replaying the journal (%i bytes)."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:260
+msgid ""
+"Journal stored outside of the volume are not supported.  Try to desactivate "
+"the journal and run Parted again."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:271
+#, fuzzy
+msgid "Journal offset or size is not multiple of the sector size."
+msgstr "Změna začátku clusteru = %d, což není násobek velikosti clusteru %d."
+
+#: libparted/fs/hfs/journal.c:292
+msgid "Incorrect magic values in the journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:302
+msgid "Journal size mismatch between journal info block and journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:314
+#, fuzzy
+msgid "Some header fields are not multiple of the sector size."
+msgstr "Změna začátku clusteru = %d, což není násobek velikosti clusteru %d."
+
+#: libparted/fs/hfs/journal.c:323
+msgid ""
+"The sector size stored in the journal is not 512 bytes.  Parted only "
+"supports 512 bytes length sectors."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:335
+msgid "Bad journal checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:353
+msgid ""
+"The journal is not empty.  Parted must replay the transactions before "
+"opening the file system.  This will modify the file system."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:381
+msgid ""
+"The volume header or the master directory block has changed while replaying "
+"the journal.  You should restart Parted."
+msgstr ""
+
+#: libparted/fs/hfs/probe.c:51
+#, c-format
+msgid ""
+"Parted can't use HFS file systems on disks with a sector size not equal to %"
+"d bytes."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:151 libparted/fs/hfs/reloc_plus.c:155
+msgid "An extent has not been relocated."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:251 libparted/fs/hfs/reloc_plus.c:307
+msgid ""
+"A reference to an extent comes from a place it should not.  You should check "
+"the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:381
+msgid "This HFS volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:475
+msgid "This HFS volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:517 libparted/fs/hfs/reloc_plus.c:668
+msgid ""
+"The extents overflow file should not contain its own extents!  You should "
+"check the file system."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:574 libparted/fs/hfs/reloc_plus.c:847
+#, fuzzy
+msgid "Could not cache the file system in memory."
+msgstr "Nemohu detekovat systém souborů."
+
+#: libparted/fs/hfs/reloc.c:635 libparted/fs/hfs/reloc_plus.c:908
+msgid "Bad blocks list could not be loaded."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:649 libparted/fs/hfs/reloc_plus.c:924
+msgid "An error occurred during extent relocation."
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:495
+msgid "This HFS+ volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:619
+msgid "This HFS+ volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: parted/parted.c:94
+msgid "displays this help message"
+msgstr "zobrazí tuto zprávu nápovědy"
+
+#: parted/parted.c:95
+msgid "lists partition layout on all block devices"
+msgstr ""
+
+#: parted/parted.c:96
+msgid "displays machine parseable output"
+msgstr ""
+
+#: parted/parted.c:97
+msgid "never prompts for user intervention"
+msgstr "nikdy nežádá o intervenci uživatele"
+
+#: parted/parted.c:98
+msgid "displays the version"
+msgstr "zobrazí verzi"
+
+#: parted/parted.c:111
+#, fuzzy
+msgid ""
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"
+msgstr ""
+"MINOR je číslo oddílu používané Linuxem. Na jmenovkách disku msdos mají "
+"primární oddíly čísla 1-4 a logické oddíly jsou od 5 dál.\n"
+
+#: parted/parted.c:114
+msgid "LABEL-TYPE is one of: "
+msgstr "TYP-JMENOVKY je jeden z: "
+
+#: parted/parted.c:115
+msgid "FLAG is one of: "
+msgstr "PŘEPÍNAČ je jeden z: "
+
+#: parted/parted.c:116
+#, fuzzy
+msgid "UNIT is one of: "
+msgstr "PŘEPÍNAČ je jeden z: "
+
+#: parted/parted.c:117
+msgid "PART-TYPE is one of: primary, logical, extended\n"
+msgstr "TYP-ODDÍLU je jeden z: primary, logical, extended\n"
+
+#: parted/parted.c:119
+msgid "FS-TYPE is one of: "
+msgstr "TYP-FS je jeden z: "
+
+#: parted/parted.c:120
+#, fuzzy
+msgid ""
+"START and END are disk locations, such as 4GB or 10%.  Negative values count "
+"from the end of the disk.  For example, -1s specifies exactly the last "
+"sector.\n"
+msgstr ""
+"ZAČÁTEK a KONEC jsou v megabajtech. Záporné hodnoty se odčítají od konce "
+"disku.\n"
+
+#: parted/parted.c:123
+msgid "STATE is one of: on, off\n"
+msgstr "STAV je jeden z: on, off\n"
+
+#: parted/parted.c:124
+msgid "DEVICE is usually /dev/hda or /dev/sda\n"
+msgstr "ZAŘÍZENÍ je obvykle /dev/hda nebo /dev/sda\n"
+
+#: parted/parted.c:125
+msgid "NAME is any word you want\n"
+msgstr "NÁZEV je libovolné slovo\n"
+
+#: parted/parted.c:126
+msgid "The partition must have one of the following FS-TYPEs: "
+msgstr ""
+
+#: parted/parted.c:130
+#, fuzzy
+msgid ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+msgstr ""
+"Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, "
+"Inc.\n"
+"Toto je volné programové vybavení podle GNU General Public License.\n"
+"\n"
+"Tento program je rozšiřován v naději, že bude užitečný, ale BEZ JAKÉKOLI "
+"ZÁRUKY; bez i předpokládané záruky PRODEJNOSTI nebo VHODNOSTI PRO KONKRÉTNÍ "
+"ÚČEL. Další podrobnosti najdete v GNU General Public License.\n"
+"\n"
+
+#: parted/parted.c:176
+#, c-format
+msgid "%0.f%%\t(time left %.2d:%.2d)"
+msgstr "%0.f%%\t(zbylý čas %.2d:%.2d)"
+
+#: parted/parted.c:195
+#, c-format
+msgid ""
+"Partition %s is being used. You must unmount it before you modify it with "
+"Parted."
+msgstr ""
+
+#: parted/parted.c:211
+#, c-format
+msgid "Partition(s) on %s are being used."
+msgstr "Oddíl(a) na %s jsou používány."
+
+#: parted/parted.c:223
+msgid ""
+"The existing file system will be destroyed and all data on the partition "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:235
+#, c-format
+msgid ""
+"The existing disk label on %s will be destroyed and all data on this disk "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:458 parted/parted.c:652 parted/parted.c:1044
+#: parted/parted.c:1128 parted/parted.c:1771 parted/parted.c:1852
+#: parted/parted.c:1900
+msgid "Partition number?"
+msgstr "Číslo oddílu?"
+
+#: parted/parted.c:500
+msgid "Source device?"
+msgstr "Zdrojové zařízení?"
+
+#: parted/parted.c:504
+msgid "Source partition number?"
+msgstr "Číslo zdrojového oddílu?"
+
+#: parted/parted.c:509
+#, fuzzy
+msgid "Can't copy an extended partition."
+msgstr "Nemohu kopírovat rozšířené oddíly."
+
+#: parted/parted.c:515
+msgid "Destination partition number?"
+msgstr "Číslo cílového oddílu?"
+
+#: parted/parted.c:615
+msgid "New disk label type?"
+msgstr "Typ nové jmenovky disku?"
+
+#: parted/parted.c:656
+msgid "File system?"
+msgstr "Systém souborů?"
+
+#: parted/parted.c:707 parted/parted.c:878
+msgid "Partition type?"
+msgstr "Typ oddílu?"
+
+#: parted/parted.c:714 parted/parted.c:885 parted/parted.c:1131
+msgid "Partition name?"
+msgstr "Název oddílu?"
+
+#: parted/parted.c:722 parted/parted.c:895
+msgid "File system type?"
+msgstr "Typ souborového systému?"
+
+#: parted/parted.c:729 parted/parted.c:897 parted/parted.c:1059
+#: parted/parted.c:1725 parted/parted.c:1780
+msgid "Start?"
+msgstr "Začátek?"
+
+#: parted/parted.c:731 parted/parted.c:900 parted/parted.c:1062
+#: parted/parted.c:1727 parted/parted.c:1782
+msgid "End?"
+msgstr "Konec?"
+
+#: parted/parted.c:769 parted/parted.c:938
+#, c-format
+msgid ""
+"You requested a partition from %s to %s.\n"
+"The closest location we can manage is %s to %s.  Is this still acceptable to "
+"you?"
+msgstr ""
+
+#: parted/parted.c:890
+#, fuzzy
+msgid "An extended partition cannot hold a file system.  Did you want mkpart?"
+msgstr "Rozšířené oddíly nemohou mít systém souborů. Chtěli jste mkpart?"
+
+#: parted/parted.c:1050
+#, fuzzy
+msgid "Can't move an extended partition."
+msgstr "Nemohu přesouvat rozšířené oddíly."
+
+#: parted/parted.c:1079
+msgid "Can't move a partition onto itself.  Try using resize, perhaps?"
+msgstr "Nemohu přesunout oddíl na sebe. Možná zkuste použít resize?"
+
+#: parted/parted.c:1227
+#, c-format
+msgid "Minor: %d\n"
+msgstr "Minor: %d\n"
+
+#: parted/parted.c:1228
+#, fuzzy, c-format
+msgid "Flags: %s\n"
+msgstr "Přepínače: "
+
+#: parted/parted.c:1229
+#, c-format
+msgid "File System: %s\n"
+msgstr "Systém souborů: %s\n"
+
+#: parted/parted.c:1230
+#, fuzzy
+msgid "Size:         "
+msgstr "Velikost:           %10.3fMb (%d%%)\n"
+
+#: parted/parted.c:1235
+#, fuzzy
+msgid "Minimum size: "
+msgstr "Minimální velikost: %10.3fMb (%d%%)\n"
+
+#: parted/parted.c:1238
+#, fuzzy
+msgid "Maximum size: "
+msgstr "Maximální velikost: %10.3fMb (%d%%)\n"
+
+#: parted/parted.c:1362
+#, c-format
+msgid "Model: %s (%s)\n"
+msgstr ""
+
+#: parted/parted.c:1364
+#, fuzzy, c-format
+msgid "Disk %s: %s\n"
+msgstr "%s  %s  %s"
+
+#: parted/parted.c:1365
+#, c-format
+msgid "Sector size (logical/physical): %lldB/%lldB\n"
+msgstr ""
+
+#: parted/parted.c:1383
+#, c-format
+msgid "BIOS cylinder,head,sector geometry: %d,%d,%d.  Each cylinder is %s.\n"
+msgstr ""
+
+#: parted/parted.c:1392
+#, fuzzy, c-format
+msgid "Partition Table: %s\n"
+msgstr "Název oddílu?"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Number"
+msgstr ""
+
+#: parted/parted.c:1406 parted/parted.c:1409
+#, fuzzy
+msgid "Start"
+msgstr "Začátek?"
+
+#: parted/parted.c:1407 parted/parted.c:1410
+#, fuzzy
+msgid "End"
+msgstr "Konec?"
+
+#: parted/parted.c:1410
+#, fuzzy
+msgid "Size"
+msgstr "resize"
+
+#: parted/parted.c:1414
+msgid "Type"
+msgstr ""
+
+#: parted/parted.c:1416
+#, fuzzy
+msgid "File system"
+msgstr "Systém souborů?"
+
+#: parted/parted.c:1419
+#, fuzzy
+msgid "Name"
+msgstr "name"
+
+#: parted/parted.c:1421
+msgid "Flags"
+msgstr "Přepínače"
+
+#: parted/parted.c:1477
+msgid "Free Space"
+msgstr ""
+
+#: parted/parted.c:1624
+#, fuzzy, c-format
+msgid ""
+"A %s %s partition was found at %s -> %s.  Do you want to add it to the "
+"partition table?"
+msgstr ""
+"Byl nalezen oddíl %s %s na %.3fMb -> %.3fMb. Chcete jej přidat do tabulky "
+"oddílů?"
+
+#: parted/parted.c:1663
+msgid "searching for file systems"
+msgstr "hledám systémy souborů"
+
+#: parted/parted.c:1877
+msgid "New device?"
+msgstr "Nové zařízení?"
+
+#: parted/parted.c:1902
+#, fuzzy
+msgid "Flag to Invert?"
+msgstr "Přepínač, který změnit?"
+
+#: parted/parted.c:1907
+msgid "New state?"
+msgstr "Nový stav?"
+
+#: parted/parted.c:1944
+msgid "Unit?"
+msgstr ""
+
+#: parted/parted.c:2093
+msgid "check"
+msgstr "check"
+
+#: parted/parted.c:2096
+#, fuzzy
+msgid ""
+"check NUMBER                             do a simple check on the file system"
+msgstr ""
+"check MINOR                   provést jednoduchou kontrolu systému souborů"
+
+#: parted/parted.c:2102
+msgid "cp"
+msgstr "cp"
+
+#: parted/parted.c:2105
+#, fuzzy
+msgid ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+"partition"
+msgstr ""
+"cp [OD-ZAŘÍZENÍ] OD-MINOR DO-MINOR        zkopírovat systém souborů na jiný "
+"oddíl"
+
+#: parted/parted.c:2111
+msgid "help"
+msgstr "help"
+
+#: parted/parted.c:2114
+#, fuzzy
+msgid ""
+"help [COMMAND]                           print general help, or help on "
+"COMMAND"
+msgstr ""
+"help [PŘÍKAZ]                 vypíše obecnou nápovědu nebo nápovědu o PŘÍKAZu"
+
+#: parted/parted.c:2120
+msgid "mklabel"
+msgstr "mklabel"
+
+#: parted/parted.c:2120
+#, fuzzy
+msgid "mktable"
+msgstr "mklabel"
+
+#: parted/parted.c:2123
+#, fuzzy
+msgid ""
+"mklabel,mktable LABEL-TYPE               create a new disklabel (partition "
+"table)"
+msgstr ""
+"mklabel TYP-JMENOVKY          vytvořit novou jmenovku disku (tabulku oddílů)"
+
+#: parted/parted.c:2129
+msgid "mkfs"
+msgstr "mkfs"
+
+#: parted/parted.c:2132
+#, fuzzy
+msgid ""
+"mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on "
+"partititon NUMBER"
+msgstr ""
+"mkfs MINOR TYP-FS             vytvořit systém souborů FS-TYPE na oddílu MINOR"
+
+#: parted/parted.c:2138
+msgid "mkpart"
+msgstr "mkpart"
+
+#: parted/parted.c:2141
+#, fuzzy
+msgid "mkpart PART-TYPE [FS-TYPE] START END     make a partition"
+msgstr "mkpart TYP-ODDÍLU [TYP-FS] ZAČÁTEK KONEC  vytvořit oddíl"
+
+#: parted/parted.c:2147
+#, fuzzy
+msgid ""
+"'mkpart' makes a partition without creating a new file system on the "
+"partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"
+msgstr ""
+"mkpart vytvoří oddíl bez vytvoření nového systému souborů na něm. TYP-FS "
+"může být určen pro nastavení odpovídajícího ID oddílu.\n"
+
+#: parted/parted.c:2152
+msgid "mkpartfs"
+msgstr "mkpartfs"
+
+#: parted/parted.c:2155
+#, fuzzy
+msgid ""
+"mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system"
+msgstr ""
+"mkpartfs TYP-ODDÍLU TYP-FS ZAČÁTEK KONEC  vytvořit oddíl se systémem souborů"
+
+#: parted/parted.c:2161
+msgid "move"
+msgstr "move"
+
+#: parted/parted.c:2164
+#, fuzzy
+msgid "move NUMBER START END                    move partition NUMBER"
+msgstr "move MINOR ZAČÁTEK KONEC      přesunout oddíl MINOR"
+
+#: parted/parted.c:2169
+msgid "name"
+msgstr "name"
+
+#: parted/parted.c:2172
+#, fuzzy
+msgid "name NUMBER NAME                         name partition NUMBER as NAME"
+msgstr "name MINOR NÁZEV              pojmenovat oddíl MINOR NÁZEV"
+
+#: parted/parted.c:2177
+msgid "print"
+msgstr "print"
+
+#: parted/parted.c:2180
+msgid ""
+"print [devices|free|list,all|NUMBER]     display the partition table, "
+"available devices, free space, all found partitions, or a particular "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2185
+msgid ""
+"Without arguments, 'print' displays the entire partition table. However with "
+"the following arguments it performs various other actions.\n"
+msgstr ""
+
+#: parted/parted.c:2187
+msgid "  devices   : display all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2188
+msgid ""
+"  free      : display information about free unpartitioned space on the "
+"current block device\n"
+msgstr ""
+
+#: parted/parted.c:2190
+#, fuzzy
+msgid ""
+"  list, all : display the partition tables of all active block devices\n"
+msgstr "print [MINOR]                 zobrazit tabulku oddílů nebo oddíl"
+
+#: parted/parted.c:2191
+msgid ""
+"  NUMBER    : display more detailed information about this particular "
+"partition\n"
+msgstr ""
+
+#: parted/parted.c:2196
+msgid "quit"
+msgstr "quit"
+
+#: parted/parted.c:2199
+#, fuzzy
+msgid "quit                                     exit program"
+msgstr "quit                          ukončit program"
+
+#: parted/parted.c:2204
+msgid "rescue"
+msgstr "rescue"
+
+#: parted/parted.c:2207
+#, fuzzy
+msgid ""
+"rescue START END                         rescue a lost partition near START "
+"and END"
+msgstr ""
+"rescue ZAČÁTEK KONEC          zachránit ztracený oddíl poblíž ZAČÁTKU a KONCE"
+
+#: parted/parted.c:2213
+msgid "resize"
+msgstr "resize"
+
+#: parted/parted.c:2216
+#, fuzzy
+msgid ""
+"resize NUMBER START END                  resize partition NUMBER and its "
+"file system"
+msgstr ""
+"rescue ZAČÁTEK KONEC          zachránit ztracený oddíl poblíž ZAČÁTKU a KONCE"
+
+#: parted/parted.c:2224
+msgid "rm"
+msgstr "rm"
+
+#: parted/parted.c:2227
+#, fuzzy
+msgid "rm NUMBER                                delete partition NUMBER"
+msgstr "rm MINOR                      odstranit oddíl MINOR"
+
+#: parted/parted.c:2232
+msgid "select"
+msgstr "select"
+
+#: parted/parted.c:2235
+#, fuzzy
+msgid "select DEVICE                            choose the device to edit"
+msgstr "select ZAŘÍZENÍ               zvolit upravované zařízení"
+
+#: parted/parted.c:2240
+msgid "set"
+msgstr "set"
+
+#: parted/parted.c:2243
+#, fuzzy
+msgid ""
+"set NUMBER FLAG STATE                    change the FLAG on partition NUMBER"
+msgstr "set MINOR PŘEPÍNAČ STAV       změnit přepínač na oddílu MINOR"
+
+#: parted/parted.c:2249
+msgid "toggle"
+msgstr ""
+
+#: parted/parted.c:2252
+msgid ""
+"toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+"partition NUMBER"
+msgstr ""
+
+#: parted/parted.c:2258
+#, fuzzy
+msgid "unit"
+msgstr "quit"
+
+#: parted/parted.c:2261
+#, fuzzy
+msgid "unit UNIT                                set the default unit to UNIT"
+msgstr "quit                          ukončit program"
+
+#: parted/parted.c:2266
+msgid "version"
+msgstr ""
+
+#: parted/parted.c:2269
+msgid ""
+"version                                  display the version number and "
+"copyright information of GNU Parted"
+msgstr ""
+
+#: parted/parted.c:2273
+msgid ""
+"'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"
+msgstr ""
+
+#: parted/parted.c:2335
+#, c-format
+msgid "Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"
+msgstr ""
+
+#: parted/parted.c:2379
+msgid "No device found"
+msgstr "Nenalezeno žádné zařízení"
+
+#: parted/parted.c:2412
+msgid "WARNING: You are not superuser.  Watch out for permissions."
+msgstr ""
+
+#: parted/parted.c:2450
+#, fuzzy
+msgid "You may need to update /etc/fstab.\n"
+msgstr "Nezapomeňte aktualizovat /etc/fstab, je-li to potřeba.\n"
+
+#: parted/ui.c:160
+msgid "Welcome to GNU Parted! Type 'help' to view a list of commands.\n"
+msgstr ""
+
+#: parted/ui.c:163
+#, fuzzy
+msgid ""
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run "
+"in\n"
+"interactive mode.\n"
+msgstr ""
+"Použití: parted [PŘEPÍNAČ]... [ZAŘÍZENÍ [PŘÍKAZ [PARAMETRY]...]...]\n"
+"Provést PŘÍKAZy s PARAMETRY na ZAŘÍZENÍ. Není-li zadán PŘÍKAZ, běží v "
+"interaktivním režimu.\n"
+
+#: parted/ui.c:168
+#, c-format
+msgid ""
+"\n"
+"\n"
+"You found a bug in GNU Parted! Here's what you have to do:\n"
+"\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n"
+"\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Please check this version prior to bug reporting.\n"
+"\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"for further information.\n"
+"\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n"
+msgstr ""
+
+#: parted/ui.c:284
+msgid ""
+"\n"
+"Command History:\n"
+msgstr ""
+
+#: parted/ui.c:366
+msgid ""
+"\n"
+"Error: SEGV_MAPERR (Address not mapped to object)\n"
+msgstr ""
+
+#: parted/ui.c:372
+msgid ""
+"\n"
+"Error: SEGV_ACCERR (Invalid permissions for mapped object)\n"
+msgstr ""
+
+#: parted/ui.c:377
+msgid ""
+"\n"
+"Error: A general SIGSEGV signal was encountered.\n"
+msgstr ""
+
+#: parted/ui.c:410
+msgid ""
+"\n"
+"Error: FPE_INTDIV (Integer: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:415
+msgid ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+msgstr ""
+
+#: parted/ui.c:420
+msgid ""
+"\n"
+"Error: FPE_FLTDIV (Float: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:425
+msgid ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+msgstr ""
+
+#: parted/ui.c:430
+msgid ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+msgstr ""
+
+#: parted/ui.c:435
+msgid ""
+"\n"
+"Error: FPE_FLTRES (Float: inexact result)"
+msgstr ""
+
+#: parted/ui.c:440
+msgid ""
+"\n"
+"Error: FPE_FLTINV (Float: invalid operation)"
+msgstr ""
+
+#: parted/ui.c:445
+msgid ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript out of range)"
+msgstr ""
+
+#: parted/ui.c:450
+msgid ""
+"\n"
+"Error: A general SIGFPE signal was encountered."
+msgstr ""
+
+#: parted/ui.c:483
+msgid ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+msgstr ""
+
+#: parted/ui.c:488
+msgid ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+msgstr ""
+
+#: parted/ui.c:493
+msgid ""
+"\n"
+"Error: ILL_ILLADR (Illegal addressing mode)"
+msgstr ""
+
+#: parted/ui.c:498
+msgid ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+msgstr ""
+
+#: parted/ui.c:503
+msgid ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+msgstr ""
+
+#: parted/ui.c:508
+msgid ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+msgstr ""
+
+#: parted/ui.c:513
+msgid ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+msgstr ""
+
+#: parted/ui.c:518
+msgid ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+msgstr ""
+
+#: parted/ui.c:523
+msgid ""
+"\n"
+"Error: A general SIGILL signal was encountered."
+msgstr ""
+
+#: parted/ui.c:1024
+msgid "Expecting a partition number."
+msgstr "Očekávám číslo oddílu."
+
+#: parted/ui.c:1033
+msgid "Partition doesn't exist."
+msgstr "Oddíl neexistuje."
+
+#: parted/ui.c:1053
+msgid "Expecting a file system type."
+msgstr "Očekávám typ systému souborů."
+
+#: parted/ui.c:1060
+#, c-format
+msgid "Unknown file system type \"%s\"."
+msgstr "Neznámý typ systému souborů \"%s\"."
+
+#: parted/ui.c:1080
+msgid "Expecting a disk label type."
+msgstr "Očekávám typ jmenovky disku."
+
+#: parted/ui.c:1178
+msgid "Can't create any more partitions."
+msgstr "Nemohu vytvářet další oddíly."
+
+#: parted/ui.c:1188
+msgid "Expecting a partition type."
+msgstr "Očekávám typ oddílu."
+
+#: parted/ui.c:1315
+msgid "on"
+msgstr "on"
+
+#: parted/ui.c:1316
+msgid "off"
+msgstr "off"
+
+#: parted/ui.c:1431
+msgid "OPTIONs:"
+msgstr "PŘEPÍNAČe:"
+
+#: parted/ui.c:1436
+msgid "COMMANDs:"
+msgstr "PŘÍKAZy:"
+
+#: parted/ui.c:1445
+#, c-format
+msgid "Using %s\n"
+msgstr "Používám %s\n"
+
+#: parted/ui.c:1519
+msgid "This command does not make sense in non-interactive mode.\n"
+msgstr ""
+
+#~ msgid "where necessary, prompts for user intervention"
+#~ msgstr "je-li potřeba, požádá o intervenci uživatele"
+
+#, fuzzy
+#~ msgid ""
+#~ "Without arguments, print displays the entire partition table. With "
+#~ "'free'\n"
+#~ "argument, information about free space will be displayed otherwise if a\n"
+#~ "partition number is given, then more detailed information is displayed\n"
+#~ "about that partition. If the 'all' argument is passed instead, partition\n"
+#~ "information for all devices will be displayed.\n"
+#~ msgstr ""
+#~ "print bez argumentů zobrazí celou tabulku oddílů. Je-li zadáno číslo "
+#~ "oddílu, zobrazí se o tomto oddílu podrobnější informace.\n"
+
+#~ msgid ""
+#~ "The sector size on %s is %d bytes.  Parted is known not to work properly "
+#~ "with drives with sector sizes other than %d bytes"
+#~ msgstr ""
+#~ "Velikost sektoru na %s je %d bajtů. Ví se, že parted nepracuje správně s "
+#~ "disky s velikostí sektoru jinou než %d bajtů"
+
+#~ msgid "Could not read geometry of %s - %s."
+#~ msgstr "Nemohu přečíst geometrii %s - %s."
+
+#~ msgid "Device %s has dodgey geometry."
+#~ msgstr "Zařízení %s má riskantní geometrii."
+
+#~ msgid "IDE"
+#~ msgstr "IDE"
+
+#~ msgid "SCSI"
+#~ msgstr "SCSI"
+
+#~ msgid "Device %s is neither a SCSI nor IDE drive."
+#~ msgstr "Zařízení %s není disk SCSI ani IDE."
+
+#~ msgid "Error reading %s (%s) to determine if partition is mounted."
+#~ msgstr "Chyba při čtení %s (%s) pro určení, jestli je oddíl připojen."
+
+#~ msgid ""
+#~ "Unable to determine if partitions are mounted via /proc/mounts or /etc/"
+#~ "mtab.  Make sure you don't attempt to resize or modify mounted file "
+#~ "systems.  (Even read-only mounted)"
+#~ msgstr ""
+#~ "Nemohu určit pomocí /proc/mounts nebo /etc/mtab, jestli jsou oddíly "
+#~ "připojeny. Přesvědčte se, že se nepokoušíte změnit velikost nebo měnit "
+#~ "připojené soubory souborů. (I připojené jen pro čtení)"
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  However, the most likely reason is that Linux "
+#~ "detected the BIOS geometry for %s incorrectly.  GNU Parted suspects the "
+#~ "real geometry should be %d/%d/%d (not %d/%d/%d).  You should check with "
+#~ "your BIOS first, as this may not be correct.  You can inform Linux by "
+#~ "adding the parameter %s=%d,%d,%d to the command line.  See the LILO or "
+#~ "GRUB documentation for more information.  If you think Parted's suggested "
+#~ "geometry is correct, you may select Ignore to continue (and fix Linux "
+#~ "later).  Otherwise, select Cancel (and fix Linux and/or the BIOS now)."
+#~ msgstr ""
+#~ "Tabulka oddílů na %s není konzistentní. To se může stát z mnoha důvodů. "
+#~ "Nejpravděpodobnější důvod je, že Linux nesprávně detekoval geometrii "
+#~ "BIOSu pro %s. GNU Parted má podezření, že skutečná geometrie by měla být %"
+#~ "d/%d/%d (ne %d/%d/%d). Měli byste to nejdřív zkontrolovat ve svém BIOSu, "
+#~ "protože to možná není správně. Linux můžete informovat přidáním parametru "
+#~ "%s=%d,%d%d na příkazovém řádku. Pro více informací viz dokumentaci o LILO "
+#~ "nebo GRUB. Jestliže si myslíte, že geometrie Partedu je správná, můžete "
+#~ "pokračovat zvolením Ignorovat (a opravit Linux později). V opačném "
+#~ "případě zvolte Zrušit (a opravte Linux a/nebo BIOS hned)."
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  Often, the reason is that Linux detected the "
+#~ "BIOS geometry incorrectly.  However, this does not appear to be the case "
+#~ "here.  It is safe to ignore,but ignoring may cause (fixable) problems "
+#~ "with some boot loaders, and may cause problems with FAT file systems.  "
+#~ "Using LBA is recommended."
+#~ msgstr ""
+#~ "Tabulka oddílů na %s není konzistentní. To se může stát z mnoha důvodů. "
+#~ "Často se stává, že Linux nesprávně detekuje geometrii BIOSu. To ale není "
+#~ "tento případ. Můžete problém bez obav ignorovat, ale jeho ignorování může "
+#~ "způsobit (opravitelné) problémy s některými zavaděči systému a může "
+#~ "způsobit problémy se systémy souborů FAT. Doporučuje se používat LBA."
+
+#~ msgid ""
+#~ "Unable to align partition properly.  This probably means that another "
+#~ "partitioning tool generated an incorrect partition table, because it "
+#~ "didn't have the correct BIOS geometry.  It is safe to ignore,but ignoring "
+#~ "may cause (fixable) problems with some boot loaders."
+#~ msgstr ""
+#~ "Nemohu správně zarovnat oddíl. To pravděpodobně znamená, že jiný nástroj "
+#~ "na tvorbu oddílů vygeneroval nesprávnou tabulku oddílů, protože neměl "
+#~ "správnou geometrii BIOSu. Tento problém můžete bez obav ignorovat, ale "
+#~ "jeho ignorování může způsobit (opravitelné) problémy s některými zavaděči "
+#~ "systému."
+
+#~ msgid "Attempt to read sectors %ld-%ld outside of partition on %s"
+#~ msgstr "Pokus číst sektory %ld-%ld mimo oddíl na %s"
+
+#~ msgid ""
+#~ "This ext2 filesystem has a rather strange layout!  Parted can't resize "
+#~ "this (yet)."
+#~ msgstr ""
+#~ "Tento systém souborů ext2 má poněkud zvláštní rozložení! Parted (ještě) "
+#~ "neumí změnit jeho velikost."
+
+#~ msgid "File system has an invalid signature for a FAT file systems."
+#~ msgstr "Systém souborů má neplatný podpis pro systémy souborů FAT."
+
+#~ msgid ""
+#~ "Partition %s is being used.  Modifying it while it is in use could cause "
+#~ "severe corruption."
+#~ msgstr ""
+#~ "Oddíl %s je používán. Úpravy oddílu, který je používán, mohou vést k "
+#~ "vážnému poškození dat."
+
+#~ msgid ""
+#~ "You requested to create a partition at %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Požadovali jste vytvoření oddílu na %.3f-%.3fMb. Nejbližší, co Parted "
+#~ "může zvládnout, je %.3f-%.3fMb."
+
+#~ msgid ""
+#~ "You requested to move the partition to %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Požadovali jste přesun oddílu na %.3f-%.3fMb. Nejbližší, co Parted může "
+#~ "zvládnout, je %.3f-%.3fMb."
+
+#~ msgid "Disk geometry for %s: 0.000-%.3f megabytes\n"
+#~ msgstr "Geometrie disku pro %s: 0.000-%.3f megabajtů\n"
+
+#~ msgid "Disk label type: %s\n"
+#~ msgstr "Typ jmenovky disku: %s\n"
+
+#~ msgid "Minor    Start       End     "
+#~ msgstr "Minor    Začátek     Konec   "
+
+#~ msgid "Type      "
+#~ msgstr "Typ       "
+
+#~ msgid "Filesystem  "
+#~ msgstr "Sys souborů "
+
+#~ msgid "Name                  "
+#~ msgstr "Název                 "
+
+#~ msgid ""
+#~ "You requested to resize the partition to %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Požadovali jste změnu velikosti oddílu na %.3f-%.3fMb. Nejbližší, co "
+#~ "Parted může zvládnout, je %.3f-%.3fMb."
+
+#~ msgid "resize MINOR START END        resize filesystem on partition MINOR"
+#~ msgstr ""
+#~ "resize MINOR ZAČÁTEK KONEC    změnit velikost systému souborů na oddílu "
+#~ "MINOR"
+
+#~ msgid ""
+#~ "You found a bug in GNU Parted.  Please email a bug report to bug-"
+#~ "parted@gnu.org containing the version (%s), and the following message:\n"
+#~ msgstr ""
+#~ "Našli jste chybu v GNU parted. Pošlete prosím e-mailem hlášení o chybě na "
+#~ "bug-parted@gnu.org obsahující verzi (%s) a následující zprávu:\n"
+
+#~ msgid ""
+#~ "  You have Windows FAT partition(s) that are not using LBA.  If your BIOS "
+#~ "supports LBA, then you should switch to LBA by setting the LBA flag on "
+#~ "all FAT partitions.  Otherwise, make sure the operating system and the "
+#~ "BIOS have the same geometry before resizing any FAT partitions."
+#~ msgstr ""
+#~ "Máte oddíl(y) Windows FAT, které nepoužívají LBA. Pokud váš BIOS "
+#~ "podporuje LBA, měli byste přejít na LBA nastavením přepínače LBA na všech "
+#~ "oddílech FAT. V opačném případě se před změnou velikosti oddílů FAT "
+#~ "přesvědčete, že operační systém a BIOS mají stejnou geometrii."
+
+#~ msgid ""
+#~ "The operating system thinks the geometry on %s is %d/%d/%d.  Therefore, "
+#~ "cylinder 1024 ends at %.3fM.%s"
+#~ msgstr ""
+#~ "Operační systém si myslí, že geometrie na %s je %d/%d/%d. Cylindr 1024 "
+#~ "tedy končí na %.3fM.%s"
+
+#~ msgid "The operating system thinks the geometry on %s is %d/%d/%d.%s"
+#~ msgstr "Operační systém si myslí, že geometrie na %s je %d/%d/%d.%s"
diff --git a/parted-1.8.7/po/da.gmo b/parted-1.8.7/po/da.gmo
new file mode 100644
index 0000000..6d37035
--- /dev/null
+++ b/parted-1.8.7/po/da.gmo
Binary files differ
diff --git a/parted-1.8.7/po/da.po b/parted-1.8.7/po/da.po
new file mode 100644
index 0000000..a47f0e5
--- /dev/null
+++ b/parted-1.8.7/po/da.po
@@ -0,0 +1,3569 @@
+# Danish messages for parted
+# Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+# Keld Simonsen <keld@dkuug.dk>, 2001-2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: parted 1.6.5-pre1\n"
+"Report-Msgid-Bugs-To: bug-parted@gnu.org\n"
+"POT-Creation-Date: 2007-05-09 17:02-0400\n"
+"PO-Revision-Date: 2003-01-17 17:09+0200\n"
+"Last-Translator: Keld Simonsen <keld@dkuug.dk>\n"
+"Language-Team: Danish <dansk@klid.dk>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/closeout.c:74
+msgid "write error"
+msgstr ""
+
+#: lib/error.c:125
+#, fuzzy
+msgid "Unknown system error"
+msgstr "Ukendt filsystemstype '%s'."
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK).  A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#.
+#. If you don't know what to put here, please see
+#. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr ""
+
+#: lib/regcomp.c:131
+msgid "Success"
+msgstr ""
+
+#: lib/regcomp.c:134
+msgid "No match"
+msgstr ""
+
+#: lib/regcomp.c:137
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regcomp.c:140
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regcomp.c:143
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regcomp.c:146
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regcomp.c:149
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regcomp.c:152
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regcomp.c:155
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regcomp.c:158
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regcomp.c:161
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regcomp.c:164
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regcomp.c:170
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regcomp.c:173
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regcomp.c:176
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regcomp.c:179
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regcomp.c:680
+msgid "No previous regular expression"
+msgstr ""
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr ""
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:66
+msgid "(C)"
+msgstr ""
+
+#: lib/version-etc.c:68
+msgid ""
+"\n"
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:84
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:88
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:92
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:98
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:104
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:110
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:132
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+
+#: lib/xalloc-die.c:35
+msgid "memory exhausted"
+msgstr ""
+
+#: libparted/arch/beos.c:237
+msgid "Disk Image"
+msgstr ""
+
+#: libparted/arch/beos.c:338 libparted/arch/gnu.c:261
+#: libparted/arch/linux.c:1272
+#, c-format
+msgid "Error opening %s: %s"
+msgstr "En fejl opstod da %s åbnedes: %s"
+
+#: libparted/arch/beos.c:349 libparted/arch/gnu.c:271
+#: libparted/arch/linux.c:1283
+#, c-format
+msgid "Unable to open %s read-write (%s).  %s has been opened read-only."
+msgstr ""
+"Kunne ikke åbne %s for både læsning og skrivning (%s). %s åbnedes i "
+"læsetilstand."
+
+#: libparted/arch/beos.c:411 libparted/arch/linux.c:1431
+#, c-format
+msgid "%s during seek for read on %s"
+msgstr "%s under positionering for at læse på %s"
+
+#: libparted/arch/beos.c:444 libparted/arch/gnu.c:449 libparted/arch/gnu.c:548
+#: libparted/arch/gnu.c:676 libparted/arch/linux.c:1391
+#: libparted/arch/linux.c:1469
+#, c-format
+msgid "%s during read on %s"
+msgstr "%s under læsning på %s"
+
+#: libparted/arch/beos.c:480 libparted/arch/gnu.c:509
+#: libparted/arch/linux.c:1546
+#, c-format
+msgid "Can't write to %s, because it is opened read-only."
+msgstr "Kan ikke skrive til %s eftersom den kun er åbnet i læsetilstand."
+
+#: libparted/arch/beos.c:496 libparted/arch/linux.c:1570
+#, c-format
+msgid "%s during seek for write on %s"
+msgstr "%s under positionering for at skrive på %s"
+
+#: libparted/arch/beos.c:533 libparted/arch/gnu.c:585 libparted/arch/gnu.c:630
+#: libparted/arch/gnu.c:707 libparted/arch/linux.c:1517
+#: libparted/arch/linux.c:1612 libparted/arch/linux.c:1684
+#, c-format
+msgid "%s during write on %s"
+msgstr "%s under skrivning på %s"
+
+#: debug/clearfat/clearfat.c:63 partprobe/partprobe.c:137
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:67
+#, c-format
+msgid ""
+"Usage: %s [OPTION]\n"
+"  or:  %s DEVICE MINOR\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:70
+msgid ""
+"Clear unused space on a FAT partition (a GNU Parted testing tool).\n"
+"\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:74
+msgid "      --help     display this help and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:75
+msgid "      --version  output version information and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:77 partprobe/partprobe.c:154
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:285
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:290
+#, fuzzy, c-format
+msgid "too many arguments"
+msgstr "For mange dårlige sider."
+
+#: partprobe/partprobe.c:141
+#, c-format
+msgid "Usage: %s [OPTION] [DEVICE]...\n"
+msgstr ""
+
+#: partprobe/partprobe.c:142
+msgid ""
+"Inform the OS of partition table changes.\n"
+"\n"
+"  -d, --no-update  don't update the kernel\n"
+"  -s, --summary    print a summary of contents\n"
+"  -h, --help       display this help and exit\n"
+"  -v, --version    output version information and exit\n"
+msgstr ""
+
+#: partprobe/partprobe.c:150
+msgid ""
+"\n"
+"With no DEVICE, probe all partitions.\n"
+msgstr ""
+
+#: libparted/arch/gnu.c:94
+#, c-format
+msgid "Unable to open %s."
+msgstr "Kunne ikke åbne %s."
+
+#: libparted/arch/gnu.c:114
+msgid "Unable to probe store."
+msgstr "Kunne ikke undersøge lageret."
+
+#: libparted/arch/gnu.c:352
+#, fuzzy
+msgid ""
+"The partition table cannot be re-read.  This means you need to reboot before "
+"mounting any modified partitions.  You also need to reinstall your boot "
+"loader before you reboot (which may require mounting modified partitions).  "
+"It is impossible do both things!  So you'll need to boot off a rescue disk, "
+"and reinstall your boot loader from the rescue disk.  Read section 4 of the "
+"Parted User documentation for more information."
+msgstr ""
+"Partitionstabellen kunne ikke genindlæses, så derfor skal du starte maskine "
+"op igen inden du kan montere nogen ændrede partitioner. Du skal også "
+"geninstallere opstartsprogrammet inden du genstarter (hvilket kan indebære "
+"montering af ændrede partitioner). Det er umuligt at gøre begge dele! Så du "
+"skal starte fra en redningsdiskette og geninstallere opstartsprogrammet fra "
+"redningsdisketten. Læs kapitel 4 i Parteds brugermanual for mere information."
+
+#: libparted/arch/gnu.c:369
+#, fuzzy, c-format
+msgid ""
+"The partition table on %s cannot be re-read (%s).  This means the Hurd knows "
+"nothing about any modifications you made.  You should reboot your computer "
+"before doing anything with %s."
+msgstr ""
+"partitionstabellen på %s (%s). Det betyder at Linux ikke véd noget som helst "
+"om de ændringer du lavede. Du bør genstarte maskinen inden du gør noget som "
+"helst med %s."
+
+#: libparted/arch/gnu.c:380 parted/parted.c:2443
+msgid ""
+"You should reinstall your boot loader before rebooting.  Read section 4 of "
+"the Parted User documentation for more information."
+msgstr ""
+"Du bør geninstallere opstartsprogrammet inden du genopstarter. Læs sektion 4 "
+"i Parteds brugermanual for mere information."
+
+#: libparted/arch/gnu.c:772
+#, c-format
+msgid "%s trying to sync %s to disk"
+msgstr "%s prøver at synkronisere %s med disk"
+
+#: libparted/arch/linux.c:408
+#, c-format
+msgid "Could not stat device %s - %s."
+msgstr "Kunne ikke tage status på enheden %s - %s."
+
+#: libparted/arch/linux.c:523
+#, c-format
+msgid ""
+"Could not determine sector size for %s: %s.\n"
+"Using the default sector size (%lld)."
+msgstr ""
+
+#: libparted/arch/linux.c:539
+#, c-format
+msgid ""
+"Device %s has a logical sector size of %lld.  Not all parts of GNU Parted "
+"support this at the moment, and the working code is HIGHLY EXPERIMENTAL.\n"
+msgstr ""
+
+#: libparted/arch/linux.c:579
+#, fuzzy, c-format
+msgid "Unable to determine the size of %s (%s)."
+msgstr "Kunne ikke bestemme størrelsen på %s (%s)"
+
+#: libparted/arch/linux.c:668
+#, c-format
+msgid "Could not get identity of device %s - %s"
+msgstr "Kunne ikke finde identitet for enhed %s - %s"
+
+#: libparted/arch/linux.c:677
+msgid "Generic IDE"
+msgstr ""
+
+#: libparted/arch/linux.c:698
+#, c-format
+msgid ""
+"Device %s has multiple (%d) logical sectors per physical sector.\n"
+"GNU Parted supports this EXPERIMENTALLY for some special disk label/file "
+"system combinations, e.g. GPT and ext2/3.\n"
+"Please consult the web site for up-to-date information."
+msgstr ""
+
+#: libparted/arch/linux.c:873
+#, c-format
+msgid "Error initialising SCSI device %s - %s"
+msgstr "En fejl opstod ved initiering af SCSI-enheden %s - %s"
+
+#: libparted/arch/linux.c:928
+#, fuzzy, c-format
+msgid ""
+"The device %s has zero length, and can't possibly store a file system or "
+"partition table.  Perhaps you selected the wrong device?"
+msgstr ""
+"Enheden %s har længden nul, og kan slet ikke indeholde et filsystem eller en "
+"partitionstabel. Måske har du valgt den forkerte enhed?"
+
+#: libparted/arch/linux.c:1032
+#, fuzzy, c-format
+msgid ""
+"Unable to determine geometry of file/device %s.  You should not use Parted "
+"unless you REALLY know what you're doing!"
+msgstr ""
+"Kunne ikke bestemme geometrien på filen/enheden. Du bør ikke bruge Parted "
+"hvis du ikke er RIGTIGT sikker på hvad du gør!"
+
+#: libparted/arch/linux.c:1110
+msgid "DAC960 RAID controller"
+msgstr "Styrekort for DAC960 RAID"
+
+#: libparted/arch/linux.c:1115
+msgid "Promise SX8 SATA Device"
+msgstr ""
+
+#: libparted/arch/linux.c:1120
+msgid "IBM S390 DASD drive"
+msgstr ""
+
+#: libparted/arch/linux.c:1125
+msgid "IBM iSeries Virtual DASD"
+msgstr ""
+
+#: libparted/arch/linux.c:1130
+msgid "Compaq Smart Array"
+msgstr "Compaq Smart Array"
+
+#: libparted/arch/linux.c:1135
+msgid "ATARAID Controller"
+msgstr "Styrekort for ATARAID"
+
+#: libparted/arch/linux.c:1140
+msgid "I2O Controller"
+msgstr "I2O-styrekort"
+
+#: libparted/arch/linux.c:1145
+msgid "User-Mode Linux UBD"
+msgstr ""
+
+#: libparted/arch/linux.c:1156
+msgid "Linux device-mapper"
+msgstr ""
+
+#: libparted/arch/linux.c:1162
+msgid "Unknown"
+msgstr "Ukendt"
+
+#: libparted/arch/linux.c:1169
+msgid "ped_device_new()  Unsupported device type"
+msgstr "ped_device_new() Understøttelse mangler for denne enhedstype"
+
+#: libparted/arch/linux.c:2083
+#, fuzzy, c-format
+msgid ""
+"Error informing the kernel about modifications to partition %s -- %s.  This "
+"means Linux won't know about any changes you made to %s until you reboot -- "
+"so you shouldn't mount it or use it in any way before rebooting."
+msgstr ""
+"Fejl vel underretning af kernen om ændringer på partition %s - %s. Dette "
+"betyder at Linux ikke véd noget som helst om de ændringer du lavede på %s "
+"før du genopstarter - så du bør ikke montere den eller bruge den på nogen "
+"måde før du har genstartet."
+
+#: libparted/arch/linux.c:2262
+#, fuzzy, c-format
+msgid ""
+"parted was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made. "
+msgstr ""
+"Kernen kunne ikke genindlæse partitionstabellen på %s (%s). Det betyder at "
+"Linux ikke véd noget som helst om de ændringer du lavede før du "
+"genopstarter. Du bør genstarte maskinen inden du gør noget som helst med %s."
+
+#: libparted/arch/linux.c:2368
+#, fuzzy, c-format
+msgid ""
+"The kernel was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made until you "
+"reboot.  You should reboot your computer before doing anything with %s."
+msgstr ""
+"Kernen kunne ikke genindlæse partitionstabellen på %s (%s). Det betyder at "
+"Linux ikke véd noget som helst om de ændringer du lavede før du "
+"genopstarter. Du bør genstarte maskinen inden du gør noget som helst med %s."
+
+#: libparted/cs/geom.c:162
+msgid "Can't have the end before the start!"
+msgstr "Kan ikke have slutningen før begyndelsen!"
+
+#: libparted/cs/geom.c:169
+msgid "Can't have a partition outside the disk!"
+msgstr "Kan ikke have en partition udenfor disken!"
+
+#: libparted/cs/geom.c:366
+#, fuzzy, c-format
+msgid "Attempt to write sectors %ld-%ld outside of partition on %s."
+msgstr "Forsøgte skrive sektorerne %ld-%ld udenfor partitionen på %s"
+
+#: libparted/cs/geom.c:406 libparted/fs/linux_swap/linux_swap.c:475
+msgid "checking for bad blocks"
+msgstr "kontroller for dårlige blokke"
+
+#: libparted/debug.c:102
+#, c-format
+msgid "Backtrace has %d calls on stack:\n"
+msgstr ""
+
+#: libparted/debug.c:114
+#, c-format
+msgid "Assertion (%s) at %s:%d in function %s() failed."
+msgstr ""
+
+#: libparted/disk.c:203
+#, c-format
+msgid "Unable to open %s - unrecognised disk label."
+msgstr "Kan ikke åbne %s - ukendt filallokeringstabel."
+
+#: libparted/disk.c:471
+#, c-format
+msgid ""
+"This libparted doesn't have write support for %s.  Perhaps it was compiled "
+"read-only."
+msgstr ""
+"Denne libparted har ikke skriveunderstøttelse for %s. Måske var den oversat "
+"skrivebeskyttet."
+
+#: libparted/disk.c:598
+#, fuzzy, c-format
+msgid "Partition %d is %s, but the file system is %s."
+msgstr "Partition %d er %.3fMb, men filsystemet er %.3fMb."
+
+#: libparted/disk.c:1075
+#, c-format
+msgid "%s disk labels do not support extended partitions."
+msgstr "Filallokeringstabeller for %s understøtter ikke udvidede partitioner."
+
+#: libparted/disk.c:1634
+#, c-format
+msgid "%s disk labels don't support logical or extended partitions."
+msgstr ""
+"Filallokeringstabeller for %s understøtter ikke logiske eller udvidede "
+"partitioner."
+
+#: libparted/disk.c:1647
+#, fuzzy
+msgid "Too many primary partitions."
+msgstr "For mange primære partitioner"
+
+#: libparted/disk.c:1656
+#, c-format
+msgid ""
+"Can't add a logical partition to %s, because there is no extended partition."
+msgstr ""
+"Kan ikke tilføje en logisk partition til %s, da der mangler en udvidet "
+"partition."
+
+#: libparted/disk.c:1680
+#, fuzzy, c-format
+msgid "Can't have more than one extended partition on %s."
+msgstr "Kan ikke have mere end én udvidet partition på %s"
+
+#: libparted/disk.c:1690
+msgid "Can't have logical partitions outside of the extended partition."
+msgstr "Kan ikke have logiske partitioner udenfor den udvidede partition."
+
+#: libparted/disk.c:1715
+#, c-format
+msgid "Can't have a logical partition outside of the extended partition on %s."
+msgstr ""
+"Kan ikke have en logisk partition udenfor den udvidede partition på %s."
+
+#: libparted/disk.c:1725 libparted/disk.c:1779 libparted/disk.c:1945
+#, fuzzy
+msgid "Can't have overlapping partitions."
+msgstr "Kan ikke have overlappende partitioner."
+
+#: libparted/disk.c:1733
+msgid "Can't have a primary partition inside an extended partition."
+msgstr "Kan ikke have en primær partition inden i en udvidet partition."
+
+#: libparted/disk.c:2140
+msgid "metadata"
+msgstr "metadata"
+
+#: libparted/disk.c:2142
+msgid "free"
+msgstr "ledigt"
+
+#: libparted/disk.c:2144 parted/ui.c:1169 parted/ui.c:1197
+msgid "extended"
+msgstr "udvidet"
+
+#: libparted/disk.c:2146 parted/ui.c:1173 parted/ui.c:1201
+msgid "logical"
+msgstr "logisk"
+
+#: libparted/disk.c:2148 parted/ui.c:1165 parted/ui.c:1193
+msgid "primary"
+msgstr "primær"
+
+#: libparted/disk.c:2164
+msgid "boot"
+msgstr "start"
+
+#: libparted/disk.c:2166
+msgid "root"
+msgstr "rod"
+
+#: libparted/disk.c:2168
+msgid "swap"
+msgstr "swapplads"
+
+#: libparted/disk.c:2170
+msgid "hidden"
+msgstr "skjult"
+
+#: libparted/disk.c:2172
+msgid "raid"
+msgstr "raid"
+
+#: libparted/disk.c:2174
+msgid "lvm"
+msgstr "lvm"
+
+#: libparted/disk.c:2176
+msgid "lba"
+msgstr "lba"
+
+#: libparted/disk.c:2178
+msgid "hp-service"
+msgstr "hp-service"
+
+#: libparted/disk.c:2180
+msgid "palo"
+msgstr ""
+
+#: libparted/disk.c:2182
+msgid "prep"
+msgstr ""
+
+#: libparted/disk.c:2184
+msgid "msftres"
+msgstr ""
+
+#: libparted/disk.c:2190
+#, fuzzy, c-format
+msgid "Unknown partition flag, %d."
+msgstr "Ukendt partitionsflag, %d."
+
+#: libparted/exception.c:78
+msgid "Information"
+msgstr "Information"
+
+#: libparted/exception.c:79
+msgid "Warning"
+msgstr "Advarsel"
+
+#: libparted/exception.c:80
+msgid "Error"
+msgstr "Fejl"
+
+#: libparted/exception.c:81
+msgid "Fatal"
+msgstr "Fatal"
+
+#: libparted/exception.c:82
+msgid "Bug"
+msgstr "Programfejl"
+
+#: libparted/exception.c:83
+msgid "No Implementation"
+msgstr "Ikke implementeret"
+
+#: libparted/exception.c:87
+msgid "Fix"
+msgstr "Reparér"
+
+#: libparted/exception.c:88
+msgid "Yes"
+msgstr "Ja"
+
+#: libparted/exception.c:89
+msgid "No"
+msgstr "Nej"
+
+#: libparted/exception.c:90
+msgid "OK"
+msgstr "OK"
+
+#: libparted/exception.c:91
+msgid "Retry"
+msgstr "Forsøg igen"
+
+#: libparted/exception.c:92
+msgid "Ignore"
+msgstr "Ignorér"
+
+#: libparted/exception.c:93
+msgid "Cancel"
+msgstr "Annullér"
+
+#: libparted/exception.c:133
+#, fuzzy, c-format
+msgid ""
+"A bug has been detected in GNU Parted.  Refer to the web site of parted "
+"http://www.gnu.org/software/parted/parted.html for more informations of what "
+"could be useful for bug submitting!  Please email a bug report to bug-"
+"parted@gnu.org containing at least the version (%s) and the following "
+"message:  "
+msgstr ""
+"Send en fejlrapport med e-post til bug-parted@gnu.org, hvor du angiver "
+"versionsnumret (%s) og følgende meddelelse:"
+
+#: libparted/filesys.c:384
+msgid "Could not detect file system."
+msgstr "Kunne ikke finde noget filsystem."
+
+#: libparted/filesys.c:395
+#, fuzzy
+msgid "The file system is bigger than its volume!"
+msgstr "Filsystemet er større end dets plads på diskdrevet!"
+
+#: libparted/filesys.c:403
+#, c-format
+msgid "Support for opening %s file systems is not implemented yet."
+msgstr ""
+"Understøttelse for at åbne filsystemer af type %s er ikke implementeret "
+"endnu."
+
+#: libparted/filesys.c:445
+#, c-format
+msgid "Support for creating %s file systems is not implemented yet."
+msgstr ""
+"Understøttelse for at oprette filsystemer af type %s er ikke implementeret "
+"endnu."
+
+#: libparted/filesys.c:505
+#, c-format
+msgid "Support for checking %s file systems is not implemented yet."
+msgstr ""
+"Understøttelse for at kontrollere filsystemer af type %s er ikke "
+"implementeret endnu."
+
+#: libparted/filesys.c:571
+msgid "raw block copying"
+msgstr "kopiering af rå blokke"
+
+#: libparted/filesys.c:582
+msgid "growing file system"
+msgstr "udvider filsystem"
+
+#: libparted/filesys.c:622
+msgid "Can't copy onto an overlapping partition."
+msgstr "Kan ikke kopiere til en overlappende partition."
+
+#: libparted/filesys.c:644
+#, fuzzy, c-format
+msgid ""
+"Direct support for copying file systems is not yet implemented for %s.  "
+"However, support for resizing is implemented.  Therefore, the file system "
+"can be copied if the new partition is at least as big as the old one.  So, "
+"either shrink the partition you are trying to copy, or copy to a bigger "
+"partition."
+msgstr ""
+"Direkte understøttelse for at kopiere filsystemer af typen %s er ikke "
+"implementeret endnu. Understøttelse for at ændre størrelse findes dog. "
+"Derfor kan filsystemet kopieres hvis den nye partition er mindst lige så "
+"stor som den gamle. Så enten skal du formindske partitionen som du forsøger "
+"kopiere, eller også kopierer du til en større partition."
+
+#: libparted/filesys.c:658
+#, c-format
+msgid "Support for copying %s file systems is not implemented yet."
+msgstr ""
+"Understøttelse for at kopiere filsystemer af type %s er ikke implementeret "
+"endnu."
+
+#: libparted/filesys.c:696
+#, c-format
+msgid "Support for resizing %s file systems is not implemented yet."
+msgstr ""
+"Understøttelse for at ændre størrelse på filsystem af type %s er ikke "
+"implementeret endnu."
+
+#: libparted/fs/reiserfs/reiserfs.c:315
+msgid "creating"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:402
+#, fuzzy
+msgid "The file system is in an invalid state.  Perhaps it is mounted?"
+msgstr "Filsystemet er større end dets plads på diskdrevet!"
+
+#: libparted/fs/reiserfs/reiserfs.c:410
+msgid "The file system is in old (unresizeable) format."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:416
+msgid "Invalid free blocks count.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:431
+#, fuzzy
+msgid "checking"
+msgstr "tjek"
+
+#: libparted/fs/reiserfs/reiserfs.c:437
+msgid "Reiserfs tree seems to be corrupted.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:449
+#, fuzzy
+msgid ""
+"The reiserfs file system passed a basic check.  For a more comprehensive "
+"check, run reiserfsck --check."
+msgstr ""
+"Filsystemet (e2fs) klarede et grundlæggende test. For et mere gennemgående "
+"test, brug programmet e2fsck."
+
+#: libparted/fs/reiserfs/reiserfs.c:474
+#, fuzzy
+msgid "Sorry, can't move the start of reiserfs partitions yet."
+msgstr "Kan ikke flytte en ext2-partitions begyndelse endnu!"
+
+#: libparted/fs/reiserfs/reiserfs.c:490
+msgid "Couldn't reopen device abstraction layer for read/write."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:508 libparted/fs/ext2/ext2_resize.c:552
+#: libparted/fs/hfs/hfs.c:250 libparted/fs/hfs/hfs.c:629
+msgid "shrinking"
+msgstr "krymper"
+
+#: libparted/fs/reiserfs/reiserfs.c:520
+#, fuzzy
+msgid "expanding"
+msgstr "Advarsel"
+
+#: libparted/fs/reiserfs/reiserfs.c:592
+msgid "Couldn't create reiserfs device abstraction handler."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:606
+#, fuzzy, c-format
+msgid "Device is too small for %lu blocks."
+msgstr "Filsystem for lille til ext2."
+
+#: libparted/fs/reiserfs/reiserfs.c:615
+msgid "copying"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:682
+#, c-format
+msgid "Couldn't resolve symbol %s.  Error: %s."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:704
+msgid "GNU Parted found an invalid libreiserfs library."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:715
+#, c-format
+msgid ""
+"GNU Parted has detected libreiserfs interface version mismatch.  Found %d-%"
+"d, required %d. ReiserFS support will be disabled."
+msgstr ""
+
+#: libparted/labels/aix.c:137
+#, fuzzy
+msgid "Support for reading AIX disk labels is is not implemented yet."
+msgstr ""
+"Understøttelse for at oprette filsystemer af type %s er ikke implementeret "
+"endnu."
+
+#: libparted/labels/aix.c:148
+#, fuzzy
+msgid "Support for writing AIX disk labels is is not implemented yet."
+msgstr ""
+"Understøttelse for at oprette filsystemer af type %s er ikke implementeret "
+"endnu."
+
+#: libparted/labels/aix.c:161
+#, fuzzy
+msgid ""
+"Support for adding partitions to AIX disk labels is not implemented yet."
+msgstr ""
+"Understøttelse for at oprette filsystemer af type %s er ikke implementeret "
+"endnu."
+
+#: libparted/labels/aix.c:171
+#, fuzzy
+msgid ""
+"Support for duplicating partitions in AIX disk labels is not implemented yet."
+msgstr ""
+"Understøttelse for at oprette filsystemer af type %s er ikke implementeret "
+"endnu."
+
+#: libparted/labels/aix.c:189
+#, fuzzy
+msgid ""
+"Support for setting system type of partitions in AIX disk labels is not "
+"implemented yet."
+msgstr ""
+"Understøttelse for at oprette filsystemer af type %s er ikke implementeret "
+"endnu."
+
+#: libparted/labels/aix.c:199
+#, fuzzy
+msgid "Support for setting flags in AIX disk labels is not implemented yet."
+msgstr ""
+"Understøttelse for at oprette filsystemer af type %s er ikke implementeret "
+"endnu."
+
+#: libparted/labels/bsd.c:501 libparted/labels/dasd.c:755
+#: libparted/labels/dos.c:1974 libparted/labels/dvh.c:770
+#: libparted/labels/gpt.c:1448 libparted/labels/loop.c:248
+#: libparted/labels/mac.c:1408 libparted/labels/pc98.c:759
+#: libparted/labels/rdb.c:1041 libparted/labels/sun.c:705
+msgid "Unable to satisfy all constraints on the partition."
+msgstr "Kunne ikke opfylde alle begrænsninger på partitionen."
+
+#: libparted/labels/bsd.c:526
+#, fuzzy
+msgid "Unable to allocate a bsd disklabel slot."
+msgstr "Kan ikke tildele en plads til bsd-disketikette"
+
+#: libparted/labels/dasd.c:166
+#, fuzzy
+msgid "Unable to determine the block size of this dasd"
+msgstr "Kunne ikke bestemme størrelsen på %s (%s)"
+
+#: libparted/labels/dasd.c:781
+#, fuzzy
+msgid "Unable to allocate a dasd disklabel slot"
+msgstr "Kan ikke tildele en plads til bsd-disketikette"
+
+#: libparted/labels/dos.c:827
+#, fuzzy, c-format
+msgid "Invalid partition table on %s -- wrong signature %x."
+msgstr "Ugyldig partitionstabel på %s - fejlagtig signatur %x"
+
+#: libparted/labels/dos.c:855
+#, c-format
+msgid "Invalid partition table - recursive partition on %s."
+msgstr "Ugyldig partitionstabel - rekursiv partition på %s."
+
+#: libparted/labels/dos.c:1318
+#, fuzzy
+msgid "Extended partitions cannot be hidden on msdos disk labels."
+msgstr "Ext2-partitioner kan ikke gemmes i filsystemer af typen msdos."
+
+#: libparted/labels/dos.c:1958
+msgid "Parted can't resize partitions managed by Windows Dynamic Disk."
+msgstr ""
+
+#: libparted/labels/dvh.c:190
+#, fuzzy, c-format
+msgid "%s has no extended partition (volume header partition)."
+msgstr ""
+"%s har ingen udvidet partition (bindhoved-partition). Hvis du ignorerer "
+"dette vil alle opstarts-bind blive slettet."
+
+#: libparted/labels/dvh.c:313
+msgid "Checksum is wrong, indicating the partition table is corrupt."
+msgstr ""
+"Tjeksummen er forkert, og det tyder på at partitionstabellen er ødelagt."
+
+#: libparted/labels/dvh.c:616
+msgid "Only primary partitions can be root partitions."
+msgstr "Kun primære partitioner kan være rod-partitioner."
+
+#: libparted/labels/dvh.c:630
+msgid "Only primary partitions can be swap partitions."
+msgstr "Kun primære partitioner kan være swap-partitioner."
+
+#: libparted/labels/dvh.c:644
+msgid "Only logical partitions can be a boot file."
+msgstr "Kun logiske partitioner kan være en opstatsfil."
+
+#: libparted/labels/dvh.c:721
+msgid "Only logical partitions (boot files) have a name."
+msgstr "Kun logiske partitioner (opstartsfiler) har et navn."
+
+#: libparted/labels/dvh.c:812
+msgid "Too many primary partitions"
+msgstr "For mange primære partitioner"
+
+#: libparted/labels/fdasd.c:103
+#, c-format
+msgid ""
+"%s open error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:107
+#, c-format
+msgid ""
+"%s seek error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:110
+#, c-format
+msgid ""
+"%s read error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:113
+#, fuzzy, c-format
+msgid ""
+"%s write error\n"
+"%s\n"
+msgstr "%s under skrivning på %s"
+
+#: libparted/labels/fdasd.c:116
+#, c-format
+msgid ""
+"%s IOCTL error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:119
+#, c-format
+msgid ""
+"%s API version mismatch\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:122
+#, c-format
+msgid ""
+"%s Unsupported disk type\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:126
+#, c-format
+msgid ""
+"%s Unsupported disk format\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:130
+#, fuzzy, c-format
+msgid ""
+"%s Disk in use\n"
+"%s\n"
+msgstr "%s  %s  %s"
+
+#: libparted/labels/fdasd.c:133
+#, c-format
+msgid ""
+"%s Config file syntax error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:137
+#, c-format
+msgid ""
+"%s Volume label is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:141
+#, c-format
+msgid ""
+"%s a data set name is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:145
+#, c-format
+msgid ""
+"%s space allocation\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:149
+#, c-format
+msgid ""
+"%s device verification failed\n"
+"The specified device is not a valid DASD device\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:154
+#, c-format
+msgid ""
+"%s Fatal error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/gpt.c:454
+#, fuzzy, c-format
+msgid ""
+"%s contains GPT signatures, indicating that it has a GPT table.  However, it "
+"does not have a valid fake msdos partition table, as it should.  Perhaps it "
+"was corrupted -- possibly by a program that doesn't understand GPT partition "
+"tables.  Or perhaps you deleted the GPT table, and are now using an msdos "
+"partition table.  Is this a GPT partition table?"
+msgstr ""
+"%s indeholder GPT-signaturer, der tyder på at den har en GPT-tabel. "
+"Imidlertid har den ikke en gyldig falsk msdos-partitionstabel som den burde. "
+"Måske er den ødelagt - muligvis af et program der ikke forstår GPT-"
+"partitionstabeller. Eller måske slettede du GPT-tabellen, og bruger nu en "
+"msdos-partitionstabel. Er dette en GPT-tabel?"
+
+#: libparted/labels/gpt.c:648
+#, fuzzy, c-format
+msgid ""
+"The format of the GPT partition table is version %x, which is newer than "
+"what Parted can recognise.  Please tell us!  bug-parted@gnu.org"
+msgstr ""
+"Formatet på GPT-partitionstabellen er nyere end hvad Parted kan genkende. "
+"Fortæl os om det! bug-parted@gnu.org"
+
+#: libparted/labels/gpt.c:698
+#, c-format
+msgid ""
+"Not all of the space available to %s appears to be used, you can fix the GPT "
+"to use all of the space (an extra %llu blocks) or continue with the current "
+"setting? "
+msgstr ""
+
+#: libparted/labels/gpt.c:827
+msgid ""
+"The backup GPT table is not at the end of the disk, as it should be.  This "
+"might mean that another operating system believes the disk is smaller.  Fix, "
+"by moving the backup to the end (and removing the old backup)?"
+msgstr ""
+"Sikkerhedskopien af GPT-tabellen er ikke i slutningen af disken, som den "
+"burde være. Dette kan betyde at et andet styresystem tror disken er mindre. "
+"Skal det rettes ved at flytte sikkerhedskopien til slutningen (og fjerne den "
+"gamle sikkerhedskopi)?"
+
+#: libparted/labels/gpt.c:862
+#, fuzzy
+msgid ""
+"The primary GPT table is corrupt, but the backup appears OK, so that will be "
+"used."
+msgstr ""
+"Den primære GPT-tabel er ødelagt, men sikkerhedskopien ser ud til at være i "
+"orden, så den vil blive brugt."
+
+#: libparted/labels/gpt.c:870
+#, fuzzy
+msgid ""
+"Both the primary and backup GPT tables are corrupt.  Try making a fresh "
+"table, and using Parted's rescue feature to recover partitions."
+msgstr ""
+"Både den primære GPT-tabel og sikkerhedskopien er ødelagt. Prøv at lave en "
+"frisk tabel, og at genskabe partitioner med Parteds redningsfacilitet."
+
+#: libparted/labels/mac.c:181
+#, c-format
+msgid "Invalid signature %x for Mac disk labels."
+msgstr "Ugyldig signatur %x for en filallokeringstabel for Mac."
+
+#: libparted/labels/mac.c:226
+msgid "Partition map has no partition map entry!"
+msgstr "Partitionstabellen mangler oplysninger om sig selv!"
+
+#: libparted/labels/mac.c:273
+#, c-format
+msgid "%s is too small for a Mac disk label!"
+msgstr "%s er for lille for en filallokeringstabel for Mac!"
+
+#: libparted/labels/mac.c:532
+#, c-format
+msgid "Partition %d has an invalid signature %x."
+msgstr "Partition %d har en ugyldig signatur %x."
+
+#: libparted/labels/mac.c:550
+#, c-format
+msgid "Partition %d has an invalid length of 0 bytes!"
+msgstr "Partition %d har en ugyldig længde, 0 byte!"
+
+#: libparted/labels/mac.c:580
+#, fuzzy
+msgid "The data region doesn't start at the start of the partition."
+msgstr "Dataområdet begynder ikke ved partitionens begyndelse"
+
+#: libparted/labels/mac.c:597
+#, fuzzy
+msgid "The boot region doesn't start at the start of the partition."
+msgstr "Startområdet begynder ikke ved partitionens begyndelse"
+
+#: libparted/labels/mac.c:611
+msgid "The partition's boot region doesn't occupy the entire partition."
+msgstr "Partitionens startområde optager ikke hele partitionens plads."
+
+#: libparted/labels/mac.c:622
+msgid "The partition's data region doesn't occupy the entire partition."
+msgstr "Partitionens dataområde optager ikke hele partitionens plads."
+
+#: libparted/labels/mac.c:675
+#, c-format
+msgid ""
+"Weird block size on device descriptor: %d bytes is not divisible by 512."
+msgstr ""
+"Mærkelig blokstørrelse på enhedens beskriver: %d byte er ikke helt delbart "
+"med 512."
+
+#: libparted/labels/mac.c:688
+#, c-format
+msgid ""
+"The driver descriptor says the physical block size is %d bytes, but Linux "
+"says it is %d bytes."
+msgstr ""
+"Enhedens beskriver påstår at den fysiske blokstørrelse er %d byte, men Linux "
+"påstår at den er %d byte."
+
+#: libparted/labels/mac.c:736
+msgid "No valid partition map found."
+msgstr "Ingen gyldig partitionstabel kunne findes."
+
+#: libparted/labels/mac.c:795
+#, fuzzy, c-format
+msgid ""
+"Conflicting partition map entry sizes!  Entry 1 says it is %d, but entry %d "
+"says it is %d!"
+msgstr ""
+"Konfliktende størrelsesdata i partitionstabellen! Post 1 påstår den er %d, "
+"mens post %d påstår den er %d!"
+
+#: libparted/labels/mac.c:822
+#, fuzzy
+msgid "Weird!  There are 2 partitions map entries!"
+msgstr "Mærkeligt - 2 poster i partitionstabellen!"
+
+#: libparted/labels/mac.c:1347
+msgid ""
+"Changing the name of a root or swap partition will prevent Linux from "
+"recognising it as such."
+msgstr ""
+"At ændre navnet på en rod- eller swappartition gør at Linux ikke kan "
+"genkende dem."
+
+#: libparted/labels/mac.c:1443
+#, fuzzy
+msgid "Can't add another partition -- the partition map is too small!"
+msgstr ""
+"Kan ikke tilføje endnu en primær partition - partitionstabellen er for lille."
+
+#: libparted/labels/pc98.c:354
+#, fuzzy, c-format
+msgid "Invalid partition table on %s."
+msgstr "Ugyldig partitionstabel på %s"
+
+#: libparted/labels/pc98.c:406 libparted/labels/pc98.c:484
+#, fuzzy, c-format
+msgid ""
+"Partition %d isn't aligned to cylinder boundaries.  This is still "
+"unsupported."
+msgstr ""
+"Partitionen %d ligger ikke på hel cylindergrænse. Skal tilføje "
+"understøttelse for dette."
+
+#: libparted/labels/pc98.c:791
+msgid "Can't add another partition."
+msgstr "Kan ikke tilføje endnu en partition."
+
+#: libparted/labels/rdb.c:162
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:497
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen."
+msgstr ""
+
+#: libparted/labels/rdb.c:581
+#, c-format
+msgid "%s : Loop detected at block %d."
+msgstr ""
+
+#: libparted/labels/rdb.c:600
+#, c-format
+msgid "%s : The %s list seems bad at block %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:689
+#, c-format
+msgid "%s : Failed to list bad blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:697
+#, c-format
+msgid "%s : Failed to list partition blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:705
+#, c-format
+msgid "%s : Failed to list file system blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:713
+#, c-format
+msgid "%s : Failed to list boot blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:740
+#, fuzzy, c-format
+msgid "Failed to write partition block at %d."
+msgstr "Kan ikke bestemme om partitionen er monteret."
+
+#: libparted/labels/rdb.c:1069
+#, fuzzy
+msgid "Unable to allocate a partition number."
+msgstr "Forventer et partitionsnummer."
+
+#: libparted/labels/sun.c:145
+msgid "Corrupted Sun disk label detected."
+msgstr "En beskadiget Sun disk-etikette blev fundet."
+
+#: libparted/labels/sun.c:266
+#, fuzzy, c-format
+msgid ""
+"The disk CHS geometry (%d,%d,%d) reported by the operating system does not "
+"match the geometry stored on the disk label (%d,%d,%d)."
+msgstr ""
+"Disk CHS-geometrien (%d,%d,%d) passer ikke med geometrien gemt på disk-"
+"etiketten (%d,%d,%d)."
+
+#: libparted/labels/sun.c:288
+#, c-format
+msgid "The disk label describes a disk bigger than %s."
+msgstr "Disk-etiketten beskriver en disk større end %s."
+
+#: libparted/labels/sun.c:442
+#, c-format
+msgid "The disk has %d cylinders, which is greater than the maximum of 65536."
+msgstr ""
+
+#: libparted/labels/sun.c:737
+msgid ""
+"The Whole Disk partition is the only available one left.  Generally, it is "
+"not a good idea to overwrite this partition with a real one.  Solaris may "
+"not be able to boot without it, and SILO (the sparc boot loader) appreciates "
+"it as well."
+msgstr ""
+"Hele disk-partitionen er den eneste tilbageværende, der er tilgængelig. "
+"Generelt er det ikke en god idé at overskrive denne partition med en rigtig "
+"én. Solaris vil muligvis ikke kunne starte op uden den, og SILO "
+"(opstartsprogrammet for Sparc) sætter også pris på den."
+
+#: libparted/labels/sun.c:752
+msgid "Sun disk label is full."
+msgstr "Sun disk-etikette er fuld."
+
+#: libparted/labels/vtoc.c:163
+#, c-format
+msgid ""
+"%s opening device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:167
+#, c-format
+msgid ""
+"%s seeking device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:171
+#, c-format
+msgid ""
+"%s writing to device '%s' failed,\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:175
+#, c-format
+msgid ""
+"%s reading from device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:179
+#, c-format
+msgid "Fatal error\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:418
+msgid "Could not read VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:424
+msgid "Could not read VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:431
+msgid "Could not read VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:438
+msgid "Could not read VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:445
+msgid "Could not read VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:462
+msgid "Could not write VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:468
+msgid "Could not write VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:475
+msgid "Could not write VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:482
+msgid "Could not write VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:489
+msgid "Could not write VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/libparted.c:296 libparted/libparted.c:316
+msgid "Out of memory."
+msgstr "Ikke mere hukommelse."
+
+#: libparted/unit.c:139
+msgid "Cannot get unit size for special unit 'COMPACT'."
+msgstr ""
+
+#: libparted/unit.c:386
+#, c-format
+msgid "\"%s\" has invalid syntax for locations."
+msgstr ""
+
+#: libparted/unit.c:394
+#, c-format
+msgid "The maximum head value is %d."
+msgstr ""
+
+#: libparted/unit.c:401
+#, c-format
+msgid "The maximum sector value is %d."
+msgstr ""
+
+#: libparted/unit.c:413 libparted/unit.c:545
+#, fuzzy, c-format
+msgid "The location %s is outside of the device %s."
+msgstr "Kan ikke oprette en partition udenfor enheden."
+
+#: libparted/unit.c:527
+msgid "Invalid number."
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:63 libparted/fs/amiga/apfs.c:56
+#: libparted/fs/amiga/asfs.c:70
+#, fuzzy, c-format
+msgid "%s : Failed to allocate partition block\n"
+msgstr "Kan ikke bestemme om partitionen er monteret."
+
+#: libparted/fs/amiga/affs.c:78 libparted/fs/amiga/apfs.c:70
+#: libparted/fs/amiga/asfs.c:86
+#, c-format
+msgid "%s : Failed to allocate block\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:83 libparted/fs/amiga/apfs.c:75
+#, c-format
+msgid "%s : Couldn't read boot block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:99 libparted/fs/amiga/apfs.c:86
+#: libparted/fs/amiga/asfs.c:92 libparted/fs/amiga/asfs.c:106
+#, c-format
+msgid "%s : Couldn't read root block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:72
+#, c-format
+msgid "%s : Failed to allocate id list element\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:189
+#, c-format
+msgid "%s : Couldn't read block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:202
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:212
+#, fuzzy, c-format
+msgid "%s : Couldn't write block %d\n"
+msgstr "%s under skrivning på %s"
+
+#: libparted/fs/amiga/amiga.c:278
+#, c-format
+msgid "%s : Failed to allocate disk_specific rdb block\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:289
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:318
+#, fuzzy, c-format
+msgid "%s : Failed to read partition block %llu\n"
+msgstr "Kan ikke bestemme om partitionen er monteret."
+
+#: libparted/fs/ext2/ext2.c:87 libparted/fs/ext2/ext2.c:112
+msgid "Inconsistent group descriptors!"
+msgstr "Inkonsistente gruppebeskrivere!"
+
+#: libparted/fs/ext2/ext2.c:91 libparted/fs/ext2/ext2.c:116
+#, fuzzy
+msgid "File system full!"
+msgstr "Filsystemet er fuldt!"
+
+#: libparted/fs/ext2/ext2.c:686
+#, fuzzy
+msgid "Invalid superblock.  Are you sure this is an ext2 file system?"
+msgstr "Ugyldig superblok. Er du sikker på at dette er et ext2-filsystem?"
+
+#: libparted/fs/ext2/ext2.c:700 libparted/fs/ext2/ext2_resize.c:658
+#, fuzzy
+msgid "File system has errors!  You should run e2fsck."
+msgstr "Filsystemet indholder fejl! Kør e2fsck først."
+
+#: libparted/fs/ext2/ext2.c:711
+#, fuzzy
+msgid ""
+"File system was not cleanly unmounted!  You should run e2fsck.  Modifying an "
+"unclean file system could cause severe corruption."
+msgstr "Filsystemet er ikke afmonteret på rette måde! Brug e2fsck."
+
+#: libparted/fs/ext2/ext2.c:731
+#, fuzzy
+msgid "File system has an incompatible feature enabled."
+msgstr "Filsystemet har en inkompatibel finesse aktiveret"
+
+#: libparted/fs/ext2/ext2.c:742
+msgid "Error allocating buffer cache."
+msgstr "Kunne ikke reservere buffercache"
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:114
+#, fuzzy
+msgid ""
+"Found an inode with a incorrect link count.  Better go run e2fsck first!"
+msgstr "Fandt en inode med fejlagtigt antal lænker. Kør e2fsck først."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:487
+msgid "Not enough free inodes!"
+msgstr "Der findes ikke tilstrækkeligt mange frie inoder!"
+
+#: libparted/fs/ext2/ext2_resize.c:223
+#, fuzzy
+msgid "File system is too full to remove a group!"
+msgstr "Filsystemet er for optaget til at fjerne en gruppe!"
+
+#: libparted/fs/ext2/ext2_resize.c:232
+#, fuzzy
+msgid "File system has too many allocated inodes to remove a group!"
+msgstr "Filsystemet har for mange reserverede inoder for at fjerne en gruppe!"
+
+#: libparted/fs/ext2/ext2_resize.c:491
+msgid "adding groups"
+msgstr "tilføjer grupper"
+
+#: libparted/fs/ext2/ext2_resize.c:528
+#, fuzzy, c-format
+msgid "Your file system is too full to resize it to %i blocks.  Sorry."
+msgstr "Filsystemet er for optaget til at ændre dets størrelse til %i blokke."
+
+#: libparted/fs/ext2/ext2_resize.c:538
+#, fuzzy, c-format
+msgid ""
+"Your file system has too many occupied inodes to resize it to %i blocks.  "
+"Sorry."
+msgstr ""
+"Filsystemet har for mange optagede inoder til at ændre dets størrelse til %i "
+"blokke."
+
+#: libparted/fs/ext2/ext2_resize.c:666
+#, fuzzy
+msgid "File system was not cleanly unmounted!  You should run e2fsck."
+msgstr "Filsystemet er ikke afmonteret på rette måde! Brug e2fsck."
+
+#: libparted/fs/ext2/ext2_resize.c:675
+msgid ""
+"The file system has the 'dir_index' feature enabled.  Parted can only resize "
+"the file system if it disables this feature.  You can enable it later by "
+"running 'tune2fs -O dir_index DEVICE' and then 'e2fsck -fD DEVICE'."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:691
+msgid ""
+"A resize operation on this file system will use EXPERIMENTAL code\n"
+"that MAY CORRUPT it (although no one has reported any such damage yet).\n"
+"You should at least backup your data first, and run 'e2fsck -f' afterwards."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_block_relocator.c:198
+#, fuzzy
+msgid "Cross-linked blocks found!  Better go run e2fsck first!"
+msgstr "Krydslænkede blokke fundet! Kør e2fsck først!"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:537
+#, fuzzy, c-format
+msgid "Block %i has no reference?  Weird."
+msgstr "Blok %i har ingen reference? Mærkeligt"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:737
+#, fuzzy, c-format
+msgid "Block %i shouldn't have been marked (%d, %d)!"
+msgstr "Blok %i burde ikke være mærket!"
+
+#: libparted/fs/ext2/interface.c:186
+#, fuzzy
+msgid ""
+"The ext2 file system passed a basic check.  For a more comprehensive check, "
+"use the e2fsck program."
+msgstr ""
+"Filsystemet (e2fs) klarede et grundlæggende test. For et mere gennemgående "
+"test, brug programmet e2fsck."
+
+#: libparted/fs/ext2/interface.c:203
+msgid "Sorry, can't move the start of ext2 partitions yet!"
+msgstr "Kan ikke flytte en ext2-partitions begyndelse endnu!"
+
+#: libparted/fs/ext2/ext2_buffer.c:82
+msgid "Couldn't flush buffer cache!"
+msgstr "Kunne ikke rense buffercachen!"
+
+#: libparted/fs/ext2/ext2_mkfs.c:162
+msgid "writing per-group metadata"
+msgstr "skriver metadata for hver gruppe"
+
+#: libparted/fs/ext2/ext2_mkfs.c:564
+msgid "File system too small for ext2."
+msgstr "Filsystem for lille til ext2."
+
+#: libparted/fs/fat/calc.c:135
+#, fuzzy, c-format
+msgid ""
+"You need %s of free disk space to shrink this partition to this size.  "
+"Currently, only %s is free."
+msgstr ""
+"Du behøver %dM ledig plads for at formindske størrelsen på denne partition "
+"til angiven størrelse. (der er kun %dM ledigt)"
+
+#: libparted/fs/fat/context.c:56
+#, c-format
+msgid ""
+"Cluster start delta = %d, which is not a multiple of the cluster size %d."
+msgstr ""
+"Klynge-startforskel er %d, hvilket ikke er en multipel af klyngestørrelsen %d"
+
+#: libparted/fs/fat/fat.c:308
+#, fuzzy, c-format
+msgid "Partition too big/small for a %s file system."
+msgstr "Partitionen for stor eller lille til at indeholde et %s-filsystem"
+
+#: libparted/fs/fat/fat.c:474
+msgid ""
+"The FATs don't match.  If you don't know what this means, then select "
+"cancel, run scandisk on the file system, and then come back."
+msgstr ""
+"Filallokeringstabellerne stemmer ikke overens. Hvis du ikke véd hvad dette "
+"betyder, vælg annullér, kør scandisk på filsystemet og forsøg igen."
+
+#: libparted/fs/fat/fat.c:514
+msgid "There are no possible configurations for this FAT type."
+msgstr "Det findes ingen mulige kombinationer for denne FAT-type."
+
+#: libparted/fs/fat/fat.c:526
+#, c-format
+msgid ""
+"File system doesn't have expected sizes for Windows to like it.  Cluster "
+"size is %dk (%dk expected); number of clusters is %d (%d expected); size of "
+"FATs is %d sectors (%d expected)."
+msgstr ""
+"Filsystemet har ikke en størrelse som Windows kan lide. Klyngestørrelsen er %"
+"dk (%dk forventet); antal klynger er %d (%d forventet); størrelsen på FAT-"
+"erne er %d sektorer (%d forventet)."
+
+#: libparted/fs/fat/fat.c:549
+#, c-format
+msgid ""
+"File system is reporting the free space as %d clusters, not %d clusters."
+msgstr "Filsystemet mener at den frie plads er %d klynger, ikke %d."
+
+#: libparted/fs/fat/fat.c:874
+#, fuzzy
+msgid ""
+"GNU Parted was miscompiled: the FAT boot sector should be 512 bytes.  FAT "
+"support will be disabled."
+msgstr ""
+"GNU Parted kompileredes fejlagtigt: FAT's startsektor skal være 512 byte. "
+"Understøttelsen for FAT vil blive blokeret."
+
+#: libparted/fs/fat/resize.c:159
+#, fuzzy
+msgid ""
+"There's not enough room in the root directory for all of the files.  Either "
+"cancel, or ignore to lose the files."
+msgstr ""
+"Der er ikke tilstrækkeligt med plads for alle filer i rodkataloget. Vælg "
+"enten at annullere, eller ignorere og tabe filerne."
+
+#: libparted/fs/fat/resize.c:300
+msgid "Error writing to the root directory."
+msgstr "En fejl opstod ved skrivning til rodkataloget."
+
+#: libparted/fs/fat/resize.c:489
+#, fuzzy
+msgid "If you leave your file system as FAT16, then you will have no problems."
+msgstr ""
+"Hvis du lader filsystemet fortsætte med at være FAT16 vil du ikke få nogen "
+"problemer."
+
+#: libparted/fs/fat/resize.c:492
+msgid ""
+"If you convert to FAT16, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual)."
+msgstr ""
+"Hvis du konverterer til FAT16 og MS Windows er installeret på denne "
+"partition så skal du geninstallere MS Windows opstartsprogram. Hvis du gør "
+"det bør du studere Parteds manual (eller din distributions manual)."
+
+#: libparted/fs/fat/resize.c:500
+msgid ""
+"If you leave your file system as FAT32, then you will not introduce any new "
+"problems."
+msgstr ""
+"Hvis du lader filsystemet fortsætte med at være FAT32 vil du ikke "
+"introducere nogen nye problemer."
+
+#: libparted/fs/fat/resize.c:504
+msgid ""
+"If you convert to FAT32, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual).  Also, "
+"converting to FAT32 will make the file system unreadable by MS DOS, MS "
+"Windows 95a, and MS Windows NT."
+msgstr ""
+"Hvis du konverterer til FAT32, og MS Windows er installeret på denne "
+"partition, skal du geninstallere MS Windows opstartsprogram. Hvis du gør det "
+"bør du studere Parteds manual (eller din distributions manual). Bemærk at "
+"ved at konvertere filsystemet til FAT32 vil det ikke kunne læses af MS DOS, "
+"MS Windows 95a og MS Windows NT."
+
+#: libparted/fs/fat/resize.c:518
+#, c-format
+msgid "%s  %s  %s"
+msgstr "%s  %s  %s"
+
+#: libparted/fs/fat/resize.c:519
+msgid "Would you like to use FAT32?"
+msgstr "Ønsker du at bruge FAT32?"
+
+#: libparted/fs/fat/resize.c:550 libparted/fs/fat/resize.c:566
+#, c-format
+msgid "%s  %s"
+msgstr "%s  %s"
+
+#: libparted/fs/fat/resize.c:551
+msgid ""
+"The file system can only be resized to this size by converting to FAT16."
+msgstr ""
+"Filsystemet kan kun ændres til denne størrelse ved at konvertere til FAT16."
+
+#: libparted/fs/fat/resize.c:567
+msgid ""
+"The file system can only be resized to this size by converting to FAT32."
+msgstr ""
+"Filsystemet kan kun ændres til denne størrelse ved at konvertere til FAT32."
+
+#: libparted/fs/fat/resize.c:580
+#, fuzzy
+msgid ""
+"GNU Parted cannot resize this partition to this size.  We're working on it!"
+msgstr ""
+"GNU Parted kan ikke ændre partitionen til denne størrelse. Vi arbejder på en "
+"løsning!"
+
+#: libparted/fs/fat/bootsector.c:49 libparted/fs/fat/bootsector.c:56
+msgid "File system has an invalid signature for a FAT file system."
+msgstr "Filsystemet har en ugyldig signatur for filsystemer af typen FAT."
+
+#: libparted/fs/fat/bootsector.c:64
+msgid "File system has an invalid sector size for a FAT file system."
+msgstr ""
+"Filsystemet har en ugyldig sektorstørrelse for et filsystem af typen FAT."
+
+#: libparted/fs/fat/bootsector.c:71
+msgid "File system has an invalid cluster size for a FAT file system."
+msgstr ""
+"Filsystemet har en ugyldig klyngestørrelse for et filsystem af typen FAT."
+
+#: libparted/fs/fat/bootsector.c:78
+#, fuzzy
+msgid ""
+"File system has an invalid number of reserved sectors for a FAT file system."
+msgstr ""
+"Filsystemet har et ugyldigt antal reserverede sektorer for et filsystem af "
+"typen FAT."
+
+#: libparted/fs/fat/bootsector.c:85
+#, fuzzy
+msgid "File system has an invalid number of FATs."
+msgstr "Filsystemet har et fejlagtigt antal filallokeringstabeller."
+
+#: libparted/fs/fat/bootsector.c:139
+#, c-format
+msgid ""
+"This file system has a logical sector size of %d.  GNU Parted is known not "
+"to work properly with sector sizes other than 512 bytes."
+msgstr ""
+"Filsystemet har en logisk sektorstørrelse på %d. Det er kendt at GNU Parted "
+"ikke fungerer godt med andre sektorstørrelser end 512 byte."
+
+#: libparted/fs/fat/bootsector.c:164
+#, c-format
+msgid ""
+"The file system's CHS geometry is (%d, %d, %d), which is invalid.  The "
+"partition table's CHS geometry is (%d, %d, %d).  If you select Ignore, the "
+"file system's CHS geometry will be left unchanged.  If you select Fix, the "
+"file system's CHS geometry will be set to match the partition table's CHS "
+"geometry."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:213
+msgid "FAT boot sector says logical sector size is 0.  This is weird. "
+msgstr ""
+"FAT:s startsektor mener at den logiske sektorstørrelse er 0. Mærkeligt."
+
+#: libparted/fs/fat/bootsector.c:219
+msgid "FAT boot sector says there are no FAT tables.  This is weird. "
+msgstr "FAT:s startsektor mener at der mangler FAT-tabeller. Mærkeligt."
+
+#: libparted/fs/fat/bootsector.c:225
+msgid "FAT boot sector says clusters are 0 sectors.  This is weird. "
+msgstr "FAT:s startsektor mener at en klynge består af 0 sektorer. Mærkeligt."
+
+#: libparted/fs/fat/bootsector.c:235
+#, fuzzy
+msgid "File system is FAT12, which is unsupported."
+msgstr "Filsystemet er FAT12, som ikke understøttes."
+
+#: libparted/fs/fat/bootsector.c:411
+#, c-format
+msgid ""
+"The information sector has the wrong signature (%x).  Select cancel for now, "
+"and send in a bug report.  If you're desperate, it's probably safe to ignore."
+msgstr ""
+"Informationssektoren har forkert signatur (%x). Vælg annullér og indsend en "
+"fejlrapport. Hvis du er desperat så er det formodentlig sikkert at ignorere "
+"fejlen."
+
+#: libparted/fs/fat/count.c:152
+#, c-format
+msgid "Bad directory entry for %s: first cluster is the end of file marker."
+msgstr ""
+"Fejlagtig katalogindgang for %s: første klynge er en filslutsmarkering."
+
+#: libparted/fs/fat/count.c:165
+#, c-format
+msgid ""
+"Bad FAT: unterminated chain for %s.  You should run dosfsck or scandisk."
+msgstr ""
+"Dårlig filallokeringstabel: ej afsluttet kæde for %s. Du bør køre dosfsck "
+"eller scandisk."
+
+#: libparted/fs/fat/count.c:174
+#, fuzzy, c-format
+msgid ""
+"Bad FAT: cluster %d outside file system in chain for %s.  You should run "
+"dosfsck or scandisk."
+msgstr ""
+"Dårlig filallokeringstabel: klynge %d ligger udenfor filsystemet for %s. Du "
+"bør køre dosfsck eller scandisk."
+
+#: libparted/fs/fat/count.c:184
+#, c-format
+msgid ""
+"Bad FAT: cluster %d is cross-linked for %s.  You should run dosfsck or "
+"scandisk."
+msgstr ""
+"Dårlig filallokeringstabel: klynge %d er krydslænket for %s. Du bør køre "
+"dosfsck eller scandisk."
+
+#: libparted/fs/fat/count.c:203
+#, c-format
+msgid "%s is %dk, but it has %d clusters (%dk)."
+msgstr "%s er %dk, men den har %d klynger (%dk)."
+
+#: libparted/fs/fat/count.c:266
+#, c-format
+msgid ""
+"The file %s is marked as a system file.  This means moving it could cause "
+"some programs to stop working."
+msgstr ""
+"Filen %s er markeret som en systemfil. Dette betyder at flytning af den kan "
+"bevirke at nogen programmer ikke længere vil virke."
+
+#: libparted/fs/fat/table.c:137
+#, c-format
+msgid ""
+"FAT %d media %x doesn't match the boot sector's media %x.  You should "
+"probably run scandisk."
+msgstr ""
+"FAT %d medie %x passer ikke med startsektorns medie %x. Du bør nok køre "
+"scandisk."
+
+#: libparted/fs/fat/table.c:269
+#, fuzzy, c-format
+msgid "fat_table_set: cluster %ld outside file system"
+msgstr "fat_table_set: klynge %ld ligger udenfor filsystemet"
+
+#: libparted/fs/fat/table.c:301
+#, fuzzy, c-format
+msgid "fat_table_get: cluster %ld outside file system"
+msgstr "fat_table_get: klynge %ld ligger udenfor filsystemet"
+
+#: libparted/fs/fat/table.c:343
+msgid "fat_table_alloc_cluster: no free clusters"
+msgstr "fat_table_alloc_cluster: ingen ledige klynger"
+
+#: libparted/fs/linux_swap/linux_swap.c:275
+#, fuzzy, c-format
+msgid "Unrecognised old style linux swap signature '%10s'."
+msgstr "Ukendt signatur for Linux swapplads \\\"%10s\\\"."
+
+#: libparted/fs/linux_swap/linux_swap.c:318
+#, fuzzy, c-format
+msgid "Unrecognised new style linux swap signature '%10s'."
+msgstr "Ukendt signatur for Linux swapplads \\\"%10s\\\"."
+
+#: libparted/fs/linux_swap/linux_swap.c:358
+#, fuzzy, c-format
+msgid "Unrecognised swsusp linux swap signature '%9s'."
+msgstr "Ukendt signatur for Linux swapplads \\\"%10s\\\"."
+
+#: libparted/fs/linux_swap/linux_swap.c:434
+msgid "Too many bad pages."
+msgstr "For mange dårlige sider."
+
+#: libparted/fs/hfs/advfs.c:121 libparted/fs/hfs/advfs_plus.c:122
+#: libparted/fs/hfs/reloc.c:414 libparted/fs/hfs/reloc.c:508
+#: libparted/fs/hfs/reloc_plus.c:539 libparted/fs/hfs/reloc_plus.c:658
+#: libparted/fs/hfs/reloc_plus.c:772
+msgid "The file system contains errors."
+msgstr ""
+
+#: libparted/fs/hfs/advfs_plus.c:287
+msgid "Bad blocks could not be read."
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:137
+#, c-format
+msgid ""
+"Trying to register an extent starting at block 0x%X, but another one already "
+"exists at this position.  You should check the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:214
+#, c-format
+msgid ""
+"Trying to move an extent from block Ox%X to block Ox%X, but another one "
+"already exists at this position.  This should not happen!"
+msgstr ""
+
+#: libparted/fs/hfs/file.c:143
+#, c-format
+msgid "Could not update the extent cache for HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:180
+#, c-format
+msgid "Trying to read HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:190 libparted/fs/hfs/file.c:220
+#, c-format
+msgid "Could not find sector %lli of HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:210
+#, c-format
+msgid "Trying to write HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:157
+#, c-format
+msgid "Could not update the extent cache for HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:202
+#, c-format
+msgid "Trying to read HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:213 libparted/fs/hfs/file_plus.c:256
+#, c-format
+msgid "Could not find sector %lli of HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:245
+#, c-format
+msgid "Trying to write HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:232
+msgid "Sorry, HFS cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:262 libparted/fs/hfs/hfs.c:641
+msgid "Data relocation has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:281
+msgid "Data relocation left some data in the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:320
+#, fuzzy
+msgid "writing HFS Master Directory Block"
+msgstr "En fejl opstod ved skrivning til rodkataloget."
+
+#: libparted/fs/hfs/hfs.c:468
+msgid "No valid HFS[+X] signature has been found while opening."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:478
+#, c-format
+msgid "Version %d of HFS+ isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:489
+#, c-format
+msgid "Version %d of HFSX isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:672
+msgid "Data relocation left some data at the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:720
+#, fuzzy
+msgid "Error while writing the allocation file."
+msgstr "En fejl opstod ved skrivning til rodkataloget."
+
+#: libparted/fs/hfs/hfs.c:735
+msgid "Error while writing the compatibility part of the allocation file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:750
+msgid "writing HFS+ Volume Header"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:850
+msgid "An error occurred while looking for the mandatory bad blocks file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:904
+msgid ""
+"It seems there is an error in the HFS wrapper: the bad blocks file doesn't "
+"contain the embedded HFS+ volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:940
+msgid "Sorry, HFS+ cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:975
+msgid "shrinking embedded HFS+ volume"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:991
+msgid "Resizing the HFS+ volume has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:998
+#, fuzzy
+msgid "shrinking HFS wrapper"
+msgstr "krymper"
+
+#: libparted/fs/hfs/hfs.c:1007
+msgid "Updating the HFS wrapper has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:1109 libparted/fs/hfs/hfs.c:1194
+#, c-format
+msgid ""
+"This is not a real %s check.  This is going to extract special low level "
+"files for debugging purposes."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:155
+msgid "Bad block list header checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:168
+#, c-format
+msgid ""
+"Invalid size of a transaction block while replaying the journal (%i bytes)."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:260
+msgid ""
+"Journal stored outside of the volume are not supported.  Try to desactivate "
+"the journal and run Parted again."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:271
+#, fuzzy
+msgid "Journal offset or size is not multiple of the sector size."
+msgstr ""
+"Klynge-startforskel er %d, hvilket ikke er en multipel af klyngestørrelsen %d"
+
+#: libparted/fs/hfs/journal.c:292
+msgid "Incorrect magic values in the journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:302
+msgid "Journal size mismatch between journal info block and journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:314
+#, fuzzy
+msgid "Some header fields are not multiple of the sector size."
+msgstr ""
+"Klynge-startforskel er %d, hvilket ikke er en multipel af klyngestørrelsen %d"
+
+#: libparted/fs/hfs/journal.c:323
+msgid ""
+"The sector size stored in the journal is not 512 bytes.  Parted only "
+"supports 512 bytes length sectors."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:335
+msgid "Bad journal checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:353
+msgid ""
+"The journal is not empty.  Parted must replay the transactions before "
+"opening the file system.  This will modify the file system."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:381
+msgid ""
+"The volume header or the master directory block has changed while replaying "
+"the journal.  You should restart Parted."
+msgstr ""
+
+#: libparted/fs/hfs/probe.c:51
+#, c-format
+msgid ""
+"Parted can't use HFS file systems on disks with a sector size not equal to %"
+"d bytes."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:151 libparted/fs/hfs/reloc_plus.c:155
+msgid "An extent has not been relocated."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:251 libparted/fs/hfs/reloc_plus.c:307
+msgid ""
+"A reference to an extent comes from a place it should not.  You should check "
+"the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:381
+msgid "This HFS volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:475
+msgid "This HFS volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:517 libparted/fs/hfs/reloc_plus.c:668
+msgid ""
+"The extents overflow file should not contain its own extents!  You should "
+"check the file system."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:574 libparted/fs/hfs/reloc_plus.c:847
+#, fuzzy
+msgid "Could not cache the file system in memory."
+msgstr "Kunne ikke finde noget filsystem."
+
+#: libparted/fs/hfs/reloc.c:635 libparted/fs/hfs/reloc_plus.c:908
+msgid "Bad blocks list could not be loaded."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:649 libparted/fs/hfs/reloc_plus.c:924
+msgid "An error occurred during extent relocation."
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:495
+msgid "This HFS+ volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:619
+msgid "This HFS+ volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: parted/parted.c:94
+msgid "displays this help message"
+msgstr "viser denne hjælpetekst"
+
+#: parted/parted.c:95
+msgid "lists partition layout on all block devices"
+msgstr ""
+
+#: parted/parted.c:96
+msgid "displays machine parseable output"
+msgstr ""
+
+#: parted/parted.c:97
+msgid "never prompts for user intervention"
+msgstr "spørger aldrig brugeren om alternativer"
+
+#: parted/parted.c:98
+msgid "displays the version"
+msgstr "viser versionen"
+
+#: parted/parted.c:111
+#, fuzzy
+msgid ""
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"
+msgstr ""
+"LILLE er partitionsnumret som Linux bruger. På filsystemer af type MSDOS er "
+"de primære partitioner numrerede fra 1 til 4, og de logiske partitioner fra "
+"5 og opad.\n"
+
+#: parted/parted.c:114
+msgid "LABEL-TYPE is one of: "
+msgstr "LABEL-TYPE er en af:"
+
+#: parted/parted.c:115
+msgid "FLAG is one of: "
+msgstr "FLAG er et af: "
+
+#: parted/parted.c:116
+#, fuzzy
+msgid "UNIT is one of: "
+msgstr "FLAG er et af: "
+
+#: parted/parted.c:117
+msgid "PART-TYPE is one of: primary, logical, extended\n"
+msgstr "PART-TYPE er en af: primær, logisk, udvidet\n"
+
+#: parted/parted.c:119
+msgid "FS-TYPE is one of: "
+msgstr "FS-TYPE er en af: "
+
+#: parted/parted.c:120
+msgid ""
+"START and END are disk locations, such as 4GB or 10%.  Negative values count "
+"from the end of the disk.  For example, -1s specifies exactly the last "
+"sector.\n"
+msgstr ""
+
+#: parted/parted.c:123
+msgid "STATE is one of: on, off\n"
+msgstr "TILSTAND er en af: på, af\n"
+
+#: parted/parted.c:124
+msgid "DEVICE is usually /dev/hda or /dev/sda\n"
+msgstr "ENHED er normalt /dev/hda eller /dev/sda\n"
+
+#: parted/parted.c:125
+msgid "NAME is any word you want\n"
+msgstr "NAVN er et vilkårligt ord\n"
+
+#: parted/parted.c:126
+msgid "The partition must have one of the following FS-TYPEs: "
+msgstr ""
+
+#: parted/parted.c:130
+#, fuzzy
+msgid ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+msgstr ""
+"Ophavsret © 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.\n"
+"Dette program er frit programmel, dækket af GNU General Public License.\n"
+"\n"
+"Dette program distribueres i håb om at det vil være nyttigt, men\n"
+"UDEN NOGEN SOM HELST GARANTI, endog uden underforstået garanti om\n"
+"SALGBARHED eller EGNETHED FOR NOGET SPECIELT FORMÅL. Se GNU General\n"
+"Public License for yderligere information.\n"
+
+#: parted/parted.c:176
+#, c-format
+msgid "%0.f%%\t(time left %.2d:%.2d)"
+msgstr "%0.f%%\t(tid tilbage %.2d:%.2d)"
+
+#: parted/parted.c:195
+#, c-format
+msgid ""
+"Partition %s is being used. You must unmount it before you modify it with "
+"Parted."
+msgstr ""
+
+#: parted/parted.c:211
+#, c-format
+msgid "Partition(s) on %s are being used."
+msgstr "Partitionen på %s er i brug."
+
+#: parted/parted.c:223
+msgid ""
+"The existing file system will be destroyed and all data on the partition "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:235
+#, c-format
+msgid ""
+"The existing disk label on %s will be destroyed and all data on this disk "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:458 parted/parted.c:652 parted/parted.c:1044
+#: parted/parted.c:1128 parted/parted.c:1771 parted/parted.c:1852
+#: parted/parted.c:1900
+msgid "Partition number?"
+msgstr "Nummer på partitionen?"
+
+#: parted/parted.c:500
+msgid "Source device?"
+msgstr "Kildeenhed?"
+
+#: parted/parted.c:504
+msgid "Source partition number?"
+msgstr "Nummer på kildepartitionen?"
+
+#: parted/parted.c:509
+#, fuzzy
+msgid "Can't copy an extended partition."
+msgstr "Kan ikke kopiere udvidede partitioner."
+
+#: parted/parted.c:515
+msgid "Destination partition number?"
+msgstr "Nummer på målpartitionen?"
+
+#: parted/parted.c:615
+msgid "New disk label type?"
+msgstr "Type på ny disketikette?"
+
+#: parted/parted.c:656
+msgid "File system?"
+msgstr "Filsystem?"
+
+#: parted/parted.c:707 parted/parted.c:878
+msgid "Partition type?"
+msgstr "Type på partitionen"
+
+#: parted/parted.c:714 parted/parted.c:885 parted/parted.c:1131
+msgid "Partition name?"
+msgstr "Navn på partitionen?"
+
+#: parted/parted.c:722 parted/parted.c:895
+msgid "File system type?"
+msgstr "Type på filsystemet?"
+
+#: parted/parted.c:729 parted/parted.c:897 parted/parted.c:1059
+#: parted/parted.c:1725 parted/parted.c:1780
+msgid "Start?"
+msgstr "Start?"
+
+#: parted/parted.c:731 parted/parted.c:900 parted/parted.c:1062
+#: parted/parted.c:1727 parted/parted.c:1782
+msgid "End?"
+msgstr "Slut?"
+
+#: parted/parted.c:769 parted/parted.c:938
+#, c-format
+msgid ""
+"You requested a partition from %s to %s.\n"
+"The closest location we can manage is %s to %s.  Is this still acceptable to "
+"you?"
+msgstr ""
+
+#: parted/parted.c:890
+#, fuzzy
+msgid "An extended partition cannot hold a file system.  Did you want mkpart?"
+msgstr "Udvidede partitioner kan ikke have filsystemer. Ønskede du mkpart?"
+
+#: parted/parted.c:1050
+#, fuzzy
+msgid "Can't move an extended partition."
+msgstr "Kan ikke flytte udvidede partitioner."
+
+#: parted/parted.c:1079
+msgid "Can't move a partition onto itself.  Try using resize, perhaps?"
+msgstr ""
+"Kan ikke flytte en partition til sig selv. Prøv at ændre størrelsen i stedet"
+
+#: parted/parted.c:1227
+#, c-format
+msgid "Minor: %d\n"
+msgstr "Lille: %d\n"
+
+#: parted/parted.c:1228
+#, fuzzy, c-format
+msgid "Flags: %s\n"
+msgstr "Flag: "
+
+#: parted/parted.c:1229
+#, c-format
+msgid "File System: %s\n"
+msgstr "Filsystem: %s\n"
+
+#: parted/parted.c:1230
+#, fuzzy
+msgid "Size:         "
+msgstr "Størrelse:         %10.3fMb (%d%%)\n"
+
+#: parted/parted.c:1235
+#, fuzzy
+msgid "Minimum size: "
+msgstr "Mindste størrelse: %10.3fMb (%d%%)\n"
+
+#: parted/parted.c:1238
+#, fuzzy
+msgid "Maximum size: "
+msgstr "Største størrelse: %10.3fMb (%d%%)\n"
+
+#: parted/parted.c:1362
+#, c-format
+msgid "Model: %s (%s)\n"
+msgstr ""
+
+#: parted/parted.c:1364
+#, fuzzy, c-format
+msgid "Disk %s: %s\n"
+msgstr "%s  %s  %s"
+
+#: parted/parted.c:1365
+#, c-format
+msgid "Sector size (logical/physical): %lldB/%lldB\n"
+msgstr ""
+
+#: parted/parted.c:1383
+#, c-format
+msgid "BIOS cylinder,head,sector geometry: %d,%d,%d.  Each cylinder is %s.\n"
+msgstr ""
+
+#: parted/parted.c:1392
+#, fuzzy, c-format
+msgid "Partition Table: %s\n"
+msgstr "Navn på partitionen?"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Number"
+msgstr ""
+
+#: parted/parted.c:1406 parted/parted.c:1409
+#, fuzzy
+msgid "Start"
+msgstr "Start?"
+
+#: parted/parted.c:1407 parted/parted.c:1410
+#, fuzzy
+msgid "End"
+msgstr "Slut?"
+
+#: parted/parted.c:1410
+#, fuzzy
+msgid "Size"
+msgstr "ændr_størrelse"
+
+#: parted/parted.c:1414
+msgid "Type"
+msgstr ""
+
+#: parted/parted.c:1416
+#, fuzzy
+msgid "File system"
+msgstr "Filsystem?"
+
+#: parted/parted.c:1419
+#, fuzzy
+msgid "Name"
+msgstr "name"
+
+#: parted/parted.c:1421
+msgid "Flags"
+msgstr "Flag"
+
+#: parted/parted.c:1477
+msgid "Free Space"
+msgstr ""
+
+#: parted/parted.c:1624
+#, fuzzy, c-format
+msgid ""
+"A %s %s partition was found at %s -> %s.  Do you want to add it to the "
+"partition table?"
+msgstr ""
+"En %s %s partition blev fundet på %.3fMb -> %.3fMb.  Ønsker du at tilføje "
+"den til partitionstabellen?"
+
+#: parted/parted.c:1663
+msgid "searching for file systems"
+msgstr "leder efter filsystemer"
+
+#: parted/parted.c:1877
+msgid "New device?"
+msgstr "Ny enhed?"
+
+#: parted/parted.c:1902
+#, fuzzy
+msgid "Flag to Invert?"
+msgstr "Flag der skal ændres?"
+
+#: parted/parted.c:1907
+msgid "New state?"
+msgstr "Ny tilstand?"
+
+#: parted/parted.c:1944
+msgid "Unit?"
+msgstr ""
+
+#: parted/parted.c:2093
+msgid "check"
+msgstr "tjek"
+
+#: parted/parted.c:2096
+#, fuzzy
+msgid ""
+"check NUMBER                             do a simple check on the file system"
+msgstr "tjek LILLE                    lav en simpel test af filsystemet"
+
+#: parted/parted.c:2102
+msgid "cp"
+msgstr "cp"
+
+#: parted/parted.c:2105
+#, fuzzy
+msgid ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+"partition"
+msgstr ""
+"cp [FRA ENHED] FRA-LILLE TIL-LILLE     kopiér et filsystem til et andet"
+
+#: parted/parted.c:2111
+msgid "help"
+msgstr "hjælp"
+
+#: parted/parted.c:2114
+#, fuzzy
+msgid ""
+"help [COMMAND]                           print general help, or help on "
+"COMMAND"
+msgstr ""
+"hjælp [KOMMANDO]             udskriver generel hjælp, eller speciel hjælp "
+"for KOMMANDO"
+
+#: parted/parted.c:2120
+msgid "mklabel"
+msgstr "mklabel"
+
+#: parted/parted.c:2120
+#, fuzzy
+msgid "mktable"
+msgstr "mklabel"
+
+#: parted/parted.c:2123
+#, fuzzy
+msgid ""
+"mklabel,mktable LABEL-TYPE               create a new disklabel (partition "
+"table)"
+msgstr "mklabel PART-TYPE  lav en ny partitionstabel"
+
+#: parted/parted.c:2129
+msgid "mkfs"
+msgstr "mkfs"
+
+#: parted/parted.c:2132
+#, fuzzy
+msgid ""
+"mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on "
+"partititon NUMBER"
+msgstr ""
+"mkfs LILLE FS-TYPE       lav et filsystem af typen TYPE på partition LILLE"
+
+#: parted/parted.c:2138
+msgid "mkpart"
+msgstr "mkpart"
+
+#: parted/parted.c:2141
+#, fuzzy
+msgid "mkpart PART-TYPE [FS-TYPE] START END     make a partition"
+msgstr "mkpart PARTITIONSTYPE [FS-TYPE] START SLUT    lav en partition"
+
+#: parted/parted.c:2147
+#, fuzzy
+msgid ""
+"'mkpart' makes a partition without creating a new file system on the "
+"partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"
+msgstr ""
+"mkpart laver en partition uden at oprette et nyt filsystem på partitionen. "
+"FS-TYPE kan angives for at sætte en passende identitet på partitionen.\n"
+
+#: parted/parted.c:2152
+msgid "mkpartfs"
+msgstr "mkpartfs"
+
+#: parted/parted.c:2155
+#, fuzzy
+msgid ""
+"mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system"
+msgstr ""
+"mkpartfs PARTITIONSTYPE FILSYSTEMSTYPE START SLUT   lav en partition med et "
+"filsystem"
+
+#: parted/parted.c:2161
+msgid "move"
+msgstr "move"
+
+#: parted/parted.c:2164
+#, fuzzy
+msgid "move NUMBER START END                    move partition NUMBER"
+msgstr "move LILLE START SLUT         flyt partition LILLE"
+
+#: parted/parted.c:2169
+msgid "name"
+msgstr "name"
+
+#: parted/parted.c:2172
+#, fuzzy
+msgid "name NUMBER NAME                         name partition NUMBER as NAME"
+msgstr "name LILLE NAVN                navngiv partition LILLE NAVN"
+
+#: parted/parted.c:2177
+msgid "print"
+msgstr "skriv"
+
+#: parted/parted.c:2180
+msgid ""
+"print [devices|free|list,all|NUMBER]     display the partition table, "
+"available devices, free space, all found partitions, or a particular "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2185
+msgid ""
+"Without arguments, 'print' displays the entire partition table. However with "
+"the following arguments it performs various other actions.\n"
+msgstr ""
+
+#: parted/parted.c:2187
+msgid "  devices   : display all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2188
+msgid ""
+"  free      : display information about free unpartitioned space on the "
+"current block device\n"
+msgstr ""
+
+#: parted/parted.c:2190
+#, fuzzy
+msgid ""
+"  list, all : display the partition tables of all active block devices\n"
+msgstr ""
+"skriv [LILLE]                   vis partitionstabellen, eller en partition"
+
+#: parted/parted.c:2191
+msgid ""
+"  NUMBER    : display more detailed information about this particular "
+"partition\n"
+msgstr ""
+
+#: parted/parted.c:2196
+msgid "quit"
+msgstr "afslut"
+
+#: parted/parted.c:2199
+#, fuzzy
+msgid "quit                                     exit program"
+msgstr "afslut                        afslut programmet"
+
+#: parted/parted.c:2204
+msgid "rescue"
+msgstr "red"
+
+#: parted/parted.c:2207
+#, fuzzy
+msgid ""
+"rescue START END                         rescue a lost partition near START "
+"and END"
+msgstr ""
+"red START SLUT                red tabte partitioner nær ved START og SLUT"
+
+#: parted/parted.c:2213
+msgid "resize"
+msgstr "ændr_størrelse"
+
+#: parted/parted.c:2216
+#, fuzzy
+msgid ""
+"resize NUMBER START END                  resize partition NUMBER and its "
+"file system"
+msgstr ""
+"red START SLUT                red tabte partitioner nær ved START og SLUT"
+
+#: parted/parted.c:2224
+msgid "rm"
+msgstr "rm"
+
+#: parted/parted.c:2227
+#, fuzzy
+msgid "rm NUMBER                                delete partition NUMBER"
+msgstr "rm LILLE                      slet partition LILLE"
+
+#: parted/parted.c:2232
+msgid "select"
+msgstr "vælg"
+
+#: parted/parted.c:2235
+#, fuzzy
+msgid "select DEVICE                            choose the device to edit"
+msgstr "vælg ENHED                    vælg enhed at redigere"
+
+#: parted/parted.c:2240
+msgid "set"
+msgstr "sæt"
+
+#: parted/parted.c:2243
+#, fuzzy
+msgid ""
+"set NUMBER FLAG STATE                    change the FLAG on partition NUMBER"
+msgstr "sæt LILLE FLAG TILSTAND        ændr et flag på partition LILLE"
+
+#: parted/parted.c:2249
+msgid "toggle"
+msgstr ""
+
+#: parted/parted.c:2252
+msgid ""
+"toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+"partition NUMBER"
+msgstr ""
+
+#: parted/parted.c:2258
+#, fuzzy
+msgid "unit"
+msgstr "afslut"
+
+#: parted/parted.c:2261
+#, fuzzy
+msgid "unit UNIT                                set the default unit to UNIT"
+msgstr "afslut                        afslut programmet"
+
+#: parted/parted.c:2266
+msgid "version"
+msgstr ""
+
+#: parted/parted.c:2269
+msgid ""
+"version                                  display the version number and "
+"copyright information of GNU Parted"
+msgstr ""
+
+#: parted/parted.c:2273
+msgid ""
+"'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"
+msgstr ""
+
+#: parted/parted.c:2335
+#, c-format
+msgid "Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"
+msgstr ""
+
+#: parted/parted.c:2379
+msgid "No device found"
+msgstr "Ingen enhed fundet"
+
+#: parted/parted.c:2412
+msgid "WARNING: You are not superuser.  Watch out for permissions."
+msgstr ""
+
+#: parted/parted.c:2450
+#, fuzzy
+msgid "You may need to update /etc/fstab.\n"
+msgstr "Glem ikke at opdatere /etc/fstab, om nødvendigt.\n"
+
+#: parted/ui.c:160
+msgid "Welcome to GNU Parted! Type 'help' to view a list of commands.\n"
+msgstr ""
+
+#: parted/ui.c:163
+#, fuzzy
+msgid ""
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run "
+"in\n"
+"interactive mode.\n"
+msgstr ""
+"Brug: parted [FLAG]... [ENHED [KOMMANDO [PARAMETRE]...]...]\n"
+"Kør KOMMANDO med PARAMETRE på ENHED. Hvis ingen KOMMANDOER angives køres\n"
+"programmet i interaktiv tilstand.\n"
+
+#: parted/ui.c:168
+#, c-format
+msgid ""
+"\n"
+"\n"
+"You found a bug in GNU Parted! Here's what you have to do:\n"
+"\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n"
+"\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Please check this version prior to bug reporting.\n"
+"\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"for further information.\n"
+"\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n"
+msgstr ""
+
+#: parted/ui.c:284
+msgid ""
+"\n"
+"Command History:\n"
+msgstr ""
+
+#: parted/ui.c:366
+msgid ""
+"\n"
+"Error: SEGV_MAPERR (Address not mapped to object)\n"
+msgstr ""
+
+#: parted/ui.c:372
+msgid ""
+"\n"
+"Error: SEGV_ACCERR (Invalid permissions for mapped object)\n"
+msgstr ""
+
+#: parted/ui.c:377
+msgid ""
+"\n"
+"Error: A general SIGSEGV signal was encountered.\n"
+msgstr ""
+
+#: parted/ui.c:410
+msgid ""
+"\n"
+"Error: FPE_INTDIV (Integer: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:415
+msgid ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+msgstr ""
+
+#: parted/ui.c:420
+msgid ""
+"\n"
+"Error: FPE_FLTDIV (Float: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:425
+msgid ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+msgstr ""
+
+#: parted/ui.c:430
+msgid ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+msgstr ""
+
+#: parted/ui.c:435
+msgid ""
+"\n"
+"Error: FPE_FLTRES (Float: inexact result)"
+msgstr ""
+
+#: parted/ui.c:440
+msgid ""
+"\n"
+"Error: FPE_FLTINV (Float: invalid operation)"
+msgstr ""
+
+#: parted/ui.c:445
+msgid ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript out of range)"
+msgstr ""
+
+#: parted/ui.c:450
+msgid ""
+"\n"
+"Error: A general SIGFPE signal was encountered."
+msgstr ""
+
+#: parted/ui.c:483
+msgid ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+msgstr ""
+
+#: parted/ui.c:488
+msgid ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+msgstr ""
+
+#: parted/ui.c:493
+msgid ""
+"\n"
+"Error: ILL_ILLADR (Illegal addressing mode)"
+msgstr ""
+
+#: parted/ui.c:498
+msgid ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+msgstr ""
+
+#: parted/ui.c:503
+msgid ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+msgstr ""
+
+#: parted/ui.c:508
+msgid ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+msgstr ""
+
+#: parted/ui.c:513
+msgid ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+msgstr ""
+
+#: parted/ui.c:518
+msgid ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+msgstr ""
+
+#: parted/ui.c:523
+msgid ""
+"\n"
+"Error: A general SIGILL signal was encountered."
+msgstr ""
+
+#: parted/ui.c:1024
+msgid "Expecting a partition number."
+msgstr "Forventer et partitionsnummer."
+
+#: parted/ui.c:1033
+msgid "Partition doesn't exist."
+msgstr "Partitionen findes ikke."
+
+#: parted/ui.c:1053
+msgid "Expecting a file system type."
+msgstr "Forventer en filsystemstype."
+
+#: parted/ui.c:1060
+#, c-format
+msgid "Unknown file system type \"%s\"."
+msgstr "Ukendt filsystemstype '%s'."
+
+#: parted/ui.c:1080
+msgid "Expecting a disk label type."
+msgstr "Forventer en disketikettetype."
+
+#: parted/ui.c:1178
+msgid "Can't create any more partitions."
+msgstr "Kan ikke tilføje flere partitioner."
+
+#: parted/ui.c:1188
+msgid "Expecting a partition type."
+msgstr "Forventer et partitionstype."
+
+#: parted/ui.c:1315
+msgid "on"
+msgstr "på"
+
+#: parted/ui.c:1316
+msgid "off"
+msgstr "fra"
+
+#: parted/ui.c:1431
+msgid "OPTIONs:"
+msgstr "FLAG:"
+
+#: parted/ui.c:1436
+msgid "COMMANDs:"
+msgstr "KOMMANDOer:"
+
+#: parted/ui.c:1445
+#, c-format
+msgid "Using %s\n"
+msgstr "Bruger %s\n"
+
+#: parted/ui.c:1519
+msgid "This command does not make sense in non-interactive mode.\n"
+msgstr ""
+
+#~ msgid "where necessary, prompts for user intervention"
+#~ msgstr "hvor det er nødvendigt spørges brugeren om alternativer"
+
+#, fuzzy
+#~ msgid ""
+#~ "Without arguments, print displays the entire partition table. With "
+#~ "'free'\n"
+#~ "argument, information about free space will be displayed otherwise if a\n"
+#~ "partition number is given, then more detailed information is displayed\n"
+#~ "about that partition. If the 'all' argument is passed instead, partition\n"
+#~ "information for all devices will be displayed.\n"
+#~ msgstr ""
+#~ "Uden argumenter udskriver 'skriv' hele partitionstabellen. Hvis et nummer "
+#~ "på en partition er angivet vil mere detaljeret information om denne "
+#~ "partition blive vist.\n"
+
+#~ msgid ""
+#~ "The sector size on %s is %d bytes.  Parted is known not to work properly "
+#~ "with drives with sector sizes other than %d bytes"
+#~ msgstr ""
+#~ "Sektorstørrelsen på %s er %d byte. Det er kendt at Parted ikke virker "
+#~ "ordentligt på drev med anden sektorstørrelse end %d byte"
+
+#~ msgid "Could not read geometry of %s - %s."
+#~ msgstr "Kunne ikke læse geometrien på %s - %s."
+
+#~ msgid "Device %s has dodgey geometry."
+#~ msgstr "Enheden %s har mærkelig geometri."
+
+#~ msgid "IDE"
+#~ msgstr "IDE"
+
+#~ msgid "SCSI"
+#~ msgstr "SCSI"
+
+#~ msgid "Device %s is neither a SCSI nor IDE drive."
+#~ msgstr "Enheden %s er hverken en SCSI- eller IDE-enhed."
+
+#~ msgid "Error reading %s (%s) to determine if partition is mounted."
+#~ msgstr ""
+#~ "En fejl opstod da %s (%s) skulle læses for at bestemme om partitionen er "
+#~ "monteret."
+
+#~ msgid ""
+#~ "Unable to determine if partitions are mounted via /proc/mounts or /etc/"
+#~ "mtab.  Make sure you don't attempt to resize or modify mounted file "
+#~ "systems.  (Even read-only mounted)"
+#~ msgstr ""
+#~ "Kan ikke afgøre om partitioner er monterede via /proc/mounts eller /etc/"
+#~ "mtab. Tjek at du ikke forsøger at ændre størrelse eller andre monterede "
+#~ "filsystemer (også monteret skrivebeskyttet)."
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  However, the most likely reason is that Linux "
+#~ "detected the BIOS geometry for %s incorrectly.  GNU Parted suspects the "
+#~ "real geometry should be %d/%d/%d (not %d/%d/%d).  You should check with "
+#~ "your BIOS first, as this may not be correct.  You can inform Linux by "
+#~ "adding the parameter %s=%d,%d,%d to the command line.  See the LILO or "
+#~ "GRUB documentation for more information.  If you think Parted's suggested "
+#~ "geometry is correct, you may select Ignore to continue (and fix Linux "
+#~ "later).  Otherwise, select Cancel (and fix Linux and/or the BIOS now)."
+#~ msgstr ""
+#~ "Partitionstabellen på %s er ikke konsistent. Der kan være mange årsager "
+#~ "til dette. Den mest sandsynlige årsag er at Linux læste forkert "
+#~ "geometriinformation for %s i BIOS. GNU Parted mistænker den rigtige "
+#~ "geometri for at være %d/%d/%d (ikke %d/%d/%d). Du bør først kontrollere "
+#~ "din BIOS eftersom det kan være forkert. Du kan informere Linux gennem at "
+#~ "tilføje parameteren %s=%d,%d,%d på kommandolinjen. Mere information "
+#~ "findes i manualerne for LILO eller GRUB. Hvis du tror at Parteds "
+#~ "foreslåede geometri er rigtig kan du vælge Ignorér for at fortsætte (og "
+#~ "rette Linux senere). Ellers, vælg Afbryd (og ret Linux og/eller BIOS nu)."
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  Often, the reason is that Linux detected the "
+#~ "BIOS geometry incorrectly.  However, this does not appear to be the case "
+#~ "here.  It is safe to ignore,but ignoring may cause (fixable) problems "
+#~ "with some boot loaders, and may cause problems with FAT file systems.  "
+#~ "Using LBA is recommended."
+#~ msgstr ""
+#~ "Partitionstabellen på %s er ikke konsistent. Det kan være mange årsager "
+#~ "til dette. Ofte er årsagen at Linux har læst geometriinformationen i BIOS "
+#~ "fejlagtigt. Det synes dog ikke være problemet her. Du kan ignorere "
+#~ "fejlen, men der kan opstå problemer (som kan rettes) med visse "
+#~ "opstartsprogrammer, og problemer med FAT-filsystemer. Brug af LBA "
+#~ "anbefales."
+
+#~ msgid ""
+#~ "Unable to align partition properly.  This probably means that another "
+#~ "partitioning tool generated an incorrect partition table, because it "
+#~ "didn't have the correct BIOS geometry.  It is safe to ignore,but ignoring "
+#~ "may cause (fixable) problems with some boot loaders."
+#~ msgstr ""
+#~ "Kunne ikke lægge partitionen på hel cylindergrænse. Det betyder ofte at "
+#~ "et andet partitionsværktøj skrev en ugyldig partitionstabel, baseret på "
+#~ "fejlagtig geometriinformation fra din BIOS. Du kan ignorere fejlen, men "
+#~ "der kan opstå problemer (som kan rettes) med visse opstartsprogrammer."
+
+#~ msgid "Attempt to read sectors %ld-%ld outside of partition on %s"
+#~ msgstr "Forsøgte læse sektorerne %ld-%ld udenfor partitionen på %s"
+
+#~ msgid ""
+#~ "This ext2 filesystem has a rather strange layout!  Parted can't resize "
+#~ "this (yet)."
+#~ msgstr ""
+#~ "Dette ext2-filsystem har en ganske mærkelig udlægning! Parted kan ikke "
+#~ "ændre størrelse på dette (endnu)."
+
+#~ msgid "File system has an invalid signature for a FAT file systems."
+#~ msgstr "Filsystemet har en ugyldig signatur for filsystemer af typen FAT."
+
+#~ msgid "START and END are in megabytes\n"
+#~ msgstr "START og SLUT angives i megabyte\n"
+
+#~ msgid "Partition %s is being used."
+#~ msgstr "Partition %s er i brug."
+
+#~ msgid ""
+#~ "You requested to create a partition at %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Du bad om at oprette en partition på %.3f-%.3fMb. Det nærmeste Parted kan "
+#~ "klare er %.3f-%.3fMb."
+
+#~ msgid ""
+#~ "You requested to move the partition to %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Du bad om at flytte partitionen til %.3f-%.3fMb. Det nærmeste Parted kan "
+#~ "klare er %.3f-%.3fMb."
+
+#~ msgid "Disk geometry for %s: 0.000-%.3f megabytes\n"
+#~ msgstr "Diskgeometri på %s: 0.000-%.3f megabyte\n"
+
+#~ msgid "Disk label type: %s\n"
+#~ msgstr "Type af filsystem: %s\n"
+
+#~ msgid "Minor    Start       End     "
+#~ msgstr "Lille     Start       Slut   "
+
+#~ msgid "Type      "
+#~ msgstr "Type      "
+
+#~ msgid "Filesystem  "
+#~ msgstr "Filsystem   "
+
+#~ msgid "Name                  "
+#~ msgstr "Navn                  "
+
+#~ msgid ""
+#~ "You requested to resize the partition to %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Du bad om at ændre størrelse på partitionen til %.3f-%.3fMb. Det nærmeste "
+#~ "Parted kan klare er %.3f-%.3fMb."
+
+#~ msgid "resize MINOR START END        resize filesystem on partition MINOR"
+#~ msgstr ""
+#~ "ændr_størrelse LILLE START SLUT  ændr størrelse på filsystemet på "
+#~ "partition LILLE"
+
+#~ msgid ""
+#~ "You found a bug in GNU Parted.  Please email a bug report to bug-"
+#~ "parted@gnu.org containing the version (%s), and the following message:\n"
+#~ msgstr ""
+#~ "Du har fundet en fejl i GNU Parted. Send en fejlrapport til bug-"
+#~ "parted@gnu.org indholdende versionsnummer (%s) og følgende meddelelse:\n"
+
+#~ msgid ""
+#~ "  You have Windows FAT partition(s) that are not using LBA.  If your BIOS "
+#~ "supports LBA, then you should switch to LBA by setting the LBA flag on "
+#~ "all FAT partitions.  Otherwise, make sure the operating system and the "
+#~ "BIOS have the same geometry before resizing any FAT partitions."
+#~ msgstr ""
+#~ " Du har Windows FAT-partitioner, som ikke bruger LBA. Hvis din BIOS "
+#~ "understøtter LBA, så bør du skifte til LBA ved at sætte LBA-flaget på "
+#~ "alle FAT-partitioner. Ellers forsikr dig at styresystemet og BIOS-en har "
+#~ "den samme geometri før du laver om på størrelsen af nogen FAT-partitioner."
+
+#~ msgid ""
+#~ "The operating system thinks the geometry on %s is %d/%d/%d.  Therefore, "
+#~ "cylinder 1024 ends at %.3fM.%s"
+#~ msgstr ""
+#~ "Operativsystemet tror at geometrien på %s er %d/%d/%d. Derfor slutter "
+#~ "cylinder 1024 på %.3fM.%s"
+
+#~ msgid "The operating system thinks the geometry on %s is %d/%d/%d.%s"
+#~ msgstr "Operativsystemet tror at geometrien på %s er %d/%d/%d.%s"
+
+#~ msgid ""
+#~ "The FATs aren't big enough to describe all clusters!  Each FAT is %d "
+#~ "sectors.  There are %d clusters, which would require each FAT to be %d "
+#~ "sectors.  This is REALLY weird.  You might want to write us an email: bug-"
+#~ "parted@gnu.org"
+#~ msgstr ""
+#~ "Filallokeringstabellerne er ikke store nok for at beskrive alle klynger! "
+#~ "Hver tabel er %d sektorer. Der findes %d klynger, hvilket indebærer at "
+#~ "hver tabel burde være %d sektorer. Dette er RIGTIGT mærkeligt. Skriv et "
+#~ "brev til os: bug-parted@gnu.org"
+
+#~ msgid ""
+#~ "This swap partition is not compatible with Linux version 2.1.117 or "
+#~ "earlier.  Use a smaller partition (maximum size 128mb) if you want to use "
+#~ "old versions of Linux."
+#~ msgstr ""
+#~ "Denne swappartition er ikke kompatibel med Linux version 2.1.117 og "
+#~ "tidligere. Brug en mindre partition (maksimal størrelse 128 MB) hvis du "
+#~ "bruger ældre versioner af Linux."
+
+#~ msgid "The new partition overlaps with another partition."
+#~ msgstr "Den nye partition overlapper med en anden."
+
+#~ msgid ""
+#~ "Can't resize an extended partition so as to exclude a logical partition."
+#~ msgstr ""
+#~ "Kan ikke ændre størrelse på en udvidet partition for at ekskludere en "
+#~ "logisk partition."
+
+#~ msgid "Can't grow a partition onto used space."
+#~ msgstr "Kan ikke lade en partition vokse ind i brugt plads."
+
+#~ msgid "unknown"
+#~ msgstr "ukendt"
+
+# ??
+#~ msgid "Unknown SCSI"
+#~ msgstr "Ukendt SCSI"
+
+#~ msgid "GUID Partition Table Header Signature is wrong: "
+#~ msgstr "Signatur for GUID partitionstabelhovede er forkert: "
+
+#~ msgid " should be "
+#~ msgstr " skulle være "
+
+#~ msgid "GPT Header CRC check failed, %x should be %x."
+#~ msgstr "Kontrol af GPT-hoved mislykkedes, %x skulle være %x."
+
+#~ msgid "GPT Partition Entry Array CRC check failed, %x should be %x."
+#~ msgstr ""
+#~ "CRC-kontrol af GPT-partitionsindgangstabel mislykkedes, %x skulle være %x."
+
+#~ msgid ""
+#~ "This disk contains a valid Primary and Alternate GUID Partition Table but "
+#~ "the Protective MBR is invalid.  This generally means that the disk had "
+#~ "GPT partitions on it, but then a legacy partition editing tool was used "
+#~ "to change the partition table stored in the MBR.\n"
+#~ "Which data is valid,  GPT or MBR?\n"
+#~ "Yes will assume that the GPT information is correct, and rewrite the "
+#~ "PMBR.\n"
+#~ "No will assume that the MBR is correct, and erase the GPT information.\n"
+#~ "Ignore will assume that the MBR is correct, but not change the disk."
+#~ msgstr ""
+#~ "Denne disk indeholder en gyldig primær og alternativ GUID-"
+#~ "PartitionsTabel, men den beskyttende MBR er ugyldig. Dette betyder "
+#~ "normalt at disken har GPT-partitioner på den, men så er et gammeldags "
+#~ "partitionsredigeringsværktøj blevet brugt til at ændre partitionstabellen "
+#~ "gemt i MBR.\n"
+#~ "Hvilke data er gyldige, GPT eller MBR?\n"
+#~ "Ja vil formode at GPT-informationen er korrekt, og vil genskrive den "
+#~ "beskyttende MBR.\n"
+#~ "Nej vil formode at MBR er korrekt, og slette GPT-informationen.\n"
+#~ "Ignorér vil formode at MBR er korrekt, men ikke ændre disken."
+
+#~ msgid ""
+#~ "This disk contains a valid Alternate GUID Partition Table but the Primary "
+#~ "GPT and Protective MBR are invalid.  This generally means that the disk "
+#~ "had GPT partitions on it, but then a legacy partition editing tool was "
+#~ "used to change the partition table stored in the MBR.\n"
+#~ "Which data is valid,  GPT or MBR?\n"
+#~ "Yes will assume that the GPT information is correct, and will rewrite the "
+#~ "PMBR and Primary GPT.\n"
+#~ "No will assume that the MBR is correct, and erase the GPT information.\n"
+#~ "Ignore will assume that the MBR is correct, but not change the disk."
+#~ msgstr ""
+#~ "Denne disk indeholder en gyldig alternativ GUID-PartitionsTabel, men den "
+#~ "primære GPT og beskyttende MBR er ugyldige. Dette betyder normalt at "
+#~ "disken har GPT-partitioner på den, men så er et gammeldags "
+#~ "partitionsredigeringsværktøj blevet brugt til at ændre partitionstabellen "
+#~ "gemt i MBR.\n"
+#~ "Hvilke data er gyldige, GPT eller MBR?\n"
+#~ "Ja vil formode at GPT-informationen er korrekt, og vil genskrive den "
+#~ "beskyttende MBR og den primære GPT.\n"
+#~ "Nej vil formode at MBR er korrekt, og slette GPT-informationen.\n"
+#~ "Ignorér vil formode at MBR er korrekt, men ikke ændre disken."
+
+#~ msgid ""
+#~ "This disk contains a valid Primary GUID Partition Table but the Alternate "
+#~ "GPT and Protective MBR are invalid.  This generally means that the disk "
+#~ "had GPT partitions on it, but then a legacy partition editing tool was "
+#~ "used to change the partition table stored in the MBR.\n"
+#~ "Which data is valid,  GPT or MBR?\n"
+#~ "Yes will assume that the GPT information is correct, and will rewrite the "
+#~ "PMBR and Alternate GPT.\n"
+#~ "No will assume that the MBR is correct, and erase the GPT information.\n"
+#~ "Ignore will assume that the MBR is correct, but not change the disk.\n"
+#~ msgstr ""
+#~ "Denne disk indeholder en gyldig primær GUID-PartitionsTabel, men den "
+#~ "alternative GPT og beskyttende MBR er ugyldige. Dette betyder normalt at "
+#~ "disken har GPT-partitioner på den, men så er et gammeldags "
+#~ "partitionsredigeringsværktøj blevet brugt til at ændre partitionstabellen "
+#~ "gemt i MBR.\n"
+#~ "Hvilke data er gyldige, GPT eller MBR?\n"
+#~ "Ja vil formode at GPT-informationen er korrekt, og vil genskrive den "
+#~ "beskyttende MBR og den alternative GPT.\n"
+#~ "Nej vil formode at MBR er korrekt, og slette GPT-informationen.\n"
+#~ "Ignorér vil formode at MBR er korrekt, men ikke ændre disken.\n"
+
+#~ msgid "Can't set non-Linux partitions as a root device."
+#~ msgstr "Kan ikke sætte andre partitioner end Linux' egne som rodenhed."
+
+#~ msgid "Can't set non-Linux partitions as a swap device."
+#~ msgstr "Kan ikke sætte en ikke-Linux partition som swapenhed."
+
+#~ msgid "No get_resize_constraint for %s!"
+#~ msgstr "get_resize_constraint mangler for %s!"
+
+#~ msgid "The %s file system code doesn't support %s disk labels."
+#~ msgstr ""
+#~ "Koden for filsystemet %s understøtter ikke filallokeringstabeller for %s."
+
+#~ msgid "Creating new %s disklabels is not implemented yet."
+#~ msgstr ""
+#~ "Understøttelse for at oprette nye partitionstabeller af typen %s er ikke "
+#~ "implementeret endnu."
+
+#~ msgid "The code to write the partition table hasn't been written for %s yet"
+#~ msgstr ""
+#~ "Understøttelse for at skrive partitionstabel for %s er ikke implementeret "
+#~ "endnu."
+
+#~ msgid "Insane!  %d clusters!"
+#~ msgstr "Mærkeligt! %d klynger!"
+
+#~ msgid ""
+#~ "The filesystem is going to be too big for FAT16, so FAT32 will be used.  "
+#~ "This is not compatible with MS-DOS, early versions of MS-Windows 95 and "
+#~ "Windows NT.  If you use these operating systems, then select cancel, and "
+#~ "create a smaller partition.  If you only use Linux, BSD, MS Windows 98 "
+#~ "and/or MS Windows 95 B, then select OK."
+#~ msgstr ""
+#~ "Filsystem bliver for stort for FAT16, så FAT32 vil blive brugt. Det er "
+#~ "ikke kompatibelt med MS-DOS, tidlige versioner af MS-Windows 95 eller "
+#~ "Windows NT. Hvis du bruger disse operativsystemer, vælg annullér og opret "
+#~ "en mindre partition. Hvis du kun anvender Linux, BSD, MS Windows 98 og/"
+#~ "eller MS Windows 95 B, vælg OK."
+
+#~ msgid "Weird: fat_calc_sizes() failed for FAT32!"
+#~ msgstr "Mærkeligt: fat_calc_sizes() mislykkedes for FAT32!"
+
+#~ msgid ""
+#~ "Would you like to use FAT32 for this filesystem?  It is much more "
+#~ "efficient with your disk space, but is not compatible with early versions "
+#~ "of Windows 95 and Windows NT.  Only select yes if you only use Linux, "
+#~ "BSD, MS Windows 98 and/or MS Windows 95 B."
+#~ msgstr ""
+#~ "Vil du bruge FAT32 som filsystem? Det er meget mere effektivt med "
+#~ "diskpladsen, men det er ikke kompatibelt med tidlige versioner af Windows "
+#~ "95 eller Windows NT. Vælg kun JA hvis du kun anvender Linux, BSD, MS "
+#~ "Windows 98 og/eller MS Windows 95 B."
+
+#~ msgid ""
+#~ "File system doesn't have expected sizes for Windows to like it.  Number "
+#~ "of clusters is %d (%d expected); size of FATs is %d sectors (%d expected)."
+#~ msgstr ""
+#~ "Filsystemet har ikke en størrelse som Windows kan lide. Antal klynger er %"
+#~ "d (%d forventet); størrelsen på FAT-erne er %d sektorer (%d forventet)."
+
+#~ msgid ""
+#~ "Partition size (%ld sectors) and filesystem size (%ld sectors) do not "
+#~ "match."
+#~ msgstr ""
+#~ "Partitionens størrelse (%ld sektorer) og filsystemets størrelse (%ld "
+#~ "sektorer) stemmer ikke overens."
+
+#~ msgid "Linux-swap partitions can not be hidden on msdos disk labels."
+#~ msgstr ""
+#~ "Linux swappartitioner kan ikke skjules på et filsystem af typen msdos."
+
+#~ msgid "Linux-swap partitions can not be bootable on pc98 disk labels."
+#~ msgstr "Linux swappartitioner er ikke opstartelige på pc98."
+
+#~ msgid "HFS partitions can't be hidden on msdos disk labels."
+#~ msgstr ""
+#~ "Partitioner af type HFS kan ikke skjules på filsystemer af typen msdos."
+
+#~ msgid "JFS partitions can't be hidden on msdos disk labels."
+#~ msgstr ""
+#~ "Partitioner af type JFS kan ikke skjules på filsystemer af typen msdos."
+
+#~ msgid "Reiserfs partitions can't be hidden on msdos disk labels."
+#~ msgstr ""
+#~ "Partitioner af type Reiserfs kan ikke skjules på filsystemer af typen "
+#~ "msdos."
+
+#~ msgid "Reiserfs partitions must be bootable on pc98 disk labels."
+#~ msgstr "Reiserfs-partitioner skal være opstartelige på pc98."
+
+#~ msgid "XFS partitions can't be hidden on msdos disk labels."
+#~ msgstr ""
+#~ "Partitioner af type XFS kan ikke skjules på filsystemer af typen msdos."
+
+#~ msgid ""
+#~ "The operating system thinks the geometry on %s is %d/%d/%d.  You should "
+#~ "check that this matches the BIOS geometry before using this program."
+#~ msgstr ""
+#~ "Operativsystemet tror at %s geometri er %d/%d/%d. Du bør kontrollere at "
+#~ "dette stemmer overens med informationen i BIOS inden du anvender "
+#~ "programmet."
diff --git a/parted-1.8.7/po/de.gmo b/parted-1.8.7/po/de.gmo
new file mode 100644
index 0000000..c3d6963
--- /dev/null
+++ b/parted-1.8.7/po/de.gmo
Binary files differ
diff --git a/parted-1.8.7/po/de.po b/parted-1.8.7/po/de.po
new file mode 100644
index 0000000..e3fe541
--- /dev/null
+++ b/parted-1.8.7/po/de.po
@@ -0,0 +1,3371 @@
+# German message for GNU parted.
+# Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+# Martin von Löwis <martin@v.loewis.de>, 1999, 2000, 2001, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU parted 1.6.4-pre2\n"
+"Report-Msgid-Bugs-To: bug-parted@gnu.org\n"
+"POT-Creation-Date: 2007-05-09 17:02-0400\n"
+"PO-Revision-Date: 2002-12-06 08:55+0100\n"
+"Last-Translator: Martin von Löwis <martin@v.loewis.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: lib/closeout.c:74
+msgid "write error"
+msgstr ""
+
+#: lib/error.c:125
+#, fuzzy
+msgid "Unknown system error"
+msgstr "Unbekannter Dateisystemtyp »%s«."
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK).  A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#.
+#. If you don't know what to put here, please see
+#. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr ""
+
+#: lib/regcomp.c:131
+msgid "Success"
+msgstr ""
+
+#: lib/regcomp.c:134
+msgid "No match"
+msgstr ""
+
+#: lib/regcomp.c:137
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regcomp.c:140
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regcomp.c:143
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regcomp.c:146
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regcomp.c:149
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regcomp.c:152
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regcomp.c:155
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regcomp.c:158
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regcomp.c:161
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regcomp.c:164
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regcomp.c:170
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regcomp.c:173
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regcomp.c:176
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regcomp.c:179
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regcomp.c:680
+msgid "No previous regular expression"
+msgstr ""
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr ""
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:66
+msgid "(C)"
+msgstr ""
+
+#: lib/version-etc.c:68
+msgid ""
+"\n"
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:84
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:88
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:92
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:98
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:104
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:110
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:132
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+
+#: lib/xalloc-die.c:35
+msgid "memory exhausted"
+msgstr ""
+
+#: libparted/arch/beos.c:237
+msgid "Disk Image"
+msgstr ""
+
+#: libparted/arch/beos.c:338 libparted/arch/gnu.c:261
+#: libparted/arch/linux.c:1272
+#, c-format
+msgid "Error opening %s: %s"
+msgstr "Fehler beim Öffnen von %s: %s."
+
+#: libparted/arch/beos.c:349 libparted/arch/gnu.c:271
+#: libparted/arch/linux.c:1283
+#, c-format
+msgid "Unable to open %s read-write (%s).  %s has been opened read-only."
+msgstr ""
+"Kann %s nicht zum Schreiben öffnen (%s). %s wurde nur zum Lesen geöffnet."
+
+#: libparted/arch/beos.c:411 libparted/arch/linux.c:1431
+#, c-format
+msgid "%s during seek for read on %s"
+msgstr "%s, während %s zum Lesen positioniert wurde."
+
+#: libparted/arch/beos.c:444 libparted/arch/gnu.c:449 libparted/arch/gnu.c:548
+#: libparted/arch/gnu.c:676 libparted/arch/linux.c:1391
+#: libparted/arch/linux.c:1469
+#, c-format
+msgid "%s during read on %s"
+msgstr "%s, während von %s gelesen wurde."
+
+#: libparted/arch/beos.c:480 libparted/arch/gnu.c:509
+#: libparted/arch/linux.c:1546
+#, c-format
+msgid "Can't write to %s, because it is opened read-only."
+msgstr ""
+"Auf %s kann nicht geschrieben werden, weil es nur-lesend geöffnet wurde."
+
+#: libparted/arch/beos.c:496 libparted/arch/linux.c:1570
+#, c-format
+msgid "%s during seek for write on %s"
+msgstr "%s, während %s zum Schreiben positioniert wurde."
+
+#: libparted/arch/beos.c:533 libparted/arch/gnu.c:585 libparted/arch/gnu.c:630
+#: libparted/arch/gnu.c:707 libparted/arch/linux.c:1517
+#: libparted/arch/linux.c:1612 libparted/arch/linux.c:1684
+#, c-format
+msgid "%s during write on %s"
+msgstr "%s, während auf %s geschrieben wurde."
+
+#: debug/clearfat/clearfat.c:63 partprobe/partprobe.c:137
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:67
+#, c-format
+msgid ""
+"Usage: %s [OPTION]\n"
+"  or:  %s DEVICE MINOR\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:70
+msgid ""
+"Clear unused space on a FAT partition (a GNU Parted testing tool).\n"
+"\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:74
+msgid "      --help     display this help and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:75
+msgid "      --version  output version information and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:77 partprobe/partprobe.c:154
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:285
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:290
+#, fuzzy, c-format
+msgid "too many arguments"
+msgstr "Zu viele falsche Seiten."
+
+#: partprobe/partprobe.c:141
+#, c-format
+msgid "Usage: %s [OPTION] [DEVICE]...\n"
+msgstr ""
+
+#: partprobe/partprobe.c:142
+msgid ""
+"Inform the OS of partition table changes.\n"
+"\n"
+"  -d, --no-update  don't update the kernel\n"
+"  -s, --summary    print a summary of contents\n"
+"  -h, --help       display this help and exit\n"
+"  -v, --version    output version information and exit\n"
+msgstr ""
+
+#: partprobe/partprobe.c:150
+msgid ""
+"\n"
+"With no DEVICE, probe all partitions.\n"
+msgstr ""
+
+#: libparted/arch/gnu.c:94
+#, c-format
+msgid "Unable to open %s."
+msgstr "%s kann nicht geöffnet werden."
+
+#: libparted/arch/gnu.c:114
+msgid "Unable to probe store."
+msgstr "Der Speicher konnte nicht untersucht werden."
+
+#: libparted/arch/gnu.c:352
+#, fuzzy
+msgid ""
+"The partition table cannot be re-read.  This means you need to reboot before "
+"mounting any modified partitions.  You also need to reinstall your boot "
+"loader before you reboot (which may require mounting modified partitions).  "
+"It is impossible do both things!  So you'll need to boot off a rescue disk, "
+"and reinstall your boot loader from the rescue disk.  Read section 4 of the "
+"Parted User documentation for more information."
+msgstr ""
+"Ihre Partitionstabelle konnte nicht neu gelesen werden; Sie müssen also neu "
+"booten, bevor Sie geänderte Partitionen einhängen. Sie müssen auch Ihren "
+"Bootlader vor dem Booten reinstallieren (was u.U. das Einhängen geänderter "
+"Partitionen erfordert). Man kann nicht beides tun! Also müssen Sie von einer "
+"Rettungsdiskette booten und ihren Bootlader von dort reinstallieren. Lesen "
+"Sie Abschnitt 4 der Parted-Nutzerdokumentation für Details."
+
+# XXX Englischer Text ist Unsinn.
+#: libparted/arch/gnu.c:369
+#, fuzzy, c-format
+msgid ""
+"The partition table on %s cannot be re-read (%s).  This means the Hurd knows "
+"nothing about any modifications you made.  You should reboot your computer "
+"before doing anything with %s."
+msgstr ""
+"Die Partitionstabelle auf %s (%s). Das bedeutet, dass das Hurd nichts über "
+"Ihre Änderungen weiss. Sie sollten den Computer neu starten, bevor Sie "
+"irgendwas mit %s machen."
+
+#: libparted/arch/gnu.c:380 parted/parted.c:2443
+msgid ""
+"You should reinstall your boot loader before rebooting.  Read section 4 of "
+"the Parted User documentation for more information."
+msgstr ""
+"Sie sollten Ihren Bootlader neu installieren vor dem Neubooten.  Lesen Sie "
+"Abschnitt 4 der Parted-Nutzerdokumentation für mehr Information."
+
+#: libparted/arch/gnu.c:772
+#, c-format
+msgid "%s trying to sync %s to disk"
+msgstr "%s beim Versuch, %s auf die Platte zu speichern (sync)."
+
+# cformat removed for testing
+#: libparted/arch/linux.c:408
+#, c-format
+msgid "Could not stat device %s - %s."
+msgstr "Ruf von stat für Gerät %s schlug fehl - %s."
+
+#: libparted/arch/linux.c:523
+#, c-format
+msgid ""
+"Could not determine sector size for %s: %s.\n"
+"Using the default sector size (%lld)."
+msgstr ""
+
+#: libparted/arch/linux.c:539
+#, c-format
+msgid ""
+"Device %s has a logical sector size of %lld.  Not all parts of GNU Parted "
+"support this at the moment, and the working code is HIGHLY EXPERIMENTAL.\n"
+msgstr ""
+
+#: libparted/arch/linux.c:579
+#, fuzzy, c-format
+msgid "Unable to determine the size of %s (%s)."
+msgstr "Die Größe von %s kann nicht festgestellt werden (%s)."
+
+#: libparted/arch/linux.c:668
+#, c-format
+msgid "Could not get identity of device %s - %s"
+msgstr "Die Identität von Gerät %s konnte nicht ermittelt werden - %s."
+
+#: libparted/arch/linux.c:677
+msgid "Generic IDE"
+msgstr ""
+
+#: libparted/arch/linux.c:698
+#, c-format
+msgid ""
+"Device %s has multiple (%d) logical sectors per physical sector.\n"
+"GNU Parted supports this EXPERIMENTALLY for some special disk label/file "
+"system combinations, e.g. GPT and ext2/3.\n"
+"Please consult the web site for up-to-date information."
+msgstr ""
+
+#: libparted/arch/linux.c:873
+#, c-format
+msgid "Error initialising SCSI device %s - %s"
+msgstr "Fehler in der Initialisierung von SCSI-Gerät %s - %s."
+
+#: libparted/arch/linux.c:928
+#, fuzzy, c-format
+msgid ""
+"The device %s has zero length, and can't possibly store a file system or "
+"partition table.  Perhaps you selected the wrong device?"
+msgstr ""
+"Das Gerät %s hat die Länge 0, und kann unmöglich ein Dateisystem oder eine "
+"Partitionstabelle speichern. Vielleicht haben Sie das falsche Gerät "
+"ausgewählt?"
+
+#: libparted/arch/linux.c:1032
+#, fuzzy, c-format
+msgid ""
+"Unable to determine geometry of file/device %s.  You should not use Parted "
+"unless you REALLY know what you're doing!"
+msgstr ""
+"Geometrie von Datei/Gerät konnte nicht ermittelt werden. Sie sollten Parted "
+"nicht verwenden, wenn sie nicht WIRKLICH wissen was Sie tun!"
+
+#: libparted/arch/linux.c:1110
+msgid "DAC960 RAID controller"
+msgstr "DAC960 RAID controller"
+
+#: libparted/arch/linux.c:1115
+msgid "Promise SX8 SATA Device"
+msgstr ""
+
+#: libparted/arch/linux.c:1120
+msgid "IBM S390 DASD drive"
+msgstr ""
+
+#: libparted/arch/linux.c:1125
+msgid "IBM iSeries Virtual DASD"
+msgstr ""
+
+#: libparted/arch/linux.c:1130
+msgid "Compaq Smart Array"
+msgstr "Compaq Smart Array"
+
+#: libparted/arch/linux.c:1135
+msgid "ATARAID Controller"
+msgstr "ATARAID Controller"
+
+#: libparted/arch/linux.c:1140
+msgid "I2O Controller"
+msgstr "I20 controller"
+
+#: libparted/arch/linux.c:1145
+msgid "User-Mode Linux UBD"
+msgstr ""
+
+#: libparted/arch/linux.c:1156
+msgid "Linux device-mapper"
+msgstr ""
+
+#: libparted/arch/linux.c:1162
+msgid "Unknown"
+msgstr "Unbekannt"
+
+#: libparted/arch/linux.c:1169
+msgid "ped_device_new()  Unsupported device type"
+msgstr "ped_device_new()  Nichtunterstützter Gerätetyp."
+
+#: libparted/arch/linux.c:2083
+#, fuzzy, c-format
+msgid ""
+"Error informing the kernel about modifications to partition %s -- %s.  This "
+"means Linux won't know about any changes you made to %s until you reboot -- "
+"so you shouldn't mount it or use it in any way before rebooting."
+msgstr ""
+"Fehler beim Informieren des Kernels über Änderungen der Partition %s - %s. "
+"Das bedeutet, dass Linux Ihre Änderungen an %s nicht bis zum Neustart sehen "
+"wird - Sie sollten die Partition nicht einhängen oder irgend sonst benutzen, "
+"bis Sie den Rechner neu gestartet haben."
+
+#: libparted/arch/linux.c:2262
+#, fuzzy, c-format
+msgid ""
+"parted was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made. "
+msgstr ""
+"Der Kernel konnte die Partitionstabelle von %s nicht neu einlesen (%s). Das "
+"bedeutet, daß Linux bis zum Neustart nichts über Ihrer Modifikationen weiß. "
+"Sie sollten den Rechner neu starten, bevor Sie %s in irgend einer Art "
+"verwenden."
+
+#: libparted/arch/linux.c:2368
+#, fuzzy, c-format
+msgid ""
+"The kernel was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made until you "
+"reboot.  You should reboot your computer before doing anything with %s."
+msgstr ""
+"Der Kernel konnte die Partitionstabelle von %s nicht neu einlesen (%s). Das "
+"bedeutet, daß Linux bis zum Neustart nichts über Ihrer Modifikationen weiß. "
+"Sie sollten den Rechner neu starten, bevor Sie %s in irgend einer Art "
+"verwenden."
+
+#: libparted/cs/geom.c:162
+msgid "Can't have the end before the start!"
+msgstr "Das Ende kommt nicht vor dem Start!"
+
+#: libparted/cs/geom.c:169
+msgid "Can't have a partition outside the disk!"
+msgstr "Partitionen ausserhalb der Platte sind nicht möglich!"
+
+#: libparted/cs/geom.c:366
+#, fuzzy, c-format
+msgid "Attempt to write sectors %ld-%ld outside of partition on %s."
+msgstr ""
+"Versuch, die Sektoren %ld-%ld außerhalb der Partition auf %s zu schreiben."
+
+#: libparted/cs/geom.c:406 libparted/fs/linux_swap/linux_swap.c:475
+msgid "checking for bad blocks"
+msgstr "Test auf schlecte Blöcke"
+
+#: libparted/debug.c:102
+#, c-format
+msgid "Backtrace has %d calls on stack:\n"
+msgstr ""
+
+#: libparted/debug.c:114
+#, c-format
+msgid "Assertion (%s) at %s:%d in function %s() failed."
+msgstr ""
+
+#: libparted/disk.c:203
+#, c-format
+msgid "Unable to open %s - unrecognised disk label."
+msgstr "%s kann nicht geöffnet werden - unerkanntes Disklabel."
+
+#: libparted/disk.c:471
+#, c-format
+msgid ""
+"This libparted doesn't have write support for %s.  Perhaps it was compiled "
+"read-only."
+msgstr ""
+"Dieser libparted fehlt die Schreibuntertützung für %s. Vielleicht wurde sie "
+"nur zum Lesen übersetzt."
+
+#: libparted/disk.c:598
+#, fuzzy, c-format
+msgid "Partition %d is %s, but the file system is %s."
+msgstr "Die Partition %d hat %.3fMb, aber das Dateisystem hat %.3fMb."
+
+#: libparted/disk.c:1075
+#, c-format
+msgid "%s disk labels do not support extended partitions."
+msgstr "%s-Disk-Labels unterstützen keine erweiterten Partitionen."
+
+#: libparted/disk.c:1634
+#, c-format
+msgid "%s disk labels don't support logical or extended partitions."
+msgstr ""
+"%s-Disk-Labels unterstützen keine logischen oder erweiterten Partitionen."
+
+#: libparted/disk.c:1647
+#, fuzzy
+msgid "Too many primary partitions."
+msgstr "Zu viele primäre Partitionen."
+
+#: libparted/disk.c:1656
+#, c-format
+msgid ""
+"Can't add a logical partition to %s, because there is no extended partition."
+msgstr ""
+"Zu %s kann keine logische Partition hinzugefügt werden, da es keine "
+"erweiterte Partition gibt."
+
+#: libparted/disk.c:1680
+#, fuzzy, c-format
+msgid "Can't have more than one extended partition on %s."
+msgstr "Auf %s kann es höchstens eine erweiterte Partition geben."
+
+#: libparted/disk.c:1690
+msgid "Can't have logical partitions outside of the extended partition."
+msgstr ""
+"Eine logische Partition kann nicht außerhalb der erweiterten Partition "
+"existieren."
+
+#: libparted/disk.c:1715
+#, c-format
+msgid "Can't have a logical partition outside of the extended partition on %s."
+msgstr ""
+"Außerhalb der erweiterten Partition auf %s können keine logischen\n"
+"Partition existieren."
+
+#: libparted/disk.c:1725 libparted/disk.c:1779 libparted/disk.c:1945
+#, fuzzy
+msgid "Can't have overlapping partitions."
+msgstr "Überlappende Partitionen können nicht existieren."
+
+#: libparted/disk.c:1733
+msgid "Can't have a primary partition inside an extended partition."
+msgstr "Primäre Partition können nicht in erweiterten Partition existieren."
+
+#: libparted/disk.c:2140
+msgid "metadata"
+msgstr "Metadaten"
+
+#: libparted/disk.c:2142
+msgid "free"
+msgstr "frei"
+
+#: libparted/disk.c:2144 parted/ui.c:1169 parted/ui.c:1197
+msgid "extended"
+msgstr "erweitert"
+
+#: libparted/disk.c:2146 parted/ui.c:1173 parted/ui.c:1201
+msgid "logical"
+msgstr "logisch"
+
+#: libparted/disk.c:2148 parted/ui.c:1165 parted/ui.c:1193
+msgid "primary"
+msgstr "primär"
+
+#: libparted/disk.c:2164
+msgid "boot"
+msgstr "boot"
+
+#: libparted/disk.c:2166
+msgid "root"
+msgstr "root"
+
+#: libparted/disk.c:2168
+msgid "swap"
+msgstr "swap"
+
+#: libparted/disk.c:2170
+msgid "hidden"
+msgstr "versteckt"
+
+#: libparted/disk.c:2172
+msgid "raid"
+msgstr "raid"
+
+#: libparted/disk.c:2174
+msgid "lvm"
+msgstr "lvm"
+
+#: libparted/disk.c:2176
+msgid "lba"
+msgstr "lba"
+
+#: libparted/disk.c:2178
+msgid "hp-service"
+msgstr "hp-service"
+
+#: libparted/disk.c:2180
+msgid "palo"
+msgstr ""
+
+#: libparted/disk.c:2182
+msgid "prep"
+msgstr ""
+
+#: libparted/disk.c:2184
+msgid "msftres"
+msgstr ""
+
+#: libparted/disk.c:2190
+#, fuzzy, c-format
+msgid "Unknown partition flag, %d."
+msgstr "Unbekanntes Partitionsflag %d."
+
+#: libparted/exception.c:78
+msgid "Information"
+msgstr "Information"
+
+#: libparted/exception.c:79
+msgid "Warning"
+msgstr "Warnung"
+
+#: libparted/exception.c:80
+msgid "Error"
+msgstr "Fehler"
+
+#: libparted/exception.c:81
+msgid "Fatal"
+msgstr "Fataler Fehler"
+
+#: libparted/exception.c:82
+msgid "Bug"
+msgstr "Bug"
+
+#: libparted/exception.c:83
+msgid "No Implementation"
+msgstr "Keine Implementierung"
+
+#: libparted/exception.c:87
+msgid "Fix"
+msgstr "Fix"
+
+#: libparted/exception.c:88
+msgid "Yes"
+msgstr "Ja"
+
+#: libparted/exception.c:89
+msgid "No"
+msgstr "Nein"
+
+#: libparted/exception.c:90
+msgid "OK"
+msgstr "OK"
+
+#: libparted/exception.c:91
+msgid "Retry"
+msgstr "Wiederholen"
+
+#: libparted/exception.c:92
+msgid "Ignore"
+msgstr "Ignorieren"
+
+#: libparted/exception.c:93
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#: libparted/exception.c:133
+#, fuzzy, c-format
+msgid ""
+"A bug has been detected in GNU Parted.  Refer to the web site of parted "
+"http://www.gnu.org/software/parted/parted.html for more informations of what "
+"could be useful for bug submitting!  Please email a bug report to bug-"
+"parted@gnu.org containing at least the version (%s) and the following "
+"message:  "
+msgstr ""
+"Ein Bug in GNU parted wurde entdeckt. Bitte senden Sie einen Bugreport an "
+"bug-parted@gnu.org unter Angabe der Version (%s) und der folgenden Meldung:"
+
+#: libparted/filesys.c:384
+msgid "Could not detect file system."
+msgstr "Dateisystem wurde nicht erkannt."
+
+# XXX: volume?
+#: libparted/filesys.c:395
+#, fuzzy
+msgid "The file system is bigger than its volume!"
+msgstr "Das Dateisystem ist größer als seine Partition!"
+
+#: libparted/filesys.c:403
+#, c-format
+msgid "Support for opening %s file systems is not implemented yet."
+msgstr ""
+"Unterstützung für das Öffnen von Dateisystemen ist für %s noch nicht "
+"implementiert."
+
+#: libparted/filesys.c:445
+#, c-format
+msgid "Support for creating %s file systems is not implemented yet."
+msgstr "Erzeugung von Dateisystemen ist für %s noch nicht implementiert."
+
+#: libparted/filesys.c:505
+#, c-format
+msgid "Support for checking %s file systems is not implemented yet."
+msgstr "Überprüfung von Dateisystemen ist für %s noch nicht implementiert."
+
+#: libparted/filesys.c:571
+msgid "raw block copying"
+msgstr "Kopieren \"roher\" Blöcke"
+
+#: libparted/filesys.c:582
+msgid "growing file system"
+msgstr "Dateisystem wird vergrößert."
+
+#: libparted/filesys.c:622
+msgid "Can't copy onto an overlapping partition."
+msgstr "Überlappende Partitionen können nicht kopiert werden."
+
+#: libparted/filesys.c:644
+#, fuzzy, c-format
+msgid ""
+"Direct support for copying file systems is not yet implemented for %s.  "
+"However, support for resizing is implemented.  Therefore, the file system "
+"can be copied if the new partition is at least as big as the old one.  So, "
+"either shrink the partition you are trying to copy, or copy to a bigger "
+"partition."
+msgstr ""
+"Direkte Unterstützung für das Kopieren von Dateisystemen ist noch nicht für %"
+"s implementiert; Größenänderungen sind unterstützt. Deshalb kann das "
+"Dateisystem kopiert werden, wenn die neue Partition mindestens so gross ist "
+"we die alte. Also sollten Sie entweder die Partition, die Sie kopieren "
+"wollen, verkleinern, oder auf eine größere Partition kopieren."
+
+#: libparted/filesys.c:658
+#, c-format
+msgid "Support for copying %s file systems is not implemented yet."
+msgstr "Kopieren von Dateisystemen ist für %s noch nicht implementiert."
+
+#: libparted/filesys.c:696
+#, c-format
+msgid "Support for resizing %s file systems is not implemented yet."
+msgstr "Größenänderung von Dateisystemen ist für %s noch nicht implementiert."
+
+#: libparted/fs/reiserfs/reiserfs.c:315
+msgid "creating"
+msgstr ""
+
+# XXX: volume?
+#: libparted/fs/reiserfs/reiserfs.c:402
+#, fuzzy
+msgid "The file system is in an invalid state.  Perhaps it is mounted?"
+msgstr "Das Dateisystem ist größer als seine Partition!"
+
+#: libparted/fs/reiserfs/reiserfs.c:410
+msgid "The file system is in old (unresizeable) format."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:416
+msgid "Invalid free blocks count.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:431
+#, fuzzy
+msgid "checking"
+msgstr "check"
+
+#: libparted/fs/reiserfs/reiserfs.c:437
+msgid "Reiserfs tree seems to be corrupted.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:449
+#, fuzzy
+msgid ""
+"The reiserfs file system passed a basic check.  For a more comprehensive "
+"check, run reiserfsck --check."
+msgstr ""
+"Das ext2-Dateisystem hat den Basischeck bestanden. Um einen kompletteren "
+"Test auszuführen, benutzen Sie bitte e2fsck."
+
+#: libparted/fs/reiserfs/reiserfs.c:474
+#, fuzzy
+msgid "Sorry, can't move the start of reiserfs partitions yet."
+msgstr ""
+"Leider kann der Anfang von ext2-Partitionen noch nicht verschoben werden."
+
+#: libparted/fs/reiserfs/reiserfs.c:490
+msgid "Couldn't reopen device abstraction layer for read/write."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:508 libparted/fs/ext2/ext2_resize.c:552
+#: libparted/fs/hfs/hfs.c:250 libparted/fs/hfs/hfs.c:629
+msgid "shrinking"
+msgstr "verkleinernd"
+
+#: libparted/fs/reiserfs/reiserfs.c:520
+#, fuzzy
+msgid "expanding"
+msgstr "Warnung"
+
+#: libparted/fs/reiserfs/reiserfs.c:592
+msgid "Couldn't create reiserfs device abstraction handler."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:606
+#, fuzzy, c-format
+msgid "Device is too small for %lu blocks."
+msgstr "Dateisystem zu klein für ext2."
+
+#: libparted/fs/reiserfs/reiserfs.c:615
+msgid "copying"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:682
+#, c-format
+msgid "Couldn't resolve symbol %s.  Error: %s."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:704
+msgid "GNU Parted found an invalid libreiserfs library."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:715
+#, c-format
+msgid ""
+"GNU Parted has detected libreiserfs interface version mismatch.  Found %d-%"
+"d, required %d. ReiserFS support will be disabled."
+msgstr ""
+
+#: libparted/labels/aix.c:137
+#, fuzzy
+msgid "Support for reading AIX disk labels is is not implemented yet."
+msgstr "Erzeugung von Dateisystemen ist für %s noch nicht implementiert."
+
+#: libparted/labels/aix.c:148
+#, fuzzy
+msgid "Support for writing AIX disk labels is is not implemented yet."
+msgstr "Erzeugung von Dateisystemen ist für %s noch nicht implementiert."
+
+#: libparted/labels/aix.c:161
+#, fuzzy
+msgid ""
+"Support for adding partitions to AIX disk labels is not implemented yet."
+msgstr "Erzeugung von Dateisystemen ist für %s noch nicht implementiert."
+
+#: libparted/labels/aix.c:171
+#, fuzzy
+msgid ""
+"Support for duplicating partitions in AIX disk labels is not implemented yet."
+msgstr "Erzeugung von Dateisystemen ist für %s noch nicht implementiert."
+
+#: libparted/labels/aix.c:189
+#, fuzzy
+msgid ""
+"Support for setting system type of partitions in AIX disk labels is not "
+"implemented yet."
+msgstr "Erzeugung von Dateisystemen ist für %s noch nicht implementiert."
+
+#: libparted/labels/aix.c:199
+#, fuzzy
+msgid "Support for setting flags in AIX disk labels is not implemented yet."
+msgstr "Erzeugung von Dateisystemen ist für %s noch nicht implementiert."
+
+#: libparted/labels/bsd.c:501 libparted/labels/dasd.c:755
+#: libparted/labels/dos.c:1974 libparted/labels/dvh.c:770
+#: libparted/labels/gpt.c:1448 libparted/labels/loop.c:248
+#: libparted/labels/mac.c:1408 libparted/labels/pc98.c:759
+#: libparted/labels/rdb.c:1041 libparted/labels/sun.c:705
+msgid "Unable to satisfy all constraints on the partition."
+msgstr "Es können nicht alle Anforderungen an die Partition erfüllt werden."
+
+#: libparted/labels/bsd.c:526
+#, fuzzy
+msgid "Unable to allocate a bsd disklabel slot."
+msgstr "Kann keine BSD-Disklabel-Zeile allozieren."
+
+#: libparted/labels/dasd.c:166
+#, fuzzy
+msgid "Unable to determine the block size of this dasd"
+msgstr "Die Größe von %s kann nicht festgestellt werden (%s)."
+
+#: libparted/labels/dasd.c:781
+#, fuzzy
+msgid "Unable to allocate a dasd disklabel slot"
+msgstr "Kann keine BSD-Disklabel-Zeile allozieren."
+
+#: libparted/labels/dos.c:827
+#, fuzzy, c-format
+msgid "Invalid partition table on %s -- wrong signature %x."
+msgstr "Ungültige Partitionstabelle auf %s - falsche Signature %x."
+
+#: libparted/labels/dos.c:855
+#, c-format
+msgid "Invalid partition table - recursive partition on %s."
+msgstr "Ungültige Partitionstabelle - Rekursive Partition auf %s."
+
+#: libparted/labels/dos.c:1318
+msgid "Extended partitions cannot be hidden on msdos disk labels."
+msgstr ""
+
+#: libparted/labels/dos.c:1958
+msgid "Parted can't resize partitions managed by Windows Dynamic Disk."
+msgstr ""
+
+#: libparted/labels/dvh.c:190
+#, fuzzy, c-format
+msgid "%s has no extended partition (volume header partition)."
+msgstr ""
+"%s hat keine erweiterte Partition (volume header partition). Wenn Sie "
+"Ignorieren wählen, werden alle Boot-Volumen gelöscht."
+
+#: libparted/labels/dvh.c:313
+msgid "Checksum is wrong, indicating the partition table is corrupt."
+msgstr ""
+"Die Prüfsumme ist falsch, was auf eine Korruption der Partitionstabelle "
+"hinweist."
+
+#: libparted/labels/dvh.c:616
+msgid "Only primary partitions can be root partitions."
+msgstr "Nur primäre Partitionen können Wurzelpartitionen werden."
+
+#: libparted/labels/dvh.c:630
+msgid "Only primary partitions can be swap partitions."
+msgstr "Nur primäre Partitionen können Swap-Partitionen werden."
+
+#: libparted/labels/dvh.c:644
+msgid "Only logical partitions can be a boot file."
+msgstr "Nur logische Partitionen können Boot-Dateien sein."
+
+#: libparted/labels/dvh.c:721
+msgid "Only logical partitions (boot files) have a name."
+msgstr "Nur logiche Partitionen (Boot-Dateien) haben einen Namen."
+
+#: libparted/labels/dvh.c:812
+msgid "Too many primary partitions"
+msgstr "Zu viele primäre Partitionen."
+
+#: libparted/labels/fdasd.c:103
+#, c-format
+msgid ""
+"%s open error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:107
+#, c-format
+msgid ""
+"%s seek error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:110
+#, c-format
+msgid ""
+"%s read error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:113
+#, fuzzy, c-format
+msgid ""
+"%s write error\n"
+"%s\n"
+msgstr "%s, während auf %s geschrieben wurde."
+
+#: libparted/labels/fdasd.c:116
+#, c-format
+msgid ""
+"%s IOCTL error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:119
+#, c-format
+msgid ""
+"%s API version mismatch\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:122
+#, c-format
+msgid ""
+"%s Unsupported disk type\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:126
+#, c-format
+msgid ""
+"%s Unsupported disk format\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:130
+#, fuzzy, c-format
+msgid ""
+"%s Disk in use\n"
+"%s\n"
+msgstr "%s  %s  %s"
+
+#: libparted/labels/fdasd.c:133
+#, c-format
+msgid ""
+"%s Config file syntax error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:137
+#, c-format
+msgid ""
+"%s Volume label is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:141
+#, c-format
+msgid ""
+"%s a data set name is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:145
+#, c-format
+msgid ""
+"%s space allocation\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:149
+#, c-format
+msgid ""
+"%s device verification failed\n"
+"The specified device is not a valid DASD device\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:154
+#, c-format
+msgid ""
+"%s Fatal error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/gpt.c:454
+#, fuzzy, c-format
+msgid ""
+"%s contains GPT signatures, indicating that it has a GPT table.  However, it "
+"does not have a valid fake msdos partition table, as it should.  Perhaps it "
+"was corrupted -- possibly by a program that doesn't understand GPT partition "
+"tables.  Or perhaps you deleted the GPT table, and are now using an msdos "
+"partition table.  Is this a GPT partition table?"
+msgstr ""
+"%s enthält GPT-Signaturen, die anzeigen, dass es eine GPT-Tabelle hat. Es "
+"ist jedoch keine gültige vorgetäuschte MSDOS-Partitionstabelle vorhanden, "
+"die eigentlich erforderlich ist. Vielleicht wurde diese zerstört - eventuell "
+"durch ein Programm, das GPT-Partitionstabellen nicht versteht. Oder "
+"vielleicht haben Sie die GPT-Tabelle gelöscht, und verwenden jetzt die MSDOS-"
+"Partititonstabelle. Ist dieses eine GPT-Partitionstabelle?"
+
+#: libparted/labels/gpt.c:648
+#, fuzzy, c-format
+msgid ""
+"The format of the GPT partition table is version %x, which is newer than "
+"what Parted can recognise.  Please tell us!  bug-parted@gnu.org"
+msgstr ""
+"Das Format der GPT-Partitionstabelle ist neuer als das von Parted "
+"verstandene. Bitte melden Sie das an bug-parted@gnu.org!"
+
+#: libparted/labels/gpt.c:698
+#, c-format
+msgid ""
+"Not all of the space available to %s appears to be used, you can fix the GPT "
+"to use all of the space (an extra %llu blocks) or continue with the current "
+"setting? "
+msgstr ""
+
+# XXX: Backup?
+#: libparted/labels/gpt.c:827
+msgid ""
+"The backup GPT table is not at the end of the disk, as it should be.  This "
+"might mean that another operating system believes the disk is smaller.  Fix, "
+"by moving the backup to the end (and removing the old backup)?"
+msgstr ""
+"Die Backup-GPT-Tabelle ist nicht am Ende der Platte, wie sie eigentlich sein "
+"sollte. Das kann bedeuten, dass ein anderes Betriebssystem glaubt, die "
+"Platte sei kleiner. Soll das korrigiert werden, durch Verschieben des "
+"Backups zum Ende (und löschen des alten Backups)?"
+
+#: libparted/labels/gpt.c:862
+#, fuzzy
+msgid ""
+"The primary GPT table is corrupt, but the backup appears OK, so that will be "
+"used."
+msgstr ""
+"Die primäre GPT-Tabelle ist korrupt, aber das Backup scheint in Ordnung zu "
+"sein, also wird dieses verwendet."
+
+# Versucht parted das selbst, oder ist das eine Aufforderung?
+#: libparted/labels/gpt.c:870
+#, fuzzy
+msgid ""
+"Both the primary and backup GPT tables are corrupt.  Try making a fresh "
+"table, and using Parted's rescue feature to recover partitions."
+msgstr ""
+"Sowohl die primäre als auch die Backup-GPT-Tabelle sind korrupt. Versuchen "
+"Sie, eine neue Tabelle zu erzeugen, und die Partititionen mit Hilfe von "
+"Parted's Rettungsmöglichkeiten zu restaurieren."
+
+#: libparted/labels/mac.c:181
+#, c-format
+msgid "Invalid signature %x for Mac disk labels."
+msgstr "Ungültige Signature %x für Mac-Disklabel."
+
+# XXX: Wie nennt Apple maps?
+#: libparted/labels/mac.c:226
+msgid "Partition map has no partition map entry!"
+msgstr "Partitionskarte (-map) hat keinen Partitionskarteneintrag!"
+
+#: libparted/labels/mac.c:273
+#, c-format
+msgid "%s is too small for a Mac disk label!"
+msgstr "%s ist zu klein für ein Mac-Disklabel!"
+
+#: libparted/labels/mac.c:532
+#, c-format
+msgid "Partition %d has an invalid signature %x."
+msgstr "Partition %d hat eine ungültige Signatur %x."
+
+#: libparted/labels/mac.c:550
+#, c-format
+msgid "Partition %d has an invalid length of 0 bytes!"
+msgstr "Partition %d hat eine ungültige Länge von 0 Bytes!"
+
+#: libparted/labels/mac.c:580
+#, fuzzy
+msgid "The data region doesn't start at the start of the partition."
+msgstr "Die Datenregion beginnt nicht mit dem Start einer Partition."
+
+#: libparted/labels/mac.c:597
+#, fuzzy
+msgid "The boot region doesn't start at the start of the partition."
+msgstr "Die Bootregion beginnt nicht mit dem Start einer Partition."
+
+#: libparted/labels/mac.c:611
+msgid "The partition's boot region doesn't occupy the entire partition."
+msgstr "Die Bootregion der Partition belegt nicht die ganze Partition."
+
+#: libparted/labels/mac.c:622
+msgid "The partition's data region doesn't occupy the entire partition."
+msgstr "Die Datenregion der Partition belegt nicht die ganze Partition."
+
+#: libparted/labels/mac.c:675
+#, c-format
+msgid ""
+"Weird block size on device descriptor: %d bytes is not divisible by 512."
+msgstr ""
+"Seltsame Blockgröße auf dem Gerätedeskriptor: %d Bytes ist nicht durch 512 "
+"teilbar."
+
+#: libparted/labels/mac.c:688
+#, c-format
+msgid ""
+"The driver descriptor says the physical block size is %d bytes, but Linux "
+"says it is %d bytes."
+msgstr ""
+"Die Treiberbeschreibung sagt, dass die physische Blockgröße %d Bytes ist; "
+"Linux sagt aber es sind %d Bytes."
+
+#: libparted/labels/mac.c:736
+msgid "No valid partition map found."
+msgstr "Keine gültige Partitionskarte gefunden."
+
+#: libparted/labels/mac.c:795
+#, fuzzy, c-format
+msgid ""
+"Conflicting partition map entry sizes!  Entry 1 says it is %d, but entry %d "
+"says it is %d!"
+msgstr ""
+"Widersprüchliche Größen in den Partitionskarteneinträgen! Eintrag 1 sagt es "
+"sind %d Bytes, Eintrag %d sagt aber es sind %d!"
+
+#: libparted/labels/mac.c:822
+#, fuzzy
+msgid "Weird!  There are 2 partitions map entries!"
+msgstr "Seltsam - 2 Partitionskarteneinträge!"
+
+#: libparted/labels/mac.c:1347
+msgid ""
+"Changing the name of a root or swap partition will prevent Linux from "
+"recognising it as such."
+msgstr ""
+"Eine Änderung des Namens der Root- oder Swap-Partition verhindert, dass "
+"Linux sie als solche erkennt."
+
+#: libparted/labels/mac.c:1443
+#, fuzzy
+msgid "Can't add another partition -- the partition map is too small!"
+msgstr ""
+"Eine weitere Partition kann nicht hinzugefügt werden - die Partitionskarte "
+"ist zu klein!"
+
+#: libparted/labels/pc98.c:354
+#, fuzzy, c-format
+msgid "Invalid partition table on %s."
+msgstr "Ungültige Partitionstabelle auf %s."
+
+#: libparted/labels/pc98.c:406 libparted/labels/pc98.c:484
+#, fuzzy, c-format
+msgid ""
+"Partition %d isn't aligned to cylinder boundaries.  This is still "
+"unsupported."
+msgstr ""
+"Partition %d ist nicht auf Zylindergrenzen ausgerichtet. Das muss noch "
+"unterstützt werden."
+
+#: libparted/labels/pc98.c:791
+msgid "Can't add another partition."
+msgstr "Kann keine weitere Partition hinzufügen."
+
+#: libparted/labels/rdb.c:162
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:497
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen."
+msgstr ""
+
+#: libparted/labels/rdb.c:581
+#, c-format
+msgid "%s : Loop detected at block %d."
+msgstr ""
+
+#: libparted/labels/rdb.c:600
+#, c-format
+msgid "%s : The %s list seems bad at block %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:689
+#, c-format
+msgid "%s : Failed to list bad blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:697
+#, c-format
+msgid "%s : Failed to list partition blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:705
+#, c-format
+msgid "%s : Failed to list file system blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:713
+#, c-format
+msgid "%s : Failed to list boot blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:740
+#, fuzzy, c-format
+msgid "Failed to write partition block at %d."
+msgstr "Es ist nicht feststellbar, ob die Partition eingehangen (mounted) ist."
+
+#: libparted/labels/rdb.c:1069
+#, fuzzy
+msgid "Unable to allocate a partition number."
+msgstr "Partitionsnummer erwartet."
+
+#: libparted/labels/sun.c:145
+msgid "Corrupted Sun disk label detected."
+msgstr "Zerstörtes Sun-Disklabel entdeckt."
+
+#: libparted/labels/sun.c:266
+#, fuzzy, c-format
+msgid ""
+"The disk CHS geometry (%d,%d,%d) reported by the operating system does not "
+"match the geometry stored on the disk label (%d,%d,%d)."
+msgstr ""
+"Die CHS-Geometrie der Platte (%d,%d,%d) stimmt nicht mit der Geometrie des "
+"Disklabels (%d,%d,%d) überein."
+
+#: libparted/labels/sun.c:288
+#, c-format
+msgid "The disk label describes a disk bigger than %s."
+msgstr "Das Disklabel beschreibt eine Platte größer als %s."
+
+#: libparted/labels/sun.c:442
+#, c-format
+msgid "The disk has %d cylinders, which is greater than the maximum of 65536."
+msgstr ""
+
+#: libparted/labels/sun.c:737
+msgid ""
+"The Whole Disk partition is the only available one left.  Generally, it is "
+"not a good idea to overwrite this partition with a real one.  Solaris may "
+"not be able to boot without it, and SILO (the sparc boot loader) appreciates "
+"it as well."
+msgstr ""
+"Die Whole-Disk-Partition ist die einzig verbleibende. Es ist normalerweise "
+"keine gute Idee, diese Partition mit einer echten zu überschreiben. Solaris "
+"bootet ohne vielleicht nicht mehr, und SILO (der Sparc-Bootlader) mag sie "
+"auch."
+
+#: libparted/labels/sun.c:752
+msgid "Sun disk label is full."
+msgstr "Das Sun-Disklabel ist voll."
+
+#: libparted/labels/vtoc.c:163
+#, c-format
+msgid ""
+"%s opening device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:167
+#, c-format
+msgid ""
+"%s seeking device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:171
+#, c-format
+msgid ""
+"%s writing to device '%s' failed,\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:175
+#, c-format
+msgid ""
+"%s reading from device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:179
+#, c-format
+msgid "Fatal error\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:418
+msgid "Could not read VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:424
+msgid "Could not read VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:431
+msgid "Could not read VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:438
+msgid "Could not read VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:445
+msgid "Could not read VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:462
+msgid "Could not write VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:468
+msgid "Could not write VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:475
+msgid "Could not write VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:482
+msgid "Could not write VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:489
+msgid "Could not write VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/libparted.c:296 libparted/libparted.c:316
+msgid "Out of memory."
+msgstr "Hauptspeicher erschöpft."
+
+#: libparted/unit.c:139
+msgid "Cannot get unit size for special unit 'COMPACT'."
+msgstr ""
+
+#: libparted/unit.c:386
+#, c-format
+msgid "\"%s\" has invalid syntax for locations."
+msgstr ""
+
+#: libparted/unit.c:394
+#, c-format
+msgid "The maximum head value is %d."
+msgstr ""
+
+#: libparted/unit.c:401
+#, c-format
+msgid "The maximum sector value is %d."
+msgstr ""
+
+#: libparted/unit.c:413 libparted/unit.c:545
+#, c-format
+msgid "The location %s is outside of the device %s."
+msgstr ""
+
+#: libparted/unit.c:527
+msgid "Invalid number."
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:63 libparted/fs/amiga/apfs.c:56
+#: libparted/fs/amiga/asfs.c:70
+#, fuzzy, c-format
+msgid "%s : Failed to allocate partition block\n"
+msgstr "Es ist nicht feststellbar, ob die Partition eingehangen (mounted) ist."
+
+#: libparted/fs/amiga/affs.c:78 libparted/fs/amiga/apfs.c:70
+#: libparted/fs/amiga/asfs.c:86
+#, c-format
+msgid "%s : Failed to allocate block\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:83 libparted/fs/amiga/apfs.c:75
+#, c-format
+msgid "%s : Couldn't read boot block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:99 libparted/fs/amiga/apfs.c:86
+#: libparted/fs/amiga/asfs.c:92 libparted/fs/amiga/asfs.c:106
+#, c-format
+msgid "%s : Couldn't read root block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:72
+#, c-format
+msgid "%s : Failed to allocate id list element\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:189
+#, c-format
+msgid "%s : Couldn't read block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:202
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:212
+#, fuzzy, c-format
+msgid "%s : Couldn't write block %d\n"
+msgstr "%s, während auf %s geschrieben wurde."
+
+#: libparted/fs/amiga/amiga.c:278
+#, c-format
+msgid "%s : Failed to allocate disk_specific rdb block\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:289
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:318
+#, fuzzy, c-format
+msgid "%s : Failed to read partition block %llu\n"
+msgstr "Es ist nicht feststellbar, ob die Partition eingehangen (mounted) ist."
+
+#: libparted/fs/ext2/ext2.c:87 libparted/fs/ext2/ext2.c:112
+msgid "Inconsistent group descriptors!"
+msgstr "Inkonsistente Gruppendeskriptoren!"
+
+#: libparted/fs/ext2/ext2.c:91 libparted/fs/ext2/ext2.c:116
+#, fuzzy
+msgid "File system full!"
+msgstr "Dateisystem voll!"
+
+#: libparted/fs/ext2/ext2.c:686
+#, fuzzy
+msgid "Invalid superblock.  Are you sure this is an ext2 file system?"
+msgstr ""
+"Ungültiger Superblock. Sind Sie sicher, daß das ein ext2-Dateisystem ist?"
+
+#: libparted/fs/ext2/ext2.c:700 libparted/fs/ext2/ext2_resize.c:658
+#, fuzzy
+msgid "File system has errors!  You should run e2fsck."
+msgstr "Das Dateisystem hat Fehler! Sie sollten e2fsck aufrufen."
+
+#: libparted/fs/ext2/ext2.c:711
+#, fuzzy
+msgid ""
+"File system was not cleanly unmounted!  You should run e2fsck.  Modifying an "
+"unclean file system could cause severe corruption."
+msgstr ""
+"Dateisystem wurde nicht sauber ausgehangen (unmounted)! Sie sollten e2fsck "
+"ausführen."
+
+#: libparted/fs/ext2/ext2.c:731
+#, fuzzy
+msgid "File system has an incompatible feature enabled."
+msgstr "Das Dateisystem hat eine inkompatibles Funktion aktiviert."
+
+#: libparted/fs/ext2/ext2.c:742
+msgid "Error allocating buffer cache."
+msgstr "Fehler beim Allozieren des Puffercaches."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:114
+#, fuzzy
+msgid ""
+"Found an inode with a incorrect link count.  Better go run e2fsck first!"
+msgstr ""
+"I-Node mit ungültigem Linkzähler gefunden. Führen Sie besser erst e2fsck aus!"
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:487
+msgid "Not enough free inodes!"
+msgstr "Nicht genügend freie I-Nodes!"
+
+#: libparted/fs/ext2/ext2_resize.c:223
+#, fuzzy
+msgid "File system is too full to remove a group!"
+msgstr "Dateisystem ist zu belegt, um eine Gruppe zu löschen!"
+
+#: libparted/fs/ext2/ext2_resize.c:232
+#, fuzzy
+msgid "File system has too many allocated inodes to remove a group!"
+msgstr ""
+"Dateisystem hat zu viele allozierte I-Nodes, um eine Gruppe zu löschen!"
+
+#: libparted/fs/ext2/ext2_resize.c:491
+msgid "adding groups"
+msgstr "Hinzufügen von Gruppen"
+
+#: libparted/fs/ext2/ext2_resize.c:528
+#, fuzzy, c-format
+msgid "Your file system is too full to resize it to %i blocks.  Sorry."
+msgstr ""
+"Ihr Dateisystem ist zu belegt, um es auf %i Blöcke zu reduzieren. Schade."
+
+#: libparted/fs/ext2/ext2_resize.c:538
+#, fuzzy, c-format
+msgid ""
+"Your file system has too many occupied inodes to resize it to %i blocks.  "
+"Sorry."
+msgstr ""
+"Ihr Dateisystem hat zu viele belegt I-Nodes, um es auf %i Blöcke zu "
+"reduzieren."
+
+#: libparted/fs/ext2/ext2_resize.c:666
+#, fuzzy
+msgid "File system was not cleanly unmounted!  You should run e2fsck."
+msgstr ""
+"Dateisystem wurde nicht sauber ausgehangen (unmounted)! Sie sollten e2fsck "
+"ausführen."
+
+#: libparted/fs/ext2/ext2_resize.c:675
+msgid ""
+"The file system has the 'dir_index' feature enabled.  Parted can only resize "
+"the file system if it disables this feature.  You can enable it later by "
+"running 'tune2fs -O dir_index DEVICE' and then 'e2fsck -fD DEVICE'."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:691
+msgid ""
+"A resize operation on this file system will use EXPERIMENTAL code\n"
+"that MAY CORRUPT it (although no one has reported any such damage yet).\n"
+"You should at least backup your data first, and run 'e2fsck -f' afterwards."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_block_relocator.c:198
+#, fuzzy
+msgid "Cross-linked blocks found!  Better go run e2fsck first!"
+msgstr ""
+"Überkreuz-verbundene I-Nodes gefunden! Führen Sie lieber erst e2fsck aus!"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:537
+#, fuzzy, c-format
+msgid "Block %i has no reference?  Weird."
+msgstr "Block %i hat keine Referenz? Komisch."
+
+#: libparted/fs/ext2/ext2_block_relocator.c:737
+#, fuzzy, c-format
+msgid "Block %i shouldn't have been marked (%d, %d)!"
+msgstr "Block %i dürfte nicht markiert sein!"
+
+#: libparted/fs/ext2/interface.c:186
+#, fuzzy
+msgid ""
+"The ext2 file system passed a basic check.  For a more comprehensive check, "
+"use the e2fsck program."
+msgstr ""
+"Das ext2-Dateisystem hat den Basischeck bestanden. Um einen kompletteren "
+"Test auszuführen, benutzen Sie bitte e2fsck."
+
+#: libparted/fs/ext2/interface.c:203
+msgid "Sorry, can't move the start of ext2 partitions yet!"
+msgstr ""
+"Leider kann der Anfang von ext2-Partitionen noch nicht verschoben werden."
+
+#: libparted/fs/ext2/ext2_buffer.c:82
+msgid "Couldn't flush buffer cache!"
+msgstr "Der Puffercache konnte nicht geleert werden."
+
+#: libparted/fs/ext2/ext2_mkfs.c:162
+msgid "writing per-group metadata"
+msgstr "Schreiben der Meta-Daten pro Gruppe"
+
+#: libparted/fs/ext2/ext2_mkfs.c:564
+msgid "File system too small for ext2."
+msgstr "Dateisystem zu klein für ext2."
+
+#: libparted/fs/fat/calc.c:135
+#, fuzzy, c-format
+msgid ""
+"You need %s of free disk space to shrink this partition to this size.  "
+"Currently, only %s is free."
+msgstr ""
+"Sie benötigen %dM freien Plattenplatz, um diese Partition auf diese Größe zu "
+"verkleinern (Sie haben gegenwärtig nur %dM frei)."
+
+#: libparted/fs/fat/context.c:56
+#, c-format
+msgid ""
+"Cluster start delta = %d, which is not a multiple of the cluster size %d."
+msgstr "Clusterstart delta = %d, was kein Vielfaches der Clustergröße %d ist."
+
+#: libparted/fs/fat/fat.c:308
+#, fuzzy, c-format
+msgid "Partition too big/small for a %s file system."
+msgstr "Partition ist zu groß/klein für ein %s-Dateisystem."
+
+#: libparted/fs/fat/fat.c:474
+msgid ""
+"The FATs don't match.  If you don't know what this means, then select "
+"cancel, run scandisk on the file system, and then come back."
+msgstr ""
+"Die FATs stimmen nicht überein. Wenn Sie nicht wissen, was das bedeutet, "
+"wählen Sie Abbruch, rufen scandisk auf dem Dateisystem auf, und versuchen es "
+"nochmal."
+
+#: libparted/fs/fat/fat.c:514
+msgid "There are no possible configurations for this FAT type."
+msgstr "Es gibt keine mögliche Konfiguration für diesen FAT-Typ."
+
+#: libparted/fs/fat/fat.c:526
+#, c-format
+msgid ""
+"File system doesn't have expected sizes for Windows to like it.  Cluster "
+"size is %dk (%dk expected); number of clusters is %d (%d expected); size of "
+"FATs is %d sectors (%d expected)."
+msgstr ""
+"Das Dateisystem hat nicht die Größe, die Windows mag. Die Clustergröße ist %"
+"dk (%dk erwartet); die Clusterzahl ist %d (%d erwartet); die FAT-Größe ist %"
+"d Sektoren (%d erwartet)."
+
+#: libparted/fs/fat/fat.c:549
+#, c-format
+msgid ""
+"File system is reporting the free space as %d clusters, not %d clusters."
+msgstr "Dateisystem meldet freien Platz als %d Cluster, nicht %d Cluster."
+
+#: libparted/fs/fat/fat.c:874
+#, fuzzy
+msgid ""
+"GNU Parted was miscompiled: the FAT boot sector should be 512 bytes.  FAT "
+"support will be disabled."
+msgstr ""
+"GNU parted ist fehlübersetzt: Der FAT-Bootsektor sollte 512 Bytes sein. FAT-"
+"Unterstützung wird deaktiviert."
+
+#: libparted/fs/fat/resize.c:159
+#, fuzzy
+msgid ""
+"There's not enough room in the root directory for all of the files.  Either "
+"cancel, or ignore to lose the files."
+msgstr ""
+"Es gibt nicht genug Platz für das Wurzelverzeichnis, für all die Dateien. "
+"Entweder abbrechen, oder ignorieren, und Dateien verlieren."
+
+#: libparted/fs/fat/resize.c:300
+msgid "Error writing to the root directory."
+msgstr "Fehler beim Schreiben des Wurzelverzeichnisses."
+
+#: libparted/fs/fat/resize.c:489
+#, fuzzy
+msgid "If you leave your file system as FAT16, then you will have no problems."
+msgstr ""
+"Wenn Sie Ihr Dateisystem als FAT16 lassen, werden Sie keine Probleme haben."
+
+#: libparted/fs/fat/resize.c:492
+msgid ""
+"If you convert to FAT16, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual)."
+msgstr ""
+"Wenn Sie in FAT16 konvertieren und MS-Windows auf dieser Partition "
+"installiert ist, müssen Sie den MS-Windows-Bootlader reinstallieren. Wenn "
+"Sie das tun wollen, sollten Sie das Parted-Handbuch studieren (oder das "
+"Ihrer Distribution)."
+
+#: libparted/fs/fat/resize.c:500
+msgid ""
+"If you leave your file system as FAT32, then you will not introduce any new "
+"problems."
+msgstr ""
+"Wenn Sie Ihr Dateisystem als FAT32 lassen, werden Sie keine neuen Probleme "
+"auslösen."
+
+#: libparted/fs/fat/resize.c:504
+msgid ""
+"If you convert to FAT32, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual).  Also, "
+"converting to FAT32 will make the file system unreadable by MS DOS, MS "
+"Windows 95a, and MS Windows NT."
+msgstr ""
+"Wenn Sie zu FAT32 konvertieren und MS-Windows auf dieser Partition "
+"installiert ist, müssen Sie den MS-Windows-Bootlader neu installieren. Wenn "
+"Sie das tun wollen, sollten Sie das Parted-Handbuch lesen (oder das Ihrer "
+"Distribution). Außerdem kann nach einer Konvertierung zu FAT32 das "
+"Dateisystem nicht mehr von MS-DOS, MS-Windows 95a und MS-Windows NT gelesen "
+"werden."
+
+#: libparted/fs/fat/resize.c:518
+#, c-format
+msgid "%s  %s  %s"
+msgstr "%s  %s  %s"
+
+#: libparted/fs/fat/resize.c:519
+msgid "Would you like to use FAT32?"
+msgstr "Wollen Sie FAT32 verwenden?"
+
+#: libparted/fs/fat/resize.c:550 libparted/fs/fat/resize.c:566
+#, c-format
+msgid "%s  %s"
+msgstr "%s  %s"
+
+#: libparted/fs/fat/resize.c:551
+msgid ""
+"The file system can only be resized to this size by converting to FAT16."
+msgstr ""
+"Das Dateisystem kann nur größenverändert werden durch Konvertierung zu FAT16."
+
+#: libparted/fs/fat/resize.c:567
+msgid ""
+"The file system can only be resized to this size by converting to FAT32."
+msgstr ""
+"Das Dateisystem kann nur größenverändert werden durch Konvertierung zu FAT32."
+
+#: libparted/fs/fat/resize.c:580
+#, fuzzy
+msgid ""
+"GNU Parted cannot resize this partition to this size.  We're working on it!"
+msgstr ""
+"GNU Parted kann diese Partition nicht auf diese Größe verkleinern. Wir "
+"arbeiten dran!"
+
+#: libparted/fs/fat/bootsector.c:49 libparted/fs/fat/bootsector.c:56
+msgid "File system has an invalid signature for a FAT file system."
+msgstr "Dateisystem hat eine ungültige Signature für ein FAT-Dateisystem."
+
+#: libparted/fs/fat/bootsector.c:64
+msgid "File system has an invalid sector size for a FAT file system."
+msgstr "Dateisystem hat eine ungültige Sektorgröße für ein FAT-Dateisystem."
+
+#: libparted/fs/fat/bootsector.c:71
+msgid "File system has an invalid cluster size for a FAT file system."
+msgstr "Dateisystem hat eine ungültige Clustergröße für ein FAT-Dateisystem."
+
+#: libparted/fs/fat/bootsector.c:78
+#, fuzzy
+msgid ""
+"File system has an invalid number of reserved sectors for a FAT file system."
+msgstr ""
+"Dateisystem hat eine ungültige Zahl von reservierten Sektoren für ein FAT-"
+"Dateisystem."
+
+#: libparted/fs/fat/bootsector.c:85
+#, fuzzy
+msgid "File system has an invalid number of FATs."
+msgstr "Dateisystem hat eine ungültige Zahl von FATs."
+
+#: libparted/fs/fat/bootsector.c:139
+#, c-format
+msgid ""
+"This file system has a logical sector size of %d.  GNU Parted is known not "
+"to work properly with sector sizes other than 512 bytes."
+msgstr ""
+"Dieses Dateisystem hat eine logische Sektorgröße von %d. GNU Parted "
+"funktioniert für Sektorgrößen verschieden von 512 Bytes nicht richtig."
+
+#: libparted/fs/fat/bootsector.c:164
+#, c-format
+msgid ""
+"The file system's CHS geometry is (%d, %d, %d), which is invalid.  The "
+"partition table's CHS geometry is (%d, %d, %d).  If you select Ignore, the "
+"file system's CHS geometry will be left unchanged.  If you select Fix, the "
+"file system's CHS geometry will be set to match the partition table's CHS "
+"geometry."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:213
+msgid "FAT boot sector says logical sector size is 0.  This is weird. "
+msgstr ""
+"Der FAT-Bootsektor sagt, die logische Sektorgröße sei 0. Das ist komisch."
+
+#: libparted/fs/fat/bootsector.c:219
+msgid "FAT boot sector says there are no FAT tables.  This is weird. "
+msgstr "Der FAT-Bootsektor sagt es gibt keine FAT-Tabellen. Das ist komisch."
+
+#: libparted/fs/fat/bootsector.c:225
+msgid "FAT boot sector says clusters are 0 sectors.  This is weird. "
+msgstr ""
+"Der FAT-Bootsektor sagt Cluster seien 0 Sektoren groß. Das ist komisch."
+
+#: libparted/fs/fat/bootsector.c:235
+#, fuzzy
+msgid "File system is FAT12, which is unsupported."
+msgstr "Dateisystem ist FAT12, was gegenwärtig nicht unterstützt wird."
+
+#: libparted/fs/fat/bootsector.c:411
+#, c-format
+msgid ""
+"The information sector has the wrong signature (%x).  Select cancel for now, "
+"and send in a bug report.  If you're desperate, it's probably safe to ignore."
+msgstr ""
+"Der Informationssektor hat die falsche Signatur (%x). Wählen Sie jetzt "
+"Abbrechen, und senden Sie einen Bugreport. Wenn es sein muß, können Sie das "
+"auch ignorieren."
+
+#: libparted/fs/fat/count.c:152
+#, c-format
+msgid "Bad directory entry for %s: first cluster is the end of file marker."
+msgstr ""
+"Falscher Verzeichniseintrag für %s: Erster Cluster ist am Ende des "
+"Dateimarkers."
+
+#: libparted/fs/fat/count.c:165
+#, c-format
+msgid ""
+"Bad FAT: unterminated chain for %s.  You should run dosfsck or scandisk."
+msgstr ""
+"Falsche FAT: unbeendete Kette für %s. Sie sollten dosfsck oder scandisk "
+"ausführen."
+
+#: libparted/fs/fat/count.c:174
+#, fuzzy, c-format
+msgid ""
+"Bad FAT: cluster %d outside file system in chain for %s.  You should run "
+"dosfsck or scandisk."
+msgstr ""
+"FAT-Fehler: Cluster %d ist außerhalb des Dateisystems in Kette für %s. Sie "
+"sollten dosfsck oder scandisk ausführen."
+
+#: libparted/fs/fat/count.c:184
+#, c-format
+msgid ""
+"Bad FAT: cluster %d is cross-linked for %s.  You should run dosfsck or "
+"scandisk."
+msgstr ""
+"FAT-Fehler: Cluster %d ist überkreuz verbunden für %s. Sie sollten dosfsck "
+"oder scandisk ausführen."
+
+#: libparted/fs/fat/count.c:203
+#, c-format
+msgid "%s is %dk, but it has %d clusters (%dk)."
+msgstr "%s ist %dk, hat aber %d Cluster (%dk)."
+
+#: libparted/fs/fat/count.c:266
+#, c-format
+msgid ""
+"The file %s is marked as a system file.  This means moving it could cause "
+"some programs to stop working."
+msgstr ""
+"Die Datei %s ist als Systemdatei markiert. Das bedeutet, dass nach dem "
+"Verschieben einige Programme nicht mehr funktionieren."
+
+#: libparted/fs/fat/table.c:137
+#, c-format
+msgid ""
+"FAT %d media %x doesn't match the boot sector's media %x.  You should "
+"probably run scandisk."
+msgstr ""
+"FAT %d Medium %x stimmt nicht mit dem Bootsektor von Medium %xüberein. Sie "
+"sollten wohl scandisk aufrufen."
+
+#: libparted/fs/fat/table.c:269
+#, fuzzy, c-format
+msgid "fat_table_set: cluster %ld outside file system"
+msgstr "fat_table_set: Cluster %ld ist außerhalb des Dateisystems."
+
+#: libparted/fs/fat/table.c:301
+#, fuzzy, c-format
+msgid "fat_table_get: cluster %ld outside file system"
+msgstr "fat_table_get: Cluster %ld ist außerhalb des Dateisystems."
+
+#: libparted/fs/fat/table.c:343
+msgid "fat_table_alloc_cluster: no free clusters"
+msgstr "fat_table_alloc_cluster: Keine freien Cluster."
+
+#: libparted/fs/linux_swap/linux_swap.c:275
+#, fuzzy, c-format
+msgid "Unrecognised old style linux swap signature '%10s'."
+msgstr "Unbekannte Linux-Swap-Signatur '%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:318
+#, fuzzy, c-format
+msgid "Unrecognised new style linux swap signature '%10s'."
+msgstr "Unbekannte Linux-Swap-Signatur '%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:358
+#, fuzzy, c-format
+msgid "Unrecognised swsusp linux swap signature '%9s'."
+msgstr "Unbekannte Linux-Swap-Signatur '%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:434
+msgid "Too many bad pages."
+msgstr "Zu viele falsche Seiten."
+
+#: libparted/fs/hfs/advfs.c:121 libparted/fs/hfs/advfs_plus.c:122
+#: libparted/fs/hfs/reloc.c:414 libparted/fs/hfs/reloc.c:508
+#: libparted/fs/hfs/reloc_plus.c:539 libparted/fs/hfs/reloc_plus.c:658
+#: libparted/fs/hfs/reloc_plus.c:772
+msgid "The file system contains errors."
+msgstr ""
+
+#: libparted/fs/hfs/advfs_plus.c:287
+msgid "Bad blocks could not be read."
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:137
+#, c-format
+msgid ""
+"Trying to register an extent starting at block 0x%X, but another one already "
+"exists at this position.  You should check the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:214
+#, c-format
+msgid ""
+"Trying to move an extent from block Ox%X to block Ox%X, but another one "
+"already exists at this position.  This should not happen!"
+msgstr ""
+
+#: libparted/fs/hfs/file.c:143
+#, c-format
+msgid "Could not update the extent cache for HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:180
+#, c-format
+msgid "Trying to read HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:190 libparted/fs/hfs/file.c:220
+#, c-format
+msgid "Could not find sector %lli of HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:210
+#, c-format
+msgid "Trying to write HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:157
+#, c-format
+msgid "Could not update the extent cache for HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:202
+#, c-format
+msgid "Trying to read HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:213 libparted/fs/hfs/file_plus.c:256
+#, c-format
+msgid "Could not find sector %lli of HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:245
+#, c-format
+msgid "Trying to write HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:232
+msgid "Sorry, HFS cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:262 libparted/fs/hfs/hfs.c:641
+msgid "Data relocation has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:281
+msgid "Data relocation left some data in the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:320
+#, fuzzy
+msgid "writing HFS Master Directory Block"
+msgstr "Fehler beim Schreiben des Wurzelverzeichnisses."
+
+#: libparted/fs/hfs/hfs.c:468
+msgid "No valid HFS[+X] signature has been found while opening."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:478
+#, c-format
+msgid "Version %d of HFS+ isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:489
+#, c-format
+msgid "Version %d of HFSX isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:672
+msgid "Data relocation left some data at the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:720
+#, fuzzy
+msgid "Error while writing the allocation file."
+msgstr "Fehler beim Schreiben des Wurzelverzeichnisses."
+
+#: libparted/fs/hfs/hfs.c:735
+msgid "Error while writing the compatibility part of the allocation file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:750
+msgid "writing HFS+ Volume Header"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:850
+msgid "An error occurred while looking for the mandatory bad blocks file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:904
+msgid ""
+"It seems there is an error in the HFS wrapper: the bad blocks file doesn't "
+"contain the embedded HFS+ volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:940
+msgid "Sorry, HFS+ cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:975
+msgid "shrinking embedded HFS+ volume"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:991
+msgid "Resizing the HFS+ volume has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:998
+#, fuzzy
+msgid "shrinking HFS wrapper"
+msgstr "verkleinernd"
+
+#: libparted/fs/hfs/hfs.c:1007
+msgid "Updating the HFS wrapper has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:1109 libparted/fs/hfs/hfs.c:1194
+#, c-format
+msgid ""
+"This is not a real %s check.  This is going to extract special low level "
+"files for debugging purposes."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:155
+msgid "Bad block list header checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:168
+#, c-format
+msgid ""
+"Invalid size of a transaction block while replaying the journal (%i bytes)."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:260
+msgid ""
+"Journal stored outside of the volume are not supported.  Try to desactivate "
+"the journal and run Parted again."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:271
+#, fuzzy
+msgid "Journal offset or size is not multiple of the sector size."
+msgstr "Clusterstart delta = %d, was kein Vielfaches der Clustergröße %d ist."
+
+#: libparted/fs/hfs/journal.c:292
+msgid "Incorrect magic values in the journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:302
+msgid "Journal size mismatch between journal info block and journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:314
+#, fuzzy
+msgid "Some header fields are not multiple of the sector size."
+msgstr "Clusterstart delta = %d, was kein Vielfaches der Clustergröße %d ist."
+
+#: libparted/fs/hfs/journal.c:323
+msgid ""
+"The sector size stored in the journal is not 512 bytes.  Parted only "
+"supports 512 bytes length sectors."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:335
+msgid "Bad journal checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:353
+msgid ""
+"The journal is not empty.  Parted must replay the transactions before "
+"opening the file system.  This will modify the file system."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:381
+msgid ""
+"The volume header or the master directory block has changed while replaying "
+"the journal.  You should restart Parted."
+msgstr ""
+
+#: libparted/fs/hfs/probe.c:51
+#, c-format
+msgid ""
+"Parted can't use HFS file systems on disks with a sector size not equal to %"
+"d bytes."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:151 libparted/fs/hfs/reloc_plus.c:155
+msgid "An extent has not been relocated."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:251 libparted/fs/hfs/reloc_plus.c:307
+msgid ""
+"A reference to an extent comes from a place it should not.  You should check "
+"the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:381
+msgid "This HFS volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:475
+msgid "This HFS volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:517 libparted/fs/hfs/reloc_plus.c:668
+msgid ""
+"The extents overflow file should not contain its own extents!  You should "
+"check the file system."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:574 libparted/fs/hfs/reloc_plus.c:847
+#, fuzzy
+msgid "Could not cache the file system in memory."
+msgstr "Dateisystem wurde nicht erkannt."
+
+#: libparted/fs/hfs/reloc.c:635 libparted/fs/hfs/reloc_plus.c:908
+msgid "Bad blocks list could not be loaded."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:649 libparted/fs/hfs/reloc_plus.c:924
+msgid "An error occurred during extent relocation."
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:495
+msgid "This HFS+ volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:619
+msgid "This HFS+ volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: parted/parted.c:94
+msgid "displays this help message"
+msgstr "zeigt die Hilfe"
+
+#: parted/parted.c:95
+msgid "lists partition layout on all block devices"
+msgstr ""
+
+#: parted/parted.c:96
+msgid "displays machine parseable output"
+msgstr ""
+
+#: parted/parted.c:97
+msgid "never prompts for user intervention"
+msgstr "bittet nie um Nutzerintervention"
+
+#: parted/parted.c:98
+msgid "displays the version"
+msgstr "zeigt die Version"
+
+#: parted/parted.c:111
+#, fuzzy
+msgid ""
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"
+msgstr ""
+"MINOR ist die von Linux verwendete Partitionsnummer. Auf MS-DOS-Disklabel "
+"haben die primären Partitionen die Nummern 1-4, die logischen Laufwerke "
+"beginnen bei 5.\n"
+
+#: parted/parted.c:114
+msgid "LABEL-TYPE is one of: "
+msgstr "LABEL-TYP ist eines aus: "
+
+#: parted/parted.c:115
+msgid "FLAG is one of: "
+msgstr "FLAG ist eines aus: "
+
+#: parted/parted.c:116
+#, fuzzy
+msgid "UNIT is one of: "
+msgstr "FLAG ist eines aus: "
+
+#: parted/parted.c:117
+msgid "PART-TYPE is one of: primary, logical, extended\n"
+msgstr "PART-TYP ist eines aus: primary, logical, extended\n"
+
+#: parted/parted.c:119
+msgid "FS-TYPE is one of: "
+msgstr "FS-TYP ist eines aus: "
+
+#: parted/parted.c:120
+msgid ""
+"START and END are disk locations, such as 4GB or 10%.  Negative values count "
+"from the end of the disk.  For example, -1s specifies exactly the last "
+"sector.\n"
+msgstr ""
+
+#: parted/parted.c:123
+msgid "STATE is one of: on, off\n"
+msgstr "STATE ist eines aus: on, off\n"
+
+#: parted/parted.c:124
+msgid "DEVICE is usually /dev/hda or /dev/sda\n"
+msgstr "GERÄT ist normalerweise /dev/hda oder /dev/sda\n"
+
+#: parted/parted.c:125
+msgid "NAME is any word you want\n"
+msgstr "NAME ist ein beliebiges Wort Ihrer Wahl.\n"
+
+#: parted/parted.c:126
+msgid "The partition must have one of the following FS-TYPEs: "
+msgstr ""
+
+#: parted/parted.c:130
+#, fuzzy
+msgid ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+msgstr ""
+"Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.\n"
+"Übersetzungen sind Copyright (C) 1999-2002 Free Software Foundation, Inc.\n"
+"Dieses Programm ist freie Software unter den Regeln der GNU General\n"
+"Public License.\n"
+"\n"
+"Dieses Programm wird in der Hoffnung verteilt, daß es nützlich ist,\n"
+"jedoch OHNE JEGLICHE GARANTIE; sogar ohne die implizite Garantie der\n"
+"MARKTFÄHIGKEIT oder der ERFÜLLUNG EINES BESTIMMTEN ZWECKES.  In der\n"
+"\"GNU General Public License\" können weitere Einzelheiten nachgelesen\n"
+"werden.\n"
+
+#: parted/parted.c:176
+#, c-format
+msgid "%0.f%%\t(time left %.2d:%.2d)"
+msgstr "%0.f%%\t(Restzeit %.2d:%.2d)"
+
+#: parted/parted.c:195
+#, c-format
+msgid ""
+"Partition %s is being used. You must unmount it before you modify it with "
+"Parted."
+msgstr ""
+
+#: parted/parted.c:211
+#, c-format
+msgid "Partition(s) on %s are being used."
+msgstr "Partition(en) auf %s sind benutzt."
+
+#: parted/parted.c:223
+msgid ""
+"The existing file system will be destroyed and all data on the partition "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:235
+#, c-format
+msgid ""
+"The existing disk label on %s will be destroyed and all data on this disk "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:458 parted/parted.c:652 parted/parted.c:1044
+#: parted/parted.c:1128 parted/parted.c:1771 parted/parted.c:1852
+#: parted/parted.c:1900
+msgid "Partition number?"
+msgstr "Partitionsnummer?"
+
+#: parted/parted.c:500
+msgid "Source device?"
+msgstr "Quellgerät?"
+
+#: parted/parted.c:504
+msgid "Source partition number?"
+msgstr "Quellpartitionsnummer?"
+
+#: parted/parted.c:509
+#, fuzzy
+msgid "Can't copy an extended partition."
+msgstr "Erweiterte Partitionen können nicht kopiert werden."
+
+#: parted/parted.c:515
+msgid "Destination partition number?"
+msgstr "Zielpartitionsnummer?"
+
+#: parted/parted.c:615
+msgid "New disk label type?"
+msgstr "Neuer Disk-Label-Typ?"
+
+#: parted/parted.c:656
+msgid "File system?"
+msgstr "Dateisystem?"
+
+#: parted/parted.c:707 parted/parted.c:878
+msgid "Partition type?"
+msgstr "Partitionstyp?"
+
+#: parted/parted.c:714 parted/parted.c:885 parted/parted.c:1131
+msgid "Partition name?"
+msgstr "Partitionsname?"
+
+#: parted/parted.c:722 parted/parted.c:895
+msgid "File system type?"
+msgstr "Dateisystemtyp?"
+
+#: parted/parted.c:729 parted/parted.c:897 parted/parted.c:1059
+#: parted/parted.c:1725 parted/parted.c:1780
+msgid "Start?"
+msgstr "Start?"
+
+#: parted/parted.c:731 parted/parted.c:900 parted/parted.c:1062
+#: parted/parted.c:1727 parted/parted.c:1782
+msgid "End?"
+msgstr "Ende?"
+
+#: parted/parted.c:769 parted/parted.c:938
+#, c-format
+msgid ""
+"You requested a partition from %s to %s.\n"
+"The closest location we can manage is %s to %s.  Is this still acceptable to "
+"you?"
+msgstr ""
+
+#: parted/parted.c:890
+#, fuzzy
+msgid "An extended partition cannot hold a file system.  Did you want mkpart?"
+msgstr ""
+"Erweiterte Partitionen können kein Dateisystem haben. Wollten Sie mkpart?"
+
+#: parted/parted.c:1050
+#, fuzzy
+msgid "Can't move an extended partition."
+msgstr "Erweiterte Partition können nicht verschoben werden."
+
+#: parted/parted.c:1079
+msgid "Can't move a partition onto itself.  Try using resize, perhaps?"
+msgstr ""
+"Die Partition kann nicht auf sich selbst verschoben werden. Vielleicht "
+"wollen Sie Größenänderung (resize) versuchen?"
+
+#: parted/parted.c:1227
+#, c-format
+msgid "Minor: %d\n"
+msgstr "Minor: %d\n"
+
+#: parted/parted.c:1228
+#, fuzzy, c-format
+msgid "Flags: %s\n"
+msgstr "Flags: "
+
+#: parted/parted.c:1229
+#, c-format
+msgid "File System: %s\n"
+msgstr "Dateisystem: %s\n"
+
+#: parted/parted.c:1230
+#, fuzzy
+msgid "Size:         "
+msgstr "Größe:          %10.3fMb (%d%%)\n"
+
+#: parted/parted.c:1235
+#, fuzzy
+msgid "Minimum size: "
+msgstr "Minimale Größe: %10.3fMb (%d%%)\n"
+
+#: parted/parted.c:1238
+#, fuzzy
+msgid "Maximum size: "
+msgstr "Maximale Größe: %10.3fMb (%d%%)\n"
+
+#: parted/parted.c:1362
+#, c-format
+msgid "Model: %s (%s)\n"
+msgstr ""
+
+#: parted/parted.c:1364
+#, fuzzy, c-format
+msgid "Disk %s: %s\n"
+msgstr "%s  %s  %s"
+
+#: parted/parted.c:1365
+#, c-format
+msgid "Sector size (logical/physical): %lldB/%lldB\n"
+msgstr ""
+
+#: parted/parted.c:1383
+#, c-format
+msgid "BIOS cylinder,head,sector geometry: %d,%d,%d.  Each cylinder is %s.\n"
+msgstr ""
+
+#: parted/parted.c:1392
+#, fuzzy, c-format
+msgid "Partition Table: %s\n"
+msgstr "Partitionsname?"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Number"
+msgstr ""
+
+#: parted/parted.c:1406 parted/parted.c:1409
+#, fuzzy
+msgid "Start"
+msgstr "Start?"
+
+#: parted/parted.c:1407 parted/parted.c:1410
+#, fuzzy
+msgid "End"
+msgstr "Ende?"
+
+#: parted/parted.c:1410
+#, fuzzy
+msgid "Size"
+msgstr "resize"
+
+#: parted/parted.c:1414
+msgid "Type"
+msgstr ""
+
+#: parted/parted.c:1416
+#, fuzzy
+msgid "File system"
+msgstr "Dateisystem?"
+
+#: parted/parted.c:1419
+#, fuzzy
+msgid "Name"
+msgstr "name"
+
+#: parted/parted.c:1421
+msgid "Flags"
+msgstr "Flags"
+
+#: parted/parted.c:1477
+msgid "Free Space"
+msgstr ""
+
+#: parted/parted.c:1624
+#, fuzzy, c-format
+msgid ""
+"A %s %s partition was found at %s -> %s.  Do you want to add it to the "
+"partition table?"
+msgstr ""
+"Eine %s-%s-Partition wurde bei %.3fMb -> %.3fMb gefunden. Wollen Sie die zur "
+"Partitionstabelle hinzufügen?"
+
+#: parted/parted.c:1663
+msgid "searching for file systems"
+msgstr "es wird nach Dateisystemen gesucht"
+
+#: parted/parted.c:1877
+msgid "New device?"
+msgstr "Neues Gerät?"
+
+#: parted/parted.c:1902
+#, fuzzy
+msgid "Flag to Invert?"
+msgstr "Zu änderndes Flag?"
+
+#: parted/parted.c:1907
+msgid "New state?"
+msgstr "Neuer Zustand?"
+
+#: parted/parted.c:1944
+msgid "Unit?"
+msgstr ""
+
+#: parted/parted.c:2093
+msgid "check"
+msgstr "check"
+
+#: parted/parted.c:2096
+#, fuzzy
+msgid ""
+"check NUMBER                             do a simple check on the file system"
+msgstr ""
+"check MINOR                Einen einfachen Test auf den Dateisystemen "
+"ausführen."
+
+#: parted/parted.c:2102
+msgid "cp"
+msgstr "cp"
+
+#: parted/parted.c:2105
+#, fuzzy
+msgid ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+"partition"
+msgstr ""
+"cp [VON-GERÄT] VON-MINOR AUF-MINOR   Dateisystem auf andere Partition "
+"kopieren."
+
+#: parted/parted.c:2111
+msgid "help"
+msgstr "help"
+
+#: parted/parted.c:2114
+#, fuzzy
+msgid ""
+"help [COMMAND]                           print general help, or help on "
+"COMMAND"
+msgstr ""
+"help [KOMMANDO]            Generelle Hilfe, oder Hilfe für KOMMANDO ausgeben."
+
+#: parted/parted.c:2120
+msgid "mklabel"
+msgstr "mklabel"
+
+#: parted/parted.c:2120
+#, fuzzy
+msgid "mktable"
+msgstr "mklabel"
+
+#: parted/parted.c:2123
+#, fuzzy
+msgid ""
+"mklabel,mktable LABEL-TYPE               create a new disklabel (partition "
+"table)"
+msgstr ""
+"mklabel LABEL-TYP          Neues Disklabel (Partitionstabelle) erzeugen."
+
+#: parted/parted.c:2129
+msgid "mkfs"
+msgstr "mkfs"
+
+#: parted/parted.c:2132
+#, fuzzy
+msgid ""
+"mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on "
+"partititon NUMBER"
+msgstr ""
+"mkfs MINOR FS-TYP          Dateisystem FS-TYP auf Partition MINOR erzeugen."
+
+#: parted/parted.c:2138
+msgid "mkpart"
+msgstr "mkpart"
+
+#: parted/parted.c:2141
+#, fuzzy
+msgid "mkpart PART-TYPE [FS-TYPE] START END     make a partition"
+msgstr "mkpart PART-TYP [FS-TYP] START END    Partition erzeugen."
+
+# XXX to set a partition ID???
+#: parted/parted.c:2147
+#, fuzzy
+msgid ""
+"'mkpart' makes a partition without creating a new file system on the "
+"partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"
+msgstr ""
+"mkpart erzeugt eine Partition ohne ein neues Dateisystem auf der Partition\n"
+"zu erzeugen. FS-TYP kann angegeben werden, um eine geeignete Partitions-ID "
+"zu setzen.\n"
+
+#: parted/parted.c:2152
+msgid "mkpartfs"
+msgstr "mkpartfs"
+
+#: parted/parted.c:2155
+#, fuzzy
+msgid ""
+"mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system"
+msgstr ""
+"mkpartfs PART-TYP FS-TYP START END    Partition mit Dateisystem erzeugen."
+
+#: parted/parted.c:2161
+msgid "move"
+msgstr "move"
+
+#: parted/parted.c:2164
+#, fuzzy
+msgid "move NUMBER START END                    move partition NUMBER"
+msgstr "move MINOR START ENDE      Partition MINOR verschieben."
+
+#: parted/parted.c:2169
+msgid "name"
+msgstr "name"
+
+#: parted/parted.c:2172
+#, fuzzy
+msgid "name NUMBER NAME                         name partition NUMBER as NAME"
+msgstr "name MINOR NAME            Partition MINOR mit NAME benennen."
+
+#: parted/parted.c:2177
+msgid "print"
+msgstr "print"
+
+#: parted/parted.c:2180
+msgid ""
+"print [devices|free|list,all|NUMBER]     display the partition table, "
+"available devices, free space, all found partitions, or a particular "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2185
+msgid ""
+"Without arguments, 'print' displays the entire partition table. However with "
+"the following arguments it performs various other actions.\n"
+msgstr ""
+
+#: parted/parted.c:2187
+msgid "  devices   : display all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2188
+msgid ""
+"  free      : display information about free unpartitioned space on the "
+"current block device\n"
+msgstr ""
+
+#: parted/parted.c:2190
+#, fuzzy
+msgid ""
+"  list, all : display the partition tables of all active block devices\n"
+msgstr "print [MINOR]              Partitionstabelle oder Partition anzeigen."
+
+#: parted/parted.c:2191
+msgid ""
+"  NUMBER    : display more detailed information about this particular "
+"partition\n"
+msgstr ""
+
+#: parted/parted.c:2196
+msgid "quit"
+msgstr "quit"
+
+#: parted/parted.c:2199
+#, fuzzy
+msgid "quit                                     exit program"
+msgstr "quit                       Programm beenden."
+
+#: parted/parted.c:2204
+msgid "rescue"
+msgstr "rescue"
+
+#: parted/parted.c:2207
+#, fuzzy
+msgid ""
+"rescue START END                         rescue a lost partition near START "
+"and END"
+msgstr ""
+"rescue START ENDE     Eine verlorene Partitionen zwischen START und ENDE "
+"retten."
+
+#: parted/parted.c:2213
+msgid "resize"
+msgstr "resize"
+
+#: parted/parted.c:2216
+#, fuzzy
+msgid ""
+"resize NUMBER START END                  resize partition NUMBER and its "
+"file system"
+msgstr ""
+"rescue START ENDE     Eine verlorene Partitionen zwischen START und ENDE "
+"retten."
+
+#: parted/parted.c:2224
+msgid "rm"
+msgstr "rm"
+
+#: parted/parted.c:2227
+#, fuzzy
+msgid "rm NUMBER                                delete partition NUMBER"
+msgstr "rm MINOR                   Partion MINOR löschen."
+
+#: parted/parted.c:2232
+msgid "select"
+msgstr "select"
+
+#: parted/parted.c:2235
+#, fuzzy
+msgid "select DEVICE                            choose the device to edit"
+msgstr "select GERÄT               Wählen Sie ein Gerät zur Bearbeitung."
+
+#: parted/parted.c:2240
+msgid "set"
+msgstr "set"
+
+#: parted/parted.c:2243
+#, fuzzy
+msgid ""
+"set NUMBER FLAG STATE                    change the FLAG on partition NUMBER"
+msgstr "set MINOR FLAG STATE       FLAG auf Partition MINOR ändern."
+
+#: parted/parted.c:2249
+msgid "toggle"
+msgstr ""
+
+#: parted/parted.c:2252
+msgid ""
+"toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+"partition NUMBER"
+msgstr ""
+
+#: parted/parted.c:2258
+#, fuzzy
+msgid "unit"
+msgstr "quit"
+
+#: parted/parted.c:2261
+#, fuzzy
+msgid "unit UNIT                                set the default unit to UNIT"
+msgstr "quit                       Programm beenden."
+
+#: parted/parted.c:2266
+msgid "version"
+msgstr ""
+
+#: parted/parted.c:2269
+msgid ""
+"version                                  display the version number and "
+"copyright information of GNU Parted"
+msgstr ""
+
+#: parted/parted.c:2273
+msgid ""
+"'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"
+msgstr ""
+
+#: parted/parted.c:2335
+#, c-format
+msgid "Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"
+msgstr ""
+
+#: parted/parted.c:2379
+msgid "No device found"
+msgstr "Kein Gerät gefunden."
+
+#: parted/parted.c:2412
+msgid "WARNING: You are not superuser.  Watch out for permissions."
+msgstr ""
+
+#: parted/parted.c:2450
+#, fuzzy
+msgid "You may need to update /etc/fstab.\n"
+msgstr "Vergessen Sie nicht, gegebenenfalls /etc/fstab zu ändern.\n"
+
+#: parted/ui.c:160
+msgid "Welcome to GNU Parted! Type 'help' to view a list of commands.\n"
+msgstr ""
+
+#: parted/ui.c:163
+#, fuzzy
+msgid ""
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run "
+"in\n"
+"interactive mode.\n"
+msgstr ""
+"Aufruf: parted [OPTIONen] [GERÄT [KOMMANDO [PARAMETER...]...]\n"
+"KOMMANDOs mit PARAMETERn für GERÄT ausführen. Wenn keine KOMMANDOs "
+"angegeben \n"
+"sind, interaktiv arbeiten.\n"
+
+#: parted/ui.c:168
+#, c-format
+msgid ""
+"\n"
+"\n"
+"You found a bug in GNU Parted! Here's what you have to do:\n"
+"\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n"
+"\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Please check this version prior to bug reporting.\n"
+"\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"for further information.\n"
+"\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n"
+msgstr ""
+
+#: parted/ui.c:284
+msgid ""
+"\n"
+"Command History:\n"
+msgstr ""
+
+#: parted/ui.c:366
+msgid ""
+"\n"
+"Error: SEGV_MAPERR (Address not mapped to object)\n"
+msgstr ""
+
+#: parted/ui.c:372
+msgid ""
+"\n"
+"Error: SEGV_ACCERR (Invalid permissions for mapped object)\n"
+msgstr ""
+
+#: parted/ui.c:377
+msgid ""
+"\n"
+"Error: A general SIGSEGV signal was encountered.\n"
+msgstr ""
+
+#: parted/ui.c:410
+msgid ""
+"\n"
+"Error: FPE_INTDIV (Integer: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:415
+msgid ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+msgstr ""
+
+#: parted/ui.c:420
+msgid ""
+"\n"
+"Error: FPE_FLTDIV (Float: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:425
+msgid ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+msgstr ""
+
+#: parted/ui.c:430
+msgid ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+msgstr ""
+
+#: parted/ui.c:435
+msgid ""
+"\n"
+"Error: FPE_FLTRES (Float: inexact result)"
+msgstr ""
+
+#: parted/ui.c:440
+msgid ""
+"\n"
+"Error: FPE_FLTINV (Float: invalid operation)"
+msgstr ""
+
+#: parted/ui.c:445
+msgid ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript out of range)"
+msgstr ""
+
+#: parted/ui.c:450
+msgid ""
+"\n"
+"Error: A general SIGFPE signal was encountered."
+msgstr ""
+
+#: parted/ui.c:483
+msgid ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+msgstr ""
+
+#: parted/ui.c:488
+msgid ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+msgstr ""
+
+#: parted/ui.c:493
+msgid ""
+"\n"
+"Error: ILL_ILLADR (Illegal addressing mode)"
+msgstr ""
+
+#: parted/ui.c:498
+msgid ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+msgstr ""
+
+#: parted/ui.c:503
+msgid ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+msgstr ""
+
+#: parted/ui.c:508
+msgid ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+msgstr ""
+
+#: parted/ui.c:513
+msgid ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+msgstr ""
+
+#: parted/ui.c:518
+msgid ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+msgstr ""
+
+#: parted/ui.c:523
+msgid ""
+"\n"
+"Error: A general SIGILL signal was encountered."
+msgstr ""
+
+#: parted/ui.c:1024
+msgid "Expecting a partition number."
+msgstr "Partitionsnummer erwartet."
+
+#: parted/ui.c:1033
+msgid "Partition doesn't exist."
+msgstr "Partition existiert nicht."
+
+#: parted/ui.c:1053
+msgid "Expecting a file system type."
+msgstr "Dateisystemtyp erwartet."
+
+#: parted/ui.c:1060
+#, c-format
+msgid "Unknown file system type \"%s\"."
+msgstr "Unbekannter Dateisystemtyp »%s«."
+
+#: parted/ui.c:1080
+msgid "Expecting a disk label type."
+msgstr "Ein Disklabeltyp wird erwartet."
+
+#: parted/ui.c:1178
+msgid "Can't create any more partitions."
+msgstr "Kann keine weitere Partition erzeugen."
+
+#: parted/ui.c:1188
+msgid "Expecting a partition type."
+msgstr "Partitionstyp erwartet."
+
+#: parted/ui.c:1315
+msgid "on"
+msgstr "on"
+
+#: parted/ui.c:1316
+msgid "off"
+msgstr "off"
+
+#: parted/ui.c:1431
+msgid "OPTIONs:"
+msgstr "OPTIONen:"
+
+#: parted/ui.c:1436
+msgid "COMMANDs:"
+msgstr "KOMMANDOs:"
+
+#: parted/ui.c:1445
+#, c-format
+msgid "Using %s\n"
+msgstr "Verwende %s\n"
+
+#: parted/ui.c:1519
+msgid "This command does not make sense in non-interactive mode.\n"
+msgstr ""
+
+#~ msgid "where necessary, prompts for user intervention"
+#~ msgstr "wenn nötig, bittet um Nutzerintervention"
+
+#, fuzzy
+#~ msgid ""
+#~ "Without arguments, print displays the entire partition table. With "
+#~ "'free'\n"
+#~ "argument, information about free space will be displayed otherwise if a\n"
+#~ "partition number is given, then more detailed information is displayed\n"
+#~ "about that partition. If the 'all' argument is passed instead, partition\n"
+#~ "information for all devices will be displayed.\n"
+#~ msgstr ""
+#~ "Ohne Argumente zeigt print die gesamte Partitionstabelle an. Wenn eine\n"
+#~ "Partitionsnummer angegeben wurde, werden weitere Details über diese\n"
+#~ "Partition angezeigt.\n"
+
+#~ msgid ""
+#~ "The sector size on %s is %d bytes.  Parted is known not to work properly "
+#~ "with drives with sector sizes other than %d bytes"
+#~ msgstr ""
+#~ "Die Sektorgröße von %s ist %d Bytes. Parted kann auf Laufwerken mit "
+#~ "Sektorgrößen verschieden von %d Bytes nicht arbeiten."
+
+#~ msgid "Could not read geometry of %s - %s."
+#~ msgstr "Die Geometrie von %s konnte nicht gelesen werden - %s."
+
+#~ msgid "Device %s has dodgey geometry."
+#~ msgstr "Gerät %s hat eine unglaubwürdige Geometrie."
+
+#~ msgid "IDE"
+#~ msgstr "IDE"
+
+#~ msgid "SCSI"
+#~ msgstr "SCSI"
+
+#~ msgid "Device %s is neither a SCSI nor IDE drive."
+#~ msgstr "Das Gerät %s ist weder ein SCSI- noch ein IDE-Laufwerk."
+
+#~ msgid "Error reading %s (%s) to determine if partition is mounted."
+#~ msgstr ""
+#~ "Fehler beim Lesen von %s (%s) um festzustellen ob die Partition "
+#~ "eingehangen (mounted) ist."
+
+#~ msgid ""
+#~ "Unable to determine if partitions are mounted via /proc/mounts or /etc/"
+#~ "mtab.  Make sure you don't attempt to resize or modify mounted file "
+#~ "systems.  (Even read-only mounted)"
+#~ msgstr ""
+#~ "Es konnte nicht bestimmt werden, ob Partition über /proc/mounts oder /etc/"
+#~ "mtab eingehangen (mounted) werden. Überprüfen Sie, dass Sie nicht "
+#~ "versuchen, ein eingehangenes Dateisystem zu vergrößern oder zu verändern "
+#~ "(selbst wenn es nur zum Lesen eingehangen wurde)."
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  However, the most likely reason is that Linux "
+#~ "detected the BIOS geometry for %s incorrectly.  GNU Parted suspects the "
+#~ "real geometry should be %d/%d/%d (not %d/%d/%d).  You should check with "
+#~ "your BIOS first, as this may not be correct.  You can inform Linux by "
+#~ "adding the parameter %s=%d,%d,%d to the command line.  See the LILO or "
+#~ "GRUB documentation for more information.  If you think Parted's suggested "
+#~ "geometry is correct, you may select Ignore to continue (and fix Linux "
+#~ "later).  Otherwise, select Cancel (and fix Linux and/or the BIOS now)."
+#~ msgstr ""
+#~ "Die Partitionstabelle auf %s ist inkonsistent. Es gibt viele mögliche "
+#~ "Gründe dafür. Der wahrscheinlichste Grund ist, dass Linux die BIOS-"
+#~ "Geometrie für %s falsch erkannt hat. GNU Parted vermutet, dass die wahre "
+#~ "Geometrie %d/%d/%d ist (nicht %d/%d/%d). Sie sollten zunächst Ihr BIOS "
+#~ "überprüfen, da das falsch sein könnte. Sie können Linux durch Angabe des "
+#~ "Parameters %s=%d,%d,%d informieren. Lesen Sie LILO- oder GRUB-"
+#~ "Dokumentation für weitere Informationen. Wenn Sie glauben, Parteds "
+#~ "vorgeschlagene Geometrie ist richtig, wählen Sie Ignore um fortzusetzen "
+#~ "(und Linux später zu korrigieren). Ansonsten wählen Sie Cancel (und "
+#~ "korrigieren Linux und/oder das BIOS jetzt)."
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  Often, the reason is that Linux detected the "
+#~ "BIOS geometry incorrectly.  However, this does not appear to be the case "
+#~ "here.  It is safe to ignore,but ignoring may cause (fixable) problems "
+#~ "with some boot loaders, and may cause problems with FAT file systems.  "
+#~ "Using LBA is recommended."
+#~ msgstr ""
+#~ "Die Partitionstabelle auf %s ist inkonsistent. Es gibt viele Gründe, "
+#~ "warum das der Fall sein könnte. Häufig ist der Grund, dass Linux die BIOS-"
+#~ "Geometry falsch erkannt hat. Das scheint jedoch hier nicht der Fall zu "
+#~ "sein. Man kann das getrost ignorieren; das kann aber (lösbare) Probleme "
+#~ "mit einigen Bootladern bewirken, und kann auf FAT-Dateisystemproblem zu "
+#~ "Problemen führen. Die Verwendung von LBA wird empfohlen."
+
+#~ msgid ""
+#~ "Unable to align partition properly.  This probably means that another "
+#~ "partitioning tool generated an incorrect partition table, because it "
+#~ "didn't have the correct BIOS geometry.  It is safe to ignore,but ignoring "
+#~ "may cause (fixable) problems with some boot loaders."
+#~ msgstr ""
+#~ "Die Partitionstabelle kann nicht korrekt ausgerichtet (aligned) werden. "
+#~ "Das bedeutet vermutlich, dass ein anderes Partitionswerkzeug eine "
+#~ "inkorrekte Partitionstabelle erzeugt hat, weil es nicht die richtige BIOS-"
+#~ "Geometrie kannte. Das kann man getrost ignorieren, Ignorieren kann aber "
+#~ "(lösbare) Probleme mit anderen Bootladern hervorrufen."
+
+#~ msgid "Attempt to read sectors %ld-%ld outside of partition on %s"
+#~ msgstr ""
+#~ "Versuch, die Sektoren %ld-%ld außerhalb der Partition auf %s zu lesen."
+
+#~ msgid ""
+#~ "This ext2 filesystem has a rather strange layout!  Parted can't resize "
+#~ "this (yet)."
+#~ msgstr ""
+#~ "Dieses ext2-Dateisystem hat ein eher seltsames Layout! Parted kann hier "
+#~ "(noch) nichts tun."
+
+#~ msgid "File system has an invalid signature for a FAT file systems."
+#~ msgstr "Dateisystem hat eine ungültige Signature für ein FAT-Dateisystem."
+
+#~ msgid "START and END are in megabytes\n"
+#~ msgstr "START und ENDE sind in Megabytes.\n"
+
+#~ msgid "Partition %s is being used."
+#~ msgstr "Partition %s ist in Verwendung."
+
+#~ msgid ""
+#~ "You requested to create a partition at %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Sie haben die Erzeugung einer Partition bei %.3f-%.3fMb verlangt. Das "
+#~ "Beste, was Parted bieten kann, ist %.3f-%.3fMb."
+
+#~ msgid ""
+#~ "You requested to move the partition to %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Sie haben das Verschieben der Partition zu %.3f-%.3fMb verlangt. Das "
+#~ "Beste, was Parted bieten kann, ist %.3f-%.3fMb."
+
+#~ msgid "Disk geometry for %s: 0.000-%.3f megabytes\n"
+#~ msgstr "Plattengeometrie für %s: 0.000-%.3f Megabytes\n"
+
+#~ msgid "Disk label type: %s\n"
+#~ msgstr "Disk-Label-Typ: %s\n"
+
+#~ msgid "Minor    Start       End     "
+#~ msgstr "Minor    Start       End     "
+
+#~ msgid "Type      "
+#~ msgstr "Type      "
+
+#~ msgid "Filesystem  "
+#~ msgstr "Dateisystem "
+
+#~ msgid "Name                  "
+#~ msgstr "Name                  "
+
+#~ msgid ""
+#~ "You requested to resize the partition to %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Sie haben das Verändern der Partition auf %.3f-%.3fMb verlangt. Das "
+#~ "Beste, was Parted bieten kann, ist %.3f-%.3fMb."
+
+#~ msgid "resize MINOR START END        resize filesystem on partition MINOR"
+#~ msgstr ""
+#~ "resize MINOR START ENDE    Dateisystemgröße auf Partition MINOR ändern."
+
+#~ msgid ""
+#~ "You found a bug in GNU Parted.  Please email a bug report to bug-"
+#~ "parted@gnu.org containing the version (%s), and the following message:\n"
+#~ msgstr ""
+#~ "Sie haben ein Bug in GNU Parted gefunden. Bitte senden Sie einen "
+#~ "Bugreport an bug-parted@gnu.org unter Angabe der Version (%s) und der "
+#~ "folgenden Meldung:\n"
+
+#~ msgid ""
+#~ "  You have Windows FAT partition(s) that are not using LBA.  If your BIOS "
+#~ "supports LBA, then you should switch to LBA by setting the LBA flag on "
+#~ "all FAT partitions.  Otherwise, make sure the operating system and the "
+#~ "BIOS have the same geometry before resizing any FAT partitions."
+#~ msgstr ""
+#~ "  Sie haben Windows FAT-Partition(en), die kein LBA verwenden. Wenn Ihr "
+#~ "BIOS LBA unterstützt, sollten Sie auf LBA umschalten, indem Sie das LBA-"
+#~ "Flag bei allen Partitionen setzen. Anderenfalls stellen Sie sicher, dass "
+#~ "das Betriebssystem und das BIOS die gleiche Geometrie verwenden, bevor "
+#~ "Sie die FAT-Partitionen verändern."
+
+#~ msgid ""
+#~ "The operating system thinks the geometry on %s is %d/%d/%d.  Therefore, "
+#~ "cylinder 1024 ends at %.3fM.%s"
+#~ msgstr ""
+#~ "Das Betriebssystem glaubt, dass die Geometrie auf %s %d/%d/%d ist. "
+#~ "Deshalb endet Zylinder 1024 bei %.3fM.%s"
+
+#~ msgid "The operating system thinks the geometry on %s is %d/%d/%d.%s"
+#~ msgstr "Das Betriebssystem glaubt, die Geometrie auf %s sei %d/%d/%d.%s"
diff --git a/parted-1.8.7/po/en@boldquot.header b/parted-1.8.7/po/en@boldquot.header
new file mode 100644
index 0000000..fedb6a0
--- /dev/null
+++ b/parted-1.8.7/po/en@boldquot.header
@@ -0,0 +1,25 @@
+# All this catalog "translates" are quotation characters.
+# The msgids must be ASCII and therefore cannot contain real quotation
+# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
+# and double quote (0x22). These substitutes look strange; see
+# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
+#
+# This catalog translates grave accent (0x60) and apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019).
+# It also translates pairs of apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019)
+# and pairs of quotation mark (0x22) to
+# left double quotation mark (U+201C) and right double quotation mark (U+201D).
+#
+# When output to an UTF-8 terminal, the quotation characters appear perfectly.
+# When output to an ISO-8859-1 terminal, the single quotation marks are
+# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
+# grave/acute accent (by libiconv), and the double quotation marks are
+# transliterated to 0x22.
+# When output to an ASCII terminal, the single quotation marks are
+# transliterated to apostrophes, and the double quotation marks are
+# transliterated to 0x22.
+#
+# This catalog furthermore displays the text between the quotation marks in
+# bold face, assuming the VT100/XTerm escape sequences.
+#
diff --git a/parted-1.8.7/po/en@quot.header b/parted-1.8.7/po/en@quot.header
new file mode 100644
index 0000000..a9647fc
--- /dev/null
+++ b/parted-1.8.7/po/en@quot.header
@@ -0,0 +1,22 @@
+# All this catalog "translates" are quotation characters.
+# The msgids must be ASCII and therefore cannot contain real quotation
+# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
+# and double quote (0x22). These substitutes look strange; see
+# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
+#
+# This catalog translates grave accent (0x60) and apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019).
+# It also translates pairs of apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019)
+# and pairs of quotation mark (0x22) to
+# left double quotation mark (U+201C) and right double quotation mark (U+201D).
+#
+# When output to an UTF-8 terminal, the quotation characters appear perfectly.
+# When output to an ISO-8859-1 terminal, the single quotation marks are
+# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
+# grave/acute accent (by libiconv), and the double quotation marks are
+# transliterated to 0x22.
+# When output to an ASCII terminal, the single quotation marks are
+# transliterated to apostrophes, and the double quotation marks are
+# transliterated to 0x22.
+#
diff --git a/parted-1.8.7/po/es.gmo b/parted-1.8.7/po/es.gmo
new file mode 100644
index 0000000..be38102
--- /dev/null
+++ b/parted-1.8.7/po/es.gmo
Binary files differ
diff --git a/parted-1.8.7/po/es.po b/parted-1.8.7/po/es.po
new file mode 100644
index 0000000..eddedb9
--- /dev/null
+++ b/parted-1.8.7/po/es.po
@@ -0,0 +1,3396 @@
+# Mensajes en español para GNU parted.
+# Copyright (C) 2002 Free Software Foundation, Inc.
+# Vicente E. Llorens <vllorens@mundofree.com>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU parted 1.6.23\n"
+"Report-Msgid-Bugs-To: bug-parted@gnu.org\n"
+"POT-Creation-Date: 2007-05-09 17:02-0400\n"
+"PO-Revision-Date: 2005-09-18 20:05+0100\n"
+"Last-Translator: Vicente E. Llorens <vllorens@mundofree.com>\n"
+"Language-Team: Spanish <es@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: lib/closeout.c:74
+msgid "write error"
+msgstr ""
+
+#: lib/error.c:125
+#, fuzzy
+msgid "Unknown system error"
+msgstr "Tipo de sistema de ficheros \"%s\" desconocido."
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK).  A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#.
+#. If you don't know what to put here, please see
+#. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr ""
+
+#: lib/regcomp.c:131
+msgid "Success"
+msgstr ""
+
+#: lib/regcomp.c:134
+msgid "No match"
+msgstr ""
+
+#: lib/regcomp.c:137
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regcomp.c:140
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regcomp.c:143
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regcomp.c:146
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regcomp.c:149
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regcomp.c:152
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regcomp.c:155
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regcomp.c:158
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regcomp.c:161
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regcomp.c:164
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regcomp.c:170
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regcomp.c:173
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regcomp.c:176
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regcomp.c:179
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regcomp.c:680
+msgid "No previous regular expression"
+msgstr ""
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr ""
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:66
+msgid "(C)"
+msgstr ""
+
+#: lib/version-etc.c:68
+msgid ""
+"\n"
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:84
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:88
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:92
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:98
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:104
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:110
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:132
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+
+#: lib/xalloc-die.c:35
+msgid "memory exhausted"
+msgstr ""
+
+#: libparted/arch/beos.c:237
+msgid "Disk Image"
+msgstr ""
+
+# o también "al abrir"
+#: libparted/arch/beos.c:338 libparted/arch/gnu.c:261
+#: libparted/arch/linux.c:1272
+#, c-format
+msgid "Error opening %s: %s"
+msgstr "Error al abrir %s: %s"
+
+#: libparted/arch/beos.c:349 libparted/arch/gnu.c:271
+#: libparted/arch/linux.c:1283
+#, c-format
+msgid "Unable to open %s read-write (%s).  %s has been opened read-only."
+msgstr ""
+"No se puede abrir %s en modo lectura-escritura (%s). %s ha sido abierto en "
+"modo de sólo lectura."
+
+#: libparted/arch/beos.c:411 libparted/arch/linux.c:1431
+#, c-format
+msgid "%s during seek for read on %s"
+msgstr "%s durante la preparación para lectura en %s"
+
+#: libparted/arch/beos.c:444 libparted/arch/gnu.c:449 libparted/arch/gnu.c:548
+#: libparted/arch/gnu.c:676 libparted/arch/linux.c:1391
+#: libparted/arch/linux.c:1469
+#, c-format
+msgid "%s during read on %s"
+msgstr "%s durante la lectura en %s"
+
+# para sólo lectura.
+#: libparted/arch/beos.c:480 libparted/arch/gnu.c:509
+#: libparted/arch/linux.c:1546
+#, c-format
+msgid "Can't write to %s, because it is opened read-only."
+msgstr "No se puede escribir en %s, porque está abierto para sólo lectura."
+
+#: libparted/arch/beos.c:496 libparted/arch/linux.c:1570
+#, c-format
+msgid "%s during seek for write on %s"
+msgstr "%s durante la preparación para escribir en %s"
+
+#: libparted/arch/beos.c:533 libparted/arch/gnu.c:585 libparted/arch/gnu.c:630
+#: libparted/arch/gnu.c:707 libparted/arch/linux.c:1517
+#: libparted/arch/linux.c:1612 libparted/arch/linux.c:1684
+#, c-format
+msgid "%s during write on %s"
+msgstr "%s durante la escritura en %s"
+
+#: debug/clearfat/clearfat.c:63 partprobe/partprobe.c:137
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:67
+#, c-format
+msgid ""
+"Usage: %s [OPTION]\n"
+"  or:  %s DEVICE MINOR\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:70
+msgid ""
+"Clear unused space on a FAT partition (a GNU Parted testing tool).\n"
+"\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:74
+msgid "      --help     display this help and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:75
+msgid "      --version  output version information and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:77 partprobe/partprobe.c:154
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:285
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:290
+#, fuzzy, c-format
+msgid "too many arguments"
+msgstr "Demasiadas páginas incorrectas."
+
+#: partprobe/partprobe.c:141
+#, c-format
+msgid "Usage: %s [OPTION] [DEVICE]...\n"
+msgstr ""
+
+#: partprobe/partprobe.c:142
+msgid ""
+"Inform the OS of partition table changes.\n"
+"\n"
+"  -d, --no-update  don't update the kernel\n"
+"  -s, --summary    print a summary of contents\n"
+"  -h, --help       display this help and exit\n"
+"  -v, --version    output version information and exit\n"
+msgstr ""
+
+#: partprobe/partprobe.c:150
+msgid ""
+"\n"
+"With no DEVICE, probe all partitions.\n"
+msgstr ""
+
+#: libparted/arch/gnu.c:94
+#, c-format
+msgid "Unable to open %s."
+msgstr "No se puede abrir %s."
+
+# Unable to -> No se puede.
+#: libparted/arch/gnu.c:114
+msgid "Unable to probe store."
+msgstr "No se puede probar el guardar."
+
+# cargador "de" aranque (no del)
+#: libparted/arch/gnu.c:352
+msgid ""
+"The partition table cannot be re-read.  This means you need to reboot before "
+"mounting any modified partitions.  You also need to reinstall your boot "
+"loader before you reboot (which may require mounting modified partitions).  "
+"It is impossible do both things!  So you'll need to boot off a rescue disk, "
+"and reinstall your boot loader from the rescue disk.  Read section 4 of the "
+"Parted User documentation for more information."
+msgstr ""
+"No se pudo releer la tabla de particiones, por lo tanto es necesario "
+"reiniciar antes de montar alguna partición modificada.  ¡También necesita "
+"reinstalar su cargador de arranque antes de reiniciar (que puede requerir "
+"montar las particiones modificadas).  ¡Es imposible hacer ambas cosas!  Así "
+"que necesitará arrancar con un disco de rescate y reinstalar su cargador de "
+"arranque desde el disco de rescate.  Lea la sección 4 de la documentación "
+"del Usuario de Parted para obtener más información."
+
+#: libparted/arch/gnu.c:369
+#, c-format
+msgid ""
+"The partition table on %s cannot be re-read (%s).  This means the Hurd knows "
+"nothing about any modifications you made.  You should reboot your computer "
+"before doing anything with %s."
+msgstr ""
+"La tabla de particiones en %s no puede ser releida(%s).  Esto significa que "
+"Hurd (o Linux) no reconocerá las modificaciones que hizo.  Debe reiniciar su "
+"computadora antes de hacer nada con %s."
+
+# boot loader -> cargador de arranque.
+#: libparted/arch/gnu.c:380 parted/parted.c:2443
+msgid ""
+"You should reinstall your boot loader before rebooting.  Read section 4 of "
+"the Parted User documentation for more information."
+msgstr ""
+"Debe reinstalar su cargador de arranque antes de reiniciar.  Lea la sección "
+"4 de la documentación del Usuario de Parted para obtener más información."
+
+#: libparted/arch/gnu.c:772
+#, c-format
+msgid "%s trying to sync %s to disk"
+msgstr "%s intentando sincronizar %s al disco"
+
+#: libparted/arch/linux.c:408
+#, c-format
+msgid "Could not stat device %s - %s."
+msgstr "No se puede hacer `stat' sobre el dispositivo %s - %s."
+
+#: libparted/arch/linux.c:523
+#, c-format
+msgid ""
+"Could not determine sector size for %s: %s.\n"
+"Using the default sector size (%lld)."
+msgstr ""
+
+#: libparted/arch/linux.c:539
+#, c-format
+msgid ""
+"Device %s has a logical sector size of %lld.  Not all parts of GNU Parted "
+"support this at the moment, and the working code is HIGHLY EXPERIMENTAL.\n"
+msgstr ""
+
+#: libparted/arch/linux.c:579
+#, c-format
+msgid "Unable to determine the size of %s (%s)."
+msgstr "No se puede determinar el tamaño de %s (%s)."
+
+#: libparted/arch/linux.c:668
+#, c-format
+msgid "Could not get identity of device %s - %s"
+msgstr "No se puede obtener la identidad del dispositivo %s - %s"
+
+#: libparted/arch/linux.c:677
+msgid "Generic IDE"
+msgstr ""
+
+#: libparted/arch/linux.c:698
+#, c-format
+msgid ""
+"Device %s has multiple (%d) logical sectors per physical sector.\n"
+"GNU Parted supports this EXPERIMENTALLY for some special disk label/file "
+"system combinations, e.g. GPT and ext2/3.\n"
+"Please consult the web site for up-to-date information."
+msgstr ""
+
+#: libparted/arch/linux.c:873
+#, c-format
+msgid "Error initialising SCSI device %s - %s"
+msgstr "Error iniciando el dispositivo SCSI %s - %s"
+
+#: libparted/arch/linux.c:928
+#, c-format
+msgid ""
+"The device %s has zero length, and can't possibly store a file system or "
+"partition table.  Perhaps you selected the wrong device?"
+msgstr ""
+
+# el Parted -> Parted. No se suelen poner artículos a los nombres de
+# los programas. queda un poco despectivo
+#: libparted/arch/linux.c:1032
+#, fuzzy, c-format
+msgid ""
+"Unable to determine geometry of file/device %s.  You should not use Parted "
+"unless you REALLY know what you're doing!"
+msgstr ""
+"No se puede determinar la geometría del fichero/dispositivo.  ¡No debería "
+"utilizar Parted a no ser que REALMENTE sepa lo que está haciendo!"
+
+#: libparted/arch/linux.c:1110
+msgid "DAC960 RAID controller"
+msgstr "Controladora RAID DAC960"
+
+#: libparted/arch/linux.c:1115
+msgid "Promise SX8 SATA Device"
+msgstr ""
+
+#: libparted/arch/linux.c:1120
+msgid "IBM S390 DASD drive"
+msgstr ""
+
+#: libparted/arch/linux.c:1125
+msgid "IBM iSeries Virtual DASD"
+msgstr ""
+
+# de Compaq
+#: libparted/arch/linux.c:1130
+msgid "Compaq Smart Array"
+msgstr "Estructura Smart de Compaq"
+
+#: libparted/arch/linux.c:1135
+msgid "ATARAID Controller"
+msgstr "Controladora ATARAID"
+
+#: libparted/arch/linux.c:1140
+msgid "I2O Controller"
+msgstr "Controladora I20"
+
+#: libparted/arch/linux.c:1145
+msgid "User-Mode Linux UBD"
+msgstr ""
+
+#: libparted/arch/linux.c:1156
+msgid "Linux device-mapper"
+msgstr ""
+
+# ¿Qué, exactamente, es desconocido? ¿No será desconocida?
+#: libparted/arch/linux.c:1162
+msgid "Unknown"
+msgstr "Desconocida"
+
+#: libparted/arch/linux.c:1169
+msgid "ped_device_new()  Unsupported device type"
+msgstr "ped_device_new()  Tipo de dispositivo no soportado"
+
+# informing the kernel -> al informar al núcleo
+# in any way -> de ninguna forma
+#: libparted/arch/linux.c:2083
+#, c-format
+msgid ""
+"Error informing the kernel about modifications to partition %s -- %s.  This "
+"means Linux won't know about any changes you made to %s until you reboot -- "
+"so you shouldn't mount it or use it in any way before rebooting."
+msgstr ""
+"Error al informar el núcleo sobre las modificaciones en la partición %s -- %"
+"s.  Esto significa que Linux no reconocerá ningún cambio que haya hecho en %"
+"s hasta que lo reinicie -- por lo tanto no puede montarla o utilizarla antes "
+"de reiniciarla."
+
+#: libparted/arch/linux.c:2262
+#, fuzzy, c-format
+msgid ""
+"parted was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made. "
+msgstr ""
+"El núcleo no pudo releer la tabla de particiones en %s (%s).  Esto significa "
+"que Linux no reconocerá las modificaciones que hizo.  Debe reiniciarlo antes "
+"de hacer cualquier uso con %s."
+
+#: libparted/arch/linux.c:2368
+#, c-format
+msgid ""
+"The kernel was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made until you "
+"reboot.  You should reboot your computer before doing anything with %s."
+msgstr ""
+"El núcleo no pudo releer la tabla de particiones en %s (%s).  Esto significa "
+"que Linux no reconocerá las modificaciones que hizo.  Debe reiniciarlo antes "
+"de hacer cualquier uso con %s."
+
+#: libparted/cs/geom.c:162
+msgid "Can't have the end before the start!"
+msgstr "¡No se puede tener el final de la partición antes del inicio!"
+
+#: libparted/cs/geom.c:169
+msgid "Can't have a partition outside the disk!"
+msgstr "¡No se puede hacer una partición fuera del disco!"
+
+#: libparted/cs/geom.c:366
+#, c-format
+msgid "Attempt to write sectors %ld-%ld outside of partition on %s."
+msgstr ""
+"Se intentaron escribir los sectores %ld-%ld fuera de la partición en %s."
+
+#: libparted/cs/geom.c:406 libparted/fs/linux_swap/linux_swap.c:475
+msgid "checking for bad blocks"
+msgstr "comprobando bloques erroneos"
+
+#: libparted/debug.c:102
+#, c-format
+msgid "Backtrace has %d calls on stack:\n"
+msgstr ""
+
+#: libparted/debug.c:114
+#, c-format
+msgid "Assertion (%s) at %s:%d in function %s() failed."
+msgstr ""
+
+#: libparted/disk.c:203
+#, c-format
+msgid "Unable to open %s - unrecognised disk label."
+msgstr "No se puede abrir %s - etiqueta de disco desconocida."
+
+# para sólo lectura.
+#: libparted/disk.c:471
+#, c-format
+msgid ""
+"This libparted doesn't have write support for %s.  Perhaps it was compiled "
+"read-only."
+msgstr ""
+"Esta libparted no tiene soporte para escritura en %s.  Quizás fue compilada "
+"para sólo lectura."
+
+#: libparted/disk.c:598
+#, c-format
+msgid "Partition %d is %s, but the file system is %s."
+msgstr "La partición %d es %s, pero el sistema de ficheros es de %s."
+
+#: libparted/disk.c:1075
+#, c-format
+msgid "%s disk labels do not support extended partitions."
+msgstr "Las etiquetas de disco de %s no soportan particiones extendidas."
+
+#: libparted/disk.c:1634
+#, c-format
+msgid "%s disk labels don't support logical or extended partitions."
+msgstr ""
+"Las etiquetas de disco %s no soportan particiones extendidas o lógicas."
+
+#: libparted/disk.c:1647
+msgid "Too many primary partitions."
+msgstr "Demasiadas particiones primarias."
+
+#: libparted/disk.c:1656
+#, c-format
+msgid ""
+"Can't add a logical partition to %s, because there is no extended partition."
+msgstr ""
+"No se puede añadir una partición lógica en %s, porque no hay una partición "
+"extendida."
+
+#: libparted/disk.c:1680
+#, c-format
+msgid "Can't have more than one extended partition on %s."
+msgstr "No se puede tener más de una partición extendida en %s."
+
+#: libparted/disk.c:1690
+msgid "Can't have logical partitions outside of the extended partition."
+msgstr ""
+"No se puede tener una partición lógica fuera de la partición extendida."
+
+#: libparted/disk.c:1715
+#, c-format
+msgid "Can't have a logical partition outside of the extended partition on %s."
+msgstr ""
+"No se puede tener una partición lógica fuera de la partición extendida en %s."
+
+#: libparted/disk.c:1725 libparted/disk.c:1779 libparted/disk.c:1945
+msgid "Can't have overlapping partitions."
+msgstr "No se puede tener particiones superpuestas."
+
+#: libparted/disk.c:1733
+msgid "Can't have a primary partition inside an extended partition."
+msgstr ""
+"No se puede tener una partición primaria dentro de una partición extendida."
+
+#: libparted/disk.c:2140
+msgid "metadata"
+msgstr "metadata"
+
+#: libparted/disk.c:2142
+msgid "free"
+msgstr "libre"
+
+#: libparted/disk.c:2144 parted/ui.c:1169 parted/ui.c:1197
+msgid "extended"
+msgstr "extendida"
+
+#: libparted/disk.c:2146 parted/ui.c:1173 parted/ui.c:1201
+msgid "logical"
+msgstr "lógica"
+
+#: libparted/disk.c:2148 parted/ui.c:1165 parted/ui.c:1193
+msgid "primary"
+msgstr "primaria"
+
+#: libparted/disk.c:2164
+msgid "boot"
+msgstr "arranque"
+
+#: libparted/disk.c:2166
+msgid "root"
+msgstr "raíz"
+
+#: libparted/disk.c:2168
+msgid "swap"
+msgstr "swap"
+
+#: libparted/disk.c:2170
+msgid "hidden"
+msgstr "oculta"
+
+#: libparted/disk.c:2172
+msgid "raid"
+msgstr "raid"
+
+#: libparted/disk.c:2174
+msgid "lvm"
+msgstr "lvm"
+
+#: libparted/disk.c:2176
+msgid "lba"
+msgstr "lba"
+
+#: libparted/disk.c:2178
+msgid "hp-service"
+msgstr "utilidad-hp"
+
+#: libparted/disk.c:2180
+msgid "palo"
+msgstr "palo"
+
+#: libparted/disk.c:2182
+msgid "prep"
+msgstr "prep"
+
+#: libparted/disk.c:2184
+msgid "msftres"
+msgstr ""
+
+#: libparted/disk.c:2190
+#, c-format
+msgid "Unknown partition flag, %d."
+msgstr "Modificador de particiones desconocido, %d."
+
+#: libparted/exception.c:78
+msgid "Information"
+msgstr "Información"
+
+#: libparted/exception.c:79
+msgid "Warning"
+msgstr "Aviso"
+
+#: libparted/exception.c:80
+msgid "Error"
+msgstr "Error"
+
+#: libparted/exception.c:81
+msgid "Fatal"
+msgstr "Fatal"
+
+#: libparted/exception.c:82
+msgid "Bug"
+msgstr "Bicho"
+
+#: libparted/exception.c:83
+msgid "No Implementation"
+msgstr "Sin Implementación"
+
+#: libparted/exception.c:87
+msgid "Fix"
+msgstr "Arreglar"
+
+#: libparted/exception.c:88
+msgid "Yes"
+msgstr "Sí"
+
+#: libparted/exception.c:89
+msgid "No"
+msgstr "No"
+
+#: libparted/exception.c:90
+msgid "OK"
+msgstr "De acuerdo"
+
+#: libparted/exception.c:91
+msgid "Retry"
+msgstr "Reintentar"
+
+#: libparted/exception.c:92
+msgid "Ignore"
+msgstr "Descartar"
+
+#: libparted/exception.c:93
+msgid "Cancel"
+msgstr "Cancelar"
+
+# bicho :-)
+#: libparted/exception.c:133
+#, fuzzy, c-format
+msgid ""
+"A bug has been detected in GNU Parted.  Refer to the web site of parted "
+"http://www.gnu.org/software/parted/parted.html for more informations of what "
+"could be useful for bug submitting!  Please email a bug report to bug-"
+"parted@gnu.org containing at least the version (%s) and the following "
+"message:  "
+msgstr ""
+"Si detectó un bicho en GNU parted. Por favor, envíe un informe del bicho a "
+"bug-parted@gnu.org conteniendo la versión (%s) y el mensaje siguiente:"
+
+#: libparted/filesys.c:384
+msgid "Could not detect file system."
+msgstr "No se puede detectar el sistema de ficheros."
+
+#: libparted/filesys.c:395
+msgid "The file system is bigger than its volume!"
+msgstr "¡El sistema de ficheros es más grande que su volumen!"
+
+#: libparted/filesys.c:403
+#, c-format
+msgid "Support for opening %s file systems is not implemented yet."
+msgstr ""
+"El soporte para abrir el sistema de ficheros %s aún no está implementado."
+
+#: libparted/filesys.c:445
+#, c-format
+msgid "Support for creating %s file systems is not implemented yet."
+msgstr ""
+"El soporte para crear el sistema de ficheros %s aún no está implementado."
+
+#: libparted/filesys.c:505
+#, c-format
+msgid "Support for checking %s file systems is not implemented yet."
+msgstr ""
+"El soporte para comprobar el sistema de ficheros %s aún no está implementado."
+
+#: libparted/filesys.c:571
+msgid "raw block copying"
+msgstr "copiando los bloque en bruto"
+
+#: libparted/filesys.c:582
+msgid "growing file system"
+msgstr "sistema de ficheros creciendo"
+
+#: libparted/filesys.c:622
+msgid "Can't copy onto an overlapping partition."
+msgstr "No se puede copiar sobre una partición superpuesta."
+
+#: libparted/filesys.c:644
+#, c-format
+msgid ""
+"Direct support for copying file systems is not yet implemented for %s.  "
+"However, support for resizing is implemented.  Therefore, the file system "
+"can be copied if the new partition is at least as big as the old one.  So, "
+"either shrink the partition you are trying to copy, or copy to a bigger "
+"partition."
+msgstr ""
+"El soporte directo para copiar sistemas de ficheros aún no está implementado "
+"para %s.  Sin embargo, el soporte para redimensionar está implementado.  Por "
+"lo tanto, el sistema de ficheros se puede copiar si la nueva partición es "
+"por lo menos tan grande como la vieja. Así, o reduce la partición que está "
+"intentando copiar o copie en una partición más grande."
+
+#: libparted/filesys.c:658
+#, c-format
+msgid "Support for copying %s file systems is not implemented yet."
+msgstr ""
+"El soporte para copiar el sistema de ficheros %s aún no está implementado."
+
+#: libparted/filesys.c:696
+#, c-format
+msgid "Support for resizing %s file systems is not implemented yet."
+msgstr ""
+"El soporte para redimensionar el sistema de ficheros %s aún no está "
+"implementado."
+
+#: libparted/fs/reiserfs/reiserfs.c:315
+msgid "creating"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:402
+#, fuzzy
+msgid "The file system is in an invalid state.  Perhaps it is mounted?"
+msgstr "¡El sistema de ficheros es más grande que su volumen!"
+
+#: libparted/fs/reiserfs/reiserfs.c:410
+msgid "The file system is in old (unresizeable) format."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:416
+msgid "Invalid free blocks count.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:431
+#, fuzzy
+msgid "checking"
+msgstr "comprobar"
+
+#: libparted/fs/reiserfs/reiserfs.c:437
+msgid "Reiserfs tree seems to be corrupted.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:449
+#, fuzzy
+msgid ""
+"The reiserfs file system passed a basic check.  For a more comprehensive "
+"check, run reiserfsck --check."
+msgstr ""
+"El sistema de ficheros ext2 pasó una comprobación básica. Para una "
+"comprobación más a fondo, utilize el programa e2fsck."
+
+#: libparted/fs/reiserfs/reiserfs.c:474
+#, fuzzy
+msgid "Sorry, can't move the start of reiserfs partitions yet."
+msgstr "¡Disculpe, aún no se puede mover el principio de las particiones ext2!"
+
+#: libparted/fs/reiserfs/reiserfs.c:490
+msgid "Couldn't reopen device abstraction layer for read/write."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:508 libparted/fs/ext2/ext2_resize.c:552
+#: libparted/fs/hfs/hfs.c:250 libparted/fs/hfs/hfs.c:629
+msgid "shrinking"
+msgstr "contrayendo"
+
+#: libparted/fs/reiserfs/reiserfs.c:520
+#, fuzzy
+msgid "expanding"
+msgstr "Aviso"
+
+#: libparted/fs/reiserfs/reiserfs.c:592
+msgid "Couldn't create reiserfs device abstraction handler."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:606
+#, fuzzy, c-format
+msgid "Device is too small for %lu blocks."
+msgstr "Sistema de ficheros demasiado pequeño para ext2."
+
+#: libparted/fs/reiserfs/reiserfs.c:615
+msgid "copying"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:682
+#, c-format
+msgid "Couldn't resolve symbol %s.  Error: %s."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:704
+msgid "GNU Parted found an invalid libreiserfs library."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:715
+#, c-format
+msgid ""
+"GNU Parted has detected libreiserfs interface version mismatch.  Found %d-%"
+"d, required %d. ReiserFS support will be disabled."
+msgstr ""
+
+#: libparted/labels/aix.c:137
+#, fuzzy
+msgid "Support for reading AIX disk labels is is not implemented yet."
+msgstr ""
+"El soporte para crear el sistema de ficheros %s aún no está implementado."
+
+#: libparted/labels/aix.c:148
+#, fuzzy
+msgid "Support for writing AIX disk labels is is not implemented yet."
+msgstr ""
+"El soporte para crear el sistema de ficheros %s aún no está implementado."
+
+#: libparted/labels/aix.c:161
+#, fuzzy
+msgid ""
+"Support for adding partitions to AIX disk labels is not implemented yet."
+msgstr ""
+"El soporte para crear el sistema de ficheros %s aún no está implementado."
+
+#: libparted/labels/aix.c:171
+#, fuzzy
+msgid ""
+"Support for duplicating partitions in AIX disk labels is not implemented yet."
+msgstr ""
+"El soporte para crear el sistema de ficheros %s aún no está implementado."
+
+#: libparted/labels/aix.c:189
+#, fuzzy
+msgid ""
+"Support for setting system type of partitions in AIX disk labels is not "
+"implemented yet."
+msgstr ""
+"El soporte para crear el sistema de ficheros %s aún no está implementado."
+
+#: libparted/labels/aix.c:199
+#, fuzzy
+msgid "Support for setting flags in AIX disk labels is not implemented yet."
+msgstr ""
+"El soporte para crear el sistema de ficheros %s aún no está implementado."
+
+# No se pueden, con N.
+# no pongas dos espacios seguidos
+#: libparted/labels/bsd.c:501 libparted/labels/dasd.c:755
+#: libparted/labels/dos.c:1974 libparted/labels/dvh.c:770
+#: libparted/labels/gpt.c:1448 libparted/labels/loop.c:248
+#: libparted/labels/mac.c:1408 libparted/labels/pc98.c:759
+#: libparted/labels/rdb.c:1041 libparted/labels/sun.c:705
+msgid "Unable to satisfy all constraints on the partition."
+msgstr "No se pueden satisfacer todas las restricciones en la partición."
+
+#: libparted/labels/bsd.c:526
+msgid "Unable to allocate a bsd disklabel slot."
+msgstr "No se puede asignar una ranura de la etiqueta de disco bsd"
+
+#: libparted/labels/dasd.c:166
+#, fuzzy
+msgid "Unable to determine the block size of this dasd"
+msgstr "No se puede determinar el tamaño de %s (%s)."
+
+#: libparted/labels/dasd.c:781
+#, fuzzy
+msgid "Unable to allocate a dasd disklabel slot"
+msgstr "No se puede asignar una ranura de la etiqueta de disco bsd"
+
+# te doy permiso para poner inválida
+#: libparted/labels/dos.c:827
+#, c-format
+msgid "Invalid partition table on %s -- wrong signature %x."
+msgstr "Tabla de particiones inválida en %s -- firma errónea %x."
+
+#: libparted/labels/dos.c:855
+#, c-format
+msgid "Invalid partition table - recursive partition on %s."
+msgstr "Tabla de particiones inválida - partición recursiva en %s."
+
+#: libparted/labels/dos.c:1318
+msgid "Extended partitions cannot be hidden on msdos disk labels."
+msgstr ""
+"No pueden esconderse particiones extendidas en etiquetas de disco msdos."
+
+#: libparted/labels/dos.c:1958
+msgid "Parted can't resize partitions managed by Windows Dynamic Disk."
+msgstr ""
+"Parted no puede redimensionar particiones manejadas por Windows Dynamic Disk."
+
+# to ignore no es ignorar, es descartar, pasar por alto, hacer la vista
+# gorda, etc.  ingorar es no saber, y eso se dice "not to know".
+# La segunda acepción de ignorar (según el diccionario) también es pasar
+# por alto. vll
+# volumenes -> volúmenes
+#: libparted/labels/dvh.c:190
+#, fuzzy, c-format
+msgid "%s has no extended partition (volume header partition)."
+msgstr ""
+"%s no tiene partición extendida (partición de cabecera de volumen).  Si lo "
+"descarta, todos volúmenes de arranque serán borrados."
+
+# suma de comprobación
+#: libparted/labels/dvh.c:313
+msgid "Checksum is wrong, indicating the partition table is corrupt."
+msgstr ""
+"La suma de comprobación es incorrecta, lo cual indica que la tabla de "
+"particiones está corrupta."
+
+#: libparted/labels/dvh.c:616
+msgid "Only primary partitions can be root partitions."
+msgstr "Sólo las particiones primarias pueden ser particiones raíz."
+
+#: libparted/labels/dvh.c:630
+msgid "Only primary partitions can be swap partitions."
+msgstr "Sólo las particiones primarias pueden ser particiones de intercambio."
+
+#: libparted/labels/dvh.c:644
+msgid "Only logical partitions can be a boot file."
+msgstr "Sólo las particiones lógicas pueden ser un fichero de arranque."
+
+#: libparted/labels/dvh.c:721
+msgid "Only logical partitions (boot files) have a name."
+msgstr "Sólo las particiones lógicas (ficheros de arranque) tienen un nombre."
+
+#: libparted/labels/dvh.c:812
+msgid "Too many primary partitions"
+msgstr "Demasiadas particiones primarias"
+
+#: libparted/labels/fdasd.c:103
+#, c-format
+msgid ""
+"%s open error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:107
+#, c-format
+msgid ""
+"%s seek error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:110
+#, c-format
+msgid ""
+"%s read error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:113
+#, fuzzy, c-format
+msgid ""
+"%s write error\n"
+"%s\n"
+msgstr "%s durante la escritura en %s"
+
+#: libparted/labels/fdasd.c:116
+#, c-format
+msgid ""
+"%s IOCTL error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:119
+#, c-format
+msgid ""
+"%s API version mismatch\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:122
+#, c-format
+msgid ""
+"%s Unsupported disk type\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:126
+#, c-format
+msgid ""
+"%s Unsupported disk format\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:130
+#, fuzzy, c-format
+msgid ""
+"%s Disk in use\n"
+"%s\n"
+msgstr "%s  %s  %s"
+
+#: libparted/labels/fdasd.c:133
+#, c-format
+msgid ""
+"%s Config file syntax error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:137
+#, c-format
+msgid ""
+"%s Volume label is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:141
+#, c-format
+msgid ""
+"%s a data set name is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:145
+#, c-format
+msgid ""
+"%s space allocation\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:149
+#, c-format
+msgid ""
+"%s device verification failed\n"
+"The specified device is not a valid DASD device\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:154
+#, c-format
+msgid ""
+"%s Fatal error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/gpt.c:454
+#, c-format
+msgid ""
+"%s contains GPT signatures, indicating that it has a GPT table.  However, it "
+"does not have a valid fake msdos partition table, as it should.  Perhaps it "
+"was corrupted -- possibly by a program that doesn't understand GPT partition "
+"tables.  Or perhaps you deleted the GPT table, and are now using an msdos "
+"partition table.  Is this a GPT partition table?"
+msgstr ""
+"%s contiene firmas GPT, lo cual indica que tiene una tabla GPT.  No "
+"obstante, no tiene una tabla de particiones msdos de imitación válida, como "
+"habría de ser.  Quizás esta corrupta -- posiblemente por un programa que no "
+"es capaz de enterder las tablas de partición GPT.  O quizás borró la tabla "
+"GPT y ahora está usando una tabla de particiones msdos.  ¿Es esta una tabla "
+"de partición GPT?"
+
+#: libparted/labels/gpt.c:648
+#, c-format
+msgid ""
+"The format of the GPT partition table is version %x, which is newer than "
+"what Parted can recognise.  Please tell us!  bug-parted@gnu.org"
+msgstr ""
+"El formato de la tabla de particiones GPT es la versión %x, el cual es más "
+"nuevo que lo que Parted puede reconocer.  Por favor, díganoslo a bug-"
+"parted@gnu.org"
+
+#: libparted/labels/gpt.c:698
+#, c-format
+msgid ""
+"Not all of the space available to %s appears to be used, you can fix the GPT "
+"to use all of the space (an extra %llu blocks) or continue with the current "
+"setting? "
+msgstr ""
+
+#: libparted/labels/gpt.c:827
+msgid ""
+"The backup GPT table is not at the end of the disk, as it should be.  This "
+"might mean that another operating system believes the disk is smaller.  Fix, "
+"by moving the backup to the end (and removing the old backup)?"
+msgstr ""
+"La copia de la tabla GPT no está al final disco, como debería ser.  Esto "
+"quiere decir que otro sistema operativo cree que el disco es más pequeño.  "
+"¿Lo quiere arreglar moviendo la copia al final (y borrando la copia vieja)?"
+
+#: libparted/labels/gpt.c:862
+msgid ""
+"The primary GPT table is corrupt, but the backup appears OK, so that will be "
+"used."
+msgstr ""
+"La tabla primaria GPT está corrupta, pero la copia de respaldo parece "
+"correcta, por lo tanto se usará esta."
+
+#: libparted/labels/gpt.c:870
+msgid ""
+"Both the primary and backup GPT tables are corrupt.  Try making a fresh "
+"table, and using Parted's rescue feature to recover partitions."
+msgstr ""
+"La tabla primaria y la copia de respaldo GPT están corruptas.  Intente crear "
+"una tabla actualizada, y utilice la opción de rescate de Parted para "
+"reconstruir las particiones."
+
+#: libparted/labels/mac.c:181
+#, c-format
+msgid "Invalid signature %x for Mac disk labels."
+msgstr "Firma inválida %x para etiquetas de discos Mac."
+
+# Map es asignación o tabla. Mapa es un barbarismo.
+#: libparted/labels/mac.c:226
+msgid "Partition map has no partition map entry!"
+msgstr ""
+"¡La tabla de particiones no tiene una entrada de la tabla de particiones!"
+
+#: libparted/labels/mac.c:273
+#, c-format
+msgid "%s is too small for a Mac disk label!"
+msgstr "¡%s es demasiado pequeño para una etiqueta de disco Mac!"
+
+#: libparted/labels/mac.c:532
+#, c-format
+msgid "Partition %d has an invalid signature %x."
+msgstr "La partición %d tiene una firma inválida %x."
+
+#: libparted/labels/mac.c:550
+#, c-format
+msgid "Partition %d has an invalid length of 0 bytes!"
+msgstr "¡La partición %d tiene una longitud inválida de 0 bytes!"
+
+#: libparted/labels/mac.c:580
+msgid "The data region doesn't start at the start of the partition."
+msgstr "La región de datos no empieza al principio de la partición."
+
+#: libparted/labels/mac.c:597
+msgid "The boot region doesn't start at the start of the partition."
+msgstr "La región de arranque no empieza al principio de la partición."
+
+#: libparted/labels/mac.c:611
+msgid "The partition's boot region doesn't occupy the entire partition."
+msgstr "La región de arranque de la partición no ocupa toda la partición."
+
+#: libparted/labels/mac.c:622
+msgid "The partition's data region doesn't occupy the entire partition."
+msgstr "La región de datos de la partición no ocupa toda la partición."
+
+#: libparted/labels/mac.c:675
+#, c-format
+msgid ""
+"Weird block size on device descriptor: %d bytes is not divisible by 512."
+msgstr ""
+"Tamaño de bloque extraño en el descriptor del dispositivo: %d bytes no es "
+"divisible por 512."
+
+#: libparted/labels/mac.c:688
+#, c-format
+msgid ""
+"The driver descriptor says the physical block size is %d bytes, but Linux "
+"says it is %d bytes."
+msgstr ""
+"El descriptor del controlador dice que el tamaño del bloque físico es de %d "
+"bytes, pero Linux dice que es de %d bytes."
+
+#: libparted/labels/mac.c:736
+msgid "No valid partition map found."
+msgstr "Se encontró una tabla de particiones inválida."
+
+#: libparted/labels/mac.c:795
+#, c-format
+msgid ""
+"Conflicting partition map entry sizes!  Entry 1 says it is %d, but entry %d "
+"says it is %d!"
+msgstr ""
+"¡Conflicto en el tamaño de la entrada de la tabla de particiones! ¡La "
+"entrada 1 dice que es %d, pero la entrada %d dice que es %d!"
+
+#: libparted/labels/mac.c:822
+msgid "Weird!  There are 2 partitions map entries!"
+msgstr "¡Extraño!  ¡Hay 2 entradas de tabla de particiones!"
+
+#: libparted/labels/mac.c:1347
+msgid ""
+"Changing the name of a root or swap partition will prevent Linux from "
+"recognising it as such."
+msgstr ""
+"Cambiando el nombre de una partición raíz o de intercambio impedirán a Linux "
+"de reconocela como tal."
+
+#: libparted/labels/mac.c:1443
+msgid "Can't add another partition -- the partition map is too small!"
+msgstr ""
+"¡No se puede añadir otra partición -- la tabla de las particiones es "
+"demasiado pequeña!"
+
+#: libparted/labels/pc98.c:354
+#, c-format
+msgid "Invalid partition table on %s."
+msgstr "Tabla de partición inválida en %s."
+
+#: libparted/labels/pc98.c:406 libparted/labels/pc98.c:484
+#, c-format
+msgid ""
+"Partition %d isn't aligned to cylinder boundaries.  This is still "
+"unsupported."
+msgstr ""
+"La partición %d no está alineada a los límites del cilindro.  Necesita "
+"añadirle soporte."
+
+# No se puede.
+#: libparted/labels/pc98.c:791
+msgid "Can't add another partition."
+msgstr "No se puede añadir otra partición."
+
+#: libparted/labels/rdb.c:162
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s."
+msgstr "%s : Suma de comprobación mala en el bloque %llu de tipo %s."
+
+#: libparted/labels/rdb.c:497
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen."
+msgstr "%s : No se encuentra el bloque rdb, nunca debería ocurrir."
+
+#: libparted/labels/rdb.c:581
+#, c-format
+msgid "%s : Loop detected at block %d."
+msgstr "%s : Bucle detectado en el bloque %d."
+
+#: libparted/labels/rdb.c:600
+#, c-format
+msgid "%s : The %s list seems bad at block %s."
+msgstr "%s : La lista %s parece mala en el bloque %s."
+
+#: libparted/labels/rdb.c:689
+#, c-format
+msgid "%s : Failed to list bad blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:697
+#, c-format
+msgid "%s : Failed to list partition blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:705
+#, c-format
+msgid "%s : Failed to list file system blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:713
+#, c-format
+msgid "%s : Failed to list boot blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:740
+#, c-format
+msgid "Failed to write partition block at %d."
+msgstr "Fallo al escribir el bloque de la partición en %d."
+
+#: libparted/labels/rdb.c:1069
+msgid "Unable to allocate a partition number."
+msgstr "No se puede asignar un número de partición."
+
+#: libparted/labels/sun.c:145
+msgid "Corrupted Sun disk label detected."
+msgstr "Se ha detectado una etiqueta de disco Sun corrupta."
+
+#: libparted/labels/sun.c:266
+#, c-format
+msgid ""
+"The disk CHS geometry (%d,%d,%d) reported by the operating system does not "
+"match the geometry stored on the disk label (%d,%d,%d)."
+msgstr ""
+"La geometría de disco CHS (%d,%d,%d) informado por el sistema operativo no "
+"parece coincidir con la geometría guardada en la etiqueta de disco (%d,%d,%"
+"d)."
+
+#: libparted/labels/sun.c:288
+#, c-format
+msgid "The disk label describes a disk bigger than %s."
+msgstr "La etiqueta de disco describe un disco mayor que %s."
+
+#: libparted/labels/sun.c:442
+#, c-format
+msgid "The disk has %d cylinders, which is greater than the maximum of 65536."
+msgstr "El disco tiene %d cilindros que son mayores que el máximo de 65536."
+
+#: libparted/labels/sun.c:737
+msgid ""
+"The Whole Disk partition is the only available one left.  Generally, it is "
+"not a good idea to overwrite this partition with a real one.  Solaris may "
+"not be able to boot without it, and SILO (the sparc boot loader) appreciates "
+"it as well."
+msgstr ""
+"La partición Entera del Disco es la única que queda disponible.  "
+"Generalmente, no es una buena idea sobrescribir esta partición con una "
+"verdadera. Solaris no se puede arrancar sin ella, y SILO (el cargador de "
+"arranque de sparc) también la agradece."
+
+#: libparted/labels/sun.c:752
+msgid "Sun disk label is full."
+msgstr "La etiqueta de disco Sun está llena."
+
+#: libparted/labels/vtoc.c:163
+#, c-format
+msgid ""
+"%s opening device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:167
+#, c-format
+msgid ""
+"%s seeking device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:171
+#, c-format
+msgid ""
+"%s writing to device '%s' failed,\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:175
+#, c-format
+msgid ""
+"%s reading from device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:179
+#, c-format
+msgid "Fatal error\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:418
+msgid "Could not read VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:424
+msgid "Could not read VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:431
+msgid "Could not read VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:438
+msgid "Could not read VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:445
+msgid "Could not read VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:462
+msgid "Could not write VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:468
+msgid "Could not write VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:475
+msgid "Could not write VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:482
+msgid "Could not write VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:489
+msgid "Could not write VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/libparted.c:296 libparted/libparted.c:316
+msgid "Out of memory."
+msgstr "No hay memoria."
+
+#: libparted/unit.c:139
+msgid "Cannot get unit size for special unit 'COMPACT'."
+msgstr ""
+
+#: libparted/unit.c:386
+#, c-format
+msgid "\"%s\" has invalid syntax for locations."
+msgstr ""
+
+#: libparted/unit.c:394
+#, c-format
+msgid "The maximum head value is %d."
+msgstr ""
+
+#: libparted/unit.c:401
+#, c-format
+msgid "The maximum sector value is %d."
+msgstr ""
+
+#: libparted/unit.c:413 libparted/unit.c:545
+#, c-format
+msgid "The location %s is outside of the device %s."
+msgstr ""
+
+#: libparted/unit.c:527
+msgid "Invalid number."
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:63 libparted/fs/amiga/apfs.c:56
+#: libparted/fs/amiga/asfs.c:70
+#, fuzzy, c-format
+msgid "%s : Failed to allocate partition block\n"
+msgstr "Fallo al escribir el bloque de la partición en %d."
+
+#: libparted/fs/amiga/affs.c:78 libparted/fs/amiga/apfs.c:70
+#: libparted/fs/amiga/asfs.c:86
+#, c-format
+msgid "%s : Failed to allocate block\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:83 libparted/fs/amiga/apfs.c:75
+#, fuzzy, c-format
+msgid "%s : Couldn't read boot block %llu\n"
+msgstr "%s : Bucle detectado en el bloque %d."
+
+#: libparted/fs/amiga/affs.c:99 libparted/fs/amiga/apfs.c:86
+#: libparted/fs/amiga/asfs.c:92 libparted/fs/amiga/asfs.c:106
+#, fuzzy, c-format
+msgid "%s : Couldn't read root block %llu\n"
+msgstr "%s : Bucle detectado en el bloque %d."
+
+#: libparted/fs/amiga/amiga.c:72
+#, c-format
+msgid "%s : Failed to allocate id list element\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:189
+#, c-format
+msgid "%s : Couldn't read block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:202
+#, fuzzy, c-format
+msgid "%s : Bad checksum on block %llu of type %s\n"
+msgstr "%s : Suma de comprobación mala en el bloque %llu de tipo %s."
+
+#: libparted/fs/amiga/amiga.c:212
+#, fuzzy, c-format
+msgid "%s : Couldn't write block %d\n"
+msgstr "%s : Bucle detectado en el bloque %d."
+
+#: libparted/fs/amiga/amiga.c:278
+#, c-format
+msgid "%s : Failed to allocate disk_specific rdb block\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:289
+#, fuzzy, c-format
+msgid "%s : Didn't find rdb block, should never happen\n"
+msgstr "%s : No se encuentra el bloque rdb, nunca debería ocurrir."
+
+#: libparted/fs/amiga/amiga.c:318
+#, fuzzy, c-format
+msgid "%s : Failed to read partition block %llu\n"
+msgstr "Fallo al escribir el bloque de la partición en %d."
+
+#: libparted/fs/ext2/ext2.c:87 libparted/fs/ext2/ext2.c:112
+msgid "Inconsistent group descriptors!"
+msgstr "¡Descriptores de grupo inconsistentes!"
+
+#: libparted/fs/ext2/ext2.c:91 libparted/fs/ext2/ext2.c:116
+msgid "File system full!"
+msgstr "¡Sistema de ficheros lleno!"
+
+#: libparted/fs/ext2/ext2.c:686
+msgid "Invalid superblock.  Are you sure this is an ext2 file system?"
+msgstr ""
+"Superbloque inválido.  ¿Está seguro de que este es un sistema de ficheros "
+"ext2?"
+
+#: libparted/fs/ext2/ext2.c:700 libparted/fs/ext2/ext2_resize.c:658
+msgid "File system has errors!  You should run e2fsck."
+msgstr "¡El sistema de ficheros tiene errores!  Debería ejecutar e2fsck."
+
+#: libparted/fs/ext2/ext2.c:711
+msgid ""
+"File system was not cleanly unmounted!  You should run e2fsck.  Modifying an "
+"unclean file system could cause severe corruption."
+msgstr ""
+"¡El sistema de ficheros no fue desmontado limpiamente!  Debería ejecutar "
+"e2fsck.  Modificar un sistema de ficheros sucio podría causar una corrupción "
+"grave."
+
+#: libparted/fs/ext2/ext2.c:731
+msgid "File system has an incompatible feature enabled."
+msgstr "El sistema de ficheros tiene activada una característica incompatible."
+
+#: libparted/fs/ext2/ext2.c:742
+msgid "Error allocating buffer cache."
+msgstr "Error asignando espacio en la caché del búfer."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:114
+msgid ""
+"Found an inode with a incorrect link count.  Better go run e2fsck first!"
+msgstr ""
+"Encontrado un nodo-i con una cuenta de enlace incorrecta.  ¡Mejor ejecutar "
+"primero e2fsck!"
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:487
+msgid "Not enough free inodes!"
+msgstr "¡No hay suficientes nodos-i libres!"
+
+#: libparted/fs/ext2/ext2_resize.c:223
+msgid "File system is too full to remove a group!"
+msgstr "¡El sistema de ficheros está demasiado ocupado para borrar un grupo!"
+
+#: libparted/fs/ext2/ext2_resize.c:232
+msgid "File system has too many allocated inodes to remove a group!"
+msgstr ""
+"¡El sistema de ficheros tiene demasiados nodos-i asignados para borrar un "
+"grupo!"
+
+#: libparted/fs/ext2/ext2_resize.c:491
+msgid "adding groups"
+msgstr "añadiendo grupos"
+
+#: libparted/fs/ext2/ext2_resize.c:528
+#, c-format
+msgid "Your file system is too full to resize it to %i blocks.  Sorry."
+msgstr ""
+"Su sistema de ficheros está demasiado lleno para redimensionarlo a %i "
+"bloques.  Disculpe."
+
+#: libparted/fs/ext2/ext2_resize.c:538
+#, c-format
+msgid ""
+"Your file system has too many occupied inodes to resize it to %i blocks.  "
+"Sorry."
+msgstr ""
+"Su sistema de ficheros tiene demasiados nodos-i ocupados para "
+"redimensionarlo a %i bloques.  Disculpe."
+
+#: libparted/fs/ext2/ext2_resize.c:666
+msgid "File system was not cleanly unmounted!  You should run e2fsck."
+msgstr ""
+"¡El sistema de ficheros no fue desmontado limpiamente!  Debería ejecutar "
+"e2fsck."
+
+#: libparted/fs/ext2/ext2_resize.c:675
+msgid ""
+"The file system has the 'dir_index' feature enabled.  Parted can only resize "
+"the file system if it disables this feature.  You can enable it later by "
+"running 'tune2fs -O dir_index DEVICE' and then 'e2fsck -fD DEVICE'."
+msgstr ""
+"El sistema de ficheros tiene la opción 'dir_index' habilitada.  Parted sólo "
+"pude redimensionar el sistema de ficheros si desactiva esta opción.  Puede "
+"habilitarla después ejecutando 'tune2fs -O dir_index UNIDAD' y luego 'e2fsck "
+"-fD UNIDAD'."
+
+#: libparted/fs/ext2/ext2_resize.c:691
+msgid ""
+"A resize operation on this file system will use EXPERIMENTAL code\n"
+"that MAY CORRUPT it (although no one has reported any such damage yet).\n"
+"You should at least backup your data first, and run 'e2fsck -f' afterwards."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_block_relocator.c:198
+msgid "Cross-linked blocks found!  Better go run e2fsck first!"
+msgstr ""
+"¡Se encontraron bloques con referencia cruzada!  ¡Mejor ejecutar primero "
+"e2fsck!"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:537
+#, c-format
+msgid "Block %i has no reference?  Weird."
+msgstr "¿El bloque %i no tiene una referencia?  Estraño."
+
+#: libparted/fs/ext2/ext2_block_relocator.c:737
+#, fuzzy, c-format
+msgid "Block %i shouldn't have been marked (%d, %d)!"
+msgstr "¡El bloque %i no debería haber sido marcado!"
+
+#: libparted/fs/ext2/interface.c:186
+msgid ""
+"The ext2 file system passed a basic check.  For a more comprehensive check, "
+"use the e2fsck program."
+msgstr ""
+"El sistema de ficheros ext2 pasó una comprobación básica. Para una "
+"comprobación más a fondo, utilize el programa e2fsck."
+
+#: libparted/fs/ext2/interface.c:203
+msgid "Sorry, can't move the start of ext2 partitions yet!"
+msgstr "¡Disculpe, aún no se puede mover el principio de las particiones ext2!"
+
+#: libparted/fs/ext2/ext2_buffer.c:82
+msgid "Couldn't flush buffer cache!"
+msgstr "¡No se pudo vaciar la caché del búfer!"
+
+#: libparted/fs/ext2/ext2_mkfs.c:162
+msgid "writing per-group metadata"
+msgstr "escribiendo metadatos por-grupo"
+
+#: libparted/fs/ext2/ext2_mkfs.c:564
+msgid "File system too small for ext2."
+msgstr "Sistema de ficheros demasiado pequeño para ext2."
+
+#: libparted/fs/fat/calc.c:135
+#, c-format
+msgid ""
+"You need %s of free disk space to shrink this partition to this size.  "
+"Currently, only %s is free."
+msgstr ""
+"Necesita %s de espacio disco libre para reducir esta partición a este "
+"tamaño. Actualmente, sólo %s está libre."
+
+#: libparted/fs/fat/context.c:56
+#, c-format
+msgid ""
+"Cluster start delta = %d, which is not a multiple of the cluster size %d."
+msgstr ""
+"El inicio delta del cluster = %d, que no es un múltiplo del tamaño de "
+"cluster %d."
+
+#: libparted/fs/fat/fat.c:308
+#, c-format
+msgid "Partition too big/small for a %s file system."
+msgstr "Partición demasiado grande/pequeña para un sistema de ficheros %s."
+
+#: libparted/fs/fat/fat.c:474
+msgid ""
+"The FATs don't match.  If you don't know what this means, then select "
+"cancel, run scandisk on the file system, and then come back."
+msgstr ""
+"Las FATs no son iguales.  Si no sabe que significa esto, seleccione "
+"cancelar, ejecute scandisk en el sistema de ficheros, y después vuelva."
+
+#: libparted/fs/fat/fat.c:514
+msgid "There are no possible configurations for this FAT type."
+msgstr "No hay configuraciones posibles para este tipo de FAT."
+
+#: libparted/fs/fat/fat.c:526
+#, c-format
+msgid ""
+"File system doesn't have expected sizes for Windows to like it.  Cluster "
+"size is %dk (%dk expected); number of clusters is %d (%d expected); size of "
+"FATs is %d sectors (%d expected)."
+msgstr ""
+"El sistema de ficheros no tiene los tamaños esperados para que los utilize "
+"Windows.  El tamaño del cluster es %dk (se esperaba %dk); el número de "
+"clusters es de %d (se esperaba %d); el tamaño de la FAT es de %d sectores "
+"(se esperaba %d)."
+
+#: libparted/fs/fat/fat.c:549
+#, c-format
+msgid ""
+"File system is reporting the free space as %d clusters, not %d clusters."
+msgstr ""
+"El sistema de ficheros está informando que el espacio libre de clusters es "
+"de %d, no de %d clusters."
+
+#: libparted/fs/fat/fat.c:874
+msgid ""
+"GNU Parted was miscompiled: the FAT boot sector should be 512 bytes.  FAT "
+"support will be disabled."
+msgstr ""
+"GNU parted fue mal compilado: el sector de arranque FAT debería ser de 512 "
+"bytes. El soporte a FAT será desabilitado."
+
+#: libparted/fs/fat/resize.c:159
+msgid ""
+"There's not enough room in the root directory for all of the files.  Either "
+"cancel, or ignore to lose the files."
+msgstr ""
+"No hay espacio suficiente en el directorio root para todos los ficheros.  "
+"Puede cancelar o descartar perdiendo los ficheros."
+
+#: libparted/fs/fat/resize.c:300
+msgid "Error writing to the root directory."
+msgstr "Error al escribir en el directorio root."
+
+#: libparted/fs/fat/resize.c:489
+msgid "If you leave your file system as FAT16, then you will have no problems."
+msgstr ""
+"Si deja su sistema de ficheros como FAT16, entonces no tendrá problemas."
+
+#: libparted/fs/fat/resize.c:492
+msgid ""
+"If you convert to FAT16, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual)."
+msgstr ""
+"Si convierte a FAT16, y MS Windows está instalado en esa partición, entonces "
+"debería re-instalar el cargador de arranque de MS Windows.  Si quiere hacer "
+"esto, debería consultar el manual de Parted (o el manual de su distribución)."
+
+#: libparted/fs/fat/resize.c:500
+msgid ""
+"If you leave your file system as FAT32, then you will not introduce any new "
+"problems."
+msgstr ""
+"Si deja su sistema de ficheros como FAT32, entonces no tendrá nuevos "
+"problemas."
+
+#: libparted/fs/fat/resize.c:504
+msgid ""
+"If you convert to FAT32, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual).  Also, "
+"converting to FAT32 will make the file system unreadable by MS DOS, MS "
+"Windows 95a, and MS Windows NT."
+msgstr ""
+"Si convierte a FAT32, y MS Windows está instalado en la partición, tiene que "
+"re-instalar el cargador de arranque de MS Windows. Si quiere hacerlo, "
+"debería consultar el manual de Parted (o el manual de su distribución). "
+"También, la conversión a FAT32 hará ilegible el sistema de ficheros para MS "
+"DOS, MS Windows 95a y MS Windows NT."
+
+#: libparted/fs/fat/resize.c:518
+#, c-format
+msgid "%s  %s  %s"
+msgstr "%s  %s  %s"
+
+#: libparted/fs/fat/resize.c:519
+msgid "Would you like to use FAT32?"
+msgstr "¿Le gustaría usar FAT32?"
+
+#: libparted/fs/fat/resize.c:550 libparted/fs/fat/resize.c:566
+#, c-format
+msgid "%s  %s"
+msgstr "%s  %s"
+
+#: libparted/fs/fat/resize.c:551
+msgid ""
+"The file system can only be resized to this size by converting to FAT16."
+msgstr ""
+"El sistema de ficheros sólo puede ser redimensionado a este tamaño para "
+"convertirlo a FAT16."
+
+#: libparted/fs/fat/resize.c:567
+msgid ""
+"The file system can only be resized to this size by converting to FAT32."
+msgstr ""
+"El sistema de ficheros sólo puede ser redimensionado a este tamaño para "
+"convertirlo a FAT32."
+
+#: libparted/fs/fat/resize.c:580
+msgid ""
+"GNU Parted cannot resize this partition to this size.  We're working on it!"
+msgstr ""
+"GNU Parted no puede redimensionar esta partición a ese tamaño. ¡Estamos "
+"trabajando en ello!"
+
+#: libparted/fs/fat/bootsector.c:49 libparted/fs/fat/bootsector.c:56
+msgid "File system has an invalid signature for a FAT file system."
+msgstr ""
+"El sistema de ficheros tiene una firma inválida para un sistema de ficheros "
+"FAT."
+
+#: libparted/fs/fat/bootsector.c:64
+msgid "File system has an invalid sector size for a FAT file system."
+msgstr ""
+"El sistema de ficheros tiene un tamaño de sector inválido para un sistema de "
+"ficheros FAT."
+
+#: libparted/fs/fat/bootsector.c:71
+msgid "File system has an invalid cluster size for a FAT file system."
+msgstr ""
+"El sistema de ficheros tiene un tamaño de cluster inválido para un sistema "
+"de ficheros FAT."
+
+#: libparted/fs/fat/bootsector.c:78
+msgid ""
+"File system has an invalid number of reserved sectors for a FAT file system."
+msgstr ""
+"El sistema de ficheros tiene un número inválido de sectores reservados para "
+"un sistema de ficheros FAT."
+
+#: libparted/fs/fat/bootsector.c:85
+msgid "File system has an invalid number of FATs."
+msgstr "El sistema de ficheros tiene un número de FATS inválido."
+
+#: libparted/fs/fat/bootsector.c:139
+#, c-format
+msgid ""
+"This file system has a logical sector size of %d.  GNU Parted is known not "
+"to work properly with sector sizes other than 512 bytes."
+msgstr ""
+"El sistema de ficheros tiene el tamaño del sector lógico de %d.  GNU Parted "
+"es conocido por no funcionar adecuadamente con tamaños de sector distintos "
+"de 512 bytes."
+
+#: libparted/fs/fat/bootsector.c:164
+#, c-format
+msgid ""
+"The file system's CHS geometry is (%d, %d, %d), which is invalid.  The "
+"partition table's CHS geometry is (%d, %d, %d).  If you select Ignore, the "
+"file system's CHS geometry will be left unchanged.  If you select Fix, the "
+"file system's CHS geometry will be set to match the partition table's CHS "
+"geometry."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:213
+msgid "FAT boot sector says logical sector size is 0.  This is weird. "
+msgstr ""
+"El sector de arranque de la FAT dice que el tamaño lógico del sector es 0.  "
+"Esto es extraño. "
+
+#: libparted/fs/fat/bootsector.c:219
+msgid "FAT boot sector says there are no FAT tables.  This is weird. "
+msgstr ""
+"El sector de arranque de la FAT dice que no hay tablas FAT.  Esto es "
+"extraño. "
+
+#: libparted/fs/fat/bootsector.c:225
+msgid "FAT boot sector says clusters are 0 sectors.  This is weird. "
+msgstr ""
+"El sector de arranque de la FAT dice que los clusters tienen 0 sectores.  "
+"Esto es extraño. "
+
+#: libparted/fs/fat/bootsector.c:235
+msgid "File system is FAT12, which is unsupported."
+msgstr "El sistema de ficheros es FAT12, el cuál no está soportado."
+
+#: libparted/fs/fat/bootsector.c:411
+#, c-format
+msgid ""
+"The information sector has the wrong signature (%x).  Select cancel for now, "
+"and send in a bug report.  If you're desperate, it's probably safe to ignore."
+msgstr ""
+"El sector de información tiene una firma errónea (%x).  Seleccione cancelar "
+"por ahora, y mande un informe del fallo. Si está desesperado, es más seguro "
+"descartar."
+
+#: libparted/fs/fat/count.c:152
+#, c-format
+msgid "Bad directory entry for %s: first cluster is the end of file marker."
+msgstr ""
+"Entrada de directorio incorrecta para %s: el primer cluster es el final de "
+"la marca del fichero."
+
+#: libparted/fs/fat/count.c:165
+#, c-format
+msgid ""
+"Bad FAT: unterminated chain for %s.  You should run dosfsck or scandisk."
+msgstr ""
+"FAT incorrecta: cadena no terminada para %s.  Debería ejecutar dosfsck o "
+"scandisck."
+
+#: libparted/fs/fat/count.c:174
+#, c-format
+msgid ""
+"Bad FAT: cluster %d outside file system in chain for %s.  You should run "
+"dosfsck or scandisk."
+msgstr ""
+"FAT incorrecta: el cluster %d está fuera del sistema de ficheros en la "
+"cadena para %s.  Debería ejecutar dosfsck o scandisk."
+
+#: libparted/fs/fat/count.c:184
+#, c-format
+msgid ""
+"Bad FAT: cluster %d is cross-linked for %s.  You should run dosfsck or "
+"scandisk."
+msgstr ""
+"FAT incorrecta: el cluster %d tiene enlaces cruzados para %s.  Debería "
+"ejecutar dosfsck o scandisck."
+
+#: libparted/fs/fat/count.c:203
+#, c-format
+msgid "%s is %dk, but it has %d clusters (%dk)."
+msgstr "%s es %dk, pero tiene %d clusters (%dk)."
+
+#: libparted/fs/fat/count.c:266
+#, c-format
+msgid ""
+"The file %s is marked as a system file.  This means moving it could cause "
+"some programs to stop working."
+msgstr ""
+"El fichero %s está marcado como un fichero del sistema.  Esto quiere decir "
+"que si lo mueve puede ocurrir que algunos programas no funcionen."
+
+#: libparted/fs/fat/table.c:137
+#, c-format
+msgid ""
+"FAT %d media %x doesn't match the boot sector's media %x.  You should "
+"probably run scandisk."
+msgstr ""
+"La FAT %d del medio %x no coincide con los sectores de arranque del medio %"
+"x.  Debería, probablemente, ejecutar scandisk."
+
+#: libparted/fs/fat/table.c:269
+#, fuzzy, c-format
+msgid "fat_table_set: cluster %ld outside file system"
+msgstr "fat_table_set: el cluster %ld está fuera del sistema de ficheros"
+
+#: libparted/fs/fat/table.c:301
+#, fuzzy, c-format
+msgid "fat_table_get: cluster %ld outside file system"
+msgstr "fat_table_get: el cluster %ld está fuera del sistema de ficheros"
+
+#: libparted/fs/fat/table.c:343
+msgid "fat_table_alloc_cluster: no free clusters"
+msgstr "fat_table_alloc_cluster: no quedan clusters libres"
+
+#: libparted/fs/linux_swap/linux_swap.c:275
+#, fuzzy, c-format
+msgid "Unrecognised old style linux swap signature '%10s'."
+msgstr "Firma de la partición de intercambio de linux '%10s' no reconocida."
+
+#: libparted/fs/linux_swap/linux_swap.c:318
+#, fuzzy, c-format
+msgid "Unrecognised new style linux swap signature '%10s'."
+msgstr "Firma de la partición de intercambio de linux '%10s' no reconocida."
+
+#: libparted/fs/linux_swap/linux_swap.c:358
+#, fuzzy, c-format
+msgid "Unrecognised swsusp linux swap signature '%9s'."
+msgstr "Firma de la partición de intercambio de linux '%10s' no reconocida."
+
+#: libparted/fs/linux_swap/linux_swap.c:434
+msgid "Too many bad pages."
+msgstr "Demasiadas páginas incorrectas."
+
+#: libparted/fs/hfs/advfs.c:121 libparted/fs/hfs/advfs_plus.c:122
+#: libparted/fs/hfs/reloc.c:414 libparted/fs/hfs/reloc.c:508
+#: libparted/fs/hfs/reloc_plus.c:539 libparted/fs/hfs/reloc_plus.c:658
+#: libparted/fs/hfs/reloc_plus.c:772
+msgid "The file system contains errors."
+msgstr "El sistema de ficheros contiene errores."
+
+#: libparted/fs/hfs/advfs_plus.c:287
+msgid "Bad blocks could not be read."
+msgstr "No pueden leerse los bloques incorrectos."
+
+#: libparted/fs/hfs/cache.c:137
+#, c-format
+msgid ""
+"Trying to register an extent starting at block 0x%X, but another one already "
+"exists at this position.  You should check the file system!"
+msgstr ""
+"Intentando registrar una extensión que empieza en el bloque 0x%X, pero ya "
+"existe otra en esta posición.  ¡Debería verificar el sistema de ficheros!"
+
+#: libparted/fs/hfs/cache.c:214
+#, c-format
+msgid ""
+"Trying to move an extent from block Ox%X to block Ox%X, but another one "
+"already exists at this position.  This should not happen!"
+msgstr ""
+"Intentando mover una extensión desde el bloque Ox%X para bloquear Ox%X, pero "
+"ya existe otra en esta posición.  ¡Esto no debería pasar!"
+
+#: libparted/fs/hfs/file.c:143
+#, c-format
+msgid "Could not update the extent cache for HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:180
+#, c-format
+msgid "Trying to read HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:190 libparted/fs/hfs/file.c:220
+#, c-format
+msgid "Could not find sector %lli of HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:210
+#, c-format
+msgid "Trying to write HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:157
+#, c-format
+msgid "Could not update the extent cache for HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:202
+#, c-format
+msgid "Trying to read HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:213 libparted/fs/hfs/file_plus.c:256
+#, c-format
+msgid "Could not find sector %lli of HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:245
+#, c-format
+msgid "Trying to write HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:232
+msgid "Sorry, HFS cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:262 libparted/fs/hfs/hfs.c:641
+msgid "Data relocation has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:281
+msgid "Data relocation left some data in the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:320
+#, fuzzy
+msgid "writing HFS Master Directory Block"
+msgstr "Error al escribir en el directorio raíz."
+
+#: libparted/fs/hfs/hfs.c:468
+msgid "No valid HFS[+X] signature has been found while opening."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:478
+#, c-format
+msgid "Version %d of HFS+ isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:489
+#, c-format
+msgid "Version %d of HFSX isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:672
+msgid "Data relocation left some data at the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:720
+#, fuzzy
+msgid "Error while writing the allocation file."
+msgstr "Error al escribir en el directorio raíz."
+
+#: libparted/fs/hfs/hfs.c:735
+msgid "Error while writing the compatibility part of the allocation file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:750
+msgid "writing HFS+ Volume Header"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:850
+msgid "An error occurred while looking for the mandatory bad blocks file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:904
+msgid ""
+"It seems there is an error in the HFS wrapper: the bad blocks file doesn't "
+"contain the embedded HFS+ volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:940
+msgid "Sorry, HFS+ cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:975
+msgid "shrinking embedded HFS+ volume"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:991
+msgid "Resizing the HFS+ volume has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:998
+#, fuzzy
+msgid "shrinking HFS wrapper"
+msgstr "contrayendo"
+
+#: libparted/fs/hfs/hfs.c:1007
+msgid "Updating the HFS wrapper has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:1109 libparted/fs/hfs/hfs.c:1194
+#, c-format
+msgid ""
+"This is not a real %s check.  This is going to extract special low level "
+"files for debugging purposes."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:155
+msgid "Bad block list header checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:168
+#, c-format
+msgid ""
+"Invalid size of a transaction block while replaying the journal (%i bytes)."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:260
+msgid ""
+"Journal stored outside of the volume are not supported.  Try to desactivate "
+"the journal and run Parted again."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:271
+#, fuzzy
+msgid "Journal offset or size is not multiple of the sector size."
+msgstr ""
+"El inicio delta del cluster = %d, que no es un múltiplo del tamaño de "
+"cluster %d."
+
+#: libparted/fs/hfs/journal.c:292
+msgid "Incorrect magic values in the journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:302
+msgid "Journal size mismatch between journal info block and journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:314
+#, fuzzy
+msgid "Some header fields are not multiple of the sector size."
+msgstr ""
+"El inicio delta del cluster = %d, que no es un múltiplo del tamaño de "
+"cluster %d."
+
+#: libparted/fs/hfs/journal.c:323
+msgid ""
+"The sector size stored in the journal is not 512 bytes.  Parted only "
+"supports 512 bytes length sectors."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:335
+msgid "Bad journal checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:353
+msgid ""
+"The journal is not empty.  Parted must replay the transactions before "
+"opening the file system.  This will modify the file system."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:381
+msgid ""
+"The volume header or the master directory block has changed while replaying "
+"the journal.  You should restart Parted."
+msgstr ""
+
+#: libparted/fs/hfs/probe.c:51
+#, c-format
+msgid ""
+"Parted can't use HFS file systems on disks with a sector size not equal to %"
+"d bytes."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:151 libparted/fs/hfs/reloc_plus.c:155
+msgid "An extent has not been relocated."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:251 libparted/fs/hfs/reloc_plus.c:307
+msgid ""
+"A reference to an extent comes from a place it should not.  You should check "
+"the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:381
+msgid "This HFS volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:475
+msgid "This HFS volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:517 libparted/fs/hfs/reloc_plus.c:668
+msgid ""
+"The extents overflow file should not contain its own extents!  You should "
+"check the file system."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:574 libparted/fs/hfs/reloc_plus.c:847
+#, fuzzy
+msgid "Could not cache the file system in memory."
+msgstr "No se puede detectar el sistema de ficheros."
+
+#: libparted/fs/hfs/reloc.c:635 libparted/fs/hfs/reloc_plus.c:908
+msgid "Bad blocks list could not be loaded."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:649 libparted/fs/hfs/reloc_plus.c:924
+msgid "An error occurred during extent relocation."
+msgstr "Ocurrió un error durante la relocalización de la extensión."
+
+#: libparted/fs/hfs/reloc_plus.c:495
+msgid "This HFS+ volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:619
+msgid "This HFS+ volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: parted/parted.c:94
+msgid "displays this help message"
+msgstr "mostrar este mensaje de ayuda"
+
+#: parted/parted.c:95
+msgid "lists partition layout on all block devices"
+msgstr ""
+
+#: parted/parted.c:96
+msgid "displays machine parseable output"
+msgstr ""
+
+#: parted/parted.c:97
+msgid "never prompts for user intervention"
+msgstr "no pedir nunca la intervención del usuario"
+
+#: parted/parted.c:98
+msgid "displays the version"
+msgstr "mostrar la versión"
+
+#: parted/parted.c:111
+#, fuzzy
+msgid ""
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"
+msgstr ""
+"NUMERO es el número de la partición usada por Linux. En las etiquetas de "
+"disco msdos, las particiones primarias van del 1 al 4, y las particiones "
+"lógicas de 5 en adelante.\n"
+
+#: parted/parted.c:114
+msgid "LABEL-TYPE is one of: "
+msgstr "TIPO_ETIQUETA es uno de: "
+
+#: parted/parted.c:115
+msgid "FLAG is one of: "
+msgstr "FLAG es uno de: "
+
+#: parted/parted.c:116
+#, fuzzy
+msgid "UNIT is one of: "
+msgstr "FLAG es uno de: "
+
+#: parted/parted.c:117
+msgid "PART-TYPE is one of: primary, logical, extended\n"
+msgstr "TIPO-PART es uno de: primário, lógico, extendido\n"
+
+#: parted/parted.c:119
+msgid "FS-TYPE is one of: "
+msgstr "TIPO-SF es uno de: "
+
+#: parted/parted.c:120
+msgid ""
+"START and END are disk locations, such as 4GB or 10%.  Negative values count "
+"from the end of the disk.  For example, -1s specifies exactly the last "
+"sector.\n"
+msgstr ""
+
+#: parted/parted.c:123
+msgid "STATE is one of: on, off\n"
+msgstr "ESTADO es uno de: on, off\n"
+
+#: parted/parted.c:124
+msgid "DEVICE is usually /dev/hda or /dev/sda\n"
+msgstr "DISPOSITIVO es normalmente /dev/hda o /dev/sda\n"
+
+#: parted/parted.c:125
+msgid "NAME is any word you want\n"
+msgstr "NOMBRE es cualquier palabra que quiera\n"
+
+#: parted/parted.c:126
+msgid "The partition must have one of the following FS-TYPEs: "
+msgstr "La partición debe tener uno de los siguientes TIPOS de SF: "
+
+# Please, busca este mismo texto en el .po de fileutils o textutils e intenta
+# que se parezca en la terminología,
+# por ejemplo: is distributed -> se distribuye
+#: parted/parted.c:130
+#, fuzzy
+msgid ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+msgstr ""
+"Copyright (C) 1998 -2005 Free Software Foundation, Inc.\n"
+"Este programa es software libre, cubierto por la Licencia Pública General de "
+"GNU.\n"
+"\n"
+"Este programa se distribuye con la esperanza de que sea útil, pero SIN "
+"NINGUNA GARANTÍA; ni siquiera la garantía implícita de COMERCIABILIDAD o "
+"IDONEIDAD PARA UN FIN DETERMINADO.  Vea la Licencia Pública General de GNU "
+"para obtener más detalles.\n"
+"\n"
+
+#: parted/parted.c:176
+#, c-format
+msgid "%0.f%%\t(time left %.2d:%.2d)"
+msgstr "%0.f%%\t(tiempo que queda %.2d:%.2d)"
+
+#: parted/parted.c:195
+#, fuzzy, c-format
+msgid ""
+"Partition %s is being used. You must unmount it before you modify it with "
+"Parted."
+msgstr ""
+"La partición %s está usandose.  Debe desmontarla antes de modificarla con "
+"Parted."
+
+#: parted/parted.c:211
+#, c-format
+msgid "Partition(s) on %s are being used."
+msgstr "La(s) partición(es) en %s está(n) siendo usada(s)."
+
+#: parted/parted.c:223
+msgid ""
+"The existing file system will be destroyed and all data on the partition "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:235
+#, c-format
+msgid ""
+"The existing disk label on %s will be destroyed and all data on this disk "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:458 parted/parted.c:652 parted/parted.c:1044
+#: parted/parted.c:1128 parted/parted.c:1771 parted/parted.c:1852
+#: parted/parted.c:1900
+msgid "Partition number?"
+msgstr "¿Número de la partición?"
+
+#: parted/parted.c:500
+msgid "Source device?"
+msgstr "¿Dispositivo de origen?"
+
+#: parted/parted.c:504
+msgid "Source partition number?"
+msgstr "¿Número de la partición de origen?"
+
+#: parted/parted.c:509
+#, fuzzy
+msgid "Can't copy an extended partition."
+msgstr "No es pueden copiar las particiones extendidas."
+
+#: parted/parted.c:515
+msgid "Destination partition number?"
+msgstr "¿Número de la partición de destino?"
+
+#: parted/parted.c:615
+msgid "New disk label type?"
+msgstr "¿Nuevo tipo de etiqueta de disco?"
+
+#: parted/parted.c:656
+msgid "File system?"
+msgstr "¿Sistema de ficheros?"
+
+#: parted/parted.c:707 parted/parted.c:878
+msgid "Partition type?"
+msgstr "¿Tipo de partición?"
+
+#: parted/parted.c:714 parted/parted.c:885 parted/parted.c:1131
+msgid "Partition name?"
+msgstr "¿Nombre de la partición?"
+
+#: parted/parted.c:722 parted/parted.c:895
+msgid "File system type?"
+msgstr "¿Tipo de sistema de ficheros?"
+
+#: parted/parted.c:729 parted/parted.c:897 parted/parted.c:1059
+#: parted/parted.c:1725 parted/parted.c:1780
+msgid "Start?"
+msgstr "¿Inicio?"
+
+#: parted/parted.c:731 parted/parted.c:900 parted/parted.c:1062
+#: parted/parted.c:1727 parted/parted.c:1782
+msgid "End?"
+msgstr "¿Fin?"
+
+#: parted/parted.c:769 parted/parted.c:938
+#, fuzzy, c-format
+msgid ""
+"You requested a partition from %s to %s.\n"
+"The closest location we can manage is %s to %s.  Is this still acceptable to "
+"you?"
+msgstr ""
+"Pidió mover la partición a %s - %s. Lo más cerca que Parted puede manejar es "
+"%s - %s."
+
+#: parted/parted.c:890
+#, fuzzy
+msgid "An extended partition cannot hold a file system.  Did you want mkpart?"
+msgstr ""
+"La particiones extendidas no puede sostener un sistema de ficheros.  ¿Quiere "
+"mkpart?"
+
+#: parted/parted.c:1050
+msgid "Can't move an extended partition."
+msgstr "No se pueden mover una partición extendida."
+
+#: parted/parted.c:1079
+msgid "Can't move a partition onto itself.  Try using resize, perhaps?"
+msgstr ""
+"No se puede mover una partición sobre sí misma.  ¿Pruebe a usar "
+"redimensionar, quizás?"
+
+#: parted/parted.c:1227
+#, c-format
+msgid "Minor: %d\n"
+msgstr "Minor: %d\n"
+
+#: parted/parted.c:1228
+#, fuzzy, c-format
+msgid "Flags: %s\n"
+msgstr "Banderas: "
+
+#: parted/parted.c:1229
+#, c-format
+msgid "File System: %s\n"
+msgstr "Sistema de ficheros: %s\n"
+
+#: parted/parted.c:1230
+#, fuzzy
+msgid "Size:         "
+msgstr "Tamaño:         %10.3fMb (%d%%)\n"
+
+#: parted/parted.c:1235
+msgid "Minimum size: "
+msgstr "Tamaño mínimo: "
+
+#: parted/parted.c:1238
+msgid "Maximum size: "
+msgstr "Tamaño máximo: "
+
+#: parted/parted.c:1362
+#, c-format
+msgid "Model: %s (%s)\n"
+msgstr ""
+
+#: parted/parted.c:1364
+#, fuzzy, c-format
+msgid "Disk %s: %s\n"
+msgstr "%s  %s  %s"
+
+#: parted/parted.c:1365
+#, c-format
+msgid "Sector size (logical/physical): %lldB/%lldB\n"
+msgstr ""
+
+#: parted/parted.c:1383
+#, c-format
+msgid "BIOS cylinder,head,sector geometry: %d,%d,%d.  Each cylinder is %s.\n"
+msgstr ""
+
+#: parted/parted.c:1392
+#, fuzzy, c-format
+msgid "Partition Table: %s\n"
+msgstr "¿Nombre de la partición?"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Number"
+msgstr "Numero"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Start"
+msgstr "Inicio"
+
+#: parted/parted.c:1407 parted/parted.c:1410
+msgid "End"
+msgstr "Fin"
+
+#: parted/parted.c:1410
+msgid "Size"
+msgstr "Tamaño"
+
+#: parted/parted.c:1414
+msgid "Type"
+msgstr "Typo"
+
+#: parted/parted.c:1416
+msgid "File system"
+msgstr "Sistema de ficheros"
+
+#: parted/parted.c:1419
+msgid "Name"
+msgstr "Nombre"
+
+#: parted/parted.c:1421
+msgid "Flags"
+msgstr "Banderas"
+
+#: parted/parted.c:1477
+msgid "Free Space"
+msgstr ""
+
+#: parted/parted.c:1624
+#, c-format
+msgid ""
+"A %s %s partition was found at %s -> %s.  Do you want to add it to the "
+"partition table?"
+msgstr ""
+"Ha sido encontrada una partición %s %s en %s -> %s.  ¿Quiere añadirla a la "
+"tabla de particiones?"
+
+#: parted/parted.c:1663
+msgid "searching for file systems"
+msgstr "buscando los sistemas de ficheros"
+
+#: parted/parted.c:1877
+msgid "New device?"
+msgstr "¿Nuevo dispositivo?"
+
+#: parted/parted.c:1902
+#, fuzzy
+msgid "Flag to Invert?"
+msgstr "¿Bandera a cambiar?"
+
+#: parted/parted.c:1907
+msgid "New state?"
+msgstr "¿Nuevo estado?"
+
+#: parted/parted.c:1944
+msgid "Unit?"
+msgstr "¿Unidad?"
+
+#: parted/parted.c:2093
+msgid "check"
+msgstr "comprobar"
+
+#: parted/parted.c:2096
+#, fuzzy
+msgid ""
+"check NUMBER                             do a simple check on the file system"
+msgstr ""
+"comprueba NUMERO                   hace una comprobación simple del sistema "
+"de ficheros"
+
+#: parted/parted.c:2102
+msgid "cp"
+msgstr "cp"
+
+#: parted/parted.c:2105
+msgid ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+"partition"
+msgstr ""
+"cp [DESDE-DISPOSITIVO] DE-NUMERO A-NUMERO   copia el sistema de ficheros a "
+"otra partición"
+
+#: parted/parted.c:2111
+msgid "help"
+msgstr "help"
+
+#: parted/parted.c:2114
+#, fuzzy
+msgid ""
+"help [COMMAND]                           print general help, or help on "
+"COMMAND"
+msgstr ""
+"help [ORDEN]                 muestra la ayuda general, o la ayuda sobre la "
+"ORDEN"
+
+#: parted/parted.c:2120
+msgid "mklabel"
+msgstr "mklabel"
+
+#: parted/parted.c:2120
+#, fuzzy
+msgid "mktable"
+msgstr "mklabel"
+
+#: parted/parted.c:2123
+#, fuzzy
+msgid ""
+"mklabel,mktable LABEL-TYPE               create a new disklabel (partition "
+"table)"
+msgstr ""
+"mklabel TIPO-ETIQUETA        crea una nueva etiqueta de disco (en la tabla "
+"de partición)"
+
+#: parted/parted.c:2129
+msgid "mkfs"
+msgstr "mkfs"
+
+#: parted/parted.c:2132
+#, fuzzy
+msgid ""
+"mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on "
+"partititon NUMBER"
+msgstr ""
+"mkfs NUMERO TIPO-SF           crea un sistema de ficheros TIPO-SF en la "
+"partición NUMERO"
+
+#: parted/parted.c:2138
+msgid "mkpart"
+msgstr "mkpart"
+
+#: parted/parted.c:2141
+msgid "mkpart PART-TYPE [FS-TYPE] START END     make a partition"
+msgstr "mkpart TIPO-PART [TIPO-SF] INICIO FIN     crea una partición"
+
+#: parted/parted.c:2147
+#, fuzzy
+msgid ""
+"'mkpart' makes a partition without creating a new file system on the "
+"partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"
+msgstr ""
+"mkpart crea una partición sin crear un nuevo sistema de ficheros en la "
+"partición. Debe ser especificado el TIPO-SF para asignar una ID de "
+"partición.\n"
+
+#: parted/parted.c:2152
+msgid "mkpartfs"
+msgstr "mkpartfs"
+
+#: parted/parted.c:2155
+msgid ""
+"mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system"
+msgstr ""
+"mkpartfs TIPO-PART TIPO-SF INICIO FIN     crear una partición con un sistema "
+"de ficheros"
+
+#: parted/parted.c:2161
+msgid "move"
+msgstr "move"
+
+#: parted/parted.c:2164
+#, fuzzy
+msgid "move NUMBER START END                    move partition NUMBER"
+msgstr "move NUMERO INICIO FIN        mueve la partición NUMERO"
+
+#: parted/parted.c:2169
+msgid "name"
+msgstr "name"
+
+#: parted/parted.c:2172
+#, fuzzy
+msgid "name NUMBER NAME                         name partition NUMBER as NAME"
+msgstr "name NUMERO NOMBRE            nombra la partición NUMERO como NOMBRE"
+
+#: parted/parted.c:2177
+msgid "print"
+msgstr "print"
+
+#: parted/parted.c:2180
+msgid ""
+"print [devices|free|list,all|NUMBER]     display the partition table, "
+"available devices, free space, all found partitions, or a particular "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2185
+msgid ""
+"Without arguments, 'print' displays the entire partition table. However with "
+"the following arguments it performs various other actions.\n"
+msgstr ""
+
+#: parted/parted.c:2187
+msgid "  devices   : display all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2188
+msgid ""
+"  free      : display information about free unpartitioned space on the "
+"current block device\n"
+msgstr ""
+
+#: parted/parted.c:2190
+#, fuzzy
+msgid ""
+"  list, all : display the partition tables of all active block devices\n"
+msgstr ""
+"print [NUMERO]               muestra la tabla de las particiones, o una "
+"partición"
+
+#: parted/parted.c:2191
+msgid ""
+"  NUMBER    : display more detailed information about this particular "
+"partition\n"
+msgstr ""
+
+#: parted/parted.c:2196
+msgid "quit"
+msgstr "quit"
+
+#: parted/parted.c:2199
+#, fuzzy
+msgid "quit                                     exit program"
+msgstr "quit                          sale del programa"
+
+#: parted/parted.c:2204
+msgid "rescue"
+msgstr "rescue"
+
+#: parted/parted.c:2207
+#, fuzzy
+msgid ""
+"rescue START END                         rescue a lost partition near START "
+"and END"
+msgstr ""
+"rescue INICIO FIN       recupera las particiones perdidas entre INICIO y FIN"
+
+#: parted/parted.c:2213
+msgid "resize"
+msgstr "resize"
+
+#: parted/parted.c:2216
+#, fuzzy
+msgid ""
+"resize NUMBER START END                  resize partition NUMBER and its "
+"file system"
+msgstr ""
+"resize NUMERO INICIO FIN       redimensiona el sistema de ficheros y la "
+"partición NUMERO"
+
+#: parted/parted.c:2224
+msgid "rm"
+msgstr "rm"
+
+#: parted/parted.c:2227
+#, fuzzy
+msgid "rm NUMBER                                delete partition NUMBER"
+msgstr "rm NUMERO                      borra la partición NUMERO"
+
+#: parted/parted.c:2232
+msgid "select"
+msgstr "select"
+
+#: parted/parted.c:2235
+#, fuzzy
+msgid "select DEVICE                            choose the device to edit"
+msgstr "select DISPOSITIVO           elegir el dispositivo a editar"
+
+#: parted/parted.c:2240
+msgid "set"
+msgstr "set"
+
+#: parted/parted.c:2243
+#, fuzzy
+msgid ""
+"set NUMBER FLAG STATE                    change the FLAG on partition NUMBER"
+msgstr ""
+"set NUMERO MODIF ESTADO        cambia un modificador de la partición NUMERO"
+
+#: parted/parted.c:2249
+msgid "toggle"
+msgstr ""
+
+#: parted/parted.c:2252
+#, fuzzy
+msgid ""
+"toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+"partition NUMBER"
+msgstr "rm NUMERO                      borra la partición NUMERO"
+
+#: parted/parted.c:2258
+msgid "unit"
+msgstr "unit"
+
+#: parted/parted.c:2261
+#, fuzzy
+msgid "unit UNIT                                set the default unit to UNIT"
+msgstr ""
+"unit UNIDAD                     configura la unidad por defecto para UNIDAD"
+
+#: parted/parted.c:2266
+msgid "version"
+msgstr ""
+
+#: parted/parted.c:2269
+msgid ""
+"version                                  display the version number and "
+"copyright information of GNU Parted"
+msgstr ""
+
+#: parted/parted.c:2273
+msgid ""
+"'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"
+msgstr ""
+
+#: parted/parted.c:2335
+#, c-format
+msgid "Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"
+msgstr ""
+
+#: parted/parted.c:2379
+msgid "No device found"
+msgstr "No se encontró el dispositivo"
+
+#: parted/parted.c:2412
+msgid "WARNING: You are not superuser.  Watch out for permissions."
+msgstr ""
+
+#: parted/parted.c:2450
+#, fuzzy
+msgid "You may need to update /etc/fstab.\n"
+msgstr "No se olvide de actualizar /etc/fstab, si es necesario.\n"
+
+#: parted/ui.c:160
+msgid "Welcome to GNU Parted! Type 'help' to view a list of commands.\n"
+msgstr ""
+
+# Uso: o Modo de empleo:
+#: parted/ui.c:163
+#, fuzzy
+msgid ""
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run "
+"in\n"
+"interactive mode.\n"
+msgstr ""
+"Modo de Empleo: parted [OPCIÓN]... [DISPOSITIVO [ORDEN [PARÁMETROS]...]...]\n"
+"Aplica la(s) ORDENes con PARÁMETROS al DISPOSITIVO.  Si no se da ninguna(s) "
+"ORDEN(es), se ejecuta en\n"
+"modo interactivo.\n"
+
+#: parted/ui.c:168
+#, c-format
+msgid ""
+"\n"
+"\n"
+"You found a bug in GNU Parted! Here's what you have to do:\n"
+"\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n"
+"\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Please check this version prior to bug reporting.\n"
+"\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"for further information.\n"
+"\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n"
+msgstr ""
+
+#: parted/ui.c:284
+msgid ""
+"\n"
+"Command History:\n"
+msgstr ""
+
+#: parted/ui.c:366
+msgid ""
+"\n"
+"Error: SEGV_MAPERR (Address not mapped to object)\n"
+msgstr ""
+
+#: parted/ui.c:372
+msgid ""
+"\n"
+"Error: SEGV_ACCERR (Invalid permissions for mapped object)\n"
+msgstr ""
+
+#: parted/ui.c:377
+msgid ""
+"\n"
+"Error: A general SIGSEGV signal was encountered.\n"
+msgstr ""
+
+#: parted/ui.c:410
+msgid ""
+"\n"
+"Error: FPE_INTDIV (Integer: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:415
+msgid ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+msgstr ""
+
+#: parted/ui.c:420
+msgid ""
+"\n"
+"Error: FPE_FLTDIV (Float: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:425
+msgid ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+msgstr ""
+
+#: parted/ui.c:430
+msgid ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+msgstr ""
+
+#: parted/ui.c:435
+msgid ""
+"\n"
+"Error: FPE_FLTRES (Float: inexact result)"
+msgstr ""
+
+#: parted/ui.c:440
+msgid ""
+"\n"
+"Error: FPE_FLTINV (Float: invalid operation)"
+msgstr ""
+
+#: parted/ui.c:445
+msgid ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript out of range)"
+msgstr ""
+
+#: parted/ui.c:450
+msgid ""
+"\n"
+"Error: A general SIGFPE signal was encountered."
+msgstr ""
+
+#: parted/ui.c:483
+msgid ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+msgstr ""
+
+#: parted/ui.c:488
+msgid ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+msgstr ""
+
+#: parted/ui.c:493
+msgid ""
+"\n"
+"Error: ILL_ILLADR (Illegal addressing mode)"
+msgstr ""
+
+#: parted/ui.c:498
+msgid ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+msgstr ""
+
+#: parted/ui.c:503
+msgid ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+msgstr ""
+
+#: parted/ui.c:508
+msgid ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+msgstr ""
+
+#: parted/ui.c:513
+msgid ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+msgstr ""
+
+#: parted/ui.c:518
+msgid ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+msgstr ""
+
+#: parted/ui.c:523
+msgid ""
+"\n"
+"Error: A general SIGILL signal was encountered."
+msgstr ""
+
+#: parted/ui.c:1024
+msgid "Expecting a partition number."
+msgstr "Se esperaba un número de partición."
+
+#: parted/ui.c:1033
+msgid "Partition doesn't exist."
+msgstr "La partición no existe."
+
+#: parted/ui.c:1053
+msgid "Expecting a file system type."
+msgstr "Se esperaba un tipo de sistema de ficheros."
+
+#: parted/ui.c:1060
+#, c-format
+msgid "Unknown file system type \"%s\"."
+msgstr "Tipo de sistema de ficheros \"%s\" desconocido."
+
+#: parted/ui.c:1080
+msgid "Expecting a disk label type."
+msgstr "Se esperaba un tipo de etiqueta de disco."
+
+# No se puede.
+#: parted/ui.c:1178
+msgid "Can't create any more partitions."
+msgstr "No se puede crear más particiones."
+
+#: parted/ui.c:1188
+msgid "Expecting a partition type."
+msgstr "Se esperaba un tipo de partición."
+
+#: parted/ui.c:1315
+msgid "on"
+msgstr "on"
+
+#: parted/ui.c:1316
+msgid "off"
+msgstr "off"
+
+#: parted/ui.c:1431
+msgid "OPTIONs:"
+msgstr "OPCIÓNes:"
+
+# Comando es una barbaridad. En es@li.org usamos "orden".
+#: parted/ui.c:1436
+msgid "COMMANDs:"
+msgstr "ORDENes:"
+
+#: parted/ui.c:1445
+#, c-format
+msgid "Using %s\n"
+msgstr "Usando %s\n"
+
+#: parted/ui.c:1519
+msgid "This command does not make sense in non-interactive mode.\n"
+msgstr ""
+
+#~ msgid "where necessary, prompts for user intervention"
+#~ msgstr "donde sea necesario, pedir la intervención del usuario"
+
+#, fuzzy
+#~ msgid ""
+#~ "Without arguments, print displays the entire partition table. With "
+#~ "'free'\n"
+#~ "argument, information about free space will be displayed otherwise if a\n"
+#~ "partition number is given, then more detailed information is displayed\n"
+#~ "about that partition. If the 'all' argument is passed instead, partition\n"
+#~ "information for all devices will be displayed.\n"
+#~ msgstr ""
+#~ "Sin argumentos, print muestra la tabla de particiones entera.  Si se\n"
+#~ "da un número de partición, se muestra la información más detallada\n"
+#~ "sobre esa particion.\n"
+
+# drives -> unidades
+#~ msgid ""
+#~ "The sector size on %s is %d bytes.  Parted is known not to work properly "
+#~ "with drives with sector sizes other than %d bytes."
+#~ msgstr ""
+#~ "El tamaño del sector en %s es de %d bytes.  Parted no funciona "
+#~ "correctamente con unidades que tengan un tamaño de sector distinto de %d "
+#~ "bytes"
+
+#~ msgid "IDE"
+#~ msgstr "IDE"
+
+#~ msgid "Attempt to read sectors %ld-%ld outside of partition on %s."
+#~ msgstr ""
+#~ "Se intentaron leer los sectores %ld-%ld fuera de la partición en %s."
+
+#~ msgid ""
+#~ "This ext2 file system has a rather strange layout!  Parted can't resize "
+#~ "this (yet)."
+#~ msgstr ""
+#~ "¡Este sistema de ficheros ext2 tiene un diseño muy estraño!  Parted (aún) "
+#~ "no puede redimensionarlo."
+
+#~ msgid ""
+#~ "You requested to create a partition at %s - %s. The closest Parted can "
+#~ "manage is %s - %s."
+#~ msgstr ""
+#~ "Pidió crear una partición en %s - %s. Lo más cerca que Parted puede "
+#~ "manejar es %s - %s."
+
+#~ msgid "Disk geometry for %s: %s - %s\n"
+#~ msgstr "Geometría de disco para %s: %s - %s\n"
+
+#~ msgid "Disk label type: %s\n"
+#~ msgstr "Tipo de etiqueta de disco: %s\n"
+
+#~ msgid ""
+#~ "You requested to resize the partition to %s - %s.  The closest Parted can "
+#~ "manage is %s - %s."
+#~ msgstr ""
+#~ "Pidió redimensionar la partición para %s - %s. Lo más cerca que Parted "
+#~ "puede manejar es %s - %s."
+
+#~ msgid ""
+#~ "You found a bug in GNU Parted.  Please email a bug report to bug-"
+#~ "parted@gnu.org containing the version (%s), and the following message:\n"
+#~ msgstr ""
+#~ "Encontró un bicho en GNU parted.  Por favor, envíe un informe del bicho a "
+#~ "bug-parted@gnu.org conteniedo la versión (%s), y el siguiente mensaje:\n"
+
+# No se puede.
+#~ msgid "Could not read geometry of %s - %s."
+#~ msgstr "No se puede leer la geometría de %s - %s."
+
+# Pon `dodgey' entre comitas, por lo menos mientras no se encuentre una
+# traducción.
+# En otras traducciones definen dodgey como inadmisible o extraña. vll
+#~ msgid "Device %s has dodgey geometry."
+#~ msgstr "El dispositivo %s tiene una geometría incorrecta."
+
+#~ msgid "SCSI"
+#~ msgstr "SCSI"
+
+# ninguna + ni doble negación
+# Yo lo dejaría en "no es una unidad SCSI ni IDE"
+#~ msgid "Device %s is neither a SCSI nor IDE drive."
+#~ msgstr "El dispositivo %s no es una unidad SCSI ni IDE."
+
+#~ msgid "Error reading %s (%s) to determine if partition is mounted."
+#~ msgstr "Error leyendo %s (%s) para determinar si la partición está montada."
+
+# detectara -> detectó (se entiende mejor)
+# BIOS es masculino pues se trata del Sistema Básico de Entrada/Salida
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  However, the most likely reason is that Linux "
+#~ "detected the BIOS geometry for %s incorrectly.  GNU Parted suspects the "
+#~ "real geometry should be %d/%d/%d (not %d/%d/%d).  You should check with "
+#~ "your BIOS first, as this may not be correct.  You can inform Linux by "
+#~ "adding the parameter %s=%d,%d,%d to the command line.  See the LILO or "
+#~ "GRUB documentation for more information.  If you think Parted's suggested "
+#~ "geometry is correct, you may select Ignore to continue (and fix Linux "
+#~ "later).  Otherwise, select Cancel (and fix Linux and/or the BIOS now)."
+#~ msgstr ""
+#~ "La tabla de particiones en %s es inconsistente.  Hay varias razones para "
+#~ "que ocurra esto. Sin embargo, la razón más probable es que Linux detectó "
+#~ "la geometría de la BIOS para %s incorrectamente.  GNU Parted sospecha que "
+#~ "la geometría real debería ser %d/%d/%d (y no %d/%d/%d).  Debería "
+#~ "comprobar su BIOS primero, pues esta puede no ser correcta. Puede "
+#~ "informar a Linux añadiendo el parámetro %s=%d,%d,%d en la línea de "
+#~ "órdenes.  Vea la documentación de LILO o GRUB para obtener más "
+#~ "información.  Si cree que la geometría sugerida por Parted es correcta, "
+#~ "puede seleccionar Ignorar para continuar (y arreglar Linux después).  De "
+#~ "lo contrario, seleccione Cancelar (y repare Linux y/o la BIOS ahora)."
+
+# tabla de particiones
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  Often, the reason is that Linux detected the "
+#~ "BIOS geometry incorrectly.  However, this does not appear to be the case "
+#~ "here.  It is safe to ignore,but ignoring may cause (fixable) problems "
+#~ "with some boot loaders, and may cause problems with FAT file systems.  "
+#~ "Using LBA is recommended."
+#~ msgstr ""
+#~ "La tabla de particiones en %s es inconsistente.  Hay varias razones para "
+#~ "que esto ocurra. Muchas veces, la razón es que Linux detecta la geometría "
+#~ "de la BIOS incorrectamente. Sin embargo, este no parece ser el caso aquí. "
+#~ "Puede estar seguro ignorándolo, pero el ignorarlo puede causar problemas "
+#~ "(reparables) con algunos cargadores de arranque, y puede causar problemas "
+#~ "con sistemas de ficheros FAT. Es recomendable usar LBA."
+
+# partitioning tool -> herramienta de particionado.
+#~ msgid ""
+#~ "Unable to align partition properly.  This probably means that another "
+#~ "partitioning tool generated an incorrect partition table, because it "
+#~ "didn't have the correct BIOS geometry.  It is safe to ignore,but ignoring "
+#~ "may cause (fixable) problems with some boot loaders."
+#~ msgstr ""
+#~ "No se puede alinear correctamente la partición. Esto probablemente "
+#~ "significa que otra herramienta de particionado ha generado una tabla de "
+#~ "la partición incorrecta, porque no tiene correcta la geometría de la "
+#~ "BIOS. Puede estar seguro ignorándolo, pero el ignorarlo puede causar "
+#~ "problemas (reparables) con algunos cargadores de arranque."
+
+#~ msgid "File system has an invalid signature for a FAT file systems."
+#~ msgstr ""
+#~ "El sistema de ficheros tiene una firma inválida para un sistema de "
+#~ "ficheros FAT."
+
+#~ msgid "START and END are in megabytes\n"
+#~ msgstr "INICIO y FIN son en megabytes\n"
+
+#~ msgid "Partition is being used."
+#~ msgstr "La partición está siendo usada."
+
+#~ msgid "Minor    Start       End     "
+#~ msgstr "Minor   Inicio      Fin     "
+
+#~ msgid "Type      "
+#~ msgstr "Tipo      "
+
+#~ msgid "Filesystem  "
+#~ msgstr "Sistema de ficheros  "
+
+#~ msgid "Name                  "
+#~ msgstr "Nombre               "
+
+#~ msgid ""
+#~ "  You have Windows FAT partition(s) that are not using LBA.  If your BIOS "
+#~ "supports LBA, then you should switch to LBA by setting the LBA flag on "
+#~ "all FAT partitions.  Otherwise, make sure the operating system and the "
+#~ "BIOS have the same geometry before resizing any FAT partitions."
+#~ msgstr ""
+#~ "  Tiene particiones FAT Windows que no están usando LBA.  Si su BIOS "
+#~ "soporta LBA, debería cambiarse a LBA poniendo el modificador LBA en todas "
+#~ "las particiones FAT. De otro modo, asegúrese de que el sistema operativo "
+#~ "y la BIOS tienen la misma geometría antes de redimensionar cualquiera de "
+#~ "las particiones FAT."
+
+#~ msgid ""
+#~ "The operating system thinks the geometry on %s is %d/%d/%d.  Therefore, "
+#~ "cylinder 1024 ends at %.3fM.%s"
+#~ msgstr ""
+#~ "El sistema operativo opina que la geometría en %s es %d/%d/%d.  Por "
+#~ "consiguiente, el cilindro 1024 termina en %.3fM.%s"
+
+# cree, piensa (no sé, eso de "opina" no me pega, ya sé que los ordenadores
+# no piensan ni tienen creencias, pero me pega menos todavía que tengan
+# opiniones).
+#~ msgid "The operating system thinks the geometry on %s is %d/%d/%d.%s"
+#~ msgstr "El sistema operativo cree que la geometría en %s es %d/%d/%d.%s"
diff --git a/parted-1.8.7/po/fr.gmo b/parted-1.8.7/po/fr.gmo
new file mode 100644
index 0000000..bc5aa6f
--- /dev/null
+++ b/parted-1.8.7/po/fr.gmo
Binary files differ
diff --git a/parted-1.8.7/po/fr.po b/parted-1.8.7/po/fr.po
new file mode 100644
index 0000000..82d190b
--- /dev/null
+++ b/parted-1.8.7/po/fr.po
@@ -0,0 +1,3842 @@
+# Messages français pour GNU Parted.
+# Copyright © 2001, 2004, 2005 Free Software Foundation, Inc.
+# Michel Robitaille <robitail@IRO.UMontreal.CA>, traducteur since/depuis 1996.
+# Laurent Marsac <laurent DOT marsac AT laposte DOT net> 2006
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: parted 1.7.0rc1\n"
+"Report-Msgid-Bugs-To: bug-parted@gnu.org\n"
+"POT-Creation-Date: 2007-05-09 17:02-0400\n"
+"PO-Revision-Date: 2006-07-15 10:52-0500\n"
+"Last-Translator: Michel Robitaille <robitail@IRO.UMontreal.CA>\n"
+"Language-Team: French <traduc@traduc.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: lib/closeout.c:74
+msgid "write error"
+msgstr ""
+
+#: lib/error.c:125
+#, fuzzy
+msgid "Unknown system error"
+msgstr "Type de système de fichiers inconnu \"%s\"."
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK).  A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#.
+#. If you don't know what to put here, please see
+#. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr ""
+
+#: lib/regcomp.c:131
+msgid "Success"
+msgstr ""
+
+#: lib/regcomp.c:134
+msgid "No match"
+msgstr ""
+
+#: lib/regcomp.c:137
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regcomp.c:140
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regcomp.c:143
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regcomp.c:146
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regcomp.c:149
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regcomp.c:152
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regcomp.c:155
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regcomp.c:158
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regcomp.c:161
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regcomp.c:164
+#, fuzzy
+msgid "Invalid range end"
+msgstr "Nombre invalide."
+
+#: lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regcomp.c:170
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regcomp.c:173
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regcomp.c:176
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regcomp.c:179
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regcomp.c:680
+msgid "No previous regular expression"
+msgstr ""
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr ""
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:66
+msgid "(C)"
+msgstr ""
+
+#: lib/version-etc.c:68
+msgid ""
+"\n"
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:84
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:88
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:92
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:98
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:104
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:110
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:132
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+
+#: lib/xalloc-die.c:35
+msgid "memory exhausted"
+msgstr ""
+
+#: libparted/arch/beos.c:237
+msgid "Disk Image"
+msgstr ""
+
+#: libparted/arch/beos.c:338 libparted/arch/gnu.c:261
+#: libparted/arch/linux.c:1272
+#, c-format
+msgid "Error opening %s: %s"
+msgstr "Erreur pendant l'ouverture de %s: %s"
+
+#: libparted/arch/beos.c:349 libparted/arch/gnu.c:271
+#: libparted/arch/linux.c:1283
+#, c-format
+msgid "Unable to open %s read-write (%s).  %s has been opened read-only."
+msgstr ""
+"Impossible d'ouvrir %s en lecture-écriture (%s). %s a été ouvert en lecture "
+"seule."
+
+#: libparted/arch/beos.c:411 libparted/arch/linux.c:1431
+#, c-format
+msgid "%s during seek for read on %s"
+msgstr "%s lors d'un positionnement pour lecture sur %s"
+
+#: libparted/arch/beos.c:444 libparted/arch/gnu.c:449 libparted/arch/gnu.c:548
+#: libparted/arch/gnu.c:676 libparted/arch/linux.c:1391
+#: libparted/arch/linux.c:1469
+#, c-format
+msgid "%s during read on %s"
+msgstr "%s lors de la lecture sur %s"
+
+#: libparted/arch/beos.c:480 libparted/arch/gnu.c:509
+#: libparted/arch/linux.c:1546
+#, c-format
+msgid "Can't write to %s, because it is opened read-only."
+msgstr "Ne peut écrire sur %s car il est ouvert en lecture seule."
+
+#: libparted/arch/beos.c:496 libparted/arch/linux.c:1570
+#, c-format
+msgid "%s during seek for write on %s"
+msgstr "%s lors d'un positionnement pour écriture sur %s"
+
+#: libparted/arch/beos.c:533 libparted/arch/gnu.c:585 libparted/arch/gnu.c:630
+#: libparted/arch/gnu.c:707 libparted/arch/linux.c:1517
+#: libparted/arch/linux.c:1612 libparted/arch/linux.c:1684
+#, c-format
+msgid "%s during write on %s"
+msgstr "%s lors de l'écriture sur %s"
+
+#: debug/clearfat/clearfat.c:63 partprobe/partprobe.c:137
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:67
+#, c-format
+msgid ""
+"Usage: %s [OPTION]\n"
+"  or:  %s DEVICE MINOR\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:70
+msgid ""
+"Clear unused space on a FAT partition (a GNU Parted testing tool).\n"
+"\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:74
+msgid "      --help     display this help and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:75
+msgid "      --version  output version information and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:77 partprobe/partprobe.c:154
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:285
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:290
+#, fuzzy, c-format
+msgid "too many arguments"
+msgstr "Trop de pages erronées."
+
+#: partprobe/partprobe.c:141
+#, c-format
+msgid "Usage: %s [OPTION] [DEVICE]...\n"
+msgstr ""
+
+#: partprobe/partprobe.c:142
+msgid ""
+"Inform the OS of partition table changes.\n"
+"\n"
+"  -d, --no-update  don't update the kernel\n"
+"  -s, --summary    print a summary of contents\n"
+"  -h, --help       display this help and exit\n"
+"  -v, --version    output version information and exit\n"
+msgstr ""
+
+#: partprobe/partprobe.c:150
+msgid ""
+"\n"
+"With no DEVICE, probe all partitions.\n"
+msgstr ""
+
+#: libparted/arch/gnu.c:94
+#, c-format
+msgid "Unable to open %s."
+msgstr "Impossible d'ouvrir %s."
+
+#: libparted/arch/gnu.c:114
+msgid "Unable to probe store."
+msgstr "Impossible de sonder le stockage."
+
+#: libparted/arch/gnu.c:352
+msgid ""
+"The partition table cannot be re-read.  This means you need to reboot before "
+"mounting any modified partitions.  You also need to reinstall your boot "
+"loader before you reboot (which may require mounting modified partitions).  "
+"It is impossible do both things!  So you'll need to boot off a rescue disk, "
+"and reinstall your boot loader from the rescue disk.  Read section 4 of the "
+"Parted User documentation for more information."
+msgstr ""
+"La table de partition ne peut être relue, vous avez donc besoin de "
+"redémarrer avant de monter toute partition modifiée. Vous devez aussi "
+"réinstaller le gestionnaire de démarrage avant de redémarrer (ce qui peut "
+"nécessiter de monter les partitions modifiées). Il est impossible de faire "
+"ces choses ensemble ! C'est pourquoi vous aurez besoin de démarrer à partir "
+"d'un disque de secours et de ré-installer le gestionnaire de démarrage à "
+"partir de ce disque. Consultez la section 4 de la documentation utilisateur "
+"de Parted pour plus de détails."
+
+#: libparted/arch/gnu.c:369
+#, c-format
+msgid ""
+"The partition table on %s cannot be re-read (%s).  This means the Hurd knows "
+"nothing about any modifications you made.  You should reboot your computer "
+"before doing anything with %s."
+msgstr ""
+"La table de partition sur %s ne peut être relue (%s). Cela signifie que Hurd "
+"ne connaît rien des modifications effectuées. Vous devriez redémarrer "
+"l'ordinateur avant de faire quoique ce soit avec %s."
+
+#: libparted/arch/gnu.c:380 parted/parted.c:2443
+msgid ""
+"You should reinstall your boot loader before rebooting.  Read section 4 of "
+"the Parted User documentation for more information."
+msgstr ""
+"Vous devriez réinstaller le gestionnaire de démarrage avant de redémarrer. "
+"Consultez la section 4 de la documentation utilisateur de Parted pour plus "
+"d'informations."
+
+#: libparted/arch/gnu.c:772
+#, c-format
+msgid "%s trying to sync %s to disk"
+msgstr "%s essaie de synchroniser %s sur le disque"
+
+#: libparted/arch/linux.c:408
+#, c-format
+msgid "Could not stat device %s - %s."
+msgstr "Ne peut évaluer le statut du périphérique %s - %s."
+
+#: libparted/arch/linux.c:523
+#, fuzzy, c-format
+msgid ""
+"Could not determine sector size for %s: %s.\n"
+"Using the default sector size (%lld)."
+msgstr ""
+"Impossible de téderminer la taille des secteurs de %s : %s.\n"
+"On utilise la taille des secteurs par defaut (%d)."
+
+#: libparted/arch/linux.c:539
+#, fuzzy, c-format
+msgid ""
+"Device %s has a logical sector size of %lld.  Not all parts of GNU Parted "
+"support this at the moment, and the working code is HIGHLY EXPERIMENTAL.\n"
+msgstr ""
+"La taille des secteurs logiques pour %s est %d. Tous les composants de GNU "
+"Parted ne supportent pas cela pour l'instant.\n"
+
+#: libparted/arch/linux.c:579
+#, c-format
+msgid "Unable to determine the size of %s (%s)."
+msgstr "Impossible de déterminer la taille de %s (%s)."
+
+#: libparted/arch/linux.c:668
+#, c-format
+msgid "Could not get identity of device %s - %s"
+msgstr "Ne peut obtenir l'identité du périphérique %s - %s"
+
+#: libparted/arch/linux.c:677
+msgid "Generic IDE"
+msgstr "IDE générique"
+
+#: libparted/arch/linux.c:698
+#, c-format
+msgid ""
+"Device %s has multiple (%d) logical sectors per physical sector.\n"
+"GNU Parted supports this EXPERIMENTALLY for some special disk label/file "
+"system combinations, e.g. GPT and ext2/3.\n"
+"Please consult the web site for up-to-date information."
+msgstr ""
+"Le périphérique %s a de multiples (%d) secteurs logiques par secteur "
+"physique.\n"
+"GNU Parted supporte cela de manière EXPERIMENTALE pour certaines étiquettes "
+"de disque / combinaisons de systèmes de fichiers spéciales, i.e. GPT et "
+"ext2/3.\n"
+"Merci de consulter le site web pour des informations à jour."
+
+#: libparted/arch/linux.c:873
+#, c-format
+msgid "Error initialising SCSI device %s - %s"
+msgstr "Erreur d'initialisation du périphérique SCSI %s - %s"
+
+#: libparted/arch/linux.c:928
+#, c-format
+msgid ""
+"The device %s has zero length, and can't possibly store a file system or "
+"partition table.  Perhaps you selected the wrong device?"
+msgstr ""
+"Le périphérique %s a une taille nulle et ne peut donc pas stocker un système "
+"de fichiers ou une table de partition. Peut-être avez-vous sélectionné le "
+"mauvais périphérique ?"
+
+#: libparted/arch/linux.c:1032
+#, fuzzy, c-format
+msgid ""
+"Unable to determine geometry of file/device %s.  You should not use Parted "
+"unless you REALLY know what you're doing!"
+msgstr ""
+"Impossible de déterminer la géométrie du fichier/périphérique. Vous ne "
+"devriez pas utiliser Parted sans VRAIMENT savoir ce que vous faites !"
+
+#: libparted/arch/linux.c:1110
+msgid "DAC960 RAID controller"
+msgstr "Contrôleur RAID DAC960"
+
+#: libparted/arch/linux.c:1115
+msgid "Promise SX8 SATA Device"
+msgstr ""
+
+#: libparted/arch/linux.c:1120
+msgid "IBM S390 DASD drive"
+msgstr ""
+
+#: libparted/arch/linux.c:1125
+msgid "IBM iSeries Virtual DASD"
+msgstr ""
+
+#: libparted/arch/linux.c:1130
+msgid "Compaq Smart Array"
+msgstr "Compaq Smart Array"
+
+#: libparted/arch/linux.c:1135
+msgid "ATARAID Controller"
+msgstr "Contrôleur ATARAID"
+
+#: libparted/arch/linux.c:1140
+msgid "I2O Controller"
+msgstr "Contrôleur I2O"
+
+#: libparted/arch/linux.c:1145
+msgid "User-Mode Linux UBD"
+msgstr "User-Mode Linux UBD"
+
+#: libparted/arch/linux.c:1156
+msgid "Linux device-mapper"
+msgstr ""
+
+#: libparted/arch/linux.c:1162
+msgid "Unknown"
+msgstr "Inconnu"
+
+#: libparted/arch/linux.c:1169
+msgid "ped_device_new()  Unsupported device type"
+msgstr "ped_device_new()  Type de périphérique non supporté"
+
+#: libparted/arch/linux.c:2083
+#, c-format
+msgid ""
+"Error informing the kernel about modifications to partition %s -- %s.  This "
+"means Linux won't know about any changes you made to %s until you reboot -- "
+"so you shouldn't mount it or use it in any way before rebooting."
+msgstr ""
+"Erreur lors de l'information au kernel des modifications de la partition %s "
+"- %s. Cela signifie que Linux ne reconnaîtra aucun des changements faits sur "
+"%s avant de redémarrer - vous ne devriez donc pas le monter ou l'utiliser "
+"avant de redémarrer."
+
+#: libparted/arch/linux.c:2262
+#, fuzzy, c-format
+msgid ""
+"parted was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made. "
+msgstr ""
+"Le kernel a été incapable de relire la table de partition sur %s (%s). Cela "
+"signifie que Linux ne reconnaîtra aucune des modifications effectuées avant "
+"de redémarrer. Vous devriez redémarrer votre ordinateur avant de faire "
+"quoique ce soit avec %s."
+
+#: libparted/arch/linux.c:2368
+#, c-format
+msgid ""
+"The kernel was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made until you "
+"reboot.  You should reboot your computer before doing anything with %s."
+msgstr ""
+"Le kernel a été incapable de relire la table de partition sur %s (%s). Cela "
+"signifie que Linux ne reconnaîtra aucune des modifications effectuées avant "
+"de redémarrer. Vous devriez redémarrer votre ordinateur avant de faire "
+"quoique ce soit avec %s."
+
+#: libparted/cs/geom.c:162
+msgid "Can't have the end before the start!"
+msgstr "La fin ne peut pas être avant le début !"
+
+#: libparted/cs/geom.c:169
+msgid "Can't have a partition outside the disk!"
+msgstr "La partition ne peut pas être en dehors du disque !"
+
+#: libparted/cs/geom.c:366
+#, c-format
+msgid "Attempt to write sectors %ld-%ld outside of partition on %s."
+msgstr ""
+"Tentative d'écriture des secteurs %ld-%ld en dehors de la partition sur %s."
+
+#: libparted/cs/geom.c:406 libparted/fs/linux_swap/linux_swap.c:475
+msgid "checking for bad blocks"
+msgstr "recherche de blocs défectueux"
+
+#: libparted/debug.c:102
+#, c-format
+msgid "Backtrace has %d calls on stack:\n"
+msgstr ""
+
+#: libparted/debug.c:114
+#, c-format
+msgid "Assertion (%s) at %s:%d in function %s() failed."
+msgstr ""
+
+#: libparted/disk.c:203
+#, c-format
+msgid "Unable to open %s - unrecognised disk label."
+msgstr "Impossible d'ouvrir %s - étiquette de disque non reconnue."
+
+#: libparted/disk.c:471
+#, c-format
+msgid ""
+"This libparted doesn't have write support for %s.  Perhaps it was compiled "
+"read-only."
+msgstr ""
+"Cette libparted n'a pas de support pour l'écriture pour %s. Peut-être a-t-il "
+"été compilé en lecture seule."
+
+#: libparted/disk.c:598
+#, c-format
+msgid "Partition %d is %s, but the file system is %s."
+msgstr "La partition %d est %s mais le système de fichiers est %s."
+
+#: libparted/disk.c:1075
+#, c-format
+msgid "%s disk labels do not support extended partitions."
+msgstr "Les étiquettes du disque %s ne supportent pas les partitions étendues."
+
+#: libparted/disk.c:1634
+#, c-format
+msgid "%s disk labels don't support logical or extended partitions."
+msgstr ""
+"Les étiquettes du disque %s ne supportent pas les partitions logiques ou "
+"étendues."
+
+#: libparted/disk.c:1647
+msgid "Too many primary partitions."
+msgstr "Trop de partitions primaires."
+
+#: libparted/disk.c:1656
+#, c-format
+msgid ""
+"Can't add a logical partition to %s, because there is no extended partition."
+msgstr ""
+"Ne peut ajouter une partition logique sur %s parce qu'il n'y a pas de "
+"partition étendue."
+
+#: libparted/disk.c:1680
+#, c-format
+msgid "Can't have more than one extended partition on %s."
+msgstr "On ne peut avoir plus d'une partition étendue sur %s"
+
+#: libparted/disk.c:1690
+msgid "Can't have logical partitions outside of the extended partition."
+msgstr "Ne peut avoir de partition logique en dehors de la partition étendue."
+
+#: libparted/disk.c:1715
+#, c-format
+msgid "Can't have a logical partition outside of the extended partition on %s."
+msgstr ""
+"Ne peut avoir une partition logique en dehors de la partition étendue sur %s."
+
+#: libparted/disk.c:1725 libparted/disk.c:1779 libparted/disk.c:1945
+msgid "Can't have overlapping partitions."
+msgstr "Ne peut avoir des partitions qui se chevauchent."
+
+#: libparted/disk.c:1733
+msgid "Can't have a primary partition inside an extended partition."
+msgstr ""
+"Ne peut avoir une partition primaire à l'intérieur d'une partition étendue."
+
+#: libparted/disk.c:2140
+msgid "metadata"
+msgstr "méta-données"
+
+#: libparted/disk.c:2142
+msgid "free"
+msgstr "libre"
+
+#: libparted/disk.c:2144 parted/ui.c:1169 parted/ui.c:1197
+msgid "extended"
+msgstr "étendue"
+
+#: libparted/disk.c:2146 parted/ui.c:1173 parted/ui.c:1201
+msgid "logical"
+msgstr "logique"
+
+#: libparted/disk.c:2148 parted/ui.c:1165 parted/ui.c:1193
+msgid "primary"
+msgstr "primaire"
+
+#: libparted/disk.c:2164
+msgid "boot"
+msgstr "démarrage"
+
+#: libparted/disk.c:2166
+msgid "root"
+msgstr "racine"
+
+#: libparted/disk.c:2168
+msgid "swap"
+msgstr "swap"
+
+#: libparted/disk.c:2170
+msgid "hidden"
+msgstr "caché"
+
+#: libparted/disk.c:2172
+msgid "raid"
+msgstr "raid"
+
+#: libparted/disk.c:2174
+msgid "lvm"
+msgstr "lvm"
+
+#: libparted/disk.c:2176
+msgid "lba"
+msgstr "lba"
+
+#: libparted/disk.c:2178
+msgid "hp-service"
+msgstr "hp-service"
+
+#: libparted/disk.c:2180
+msgid "palo"
+msgstr "palo"
+
+#: libparted/disk.c:2182
+msgid "prep"
+msgstr "prep"
+
+#: libparted/disk.c:2184
+msgid "msftres"
+msgstr "msftres"
+
+#: libparted/disk.c:2190
+#, c-format
+msgid "Unknown partition flag, %d."
+msgstr "Fanion de partition inconnu %d."
+
+#: libparted/exception.c:78
+msgid "Information"
+msgstr "Information"
+
+#: libparted/exception.c:79
+msgid "Warning"
+msgstr "Avertissement"
+
+#: libparted/exception.c:80
+msgid "Error"
+msgstr "Erreur"
+
+#: libparted/exception.c:81
+msgid "Fatal"
+msgstr "Fatal"
+
+#: libparted/exception.c:82
+msgid "Bug"
+msgstr "Bug"
+
+#: libparted/exception.c:83
+msgid "No Implementation"
+msgstr "Pas d'implantation"
+
+#: libparted/exception.c:87
+msgid "Fix"
+msgstr "Fix"
+
+#: libparted/exception.c:88
+msgid "Yes"
+msgstr "Yes"
+
+#: libparted/exception.c:89
+msgid "No"
+msgstr "No"
+
+#: libparted/exception.c:90
+msgid "OK"
+msgstr "OK"
+
+#: libparted/exception.c:91
+msgid "Retry"
+msgstr "Nouvel essai"
+
+#: libparted/exception.c:92
+msgid "Ignore"
+msgstr "Ignorer"
+
+#: libparted/exception.c:93
+msgid "Cancel"
+msgstr "Annuler"
+
+#: libparted/exception.c:133
+#, c-format
+msgid ""
+"A bug has been detected in GNU Parted.  Refer to the web site of parted "
+"http://www.gnu.org/software/parted/parted.html for more informations of what "
+"could be useful for bug submitting!  Please email a bug report to bug-"
+"parted@gnu.org containing at least the version (%s) and the following "
+"message:  "
+msgstr ""
+"Une anomalie a été détectée dans GNU Parted. Reportez-vous au site de Parted "
+"http://www.gnu.org/software/parted/parted.html pour plus d'informations sur "
+"ce qui pourrait être utile pour le signalement de l'anomalie ! SVP rapportez "
+"celle-ci à bug-parted@gnu.org en précisant la version (%s) et le message "
+"suivant:"
+
+#: libparted/filesys.c:384
+msgid "Could not detect file system."
+msgstr "Ne peut détecter le système de fichiers."
+
+#: libparted/filesys.c:395
+msgid "The file system is bigger than its volume!"
+msgstr "Le système de fichiers est plus gros que son volume !"
+
+#: libparted/filesys.c:403
+#, c-format
+msgid "Support for opening %s file systems is not implemented yet."
+msgstr "L'ouverture du système de fichiers %s n'est pas encore supportée."
+
+#: libparted/filesys.c:445
+#, c-format
+msgid "Support for creating %s file systems is not implemented yet."
+msgstr ""
+"Le support pour la création du système de fichiers %s n'est pas encore "
+"implanté."
+
+#: libparted/filesys.c:505
+#, c-format
+msgid "Support for checking %s file systems is not implemented yet."
+msgstr ""
+"Le support pour la vérification du système de fichiers %s n'est pas encore "
+"implanté."
+
+#: libparted/filesys.c:571
+msgid "raw block copying"
+msgstr "copie brute de blocs"
+
+#: libparted/filesys.c:582
+msgid "growing file system"
+msgstr "le système de fichiers grossit"
+
+#: libparted/filesys.c:622
+msgid "Can't copy onto an overlapping partition."
+msgstr "Ne peut copier sur une partition qui en chevauche une autre."
+
+#: libparted/filesys.c:644
+#, c-format
+msgid ""
+"Direct support for copying file systems is not yet implemented for %s.  "
+"However, support for resizing is implemented.  Therefore, the file system "
+"can be copied if the new partition is at least as big as the old one.  So, "
+"either shrink the partition you are trying to copy, or copy to a bigger "
+"partition."
+msgstr ""
+"Le support direct pour la copie de système de fichiers n'est pas encore "
+"implanté pour %s. Cependant le support pour le redimensionnement l'est. Par "
+"conséquent, le système de fichiers peut être copié si la nouvelle partition "
+"est au moins aussi grande que l'ancienne. Donc, vous pouvez soit réduire la "
+"partition que vous tenter de copier, soit la copier vers une partition plus "
+"grande."
+
+#: libparted/filesys.c:658
+#, c-format
+msgid "Support for copying %s file systems is not implemented yet."
+msgstr ""
+"Le support pour la copie du système de fichiers %s n'est pas encore implanté."
+
+#: libparted/filesys.c:696
+#, c-format
+msgid "Support for resizing %s file systems is not implemented yet."
+msgstr ""
+"Le support pour la modification de la taille du système de fichiers %s n'est "
+"pas encore implanté."
+
+#: libparted/fs/reiserfs/reiserfs.c:315
+msgid "creating"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:402
+#, fuzzy
+msgid "The file system is in an invalid state.  Perhaps it is mounted?"
+msgstr "Le système de fichiers est plus gros que son volume !"
+
+#: libparted/fs/reiserfs/reiserfs.c:410
+msgid "The file system is in old (unresizeable) format."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:416
+msgid "Invalid free blocks count.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:431
+#, fuzzy
+msgid "checking"
+msgstr "check"
+
+#: libparted/fs/reiserfs/reiserfs.c:437
+msgid "Reiserfs tree seems to be corrupted.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:449
+#, fuzzy
+msgid ""
+"The reiserfs file system passed a basic check.  For a more comprehensive "
+"check, run reiserfsck --check."
+msgstr ""
+"Le système de fichiers ext2 a passé la vérification de base. Pour une "
+"vérification plus approfondie, utilisez e2fsck."
+
+#: libparted/fs/reiserfs/reiserfs.c:474
+#, fuzzy
+msgid "Sorry, can't move the start of reiserfs partitions yet."
+msgstr "Désolé, on ne peut pas encore déplacer le début d'une partition ext2 !"
+
+#: libparted/fs/reiserfs/reiserfs.c:490
+msgid "Couldn't reopen device abstraction layer for read/write."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:508 libparted/fs/ext2/ext2_resize.c:552
+#: libparted/fs/hfs/hfs.c:250 libparted/fs/hfs/hfs.c:629
+msgid "shrinking"
+msgstr "réduction"
+
+#: libparted/fs/reiserfs/reiserfs.c:520
+#, fuzzy
+msgid "expanding"
+msgstr "Avertissement"
+
+#: libparted/fs/reiserfs/reiserfs.c:592
+msgid "Couldn't create reiserfs device abstraction handler."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:606
+#, fuzzy, c-format
+msgid "Device is too small for %lu blocks."
+msgstr "Système de fichiers trop petit pour ext2."
+
+#: libparted/fs/reiserfs/reiserfs.c:615
+msgid "copying"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:682
+#, c-format
+msgid "Couldn't resolve symbol %s.  Error: %s."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:704
+msgid "GNU Parted found an invalid libreiserfs library."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:715
+#, c-format
+msgid ""
+"GNU Parted has detected libreiserfs interface version mismatch.  Found %d-%"
+"d, required %d. ReiserFS support will be disabled."
+msgstr ""
+
+#: libparted/labels/aix.c:137
+#, fuzzy
+msgid "Support for reading AIX disk labels is is not implemented yet."
+msgstr ""
+"Le support pour la création du système de fichiers %s n'est pas encore "
+"implanté."
+
+#: libparted/labels/aix.c:148
+#, fuzzy
+msgid "Support for writing AIX disk labels is is not implemented yet."
+msgstr ""
+"Le support pour la création du système de fichiers %s n'est pas encore "
+"implanté."
+
+#: libparted/labels/aix.c:161
+#, fuzzy
+msgid ""
+"Support for adding partitions to AIX disk labels is not implemented yet."
+msgstr ""
+"Le support pour la création du système de fichiers %s n'est pas encore "
+"implanté."
+
+#: libparted/labels/aix.c:171
+#, fuzzy
+msgid ""
+"Support for duplicating partitions in AIX disk labels is not implemented yet."
+msgstr ""
+"Le support pour la création du système de fichiers %s n'est pas encore "
+"implanté."
+
+#: libparted/labels/aix.c:189
+#, fuzzy
+msgid ""
+"Support for setting system type of partitions in AIX disk labels is not "
+"implemented yet."
+msgstr ""
+"Le support pour la création du système de fichiers %s n'est pas encore "
+"implanté."
+
+#: libparted/labels/aix.c:199
+#, fuzzy
+msgid "Support for setting flags in AIX disk labels is not implemented yet."
+msgstr ""
+"Le support pour la création du système de fichiers %s n'est pas encore "
+"implanté."
+
+#: libparted/labels/bsd.c:501 libparted/labels/dasd.c:755
+#: libparted/labels/dos.c:1974 libparted/labels/dvh.c:770
+#: libparted/labels/gpt.c:1448 libparted/labels/loop.c:248
+#: libparted/labels/mac.c:1408 libparted/labels/pc98.c:759
+#: libparted/labels/rdb.c:1041 libparted/labels/sun.c:705
+msgid "Unable to satisfy all constraints on the partition."
+msgstr "Impossible de satisfaire toutes les contraintes sur la partition."
+
+#: libparted/labels/bsd.c:526
+msgid "Unable to allocate a bsd disklabel slot."
+msgstr "Impossible d'allouer l'entrée d'une étiquette de disque BSD."
+
+#: libparted/labels/dasd.c:166
+#, fuzzy
+msgid "Unable to determine the block size of this dasd"
+msgstr "Impossible de déterminer la taille de %s (%s)."
+
+#: libparted/labels/dasd.c:781
+#, fuzzy
+msgid "Unable to allocate a dasd disklabel slot"
+msgstr "Impossible d'allouer l'entrée d'une étiquette de disque BSD."
+
+#: libparted/labels/dos.c:827
+#, c-format
+msgid "Invalid partition table on %s -- wrong signature %x."
+msgstr "Table de partition invalide sur %s - signature erronée %x."
+
+#: libparted/labels/dos.c:855
+#, c-format
+msgid "Invalid partition table - recursive partition on %s."
+msgstr "Table de partition invalide - partition récursive sur %s."
+
+#: libparted/labels/dos.c:1318
+msgid "Extended partitions cannot be hidden on msdos disk labels."
+msgstr ""
+"Les partitions étendues ne peuvent être cachées pour les étiquettes de "
+"disque MS-DOS."
+
+#: libparted/labels/dos.c:1958
+msgid "Parted can't resize partitions managed by Windows Dynamic Disk."
+msgstr ""
+"Parted ne peut redimensionner les partitions gérées par Windows Dynamic Disk."
+
+#: libparted/labels/dvh.c:190
+#, c-format
+msgid "%s has no extended partition (volume header partition)."
+msgstr "%s n'a pas de partition étendue (partition d'en-tête de volume)."
+
+#: libparted/labels/dvh.c:313
+msgid "Checksum is wrong, indicating the partition table is corrupt."
+msgstr ""
+"La somme de contrôle est erronée, cela indique que la table de partition est "
+"corrompue."
+
+#: libparted/labels/dvh.c:616
+msgid "Only primary partitions can be root partitions."
+msgstr "Seules les partitions primaires peuvent être des partitions root."
+
+#: libparted/labels/dvh.c:630
+msgid "Only primary partitions can be swap partitions."
+msgstr "Seules les partitions primaires peuvent être des partitions d'échange."
+
+#: libparted/labels/dvh.c:644
+msgid "Only logical partitions can be a boot file."
+msgstr "Seules les partitions logiques peuvent être un fichier d'amorçage."
+
+#: libparted/labels/dvh.c:721
+msgid "Only logical partitions (boot files) have a name."
+msgstr "Seules les partitions logiques (fichiers d'amorçage) ont un nom."
+
+#: libparted/labels/dvh.c:812
+msgid "Too many primary partitions"
+msgstr "Trop de partitions primaires"
+
+#: libparted/labels/fdasd.c:103
+#, c-format
+msgid ""
+"%s open error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:107
+#, c-format
+msgid ""
+"%s seek error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:110
+#, c-format
+msgid ""
+"%s read error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:113
+#, fuzzy, c-format
+msgid ""
+"%s write error\n"
+"%s\n"
+msgstr "%s lors de l'écriture sur %s"
+
+#: libparted/labels/fdasd.c:116
+#, c-format
+msgid ""
+"%s IOCTL error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:119
+#, c-format
+msgid ""
+"%s API version mismatch\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:122
+#, c-format
+msgid ""
+"%s Unsupported disk type\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:126
+#, c-format
+msgid ""
+"%s Unsupported disk format\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:130
+#, fuzzy, c-format
+msgid ""
+"%s Disk in use\n"
+"%s\n"
+msgstr "Disque %s : %s\n"
+
+#: libparted/labels/fdasd.c:133
+#, c-format
+msgid ""
+"%s Config file syntax error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:137
+#, c-format
+msgid ""
+"%s Volume label is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:141
+#, c-format
+msgid ""
+"%s a data set name is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:145
+#, c-format
+msgid ""
+"%s space allocation\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:149
+#, c-format
+msgid ""
+"%s device verification failed\n"
+"The specified device is not a valid DASD device\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:154
+#, c-format
+msgid ""
+"%s Fatal error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/gpt.c:454
+#, c-format
+msgid ""
+"%s contains GPT signatures, indicating that it has a GPT table.  However, it "
+"does not have a valid fake msdos partition table, as it should.  Perhaps it "
+"was corrupted -- possibly by a program that doesn't understand GPT partition "
+"tables.  Or perhaps you deleted the GPT table, and are now using an msdos "
+"partition table.  Is this a GPT partition table?"
+msgstr ""
+"%s contient des signatures GPT, indiquant qu'il a une table GPT. Cependant, "
+"il n'a pas une table de partition fictive MSDOS valide tel qu'il le devrait. "
+"Peut-être a-t-elle été corrompue - peut-être par un programme qui ne "
+"comprend pas les tables de partition GPT. Ou peut-être avez-vous supprimé la "
+"table GPT et utilisez-vous une table de partition MS-DOS. Ceci est-il une "
+"table de partition GPT ?"
+
+#: libparted/labels/gpt.c:648
+#, c-format
+msgid ""
+"The format of the GPT partition table is version %x, which is newer than "
+"what Parted can recognise.  Please tell us!  bug-parted@gnu.org"
+msgstr ""
+"Le format de la table de partitions GPT a la version %x, ce qui est plus "
+"récent que ce que Parted peut reconnaître. SVP nous aviser ! bug-parted@gnu."
+"org"
+
+#: libparted/labels/gpt.c:698
+#, c-format
+msgid ""
+"Not all of the space available to %s appears to be used, you can fix the GPT "
+"to use all of the space (an extra %llu blocks) or continue with the current "
+"setting? "
+msgstr ""
+
+#: libparted/labels/gpt.c:827
+msgid ""
+"The backup GPT table is not at the end of the disk, as it should be.  This "
+"might mean that another operating system believes the disk is smaller.  Fix, "
+"by moving the backup to the end (and removing the old backup)?"
+msgstr ""
+"La table d'archive GPT n'est pas à la fin du disque ainsi qu'elle le "
+"devrait. Cela peut vouloir dire qu'un autre sytème d'exploitation croit que "
+"le disque est plus petit. Corriger en déplaçant l'archive à la fin (et "
+"enlever la vieille sauvegarde) ?"
+
+#: libparted/labels/gpt.c:862
+msgid ""
+"The primary GPT table is corrupt, but the backup appears OK, so that will be "
+"used."
+msgstr ""
+"La table primaire GPT est corrompue mais l'archive semble ok, elle sera donc "
+"utilisée."
+
+#: libparted/labels/gpt.c:870
+msgid ""
+"Both the primary and backup GPT tables are corrupt.  Try making a fresh "
+"table, and using Parted's rescue feature to recover partitions."
+msgstr ""
+"Les tables GPT primaire et l'archive sont corrompues. Essayer de faire une "
+"nouvelle table et d'utiliser le mode de secours de Parted pour recupérer les "
+"partitions."
+
+#: libparted/labels/mac.c:181
+#, c-format
+msgid "Invalid signature %x for Mac disk labels."
+msgstr "Signature invalide %x pour une étiquette de disque Mac."
+
+#: libparted/labels/mac.c:226
+msgid "Partition map has no partition map entry!"
+msgstr "La table de partition n'a pas d'entrée de table de partition !"
+
+#: libparted/labels/mac.c:273
+#, c-format
+msgid "%s is too small for a Mac disk label!"
+msgstr "%s est trop petit pour une étiquette de disque Mac !"
+
+#: libparted/labels/mac.c:532
+#, c-format
+msgid "Partition %d has an invalid signature %x."
+msgstr "La partition %d a une signature invalide %x."
+
+#: libparted/labels/mac.c:550
+#, c-format
+msgid "Partition %d has an invalid length of 0 bytes!"
+msgstr "La partition %d a une longueur invalide de 0 octet !"
+
+#: libparted/labels/mac.c:580
+msgid "The data region doesn't start at the start of the partition."
+msgstr "La zone de données n'est pas au début de la partition."
+
+#: libparted/labels/mac.c:597
+msgid "The boot region doesn't start at the start of the partition."
+msgstr "La zone d'amorce n'est pas au début de la partition."
+
+#: libparted/labels/mac.c:611
+msgid "The partition's boot region doesn't occupy the entire partition."
+msgstr ""
+"La zone d'amorce de la partition n'occupe pas entièrement la partition."
+
+#: libparted/labels/mac.c:622
+msgid "The partition's data region doesn't occupy the entire partition."
+msgstr ""
+"La zone de données de la partition n'occupe pas entièrement la partition."
+
+#: libparted/labels/mac.c:675
+#, c-format
+msgid ""
+"Weird block size on device descriptor: %d bytes is not divisible by 512."
+msgstr ""
+"Taille bizarre de bloc sur le descripteur de périphérique: %d octets n'est "
+"pas divisible par 512."
+
+#: libparted/labels/mac.c:688
+#, c-format
+msgid ""
+"The driver descriptor says the physical block size is %d bytes, but Linux "
+"says it is %d bytes."
+msgstr ""
+"Le descripteur de pilote indique une taille physique de bloc de %d octets, "
+"mais Linux lui indique %d octets."
+
+#: libparted/labels/mac.c:736
+msgid "No valid partition map found."
+msgstr "Aucune table de partition valide n'a été trouvée."
+
+#: libparted/labels/mac.c:795
+#, c-format
+msgid ""
+"Conflicting partition map entry sizes!  Entry 1 says it is %d, but entry %d "
+"says it is %d!"
+msgstr ""
+"Tailles conflictuelles des entrées de la table de partition ! L'entrée 1 "
+"indique %d alors que l'entrée %d indique %d !"
+
+#: libparted/labels/mac.c:822
+msgid "Weird!  There are 2 partitions map entries!"
+msgstr "Bizarre - Il y a 2 entrées de table de partitions !"
+
+#: libparted/labels/mac.c:1347
+msgid ""
+"Changing the name of a root or swap partition will prevent Linux from "
+"recognising it as such."
+msgstr ""
+"Changer le nom d'une partition root ou swap empêchera Linux de les "
+"reconnaître en tant que telles."
+
+#: libparted/labels/mac.c:1443
+msgid "Can't add another partition -- the partition map is too small!"
+msgstr ""
+"Ne peut ajouter une autre partition - la table de partition est trop petite !"
+
+#: libparted/labels/pc98.c:354
+#, c-format
+msgid "Invalid partition table on %s."
+msgstr "Table de partition invalide sur %s."
+
+#: libparted/labels/pc98.c:406 libparted/labels/pc98.c:484
+#, c-format
+msgid ""
+"Partition %d isn't aligned to cylinder boundaries.  This is still "
+"unsupported."
+msgstr ""
+"La partition %d n'est pas alignée sur une frontière de cylindre. Besoin "
+"d'ajout de cette fonctionnalité."
+
+#: libparted/labels/pc98.c:791
+msgid "Can't add another partition."
+msgstr "Ne peut ajouter une autre partition."
+
+#: libparted/labels/rdb.c:162
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s."
+msgstr "%s : Mauvaise somme de contrôle sur le bloc %llu de type %s."
+
+#: libparted/labels/rdb.c:497
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen."
+msgstr "%s : N'a pas trouvé le bloc RDB, cela ne devrait jamais arriver."
+
+#: libparted/labels/rdb.c:581
+#, c-format
+msgid "%s : Loop detected at block %d."
+msgstr "%s : Boucle detectée sur le bloc %d."
+
+#: libparted/labels/rdb.c:600
+#, c-format
+msgid "%s : The %s list seems bad at block %s."
+msgstr "%s : La liste %s semble être erronée sur le bloc %s."
+
+#: libparted/labels/rdb.c:689
+#, c-format
+msgid "%s : Failed to list bad blocks."
+msgstr "%s : N'a pas pu détecter les blocs défectueux"
+
+#: libparted/labels/rdb.c:697
+#, c-format
+msgid "%s : Failed to list partition blocks."
+msgstr "%s : N'a pas pu lister les blocs de la partition."
+
+#: libparted/labels/rdb.c:705
+#, c-format
+msgid "%s : Failed to list file system blocks."
+msgstr "%s : N'a pas pu lister les blocs du système de fichiers."
+
+#: libparted/labels/rdb.c:713
+#, c-format
+msgid "%s : Failed to list boot blocks."
+msgstr "%s : N'a pas pu lister les blocs de démarrage."
+
+#: libparted/labels/rdb.c:740
+#, c-format
+msgid "Failed to write partition block at %d."
+msgstr "N'a pas pu écrire le bloc descripteur de partition à %d."
+
+#: libparted/labels/rdb.c:1069
+msgid "Unable to allocate a partition number."
+msgstr "Impossible d'allouer un numéro de partition."
+
+#: libparted/labels/sun.c:145
+msgid "Corrupted Sun disk label detected."
+msgstr "Étiquette de disque Sun corrompue."
+
+#: libparted/labels/sun.c:266
+#, c-format
+msgid ""
+"The disk CHS geometry (%d,%d,%d) reported by the operating system does not "
+"match the geometry stored on the disk label (%d,%d,%d)."
+msgstr ""
+"La géométrie CHS du disque (%d,%d,%d) rapportée par le système "
+"d'exploitation ne concorde pas avec la géométrie stockée sur l'étiquette de "
+"disque (%d,%d,%d)."
+
+#: libparted/labels/sun.c:288
+#, c-format
+msgid "The disk label describes a disk bigger than %s."
+msgstr "L'étiquette de disque décrit un disque plus gros que %s."
+
+#: libparted/labels/sun.c:442
+#, c-format
+msgid "The disk has %d cylinders, which is greater than the maximum of 65536."
+msgstr ""
+"Le disque a %d cylindres, ce qui est plus grand que le maximum : 65536."
+
+#: libparted/labels/sun.c:737
+msgid ""
+"The Whole Disk partition is the only available one left.  Generally, it is "
+"not a good idea to overwrite this partition with a real one.  Solaris may "
+"not be able to boot without it, and SILO (the sparc boot loader) appreciates "
+"it as well."
+msgstr ""
+"La partition représentant le disque entier est la seule disponible restante. "
+"Généralement, ce n'est pas une bonne idée d'écraser cette partition avec une "
+"vraie. Solaris ne pourra pas démarrer sans elle et SILO (le gestionnaire de "
+"démarragesur Sparc) en a besoin."
+
+#: libparted/labels/sun.c:752
+msgid "Sun disk label is full."
+msgstr "L'étiquette de disque SUN est remplie."
+
+#: libparted/labels/vtoc.c:163
+#, c-format
+msgid ""
+"%s opening device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:167
+#, c-format
+msgid ""
+"%s seeking device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:171
+#, c-format
+msgid ""
+"%s writing to device '%s' failed,\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:175
+#, c-format
+msgid ""
+"%s reading from device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:179
+#, c-format
+msgid "Fatal error\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:418
+msgid "Could not read VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:424
+msgid "Could not read VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:431
+msgid "Could not read VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:438
+msgid "Could not read VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:445
+msgid "Could not read VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:462
+msgid "Could not write VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:468
+msgid "Could not write VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:475
+msgid "Could not write VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:482
+msgid "Could not write VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:489
+msgid "Could not write VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/libparted.c:296 libparted/libparted.c:316
+msgid "Out of memory."
+msgstr "Mémoire insuffisante."
+
+#: libparted/unit.c:139
+msgid "Cannot get unit size for special unit 'COMPACT'."
+msgstr "Il n'y a pas de taille unitaire pour l'unité spéciale 'COMPACT'."
+
+#: libparted/unit.c:386
+#, c-format
+msgid "\"%s\" has invalid syntax for locations."
+msgstr "\"%s\" a une syntaxe chs invalide."
+
+#: libparted/unit.c:394
+#, c-format
+msgid "The maximum head value is %d."
+msgstr "Le nombre maximum de têtes est %d."
+
+#: libparted/unit.c:401
+#, c-format
+msgid "The maximum sector value is %d."
+msgstr "Le nombre maximum de secteurs est %d."
+
+#: libparted/unit.c:413 libparted/unit.c:545
+#, c-format
+msgid "The location %s is outside of the device %s."
+msgstr "Le lieu %s est en dehors du périphérique %s."
+
+#: libparted/unit.c:527
+msgid "Invalid number."
+msgstr "Nombre invalide."
+
+#: libparted/fs/amiga/affs.c:63 libparted/fs/amiga/apfs.c:56
+#: libparted/fs/amiga/asfs.c:70
+#, fuzzy, c-format
+msgid "%s : Failed to allocate partition block\n"
+msgstr "%s : N'a pas pu lister les blocs de la partition."
+
+#: libparted/fs/amiga/affs.c:78 libparted/fs/amiga/apfs.c:70
+#: libparted/fs/amiga/asfs.c:86
+#, fuzzy, c-format
+msgid "%s : Failed to allocate block\n"
+msgstr "%s : N'a pas pu lister les blocs de démarrage."
+
+#: libparted/fs/amiga/affs.c:83 libparted/fs/amiga/apfs.c:75
+#, fuzzy, c-format
+msgid "%s : Couldn't read boot block %llu\n"
+msgstr "%s : Boucle detectée sur le bloc %d."
+
+#: libparted/fs/amiga/affs.c:99 libparted/fs/amiga/apfs.c:86
+#: libparted/fs/amiga/asfs.c:92 libparted/fs/amiga/asfs.c:106
+#, fuzzy, c-format
+msgid "%s : Couldn't read root block %llu\n"
+msgstr "%s : Boucle detectée sur le bloc %d."
+
+#: libparted/fs/amiga/amiga.c:72
+#, fuzzy, c-format
+msgid "%s : Failed to allocate id list element\n"
+msgstr "%s : N'a pas pu détecter les blocs défectueux"
+
+#: libparted/fs/amiga/amiga.c:189
+#, c-format
+msgid "%s : Couldn't read block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:202
+#, fuzzy, c-format
+msgid "%s : Bad checksum on block %llu of type %s\n"
+msgstr "%s : Mauvaise somme de contrôle sur le bloc %llu de type %s."
+
+#: libparted/fs/amiga/amiga.c:212
+#, fuzzy, c-format
+msgid "%s : Couldn't write block %d\n"
+msgstr "%s : Boucle detectée sur le bloc %d."
+
+#: libparted/fs/amiga/amiga.c:278
+#, fuzzy, c-format
+msgid "%s : Failed to allocate disk_specific rdb block\n"
+msgstr "%s : N'a pas pu détecter les blocs défectueux"
+
+#: libparted/fs/amiga/amiga.c:289
+#, fuzzy, c-format
+msgid "%s : Didn't find rdb block, should never happen\n"
+msgstr "%s : N'a pas trouvé le bloc RDB, cela ne devrait jamais arriver."
+
+#: libparted/fs/amiga/amiga.c:318
+#, fuzzy, c-format
+msgid "%s : Failed to read partition block %llu\n"
+msgstr "%s : N'a pas pu lister les blocs de la partition."
+
+#: libparted/fs/ext2/ext2.c:87 libparted/fs/ext2/ext2.c:112
+msgid "Inconsistent group descriptors!"
+msgstr "Descripteurs de groupe inconsistant !"
+
+#: libparted/fs/ext2/ext2.c:91 libparted/fs/ext2/ext2.c:116
+msgid "File system full!"
+msgstr "Le système de fichiers est plein !"
+
+#: libparted/fs/ext2/ext2.c:686
+msgid "Invalid superblock.  Are you sure this is an ext2 file system?"
+msgstr ""
+"Super bloc invalide. Êtes-vous certain qu'il s'agisse d'un système de "
+"fichiers ext2 ?"
+
+#: libparted/fs/ext2/ext2.c:700 libparted/fs/ext2/ext2_resize.c:658
+msgid "File system has errors!  You should run e2fsck."
+msgstr "Le système de fichiers a des erreurs ! Vous devriez exécuter e2fsck."
+
+#: libparted/fs/ext2/ext2.c:711
+msgid ""
+"File system was not cleanly unmounted!  You should run e2fsck.  Modifying an "
+"unclean file system could cause severe corruption."
+msgstr ""
+"Le système de fichiers n'a pas été démonté proprement! Vous devriez exécuter "
+"e2fsck. Modifier un système de fichiers incorrect pourrait provoquer de "
+"sérieux problèmes de corruption."
+
+#: libparted/fs/ext2/ext2.c:731
+msgid "File system has an incompatible feature enabled."
+msgstr "Le système de fichiers a une option incompatible activée."
+
+#: libparted/fs/ext2/ext2.c:742
+msgid "Error allocating buffer cache."
+msgstr "Erreur lors de l'allocation d'un tampon de cache."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:114
+msgid ""
+"Found an inode with a incorrect link count.  Better go run e2fsck first!"
+msgstr ""
+"Inode repéré avec un nombre incorrect de liens. Il serait préférable "
+"d'exécuter e2fsck d'abord !"
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:487
+msgid "Not enough free inodes!"
+msgstr "Pas asssez d'inodes libres!"
+
+#: libparted/fs/ext2/ext2_resize.c:223
+msgid "File system is too full to remove a group!"
+msgstr "Le système de fichiers est trop plein pour enlever un groupe!"
+
+#: libparted/fs/ext2/ext2_resize.c:232
+msgid "File system has too many allocated inodes to remove a group!"
+msgstr "Le système de fichiers a trop d'inodes alloués pour enlever un groupe!"
+
+#: libparted/fs/ext2/ext2_resize.c:491
+msgid "adding groups"
+msgstr "ajout de groupes"
+
+#: libparted/fs/ext2/ext2_resize.c:528
+#, c-format
+msgid "Your file system is too full to resize it to %i blocks.  Sorry."
+msgstr ""
+"Votre système de fichiers est trop plein pour le redimensionner en %i blocs. "
+"Désolé."
+
+#: libparted/fs/ext2/ext2_resize.c:538
+#, c-format
+msgid ""
+"Your file system has too many occupied inodes to resize it to %i blocks.  "
+"Sorry."
+msgstr ""
+"Le système de fichiers occupe trop d'inodes pour le redimensionner en %i "
+"blocs. Désolé."
+
+#: libparted/fs/ext2/ext2_resize.c:666
+msgid "File system was not cleanly unmounted!  You should run e2fsck."
+msgstr ""
+"Le système de fichiers n'a pas été démonté proprement ! Vous devriez "
+"exécuter e2fsck."
+
+#: libparted/fs/ext2/ext2_resize.c:675
+msgid ""
+"The file system has the 'dir_index' feature enabled.  Parted can only resize "
+"the file system if it disables this feature.  You can enable it later by "
+"running 'tune2fs -O dir_index DEVICE' and then 'e2fsck -fD DEVICE'."
+msgstr ""
+"Le système de fichiers a l'option 'dir_index' activée. Parted ne peut "
+"redimensionner ce système de fichiers que s'il désactive cette option. Vous "
+"pourrez l'activer ensuite avec la commande 'tune2fs -O dir_index "
+"PERIPHERIQUE' puis 'e2fsck -fD PERIPHERIQUE'."
+
+#: libparted/fs/ext2/ext2_resize.c:691
+#, fuzzy
+msgid ""
+"A resize operation on this file system will use EXPERIMENTAL code\n"
+"that MAY CORRUPT it (although no one has reported any such damage yet).\n"
+"You should at least backup your data first, and run 'e2fsck -f' afterwards."
+msgstr ""
+"Une opération de redimmentionnement sur ce système de fichier utilisera un "
+"code EXPERIMENTAL qui POURRAIT le CORROMPRE (s'il ne l'a pas déjà été). Vous "
+"devriez au moins sauvegarder vos données et ensuite lancer 'e2fsck -f'."
+
+#: libparted/fs/ext2/ext2_block_relocator.c:198
+msgid "Cross-linked blocks found!  Better go run e2fsck first!"
+msgstr ""
+"Blocs liés de façon croisée repérés ! Il serait préférable d'exécuter e2fsck "
+"d'abord !"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:537
+#, c-format
+msgid "Block %i has no reference?  Weird."
+msgstr "Le bloc %i n'a pas de référence ? Bizarre."
+
+#: libparted/fs/ext2/ext2_block_relocator.c:737
+#, fuzzy, c-format
+msgid "Block %i shouldn't have been marked (%d, %d)!"
+msgstr "Le bloc %i ne devrait pas avoir été marqué !"
+
+#: libparted/fs/ext2/interface.c:186
+msgid ""
+"The ext2 file system passed a basic check.  For a more comprehensive check, "
+"use the e2fsck program."
+msgstr ""
+"Le système de fichiers ext2 a passé la vérification de base. Pour une "
+"vérification plus approfondie, utilisez e2fsck."
+
+#: libparted/fs/ext2/interface.c:203
+msgid "Sorry, can't move the start of ext2 partitions yet!"
+msgstr "Désolé, on ne peut pas encore déplacer le début d'une partition ext2 !"
+
+#: libparted/fs/ext2/ext2_buffer.c:82
+msgid "Couldn't flush buffer cache!"
+msgstr "Ne peut vider le cache!"
+
+#: libparted/fs/ext2/ext2_mkfs.c:162
+msgid "writing per-group metadata"
+msgstr "écriture des métadonnées per-group"
+
+#: libparted/fs/ext2/ext2_mkfs.c:564
+msgid "File system too small for ext2."
+msgstr "Système de fichiers trop petit pour ext2."
+
+#: libparted/fs/fat/calc.c:135
+#, c-format
+msgid ""
+"You need %s of free disk space to shrink this partition to this size.  "
+"Currently, only %s is free."
+msgstr ""
+"Vous avez besoin de %s d'espace libre pour réduire cette partition à cette "
+"taille. Pour l'instant il n'y a que de %s de libre."
+
+#: libparted/fs/fat/context.c:56
+#, c-format
+msgid ""
+"Cluster start delta = %d, which is not a multiple of the cluster size %d."
+msgstr ""
+"Delta de départ du cluster = %d , lequel n'est pas un multiple de la taille "
+"d'un cluster %d."
+
+#: libparted/fs/fat/fat.c:308
+#, c-format
+msgid "Partition too big/small for a %s file system."
+msgstr "La partition est trop grande/petite pour un système de fichiers %s."
+
+#: libparted/fs/fat/fat.c:474
+msgid ""
+"The FATs don't match.  If you don't know what this means, then select "
+"cancel, run scandisk on the file system, and then come back."
+msgstr ""
+"Les FAT ne concordent pas. Si vous ne savez pas ce que cela signifie alors "
+"sélectionnez « cancel » et exécutez scandisk sur le système de fichiers, "
+"puis recommencez."
+
+#: libparted/fs/fat/fat.c:514
+msgid "There are no possible configurations for this FAT type."
+msgstr "Il n'y a pas de configuration possible pour ce type FAT."
+
+#: libparted/fs/fat/fat.c:526
+#, c-format
+msgid ""
+"File system doesn't have expected sizes for Windows to like it.  Cluster "
+"size is %dk (%dk expected); number of clusters is %d (%d expected); size of "
+"FATs is %d sectors (%d expected)."
+msgstr ""
+"Le système de fichiers ne correspond pas à des tailles compatibles pour "
+"Windows. La taille du cluster est %dk (%dk attendu). Le nombre de clusters "
+"est %d (%d attendu). La taille des FAT est de %d secteurs (%d attendu)"
+
+#: libparted/fs/fat/fat.c:549
+#, c-format
+msgid ""
+"File system is reporting the free space as %d clusters, not %d clusters."
+msgstr ""
+"Le système de fichiers rapporte un espace libre de %d clusters et non pas %d "
+"clusters."
+
+#: libparted/fs/fat/fat.c:874
+msgid ""
+"GNU Parted was miscompiled: the FAT boot sector should be 512 bytes.  FAT "
+"support will be disabled."
+msgstr ""
+"GNU Parted a été mal compilé : le secteur d'amorce FAT devrait être de 512 "
+"octets. Le support pour FAT sera désactivé."
+
+#: libparted/fs/fat/resize.c:159
+msgid ""
+"There's not enough room in the root directory for all of the files.  Either "
+"cancel, or ignore to lose the files."
+msgstr ""
+"Il n'y a pas assez d'espace dans le répertoire root pour tous les fichiers. "
+"Soit annuler (cancel), soit ignorer (ignore) avec perte de fichiers."
+
+#: libparted/fs/fat/resize.c:300
+msgid "Error writing to the root directory."
+msgstr "Erreur d'écriture du répertoire root."
+
+#: libparted/fs/fat/resize.c:489
+msgid "If you leave your file system as FAT16, then you will have no problems."
+msgstr ""
+"Si vous conservez votre système de fichiers en FAT16, vous n'aurez pas de "
+"problème."
+
+#: libparted/fs/fat/resize.c:492
+msgid ""
+"If you convert to FAT16, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual)."
+msgstr ""
+"Si vous convertissez en FAT16 et que MS WIndows est installé sur cette "
+"partition alors vous devrez ré-installer le gestionnaire de démarrage de MS "
+"Windows. Si vous désirez faire cela, vous devriez consulter le manuel de "
+"Parted (ou le manuel de votre distribution)."
+
+#: libparted/fs/fat/resize.c:500
+msgid ""
+"If you leave your file system as FAT32, then you will not introduce any new "
+"problems."
+msgstr ""
+"Si vous conservez votre système de fichiers en FAT32 alors vous "
+"n'introduirez pas de nouveaux problèmes."
+
+#: libparted/fs/fat/resize.c:504
+msgid ""
+"If you convert to FAT32, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual).  Also, "
+"converting to FAT32 will make the file system unreadable by MS DOS, MS "
+"Windows 95a, and MS Windows NT."
+msgstr ""
+"Si vous convertissez en FAT32 et que MS Windows est installé sur cette "
+"partition, alors vous devrez réinstaller le gestionnaire de démarrage de MS "
+"Windows. Si vous désirez faire cela, vous devriez consulter le manuel de "
+"Parted (ou le manuel de votre distribution). Notez que la conversion en "
+"FAT32 rendra le système de fichiers illisible par MS DOS, MS Windows 95a et "
+"MS Windows NT."
+
+#: libparted/fs/fat/resize.c:518
+#, c-format
+msgid "%s  %s  %s"
+msgstr "%s  %s  %s"
+
+#: libparted/fs/fat/resize.c:519
+msgid "Would you like to use FAT32?"
+msgstr "Voulez-vous utiliser FAT32 ?"
+
+#: libparted/fs/fat/resize.c:550 libparted/fs/fat/resize.c:566
+#, c-format
+msgid "%s  %s"
+msgstr "%s  %s"
+
+#: libparted/fs/fat/resize.c:551
+msgid ""
+"The file system can only be resized to this size by converting to FAT16."
+msgstr ""
+"Le système de fichiers peut seulement être redimensionné à cette taille en "
+"le convertissant en FAT16."
+
+#: libparted/fs/fat/resize.c:567
+msgid ""
+"The file system can only be resized to this size by converting to FAT32."
+msgstr ""
+"Le système de fichiers peut seulement être redimensionné à cette taille en "
+"le convertissant en FAT32."
+
+#: libparted/fs/fat/resize.c:580
+msgid ""
+"GNU Parted cannot resize this partition to this size.  We're working on it!"
+msgstr ""
+"GNU Parted ne peut redimensionnr cette partition à cette taille. Nous y "
+"travaillons !"
+
+#: libparted/fs/fat/bootsector.c:49 libparted/fs/fat/bootsector.c:56
+msgid "File system has an invalid signature for a FAT file system."
+msgstr ""
+"Le système de fichiers a une signature invalide pour un système de fichiers "
+"FAT."
+
+#: libparted/fs/fat/bootsector.c:64
+msgid "File system has an invalid sector size for a FAT file system."
+msgstr ""
+"Le système de fichiers a une taille de secteur invalide pour un système de "
+"fichiers FAT."
+
+#: libparted/fs/fat/bootsector.c:71
+msgid "File system has an invalid cluster size for a FAT file system."
+msgstr ""
+"Le système de fichiers a une taille de cluster invalide pour un système de "
+"fichiers FAT."
+
+#: libparted/fs/fat/bootsector.c:78
+msgid ""
+"File system has an invalid number of reserved sectors for a FAT file system."
+msgstr ""
+"Le système de fichiers a un nombre invalide de secteurs réservés pour un "
+"système de fichiers FAT."
+
+#: libparted/fs/fat/bootsector.c:85
+msgid "File system has an invalid number of FATs."
+msgstr "Le système de fichiers a un nombre invalide de FATs."
+
+#: libparted/fs/fat/bootsector.c:139
+#, c-format
+msgid ""
+"This file system has a logical sector size of %d.  GNU Parted is known not "
+"to work properly with sector sizes other than 512 bytes."
+msgstr ""
+"Ce système de fichier a une taille de secteur logique de %d. GNU Parted ne "
+"traite pas correctement les tailles de secteurs différentes de 512 octets."
+
+#: libparted/fs/fat/bootsector.c:164
+#, c-format
+msgid ""
+"The file system's CHS geometry is (%d, %d, %d), which is invalid.  The "
+"partition table's CHS geometry is (%d, %d, %d).  If you select Ignore, the "
+"file system's CHS geometry will be left unchanged.  If you select Fix, the "
+"file system's CHS geometry will be set to match the partition table's CHS "
+"geometry."
+msgstr ""
+"La géométrie CHS du système de fichiers est (%d, %d, %d), ce qui est "
+"invalide. La géométrie CHS de la table des partitions est (%d, %d, %d). Si "
+"vous choisissez d'ignorer (Ignore), la géométrie CHS du système de fichiers "
+"sera inchangée. Si vous choisissez de réparer (Fix), la géométrie CHS du "
+"système de fichiers sera modifiée de manière à concorder avec la géométrie "
+"CHS de la table des partitions."
+
+#: libparted/fs/fat/bootsector.c:213
+msgid "FAT boot sector says logical sector size is 0.  This is weird. "
+msgstr ""
+"Le secteur d'amorce FAT indique une taille de secteur logique de 0. Ceci est "
+"bizarre."
+
+#: libparted/fs/fat/bootsector.c:219
+msgid "FAT boot sector says there are no FAT tables.  This is weird. "
+msgstr ""
+"Le secteur d'amorce FAT indique qu'il n'y a pas de tables FAT. Ceci est "
+"bizarre."
+
+#: libparted/fs/fat/bootsector.c:225
+msgid "FAT boot sector says clusters are 0 sectors.  This is weird. "
+msgstr ""
+"Le secteur d'amorce FAT indique des clusters ayant 0 secteurs. Ceci est "
+"bizarre."
+
+#: libparted/fs/fat/bootsector.c:235
+msgid "File system is FAT12, which is unsupported."
+msgstr "Le système de fichiers est FAT12, lequel n'est pas supporté."
+
+#: libparted/fs/fat/bootsector.c:411
+#, c-format
+msgid ""
+"The information sector has the wrong signature (%x).  Select cancel for now, "
+"and send in a bug report.  If you're desperate, it's probably safe to ignore."
+msgstr ""
+"L'information de secteur contient une signature erronée (%x). Sélectionner « "
+"cancel » pour le moment et transmettre un rapport d'anomalie. Si vous êtes "
+"désespéré, il est probablement prudent de sélectionner « ignore »."
+
+#: libparted/fs/fat/count.c:152
+#, c-format
+msgid "Bad directory entry for %s: first cluster is the end of file marker."
+msgstr ""
+"Entrée de répertoire erronée pour %s: le premier cluster est à la fin du "
+"marqueur de fichiers."
+
+#: libparted/fs/fat/count.c:165
+#, c-format
+msgid ""
+"Bad FAT: unterminated chain for %s.  You should run dosfsck or scandisk."
+msgstr ""
+"FAT erroné: chaîne non terminée pour %s. Vous devriez exécuter dosfsck ou "
+"scandisk."
+
+#: libparted/fs/fat/count.c:174
+#, c-format
+msgid ""
+"Bad FAT: cluster %d outside file system in chain for %s.  You should run "
+"dosfsck or scandisk."
+msgstr ""
+"FAT erroné: le cluster %d est en dehors du système de fichiers dans la "
+"chaîne pour %s. Vous devriez exécuter dosfsck ou scandisk."
+
+#: libparted/fs/fat/count.c:184
+#, c-format
+msgid ""
+"Bad FAT: cluster %d is cross-linked for %s.  You should run dosfsck or "
+"scandisk."
+msgstr ""
+"FAT erroné: le cluster %d a des liens croisés pour %s. Vous devriez exécuter "
+"dosfsck ou scandisk."
+
+#: libparted/fs/fat/count.c:203
+#, c-format
+msgid "%s is %dk, but it has %d clusters (%dk)."
+msgstr "%s est %dk, mais il a %d clusters (%dk)."
+
+#: libparted/fs/fat/count.c:266
+#, c-format
+msgid ""
+"The file %s is marked as a system file.  This means moving it could cause "
+"some programs to stop working."
+msgstr ""
+"Le fichier %s est marqué comme système de fichiers. Cela signifie que son "
+"déplacement pourrait amener certains programmes à cesser de fonctionner."
+
+#: libparted/fs/fat/table.c:137
+#, c-format
+msgid ""
+"FAT %d media %x doesn't match the boot sector's media %x.  You should "
+"probably run scandisk."
+msgstr ""
+"La FAT %d du média %x ne concorde pas avec le secteur d'amorce du média %x. "
+"Vous devriez probablement exécuter scandisk."
+
+#: libparted/fs/fat/table.c:269
+#, c-format
+msgid "fat_table_set: cluster %ld outside file system"
+msgstr "fat_table_set: cluster %ld en dehors du système de fichiers"
+
+#: libparted/fs/fat/table.c:301
+#, c-format
+msgid "fat_table_get: cluster %ld outside file system"
+msgstr "fat_table_set: cluster %ld en dehors du système de fichiers"
+
+#: libparted/fs/fat/table.c:343
+msgid "fat_table_alloc_cluster: no free clusters"
+msgstr "fat_table_alloc_cluster: pas de cluster disponible"
+
+#: libparted/fs/linux_swap/linux_swap.c:275
+#, fuzzy, c-format
+msgid "Unrecognised old style linux swap signature '%10s'."
+msgstr "Signature swap de Linux non reconnue « %10s »."
+
+#: libparted/fs/linux_swap/linux_swap.c:318
+#, fuzzy, c-format
+msgid "Unrecognised new style linux swap signature '%10s'."
+msgstr "Signature swap de Linux non reconnue « %10s »."
+
+#: libparted/fs/linux_swap/linux_swap.c:358
+#, fuzzy, c-format
+msgid "Unrecognised swsusp linux swap signature '%9s'."
+msgstr "Signature swap de Linux non reconnue « %10s »."
+
+#: libparted/fs/linux_swap/linux_swap.c:434
+msgid "Too many bad pages."
+msgstr "Trop de pages erronées."
+
+#: libparted/fs/hfs/advfs.c:121 libparted/fs/hfs/advfs_plus.c:122
+#: libparted/fs/hfs/reloc.c:414 libparted/fs/hfs/reloc.c:508
+#: libparted/fs/hfs/reloc_plus.c:539 libparted/fs/hfs/reloc_plus.c:658
+#: libparted/fs/hfs/reloc_plus.c:772
+msgid "The file system contains errors."
+msgstr "Le système de fichiers contient des erreurs."
+
+#: libparted/fs/hfs/advfs_plus.c:287
+msgid "Bad blocks could not be read."
+msgstr "Les blocs défectueux ne peuvent pas être lus."
+
+#: libparted/fs/hfs/cache.c:137
+#, c-format
+msgid ""
+"Trying to register an extent starting at block 0x%X, but another one already "
+"exists at this position.  You should check the file system!"
+msgstr ""
+"Tentative d'enregistrement d'une zone débutant au bloc 0x%X, mais un autre "
+"existe déjà à cette position. Vous devriez vérifier le système de fichiers !"
+
+#: libparted/fs/hfs/cache.c:214
+#, c-format
+msgid ""
+"Trying to move an extent from block Ox%X to block Ox%X, but another one "
+"already exists at this position.  This should not happen!"
+msgstr ""
+"Tentative de déplacement d'une zone du bloc 0x%X au bloc 0x%X, mais un autre "
+"existe déjà à cette position. Cela ne devrait pas arriver !"
+
+#: libparted/fs/hfs/file.c:143
+#, c-format
+msgid "Could not update the extent cache for HFS file with CNID %X."
+msgstr ""
+"Ne peut mettre à jour le cache des fragments du fichier HFS ayant le CNID %X."
+
+#: libparted/fs/hfs/file.c:180
+#, c-format
+msgid "Trying to read HFS file with CNID %X behind EOF."
+msgstr ""
+"Tentative de lecture d'un fichier HFS ayant un CNID %X après la fin du "
+"fichier."
+
+#: libparted/fs/hfs/file.c:190 libparted/fs/hfs/file.c:220
+#, c-format
+msgid "Could not find sector %lli of HFS file with CNID %X."
+msgstr "Impossible de trouver le secteur %lli du fichier HFS ayant le CNID %X."
+
+#: libparted/fs/hfs/file.c:210
+#, c-format
+msgid "Trying to write HFS file with CNID %X behind EOF."
+msgstr ""
+"Tentative d'écriture d'un fichier HFS ayant un CNID %X après la fin du "
+"fichier."
+
+#: libparted/fs/hfs/file_plus.c:157
+#, c-format
+msgid "Could not update the extent cache for HFS+ file with CNID %X."
+msgstr ""
+"Ne peut mettre à jour le cache des fragments du fichier HFS+ ayant le CNID %"
+"X."
+
+#: libparted/fs/hfs/file_plus.c:202
+#, c-format
+msgid "Trying to read HFS+ file with CNID %X behind EOF."
+msgstr ""
+"Tentative de lecture d'un fichier HFS+ ayant un CNID %X après la fin du "
+"fichier."
+
+#: libparted/fs/hfs/file_plus.c:213 libparted/fs/hfs/file_plus.c:256
+#, c-format
+msgid "Could not find sector %lli of HFS+ file with CNID %X."
+msgstr ""
+"Impossible de trouver le secteur %lli du fichier HFS+ ayant le CNID %X."
+
+#: libparted/fs/hfs/file_plus.c:245
+#, c-format
+msgid "Trying to write HFS+ file with CNID %X behind EOF."
+msgstr ""
+"Tentative d'écriture d'un fichier HFS+ ayant un CNID %X après la fin du "
+"fichier."
+
+#: libparted/fs/hfs/hfs.c:232
+msgid "Sorry, HFS cannot be resized that way yet."
+msgstr ""
+"Désolé, l'HFS ne peut être redimensionné de cette manière pour le moment."
+
+#: libparted/fs/hfs/hfs.c:262 libparted/fs/hfs/hfs.c:641
+msgid "Data relocation has failed."
+msgstr "Le déplacement des données a échoué."
+
+#: libparted/fs/hfs/hfs.c:281
+msgid "Data relocation left some data in the end of the volume."
+msgstr ""
+"Le déplacement des données a laissé certaines données à la fin du volume."
+
+#: libparted/fs/hfs/hfs.c:320
+msgid "writing HFS Master Directory Block"
+msgstr "écriture du Master Directory Block HFS"
+
+#: libparted/fs/hfs/hfs.c:468
+msgid "No valid HFS[+X] signature has been found while opening."
+msgstr "Aucune signature HFS[+X] valide trouvée lors de l'ouverture."
+
+#: libparted/fs/hfs/hfs.c:478
+#, c-format
+msgid "Version %d of HFS+ isn't supported."
+msgstr "La version %d du HFS+ n'est pas supportée."
+
+#: libparted/fs/hfs/hfs.c:489
+#, c-format
+msgid "Version %d of HFSX isn't supported."
+msgstr "La version %d du HFSX n'est pas supportée."
+
+#: libparted/fs/hfs/hfs.c:672
+msgid "Data relocation left some data at the end of the volume."
+msgstr ""
+"Le déplacement des données a laissé certaines données à la fin du volume."
+
+#: libparted/fs/hfs/hfs.c:720
+msgid "Error while writing the allocation file."
+msgstr "Erreur d'écriture du fichier d'allocation."
+
+#: libparted/fs/hfs/hfs.c:735
+msgid "Error while writing the compatibility part of the allocation file."
+msgstr "Erreur d'écriture de la zone de compatibilité du fichier d'allocation."
+
+#: libparted/fs/hfs/hfs.c:750
+msgid "writing HFS+ Volume Header"
+msgstr "écriture du Volume Header du HFS+"
+
+#: libparted/fs/hfs/hfs.c:850
+msgid "An error occurred while looking for the mandatory bad blocks file."
+msgstr ""
+"Une erreur est survenue lors de la recherche du fichier non-optionnel des "
+"blocs défectueux."
+
+#: libparted/fs/hfs/hfs.c:904
+msgid ""
+"It seems there is an error in the HFS wrapper: the bad blocks file doesn't "
+"contain the embedded HFS+ volume."
+msgstr ""
+"Il semble qu'il y ait une erreur dans l'encapsulateur HFS : le fichier des "
+"blocs défectueux contient le volume HFS+ ."
+
+#: libparted/fs/hfs/hfs.c:940
+msgid "Sorry, HFS+ cannot be resized that way yet."
+msgstr ""
+"Désolé, l'HFS+ ne peut être redimensionné de cette manière pour le moment."
+
+#: libparted/fs/hfs/hfs.c:975
+msgid "shrinking embedded HFS+ volume"
+msgstr "réduction du volume HFS+"
+
+#: libparted/fs/hfs/hfs.c:991
+msgid "Resizing the HFS+ volume has failed."
+msgstr "Le redimensionnement du volume HFS+ a échoué."
+
+#: libparted/fs/hfs/hfs.c:998
+msgid "shrinking HFS wrapper"
+msgstr "réduction de l'encapsulateur HFS"
+
+#: libparted/fs/hfs/hfs.c:1007
+msgid "Updating the HFS wrapper has failed."
+msgstr "La mise à jour de l'encapsulateur HFS a échoué."
+
+#: libparted/fs/hfs/hfs.c:1109 libparted/fs/hfs/hfs.c:1194
+#, c-format
+msgid ""
+"This is not a real %s check.  This is going to extract special low level "
+"files for debugging purposes."
+msgstr ""
+"Ceci n'est pas un test réel de %s . Il s'agit d'extraire des fichiers "
+"spéciaux de bas niveau pour déboguage."
+
+#: libparted/fs/hfs/journal.c:155
+msgid "Bad block list header checksum."
+msgstr "Mauvaise somme de contrôle de l'entête de la liste des blocs."
+
+#: libparted/fs/hfs/journal.c:168
+#, c-format
+msgid ""
+"Invalid size of a transaction block while replaying the journal (%i bytes)."
+msgstr ""
+"Taille de bloc de transaction invalide pendant le replay du journal (%i "
+"octets)."
+
+#: libparted/fs/hfs/journal.c:260
+msgid ""
+"Journal stored outside of the volume are not supported.  Try to desactivate "
+"the journal and run Parted again."
+msgstr ""
+"Le placement du journal à l'extérieur du volume n'est pas supporté. Essayez "
+"de désactiver le journal et de relancer Parted."
+
+#: libparted/fs/hfs/journal.c:271
+msgid "Journal offset or size is not multiple of the sector size."
+msgstr "Le delta ou la taille n'est pas un multiple de la taille d'un secteur."
+
+#: libparted/fs/hfs/journal.c:292
+msgid "Incorrect magic values in the journal header."
+msgstr "Valeurs magiques incorrectes dans l'entête du journal."
+
+#: libparted/fs/hfs/journal.c:302
+msgid "Journal size mismatch between journal info block and journal header."
+msgstr ""
+"Erreur de correspondance de la taille du journal entre le bloc d'information "
+"du journal et l'entête du journal."
+
+#: libparted/fs/hfs/journal.c:314
+msgid "Some header fields are not multiple of the sector size."
+msgstr ""
+"Certains champs de l'entête ne sont pas des multiples de la taille du "
+"secteur."
+
+#: libparted/fs/hfs/journal.c:323
+msgid ""
+"The sector size stored in the journal is not 512 bytes.  Parted only "
+"supports 512 bytes length sectors."
+msgstr ""
+"La taille de secteur stockée dans le journal n'est pas 512 octets. Parted ne "
+"supporte que les secteurs dont la taille est 512 octets."
+
+#: libparted/fs/hfs/journal.c:335
+msgid "Bad journal checksum."
+msgstr "Mauvaise somme de contrôle du journal."
+
+#: libparted/fs/hfs/journal.c:353
+msgid ""
+"The journal is not empty.  Parted must replay the transactions before "
+"opening the file system.  This will modify the file system."
+msgstr ""
+"Le journal n'est pas vide. Parted doit rejouer les transactions avant "
+"d'ouvrir le système de fichiers. Cela modifiera le système de fichiers."
+
+#: libparted/fs/hfs/journal.c:381
+msgid ""
+"The volume header or the master directory block has changed while replaying "
+"the journal.  You should restart Parted."
+msgstr ""
+"L'entête du volume ou le master directory block a changé pendant le replay "
+"du journal. Vous devriez relancer Parted."
+
+#: libparted/fs/hfs/probe.c:51
+#, c-format
+msgid ""
+"Parted can't use HFS file systems on disks with a sector size not equal to %"
+"d bytes."
+msgstr ""
+"Parted ne peut utiliser des systèmes de fichiers HFS sur les disques dont la "
+"taille des secteurs n'est pas égale à %d octets."
+
+#: libparted/fs/hfs/reloc.c:151 libparted/fs/hfs/reloc_plus.c:155
+msgid "An extent has not been relocated."
+msgstr "Une zone n'a pas été réallouée."
+
+#: libparted/fs/hfs/reloc.c:251 libparted/fs/hfs/reloc_plus.c:307
+msgid ""
+"A reference to an extent comes from a place it should not.  You should check "
+"the file system!"
+msgstr ""
+"Une référence vers une zone provient d'un endroit dont il ne devrait pas. "
+"Vous devriez vérifier le système de fichiers."
+
+#: libparted/fs/hfs/reloc.c:381
+msgid "This HFS volume has no catalog file.  This is very unusual!"
+msgstr ""
+"Ce volume HFS n'a pas de fichier catalogue. C'est vraiment inhabituel !"
+
+#: libparted/fs/hfs/reloc.c:475
+msgid "This HFS volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+"Ce volume HFS n'a pas de fichier des zones additionelles. C'est plutôt "
+"inhabituel !"
+
+#: libparted/fs/hfs/reloc.c:517 libparted/fs/hfs/reloc_plus.c:668
+msgid ""
+"The extents overflow file should not contain its own extents!  You should "
+"check the file system."
+msgstr ""
+"Le fichier des zones additionnelles ne devrait pas contenir sa propre zone ! "
+"Vous devriez vérifier le système de fichiers."
+
+#: libparted/fs/hfs/reloc.c:574 libparted/fs/hfs/reloc_plus.c:847
+msgid "Could not cache the file system in memory."
+msgstr "Impossible d'indexer le système de fichiers en mémoire."
+
+#: libparted/fs/hfs/reloc.c:635 libparted/fs/hfs/reloc_plus.c:908
+msgid "Bad blocks list could not be loaded."
+msgstr "La liste des blocs défectueux ne peut être chargée."
+
+#: libparted/fs/hfs/reloc.c:649 libparted/fs/hfs/reloc_plus.c:924
+msgid "An error occurred during extent relocation."
+msgstr "Une erreur est survenue pendant le déplacement de la zone."
+
+#: libparted/fs/hfs/reloc_plus.c:495
+msgid "This HFS+ volume has no catalog file.  This is very unusual!"
+msgstr ""
+"Ce volume HFS+ n'a pas de fichier catalogue. C'est vraiment inhabituel !"
+
+#: libparted/fs/hfs/reloc_plus.c:619
+msgid "This HFS+ volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+"Ce volume HFS+ n'a pas de fichier des zones additionnelles. C'est plutôt "
+"inhabituel !"
+
+#: parted/parted.c:94
+msgid "displays this help message"
+msgstr "afficher l'aide-mémoire"
+
+#: parted/parted.c:95
+msgid "lists partition layout on all block devices"
+msgstr ""
+
+#: parted/parted.c:96
+msgid "displays machine parseable output"
+msgstr ""
+
+#: parted/parted.c:97
+msgid "never prompts for user intervention"
+msgstr "ne demande jamais l'intervention de l'utilisateur"
+
+#: parted/parted.c:98
+msgid "displays the version"
+msgstr "affiche la version"
+
+#: parted/parted.c:111
+msgid ""
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"
+msgstr ""
+"MINEURE est le numéro de partition utilisé par Linux. Avec une étiquette de "
+"disque MS-DOS, les partitions primaires sont numérotées de 1 à 4 et les "
+"partitions logiques de 5 à plus.\n"
+
+#: parted/parted.c:114
+msgid "LABEL-TYPE is one of: "
+msgstr "TYPE-D-ÉTIQUETTE est parmi : "
+
+#: parted/parted.c:115
+msgid "FLAG is one of: "
+msgstr "FANION est parmi : "
+
+#: parted/parted.c:116
+msgid "UNIT is one of: "
+msgstr "UNIT est parmi : "
+
+#: parted/parted.c:117
+msgid "PART-TYPE is one of: primary, logical, extended\n"
+msgstr "PART-TYPE est parmi : primary, logical, extended\n"
+
+#: parted/parted.c:119
+msgid "FS-TYPE is one of: "
+msgstr "FS-TYPE est parmi : "
+
+#: parted/parted.c:120
+msgid ""
+"START and END are disk locations, such as 4GB or 10%.  Negative values count "
+"from the end of the disk.  For example, -1s specifies exactly the last "
+"sector.\n"
+msgstr ""
+"START et END sont des emplacements, comme 4GB ou 10%. Les valeurs négatives "
+"comptent à partir de la fin du disque. Par exemple, =-1s spécifie "
+"précisément le dernier secteur.\n"
+
+#: parted/parted.c:123
+msgid "STATE is one of: on, off\n"
+msgstr "ÉTAT est un parmi : on, off\n"
+
+#: parted/parted.c:124
+msgid "DEVICE is usually /dev/hda or /dev/sda\n"
+msgstr "PÉRIPHÉRIQUE est habituellement du genre /dev/hda ou /dev/sda\n"
+
+#: parted/parted.c:125
+msgid "NAME is any word you want\n"
+msgstr "NOM est un mot de votre choix\n"
+
+#: parted/parted.c:126
+msgid "The partition must have one of the following FS-TYPEs: "
+msgstr "La partition doit avoir un des FS-TYPES suivants : "
+
+#: parted/parted.c:130
+#, fuzzy
+msgid ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+msgstr ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"Ce programme est un logiciel libre, sous la Licence Publique Générale GNU "
+"(GNU General Public License).\n"
+"Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE "
+"GARANTIE ; sans même une garantie implicite de COMMERCIABILITÉ ou DE "
+"CONFORMITÉ À UNE UTILISATION PARTICULIÈRE. Voir la Licence Publique Générale "
+"GNU pour plus de détails.\n"
+"\n"
+
+#: parted/parted.c:176
+#, c-format
+msgid "%0.f%%\t(time left %.2d:%.2d)"
+msgstr "%0.f%%\t(temps restant %.2d:%.2d)"
+
+#: parted/parted.c:195
+#, fuzzy, c-format
+msgid ""
+"Partition %s is being used. You must unmount it before you modify it with "
+"Parted."
+msgstr ""
+"La partition %s est en cours d'utilisation. Vous devez la démonter avant de "
+"la modifier avec Parted."
+
+#: parted/parted.c:211
+#, c-format
+msgid "Partition(s) on %s are being used."
+msgstr "Au moins une partition de %s est en cours d'utilisation."
+
+#: parted/parted.c:223
+msgid ""
+"The existing file system will be destroyed and all data on the partition "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:235
+#, c-format
+msgid ""
+"The existing disk label on %s will be destroyed and all data on this disk "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:458 parted/parted.c:652 parted/parted.c:1044
+#: parted/parted.c:1128 parted/parted.c:1771 parted/parted.c:1852
+#: parted/parted.c:1900
+msgid "Partition number?"
+msgstr "Numéro de partition ?"
+
+#: parted/parted.c:500
+msgid "Source device?"
+msgstr "Périphérique source ?"
+
+#: parted/parted.c:504
+msgid "Source partition number?"
+msgstr "Numéro de la partition source ?"
+
+#: parted/parted.c:509
+msgid "Can't copy an extended partition."
+msgstr "Ne peut copier une partition étendue."
+
+#: parted/parted.c:515
+msgid "Destination partition number?"
+msgstr "Numéro de la partition de destination ?"
+
+#: parted/parted.c:615
+msgid "New disk label type?"
+msgstr "Nouveau type d'étiquette de disque ?"
+
+#: parted/parted.c:656
+msgid "File system?"
+msgstr "Système de fichiers ?"
+
+#: parted/parted.c:707 parted/parted.c:878
+msgid "Partition type?"
+msgstr "Type de partition ?"
+
+#: parted/parted.c:714 parted/parted.c:885 parted/parted.c:1131
+msgid "Partition name?"
+msgstr "Nom de la partition ?"
+
+#: parted/parted.c:722 parted/parted.c:895
+msgid "File system type?"
+msgstr "Type de système de fichiers ?"
+
+#: parted/parted.c:729 parted/parted.c:897 parted/parted.c:1059
+#: parted/parted.c:1725 parted/parted.c:1780
+msgid "Start?"
+msgstr "Début ?"
+
+#: parted/parted.c:731 parted/parted.c:900 parted/parted.c:1062
+#: parted/parted.c:1727 parted/parted.c:1782
+msgid "End?"
+msgstr "Fin ?"
+
+#: parted/parted.c:769 parted/parted.c:938
+#, c-format
+msgid ""
+"You requested a partition from %s to %s.\n"
+"The closest location we can manage is %s to %s.  Is this still acceptable to "
+"you?"
+msgstr ""
+"Vous avez demandé une partition de %s à %s.\n"
+"La position la plus proche que nous pouvons gérer est %s à %s. Est-ce "
+"toujours acceptable pour vous ?"
+
+#: parted/parted.c:890
+msgid "An extended partition cannot hold a file system.  Did you want mkpart?"
+msgstr ""
+"Une partition étendue ne peut avoir de système de fichiers. Vouliez-vous "
+"utiliser mkpart ?"
+
+#: parted/parted.c:1050
+msgid "Can't move an extended partition."
+msgstr "Ne peut déplacer une partition étendue."
+
+#: parted/parted.c:1079
+msgid "Can't move a partition onto itself.  Try using resize, perhaps?"
+msgstr ""
+"Ne peut déplacer une partition sur elle-même. Essayez peut-être un "
+"redimensionnement ?"
+
+#: parted/parted.c:1227
+#, c-format
+msgid "Minor: %d\n"
+msgstr "Mineure : %d\n"
+
+#: parted/parted.c:1228
+#, c-format
+msgid "Flags: %s\n"
+msgstr "Fanions : %s\n"
+
+#: parted/parted.c:1229
+#, c-format
+msgid "File System: %s\n"
+msgstr "Système de fichiers : %s\n"
+
+#: parted/parted.c:1230
+msgid "Size:         "
+msgstr "Taille:         "
+
+#: parted/parted.c:1235
+msgid "Minimum size: "
+msgstr "Taille minimum : "
+
+#: parted/parted.c:1238
+msgid "Maximum size: "
+msgstr "Taille maximum : "
+
+#: parted/parted.c:1362
+#, c-format
+msgid "Model: %s (%s)\n"
+msgstr ""
+
+#: parted/parted.c:1364
+#, c-format
+msgid "Disk %s: %s\n"
+msgstr "Disque %s : %s\n"
+
+#: parted/parted.c:1365
+#, c-format
+msgid "Sector size (logical/physical): %lldB/%lldB\n"
+msgstr "Taille des secteurs (logiques/physiques): %lldB/%lldB\n"
+
+#: parted/parted.c:1383
+#, c-format
+msgid "BIOS cylinder,head,sector geometry: %d,%d,%d.  Each cylinder is %s.\n"
+msgstr ""
+"BIOS cylindre,tête,secteur géométrie : %d,%d,%d. Chaque cylindre est %s.\n"
+
+#: parted/parted.c:1392
+#, c-format
+msgid "Partition Table: %s\n"
+msgstr "Table de partition : %s\n"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Number"
+msgstr "Numéro"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Start"
+msgstr "Début"
+
+#: parted/parted.c:1407 parted/parted.c:1410
+msgid "End"
+msgstr "Fin"
+
+#: parted/parted.c:1410
+msgid "Size"
+msgstr "Taille"
+
+#: parted/parted.c:1414
+msgid "Type"
+msgstr "Type"
+
+#: parted/parted.c:1416
+msgid "File system"
+msgstr "Système de fichiers"
+
+#: parted/parted.c:1419
+msgid "Name"
+msgstr "Nom"
+
+#: parted/parted.c:1421
+msgid "Flags"
+msgstr "Fanions"
+
+#: parted/parted.c:1477
+msgid "Free Space"
+msgstr "Espace libre"
+
+#: parted/parted.c:1624
+#, c-format
+msgid ""
+"A %s %s partition was found at %s -> %s.  Do you want to add it to the "
+"partition table?"
+msgstr ""
+"Une partition %s %s a été trouvée à %s -> %s. Voulez-vous l'ajouter à la "
+"table de partition ?"
+
+#: parted/parted.c:1663
+msgid "searching for file systems"
+msgstr "recherche des systèmes de fichiers"
+
+#: parted/parted.c:1877
+msgid "New device?"
+msgstr "Nouveau périphérique ?"
+
+#: parted/parted.c:1902
+msgid "Flag to Invert?"
+msgstr "Fanion à inverser ?"
+
+#: parted/parted.c:1907
+msgid "New state?"
+msgstr "Nouvel état ?"
+
+#: parted/parted.c:1944
+msgid "Unit?"
+msgstr "Unité ?"
+
+#: parted/parted.c:2093
+msgid "check"
+msgstr "check"
+
+#: parted/parted.c:2096
+msgid ""
+"check NUMBER                             do a simple check on the file system"
+msgstr ""
+"check MINEURE                            faire une vérification simple du "
+"système de fichiers"
+
+#: parted/parted.c:2102
+msgid "cp"
+msgstr "cp"
+
+#: parted/parted.c:2105
+msgid ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+"partition"
+msgstr ""
+"cp [PÉRIPHÉRIQUE-SOURCE] MINEURE-SOURCE MINEURE-DEST\n"
+"                                     copier le système de fichiers vers une "
+"autre partition"
+
+#: parted/parted.c:2111
+msgid "help"
+msgstr "help"
+
+#: parted/parted.c:2114
+#, fuzzy
+msgid ""
+"help [COMMAND]                           print general help, or help on "
+"COMMAND"
+msgstr ""
+"help [COMMANDE]                          affiche l'aide générale ou l'aide "
+"de la COMMANDE"
+
+#: parted/parted.c:2120
+msgid "mklabel"
+msgstr "mklabel"
+
+#: parted/parted.c:2120
+#, fuzzy
+msgid "mktable"
+msgstr "mklabel"
+
+#: parted/parted.c:2123
+#, fuzzy
+msgid ""
+"mklabel,mktable LABEL-TYPE               create a new disklabel (partition "
+"table)"
+msgstr ""
+"mklabel LABEL-TYPE                       créer une nouvelle étiquette de "
+"disque (table de partition)"
+
+#: parted/parted.c:2129
+msgid "mkfs"
+msgstr "mkfs"
+
+#: parted/parted.c:2132
+msgid ""
+"mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on "
+"partititon NUMBER"
+msgstr ""
+"mkfs MINEURE TYPE-SF                     créer un système de fichiers TYPE-"
+"SF sur la partititon MINEURE"
+
+#: parted/parted.c:2138
+msgid "mkpart"
+msgstr "mkpart"
+
+#: parted/parted.c:2141
+msgid "mkpart PART-TYPE [FS-TYPE] START END     make a partition"
+msgstr "mkpart TYPE-PAR [TYPE-SF] DÉPART FIN      créer une partition"
+
+#: parted/parted.c:2147
+#, fuzzy
+msgid ""
+"'mkpart' makes a partition without creating a new file system on the "
+"partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"
+msgstr ""
+"mkpart crée une partition sans créer un nouveau système de fichiers sur la "
+"partition. Le TYPE-SF doit être spécifié pour initialiser le type de "
+"partition approprié.\n"
+
+#: parted/parted.c:2152
+msgid "mkpartfs"
+msgstr "mkpartfs"
+
+#: parted/parted.c:2155
+msgid ""
+"mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system"
+msgstr ""
+"mkpartfs TYPE-PAR TYPE-SF DÉPART FIN      créer une partition avec un "
+"système de fichiers"
+
+#: parted/parted.c:2161
+msgid "move"
+msgstr "move"
+
+#: parted/parted.c:2164
+msgid "move NUMBER START END                    move partition NUMBER"
+msgstr "move MINEURE DÉPART FIN                 déplacer la partition MINEURE"
+
+#: parted/parted.c:2169
+msgid "name"
+msgstr "nom"
+
+#: parted/parted.c:2172
+msgid "name NUMBER NAME                         name partition NUMBER as NAME"
+msgstr ""
+"name MINEURE NOM                       nommer une partition MINEURE NOM"
+
+#: parted/parted.c:2177
+msgid "print"
+msgstr "print"
+
+#: parted/parted.c:2180
+msgid ""
+"print [devices|free|list,all|NUMBER]     display the partition table, "
+"available devices, free space, all found partitions, or a particular "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2185
+msgid ""
+"Without arguments, 'print' displays the entire partition table. However with "
+"the following arguments it performs various other actions.\n"
+msgstr ""
+
+#: parted/parted.c:2187
+msgid "  devices   : display all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2188
+msgid ""
+"  free      : display information about free unpartitioned space on the "
+"current block device\n"
+msgstr ""
+
+#: parted/parted.c:2190
+#, fuzzy
+msgid ""
+"  list, all : display the partition tables of all active block devices\n"
+msgstr ""
+"print [free|MINEURE|all]                 afficher la table de partitions ou "
+"une partition, ou tous les périphériques"
+
+#: parted/parted.c:2191
+msgid ""
+"  NUMBER    : display more detailed information about this particular "
+"partition\n"
+msgstr ""
+
+#: parted/parted.c:2196
+msgid "quit"
+msgstr "quit"
+
+#: parted/parted.c:2199
+msgid "quit                                     exit program"
+msgstr "quit                                    quitter le programme"
+
+#: parted/parted.c:2204
+msgid "rescue"
+msgstr "rescue"
+
+#: parted/parted.c:2207
+msgid ""
+"rescue START END                         rescue a lost partition near START "
+"and END"
+msgstr ""
+"rescue DÉPART FIN                        restaurer une partition perdue "
+"entre DÉPART et FIN"
+
+#: parted/parted.c:2213
+msgid "resize"
+msgstr "resize"
+
+#: parted/parted.c:2216
+msgid ""
+"resize NUMBER START END                  resize partition NUMBER and its "
+"file system"
+msgstr ""
+"resize MINEURE DÉPART FIN                modifier la taille du système de "
+"fichiers MINEURE"
+
+#: parted/parted.c:2224
+msgid "rm"
+msgstr "rm"
+
+#: parted/parted.c:2227
+msgid "rm NUMBER                                delete partition NUMBER"
+msgstr "rm MINEURE                              détruire la partition MINEURE"
+
+#: parted/parted.c:2232
+msgid "select"
+msgstr "select"
+
+#: parted/parted.c:2235
+msgid "select DEVICE                            choose the device to edit"
+msgstr ""
+"select PÉRIPHÉRIQUE                     sélectionner le périphérique à éditer"
+
+#: parted/parted.c:2240
+msgid "set"
+msgstr "set"
+
+#: parted/parted.c:2243
+msgid ""
+"set NUMBER FLAG STATE                    change the FLAG on partition NUMBER"
+msgstr ""
+"set MINEURE FANION ÉTAT                  modifier le FANION sur la partition "
+"MINEURE"
+
+#: parted/parted.c:2249
+msgid "toggle"
+msgstr "inverse"
+
+#: parted/parted.c:2252
+msgid ""
+"toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+"partition NUMBER"
+msgstr ""
+"toggle [MINEUR [FANION]]                 inverser l'état du fanion sur la "
+"partition MINEUR"
+
+#: parted/parted.c:2258
+msgid "unit"
+msgstr "unit"
+
+#: parted/parted.c:2261
+msgid "unit UNIT                                set the default unit to UNIT"
+msgstr ""
+"unit UNIT                             affecte l'unité par defaut à UNIT"
+
+#: parted/parted.c:2266
+#, fuzzy
+msgid "version"
+msgstr "version"
+
+#: parted/parted.c:2269
+#, fuzzy
+msgid ""
+"version                                  display the version number and "
+"copyright information of GNU Parted"
+msgstr ""
+"version                                  affiche la version courrante de GNU "
+"Parted ainsi que l'information sur le copyright"
+
+#: parted/parted.c:2273
+#, fuzzy
+msgid ""
+"'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"
+msgstr ""
+"version affiche le copyright et la version de cette copie de GNU Parted\n"
+
+#: parted/parted.c:2335
+#, c-format
+msgid "Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"
+msgstr ""
+
+#: parted/parted.c:2379
+msgid "No device found"
+msgstr "Aucun périphérique trouvé"
+
+#: parted/parted.c:2412
+msgid "WARNING: You are not superuser.  Watch out for permissions."
+msgstr ""
+
+#: parted/parted.c:2450
+#, fuzzy
+msgid "You may need to update /etc/fstab.\n"
+msgstr "Ne pas oublier de mettre à jour /etc/fstab si nécessaire.\n"
+
+#: parted/ui.c:160
+msgid "Welcome to GNU Parted! Type 'help' to view a list of commands.\n"
+msgstr ""
+"Bievenue sur GNU Parted ! Tappez 'help' pour voir la liste des commandes.\n"
+
+#: parted/ui.c:163
+msgid ""
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run "
+"in\n"
+"interactive mode.\n"
+msgstr ""
+"Usage : parted [OPTION]... [PÉRIPHÉRIQUE [COMMANDE [PARAMÈTRES]...]...]\n"
+"Appliquer les COMMANDES avec les PARAMÈTRES au PÉRIPHÉRIQUE. Si aucune "
+"COMMANDE n'est fournie\n"
+"l'exécution se fait en mode intéractif.\n"
+
+#: parted/ui.c:168
+#, fuzzy, c-format
+msgid ""
+"\n"
+"\n"
+"You found a bug in GNU Parted! Here's what you have to do:\n"
+"\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n"
+"\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Please check this version prior to bug reporting.\n"
+"\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"for further information.\n"
+"\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n"
+msgstr ""
+"\n"
+"\n"
+"Vous avez trouvé un bug dans GNU Parted ! Voici ce que vous devez faire :\n"
+"\n"
+"Ne paniquez pas ! Le bug n'a probablement pas affecté vos données.\n"
+"Aidez nous à résoudre ce bug en faisant ce qui suit:\n"
+"\n"
+"Vérifiez si le bug n'a pas déjà été résolu dans la dernière version de GNU\n"
+"Parted que vous pouvez trouver à :\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"SVP vérifiez cette version avant de rapporter tout bug.\n"
+"\n"
+"S'il n'a pas encore été résolu ou si vous ne savez pas comment vérifier,\n"
+"SVP visitez le size web de GNU Parted :\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"pour plus d'informations.\n"
+"\n"
+"Votre rapport dois contenir la version de cette release (%s)\n"
+"accompagné du message d'erreur dessous, le resultat de\n"
+"\n"
+"\tparted PÉRIPHÉRIQUE unit co print unit s print\n"
+"\n"
+"et des informations supplémentaires que vous trouvez importantes à propos de "
+"votre configration.\n"
+
+#: parted/ui.c:284
+msgid ""
+"\n"
+"Command History:\n"
+msgstr ""
+
+#: parted/ui.c:366
+#, fuzzy
+msgid ""
+"\n"
+"Error: SEGV_MAPERR (Address not mapped to object)\n"
+msgstr ""
+"\n"
+"Erreur : SEGV_MAPERR (L'adresse n'est pas associée à un objet)"
+
+#: parted/ui.c:372
+#, fuzzy
+msgid ""
+"\n"
+"Error: SEGV_ACCERR (Invalid permissions for mapped object)\n"
+msgstr ""
+"\n"
+"Erreur : SEGV_ACCERR (Permissions invalides pour l'objet associé)"
+
+#: parted/ui.c:377
+#, fuzzy
+msgid ""
+"\n"
+"Error: A general SIGSEGV signal was encountered.\n"
+msgstr ""
+"\n"
+"Erreur : Un signal SIGSEGV général est survenu."
+
+#: parted/ui.c:410
+msgid ""
+"\n"
+"Error: FPE_INTDIV (Integer: divide by zero)"
+msgstr ""
+"\n"
+"Erreur : FPE_INTDIV (Entier: division par zéro)"
+
+#: parted/ui.c:415
+msgid ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+msgstr ""
+"\n"
+"Erreur : FPE_INTOVF (Entier: dépassement)"
+
+#: parted/ui.c:420
+#, fuzzy
+msgid ""
+"\n"
+"Error: FPE_FLTDIV (Float: divide by zero)"
+msgstr ""
+"\n"
+"Erreur : FPE_INTDIV (Flottant: division par zéro)"
+
+#: parted/ui.c:425
+msgid ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+msgstr ""
+"\n"
+"Erreur : FPE_FLTOVF (Flottant: dépassement)"
+
+#: parted/ui.c:430
+msgid ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+msgstr ""
+"\n"
+"Erreur : FPE_FLTUND (Flottant: soupassement)"
+
+#: parted/ui.c:435
+msgid ""
+"\n"
+"Error: FPE_FLTRES (Float: inexact result)"
+msgstr ""
+"\n"
+"Erreur : PE_FLTRES (Flottant: résultat inexact)"
+
+#: parted/ui.c:440
+msgid ""
+"\n"
+"Error: FPE_FLTINV (Float: invalid operation)"
+msgstr ""
+"\n"
+"Erreur : (Flottant: opération invalide)"
+
+#: parted/ui.c:445
+msgid ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript out of range)"
+msgstr ""
+"\n"
+"Erreur : FPE_FLTSUB (Flottant: indicage hors de la plage)"
+
+#: parted/ui.c:450
+msgid ""
+"\n"
+"Error: A general SIGFPE signal was encountered."
+msgstr ""
+"\n"
+"Erreur : Un signal SIGFPE général est survenu."
+
+#: parted/ui.c:483
+msgid ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+msgstr ""
+"\n"
+"Erreur : ILL_ILLOPC (Opcode illégal)"
+
+#: parted/ui.c:488
+msgid ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+msgstr ""
+"\n"
+"Erreur : ILL_ILLOPN (Opérande illégal)"
+
+#: parted/ui.c:493
+msgid ""
+"\n"
+"Error: ILL_ILLADR (Illegal addressing mode)"
+msgstr ""
+"\n"
+"Erreur : ILL_ILLADR (Mode d'adressage illégal)"
+
+#: parted/ui.c:498
+msgid ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+msgstr ""
+"\n"
+"Erreur : ILL_ILLTRP (Déroutement illégal)"
+
+#: parted/ui.c:503
+msgid ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+msgstr ""
+"\n"
+"Erreur : ILL_PRVOPC (Opcode privilégié)"
+
+#: parted/ui.c:508
+msgid ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+msgstr ""
+"\n"
+"Erreur : ILL_PRVREG (Registre privilégié)"
+
+#: parted/ui.c:513
+msgid ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+msgstr ""
+"\n"
+"Erreur : ILL_COPROC (Erreur du coprocesseur)"
+
+#: parted/ui.c:518
+msgid ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+msgstr ""
+"\n"
+"Erreur : ILL_BADSTK (Erreur de pile interne)"
+
+#: parted/ui.c:523
+#, fuzzy
+msgid ""
+"\n"
+"Error: A general SIGILL signal was encountered."
+msgstr ""
+"\n"
+"Erreur : Un signal SIGILL général est survenu."
+
+#: parted/ui.c:1024
+msgid "Expecting a partition number."
+msgstr "Attente d'un numéro de partition."
+
+#: parted/ui.c:1033
+msgid "Partition doesn't exist."
+msgstr "La partition n'existe pas."
+
+#: parted/ui.c:1053
+msgid "Expecting a file system type."
+msgstr "Attente d'un type de système de fichiers."
+
+#: parted/ui.c:1060
+#, c-format
+msgid "Unknown file system type \"%s\"."
+msgstr "Type de système de fichiers inconnu \"%s\"."
+
+#: parted/ui.c:1080
+msgid "Expecting a disk label type."
+msgstr "Attente d'un type d'étiquette de disque."
+
+#: parted/ui.c:1178
+msgid "Can't create any more partitions."
+msgstr "Ne peut ajouter de nouvelle partition."
+
+#: parted/ui.c:1188
+msgid "Expecting a partition type."
+msgstr "Attente d'un type de partition."
+
+#: parted/ui.c:1315
+msgid "on"
+msgstr "on"
+
+#: parted/ui.c:1316
+msgid "off"
+msgstr "off"
+
+#: parted/ui.c:1431
+msgid "OPTIONs:"
+msgstr "OPTIONS :"
+
+#: parted/ui.c:1436
+msgid "COMMANDs:"
+msgstr "COMMANDES :"
+
+#: parted/ui.c:1445
+#, c-format
+msgid "Using %s\n"
+msgstr "On utilise %s\n"
+
+#: parted/ui.c:1519
+msgid "This command does not make sense in non-interactive mode.\n"
+msgstr ""
+
+#~ msgid "where necessary, prompts for user intervention"
+#~ msgstr "lorsque nécessaire, demande l'intervention de l'utilisateur"
+
+#~ msgid "GNU Parted Version information:\n"
+#~ msgstr "Information sur la version de GNU Parted:\n"
+
+#, fuzzy
+#~ msgid ""
+#~ "Without arguments, print displays the entire partition table. With "
+#~ "'free'\n"
+#~ "argument, information about free space will be displayed otherwise if a\n"
+#~ "partition number is given, then more detailed information is displayed\n"
+#~ "about that partition. If the 'all' argument is passed instead, partition\n"
+#~ "information for all devices will be displayed.\n"
+#~ msgstr ""
+#~ "Sans argument, print affiche la table complète de partitions. Avec "
+#~ "'free'\n"
+#~ "comme argument, l'infomation sur l'espace libre sera affichée, sinon, si "
+#~ "un\n"
+#~ " numéro de partition est fourni alors des informations supplémentaires\n"
+#~ "détaillées sont affichées à propos de cette partition. Si l'argument "
+#~ "'all'\n"
+#~ "est fournit, l'information sur tous les périphériques sera affichée."
+
+#~ msgid "Attempt to read sectors %ld-%ld outside of partition on %s."
+#~ msgstr ""
+#~ "Tentative de lecture des secteurs %ld-%ld en dehors de la partition sur %"
+#~ "s."
+
+#, fuzzy
+#~ msgid ""
+#~ "The sector size on %s is %d bytes.  Parted is known not to work properly "
+#~ "with drives with sector sizes other than %d bytes."
+#~ msgstr ""
+#~ "La taille de secteurs sur %s est de %d octets. Parted est reconnu pour ne "
+#~ "pas fonctionner correctement avec des périphériques dont la taille des "
+#~ "secteurs est différente de %d octets."
+
+#~ msgid "IDE"
+#~ msgstr "IDE"
+
+#, fuzzy
+#~ msgid ""
+#~ "This ext2 file system has a rather strange layout!  Parted can't resize "
+#~ "this (yet)."
+#~ msgstr ""
+#~ "Ce système de fichiers ext2 a une structure étrange ! Parted ne peut (pas "
+#~ "encore)le redimensionner."
+
+#~ msgid ""
+#~ "You have an HFS+ file system that has a feature that I haven't seen used "
+#~ "anywhere.  Parted can theoretically handle it, but the corresponding code "
+#~ "has never been tested, so this might be risky.  Please email me so I can "
+#~ "see how it works!  <xxx@yyy.zz>"
+#~ msgstr ""
+#~ "Vous avez un système de fichiers HFS+ qui a une option que je n'ai jamais "
+#~ "vue ailleurs. Parted peut théoriquement gérer cela, mais le code "
+#~ "correspondant n'a jamais été testé, donc cela peut être risqué. Merci de "
+#~ "me mailer pour que je puisse voir comment cela fonctionne ! <xxx@yyy.zz>"
+
+#~ msgid ""
+#~ "The extents overflow file should not contain its own extents.  You should "
+#~ "check the file system."
+#~ msgstr ""
+#~ "Le fichier des zones additionnelles ne devrait pas contenir sa propre "
+#~ "zone. Vous devriez vérifier le système de fichiers."
+
+#, fuzzy
+#~ msgid "Disk geometry for %s: %s - %s\n"
+#~ msgstr "Géométrie du disque pour %s : %s - %s\n"
+
+#~ msgid "Disk label type: %s\n"
+#~ msgstr "Type d'étiquette de disque : %s\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "You found a bug in GNU Parted.\n"
+#~ "This may have been fixed in the last version of GNU Parted that you can "
+#~ "find at:\n"
+#~ "\thttp://ftp.gnu.org/gnu/parted/\n"
+#~ "If this has not been fixed or if you don't know how to check, please "
+#~ "email:\n"
+#~ "\tbug-parted@gnu.org\n"
+#~ "or (preferably) file a bug report at:\n"
+#~ "\thttp://parted.alioth.debian.org/bugs/\n"
+#~ "Your report should contain the version of this release (%s) along with "
+#~ "the\n"
+#~ "following message and preferably additional information about your "
+#~ "setup.\n"
+#~ "Refer to the web site of parted\n"
+#~ "\thttp://www.gnu.org/software/parted/parted.html\n"
+#~ "for more informations of what could be useful for bug submitting!\n"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Vous avez trouvé un bug dans GNU Parted.\n"
+#~ "Il est possible qu'il ait été corrigé dans la dernière version de GNU "
+#~ "Parted que vous pouvez trouver sur :\n"
+#~ "\thttp://ftp.gnu.org/gnu/parted/\n"
+#~ "S'il n'a pas été corrigé ou si vous ne savez pas comment vérifier, "
+#~ "envoyez un email :\n"
+#~ "\tbug-parted@gnu.org\n"
+#~ "ou (de préférence) remplissez un rapport de bug à :\n"
+#~ "\thttp://parted.alioth.debian.org/bugs/\n"
+#~ "Votre rapport de bug doit contenir la version de ce programme (%s) "
+#~ "accompagné du message suivant et de préférence d'informations "
+#~ "supplémentaires sur votre configuration.\n"
+#~ "Reportez vous au site web de Parted\n"
+#~ "\thttp://www.gnu.org/software/parted/parted.html\n"
+#~ "pour d'autres informations qui pourraient être utiles pour le rapport de "
+#~ "bug !"
+
+#~ msgid "SCSI"
+#~ msgstr "SCSI"
+
+#~ msgid "Device %s is neither a SCSI nor IDE drive."
+#~ msgstr "Le périphérique %s n'est ni un disque SCSI ni un disque IDE."
+
+#~ msgid "File system has an invalid signature for a FAT file systems."
+#~ msgstr ""
+#~ "Le système de fichiers a une signature invalide pour des systèmes de "
+#~ "fichiers FAT."
+
+#~ msgid ""
+#~ "START and END are in megabytes.  Negative values count from the end of "
+#~ "the disk.\n"
+#~ msgstr ""
+#~ "DÉBUT et FIN sont en mégaoctets. Les valeurs négatives se décomptent "
+#~ "depuis la fin du disque.\n"
+
+#~ msgid ""
+#~ "You requested to create a partition at %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Vous avez demandé de créer une partition à %.3f-%.3fMo. Le plus près que "
+#~ "Parted peut traiter est %.3f-%.3fMo."
+
+#~ msgid ""
+#~ "You requested to move the partition to %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Vous avez demandé de déplacer une partition à %.3f-%.3fMo. Le plus près "
+#~ "que Parted peut traiter est %.3f-%.3fMo."
+
+#~ msgid "Minor    Start       End     "
+#~ msgstr "Mineure   Départ      Fin     "
+
+#~ msgid "Type      "
+#~ msgstr "Type      "
+
+#~ msgid "Filesystem  "
+#~ msgstr "Sys.fichiers"
+
+#~ msgid "Name                  "
+#~ msgstr "Nom                   "
+
+#~ msgid ""
+#~ "You requested to resize the partition to %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Vous avez demandé de modifier la taille de la partition à %.3f-%.3fMo. Le "
+#~ "plus près que Parted peut traiter est %.3f-%.3fMo."
+
+#~ msgid ""
+#~ "You found a bug in GNU Parted.  Please email a bug report to bug-"
+#~ "parted@gnu.org containing the version (%s), and the following message:\n"
+#~ msgstr ""
+#~ "Vous avez trouvé une anomalie dans GNU Parted. SVP rapportez celle-ci à "
+#~ "bug-parted@gnu.org en donnant la version (%s) et le message qui suit:\n"
+
+#~ msgid "Error reading %s (%s) to determine if partition is mounted."
+#~ msgstr ""
+#~ "Erreur de lecture %s (%s) afin de déterminer si la partition est montée."
+
+#~ msgid ""
+#~ "Unable to determine if partitions are mounted via /proc/mounts or /etc/"
+#~ "mtab.  Make sure you don't attempt to resize or modify mounted file "
+#~ "systems.  (Even read-only mounted)"
+#~ msgstr ""
+#~ "Incapable de déterminer si des partitions sont montées via /proc/mounts "
+#~ "ou /etc/mtab.  Assurez-vous de ne pas tenter de modifier la taille ou de "
+#~ "modifier le système de fichiers (même montés en lecture seulement)"
+
+#~ msgid ""
+#~ "Partition %s is being used.  Modifying it while it is in use could cause "
+#~ "severe corruption."
+#~ msgstr ""
+#~ "La partition %s est utilisée. La modifier alors qu'elle est en usage peut "
+#~ "provoquer un problème sévère de corruption."
+
+#~ msgid "Could not read geometry of %s - %s."
+#~ msgstr "Ne peut lire la géométrie de %s - %s."
+
+#~ msgid "Device %s has dodgey geometry."
+#~ msgstr "Le périphérique %s à une géométrie douteuse."
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  However, the most likely reason is that Linux "
+#~ "detected the BIOS geometry for %s incorrectly.  GNU Parted suspects the "
+#~ "real geometry should be %d/%d/%d (not %d/%d/%d).  You should check with "
+#~ "your BIOS first, as this may not be correct.  You can inform Linux by "
+#~ "adding the parameter %s=%d,%d,%d to the command line.  See the LILO or "
+#~ "GRUB documentation for more information.  If you think Parted's suggested "
+#~ "geometry is correct, you may select Ignore to continue (and fix Linux "
+#~ "later).  Otherwise, select Cancel (and fix Linux and/or the BIOS now)."
+#~ msgstr ""
+#~ "La table de partition sur %s est inconsistante. Il y a plusieurs raisons "
+#~ "pouvant expliquer ce cas. Cependant, la raison la plus probable est que "
+#~ "Linux a détecté incorrectement la géométrie du BIOS pour %s. GNU parted "
+#~ "suspecte que la vraie géométrie devrait être %d/%d/%d (not %d/%d/%d). "
+#~ "Vous devriez vérifier celle du BIOS d'abord puisque celle-ci peut ne pas "
+#~ "être correcte. Vous pouvez informer Linux en fournissant le paramètre %s=%"
+#~ "d,%d,%d sur la ligne de commande. Consultez la documentation de LILO ou "
+#~ "de GRUB pour plus de détails. Si vous pensez que la géométrie suggérée "
+#~ "par Parted est correcte, vous pouvez sélectionner « ignore » pour "
+#~ "poursuivre (et corriger plus tard avec Linux). Autrement, sélectionner « "
+#~ "Cancel » (et corriger Linux et/ou le BIOS maintenant)."
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  Often, the reason is that Linux detected the "
+#~ "BIOS geometry incorrectly.  However, this does not appear to be the case "
+#~ "here.  It is safe to ignore,but ignoring may cause (fixable) problems "
+#~ "with some boot loaders, and may cause problems with FAT file systems.  "
+#~ "Using LBA is recommended."
+#~ msgstr ""
+#~ "La table de partition sur %s est inconsistante.  Il existe plusieurs "
+#~ "raisons expliquant ce cas.  Souvent la raison est que Linux a détecté une "
+#~ "géométrie du BIOS incorrecte. Cependant cela ne semble pas être le cas "
+#~ "ici.  Il est prudent de l'ignorer mais l'ignorer pourrait causer certains "
+#~ "problèmes (corrigeables) avec certains chargeurs d'amorce et les systèmes "
+#~ "de fichiers FAT. L'utilisation de LBA est recommandée."
+
+#~ msgid ""
+#~ "Unable to align partition properly.  This probably means that another "
+#~ "partitioning tool generated an incorrect partition table, because it "
+#~ "didn't have the correct BIOS geometry.  It is safe to ignore,but ignoring "
+#~ "may cause (fixable) problems with some boot loaders."
+#~ msgstr ""
+#~ "Incapable d'aligner la partition correctement. Ceci indique probablement "
+#~ "qu'un autre outil de partionnage a fabriqué une table de partition "
+#~ "incorrecte, parce qu'il n'utilisait pas la bonne géométrie du BIOS. Il "
+#~ "est prudent de l'ignorer mais l'ignorer peut causer des problèmes "
+#~ "(corrigeables) avec certains chargeurs d'amorce."
+
+#~ msgid ""
+#~ "  You have Windows FAT partition(s) that are not using LBA.  If your BIOS "
+#~ "supports LBA, then you should switch to LBA by setting the LBA flag on "
+#~ "all FAT partitions.  Otherwise, make sure the operating system and the "
+#~ "BIOS have the same geometry before resizing any FAT partitions."
+#~ msgstr ""
+#~ "  Vous avez des partitions FAT Windows qui n'utilisent pas LBA.  Si le "
+#~ "BIOS supporte LBA alors vous devriez sélectionner LBA en l'activant pour "
+#~ "toutes les partitions FAT.  Autrement, assurez-vous que le système "
+#~ "d'exploitation et le BIOS ont la même géométrie avant de modifier la "
+#~ "taille de n'importe quelle partition FAT."
+
+#~ msgid ""
+#~ "The operating system thinks the geometry on %s is %d/%d/%d.  Therefore, "
+#~ "cylinder 1024 ends at %.3fM.%s"
+#~ msgstr ""
+#~ "Le système d'exploitation croit que le géométrie sur %s est %d/%d/%d.  "
+#~ "Par conséquent le cylindre 1024 se termine à %.3fM.%s"
+
+#~ msgid "The operating system thinks the geometry on %s is %d/%d/%d.%s"
+#~ msgstr ""
+#~ "Le système d'exploitation croit que le géométrie sur %s est %d/%d/%d.%s"
+
+#~ msgid "START and END are in megabytes\n"
+#~ msgstr "DÉBUT et FIN sont en mégaoctets\n"
+
+#~ msgid "Partition %s is being used."
+#~ msgstr "La partition %s est déjà utilisée."
+
+#~ msgid ""
+#~ "The FATs aren't big enough to describe all clusters!  Each FAT is %d "
+#~ "sectors.  There are %d clusters, which would require each FAT to be %d "
+#~ "sectors.  This is REALLY weird.  You might want to write us an email: bug-"
+#~ "parted@gnu.org"
+#~ msgstr ""
+#~ "Les FAT ne sont pas assez grandes pour décrire tous les clusters! Chaque "
+#~ "FAT a %d secteurs. Il y a %d clusters lesquels nécessiteront que chaque "
+#~ "FAT ait %d secteurs. Cela est vraiment bizarre. Vous pouvez nous écrire: "
+#~ "bug-parted@gnu.org"
+
+#~ msgid ""
+#~ "This swap partition is not compatible with Linux version 2.1.117 or "
+#~ "earlier.  Use a smaller partition (maximum size 128mb) if you want to use "
+#~ "old versions of Linux."
+#~ msgstr ""
+#~ "Cette partition swap n'est pas compatible avec la version 2.1.117 de "
+#~ "Linux (ou précédente). Utilisez une partition de plus petite taille "
+#~ "(taille maximum 128Mo) si vous désirez utiliser une version plus ancienne "
+#~ "de Linux"
+
+#~ msgid ""
+#~ "The new partition overlaps with another partition so badly that it isn't "
+#~ "obvious want you want!"
+#~ msgstr ""
+#~ "La nouvelle partition en chevauche une autre de façon telle qu'il est "
+#~ "difficile de savoir ce que vous désirez!."
+
+#~ msgid ""
+#~ "Can't resize an extended partition so as to exclude a logical partition."
+#~ msgstr ""
+#~ "Ne peut modifier la taille d'une partition étendue en excluant une "
+#~ "partition logique."
+
+#~ msgid "Can't grow a partition onto used space."
+#~ msgstr "Ne peut accroître une partition sur de l'espace utilisé."
+
+#~ msgid "unknown"
+#~ msgstr "inconnu"
+
+#~ msgid "Unknown SCSI"
+#~ msgstr "SCSI inconnu"
+
+#~ msgid "GUID Partition Table Header Signature is wrong: "
+#~ msgstr "Signature erronée de l'entête de la table de partition GUID: "
+
+#~ msgid " should be "
+#~ msgstr " devrait être "
+
+#~ msgid "GPT Header CRC check failed, %x should be %x."
+#~ msgstr "Erreur de vérification du CRC de l'entête GPT, %x devrait être %x."
+
+#~ msgid "GPT Partition Entry Array CRC check failed, %x should be %x."
+#~ msgstr ""
+#~ "Erreur de vérification du CRC de l'entrée de la partition GPT, %x devrait "
+#~ "être %x."
+
+#~ msgid ""
+#~ "This disk contains a valid Primary and Alternate GUID Partition Table but "
+#~ "the Protective MBR is invalid.  This generally means that the disk had "
+#~ "GPT partitions on it, but then a legacy partition editing tool was used "
+#~ "to change the partition table stored in the MBR.\n"
+#~ "Which data is valid,  GPT or MBR?\n"
+#~ "Yes will assume that the GPT information is correct, and rewrite the "
+#~ "PMBR.\n"
+#~ "No will assume that the MBR is correct, and erase the GPT information.\n"
+#~ "Ignore will assume that the MBR is correct, but not change the disk."
+#~ msgstr ""
+#~ "Ce disque contient une table de partitions Primaire et Alternative GUID "
+#~ "valides mais le MBR Protectif est invalide. Cela signifie généralement "
+#~ "que le disque contient des partitions GPT mais qu'un ancien logiciel "
+#~ "d'édition de partitions a été utilisé pour modifier la table de "
+#~ "partitions stockée dans le MBR.\n"
+#~ "Lequel est valide GPT ou MBR?\n"
+#~ "La réponse Yes (oui) indique que l'on suppose que l'information de type "
+#~ "GPT est correcte et réécrira le PMBR.\n"
+#~ "La réponse No (non) indique que l'on assume que l'information de type MBR "
+#~ "est correcte et effacera l'information GPT\n"
+#~ "La réponse Ignore (ignorez) indique que l'on suppose que l'information de "
+#~ "type MBR est correcte mais aucun changement ne sera apporté au disque."
+
+#~ msgid ""
+#~ "This disk contains a valid Alternate GUID Partition Table but the Primary "
+#~ "GPT and Protective MBR are invalid.  This generally means that the disk "
+#~ "had GPT partitions on it, but then a legacy partition editing tool was "
+#~ "used to change the partition table stored in the MBR.\n"
+#~ "Which data is valid,  GPT or MBR?\n"
+#~ "Yes will assume that the GPT information is correct, and will rewrite the "
+#~ "PMBR and Primary GPT.\n"
+#~ "No will assume that the MBR is correct, and erase the GPT information.\n"
+#~ "Ignore will assume that the MBR is correct, but not change the disk."
+#~ msgstr ""
+#~ "Ce disque contient une table de partition Alternate GUID valide mais la "
+#~ "partition primaire GPT et le MBR Protectif sont invalides. Cela signifie "
+#~ "généralement que le disque contient des partitions GPT mais qu'un ancien "
+#~ "logiciel d'édition de partitions a été utilisé pour modifier la table de "
+#~ "partitions stockée dans le MBR.\n"
+#~ "Lequel est valide GPT ou MBR?\n"
+#~ "La réponse Yes (oui) indique que l'on suppose que l'information de type "
+#~ "GPT est correcte et réécrira le PMBR et la partition primaire GPT.\n"
+#~ "La réponse No (non) indique que l'on suppose que l'information de type "
+#~ "MBR est correcte et effacera l'information GPT\n"
+#~ "La réponse Ignore (ignorez) indique que l'on suppose que l'information de "
+#~ "type MBR est correcte mais aucun changement ne sera apporté au disque."
+
+#~ msgid ""
+#~ "This disk contains a valid Primary GUID Partition Table but the Alternate "
+#~ "GPT and Protective MBR are invalid.  This generally means that the disk "
+#~ "had GPT partitions on it, but then a legacy partition editing tool was "
+#~ "used to change the partition table stored in the MBR.\n"
+#~ "Which data is valid,  GPT or MBR?\n"
+#~ "Yes will assume that the GPT information is correct, and will rewrite the "
+#~ "PMBR and Alternate GPT.\n"
+#~ "No will assume that the MBR is correct, and erase the GPT information.\n"
+#~ "Ignore will assume that the MBR is correct, but not change the disk.\n"
+#~ msgstr ""
+#~ "Ce disque contient une table de partition primaire GUID valide mais la "
+#~ "partition alternative GPT et le MBR Protectif sont invalides. Cela "
+#~ "signifie généralement que le disque contient des partitions GPT mais "
+#~ "qu'un ancien logiciel d'édition de partitions a été utilisé pour modifier "
+#~ "la table de partitions stockée dans le MBR.\n"
+#~ "Lequel est valide GPT ou MBR?\n"
+#~ "La réponse Yes (oui) indique que l'on suppose que l'information de type "
+#~ "GPT est correcte et réécrira le PMBR et la partition alternative GPT.\n"
+#~ "La réponse No (non) indique que l'on suppose que l'information de type "
+#~ "MBR est correcte et effacera l'information GPT\n"
+#~ "La réponse Ignore (ignorez) indique que l'on suppose que l'information de "
+#~ "type MBR est correcte mais aucun changement ne sera apporté au disque.\n"
+
+#~ msgid "Can't set non-Linux partitions as a root device."
+#~ msgstr "Ne peut définir des partitions non-Linux pour un périphérique root"
+
+#~ msgid "Can't set non-Linux partitions as a swap device."
+#~ msgstr ""
+#~ "Ne peut définir des partitions non-Linux pour un périphérique pour le swap"
+
+#~ msgid "No get_resize_constraint for %s!"
+#~ msgstr "Aucun get_resize_constraint pour %s!"
+
+#~ msgid "The %s file system code doesn't support %s disk labels."
+#~ msgstr ""
+#~ "Le code du système de fichiers %s ne supporte pas les étiquettes de "
+#~ "disque %s"
+
+#~ msgid "Creating new %s disklabels is not implemented yet."
+#~ msgstr ""
+#~ "La création d'une nouvelle étiquette pour le système de fichiers %s n'est "
+#~ "pas encore implantée."
+
+#~ msgid "The code to write the partition table hasn't been written for %s yet"
+#~ msgstr ""
+#~ "Le code pour écrire la table de partition n'a pas encore été écrit pour %s"
+
+#~ msgid "Insane!  %d clusters!"
+#~ msgstr "Insensé!  %d clusters!"
+
+#~ msgid ""
+#~ "The filesystem is going to be too big for FAT16, so FAT32 will be used.  "
+#~ "This is not compatible with MS-DOS, early versions of MS-Windows 95 and "
+#~ "Windows NT.  If you use these operating systems, then select cancel, and "
+#~ "create a smaller partition.  If you only use Linux, BSD, MS Windows 98 "
+#~ "and/or MS Windows 95 B, then select OK."
+#~ msgstr ""
+#~ "Le système de fichiers sera trop gros pour FAT16, aussi FAT32 sera "
+#~ "utilisé. Il n'est pas compatible avec MS-DOS et les premières versions de "
+#~ "MS-Windows 95 et Windows NT. Si vous utilisez ces systèmes d'exploitation "
+#~ "alors sélectionne 'annuler' (cancel) et créez une partition plus petite. "
+#~ "Si vous utilisez seulement Linux, BSD, MS Windows 98 et/ou MS Windows 95 "
+#~ "B alors sélectionner 'OK'."
+
+#~ msgid "Weird: fat_calc_sizes() failed for FAT32!"
+#~ msgstr "Bizarre: fat_calc_sizes() a échoué pour un FAT32!"
+
+#~ msgid ""
+#~ "Would you like to use FAT32 for this filesystem?  It is much more "
+#~ "efficient with your disk space, but is not compatible with early versions "
+#~ "of Windows 95 and Windows NT.  Only select yes if you only use Linux, "
+#~ "BSD, MS Windows 98 and/or MS Windows 95 B."
+#~ msgstr ""
+#~ "Préférez-vous utiliser FAT32 pour ce système de fichiers? C'est plus "
+#~ "efficace avec votre espace disque mais non compatible avec les premières "
+#~ "version de Windows 95 et Windows NT. Sélectionner seulement si vous "
+#~ "utilisez Linux, BSD, MS Windows 98 et/ou MS Windows 95 B."
+
+#~ msgid ""
+#~ "File system doesn't have expected sizes for Windows to like it.  Number "
+#~ "of clusters is %d (%d expected); size of FATs is %d sectors (%d expected)."
+#~ msgstr ""
+#~ "Le système de fichiers n'était pas prévu pour des tailles compatibles "
+#~ "avec Windows.  Le nombre de clusters est %d (%d attendu). La taille des "
+#~ "FAT est de %d secteurs (%d attendu)"
+
+#~ msgid ""
+#~ "Partition size (%ld sectors) and filesystem size (%ld sectors) do not "
+#~ "match."
+#~ msgstr ""
+#~ "La taille de partition (%ld secteurs) et la taille du système de fichiers "
+#~ "(%ld secteurs) ne concordent pas."
+
+#~ msgid "Linux-swap partitions can not be hidden on msdos disk labels."
+#~ msgstr ""
+#~ "Les partitions Linux-swap ne peuvent être cachées pour une étiquette de "
+#~ "disque MS-DOS"
+
+#~ msgid "Linux-swap partitions can not be bootable on pc98 disk labels."
+#~ msgstr ""
+#~ "Les partitions Linux-swap ne peuvent être amorçables pour une étiquette "
+#~ "de disque pc98."
+
+#~ msgid "HFS partitions can't be hidden on msdos disk labels."
+#~ msgstr ""
+#~ "Les partitions HFS ne peuvent être cachées pour une étiquette de disque "
+#~ "MS-DOS."
+
+#~ msgid "JFS partitions can't be hidden on msdos disk labels."
+#~ msgstr ""
+#~ "Les partitions JFS ne peuvent être cachées pour une étiquette de disque "
+#~ "MS-DOS."
+
+#~ msgid "Reiserfs partitions can't be hidden on msdos disk labels."
+#~ msgstr ""
+#~ "Les partitions Reiserfs ne peuvent être cachées pour une étiquette de "
+#~ "disque MS-DOS."
+
+#~ msgid "Reiserfs partitions must be bootable on pc98 disk labels."
+#~ msgstr ""
+#~ "Les partitions Reiserfs doivent être amorçables pour une étiquette de "
+#~ "disque pc98."
+
+#~ msgid "XFS partitions can't be hidden on msdos disk labels."
+#~ msgstr ""
+#~ "Les partitions XFS ne peuvent être cachées pour une étiquette de disque "
+#~ "MS-DOS."
diff --git a/parted-1.8.7/po/gl.gmo b/parted-1.8.7/po/gl.gmo
new file mode 100644
index 0000000..6d298ff
--- /dev/null
+++ b/parted-1.8.7/po/gl.gmo
Binary files differ
diff --git a/parted-1.8.7/po/gl.po b/parted-1.8.7/po/gl.po
new file mode 100644
index 0000000..1dc8568
--- /dev/null
+++ b/parted-1.8.7/po/gl.po
@@ -0,0 +1,3731 @@
+# Galician translation of GNU parted
+# Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+# Jacobo Tarrío Barreiro <jtarrio@trasno.net>, 2000, 2001, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: parted 1.6.4-pre2\n"
+"Report-Msgid-Bugs-To: bug-parted@gnu.org\n"
+"POT-Creation-Date: 2007-05-09 17:02-0400\n"
+"PO-Revision-Date: 2002-12-07 01:30+0100\n"
+"Last-Translator: Jacobo Tarrío Barreiro <jtarrio@trasno.net>\n"
+"Language-Team: Galician <gpul-traduccion@ceu.fi.udc.es>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/closeout.c:74
+msgid "write error"
+msgstr ""
+
+#: lib/error.c:125
+#, fuzzy
+msgid "Unknown system error"
+msgstr "Tipo de sistema de ficheiros descoñecido."
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK).  A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#.
+#. If you don't know what to put here, please see
+#. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr ""
+
+#: lib/regcomp.c:131
+msgid "Success"
+msgstr ""
+
+#: lib/regcomp.c:134
+msgid "No match"
+msgstr ""
+
+#: lib/regcomp.c:137
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regcomp.c:140
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regcomp.c:143
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regcomp.c:146
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regcomp.c:149
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regcomp.c:152
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regcomp.c:155
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regcomp.c:158
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regcomp.c:161
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regcomp.c:164
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regcomp.c:170
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regcomp.c:173
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regcomp.c:176
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regcomp.c:179
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regcomp.c:680
+msgid "No previous regular expression"
+msgstr ""
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr ""
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:66
+msgid "(C)"
+msgstr ""
+
+#: lib/version-etc.c:68
+msgid ""
+"\n"
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:84
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:88
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:92
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:98
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:104
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:110
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:132
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+
+#: lib/xalloc-die.c:35
+msgid "memory exhausted"
+msgstr ""
+
+#: libparted/arch/beos.c:237
+msgid "Disk Image"
+msgstr ""
+
+#: libparted/arch/beos.c:338 libparted/arch/gnu.c:261
+#: libparted/arch/linux.c:1272
+#, c-format
+msgid "Error opening %s: %s"
+msgstr "Erro ao abrir %s: %s"
+
+#: libparted/arch/beos.c:349 libparted/arch/gnu.c:271
+#: libparted/arch/linux.c:1283
+#, c-format
+msgid "Unable to open %s read-write (%s).  %s has been opened read-only."
+msgstr ""
+"Non se puido abrir %s para lectura-escritura (%s). Abriuse %s para só "
+"lectura."
+
+#: libparted/arch/beos.c:411 libparted/arch/linux.c:1431
+#, c-format
+msgid "%s during seek for read on %s"
+msgstr "%s mentres se ía á posición da que ler en %s"
+
+#: libparted/arch/beos.c:444 libparted/arch/gnu.c:449 libparted/arch/gnu.c:548
+#: libparted/arch/gnu.c:676 libparted/arch/linux.c:1391
+#: libparted/arch/linux.c:1469
+#, c-format
+msgid "%s during read on %s"
+msgstr "%s durante a lectura en %s"
+
+#: libparted/arch/beos.c:480 libparted/arch/gnu.c:509
+#: libparted/arch/linux.c:1546
+#, c-format
+msgid "Can't write to %s, because it is opened read-only."
+msgstr "Non se puido escribir en %s, porque está aberto para só lectura."
+
+#: libparted/arch/beos.c:496 libparted/arch/linux.c:1570
+#, c-format
+msgid "%s during seek for write on %s"
+msgstr "%s mentres se ía á posición na que escribir en %s"
+
+#: libparted/arch/beos.c:533 libparted/arch/gnu.c:585 libparted/arch/gnu.c:630
+#: libparted/arch/gnu.c:707 libparted/arch/linux.c:1517
+#: libparted/arch/linux.c:1612 libparted/arch/linux.c:1684
+#, c-format
+msgid "%s during write on %s"
+msgstr "%s durante a escritura en %s"
+
+#: debug/clearfat/clearfat.c:63 partprobe/partprobe.c:137
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:67
+#, c-format
+msgid ""
+"Usage: %s [OPTION]\n"
+"  or:  %s DEVICE MINOR\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:70
+msgid ""
+"Clear unused space on a FAT partition (a GNU Parted testing tool).\n"
+"\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:74
+msgid "      --help     display this help and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:75
+msgid "      --version  output version information and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:77 partprobe/partprobe.c:154
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:285
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:290
+#, fuzzy, c-format
+msgid "too many arguments"
+msgstr "Demasiadas páxinas incorrectas."
+
+#: partprobe/partprobe.c:141
+#, c-format
+msgid "Usage: %s [OPTION] [DEVICE]...\n"
+msgstr ""
+
+#: partprobe/partprobe.c:142
+msgid ""
+"Inform the OS of partition table changes.\n"
+"\n"
+"  -d, --no-update  don't update the kernel\n"
+"  -s, --summary    print a summary of contents\n"
+"  -h, --help       display this help and exit\n"
+"  -v, --version    output version information and exit\n"
+msgstr ""
+
+#: partprobe/partprobe.c:150
+msgid ""
+"\n"
+"With no DEVICE, probe all partitions.\n"
+msgstr ""
+
+#: libparted/arch/gnu.c:94
+#, c-format
+msgid "Unable to open %s."
+msgstr "Non se puido abrir %s."
+
+#: libparted/arch/gnu.c:114
+msgid "Unable to probe store."
+msgstr "Non se puido sondea-lo armacén."
+
+#: libparted/arch/gnu.c:352
+#, fuzzy
+msgid ""
+"The partition table cannot be re-read.  This means you need to reboot before "
+"mounting any modified partitions.  You also need to reinstall your boot "
+"loader before you reboot (which may require mounting modified partitions).  "
+"It is impossible do both things!  So you'll need to boot off a rescue disk, "
+"and reinstall your boot loader from the rescue disk.  Read section 4 of the "
+"Parted User documentation for more information."
+msgstr ""
+"Non se puido volver le-la táboa de particións, así que ten que reiniciar "
+"antes de montar calquera partición modificada. Tamén precisa reinstala-lo "
+"cargador de inicio antes de reiniciar (o que pode precisa-la montaxe de "
+"particións modificadas). É imposible facer ámbalas dúas cousas, así que ha "
+"ter que arrincar cun disco de rescate, e reinstala-lo cargador de inicio "
+"dende o disco de rescate. Lea a sección 4 da documentación do Usuario de "
+"Parted para obter máis información."
+
+#: libparted/arch/gnu.c:369
+#, fuzzy, c-format
+msgid ""
+"The partition table on %s cannot be re-read (%s).  This means the Hurd knows "
+"nothing about any modifications you made.  You should reboot your computer "
+"before doing anything with %s."
+msgstr ""
+"A táboa de particións de %s (%s). Isto quere dicir que Hurd non sabe nada "
+"das modificacións que Vd. fixo. Debería reinicia-lo seu ordenador antes de "
+"facer nada con %s."
+
+#: libparted/arch/gnu.c:380 parted/parted.c:2443
+msgid ""
+"You should reinstall your boot loader before rebooting.  Read section 4 of "
+"the Parted User documentation for more information."
+msgstr ""
+"Debería reinstala-lo cargador de inicio antes de reiniciar. Lea a sección 4 "
+"da documentación do Usuario de Parted para obter máis información."
+
+#: libparted/arch/gnu.c:772
+#, c-format
+msgid "%s trying to sync %s to disk"
+msgstr "%s tentando sincronizar %s no disco"
+
+#: libparted/arch/linux.c:408
+#, c-format
+msgid "Could not stat device %s - %s."
+msgstr "Non se puido facer \"stat\" sobre o dispositivo %s - %s."
+
+#: libparted/arch/linux.c:523
+#, c-format
+msgid ""
+"Could not determine sector size for %s: %s.\n"
+"Using the default sector size (%lld)."
+msgstr ""
+
+#: libparted/arch/linux.c:539
+#, c-format
+msgid ""
+"Device %s has a logical sector size of %lld.  Not all parts of GNU Parted "
+"support this at the moment, and the working code is HIGHLY EXPERIMENTAL.\n"
+msgstr ""
+
+#: libparted/arch/linux.c:579
+#, fuzzy, c-format
+msgid "Unable to determine the size of %s (%s)."
+msgstr "Non se puido determina-lo tamaño de %s (%s)"
+
+#: libparted/arch/linux.c:668
+#, c-format
+msgid "Could not get identity of device %s - %s"
+msgstr "Non se puido obte-la identidade do dispositivo %s - %s"
+
+#: libparted/arch/linux.c:677
+msgid "Generic IDE"
+msgstr ""
+
+#: libparted/arch/linux.c:698
+#, c-format
+msgid ""
+"Device %s has multiple (%d) logical sectors per physical sector.\n"
+"GNU Parted supports this EXPERIMENTALLY for some special disk label/file "
+"system combinations, e.g. GPT and ext2/3.\n"
+"Please consult the web site for up-to-date information."
+msgstr ""
+
+#: libparted/arch/linux.c:873
+#, c-format
+msgid "Error initialising SCSI device %s - %s"
+msgstr "Erro ao inicializa-lo dispositivo SCSI %s - %s"
+
+#: libparted/arch/linux.c:928
+#, fuzzy, c-format
+msgid ""
+"The device %s has zero length, and can't possibly store a file system or "
+"partition table.  Perhaps you selected the wrong device?"
+msgstr ""
+"O dispositivo %s ten lonxitude cero, e non pode armacenar un sistema de "
+"ficheiros ou táboa de particións. ¿Non seleccionaría un dispositivo "
+"equivocado?"
+
+#: libparted/arch/linux.c:1032
+#, fuzzy, c-format
+msgid ""
+"Unable to determine geometry of file/device %s.  You should not use Parted "
+"unless you REALLY know what you're doing!"
+msgstr ""
+"Non se puido determina-la xeometría do ficheiro/dispositivo. ¡Non debería "
+"usar Parted se non sabe DE VERDADE o que está a facer!"
+
+#: libparted/arch/linux.c:1110
+msgid "DAC960 RAID controller"
+msgstr "Controladora RAID DAC960"
+
+#: libparted/arch/linux.c:1115
+msgid "Promise SX8 SATA Device"
+msgstr ""
+
+#: libparted/arch/linux.c:1120
+msgid "IBM S390 DASD drive"
+msgstr ""
+
+#: libparted/arch/linux.c:1125
+msgid "IBM iSeries Virtual DASD"
+msgstr ""
+
+#: libparted/arch/linux.c:1130
+msgid "Compaq Smart Array"
+msgstr "Compaq Smart Array"
+
+#: libparted/arch/linux.c:1135
+msgid "ATARAID Controller"
+msgstr "Controladora ATARAID"
+
+#: libparted/arch/linux.c:1140
+msgid "I2O Controller"
+msgstr "Controladora I2O"
+
+#: libparted/arch/linux.c:1145
+msgid "User-Mode Linux UBD"
+msgstr ""
+
+#: libparted/arch/linux.c:1156
+msgid "Linux device-mapper"
+msgstr ""
+
+#: libparted/arch/linux.c:1162
+msgid "Unknown"
+msgstr "Descoñecido"
+
+#: libparted/arch/linux.c:1169
+msgid "ped_device_new()  Unsupported device type"
+msgstr "ped_device_new()  Tipo de dispositivo non soportado"
+
+#: libparted/arch/linux.c:2083
+#, fuzzy, c-format
+msgid ""
+"Error informing the kernel about modifications to partition %s -- %s.  This "
+"means Linux won't know about any changes you made to %s until you reboot -- "
+"so you shouldn't mount it or use it in any way before rebooting."
+msgstr ""
+"Erro ao informar ao núcleo sobre as modificacións feitas na partición %s - %"
+"s. Isto quere dicir que Linux non ha saber nada dos cambios que lle fixo a %"
+"s ata que reinicie - así que non debería montalo ou empregalo de ningún "
+"xeito antes de reiniciar."
+
+#: libparted/arch/linux.c:2262
+#, fuzzy, c-format
+msgid ""
+"parted was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made. "
+msgstr ""
+"O kernel non puido volver le-la táboa de particións de %s (%s). Isto quere "
+"dicir que Linux non sabe nada das modificacións que Vd. fixo, ata que "
+"reinicie. Debería reinicia-lo seu ordenador antes de facer nada con %s."
+
+#: libparted/arch/linux.c:2368
+#, fuzzy, c-format
+msgid ""
+"The kernel was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made until you "
+"reboot.  You should reboot your computer before doing anything with %s."
+msgstr ""
+"O kernel non puido volver le-la táboa de particións de %s (%s). Isto quere "
+"dicir que Linux non sabe nada das modificacións que Vd. fixo, ata que "
+"reinicie. Debería reinicia-lo seu ordenador antes de facer nada con %s."
+
+#: libparted/cs/geom.c:162
+msgid "Can't have the end before the start!"
+msgstr "¡A fin da partición non pode estar detrás do comezo!"
+
+#: libparted/cs/geom.c:169
+msgid "Can't have a partition outside the disk!"
+msgstr "¡Non se pode ter unha partición fóra do disco!"
+
+#: libparted/cs/geom.c:366
+#, fuzzy, c-format
+msgid "Attempt to write sectors %ld-%ld outside of partition on %s."
+msgstr "Tentáronse escribi-los sectores %ld-%ld fóra da partición en %s"
+
+#: libparted/cs/geom.c:406 libparted/fs/linux_swap/linux_swap.c:475
+msgid "checking for bad blocks"
+msgstr "buscando os bloques erróneos"
+
+#: libparted/debug.c:102
+#, c-format
+msgid "Backtrace has %d calls on stack:\n"
+msgstr ""
+
+#: libparted/debug.c:114
+#, c-format
+msgid "Assertion (%s) at %s:%d in function %s() failed."
+msgstr ""
+
+#: libparted/disk.c:203
+#, c-format
+msgid "Unable to open %s - unrecognised disk label."
+msgstr "Non se puido abrir %s - etiqueta de disco non recoñecida."
+
+#: libparted/disk.c:471
+#, c-format
+msgid ""
+"This libparted doesn't have write support for %s.  Perhaps it was compiled "
+"read-only."
+msgstr ""
+"Esta versión de libparted non tén soporte de escritura para %s. Se cadra "
+"está compilado para só lectura."
+
+#: libparted/disk.c:598
+#, fuzzy, c-format
+msgid "Partition %d is %s, but the file system is %s."
+msgstr "A partición %d ten %.3fMb, pero o sistema de ficheiros ten %.3fMb."
+
+#: libparted/disk.c:1075
+#, c-format
+msgid "%s disk labels do not support extended partitions."
+msgstr "As etiquetas de disco %s non soportan particións extendidas."
+
+#: libparted/disk.c:1634
+#, c-format
+msgid "%s disk labels don't support logical or extended partitions."
+msgstr ""
+"As etiquetas de disco %s non soportan particións lóxicas ou extendidas."
+
+#: libparted/disk.c:1647
+#, fuzzy
+msgid "Too many primary partitions."
+msgstr "Demasiadas particións primarias."
+
+#: libparted/disk.c:1656
+#, c-format
+msgid ""
+"Can't add a logical partition to %s, because there is no extended partition."
+msgstr ""
+"Non se pode engadir unha partición lóxica a %s, porque non hai unha "
+"partición estendida."
+
+#: libparted/disk.c:1680
+#, fuzzy, c-format
+msgid "Can't have more than one extended partition on %s."
+msgstr "Non se pode ter máis de unha partición estendida en %s"
+
+#: libparted/disk.c:1690
+msgid "Can't have logical partitions outside of the extended partition."
+msgstr "Non se poden ter particións lóxicas fóra da partición estendida."
+
+#: libparted/disk.c:1715
+#, c-format
+msgid "Can't have a logical partition outside of the extended partition on %s."
+msgstr ""
+"Non se pode ter unha partición lóxica fóra da partición estendida en %s."
+
+#: libparted/disk.c:1725 libparted/disk.c:1779 libparted/disk.c:1945
+#, fuzzy
+msgid "Can't have overlapping partitions."
+msgstr "Non se poden ter particións solapándose."
+
+#: libparted/disk.c:1733
+msgid "Can't have a primary partition inside an extended partition."
+msgstr ""
+"Non se pode ter unha partición primaria dentro dunha partición estendida."
+
+#: libparted/disk.c:2140
+msgid "metadata"
+msgstr "metadatos"
+
+#: libparted/disk.c:2142
+msgid "free"
+msgstr "libre"
+
+#: libparted/disk.c:2144 parted/ui.c:1169 parted/ui.c:1197
+msgid "extended"
+msgstr "estendida"
+
+#: libparted/disk.c:2146 parted/ui.c:1173 parted/ui.c:1201
+msgid "logical"
+msgstr "lóxica"
+
+#: libparted/disk.c:2148 parted/ui.c:1165 parted/ui.c:1193
+msgid "primary"
+msgstr "primaria"
+
+#: libparted/disk.c:2164
+msgid "boot"
+msgstr "inicio"
+
+#: libparted/disk.c:2166
+msgid "root"
+msgstr "raiz"
+
+#: libparted/disk.c:2168
+msgid "swap"
+msgstr "intercambio"
+
+#: libparted/disk.c:2170
+msgid "hidden"
+msgstr "oculta"
+
+#: libparted/disk.c:2172
+msgid "raid"
+msgstr "raid"
+
+#: libparted/disk.c:2174
+msgid "lvm"
+msgstr "lvm"
+
+#: libparted/disk.c:2176
+msgid "lba"
+msgstr "lba"
+
+#: libparted/disk.c:2178
+msgid "hp-service"
+msgstr "hp-service"
+
+#: libparted/disk.c:2180
+msgid "palo"
+msgstr ""
+
+#: libparted/disk.c:2182
+msgid "prep"
+msgstr ""
+
+#: libparted/disk.c:2184
+msgid "msftres"
+msgstr ""
+
+#: libparted/disk.c:2190
+#, fuzzy, c-format
+msgid "Unknown partition flag, %d."
+msgstr "Modificador de particións descoñecido, %d."
+
+#: libparted/exception.c:78
+msgid "Information"
+msgstr "Información"
+
+#: libparted/exception.c:79
+msgid "Warning"
+msgstr "Aviso"
+
+#: libparted/exception.c:80
+msgid "Error"
+msgstr "Erro"
+
+#: libparted/exception.c:81
+msgid "Fatal"
+msgstr "Moi grave"
+
+#: libparted/exception.c:82
+msgid "Bug"
+msgstr "Erro"
+
+#: libparted/exception.c:83
+msgid "No Implementation"
+msgstr "Sen Implementación"
+
+#: libparted/exception.c:87
+msgid "Fix"
+msgstr "Arranxar"
+
+#: libparted/exception.c:88
+msgid "Yes"
+msgstr "Si"
+
+#: libparted/exception.c:89
+msgid "No"
+msgstr "Non"
+
+#: libparted/exception.c:90
+msgid "OK"
+msgstr "Aceptar"
+
+#: libparted/exception.c:91
+msgid "Retry"
+msgstr "Reintentar"
+
+#: libparted/exception.c:92
+msgid "Ignore"
+msgstr "Ignorar"
+
+#: libparted/exception.c:93
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: libparted/exception.c:133
+#, fuzzy, c-format
+msgid ""
+"A bug has been detected in GNU Parted.  Refer to the web site of parted "
+"http://www.gnu.org/software/parted/parted.html for more informations of what "
+"could be useful for bug submitting!  Please email a bug report to bug-"
+"parted@gnu.org containing at least the version (%s) and the following "
+"message:  "
+msgstr ""
+"Detectouse un erro en GNU parted. Por favor, envíe un informe de erro a bug-"
+"parted@gnu.org que conteña a versión (%s) e a seguinte mensaxe:"
+
+#: libparted/filesys.c:384
+msgid "Could not detect file system."
+msgstr "Non se pode detectar un sistema de ficheiros."
+
+#: libparted/filesys.c:395
+#, fuzzy
+msgid "The file system is bigger than its volume!"
+msgstr "O sistema de ficheiros é maior có seu volume."
+
+#: libparted/filesys.c:403
+#, c-format
+msgid "Support for opening %s file systems is not implemented yet."
+msgstr ""
+"O soporte de apertura de sistemas de ficheiros %s non está implementado "
+"aínda."
+
+#: libparted/filesys.c:445
+#, c-format
+msgid "Support for creating %s file systems is not implemented yet."
+msgstr ""
+"O soporte de creación de sistemas de ficheiros %s non está implementado "
+"aínda."
+
+#: libparted/filesys.c:505
+#, c-format
+msgid "Support for checking %s file systems is not implemented yet."
+msgstr ""
+"O soporte de comprobación de sistemas de ficheiros %s non está implementado "
+"aínda."
+
+#: libparted/filesys.c:571
+msgid "raw block copying"
+msgstr "copiando bloque a bloque"
+
+#: libparted/filesys.c:582
+msgid "growing file system"
+msgstr "aumentando o sistema de ficheiros"
+
+#: libparted/filesys.c:622
+msgid "Can't copy onto an overlapping partition."
+msgstr "Non se pode copiar nunha partición que se solapa."
+
+#: libparted/filesys.c:644
+#, fuzzy, c-format
+msgid ""
+"Direct support for copying file systems is not yet implemented for %s.  "
+"However, support for resizing is implemented.  Therefore, the file system "
+"can be copied if the new partition is at least as big as the old one.  So, "
+"either shrink the partition you are trying to copy, or copy to a bigger "
+"partition."
+msgstr ""
+"O soporte directo de copia de sistemas de ficheiros non está implementado "
+"aínda para %s. Nembargantes, o soporte para o cambio de tamaño sí está. Polo "
+"tanto, pódese copia-lo sistema de ficheiros se a partición nova é alomenos "
+"tan grande coma a vella. Así que, ou ben reduza a partición que quere "
+"copiar, ou copie nunha partición máis grande."
+
+#: libparted/filesys.c:658
+#, c-format
+msgid "Support for copying %s file systems is not implemented yet."
+msgstr ""
+"O soporte de copia de sistemas de ficheiros %s non está implementado aínda."
+
+#: libparted/filesys.c:696
+#, c-format
+msgid "Support for resizing %s file systems is not implemented yet."
+msgstr ""
+"O soporte de modificación do tamaño de sistemas de ficheiros %s non está "
+"implementado aínda."
+
+#: libparted/fs/reiserfs/reiserfs.c:315
+msgid "creating"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:402
+#, fuzzy
+msgid "The file system is in an invalid state.  Perhaps it is mounted?"
+msgstr "O sistema de ficheiros é maior có seu volume."
+
+#: libparted/fs/reiserfs/reiserfs.c:410
+msgid "The file system is in old (unresizeable) format."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:416
+msgid "Invalid free blocks count.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:431
+#, fuzzy
+msgid "checking"
+msgstr "check"
+
+#: libparted/fs/reiserfs/reiserfs.c:437
+msgid "Reiserfs tree seems to be corrupted.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:449
+#, fuzzy
+msgid ""
+"The reiserfs file system passed a basic check.  For a more comprehensive "
+"check, run reiserfsck --check."
+msgstr ""
+"O sistema de ficheiros ext2 pasou unha comprobación básica. Para unha "
+"comprobación máis a fondo, empregue o programa e2fsck."
+
+#: libparted/fs/reiserfs/reiserfs.c:474
+#, fuzzy
+msgid "Sorry, can't move the start of reiserfs partitions yet."
+msgstr "¡Síntoo, ainda non podo move-lo principio das particións ext2!"
+
+#: libparted/fs/reiserfs/reiserfs.c:490
+msgid "Couldn't reopen device abstraction layer for read/write."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:508 libparted/fs/ext2/ext2_resize.c:552
+#: libparted/fs/hfs/hfs.c:250 libparted/fs/hfs/hfs.c:629
+msgid "shrinking"
+msgstr "encollendo"
+
+#: libparted/fs/reiserfs/reiserfs.c:520
+#, fuzzy
+msgid "expanding"
+msgstr "Aviso"
+
+#: libparted/fs/reiserfs/reiserfs.c:592
+msgid "Couldn't create reiserfs device abstraction handler."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:606
+#, fuzzy, c-format
+msgid "Device is too small for %lu blocks."
+msgstr "O sistema de ficheiros é pequeno de máis para ext2."
+
+#: libparted/fs/reiserfs/reiserfs.c:615
+msgid "copying"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:682
+#, c-format
+msgid "Couldn't resolve symbol %s.  Error: %s."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:704
+msgid "GNU Parted found an invalid libreiserfs library."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:715
+#, c-format
+msgid ""
+"GNU Parted has detected libreiserfs interface version mismatch.  Found %d-%"
+"d, required %d. ReiserFS support will be disabled."
+msgstr ""
+
+#: libparted/labels/aix.c:137
+#, fuzzy
+msgid "Support for reading AIX disk labels is is not implemented yet."
+msgstr ""
+"O soporte de creación de sistemas de ficheiros %s non está implementado "
+"aínda."
+
+#: libparted/labels/aix.c:148
+#, fuzzy
+msgid "Support for writing AIX disk labels is is not implemented yet."
+msgstr ""
+"O soporte de creación de sistemas de ficheiros %s non está implementado "
+"aínda."
+
+#: libparted/labels/aix.c:161
+#, fuzzy
+msgid ""
+"Support for adding partitions to AIX disk labels is not implemented yet."
+msgstr ""
+"O soporte de creación de sistemas de ficheiros %s non está implementado "
+"aínda."
+
+#: libparted/labels/aix.c:171
+#, fuzzy
+msgid ""
+"Support for duplicating partitions in AIX disk labels is not implemented yet."
+msgstr ""
+"O soporte de creación de sistemas de ficheiros %s non está implementado "
+"aínda."
+
+#: libparted/labels/aix.c:189
+#, fuzzy
+msgid ""
+"Support for setting system type of partitions in AIX disk labels is not "
+"implemented yet."
+msgstr ""
+"O soporte de creación de sistemas de ficheiros %s non está implementado "
+"aínda."
+
+#: libparted/labels/aix.c:199
+#, fuzzy
+msgid "Support for setting flags in AIX disk labels is not implemented yet."
+msgstr ""
+"O soporte de creación de sistemas de ficheiros %s non está implementado "
+"aínda."
+
+#: libparted/labels/bsd.c:501 libparted/labels/dasd.c:755
+#: libparted/labels/dos.c:1974 libparted/labels/dvh.c:770
+#: libparted/labels/gpt.c:1448 libparted/labels/loop.c:248
+#: libparted/labels/mac.c:1408 libparted/labels/pc98.c:759
+#: libparted/labels/rdb.c:1041 libparted/labels/sun.c:705
+msgid "Unable to satisfy all constraints on the partition."
+msgstr "Non se puideron satisfacer tódalas restriccións da partición."
+
+#: libparted/labels/bsd.c:526
+#, fuzzy
+msgid "Unable to allocate a bsd disklabel slot."
+msgstr "Non se puido reservar unha rañura de etiqueta de disco BSD"
+
+#: libparted/labels/dasd.c:166
+#, fuzzy
+msgid "Unable to determine the block size of this dasd"
+msgstr "Non se puido determina-lo tamaño de %s (%s)"
+
+#: libparted/labels/dasd.c:781
+#, fuzzy
+msgid "Unable to allocate a dasd disklabel slot"
+msgstr "Non se puido reservar unha rañura de etiqueta de disco BSD"
+
+#: libparted/labels/dos.c:827
+#, fuzzy, c-format
+msgid "Invalid partition table on %s -- wrong signature %x."
+msgstr "Táboa de particións incorrecta en %s - sinatura %x incorrecta"
+
+#: libparted/labels/dos.c:855
+#, c-format
+msgid "Invalid partition table - recursive partition on %s."
+msgstr "Táboa de particións incorrecta - partición recursiva en %s."
+
+#: libparted/labels/dos.c:1318
+#, fuzzy
+msgid "Extended partitions cannot be hidden on msdos disk labels."
+msgstr ""
+"As particións ext2 non poden estar ocultas en etiquetas de disco msdos."
+
+#: libparted/labels/dos.c:1958
+msgid "Parted can't resize partitions managed by Windows Dynamic Disk."
+msgstr ""
+
+#: libparted/labels/dvh.c:190
+#, fuzzy, c-format
+msgid "%s has no extended partition (volume header partition)."
+msgstr ""
+"%s non ten unha partición estendida (partición de cabeceira de volume). Se "
+"ignora, hanse borrar os volumes de inicio."
+
+#: libparted/labels/dvh.c:313
+msgid "Checksum is wrong, indicating the partition table is corrupt."
+msgstr ""
+"A suma de comprobación é incorrecta, o que indica que a táboa de partición "
+"está corrompida."
+
+#: libparted/labels/dvh.c:616
+msgid "Only primary partitions can be root partitions."
+msgstr "Só as particións primarias poden ser particións raiz."
+
+#: libparted/labels/dvh.c:630
+msgid "Only primary partitions can be swap partitions."
+msgstr "Só as particións primarias poden ser particións de intercambio."
+
+#: libparted/labels/dvh.c:644
+msgid "Only logical partitions can be a boot file."
+msgstr "Só as particións lóxicas poden ser un ficheiro de inicio."
+
+#: libparted/labels/dvh.c:721
+msgid "Only logical partitions (boot files) have a name."
+msgstr "Só as particións lóxicas (ficheiros de inicio) poden ter un nome."
+
+#: libparted/labels/dvh.c:812
+msgid "Too many primary partitions"
+msgstr "Demasiadas particións primarias."
+
+#: libparted/labels/fdasd.c:103
+#, c-format
+msgid ""
+"%s open error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:107
+#, c-format
+msgid ""
+"%s seek error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:110
+#, c-format
+msgid ""
+"%s read error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:113
+#, fuzzy, c-format
+msgid ""
+"%s write error\n"
+"%s\n"
+msgstr "%s durante a escritura en %s"
+
+#: libparted/labels/fdasd.c:116
+#, c-format
+msgid ""
+"%s IOCTL error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:119
+#, c-format
+msgid ""
+"%s API version mismatch\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:122
+#, c-format
+msgid ""
+"%s Unsupported disk type\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:126
+#, c-format
+msgid ""
+"%s Unsupported disk format\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:130
+#, fuzzy, c-format
+msgid ""
+"%s Disk in use\n"
+"%s\n"
+msgstr "%s  %s  %s"
+
+#: libparted/labels/fdasd.c:133
+#, c-format
+msgid ""
+"%s Config file syntax error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:137
+#, c-format
+msgid ""
+"%s Volume label is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:141
+#, c-format
+msgid ""
+"%s a data set name is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:145
+#, c-format
+msgid ""
+"%s space allocation\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:149
+#, c-format
+msgid ""
+"%s device verification failed\n"
+"The specified device is not a valid DASD device\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:154
+#, c-format
+msgid ""
+"%s Fatal error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/gpt.c:454
+#, fuzzy, c-format
+msgid ""
+"%s contains GPT signatures, indicating that it has a GPT table.  However, it "
+"does not have a valid fake msdos partition table, as it should.  Perhaps it "
+"was corrupted -- possibly by a program that doesn't understand GPT partition "
+"tables.  Or perhaps you deleted the GPT table, and are now using an msdos "
+"partition table.  Is this a GPT partition table?"
+msgstr ""
+"%s contén sinaturas GPT, o que indica que ten unha táboa GPT. Nembargantes, "
+"non ten unha táboa de partición msdos falsa válida, tal como debería. Se "
+"cadra está corrompida - posiblemente por un programa que non entende as "
+"táboas de partición GPT. Ou se cadra borrou a táboa GPT e agora emprega unha "
+"táboa de partición msdos. ¿É esta unha táboa de partición GPT?"
+
+#: libparted/labels/gpt.c:648
+#, fuzzy, c-format
+msgid ""
+"The format of the GPT partition table is version %x, which is newer than "
+"what Parted can recognise.  Please tell us!  bug-parted@gnu.org"
+msgstr ""
+"O formato da táboa de partición GPT é máis recente do que Parted pode "
+"recoñecer. Por favor, indíquenolo: bug-parted@gnu.org (en inglés)"
+
+#: libparted/labels/gpt.c:698
+#, c-format
+msgid ""
+"Not all of the space available to %s appears to be used, you can fix the GPT "
+"to use all of the space (an extra %llu blocks) or continue with the current "
+"setting? "
+msgstr ""
+
+#: libparted/labels/gpt.c:827
+msgid ""
+"The backup GPT table is not at the end of the disk, as it should be.  This "
+"might mean that another operating system believes the disk is smaller.  Fix, "
+"by moving the backup to the end (and removing the old backup)?"
+msgstr ""
+"A copia de seguridade da táboa GPT non está na fin do disco, tal como "
+"debería. Isto pode significar que outro sistema operativo cre que o disco é "
+"máis pequeno. ¿Quere arranxalo, movendo a copia de seguridade á final (e "
+"eliminando a copia vella)?"
+
+#: libparted/labels/gpt.c:862
+#, fuzzy
+msgid ""
+"The primary GPT table is corrupt, but the backup appears OK, so that will be "
+"used."
+msgstr ""
+"A táboa GPT primaria está corrompida, pero a copia de seguridade semella "
+"estar ben, así que é a que se ha empregar."
+
+#: libparted/labels/gpt.c:870
+#, fuzzy
+msgid ""
+"Both the primary and backup GPT tables are corrupt.  Try making a fresh "
+"table, and using Parted's rescue feature to recover partitions."
+msgstr ""
+"Ambalas dúas táboas GPT, primaria e copia, están corrompidas. Probe a crear "
+"unha táboa nova e a emprega-la característica de rescate (rescue) de Parted "
+"para recupera-las particións."
+
+#: libparted/labels/mac.c:181
+#, c-format
+msgid "Invalid signature %x for Mac disk labels."
+msgstr "Sinatura %x non válida para etiquetas de disco Mac."
+
+#: libparted/labels/mac.c:226
+msgid "Partition map has no partition map entry!"
+msgstr "¡O mapa de particións non ten unha entrada do mapa de particións!"
+
+#: libparted/labels/mac.c:273
+#, c-format
+msgid "%s is too small for a Mac disk label!"
+msgstr "¡%s é pequeno de máis para unha etiqueta de disco Mac!"
+
+#: libparted/labels/mac.c:532
+#, c-format
+msgid "Partition %d has an invalid signature %x."
+msgstr "A partición %d ten unha sinatura %x non válida."
+
+#: libparted/labels/mac.c:550
+#, c-format
+msgid "Partition %d has an invalid length of 0 bytes!"
+msgstr "¡A partición %d ten unha lonxitude non válida de 0 bytes!"
+
+#: libparted/labels/mac.c:580
+#, fuzzy
+msgid "The data region doesn't start at the start of the partition."
+msgstr "A rexión de datos non comeza no principio da partición"
+
+#: libparted/labels/mac.c:597
+#, fuzzy
+msgid "The boot region doesn't start at the start of the partition."
+msgstr "A rexión de inicio non comeza no principio da partición"
+
+#: libparted/labels/mac.c:611
+msgid "The partition's boot region doesn't occupy the entire partition."
+msgstr "A rexión de inicio da partición non ocupa toda a partición."
+
+#: libparted/labels/mac.c:622
+msgid "The partition's data region doesn't occupy the entire partition."
+msgstr "A rexión de datos da partición non ocupa toda a partición."
+
+#: libparted/labels/mac.c:675
+#, c-format
+msgid ""
+"Weird block size on device descriptor: %d bytes is not divisible by 512."
+msgstr ""
+"Tamaño de bloque estraño no descriptor do dispositivo: %d bytes non é "
+"divisible por 512."
+
+#: libparted/labels/mac.c:688
+#, c-format
+msgid ""
+"The driver descriptor says the physical block size is %d bytes, but Linux "
+"says it is %d bytes."
+msgstr ""
+"O descriptor do controlador di que o tamaño do bloque físico é %d bytes, "
+"pero Linux di que é de %d bytes."
+
+#: libparted/labels/mac.c:736
+msgid "No valid partition map found."
+msgstr "Non se atopou un mapa de particións válido."
+
+#: libparted/labels/mac.c:795
+#, fuzzy, c-format
+msgid ""
+"Conflicting partition map entry sizes!  Entry 1 says it is %d, but entry %d "
+"says it is %d!"
+msgstr ""
+"¡Tamaños das entradas do mapa de particións conflictivos! ¡A entrada 1 di "
+"que é de %d, pero a entrada %d di que é %d!"
+
+#: libparted/labels/mac.c:822
+#, fuzzy
+msgid "Weird!  There are 2 partitions map entries!"
+msgstr "Estraño - ¡hai dúas entradas de mapa de particións!"
+
+#: libparted/labels/mac.c:1347
+msgid ""
+"Changing the name of a root or swap partition will prevent Linux from "
+"recognising it as such."
+msgstr ""
+"Cambia-lo nome dunha partición raiz ou de intercambio ha impedir que Linux a "
+"recoñeza coma tal."
+
+#: libparted/labels/mac.c:1443
+#, fuzzy
+msgid "Can't add another partition -- the partition map is too small!"
+msgstr ""
+"Non se pode engadir outra partición - o mapa de particións é pequeno de máis."
+
+#: libparted/labels/pc98.c:354
+#, fuzzy, c-format
+msgid "Invalid partition table on %s."
+msgstr "Táboa de particións incorrecta en %s"
+
+#: libparted/labels/pc98.c:406 libparted/labels/pc98.c:484
+#, fuzzy, c-format
+msgid ""
+"Partition %d isn't aligned to cylinder boundaries.  This is still "
+"unsupported."
+msgstr ""
+"A partición %d non está aliñada nos límites dos cilindros. Hai que engadir "
+"soporte para isto."
+
+#: libparted/labels/pc98.c:791
+msgid "Can't add another partition."
+msgstr "Non se pode engadir máis particións."
+
+#: libparted/labels/rdb.c:162
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:497
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen."
+msgstr ""
+
+#: libparted/labels/rdb.c:581
+#, fuzzy, c-format
+msgid "%s : Loop detected at block %d."
+msgstr "%s non é un dispositivo de bloques."
+
+#: libparted/labels/rdb.c:600
+#, c-format
+msgid "%s : The %s list seems bad at block %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:689
+#, c-format
+msgid "%s : Failed to list bad blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:697
+#, c-format
+msgid "%s : Failed to list partition blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:705
+#, c-format
+msgid "%s : Failed to list file system blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:713
+#, c-format
+msgid "%s : Failed to list boot blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:740
+#, fuzzy, c-format
+msgid "Failed to write partition block at %d."
+msgstr "Non se puido determinar se a partición está montada."
+
+#: libparted/labels/rdb.c:1069
+#, fuzzy
+msgid "Unable to allocate a partition number."
+msgstr "Espérase un número de partición."
+
+#: libparted/labels/sun.c:145
+msgid "Corrupted Sun disk label detected."
+msgstr "Detectouse unha etiqueta de disco Sun corrompida."
+
+#: libparted/labels/sun.c:266
+#, fuzzy, c-format
+msgid ""
+"The disk CHS geometry (%d,%d,%d) reported by the operating system does not "
+"match the geometry stored on the disk label (%d,%d,%d)."
+msgstr ""
+"A xeometría CHS do disco (%d,%d,%d) non encaixa coa xeometría armacenada na "
+"etiqueta de disco (%d,%d,%d)."
+
+#: libparted/labels/sun.c:288
+#, c-format
+msgid "The disk label describes a disk bigger than %s."
+msgstr "A etiqueta de disco describe un disco maior de %s."
+
+#: libparted/labels/sun.c:442
+#, c-format
+msgid "The disk has %d cylinders, which is greater than the maximum of 65536."
+msgstr ""
+
+#: libparted/labels/sun.c:737
+msgid ""
+"The Whole Disk partition is the only available one left.  Generally, it is "
+"not a good idea to overwrite this partition with a real one.  Solaris may "
+"not be able to boot without it, and SILO (the sparc boot loader) appreciates "
+"it as well."
+msgstr ""
+"A partición de Disco Completo é a única que queda dispoñible. Normalmente "
+"non é unha boa idea sobrescribir esta partición cunha de verdade. Solaris "
+"pode non arrincar sen ela, e SILO (o cargador de sparc) tamén a aprecia."
+
+#: libparted/labels/sun.c:752
+msgid "Sun disk label is full."
+msgstr "A etiqueta de disco Sun está chea."
+
+#: libparted/labels/vtoc.c:163
+#, c-format
+msgid ""
+"%s opening device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:167
+#, c-format
+msgid ""
+"%s seeking device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:171
+#, c-format
+msgid ""
+"%s writing to device '%s' failed,\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:175
+#, c-format
+msgid ""
+"%s reading from device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:179
+#, c-format
+msgid "Fatal error\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:418
+msgid "Could not read VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:424
+msgid "Could not read VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:431
+msgid "Could not read VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:438
+msgid "Could not read VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:445
+msgid "Could not read VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:462
+msgid "Could not write VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:468
+msgid "Could not write VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:475
+msgid "Could not write VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:482
+msgid "Could not write VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:489
+msgid "Could not write VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/libparted.c:296 libparted/libparted.c:316
+msgid "Out of memory."
+msgstr "Memoria esgotada."
+
+#: libparted/unit.c:139
+msgid "Cannot get unit size for special unit 'COMPACT'."
+msgstr ""
+
+#: libparted/unit.c:386
+#, c-format
+msgid "\"%s\" has invalid syntax for locations."
+msgstr ""
+
+#: libparted/unit.c:394
+#, c-format
+msgid "The maximum head value is %d."
+msgstr ""
+
+#: libparted/unit.c:401
+#, c-format
+msgid "The maximum sector value is %d."
+msgstr ""
+
+#: libparted/unit.c:413 libparted/unit.c:545
+#, fuzzy, c-format
+msgid "The location %s is outside of the device %s."
+msgstr "Non se pode crear unha partición fóra do dispositivo."
+
+#: libparted/unit.c:527
+msgid "Invalid number."
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:63 libparted/fs/amiga/apfs.c:56
+#: libparted/fs/amiga/asfs.c:70
+#, fuzzy, c-format
+msgid "%s : Failed to allocate partition block\n"
+msgstr "Non se puido determinar se a partición está montada."
+
+#: libparted/fs/amiga/affs.c:78 libparted/fs/amiga/apfs.c:70
+#: libparted/fs/amiga/asfs.c:86
+#, c-format
+msgid "%s : Failed to allocate block\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:83 libparted/fs/amiga/apfs.c:75
+#, fuzzy, c-format
+msgid "%s : Couldn't read boot block %llu\n"
+msgstr "%s non é un dispositivo de bloques."
+
+#: libparted/fs/amiga/affs.c:99 libparted/fs/amiga/apfs.c:86
+#: libparted/fs/amiga/asfs.c:92 libparted/fs/amiga/asfs.c:106
+#, fuzzy, c-format
+msgid "%s : Couldn't read root block %llu\n"
+msgstr "%s non é un dispositivo de bloques."
+
+#: libparted/fs/amiga/amiga.c:72
+#, c-format
+msgid "%s : Failed to allocate id list element\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:189
+#, c-format
+msgid "%s : Couldn't read block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:202
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:212
+#, fuzzy, c-format
+msgid "%s : Couldn't write block %d\n"
+msgstr "%s non é un dispositivo de bloques."
+
+#: libparted/fs/amiga/amiga.c:278
+#, c-format
+msgid "%s : Failed to allocate disk_specific rdb block\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:289
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:318
+#, fuzzy, c-format
+msgid "%s : Failed to read partition block %llu\n"
+msgstr "Non se puido determinar se a partición está montada."
+
+#: libparted/fs/ext2/ext2.c:87 libparted/fs/ext2/ext2.c:112
+msgid "Inconsistent group descriptors!"
+msgstr "¡Descriptores de grupo non consistentes!"
+
+#: libparted/fs/ext2/ext2.c:91 libparted/fs/ext2/ext2.c:116
+#, fuzzy
+msgid "File system full!"
+msgstr "¡Sistema de ficheiros cheo!"
+
+#: libparted/fs/ext2/ext2.c:686
+#, fuzzy
+msgid "Invalid superblock.  Are you sure this is an ext2 file system?"
+msgstr ""
+"Superbloque incorrecto. ¿Está seguro de que este é un sistema de ficheiros "
+"ext2?"
+
+#: libparted/fs/ext2/ext2.c:700 libparted/fs/ext2/ext2_resize.c:658
+#, fuzzy
+msgid "File system has errors!  You should run e2fsck."
+msgstr "¡O sistema de ficheiros ten erros! Debería executar e2fsck."
+
+#: libparted/fs/ext2/ext2.c:711
+#, fuzzy
+msgid ""
+"File system was not cleanly unmounted!  You should run e2fsck.  Modifying an "
+"unclean file system could cause severe corruption."
+msgstr ""
+"¡O sistema de ficheiros non foi desmontado limpamente! Debería executar "
+"e2fsck."
+
+#: libparted/fs/ext2/ext2.c:731
+#, fuzzy
+msgid "File system has an incompatible feature enabled."
+msgstr "O sistema de ficheiros ten unha característica incompatible activada."
+
+#: libparted/fs/ext2/ext2.c:742
+msgid "Error allocating buffer cache."
+msgstr "Erro ao buscar espacio para o buffer cache."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:114
+#, fuzzy
+msgid ""
+"Found an inode with a incorrect link count.  Better go run e2fsck first!"
+msgstr ""
+"Atopei un inode cunha conta de ligazóns incorrecta. Mellor será que empregue "
+"e2fsck antes."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:487
+msgid "Not enough free inodes!"
+msgstr "¡Non hai inodes libres dabondo!"
+
+#: libparted/fs/ext2/ext2_resize.c:223
+#, fuzzy
+msgid "File system is too full to remove a group!"
+msgstr "¡O sistema de ficheiros está demasiado ocupado para eliminar un grupo!"
+
+#: libparted/fs/ext2/ext2_resize.c:232
+#, fuzzy
+msgid "File system has too many allocated inodes to remove a group!"
+msgstr ""
+"¡O sistema de ficheiros ten demasiados inodes ocupados para eliminar un "
+"grupo!"
+
+#: libparted/fs/ext2/ext2_resize.c:491
+msgid "adding groups"
+msgstr "engadindo grupos"
+
+#: libparted/fs/ext2/ext2_resize.c:528
+#, fuzzy, c-format
+msgid "Your file system is too full to resize it to %i blocks.  Sorry."
+msgstr ""
+"O seu sistema de ficheiros está demasiado ocupado para cambiarlle o tamaño a "
+"%i bloques. Síntoo."
+
+#: libparted/fs/ext2/ext2_resize.c:538
+#, fuzzy, c-format
+msgid ""
+"Your file system has too many occupied inodes to resize it to %i blocks.  "
+"Sorry."
+msgstr ""
+"O seu sistema de ficheiros ten demasiados inodes ocupados para cambiarlle o "
+"tamaño a %i bloques. Síntoo."
+
+#: libparted/fs/ext2/ext2_resize.c:666
+#, fuzzy
+msgid "File system was not cleanly unmounted!  You should run e2fsck."
+msgstr ""
+"¡O sistema de ficheiros non foi desmontado limpamente! Debería executar "
+"e2fsck."
+
+#: libparted/fs/ext2/ext2_resize.c:675
+msgid ""
+"The file system has the 'dir_index' feature enabled.  Parted can only resize "
+"the file system if it disables this feature.  You can enable it later by "
+"running 'tune2fs -O dir_index DEVICE' and then 'e2fsck -fD DEVICE'."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:691
+msgid ""
+"A resize operation on this file system will use EXPERIMENTAL code\n"
+"that MAY CORRUPT it (although no one has reported any such damage yet).\n"
+"You should at least backup your data first, and run 'e2fsck -f' afterwards."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_block_relocator.c:198
+#, fuzzy
+msgid "Cross-linked blocks found!  Better go run e2fsck first!"
+msgstr ""
+"¡Atopáronse bloques ligados entre si! ¡Mellor será que empregue e2fsck antes!"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:537
+#, fuzzy, c-format
+msgid "Block %i has no reference?  Weird."
+msgstr "¿O bloque %i non ten unha referencia? Moi raro."
+
+#: libparted/fs/ext2/ext2_block_relocator.c:737
+#, fuzzy, c-format
+msgid "Block %i shouldn't have been marked (%d, %d)!"
+msgstr "¡O bloque %i non debería estar marcado!"
+
+#: libparted/fs/ext2/interface.c:186
+#, fuzzy
+msgid ""
+"The ext2 file system passed a basic check.  For a more comprehensive check, "
+"use the e2fsck program."
+msgstr ""
+"O sistema de ficheiros ext2 pasou unha comprobación básica. Para unha "
+"comprobación máis a fondo, empregue o programa e2fsck."
+
+#: libparted/fs/ext2/interface.c:203
+msgid "Sorry, can't move the start of ext2 partitions yet!"
+msgstr "¡Síntoo, ainda non podo move-lo principio das particións ext2!"
+
+#: libparted/fs/ext2/ext2_buffer.c:82
+msgid "Couldn't flush buffer cache!"
+msgstr "¡Non se puido baleira-lo buffer cache!"
+
+#: libparted/fs/ext2/ext2_mkfs.c:162
+msgid "writing per-group metadata"
+msgstr "gravando os metadatos por grupos"
+
+#: libparted/fs/ext2/ext2_mkfs.c:564
+msgid "File system too small for ext2."
+msgstr "O sistema de ficheiros é pequeno de máis para ext2."
+
+#: libparted/fs/fat/calc.c:135
+#, fuzzy, c-format
+msgid ""
+"You need %s of free disk space to shrink this partition to this size.  "
+"Currently, only %s is free."
+msgstr ""
+"Precisa %dM de espacio libre para reducir esta partición a este tamaño "
+"(actualmente ten só %dM libres)"
+
+#: libparted/fs/fat/context.c:56
+#, c-format
+msgid ""
+"Cluster start delta = %d, which is not a multiple of the cluster size %d."
+msgstr ""
+"Delta do comezo do cluster = %d, que non é un múltiplo do tamaño do cluster %"
+"d."
+
+#: libparted/fs/fat/fat.c:308
+#, fuzzy, c-format
+msgid "Partition too big/small for a %s file system."
+msgstr "A partición é grande/pequena de máis para un sistema de ficheiros %s"
+
+#: libparted/fs/fat/fat.c:474
+msgid ""
+"The FATs don't match.  If you don't know what this means, then select "
+"cancel, run scandisk on the file system, and then come back."
+msgstr ""
+"As FATs non coinciden. Se non sabe o que isto significa, escolla \"Cancelar"
+"\", empregue \"scandisk\" no sistema de ficheiros, e logo volte."
+
+#: libparted/fs/fat/fat.c:514
+msgid "There are no possible configurations for this FAT type."
+msgstr "Non hai configuracións posibles para este tipo de FAT."
+
+#: libparted/fs/fat/fat.c:526
+#, c-format
+msgid ""
+"File system doesn't have expected sizes for Windows to like it.  Cluster "
+"size is %dk (%dk expected); number of clusters is %d (%d expected); size of "
+"FATs is %d sectors (%d expected)."
+msgstr ""
+"O sistema de ficheiros non ten os tamaños esperados para que a Windows lle "
+"goste. O tamaño do cluster é %dk (esperábase %dk); o número de clusters é %d "
+"(esperábanse %d); o tamaño das FATs é de %d sectores (esperábanse %d)."
+
+#: libparted/fs/fat/fat.c:549
+#, c-format
+msgid ""
+"File system is reporting the free space as %d clusters, not %d clusters."
+msgstr ""
+"O sistema de ficheiros di que o espacio libre é de %d clusters, non %d "
+"clusters."
+
+#: libparted/fs/fat/fat.c:874
+#, fuzzy
+msgid ""
+"GNU Parted was miscompiled: the FAT boot sector should be 512 bytes.  FAT "
+"support will be disabled."
+msgstr ""
+"GNU parted foi compilado incorrectamente: o sector de inicio FAT debería ter "
+"512 bytes. O soporte FAT será desactivado."
+
+#: libparted/fs/fat/resize.c:159
+#, fuzzy
+msgid ""
+"There's not enough room in the root directory for all of the files.  Either "
+"cancel, or ignore to lose the files."
+msgstr ""
+"Non hai espacio dabondo no directorio raiz para tódolos ficheiros. Pode ou "
+"ben cancelar, ou ben ignorar e perde-los ficheiros."
+
+#: libparted/fs/fat/resize.c:300
+msgid "Error writing to the root directory."
+msgstr "Erro ao escribir no directorio raiz."
+
+#: libparted/fs/fat/resize.c:489
+#, fuzzy
+msgid "If you leave your file system as FAT16, then you will have no problems."
+msgstr "Se deixa o sistema de ficheiros coma FAT16, non ha ter problemas."
+
+#: libparted/fs/fat/resize.c:492
+msgid ""
+"If you convert to FAT16, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual)."
+msgstr ""
+"Se convirte a FAT16, e MS Windows está instalado na partición, ha ter que "
+"reinstala-lo cargador de inicio de MS Windows. Se quere facelo, debería "
+"consulta-lo manual de Parted (ou o manual da súa distribución)."
+
+#: libparted/fs/fat/resize.c:500
+msgid ""
+"If you leave your file system as FAT32, then you will not introduce any new "
+"problems."
+msgstr ""
+"Se deixa o sistema de ficheiros coma FAT32, non ha introducir novos "
+"problemas."
+
+#: libparted/fs/fat/resize.c:504
+msgid ""
+"If you convert to FAT32, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual).  Also, "
+"converting to FAT32 will make the file system unreadable by MS DOS, MS "
+"Windows 95a, and MS Windows NT."
+msgstr ""
+"Se convirte a FAT32, e MS Windows está instalado na partición, ha ter que "
+"reinstala-lo cargador de inicio de MS Windows. Se quere facelo, debería "
+"consulta-lo manual de Parted (ou o manual da súa distribución). Tamén, a "
+"conversión a FAT32 fará o sistema de ficheiros ilexible para MS DOS, MS "
+"Windows 95a e MS Windows NT."
+
+#: libparted/fs/fat/resize.c:518
+#, c-format
+msgid "%s  %s  %s"
+msgstr "%s  %s  %s"
+
+#: libparted/fs/fat/resize.c:519
+msgid "Would you like to use FAT32?"
+msgstr "¿Quere usar FAT32?"
+
+#: libparted/fs/fat/resize.c:550 libparted/fs/fat/resize.c:566
+#, c-format
+msgid "%s  %s"
+msgstr "%s  %s"
+
+#: libparted/fs/fat/resize.c:551
+msgid ""
+"The file system can only be resized to this size by converting to FAT16."
+msgstr ""
+"O sistema de ficheiros só pode alcanzar este tamaño convertindo a FAT16."
+
+#: libparted/fs/fat/resize.c:567
+msgid ""
+"The file system can only be resized to this size by converting to FAT32."
+msgstr ""
+"O sistema de ficheiros só pode alcanzar este tamaño convertindo a FAT32."
+
+#: libparted/fs/fat/resize.c:580
+#, fuzzy
+msgid ""
+"GNU Parted cannot resize this partition to this size.  We're working on it!"
+msgstr ""
+"GNU Parted non pode cambiar esta partición a este tamaño. ¡Estamos "
+"traballando niso!"
+
+#: libparted/fs/fat/bootsector.c:49 libparted/fs/fat/bootsector.c:56
+msgid "File system has an invalid signature for a FAT file system."
+msgstr ""
+"O sistema de ficheiros ten unha sinatura incorrecta para un sistema de "
+"ficheiros FAT."
+
+#: libparted/fs/fat/bootsector.c:64
+msgid "File system has an invalid sector size for a FAT file system."
+msgstr ""
+"O sistema de ficheiros ten un tamaño de sector incorrecto para un sistema de "
+"ficheiros FAT."
+
+#: libparted/fs/fat/bootsector.c:71
+msgid "File system has an invalid cluster size for a FAT file system."
+msgstr ""
+"O sistema de ficheiros ten un tamaño de bloque non válido para un sistema de "
+"ficheiros FAT."
+
+#: libparted/fs/fat/bootsector.c:78
+#, fuzzy
+msgid ""
+"File system has an invalid number of reserved sectors for a FAT file system."
+msgstr ""
+"O sistema de ficheiros ten un número de sectores reservados incorrecto para "
+"un sistema de ficheiros FAT."
+
+#: libparted/fs/fat/bootsector.c:85
+#, fuzzy
+msgid "File system has an invalid number of FATs."
+msgstr "O sistema de ficheiros ten un número de FATs incorrecto."
+
+#: libparted/fs/fat/bootsector.c:139
+#, c-format
+msgid ""
+"This file system has a logical sector size of %d.  GNU Parted is known not "
+"to work properly with sector sizes other than 512 bytes."
+msgstr ""
+"Este sistema de ficheiros ten un tamaño de sector lóxico de %d. Sábese que "
+"GNU Parted non traballa correctamente con tamaños de sector distintos de 512 "
+"bytes."
+
+#: libparted/fs/fat/bootsector.c:164
+#, c-format
+msgid ""
+"The file system's CHS geometry is (%d, %d, %d), which is invalid.  The "
+"partition table's CHS geometry is (%d, %d, %d).  If you select Ignore, the "
+"file system's CHS geometry will be left unchanged.  If you select Fix, the "
+"file system's CHS geometry will be set to match the partition table's CHS "
+"geometry."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:213
+msgid "FAT boot sector says logical sector size is 0.  This is weird. "
+msgstr ""
+"O sector de inicio FAT di que o tamaño lóxico de sector é 0. Isto é moi "
+"estraño. "
+
+#: libparted/fs/fat/bootsector.c:219
+msgid "FAT boot sector says there are no FAT tables.  This is weird. "
+msgstr "O sector de inicio FAT di que non hai táboas FAT. Isto é moi estraño. "
+
+#: libparted/fs/fat/bootsector.c:225
+msgid "FAT boot sector says clusters are 0 sectors.  This is weird. "
+msgstr ""
+"O sector de inicio FAT di que os clusters teñen 0 sectores. Isto é moi "
+"estraño. "
+
+#: libparted/fs/fat/bootsector.c:235
+#, fuzzy
+msgid "File system is FAT12, which is unsupported."
+msgstr "O sistema de ficheiros é FAT12, que non está soportado."
+
+#: libparted/fs/fat/bootsector.c:411
+#, c-format
+msgid ""
+"The information sector has the wrong signature (%x).  Select cancel for now, "
+"and send in a bug report.  If you're desperate, it's probably safe to ignore."
+msgstr ""
+"O sector de información ten unha sinatura incorrecta (%x). Escolla \"Cancelar"
+"\" polo de agora, e envíe un informe de erro. Se está desesperado, pode que "
+"sexa seguro ignorar."
+
+#: libparted/fs/fat/count.c:152
+#, c-format
+msgid "Bad directory entry for %s: first cluster is the end of file marker."
+msgstr ""
+"Entrada de directorio incorrecta para %s: o primeiro cluster é o marcador de "
+"fin de ficheiro."
+
+#: libparted/fs/fat/count.c:165
+#, c-format
+msgid ""
+"Bad FAT: unterminated chain for %s.  You should run dosfsck or scandisk."
+msgstr ""
+"FAT incorrecta: cadea non rematada para %s. Debería executar dosfsck ou "
+"scandisk."
+
+#: libparted/fs/fat/count.c:174
+#, fuzzy, c-format
+msgid ""
+"Bad FAT: cluster %d outside file system in chain for %s.  You should run "
+"dosfsck or scandisk."
+msgstr ""
+"FAT incorrecta: o cluster %d está fóra do sistema de ficheiros na cadea para "
+"%s. Debería executar dosfsck ou scandisk."
+
+#: libparted/fs/fat/count.c:184
+#, c-format
+msgid ""
+"Bad FAT: cluster %d is cross-linked for %s.  You should run dosfsck or "
+"scandisk."
+msgstr ""
+"FAT incorrecta: o cluster %d ten ligazóns cruzadas para %s. Debería executar "
+"dosfsck ou scandisk."
+
+#: libparted/fs/fat/count.c:203
+#, c-format
+msgid "%s is %dk, but it has %d clusters (%dk)."
+msgstr "%s é de %dk, pero ten %d clusters (%dk)."
+
+#: libparted/fs/fat/count.c:266
+#, c-format
+msgid ""
+"The file %s is marked as a system file.  This means moving it could cause "
+"some programs to stop working."
+msgstr ""
+"O ficheiro %s está marcado coma ficheiro de sistema. Isto significa que "
+"movelo podería facer que outros programas deixaran de traballar."
+
+#: libparted/fs/fat/table.c:137
+#, c-format
+msgid ""
+"FAT %d media %x doesn't match the boot sector's media %x.  You should "
+"probably run scandisk."
+msgstr ""
+"Na FAT %d, o soporte %x non coincide co soporte do sector de inicio, %x. "
+"Seguramente debería executar scandisk."
+
+#: libparted/fs/fat/table.c:269
+#, fuzzy, c-format
+msgid "fat_table_set: cluster %ld outside file system"
+msgstr "fat_table_set: o cluster %ld está fóra do sistema de ficheiros"
+
+#: libparted/fs/fat/table.c:301
+#, fuzzy, c-format
+msgid "fat_table_get: cluster %ld outside file system"
+msgstr "fat_table_get: o cluster %ld está fóra do sistema de ficheiros"
+
+#: libparted/fs/fat/table.c:343
+msgid "fat_table_alloc_cluster: no free clusters"
+msgstr "fat_table_alloc_cluster: non hai clusters libres"
+
+#: libparted/fs/linux_swap/linux_swap.c:275
+#, fuzzy, c-format
+msgid "Unrecognised old style linux swap signature '%10s'."
+msgstr "Sinatura \"%10s\" da partición de intercambio de linux non recoñecida."
+
+#: libparted/fs/linux_swap/linux_swap.c:318
+#, fuzzy, c-format
+msgid "Unrecognised new style linux swap signature '%10s'."
+msgstr "Sinatura \"%10s\" da partición de intercambio de linux non recoñecida."
+
+#: libparted/fs/linux_swap/linux_swap.c:358
+#, fuzzy, c-format
+msgid "Unrecognised swsusp linux swap signature '%9s'."
+msgstr "Sinatura \"%10s\" da partición de intercambio de linux non recoñecida."
+
+#: libparted/fs/linux_swap/linux_swap.c:434
+msgid "Too many bad pages."
+msgstr "Demasiadas páxinas incorrectas."
+
+#: libparted/fs/hfs/advfs.c:121 libparted/fs/hfs/advfs_plus.c:122
+#: libparted/fs/hfs/reloc.c:414 libparted/fs/hfs/reloc.c:508
+#: libparted/fs/hfs/reloc_plus.c:539 libparted/fs/hfs/reloc_plus.c:658
+#: libparted/fs/hfs/reloc_plus.c:772
+msgid "The file system contains errors."
+msgstr ""
+
+#: libparted/fs/hfs/advfs_plus.c:287
+msgid "Bad blocks could not be read."
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:137
+#, c-format
+msgid ""
+"Trying to register an extent starting at block 0x%X, but another one already "
+"exists at this position.  You should check the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:214
+#, c-format
+msgid ""
+"Trying to move an extent from block Ox%X to block Ox%X, but another one "
+"already exists at this position.  This should not happen!"
+msgstr ""
+
+#: libparted/fs/hfs/file.c:143
+#, c-format
+msgid "Could not update the extent cache for HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:180
+#, c-format
+msgid "Trying to read HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:190 libparted/fs/hfs/file.c:220
+#, c-format
+msgid "Could not find sector %lli of HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:210
+#, c-format
+msgid "Trying to write HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:157
+#, c-format
+msgid "Could not update the extent cache for HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:202
+#, c-format
+msgid "Trying to read HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:213 libparted/fs/hfs/file_plus.c:256
+#, c-format
+msgid "Could not find sector %lli of HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:245
+#, c-format
+msgid "Trying to write HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:232
+msgid "Sorry, HFS cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:262 libparted/fs/hfs/hfs.c:641
+msgid "Data relocation has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:281
+msgid "Data relocation left some data in the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:320
+#, fuzzy
+msgid "writing HFS Master Directory Block"
+msgstr "Erro ao escribir no directorio raiz."
+
+#: libparted/fs/hfs/hfs.c:468
+msgid "No valid HFS[+X] signature has been found while opening."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:478
+#, c-format
+msgid "Version %d of HFS+ isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:489
+#, c-format
+msgid "Version %d of HFSX isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:672
+msgid "Data relocation left some data at the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:720
+#, fuzzy
+msgid "Error while writing the allocation file."
+msgstr "Erro ao escribir no directorio raiz."
+
+#: libparted/fs/hfs/hfs.c:735
+msgid "Error while writing the compatibility part of the allocation file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:750
+msgid "writing HFS+ Volume Header"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:850
+msgid "An error occurred while looking for the mandatory bad blocks file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:904
+msgid ""
+"It seems there is an error in the HFS wrapper: the bad blocks file doesn't "
+"contain the embedded HFS+ volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:940
+msgid "Sorry, HFS+ cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:975
+msgid "shrinking embedded HFS+ volume"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:991
+msgid "Resizing the HFS+ volume has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:998
+#, fuzzy
+msgid "shrinking HFS wrapper"
+msgstr "encollendo"
+
+#: libparted/fs/hfs/hfs.c:1007
+msgid "Updating the HFS wrapper has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:1109 libparted/fs/hfs/hfs.c:1194
+#, c-format
+msgid ""
+"This is not a real %s check.  This is going to extract special low level "
+"files for debugging purposes."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:155
+msgid "Bad block list header checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:168
+#, c-format
+msgid ""
+"Invalid size of a transaction block while replaying the journal (%i bytes)."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:260
+msgid ""
+"Journal stored outside of the volume are not supported.  Try to desactivate "
+"the journal and run Parted again."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:271
+#, fuzzy
+msgid "Journal offset or size is not multiple of the sector size."
+msgstr ""
+"Delta do comezo do cluster = %d, que non é un múltiplo do tamaño do cluster %"
+"d."
+
+#: libparted/fs/hfs/journal.c:292
+msgid "Incorrect magic values in the journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:302
+msgid "Journal size mismatch between journal info block and journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:314
+#, fuzzy
+msgid "Some header fields are not multiple of the sector size."
+msgstr ""
+"Delta do comezo do cluster = %d, que non é un múltiplo do tamaño do cluster %"
+"d."
+
+#: libparted/fs/hfs/journal.c:323
+msgid ""
+"The sector size stored in the journal is not 512 bytes.  Parted only "
+"supports 512 bytes length sectors."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:335
+msgid "Bad journal checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:353
+msgid ""
+"The journal is not empty.  Parted must replay the transactions before "
+"opening the file system.  This will modify the file system."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:381
+msgid ""
+"The volume header or the master directory block has changed while replaying "
+"the journal.  You should restart Parted."
+msgstr ""
+
+#: libparted/fs/hfs/probe.c:51
+#, c-format
+msgid ""
+"Parted can't use HFS file systems on disks with a sector size not equal to %"
+"d bytes."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:151 libparted/fs/hfs/reloc_plus.c:155
+msgid "An extent has not been relocated."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:251 libparted/fs/hfs/reloc_plus.c:307
+msgid ""
+"A reference to an extent comes from a place it should not.  You should check "
+"the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:381
+msgid "This HFS volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:475
+msgid "This HFS volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:517 libparted/fs/hfs/reloc_plus.c:668
+msgid ""
+"The extents overflow file should not contain its own extents!  You should "
+"check the file system."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:574 libparted/fs/hfs/reloc_plus.c:847
+#, fuzzy
+msgid "Could not cache the file system in memory."
+msgstr "Non se pode detectar un sistema de ficheiros."
+
+#: libparted/fs/hfs/reloc.c:635 libparted/fs/hfs/reloc_plus.c:908
+msgid "Bad blocks list could not be loaded."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:649 libparted/fs/hfs/reloc_plus.c:924
+msgid "An error occurred during extent relocation."
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:495
+msgid "This HFS+ volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:619
+msgid "This HFS+ volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: parted/parted.c:94
+msgid "displays this help message"
+msgstr "amosar esta mensaxe de axuda"
+
+#: parted/parted.c:95
+msgid "lists partition layout on all block devices"
+msgstr ""
+
+#: parted/parted.c:96
+msgid "displays machine parseable output"
+msgstr ""
+
+#: parted/parted.c:97
+msgid "never prompts for user intervention"
+msgstr "non pedir nunca a intervención do usuario"
+
+#: parted/parted.c:98
+msgid "displays the version"
+msgstr "amosa-la versión"
+
+#: parted/parted.c:111
+#, fuzzy
+msgid ""
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"
+msgstr ""
+"MENOR é o número de partición que usa Linux. Nas etiquetas de disco msdos, "
+"as particións primarias teñen números de 1 a 4, e as lóxicas téñenos do 5 en "
+"diante.\n"
+
+#: parted/parted.c:114
+msgid "LABEL-TYPE is one of: "
+msgstr "TIPO-ETIQUETA é un destes: "
+
+#: parted/parted.c:115
+msgid "FLAG is one of: "
+msgstr "MODIF é un destes: "
+
+#: parted/parted.c:116
+#, fuzzy
+msgid "UNIT is one of: "
+msgstr "MODIF é un destes: "
+
+#: parted/parted.c:117
+msgid "PART-TYPE is one of: primary, logical, extended\n"
+msgstr ""
+"TIPO-PARTICION é: primary (primaria), logical (lóxica), extended "
+"(estendida)\n"
+
+#: parted/parted.c:119
+msgid "FS-TYPE is one of: "
+msgstr "TIPO-SF é un destes: "
+
+#: parted/parted.c:120
+msgid ""
+"START and END are disk locations, such as 4GB or 10%.  Negative values count "
+"from the end of the disk.  For example, -1s specifies exactly the last "
+"sector.\n"
+msgstr ""
+
+#: parted/parted.c:123
+msgid "STATE is one of: on, off\n"
+msgstr "ESTADO é un destes: on, off\n"
+
+#: parted/parted.c:124
+msgid "DEVICE is usually /dev/hda or /dev/sda\n"
+msgstr "DISPOSITIVO adoita ser /dev/hda ou /dev/sda\n"
+
+#: parted/parted.c:125
+msgid "NAME is any word you want\n"
+msgstr "NOME é calquera palabra que queira\n"
+
+#: parted/parted.c:126
+msgid "The partition must have one of the following FS-TYPEs: "
+msgstr ""
+
+#: parted/parted.c:130
+#, fuzzy
+msgid ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+msgstr ""
+"Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.\n"
+"Este programa é software libre, coberto pola Licencia Pública Xeral de GNU.\n"
+"\n"
+"Este programa é distribuído coa esperanza de que sexa útil, pero SEN "
+"NINGUNHA GARANTÍA; nin sequera a garantía implícita de COMERCIABILIDADE ou "
+"APTITUDE PARA UN FIN EN PARTICULAR. Vexa a Licencia Pública Xeral de GNU "
+"para ter máis detalles.\n"
+
+#: parted/parted.c:176
+#, c-format
+msgid "%0.f%%\t(time left %.2d:%.2d)"
+msgstr "%0.f%%\t(tempo restante %.2d:%.2d)"
+
+#: parted/parted.c:195
+#, c-format
+msgid ""
+"Partition %s is being used. You must unmount it before you modify it with "
+"Parted."
+msgstr ""
+
+#: parted/parted.c:211
+#, c-format
+msgid "Partition(s) on %s are being used."
+msgstr "Esta(n)se a usa-la(s) partición(s) de %s."
+
+#: parted/parted.c:223
+msgid ""
+"The existing file system will be destroyed and all data on the partition "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:235
+#, c-format
+msgid ""
+"The existing disk label on %s will be destroyed and all data on this disk "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:458 parted/parted.c:652 parted/parted.c:1044
+#: parted/parted.c:1128 parted/parted.c:1771 parted/parted.c:1852
+#: parted/parted.c:1900
+msgid "Partition number?"
+msgstr "¿Número de partición?"
+
+#: parted/parted.c:500
+msgid "Source device?"
+msgstr "¿Dispositivo orixe?"
+
+#: parted/parted.c:504
+msgid "Source partition number?"
+msgstr "¿Número da partición orixe?"
+
+#: parted/parted.c:509
+#, fuzzy
+msgid "Can't copy an extended partition."
+msgstr "Non se poden copiar particións estendidas."
+
+#: parted/parted.c:515
+msgid "Destination partition number?"
+msgstr "¿Número da partición de destino?"
+
+#: parted/parted.c:615
+msgid "New disk label type?"
+msgstr "¿Novo tipo de etiqueta de disco?"
+
+#: parted/parted.c:656
+msgid "File system?"
+msgstr "¿Sistema de ficheiros?"
+
+#: parted/parted.c:707 parted/parted.c:878
+msgid "Partition type?"
+msgstr "¿Tipo de partición?"
+
+#: parted/parted.c:714 parted/parted.c:885 parted/parted.c:1131
+msgid "Partition name?"
+msgstr "¿Nome da partición?"
+
+#: parted/parted.c:722 parted/parted.c:895
+msgid "File system type?"
+msgstr "¿Tipo de sistema de ficheiros?"
+
+#: parted/parted.c:729 parted/parted.c:897 parted/parted.c:1059
+#: parted/parted.c:1725 parted/parted.c:1780
+msgid "Start?"
+msgstr "¿Inicio?"
+
+#: parted/parted.c:731 parted/parted.c:900 parted/parted.c:1062
+#: parted/parted.c:1727 parted/parted.c:1782
+msgid "End?"
+msgstr "¿Fin?"
+
+#: parted/parted.c:769 parted/parted.c:938
+#, c-format
+msgid ""
+"You requested a partition from %s to %s.\n"
+"The closest location we can manage is %s to %s.  Is this still acceptable to "
+"you?"
+msgstr ""
+
+#: parted/parted.c:890
+#, fuzzy
+msgid "An extended partition cannot hold a file system.  Did you want mkpart?"
+msgstr ""
+"As particións estendidass non poden ter sistemas de ficheiros. ¿Quería "
+"executar mkpart?"
+
+#: parted/parted.c:1050
+#, fuzzy
+msgid "Can't move an extended partition."
+msgstr "Non se poden move-las particións extendidas."
+
+#: parted/parted.c:1079
+msgid "Can't move a partition onto itself.  Try using resize, perhaps?"
+msgstr "Non se pode mover unha partición a si mesma. ¿Non quererá usar resize?"
+
+#: parted/parted.c:1227
+#, c-format
+msgid "Minor: %d\n"
+msgstr "Menor: %d\n"
+
+#: parted/parted.c:1228
+#, fuzzy, c-format
+msgid "Flags: %s\n"
+msgstr "Modificadores: "
+
+#: parted/parted.c:1229
+#, c-format
+msgid "File System: %s\n"
+msgstr "Sistema de Ficheiros: %s\n"
+
+#: parted/parted.c:1230
+#, fuzzy
+msgid "Size:         "
+msgstr "Tamaño:       %10.3fMb (%d%%)\n"
+
+#: parted/parted.c:1235
+#, fuzzy
+msgid "Minimum size: "
+msgstr "Tam. mínimo:  %10.3fMb (%d%%)\n"
+
+#: parted/parted.c:1238
+#, fuzzy
+msgid "Maximum size: "
+msgstr "Tam. Máximo:  %10.3fMb (%d%%)\n"
+
+#: parted/parted.c:1362
+#, c-format
+msgid "Model: %s (%s)\n"
+msgstr ""
+
+#: parted/parted.c:1364
+#, fuzzy, c-format
+msgid "Disk %s: %s\n"
+msgstr "%s  %s  %s"
+
+#: parted/parted.c:1365
+#, c-format
+msgid "Sector size (logical/physical): %lldB/%lldB\n"
+msgstr ""
+
+#: parted/parted.c:1383
+#, c-format
+msgid "BIOS cylinder,head,sector geometry: %d,%d,%d.  Each cylinder is %s.\n"
+msgstr ""
+
+#: parted/parted.c:1392
+#, fuzzy, c-format
+msgid "Partition Table: %s\n"
+msgstr "¿Nome da partición?"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Number"
+msgstr ""
+
+#: parted/parted.c:1406 parted/parted.c:1409
+#, fuzzy
+msgid "Start"
+msgstr "¿Inicio?"
+
+#: parted/parted.c:1407 parted/parted.c:1410
+#, fuzzy
+msgid "End"
+msgstr "¿Fin?"
+
+#: parted/parted.c:1410
+#, fuzzy
+msgid "Size"
+msgstr "resize"
+
+#: parted/parted.c:1414
+msgid "Type"
+msgstr ""
+
+#: parted/parted.c:1416
+#, fuzzy
+msgid "File system"
+msgstr "¿Sistema de ficheiros?"
+
+#: parted/parted.c:1419
+#, fuzzy
+msgid "Name"
+msgstr "name"
+
+#: parted/parted.c:1421
+msgid "Flags"
+msgstr "Modificadores"
+
+#: parted/parted.c:1477
+msgid "Free Space"
+msgstr ""
+
+#: parted/parted.c:1624
+#, fuzzy, c-format
+msgid ""
+"A %s %s partition was found at %s -> %s.  Do you want to add it to the "
+"partition table?"
+msgstr ""
+"Atopouse unha partición %s %s en %.3fMb -> %.3fMb. ¿Quere engadila á táboa "
+"de particións?"
+
+#: parted/parted.c:1663
+msgid "searching for file systems"
+msgstr "buscando sistemas de ficheiros"
+
+#: parted/parted.c:1877
+msgid "New device?"
+msgstr "¿Novo dispositivo?"
+
+#: parted/parted.c:1902
+#, fuzzy
+msgid "Flag to Invert?"
+msgstr "¿Modificador a cambiar?"
+
+#: parted/parted.c:1907
+msgid "New state?"
+msgstr "¿Novo estado?"
+
+#: parted/parted.c:1944
+msgid "Unit?"
+msgstr ""
+
+#: parted/parted.c:2093
+msgid "check"
+msgstr "check"
+
+#: parted/parted.c:2096
+#, fuzzy
+msgid ""
+"check NUMBER                             do a simple check on the file system"
+msgstr ""
+"check MENOR              facer unha comprobación simple no sistema de "
+"ficheiros"
+
+#: parted/parted.c:2102
+msgid "cp"
+msgstr "cp"
+
+#: parted/parted.c:2105
+#, fuzzy
+msgid ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+"partition"
+msgstr ""
+"cp [DE-DISPOSITIVO] DE-MENOR A-MENOR  copiar sistema de fich. noutra "
+"partición"
+
+#: parted/parted.c:2111
+msgid "help"
+msgstr "help"
+
+#: parted/parted.c:2114
+#, fuzzy
+msgid ""
+"help [COMMAND]                           print general help, or help on "
+"COMMAND"
+msgstr "help [COMANDO]           amosar axuda xeral, ou axuda sobre o COMANDO"
+
+#: parted/parted.c:2120
+msgid "mklabel"
+msgstr "mklabel"
+
+#: parted/parted.c:2120
+#, fuzzy
+msgid "mktable"
+msgstr "mklabel"
+
+#: parted/parted.c:2123
+#, fuzzy
+msgid ""
+"mklabel,mktable LABEL-TYPE               create a new disklabel (partition "
+"table)"
+msgstr ""
+"mklabel TIPO-ETIQUETA    crear unha nova etiqueta de disco/táboa de partición"
+
+#: parted/parted.c:2129
+msgid "mkfs"
+msgstr "mkfs"
+
+#: parted/parted.c:2132
+#, fuzzy
+msgid ""
+"mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on "
+"partititon NUMBER"
+msgstr ""
+"mkfs MENOR TIPO-SF     crear un sistema de ficheiros TIPO-SF na partición "
+"MENOR"
+
+#: parted/parted.c:2138
+msgid "mkpart"
+msgstr "mkpart"
+
+#: parted/parted.c:2141
+#, fuzzy
+msgid "mkpart PART-TYPE [FS-TYPE] START END     make a partition"
+msgstr "mkpart TIPO-PARTICION [TIPO-FS] INICIO FIN        crear unha partición"
+
+#: parted/parted.c:2147
+#, fuzzy
+msgid ""
+"'mkpart' makes a partition without creating a new file system on the "
+"partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"
+msgstr ""
+"mkpart crea unha partición sen crear un novo sistema de ficheiros na "
+"partición. Debe especificarse TIPO-SF para estabrecer un ID de partición "
+"axeitado.\n"
+
+#: parted/parted.c:2152
+msgid "mkpartfs"
+msgstr "mkpartfs"
+
+#: parted/parted.c:2155
+#, fuzzy
+msgid ""
+"mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system"
+msgstr ""
+"mkpartfs TIPO-PARTICION TIPO-SF INICIO FIN\n"
+"                                  crear unha partición cun sistema de "
+"ficheiros"
+
+#: parted/parted.c:2161
+msgid "move"
+msgstr "move"
+
+#: parted/parted.c:2164
+#, fuzzy
+msgid "move NUMBER START END                    move partition NUMBER"
+msgstr "move MENOR INICIO FIN         move-la partición MENOR"
+
+#: parted/parted.c:2169
+msgid "name"
+msgstr "name"
+
+#: parted/parted.c:2172
+#, fuzzy
+msgid "name NUMBER NAME                         name partition NUMBER as NAME"
+msgstr "name MENOR NOME               poñe-lo NOME á partición MENOR"
+
+#: parted/parted.c:2177
+msgid "print"
+msgstr "print"
+
+#: parted/parted.c:2180
+msgid ""
+"print [devices|free|list,all|NUMBER]     display the partition table, "
+"available devices, free space, all found partitions, or a particular "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2185
+msgid ""
+"Without arguments, 'print' displays the entire partition table. However with "
+"the following arguments it performs various other actions.\n"
+msgstr ""
+
+#: parted/parted.c:2187
+msgid "  devices   : display all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2188
+msgid ""
+"  free      : display information about free unpartitioned space on the "
+"current block device\n"
+msgstr ""
+
+#: parted/parted.c:2190
+#, fuzzy
+msgid ""
+"  list, all : display the partition tables of all active block devices\n"
+msgstr ""
+"print [MENOR]                 amosa-la táboa de particións ou unha partición"
+
+#: parted/parted.c:2191
+msgid ""
+"  NUMBER    : display more detailed information about this particular "
+"partition\n"
+msgstr ""
+
+#: parted/parted.c:2196
+msgid "quit"
+msgstr "quit"
+
+#: parted/parted.c:2199
+#, fuzzy
+msgid "quit                                     exit program"
+msgstr "quit                          saír do programa"
+
+#: parted/parted.c:2204
+msgid "rescue"
+msgstr "rescue"
+
+#: parted/parted.c:2207
+#, fuzzy
+msgid ""
+"rescue START END                         rescue a lost partition near START "
+"and END"
+msgstr ""
+"rescue INICIO FIN           recupera unha partición perdida entre INICIO e "
+"FIN"
+
+#: parted/parted.c:2213
+msgid "resize"
+msgstr "resize"
+
+#: parted/parted.c:2216
+#, fuzzy
+msgid ""
+"resize NUMBER START END                  resize partition NUMBER and its "
+"file system"
+msgstr ""
+"rescue INICIO FIN           recupera unha partición perdida entre INICIO e "
+"FIN"
+
+#: parted/parted.c:2224
+msgid "rm"
+msgstr "rm"
+
+#: parted/parted.c:2227
+#, fuzzy
+msgid "rm NUMBER                                delete partition NUMBER"
+msgstr "rm MENOR                 borra-la partición MENOR"
+
+#: parted/parted.c:2232
+msgid "select"
+msgstr "select"
+
+#: parted/parted.c:2235
+#, fuzzy
+msgid "select DEVICE                            choose the device to edit"
+msgstr "select DISPOSITIVO            escolle-lo dispositivo a editar"
+
+#: parted/parted.c:2240
+msgid "set"
+msgstr "set"
+
+#: parted/parted.c:2243
+#, fuzzy
+msgid ""
+"set NUMBER FLAG STATE                    change the FLAG on partition NUMBER"
+msgstr "set MENOR MODIF ESTADO       cambiar un MODIFicador na partición MENOR"
+
+#: parted/parted.c:2249
+msgid "toggle"
+msgstr ""
+
+#: parted/parted.c:2252
+#, fuzzy
+msgid ""
+"toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+"partition NUMBER"
+msgstr "boot MENOR               establece-la partición de arrinque a MENOR"
+
+#: parted/parted.c:2258
+#, fuzzy
+msgid "unit"
+msgstr "quit"
+
+#: parted/parted.c:2261
+#, fuzzy
+msgid "unit UNIT                                set the default unit to UNIT"
+msgstr "quit                          saír do programa"
+
+#: parted/parted.c:2266
+msgid "version"
+msgstr ""
+
+#: parted/parted.c:2269
+msgid ""
+"version                                  display the version number and "
+"copyright information of GNU Parted"
+msgstr ""
+
+#: parted/parted.c:2273
+msgid ""
+"'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"
+msgstr ""
+
+#: parted/parted.c:2335
+#, c-format
+msgid "Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"
+msgstr ""
+
+#: parted/parted.c:2379
+msgid "No device found"
+msgstr "Non se atopou o dispositivo."
+
+#: parted/parted.c:2412
+msgid "WARNING: You are not superuser.  Watch out for permissions."
+msgstr ""
+
+#: parted/parted.c:2450
+#, fuzzy
+msgid "You may need to update /etc/fstab.\n"
+msgstr "Non esqueza actualizar /etc/fstab, se é necesario.\n"
+
+#: parted/ui.c:160
+msgid "Welcome to GNU Parted! Type 'help' to view a list of commands.\n"
+msgstr ""
+
+#: parted/ui.c:163
+#, fuzzy
+msgid ""
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run "
+"in\n"
+"interactive mode.\n"
+msgstr ""
+"Uso: parted [OPCIÓN]... [DISPOSITIVO [COMANDO [PARÁMETROS]...]...]\n"
+"Aplica-lo COMANDO cos PARÁMETROS ao DISPOSITIVO. Se non se indica ningún\n"
+"COMANDO, funciona en modo interactivo.\n"
+
+#: parted/ui.c:168
+#, c-format
+msgid ""
+"\n"
+"\n"
+"You found a bug in GNU Parted! Here's what you have to do:\n"
+"\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n"
+"\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Please check this version prior to bug reporting.\n"
+"\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"for further information.\n"
+"\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n"
+msgstr ""
+
+#: parted/ui.c:284
+msgid ""
+"\n"
+"Command History:\n"
+msgstr ""
+
+#: parted/ui.c:366
+msgid ""
+"\n"
+"Error: SEGV_MAPERR (Address not mapped to object)\n"
+msgstr ""
+
+#: parted/ui.c:372
+msgid ""
+"\n"
+"Error: SEGV_ACCERR (Invalid permissions for mapped object)\n"
+msgstr ""
+
+#: parted/ui.c:377
+msgid ""
+"\n"
+"Error: A general SIGSEGV signal was encountered.\n"
+msgstr ""
+
+#: parted/ui.c:410
+msgid ""
+"\n"
+"Error: FPE_INTDIV (Integer: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:415
+msgid ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+msgstr ""
+
+#: parted/ui.c:420
+msgid ""
+"\n"
+"Error: FPE_FLTDIV (Float: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:425
+msgid ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+msgstr ""
+
+#: parted/ui.c:430
+msgid ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+msgstr ""
+
+#: parted/ui.c:435
+msgid ""
+"\n"
+"Error: FPE_FLTRES (Float: inexact result)"
+msgstr ""
+
+#: parted/ui.c:440
+msgid ""
+"\n"
+"Error: FPE_FLTINV (Float: invalid operation)"
+msgstr ""
+
+#: parted/ui.c:445
+msgid ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript out of range)"
+msgstr ""
+
+#: parted/ui.c:450
+msgid ""
+"\n"
+"Error: A general SIGFPE signal was encountered."
+msgstr ""
+
+#: parted/ui.c:483
+msgid ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+msgstr ""
+
+#: parted/ui.c:488
+msgid ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+msgstr ""
+
+#: parted/ui.c:493
+msgid ""
+"\n"
+"Error: ILL_ILLADR (Illegal addressing mode)"
+msgstr ""
+
+#: parted/ui.c:498
+msgid ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+msgstr ""
+
+#: parted/ui.c:503
+msgid ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+msgstr ""
+
+#: parted/ui.c:508
+msgid ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+msgstr ""
+
+#: parted/ui.c:513
+msgid ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+msgstr ""
+
+#: parted/ui.c:518
+msgid ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+msgstr ""
+
+#: parted/ui.c:523
+msgid ""
+"\n"
+"Error: A general SIGILL signal was encountered."
+msgstr ""
+
+#: parted/ui.c:1024
+msgid "Expecting a partition number."
+msgstr "Espérase un número de partición."
+
+#: parted/ui.c:1033
+msgid "Partition doesn't exist."
+msgstr "A partición non existe."
+
+#: parted/ui.c:1053
+msgid "Expecting a file system type."
+msgstr "Espérase un tipo de sistema de ficheiros."
+
+#: parted/ui.c:1060
+#, c-format
+msgid "Unknown file system type \"%s\"."
+msgstr "Tipo de sistema de ficheiros \"%s\" descoñecido."
+
+#: parted/ui.c:1080
+msgid "Expecting a disk label type."
+msgstr "Espérase un tipo de etiqueta de disco."
+
+#: parted/ui.c:1178
+msgid "Can't create any more partitions."
+msgstr "Non se poden crear máis particións."
+
+#: parted/ui.c:1188
+msgid "Expecting a partition type."
+msgstr "Espérase un tipo de partición."
+
+#: parted/ui.c:1315
+msgid "on"
+msgstr "on"
+
+#: parted/ui.c:1316
+msgid "off"
+msgstr "off"
+
+#: parted/ui.c:1431
+msgid "OPTIONs:"
+msgstr "OPCIÓNs:"
+
+#: parted/ui.c:1436
+msgid "COMMANDs:"
+msgstr "COMANDOs:"
+
+#: parted/ui.c:1445
+#, c-format
+msgid "Using %s\n"
+msgstr "Usando %s\n"
+
+#: parted/ui.c:1519
+msgid "This command does not make sense in non-interactive mode.\n"
+msgstr ""
+
+#~ msgid "where necessary, prompts for user intervention"
+#~ msgstr "onde sexa necesario, pedi-la intervención do usuario"
+
+#, fuzzy
+#~ msgid ""
+#~ "Without arguments, print displays the entire partition table. With "
+#~ "'free'\n"
+#~ "argument, information about free space will be displayed otherwise if a\n"
+#~ "partition number is given, then more detailed information is displayed\n"
+#~ "about that partition. If the 'all' argument is passed instead, partition\n"
+#~ "information for all devices will be displayed.\n"
+#~ msgstr ""
+#~ "Sen argumentos, print amosa toda a táboa de particións. Se se dá\n"
+#~ "un número de partición, hase amosar información máis detallada sobre\n"
+#~ "esa partición.\n"
+
+#~ msgid ""
+#~ "The sector size on %s is %d bytes.  Parted is known not to work properly "
+#~ "with drives with sector sizes other than %d bytes"
+#~ msgstr ""
+#~ "O tamaño dos sectores de %s é de %d bytes. Sábese que parted non traballa "
+#~ "correctamente con unidades que teñan un tamaño de sector distinto de %d "
+#~ "bytes"
+
+#~ msgid "Could not read geometry of %s - %s."
+#~ msgstr "Non se puido le-la xeometría de %s - %s."
+
+#~ msgid "Device %s has dodgey geometry."
+#~ msgstr "O dispositivo %s ten unha xeometría moi estraña."
+
+#~ msgid "IDE"
+#~ msgstr "IDE"
+
+#~ msgid "SCSI"
+#~ msgstr "SCSI"
+
+#~ msgid "Device %s is neither a SCSI nor IDE drive."
+#~ msgstr "O dispositivo %s non é unha unidade SCSI nin IDE."
+
+#~ msgid "Error reading %s (%s) to determine if partition is mounted."
+#~ msgstr "Erro ao ler %s (%s) para determinar se a partición está montada."
+
+#~ msgid ""
+#~ "Unable to determine if partitions are mounted via /proc/mounts or /etc/"
+#~ "mtab.  Make sure you don't attempt to resize or modify mounted file "
+#~ "systems.  (Even read-only mounted)"
+#~ msgstr ""
+#~ "Non se puido determinar se as particións están montadas mediante /proc/"
+#~ "mounts ou /etc/mtab. Asegúrese de que non tenta cambia-lo tamaño ou "
+#~ "modificar sistemas de ficheiros montados (incluso se están montados en só-"
+#~ "lectura)."
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  However, the most likely reason is that Linux "
+#~ "detected the BIOS geometry for %s incorrectly.  GNU Parted suspects the "
+#~ "real geometry should be %d/%d/%d (not %d/%d/%d).  You should check with "
+#~ "your BIOS first, as this may not be correct.  You can inform Linux by "
+#~ "adding the parameter %s=%d,%d,%d to the command line.  See the LILO or "
+#~ "GRUB documentation for more information.  If you think Parted's suggested "
+#~ "geometry is correct, you may select Ignore to continue (and fix Linux "
+#~ "later).  Otherwise, select Cancel (and fix Linux and/or the BIOS now)."
+#~ msgstr ""
+#~ "A táboa de particións de %s non é consistente. Hai moitos motivos polos "
+#~ "que isto puido pasar. Nembargantes, o motivo máis probable é que Linux "
+#~ "detectara a xeometría da BIOS de %s incorrectamente. GNU Parted sospeita "
+#~ "que a verdadeira xeometría debería ser %d/%d/%d (e non %d/%d/%d). Debería "
+#~ "comprobar isto coa BIOS primeiro, porque todo isto podería non ser "
+#~ "correcto. Pode informar a Linux engadindo o parámetro %s=%d,%d,%d na liña "
+#~ "de comando. Vexa a documentación de LILO ou GRUB para obter máis "
+#~ "información. Se cre que a xeometría suxerida por Parted é correcta, pode "
+#~ "escoller \"Ignorar\" para continuar (e arranxar Linux despois). Noutro "
+#~ "caso, escolla \"Cancelar\" (e arranxe Linux e/ou a BIOS agora)."
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  Often, the reason is that Linux detected the "
+#~ "BIOS geometry incorrectly.  However, this does not appear to be the case "
+#~ "here.  It is safe to ignore,but ignoring may cause (fixable) problems "
+#~ "with some boot loaders, and may cause problems with FAT file systems.  "
+#~ "Using LBA is recommended."
+#~ msgstr ""
+#~ "A táboa de particións de %s non é consistente. Hai moitos motivos polos "
+#~ "que isto puido pasar. Moitas veces, o motivo é que Linux detectou a "
+#~ "xeometría da BIOS incorrectamente. Nembargantes, este non parece se-lo "
+#~ "caso agora. Pódese ignorar isto de xeito seguro pero facelo pode causar "
+#~ "problemas (que se poden arranxar) con algúns cargadores de inicio, e "
+#~ "tamén pode causar problemas con sistemas de ficheiros FAT. Recoméndase o "
+#~ "emprego de LBA."
+
+#~ msgid ""
+#~ "Unable to align partition properly.  This probably means that another "
+#~ "partitioning tool generated an incorrect partition table, because it "
+#~ "didn't have the correct BIOS geometry.  It is safe to ignore,but ignoring "
+#~ "may cause (fixable) problems with some boot loaders."
+#~ msgstr ""
+#~ "Non se puido aliña-la partición correctamente. Isto, seguramente, "
+#~ "signifique que outra ferramenta de particionamento xerou unha táboa de "
+#~ "particións incorrecta, porque non tiña a xeometría da BIOS correcta. "
+#~ "Pódese ignorar de xeito seguro, pero facelo pode provocar problemas (que "
+#~ "se poden arranxar) con algúns cargadores de inicio."
+
+#~ msgid "Attempt to read sectors %ld-%ld outside of partition on %s"
+#~ msgstr "Tentáronse le-los sectores %ld-%ld fóra da partición en %s"
+
+#~ msgid ""
+#~ "This ext2 filesystem has a rather strange layout!  Parted can't resize "
+#~ "this (yet)."
+#~ msgstr ""
+#~ "¡Este sistema de ficheiros ten unha organización moi estraña! Parted non "
+#~ "lle pode cambia-lo tamaño a isto (aínda)."
+
+#~ msgid "File system has an invalid signature for a FAT file systems."
+#~ msgstr ""
+#~ "O sistema de ficheiros ten unha sinatura incorrecta para un sistema de "
+#~ "ficheiros FAT."
+
+#~ msgid "START and END are in megabytes\n"
+#~ msgstr "INICIO e FIN indícanse en megabytes\n"
+
+#~ msgid "Partition %s is being used."
+#~ msgstr "Estase a usa-la partición %s."
+
+#~ msgid ""
+#~ "You requested to create a partition at %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Solicitou crear unha partición en %.3f-%.3fMb. O máis semellante que pode "
+#~ "manexar Parted é %.3f-%.3fMb."
+
+#~ msgid ""
+#~ "You requested to move the partition to %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Solicitou move-la partición a %.3f-%.3fMb. O máis semellante que pode "
+#~ "manexar Parted é %.3f-%.3fMb."
+
+#~ msgid "Disk geometry for %s: 0.000-%.3f megabytes\n"
+#~ msgstr "Xeometría de disco de %s: 0.000-%.3f megabytes\n"
+
+#~ msgid "Disk label type: %s\n"
+#~ msgstr "Tipo de etiqueta de disco: %s\n"
+
+#~ msgid "Minor    Start       End     "
+#~ msgstr "Menor    Inicio     Fin     "
+
+#~ msgid "Type      "
+#~ msgstr "Tipo      "
+
+#~ msgid "Filesystem  "
+#~ msgstr "Sistema de ficheiros  "
+
+#~ msgid "Name                  "
+#~ msgstr "Nome                  "
+
+#~ msgid ""
+#~ "You requested to resize the partition to %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Solicitou cambia-lo tamaño da partición a %.3f-%.3fMb. O máis semellante "
+#~ "que pode manexar Parted é %.3f-%.3fMb."
+
+#~ msgid "resize MINOR START END        resize filesystem on partition MINOR"
+#~ msgstr ""
+#~ "resize MENOR INICIO FIN  cambia o tamaño do sistema de ficheiros da part. "
+#~ "MENOR"
+
+#~ msgid ""
+#~ "You found a bug in GNU Parted.  Please email a bug report to bug-"
+#~ "parted@gnu.org containing the version (%s), and the following message:\n"
+#~ msgstr ""
+#~ "Atopou un erro en GNU parted. Por favor, envíe un informe de erro a bug-"
+#~ "parted@gnu.org que conteña a versión (%s) e a seguinte mensaxe:\n"
+
+#~ msgid ""
+#~ "  You have Windows FAT partition(s) that are not using LBA.  If your BIOS "
+#~ "supports LBA, then you should switch to LBA by setting the LBA flag on "
+#~ "all FAT partitions.  Otherwise, make sure the operating system and the "
+#~ "BIOS have the same geometry before resizing any FAT partitions."
+#~ msgstr ""
+#~ " Ten particións FAT de Windows que non empregan LBA. Se a BIOS soporta "
+#~ "LBA debería cambiar a LBA estabrecendo o modificador LBA en tódalas "
+#~ "particións FAT. Noutro caso, asegúrese de que o sistema operativo e a "
+#~ "BIOS teñen a mesma xeometría antes de cambia-lo tamaño de ningunha "
+#~ "partición FAT."
+
+#~ msgid ""
+#~ "The operating system thinks the geometry on %s is %d/%d/%d.  Therefore, "
+#~ "cylinder 1024 ends at %.3fM.%s"
+#~ msgstr ""
+#~ "O sistema operativo cre que a xeometría de %s é %d/%d/%d. Polo tanto, o "
+#~ "cilindro 1024 remata en %.3fM.%s"
+
+#~ msgid "The operating system thinks the geometry on %s is %d/%d/%d.%s"
+#~ msgstr "O sistema operativo cre que a xeometría de %s é %d/%d/%d.%s"
+
+#~ msgid ""
+#~ "The FATs aren't big enough to describe all clusters!  Each FAT is %d "
+#~ "sectors.  There are %d clusters, which would require each FAT to be %d "
+#~ "sectors.  This is REALLY weird.  You might want to write us an email: bug-"
+#~ "parted@gnu.org"
+#~ msgstr ""
+#~ "¡As FATs non son grandes dabondo para describir tódolos clusters! Cada "
+#~ "FAT ten %d sectores. Hai %d clusters, que precisan que cada FAT teña %d "
+#~ "sectores. Isto SI que é estraño. Se cadra debería mandarnos unha mensaxe "
+#~ "electrónica: bug-parted@gnu.org"
+
+# ¿Para que carallo pon este a abreviatura MB en minúsculas,
+# cando todo o mundo sabe que é en maiúsculas? - jt
+#~ msgid ""
+#~ "This swap partition is not compatible with Linux version 2.1.117 or "
+#~ "earlier.  Use a smaller partition (maximum size 128mb) if you want to use "
+#~ "old versions of Linux."
+#~ msgstr ""
+#~ "Esta partición de intercambio non é compatible con Linux versión 2.1.117 "
+#~ "ou anterior. Empregue unha partición máis pequena (tamaño máximo 128MB) "
+#~ "se quere usar versións antigas de Linux."
+
+#~ msgid "unknown"
+#~ msgstr "descoñecido"
+
+#~ msgid "Unknown SCSI"
+#~ msgstr "SCSI descoñecido"
+
+#~ msgid "GUID Partition Table Header Signature is wrong: "
+#~ msgstr "A Sinatura Cabeceira da Táboa de Particións GUID é incorrecta: "
+
+#~ msgid " should be "
+#~ msgstr " debía ser "
+
+#~ msgid "GPT Header CRC check failed, %x should be %x."
+#~ msgstr "A comprobación CRC da Cabeceira GPT, %x debía ser %x."
+
+#~ msgid "GPT Partition Entry Array CRC check failed, %x should be %x."
+#~ msgstr ""
+#~ "A comprobación CRC do Array de Entradas da Partición GPT fallou, %x debía "
+#~ "ser %x."
+
+#~ msgid ""
+#~ "This disk contains a valid Primary and Alternate GUID Partition Table but "
+#~ "the Protective MBR is invalid.  This generally means that the disk had "
+#~ "GPT partitions on it, but then a legacy partition editing tool was used "
+#~ "to change the partition table stored in the MBR.\n"
+#~ "Which data is valid,  GPT or MBR?\n"
+#~ "Yes will assume that the GPT information is correct, and rewrite the "
+#~ "PMBR.\n"
+#~ "No will assume that the MBR is correct, and erase the GPT information.\n"
+#~ "Ignore will assume that the MBR is correct, but not change the disk."
+#~ msgstr ""
+#~ "Este disco contén unha Táboa de Partición GUID Primaria e Alternativa, "
+#~ "pero o MBR Protector non é válido. Isto adoita significar que o disco "
+#~ "tiña particións GPT, pero despois empregouse unha ferramenta de "
+#~ "particionamento antiga para cambia-la táboa de particións armacenada no "
+#~ "MBR.\n"
+#~ "¿Que datos son válidos, GPT ou MBR?\n"
+#~ "Si ha supor que a información GPT é correcta, e ha regrava-lo PMBR.\n"
+#~ "Non ha supor que o MBR é correcto, e ha borra-la información GPT.\n"
+#~ "Ignorar ha supor que o MBR é correcto, pero non ha cambia-lo disco."
+
+#~ msgid ""
+#~ "This disk contains a valid Alternate GUID Partition Table but the Primary "
+#~ "GPT and Protective MBR are invalid.  This generally means that the disk "
+#~ "had GPT partitions on it, but then a legacy partition editing tool was "
+#~ "used to change the partition table stored in the MBR.\n"
+#~ "Which data is valid,  GPT or MBR?\n"
+#~ "Yes will assume that the GPT information is correct, and will rewrite the "
+#~ "PMBR and Primary GPT.\n"
+#~ "No will assume that the MBR is correct, and erase the GPT information.\n"
+#~ "Ignore will assume that the MBR is correct, but not change the disk."
+#~ msgstr ""
+#~ "Este disco contén unha Taboa de Particións GUID Alternativa válida, pero "
+#~ "a GPT Primaria e o MBR Protector non son válidos. Isto adoita significar "
+#~ "que o disco tivo particións GPT pero despois empregouse unha ferramenta "
+#~ "de particionamento antiga para cambia-la táboa de particións armacenada "
+#~ "no MBR.\n"
+#~ "¿Que datos son válidos, GPT ou MBR?\n"
+#~ "Si ha supor que a información GPT é correcta, e ha regrava-lo PMBR e a "
+#~ "GPT Primaria.\n"
+#~ "Non ha supor que o MBR é correcto, e ha borra-la información GPT.\n"
+#~ "Ignorar ha supor que o MBR é correcto, pero non ha cambia-lo disco."
+
+#~ msgid ""
+#~ "This disk contains a valid Primary GUID Partition Table but the Alternate "
+#~ "GPT and Protective MBR are invalid.  This generally means that the disk "
+#~ "had GPT partitions on it, but then a legacy partition editing tool was "
+#~ "used to change the partition table stored in the MBR.\n"
+#~ "Which data is valid,  GPT or MBR?\n"
+#~ "Yes will assume that the GPT information is correct, and will rewrite the "
+#~ "PMBR and Alternate GPT.\n"
+#~ "No will assume that the MBR is correct, and erase the GPT information.\n"
+#~ "Ignore will assume that the MBR is correct, but not change the disk.\n"
+#~ msgstr ""
+#~ "Este disco contén unha Taboa de Particións GUID Primaria válida, pero a "
+#~ "GPT Alternativa e o MBR Protector non son válidos. Isto adoita significar "
+#~ "que o disco tivo particións GPT pero despois empregouse unha ferramenta "
+#~ "de particionamento antiga para cambia-la táboa de particións armacenada "
+#~ "no MBR.\n"
+#~ "¿Que datos son válidos, GPT ou MBR?\n"
+#~ "Si ha supor que a información GPT é correcta, e ha regrava-lo PMBR e a "
+#~ "GPT Alternativa.\n"
+#~ "Non ha supor que o MBR é correcto, e ha borra-la información GPT.\n"
+#~ "Ignorar ha supor que o MBR é correcto, pero non ha cambia-lo disco.\n"
+
+#~ msgid "The new partition overlaps with another partition."
+#~ msgstr "A nova partición superponse con outra partición."
+
+#~ msgid "Can't set non-Linux partitions as a root device."
+#~ msgstr "Non se poden estabrecer particións non Linux coma dispositivo raiz."
+
+#~ msgid "Can't set non-Linux partitions as a swap device."
+#~ msgstr ""
+#~ "Non se poden estabrecer particións non Linux coma dispositivo de "
+#~ "intercambio."
+
+#~ msgid "No get_resize_constraint for %s!"
+#~ msgstr "¡%s non ten get_resize_constraint!"
+
+#~ msgid "The %s file system code doesn't support %s disk labels."
+#~ msgstr ""
+#~ "O código do sistema de ficheiros %s non soporta etiquetas de disco %s."
+
+#~ msgid "Creating new %s disklabels is not implemented yet."
+#~ msgstr ""
+#~ "A creación de novas etiquetas de disco %s non está implementado ainda."
+
+#~ msgid "The code to write the partition table hasn't been written for %s yet"
+#~ msgstr ""
+#~ "Ainda non se escribíu o código de escritura de táboas de particións para %"
+#~ "s"
+
+#~ msgid ""
+#~ "Can't resize an extended partition so as to exclude a logical partition."
+#~ msgstr ""
+#~ "Non se pode cambia-lo tamaño dunha partición estendida escluindo unha "
+#~ "partición lóxica."
+
+#~ msgid "Can't grow a partition onto used space."
+#~ msgstr "Non se pode facer medra-la partición sobre espacio usado."
+
+#~ msgid "Insane!  %d clusters!"
+#~ msgstr "¡Isto é unha toleada! ¡%d clusters!"
+
+#~ msgid ""
+#~ "The filesystem is going to be too big for FAT16, so FAT32 will be used.  "
+#~ "This is not compatible with MS-DOS, early versions of MS-Windows 95 and "
+#~ "Windows NT.  If you use these operating systems, then select cancel, and "
+#~ "create a smaller partition.  If you only use Linux, BSD, MS Windows 98 "
+#~ "and/or MS Windows 95 B, then select OK."
+#~ msgstr ""
+#~ "O sistema de ficheiros vai ser grande de máis para FAT16, así que usarase "
+#~ "FAT32. Isto non é compatible con MS-DOS, versións antigas de MS-Windows "
+#~ "95 e Windows NT. Se usa eses sistemas operativos, escolla `Cancelar', e "
+#~ "cree unha partición máis pequena. Se só usa Linux, BSD, MS Windows 98 e/"
+#~ "ou MS Windows 95 B, entón escolla `Aceptar'."
+
+#~ msgid "Weird: fat_calc_sizes() failed for FAT32!"
+#~ msgstr "Estraño: ¡fallou a chamada a fat_calc_sizes() para FAT32!"
+
+#~ msgid ""
+#~ "Would you like to use FAT32 for this filesystem?  It is much more "
+#~ "efficient with your disk space, but is not compatible with early versions "
+#~ "of Windows 95 and Windows NT.  Only select yes if you only use Linux, "
+#~ "BSD, MS Windows 98 and/or MS Windows 95 B."
+#~ msgstr ""
+#~ "¿Quere usar FAT32 neste sistema de ficheiros? É moito máis eficiente co "
+#~ "seu espacio en disco, pero non é compatible con versións antigas de "
+#~ "Windows 95 e Windows NT. Escolla `Si' só se só usa Linux, BSD, MS Windows "
+#~ "98 e/ou MS Windows 95 B."
+
+#~ msgid ""
+#~ "File system doesn't have expected sizes for Windows to like it.  Number "
+#~ "of clusters is %d (%d expected); size of FATs is %d sectors (%d expected)."
+#~ msgstr ""
+#~ "O sistema de ficheiros non ten os tamaños esperados para que a Windows "
+#~ "lle goste. O número de clusters é %d (esperábanse %d); o tamaño das FATs "
+#~ "é de %d sectores (esperábanse %d)."
+
+#~ msgid ""
+#~ "Partition size (%ld sectors) and filesystem size (%ld sectors) do not "
+#~ "match."
+#~ msgstr ""
+#~ "O tamaño da partición (%ld sectores) e o do sistema de ficheiros (%ld "
+#~ "sectores) non coinciden."
+
+#~ msgid "Linux-swap partitions can not be hidden on msdos disk labels."
+#~ msgstr ""
+#~ "As particións de intercambio de Linux non poden estar ocultas nas "
+#~ "etiquetas de disco msdos."
+
+#~ msgid "Linux-swap partitions can not be bootable on pc98 disk labels."
+#~ msgstr ""
+#~ "As particións de intercambio de Linux non poden ser de inicio nas "
+#~ "etiquetas de disco msdos."
+
+#~ msgid "HFS partitions can't be hidden on msdos disk labels."
+#~ msgstr ""
+#~ "As particións HFS non poden estar ocultas nas etiquetas de disco msdos."
+
+#~ msgid "JFS partitions can't be hidden on msdos disk labels."
+#~ msgstr ""
+#~ "As particións JFS non poden estar ocultas nas etiquetas de disco msdos."
+
+#~ msgid "Reiserfs partitions can't be hidden on msdos disk labels."
+#~ msgstr ""
+#~ "As particións Reiserfs non poden estar ocultas nas etiquetas de disco "
+#~ "msdos."
+
+#~ msgid "Reiserfs partitions must be bootable on pc98 disk labels."
+#~ msgstr ""
+#~ "As particións Reiserfs deben ser de inicio nas etiquetas de disco pc98."
+
+#~ msgid "XFS partitions can't be hidden on msdos disk labels."
+#~ msgstr ""
+#~ "As particións XFS non poden estar ocultas nas etiquetas de disco msdos."
+
+#~ msgid ""
+#~ "The operating system thinks the geometry on %s is %d/%d/%d.  You should "
+#~ "check that this matches the BIOS geometry before using this program."
+#~ msgstr ""
+#~ "O sistema operativo cre que a xeometría de %s é %d/%d/%d. Debería "
+#~ "comprobar que isto coincide coa xeometría da BIOS antes de usar este "
+#~ "programa."
+
+#~ msgid ""
+#~ "There is no boot code on this disk.  Would you like to use GNU parted's "
+#~ "boot loader?"
+#~ msgstr ""
+#~ "Non hai un programa de arrinque neste disco. ¿Quere usa-lo cargador de "
+#~ "GNU parted?"
+
+#~ msgid "No get_system() for %s!"
+#~ msgstr "¡Non hai unha chamada get_system() para %s!"
+
+#~ msgid "Can't create a partition with the start after the end."
+#~ msgstr "Non se pode crear unha partición co comezo despois da fin."
+
+#~ msgid ""
+#~ "No filesystem found on partition.  Can't determine what partition system "
+#~ "to use."
+#~ msgstr ""
+#~ "Non se atopou un sistema de ficheiros na partición. Non se puido "
+#~ "determina-lo sistema de particións a usar."
+
+#~ msgid "FAT filesystems don't have an id for non-msdos partition tables"
+#~ msgstr ""
+#~ "Os sistemas de ficheiros FAT non teñen un identificador para táboas de "
+#~ "particións que non son de msdos."
+
+#~ msgid ""
+#~ "Would you like to use FAT32?  It is more efficient, but it is not "
+#~ "compatible with MS-DOS, early versions of MS-Windows 95 and Windows NT.  "
+#~ "If you use these operating systems, then select No.  If you only use "
+#~ "Linux, BSD, MS Windows 98 and/or MS Windows 95 B, then you may select Yes."
+#~ msgstr ""
+#~ "¿Quere usar FAT32? É Moi eficiente, pero non é compatible con MS-DOS, "
+#~ "versións antigas de MS-Windows 95 e Windows NT. Se usa eses sistemas "
+#~ "operativos, escolla `Non'. Se só usa Linux, BSD, MS Windows 98 e/ou MS "
+#~ "Windows 95 B, entón pode escoller `Si'."
+
+#~ msgid ""
+#~ "The filesystem is going to be too big for FAT16, so FAT32 must be used.  "
+#~ "This is not compatible with MS-DOS, early versions of MS-Windows 95 and "
+#~ "Windows NT.  If you use these operating systems, then select Cancel, and "
+#~ "create a smaller partition.  If you only use Linux, BSD, MS Windows 98 "
+#~ "and/or MS Windows 95 B, then select OK."
+#~ msgstr ""
+#~ "O sistema de ficheiros vai ser grande de máis para FAT16, así que se ha "
+#~ "usar FAT32. Isto non é compatible con MS-DOS, versións antigas de MS-"
+#~ "Windows 95 e Windows NT. Se usa eses sistemas operativos, escolla "
+#~ "`Cancelar', e cree unha partición máis pequena. Se só usa Linux, BSD, MS "
+#~ "Windows 98 e/ou MS Windows 95 B, entón escolla `Aceptar'."
+
+#~ msgid "hide"
+#~ msgstr "hide"
+
+#~ msgid "Disk geometry: 1-%d, %dk cylinders\n"
+#~ msgstr "Xeometría de disco: 1-%d, %dk cilindros\n"
+
+#~ msgid "Minor    Start    End      Type            Filesystem     Flags\n"
+#~ msgstr ""
+#~ "Menor    Inicio   Fin      Tipo            Sist.Ficheiros Modificadores\n"
+
+#~ msgid "unhide"
+#~ msgstr "unhide"
+
+#~ msgid "hide MINOR                    hides partition MINOR"
+#~ msgstr "hide MENOR               agocha-la partición MENOR"
+
+#~ msgid "Partition length of %dk is too small."
+#~ msgstr "A lonxitude da partición de %dk é moi pequena."
+
+#~ msgid "There are no possible configurations for this cluster size."
+#~ msgstr "Non hai configuracións posibles para este tamaño de cluster."
+
+#~ msgid ""
+#~ "To resize this filesystem to this size, the cluster size must be changed "
+#~ "from %d bytes to %d bytes.  This functionality is not yet implemented.  "
+#~ "Note that there are many weird different sizes that can be achieved with "
+#~ "the same cluster size - if you keep experimenting with different "
+#~ "partition sizes, you might be lucky!!!"
+#~ msgstr ""
+#~ "Para cambiar este sistema de ficheiros a este tamaño, o tamaño do cluster "
+#~ "debe ser cambiado de %d bytes a %d bytes. Esta funcionalidade non está "
+#~ "implementada ainda. Teña en conta que hai moitos tamaños diferentes que "
+#~ "se poden conseguir co mesmo tamaño de cluster - ¡se segue a experimentar "
+#~ "con diferentes tamaños de partición, podería ter sorte!"
+
+#~ msgid ""
+#~ "The filesystem is going to be too big for FAT16, (with a cluster size of %"
+#~ "dk, anyway) so FAT32 will be used.  This is not compatible with MS-DOS, "
+#~ "early versions of MS-Windows 95 and Windows NT.  If you use these "
+#~ "operating systems, then select cancel, and create a smaller partition.  "
+#~ "If you only use Linux, BSD, MS Windows 98 and/or MS Windows 95 B, then "
+#~ "select OK."
+#~ msgstr ""
+#~ "O sistema de ficheiros ha ser grande de máis para FAT16 (cun tamaño de "
+#~ "cluster de %d, de tódolos xeitos), así que se ha usar FAT32. Isto non é "
+#~ "compatible con MS-DOS, versións antigas de MS-Windows 95 e Windows NT. Se "
+#~ "usa estes sistemas operativos, escolla `Cancelar' e cree unha partición "
+#~ "máis pequena. Se só usa Linux, BSD, MS Windows 98 e/ou MS Windows 95 B, "
+#~ "escolla `Aceptar'."
+
+#~ msgid "the root directory"
+#~ msgstr "o directorio raiz"
+
+#~ msgid "fat_read_clusters: clusters %ld-%ld outside filesystem"
+#~ msgstr ""
+#~ "fat_read_clusters: os clusters %ld-%ld están fóra do sistema de ficheiros"
+
+#~ msgid "fat_write_clusters: clusters %ld-%ld outside filesystem"
+#~ msgstr ""
+#~ "fat_write_clusters: os clusters %ld-%ld están fóra do sistema de ficheiros"
diff --git a/parted-1.8.7/po/id.gmo b/parted-1.8.7/po/id.gmo
new file mode 100644
index 0000000..d69447c
--- /dev/null
+++ b/parted-1.8.7/po/id.gmo
Binary files differ
diff --git a/parted-1.8.7/po/id.po b/parted-1.8.7/po/id.po
new file mode 100644
index 0000000..c301da5
--- /dev/null
+++ b/parted-1.8.7/po/id.po
@@ -0,0 +1,3405 @@
+# Pesan Bahasa Indonesia untuk GNU parted
+# Copyright (C) 2006 Free Software Foundation, Inc.
+# This file is distributed under the same license as the GNU parted package.
+# Arif E. Nugroho <arif_endro@yahoo.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU parted 1.8.1\n"
+"Report-Msgid-Bugs-To: bug-parted@gnu.org\n"
+"POT-Creation-Date: 2007-05-09 17:02-0400\n"
+"PO-Revision-Date: 2006-12-24 22:00+0700\n"
+"Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n"
+"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/closeout.c:74
+msgid "write error"
+msgstr ""
+
+#: lib/error.c:125
+#, fuzzy
+msgid "Unknown system error"
+msgstr "Tipe filesystem tidak diketahui \"%s\"."
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK).  A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#.
+#. If you don't know what to put here, please see
+#. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr ""
+
+#: lib/regcomp.c:131
+msgid "Success"
+msgstr ""
+
+#: lib/regcomp.c:134
+msgid "No match"
+msgstr ""
+
+#: lib/regcomp.c:137
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regcomp.c:140
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regcomp.c:143
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regcomp.c:146
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regcomp.c:149
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regcomp.c:152
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regcomp.c:155
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regcomp.c:158
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regcomp.c:161
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regcomp.c:164
+#, fuzzy
+msgid "Invalid range end"
+msgstr "nomor tidak valid."
+
+#: lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regcomp.c:170
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regcomp.c:173
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regcomp.c:176
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regcomp.c:179
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regcomp.c:680
+msgid "No previous regular expression"
+msgstr ""
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr ""
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:66
+msgid "(C)"
+msgstr ""
+
+#: lib/version-etc.c:68
+msgid ""
+"\n"
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:84
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:88
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:92
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:98
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:104
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:110
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:132
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+
+#: lib/xalloc-die.c:35
+msgid "memory exhausted"
+msgstr ""
+
+#: libparted/arch/beos.c:237
+msgid "Disk Image"
+msgstr ""
+
+#: libparted/arch/beos.c:338 libparted/arch/gnu.c:261
+#: libparted/arch/linux.c:1272
+#, c-format
+msgid "Error opening %s: %s"
+msgstr "Error membuka %s: %s"
+
+#: libparted/arch/beos.c:349 libparted/arch/gnu.c:271
+#: libparted/arch/linux.c:1283
+#, c-format
+msgid "Unable to open %s read-write (%s).  %s has been opened read-only."
+msgstr ""
+"Tidak dapat membuka %s dengan mode read-write (%s). %s telah dibuka read-"
+"only."
+
+#: libparted/arch/beos.c:411 libparted/arch/linux.c:1431
+#, c-format
+msgid "%s during seek for read on %s"
+msgstr "%s selama pencarian untuk dibaca pada %s"
+
+#: libparted/arch/beos.c:444 libparted/arch/gnu.c:449 libparted/arch/gnu.c:548
+#: libparted/arch/gnu.c:676 libparted/arch/linux.c:1391
+#: libparted/arch/linux.c:1469
+#, c-format
+msgid "%s during read on %s"
+msgstr "%s selama pembacaan pada %s"
+
+#: libparted/arch/beos.c:480 libparted/arch/gnu.c:509
+#: libparted/arch/linux.c:1546
+#, c-format
+msgid "Can't write to %s, because it is opened read-only."
+msgstr "Tidak dapat menulis pada %s, karena ini dibuka secara read-only."
+
+#: libparted/arch/beos.c:496 libparted/arch/linux.c:1570
+#, c-format
+msgid "%s during seek for write on %s"
+msgstr "%s selama pencarian untuk menulis pada %s"
+
+#: libparted/arch/beos.c:533 libparted/arch/gnu.c:585 libparted/arch/gnu.c:630
+#: libparted/arch/gnu.c:707 libparted/arch/linux.c:1517
+#: libparted/arch/linux.c:1612 libparted/arch/linux.c:1684
+#, c-format
+msgid "%s during write on %s"
+msgstr "%s selama penulisan pada %s"
+
+#: debug/clearfat/clearfat.c:63 partprobe/partprobe.c:137
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:67
+#, c-format
+msgid ""
+"Usage: %s [OPTION]\n"
+"  or:  %s DEVICE MINOR\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:70
+msgid ""
+"Clear unused space on a FAT partition (a GNU Parted testing tool).\n"
+"\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:74
+msgid "      --help     display this help and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:75
+msgid "      --version  output version information and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:77 partprobe/partprobe.c:154
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:285
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:290
+#, fuzzy, c-format
+msgid "too many arguments"
+msgstr "Terlalu banyak bad pages."
+
+#: partprobe/partprobe.c:141
+#, c-format
+msgid "Usage: %s [OPTION] [DEVICE]...\n"
+msgstr ""
+
+#: partprobe/partprobe.c:142
+msgid ""
+"Inform the OS of partition table changes.\n"
+"\n"
+"  -d, --no-update  don't update the kernel\n"
+"  -s, --summary    print a summary of contents\n"
+"  -h, --help       display this help and exit\n"
+"  -v, --version    output version information and exit\n"
+msgstr ""
+
+#: partprobe/partprobe.c:150
+msgid ""
+"\n"
+"With no DEVICE, probe all partitions.\n"
+msgstr ""
+
+#: libparted/arch/gnu.c:94
+#, c-format
+msgid "Unable to open %s."
+msgstr "Tidak dapat membuka %s."
+
+#: libparted/arch/gnu.c:114
+msgid "Unable to probe store."
+msgstr "Tidak dapat memprobe store."
+
+#: libparted/arch/gnu.c:352
+msgid ""
+"The partition table cannot be re-read.  This means you need to reboot before "
+"mounting any modified partitions.  You also need to reinstall your boot "
+"loader before you reboot (which may require mounting modified partitions).  "
+"It is impossible do both things!  So you'll need to boot off a rescue disk, "
+"and reinstall your boot loader from the rescue disk.  Read section 4 of the "
+"Parted User documentation for more information."
+msgstr ""
+"Tabel partisi tidak dapat dibaca ulang. Ini berarti anda perlu untuk me-"
+"reboot terlebih dahulu sebelum me-mount semua partisi yang dimodifikasi. "
+"Anda juga perlu menginstall kembali bootloader anda sebelum me-reboot "
+"komputer anda (yang memerlukan untuk me-mount partisi yang dimodifikasi). "
+"Ini tidak mungkin untuk melakukan keduanya secara sekaligus! Jadi anda perlu "
+"membuat sebuah disket penolong (rescue), dan menginstall bootloader anda "
+"dari disket penolong tersebut. Baca bagian 4 dari dokumentasi pengguna "
+"Parted untuk informasi lebih lanjut."
+
+#: libparted/arch/gnu.c:369
+#, c-format
+msgid ""
+"The partition table on %s cannot be re-read (%s).  This means the Hurd knows "
+"nothing about any modifications you made.  You should reboot your computer "
+"before doing anything with %s."
+msgstr ""
+"Tabel partisi pada %s tidak dapat dibaca kembali (%s). Ini berarti hurd "
+"tidak tahu apa-apa tentang modifikasi yang anda buat. Anda seharusnya "
+"mereboot komputer anda sebelum melakukan apapun dengan %s."
+
+#: libparted/arch/gnu.c:380 parted/parted.c:2443
+msgid ""
+"You should reinstall your boot loader before rebooting.  Read section 4 of "
+"the Parted User documentation for more information."
+msgstr ""
+"Anda seharusnya menginstall ulang boot loader anda sebelum merebootnya. Baca "
+"bagian 4 dari Parted dokumentasi pengguna untuk informasi lebih lanjut."
+
+#: libparted/arch/gnu.c:772
+#, c-format
+msgid "%s trying to sync %s to disk"
+msgstr "%s mencoba untuk mensinkronisasi %s pada disk"
+
+#: libparted/arch/linux.c:408
+#, c-format
+msgid "Could not stat device %s - %s."
+msgstr "Tidak dapat memperoleh statistik perangkat %s - %s."
+
+#: libparted/arch/linux.c:523
+#, c-format
+msgid ""
+"Could not determine sector size for %s: %s.\n"
+"Using the default sector size (%lld)."
+msgstr ""
+"Tidak dapat menentukan ukuran sektor untuk %s: %s.\n"
+"Menggunakan default ukuran sektor (%lld)."
+
+#: libparted/arch/linux.c:539
+#, c-format
+msgid ""
+"Device %s has a logical sector size of %lld.  Not all parts of GNU Parted "
+"support this at the moment, and the working code is HIGHLY EXPERIMENTAL.\n"
+msgstr ""
+"Perangkat %s memiliki ukuran logical sektor %lld. Tidak semua bagian dari "
+"GNU Parted support akan hal ini pada saat ini, dan kode program yang "
+"digunakan saat ini masih TAHAP PERCOBAAN.\n"
+
+#: libparted/arch/linux.c:579
+#, c-format
+msgid "Unable to determine the size of %s (%s)."
+msgstr "Tidak dapat menentukan ukuran dari %s (%s)."
+
+#: libparted/arch/linux.c:668
+#, c-format
+msgid "Could not get identity of device %s - %s"
+msgstr "Tidak dapat memperoleh identitas dari perangkat %s - %s"
+
+#: libparted/arch/linux.c:677
+msgid "Generic IDE"
+msgstr "IDE umum"
+
+#: libparted/arch/linux.c:698
+#, c-format
+msgid ""
+"Device %s has multiple (%d) logical sectors per physical sector.\n"
+"GNU Parted supports this EXPERIMENTALLY for some special disk label/file "
+"system combinations, e.g. GPT and ext2/3.\n"
+"Please consult the web site for up-to-date information."
+msgstr ""
+"Perangkat %s memiliki beberapa (%d) logical sektor dalam setiap physical "
+"sektor.\n"
+"GNU Parted support untuk hal ini dalam tahap PERCOBAAN untuk beberapa disk "
+"label spesial / kombinasi file system, contoh GPT dan ext2/3.\n"
+"Tolong lihat web site untuk informasi terbaru."
+
+#: libparted/arch/linux.c:873
+#, c-format
+msgid "Error initialising SCSI device %s - %s"
+msgstr "Error menginisialisasi perangkat SCSI %s - %s"
+
+#: libparted/arch/linux.c:928
+#, c-format
+msgid ""
+"The device %s has zero length, and can't possibly store a file system or "
+"partition table.  Perhaps you selected the wrong device?"
+msgstr ""
+"Perangkat %s memiliki panjang kosong, dan tidak mungkin menyimpan file "
+"system dan tabel partisi didalamnya. Mungkin anda telah memilih perangkat "
+"yang salah?"
+
+#: libparted/arch/linux.c:1032
+#, c-format
+msgid ""
+"Unable to determine geometry of file/device %s.  You should not use Parted "
+"unless you REALLY know what you're doing!"
+msgstr ""
+"Tidak dapat menentukan geometri dari file/perangkat %s. Anda seharusnya "
+"tidak  menggunakan Parted kecuali anda BENAR - BENAR tahu apa yang anda "
+"lakukan!"
+
+#: libparted/arch/linux.c:1110
+msgid "DAC960 RAID controller"
+msgstr "DAC960 RAID controller"
+
+#: libparted/arch/linux.c:1115
+msgid "Promise SX8 SATA Device"
+msgstr "Perangkat Promise SX8 SATA"
+
+#: libparted/arch/linux.c:1120
+msgid "IBM S390 DASD drive"
+msgstr "IBM S390 DASD drive"
+
+#: libparted/arch/linux.c:1125
+msgid "IBM iSeries Virtual DASD"
+msgstr "IBM iSeries Virtual DASD"
+
+#: libparted/arch/linux.c:1130
+msgid "Compaq Smart Array"
+msgstr "Compaq Smart Array"
+
+#: libparted/arch/linux.c:1135
+msgid "ATARAID Controller"
+msgstr "ATARAID Controller"
+
+#: libparted/arch/linux.c:1140
+msgid "I2O Controller"
+msgstr "I2O Controller"
+
+#: libparted/arch/linux.c:1145
+msgid "User-Mode Linux UBD"
+msgstr "Mode-Pengguna Linux UBD"
+
+#: libparted/arch/linux.c:1156
+msgid "Linux device-mapper"
+msgstr "Linux device-mapper"
+
+#: libparted/arch/linux.c:1162
+msgid "Unknown"
+msgstr "Tidak diketahui"
+
+#: libparted/arch/linux.c:1169
+msgid "ped_device_new()  Unsupported device type"
+msgstr "ped_device_new() Tipe perangkat tidak disupport"
+
+#: libparted/arch/linux.c:2083
+#, c-format
+msgid ""
+"Error informing the kernel about modifications to partition %s -- %s.  This "
+"means Linux won't know about any changes you made to %s until you reboot -- "
+"so you shouldn't mount it or use it in any way before rebooting."
+msgstr ""
+"Gagal memberitahukan kernel mengenai modifikasi yang telah dilakukan pada "
+"partisi %s -- %s. Ini berarti Linux tidak tahu tentang segala perubahan yang "
+"anda buat pada %s sampai anda mereboot komputer anda -- jadi anda seharusnya "
+"tidak me-mount-nya atau menggunakannya dalam segala cara sebelum mereboot "
+"komputer anda."
+
+#: libparted/arch/linux.c:2262
+#, c-format
+msgid ""
+"parted was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made. "
+msgstr ""
+"parted tidak dapat membaca kembali tabel partisi pada %s (%s). Ini berarti "
+"Linux tidak akan tahu apapun tentang modifikasi yang telah anda buat."
+
+#: libparted/arch/linux.c:2368
+#, c-format
+msgid ""
+"The kernel was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made until you "
+"reboot.  You should reboot your computer before doing anything with %s."
+msgstr ""
+"Kernel tidak dapat membaca kembali tabel partisi pada %s (%s). Ini berarti "
+"Linux tidak akan tahu apapun tentang modifikasi yang anda buat sampai anda "
+"reboot. Anda seharusnya mereboot komputer anda sebelum melakukan apapun "
+"dengan %s."
+
+#: libparted/cs/geom.c:162
+msgid "Can't have the end before the start!"
+msgstr "Tidak dapat memiliki akhir sebelum start!"
+
+#: libparted/cs/geom.c:169
+msgid "Can't have a partition outside the disk!"
+msgstr "Tidak dapat memiliki partisi diluar dari disk!"
+
+#: libparted/cs/geom.c:366
+#, c-format
+msgid "Attempt to write sectors %ld-%ld outside of partition on %s."
+msgstr "Mencoba untuk menulis sektor %ld-%ld diluar dari partisi pada %s."
+
+#: libparted/cs/geom.c:406 libparted/fs/linux_swap/linux_swap.c:475
+msgid "checking for bad blocks"
+msgstr "Mengecheck bad blocks"
+
+#: libparted/debug.c:102
+#, c-format
+msgid "Backtrace has %d calls on stack:\n"
+msgstr ""
+
+#: libparted/debug.c:114
+#, c-format
+msgid "Assertion (%s) at %s:%d in function %s() failed."
+msgstr ""
+
+#: libparted/disk.c:203
+#, c-format
+msgid "Unable to open %s - unrecognised disk label."
+msgstr "Tidak dapat membuka %s - disk label tidak diketahui"
+
+#: libparted/disk.c:471
+#, c-format
+msgid ""
+"This libparted doesn't have write support for %s.  Perhaps it was compiled "
+"read-only."
+msgstr ""
+"libparted ini tidak memiliki write support untuk %s. Mungkin ini dikompilasi "
+"untuk mode read-only."
+
+#: libparted/disk.c:598
+#, c-format
+msgid "Partition %d is %s, but the file system is %s."
+msgstr "Partisi %d adalah %s, tetapi file system-nya adalah %s."
+
+#: libparted/disk.c:1075
+#, c-format
+msgid "%s disk labels do not support extended partitions."
+msgstr "%s disk label tidak mensupport partisi extended."
+
+#: libparted/disk.c:1634
+#, c-format
+msgid "%s disk labels don't support logical or extended partitions."
+msgstr "%s disk labels tidak mensupport partisi logical atau extended."
+
+#: libparted/disk.c:1647
+msgid "Too many primary partitions."
+msgstr "Terlalu banyak primary partisi."
+
+#: libparted/disk.c:1656
+#, c-format
+msgid ""
+"Can't add a logical partition to %s, because there is no extended partition."
+msgstr ""
+"Tidak dapat menambahkan sebuah partisi logical pada %s, karena disana tidak "
+"ada partisi extended."
+
+#: libparted/disk.c:1680
+#, c-format
+msgid "Can't have more than one extended partition on %s."
+msgstr "Tidak dapat memiliki lebih dari satu partisi extended pada %s."
+
+#: libparted/disk.c:1690
+msgid "Can't have logical partitions outside of the extended partition."
+msgstr "Tidak dapat memiliki partisi logical diluar dari partisi extended."
+
+#: libparted/disk.c:1715
+#, c-format
+msgid "Can't have a logical partition outside of the extended partition on %s."
+msgstr "Tidak dapat memiliki partisi logical diluar partisi extended pada %s."
+
+#: libparted/disk.c:1725 libparted/disk.c:1779 libparted/disk.c:1945
+msgid "Can't have overlapping partitions."
+msgstr "Tidak dapat memiliki partisi yang beroverlap."
+
+#: libparted/disk.c:1733
+msgid "Can't have a primary partition inside an extended partition."
+msgstr "Tidak dapat memiliki primary partisi didalam sebuah partisi extended."
+
+#: libparted/disk.c:2140
+msgid "metadata"
+msgstr "metadata"
+
+#: libparted/disk.c:2142
+msgid "free"
+msgstr "free"
+
+#: libparted/disk.c:2144 parted/ui.c:1169 parted/ui.c:1197
+msgid "extended"
+msgstr "extended"
+
+#: libparted/disk.c:2146 parted/ui.c:1173 parted/ui.c:1201
+msgid "logical"
+msgstr "logical"
+
+#: libparted/disk.c:2148 parted/ui.c:1165 parted/ui.c:1193
+msgid "primary"
+msgstr "primary"
+
+#: libparted/disk.c:2164
+msgid "boot"
+msgstr "boot"
+
+#: libparted/disk.c:2166
+msgid "root"
+msgstr "root"
+
+#: libparted/disk.c:2168
+msgid "swap"
+msgstr "swap"
+
+#: libparted/disk.c:2170
+msgid "hidden"
+msgstr "tersembunyi"
+
+#: libparted/disk.c:2172
+msgid "raid"
+msgstr "raid"
+
+#: libparted/disk.c:2174
+msgid "lvm"
+msgstr "lvm"
+
+#: libparted/disk.c:2176
+msgid "lba"
+msgstr "lba"
+
+#: libparted/disk.c:2178
+msgid "hp-service"
+msgstr "hp-service"
+
+#: libparted/disk.c:2180
+msgid "palo"
+msgstr "palo"
+
+#: libparted/disk.c:2182
+msgid "prep"
+msgstr "prep"
+
+#: libparted/disk.c:2184
+msgid "msftres"
+msgstr "msftres"
+
+#: libparted/disk.c:2190
+#, c-format
+msgid "Unknown partition flag, %d."
+msgstr "flag partisi tidak diketahui, %d."
+
+#: libparted/exception.c:78
+msgid "Information"
+msgstr "Informasi"
+
+#: libparted/exception.c:79
+msgid "Warning"
+msgstr "Peringatan"
+
+#: libparted/exception.c:80
+msgid "Error"
+msgstr "Error"
+
+#: libparted/exception.c:81
+msgid "Fatal"
+msgstr "Fatal"
+
+#: libparted/exception.c:82
+msgid "Bug"
+msgstr "Bug"
+
+#: libparted/exception.c:83
+msgid "No Implementation"
+msgstr "Tidak ada Implementasi"
+
+#: libparted/exception.c:87
+msgid "Fix"
+msgstr "Betulkan"
+
+#: libparted/exception.c:88
+msgid "Yes"
+msgstr "Ya"
+
+#: libparted/exception.c:89
+msgid "No"
+msgstr "Tidak"
+
+#: libparted/exception.c:90
+msgid "OK"
+msgstr "OK"
+
+#: libparted/exception.c:91
+msgid "Retry"
+msgstr "Coba"
+
+#: libparted/exception.c:92
+msgid "Ignore"
+msgstr "Hiraukan"
+
+#: libparted/exception.c:93
+msgid "Cancel"
+msgstr "Batal"
+
+#: libparted/exception.c:133
+#, c-format
+msgid ""
+"A bug has been detected in GNU Parted.  Refer to the web site of parted "
+"http://www.gnu.org/software/parted/parted.html for more informations of what "
+"could be useful for bug submitting!  Please email a bug report to bug-"
+"parted@gnu.org containing at least the version (%s) and the following "
+"message:  "
+msgstr ""
+"Sebuah bug telah terdeteksi dalam GNU parted. Lihat ke web site dari parted "
+"di http://www.gnu.org/software/parted/parted.html untuk informasi lebih "
+"lanjut tentang apa yang berguna dalam mengirimkan laporan bug! Tolong email "
+"laporan bug ke bug-parted@gnu.org berisi setidaknya versi (%s) dan pesan "
+"berikut ini:"
+
+#: libparted/filesys.c:384
+msgid "Could not detect file system."
+msgstr "Tidak dapat mendeteksi filesystem."
+
+#: libparted/filesys.c:395
+msgid "The file system is bigger than its volume!"
+msgstr "File system lebih besar dari volumenya!"
+
+#: libparted/filesys.c:403
+#, c-format
+msgid "Support for opening %s file systems is not implemented yet."
+msgstr "Support untuk membuka file systems %s belum diimplementasikan."
+
+#: libparted/filesys.c:445
+#, c-format
+msgid "Support for creating %s file systems is not implemented yet."
+msgstr "Support untuk membuat file systems %s belum diimplementasikan."
+
+#: libparted/filesys.c:505
+#, c-format
+msgid "Support for checking %s file systems is not implemented yet."
+msgstr "Support untuk mengecheck file systems %s belum diimplementasikan."
+
+#: libparted/filesys.c:571
+msgid "raw block copying"
+msgstr "raw block copying"
+
+#: libparted/filesys.c:582
+msgid "growing file system"
+msgstr "memperbesar file system"
+
+#: libparted/filesys.c:622
+msgid "Can't copy onto an overlapping partition."
+msgstr "Tidak dapat menyalin kedalam partisi yang overlap."
+
+#: libparted/filesys.c:644
+#, c-format
+msgid ""
+"Direct support for copying file systems is not yet implemented for %s.  "
+"However, support for resizing is implemented.  Therefore, the file system "
+"can be copied if the new partition is at least as big as the old one.  So, "
+"either shrink the partition you are trying to copy, or copy to a bigger "
+"partition."
+msgstr ""
+"Layanan langsung untuk menyalin file system belum diimplementasikan untuk %"
+"s. Akan tetapi, layanan untuk me-resize-nya sudah diimplementasikan. Oleh "
+"karena itu, file system dapat disalin jika partisi baru berukuran sama besar "
+"dengan partisi lama. Jadi, bisa dilakukan dengan mengecilkan partisi yang "
+"akan disalin, atau menyalin ke partisi yang lebih besar."
+
+#: libparted/filesys.c:658
+#, c-format
+msgid "Support for copying %s file systems is not implemented yet."
+msgstr "Support untuk menyalin filesystem %s belum diimplementasikan."
+
+#: libparted/filesys.c:696
+#, c-format
+msgid "Support for resizing %s file systems is not implemented yet."
+msgstr "Support untuk men-resize filesystem %s belum diimplementasikan."
+
+#: libparted/fs/reiserfs/reiserfs.c:315
+msgid "creating"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:402
+#, fuzzy
+msgid "The file system is in an invalid state.  Perhaps it is mounted?"
+msgstr "File system lebih besar dari volumenya!"
+
+#: libparted/fs/reiserfs/reiserfs.c:410
+msgid "The file system is in old (unresizeable) format."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:416
+msgid "Invalid free blocks count.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:431
+#, fuzzy
+msgid "checking"
+msgstr "check"
+
+#: libparted/fs/reiserfs/reiserfs.c:437
+msgid "Reiserfs tree seems to be corrupted.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:449
+#, fuzzy
+msgid ""
+"The reiserfs file system passed a basic check.  For a more comprehensive "
+"check, run reiserfsck --check."
+msgstr ""
+"File system ext2 lolos dari pengecheckan dasar. Untuk lebih komprehensif "
+"check, gunakan aplikasi e2fsck."
+
+#: libparted/fs/reiserfs/reiserfs.c:474
+#, fuzzy
+msgid "Sorry, can't move the start of reiserfs partitions yet."
+msgstr "Maaf, tidak dapat memindahkan awal dari partisi ext2!"
+
+#: libparted/fs/reiserfs/reiserfs.c:490
+msgid "Couldn't reopen device abstraction layer for read/write."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:508 libparted/fs/ext2/ext2_resize.c:552
+#: libparted/fs/hfs/hfs.c:250 libparted/fs/hfs/hfs.c:629
+msgid "shrinking"
+msgstr "mengecilkan"
+
+#: libparted/fs/reiserfs/reiserfs.c:520
+#, fuzzy
+msgid "expanding"
+msgstr "Peringatan"
+
+#: libparted/fs/reiserfs/reiserfs.c:592
+msgid "Couldn't create reiserfs device abstraction handler."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:606
+#, fuzzy, c-format
+msgid "Device is too small for %lu blocks."
+msgstr "File system terlalu kecil untuk ext2."
+
+#: libparted/fs/reiserfs/reiserfs.c:615
+msgid "copying"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:682
+#, c-format
+msgid "Couldn't resolve symbol %s.  Error: %s."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:704
+msgid "GNU Parted found an invalid libreiserfs library."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:715
+#, c-format
+msgid ""
+"GNU Parted has detected libreiserfs interface version mismatch.  Found %d-%"
+"d, required %d. ReiserFS support will be disabled."
+msgstr ""
+
+#: libparted/labels/aix.c:137
+#, fuzzy
+msgid "Support for reading AIX disk labels is is not implemented yet."
+msgstr "Support untuk membuat file systems %s belum diimplementasikan."
+
+#: libparted/labels/aix.c:148
+#, fuzzy
+msgid "Support for writing AIX disk labels is is not implemented yet."
+msgstr "Support untuk membuat file systems %s belum diimplementasikan."
+
+#: libparted/labels/aix.c:161
+#, fuzzy
+msgid ""
+"Support for adding partitions to AIX disk labels is not implemented yet."
+msgstr "Support untuk membuat file systems %s belum diimplementasikan."
+
+#: libparted/labels/aix.c:171
+#, fuzzy
+msgid ""
+"Support for duplicating partitions in AIX disk labels is not implemented yet."
+msgstr "Support untuk membuat file systems %s belum diimplementasikan."
+
+#: libparted/labels/aix.c:189
+#, fuzzy
+msgid ""
+"Support for setting system type of partitions in AIX disk labels is not "
+"implemented yet."
+msgstr "Support untuk membuat file systems %s belum diimplementasikan."
+
+#: libparted/labels/aix.c:199
+#, fuzzy
+msgid "Support for setting flags in AIX disk labels is not implemented yet."
+msgstr "Support untuk membuat file systems %s belum diimplementasikan."
+
+#: libparted/labels/bsd.c:501 libparted/labels/dasd.c:755
+#: libparted/labels/dos.c:1974 libparted/labels/dvh.c:770
+#: libparted/labels/gpt.c:1448 libparted/labels/loop.c:248
+#: libparted/labels/mac.c:1408 libparted/labels/pc98.c:759
+#: libparted/labels/rdb.c:1041 libparted/labels/sun.c:705
+msgid "Unable to satisfy all constraints on the partition."
+msgstr "Tidak dapat memenuhi semua constraints pada partisi."
+
+#: libparted/labels/bsd.c:526
+msgid "Unable to allocate a bsd disklabel slot."
+msgstr "Tidak dapat mengalokasikan sebuah slot untuk bsd disklabel."
+
+#: libparted/labels/dasd.c:166
+#, fuzzy
+msgid "Unable to determine the block size of this dasd"
+msgstr "Tidak dapat menentukan ukuran dari %s (%s)."
+
+#: libparted/labels/dasd.c:781
+#, fuzzy
+msgid "Unable to allocate a dasd disklabel slot"
+msgstr "Tidak dapat mengalokasikan sebuah slot untuk bsd disklabel."
+
+#: libparted/labels/dos.c:827
+#, c-format
+msgid "Invalid partition table on %s -- wrong signature %x."
+msgstr "Table partisi tidak valid pada %s -- signature salah %x."
+
+#: libparted/labels/dos.c:855
+#, c-format
+msgid "Invalid partition table - recursive partition on %s."
+msgstr "Table partisi tidak valid - rekursif partisi pada %s."
+
+#: libparted/labels/dos.c:1318
+msgid "Extended partitions cannot be hidden on msdos disk labels."
+msgstr "Partisi extended tidak dapat disembunyikan pada msdos disk labels."
+
+#: libparted/labels/dos.c:1958
+msgid "Parted can't resize partitions managed by Windows Dynamic Disk."
+msgstr ""
+"Parted tidak dapat men-resize partisi yang diatur oleh Windows Dynamic Disk."
+
+#: libparted/labels/dvh.c:190
+#, c-format
+msgid "%s has no extended partition (volume header partition)."
+msgstr "%s tidak memiliki partisi extended (volume header partisi)."
+
+#: libparted/labels/dvh.c:313
+msgid "Checksum is wrong, indicating the partition table is corrupt."
+msgstr "Checksum salah, mengindikasikan bahwa tabel partisi corrupt."
+
+#: libparted/labels/dvh.c:616
+msgid "Only primary partitions can be root partitions."
+msgstr "Hanya primary partisi yang dapat menjadi partisi root."
+
+#: libparted/labels/dvh.c:630
+msgid "Only primary partitions can be swap partitions."
+msgstr "Hanya primary partisi yang dapat menjadi partisi swap."
+
+#: libparted/labels/dvh.c:644
+msgid "Only logical partitions can be a boot file."
+msgstr "Hanya logical partisi yang dapat menjadi boot file."
+
+#: libparted/labels/dvh.c:721
+msgid "Only logical partitions (boot files) have a name."
+msgstr "Hanya logical partisi (boot files) yang memiliki nama."
+
+#: libparted/labels/dvh.c:812
+msgid "Too many primary partitions"
+msgstr "Terlalu banyak primary partisi"
+
+#: libparted/labels/fdasd.c:103
+#, c-format
+msgid ""
+"%s open error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:107
+#, c-format
+msgid ""
+"%s seek error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:110
+#, c-format
+msgid ""
+"%s read error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:113
+#, fuzzy, c-format
+msgid ""
+"%s write error\n"
+"%s\n"
+msgstr "%s selama penulisan pada %s"
+
+#: libparted/labels/fdasd.c:116
+#, c-format
+msgid ""
+"%s IOCTL error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:119
+#, c-format
+msgid ""
+"%s API version mismatch\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:122
+#, c-format
+msgid ""
+"%s Unsupported disk type\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:126
+#, c-format
+msgid ""
+"%s Unsupported disk format\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:130
+#, fuzzy, c-format
+msgid ""
+"%s Disk in use\n"
+"%s\n"
+msgstr "Disk %s: %s\n"
+
+#: libparted/labels/fdasd.c:133
+#, c-format
+msgid ""
+"%s Config file syntax error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:137
+#, c-format
+msgid ""
+"%s Volume label is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:141
+#, c-format
+msgid ""
+"%s a data set name is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:145
+#, c-format
+msgid ""
+"%s space allocation\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:149
+#, c-format
+msgid ""
+"%s device verification failed\n"
+"The specified device is not a valid DASD device\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:154
+#, c-format
+msgid ""
+"%s Fatal error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/gpt.c:454
+#, c-format
+msgid ""
+"%s contains GPT signatures, indicating that it has a GPT table.  However, it "
+"does not have a valid fake msdos partition table, as it should.  Perhaps it "
+"was corrupted -- possibly by a program that doesn't understand GPT partition "
+"tables.  Or perhaps you deleted the GPT table, and are now using an msdos "
+"partition table.  Is this a GPT partition table?"
+msgstr ""
+"%s berisi GPT signatures, menunjukkan bahwa ini adalah tabel GPT. Akan "
+"tetapi, ini tidak memiliki valid fake msdos tabel partisi, seperti "
+"seharusnya. Mungkin ini sudah terkorupsi -- mungkin oleh program yang tidak "
+"mengerti tabel partisi GPT. Atau mungkin anda menghapus tabel GPT, dan "
+"sekarang menggunakan sebuah tabel partisi msdos. Apakah ini sebuah tabel "
+"partisi GPT?"
+
+#: libparted/labels/gpt.c:648
+#, c-format
+msgid ""
+"The format of the GPT partition table is version %x, which is newer than "
+"what Parted can recognise.  Please tell us!  bug-parted@gnu.org"
+msgstr ""
+"Format dari tabel partisi GPT adalah dari versi %x, dimana ini lebih baru "
+"dari format yang Parted dapat mengenalnya. Tolong beritahu kami! bug-"
+"parted@gnu.org"
+
+#: libparted/labels/gpt.c:698
+#, c-format
+msgid ""
+"Not all of the space available to %s appears to be used, you can fix the GPT "
+"to use all of the space (an extra %llu blocks) or continue with the current "
+"setting? "
+msgstr ""
+"Tidak semua dari ruang kosong yang tersedia di %s dapat digunakan, anda "
+"dapat membetulkan GPT untuk menggunakan semuar ruang kosong yang tersedia "
+"(kosong %llu blocks) atau melanjutkan dengan konfigurasi saat ini?"
+
+#: libparted/labels/gpt.c:827
+msgid ""
+"The backup GPT table is not at the end of the disk, as it should be.  This "
+"might mean that another operating system believes the disk is smaller.  Fix, "
+"by moving the backup to the end (and removing the old backup)?"
+msgstr ""
+"Tabel GPT backup tidak ada pada akhir dari disk, seperti seharusnya ada "
+"disana. Ini mungkin berarti sistem operasi lain percaya bahwa ukuran disk "
+"lebih kecil. Betulkan, dengan memindahkan tabel backup ke akhir dari disk "
+"(dan menghapus backup yang lama)?"
+
+#: libparted/labels/gpt.c:862
+msgid ""
+"The primary GPT table is corrupt, but the backup appears OK, so that will be "
+"used."
+msgstr ""
+"Tabel GPT primer telah terkorupsi, tetapi backup-nya kelihatan BAIK, jadi "
+"backup tersebut yang akan digunakan"
+
+#: libparted/labels/gpt.c:870
+msgid ""
+"Both the primary and backup GPT tables are corrupt.  Try making a fresh "
+"table, and using Parted's rescue feature to recover partitions."
+msgstr ""
+"Kedua tabel GPT primer dan backup sudah terkorupsi. Coba untuk membuat "
+"sebuah tabel yang baru, dan gunakan Parted's rescue feature untuk merecover "
+"partisi."
+
+#: libparted/labels/mac.c:181
+#, c-format
+msgid "Invalid signature %x for Mac disk labels."
+msgstr "Signature tidak valid %x untuk disklabels Mac."
+
+#: libparted/labels/mac.c:226
+msgid "Partition map has no partition map entry!"
+msgstr "Map partisi tidak memiliki masukan untuk map partisi!"
+
+#: libparted/labels/mac.c:273
+#, c-format
+msgid "%s is too small for a Mac disk label!"
+msgstr "%s terlalu kecil untuk sebuah disklabel Mac!"
+
+#: libparted/labels/mac.c:532
+#, c-format
+msgid "Partition %d has an invalid signature %x."
+msgstr "Partisi %d memiliki signature yang tidak valid %x."
+
+#: libparted/labels/mac.c:550
+#, c-format
+msgid "Partition %d has an invalid length of 0 bytes!"
+msgstr "Partisi %d memiliki panjang 0 bytes yang tidak valid!"
+
+#: libparted/labels/mac.c:580
+msgid "The data region doesn't start at the start of the partition."
+msgstr "Daerah data tidak dimulai pada awal dari partisi."
+
+#: libparted/labels/mac.c:597
+msgid "The boot region doesn't start at the start of the partition."
+msgstr "Daerah boot tidak dimulai pada awal dari partisi."
+
+#: libparted/labels/mac.c:611
+msgid "The partition's boot region doesn't occupy the entire partition."
+msgstr "Daerah boot partisi tidak menggunakan seluruh partisi."
+
+#: libparted/labels/mac.c:622
+msgid "The partition's data region doesn't occupy the entire partition."
+msgstr "Daerah data partisi tidak menggunakan seluruh partisi."
+
+#: libparted/labels/mac.c:675
+#, c-format
+msgid ""
+"Weird block size on device descriptor: %d bytes is not divisible by 512."
+msgstr ""
+"Ukuran block aneh pada deskripsi perangkat: %d bytes tidak terbagi oleh 512."
+
+#: libparted/labels/mac.c:688
+#, c-format
+msgid ""
+"The driver descriptor says the physical block size is %d bytes, but Linux "
+"says it is %d bytes."
+msgstr ""
+"driver descriptor mengatakan bahwa ukuran physical block adalah %d bytes, "
+"tetapi Linux mengatakan ukurannya %d bytes."
+
+#: libparted/labels/mac.c:736
+msgid "No valid partition map found."
+msgstr "Tidak ditemukan map partisi yang valid."
+
+#: libparted/labels/mac.c:795
+#, c-format
+msgid ""
+"Conflicting partition map entry sizes!  Entry 1 says it is %d, but entry %d "
+"says it is %d!"
+msgstr ""
+"Konflik masukan ukuran peta partisi! Masukan 1 mengatakan %d, tetapi "
+"masukan  %d mengatakan %d!"
+
+#: libparted/labels/mac.c:822
+msgid "Weird!  There are 2 partitions map entries!"
+msgstr "Aneh!  Ada 2 masukan map partisi!"
+
+#: libparted/labels/mac.c:1347
+msgid ""
+"Changing the name of a root or swap partition will prevent Linux from "
+"recognising it as such."
+msgstr ""
+"Mengubah nama dari root atau partisi swap akan membuat Linux tidak dapat "
+"mengenalinya."
+
+#: libparted/labels/mac.c:1443
+msgid "Can't add another partition -- the partition map is too small!"
+msgstr "Tidak dapat lagi menambah partisi -- peta partisi terlalu kecil!"
+
+#: libparted/labels/pc98.c:354
+#, c-format
+msgid "Invalid partition table on %s."
+msgstr "Tabel partisi tidak valid pada %s."
+
+#: libparted/labels/pc98.c:406 libparted/labels/pc98.c:484
+#, c-format
+msgid ""
+"Partition %d isn't aligned to cylinder boundaries.  This is still "
+"unsupported."
+msgstr ""
+"Partisi %d tidak di align ke cylinder boundaries. Ini tetap tidak disupport"
+
+#: libparted/labels/pc98.c:791
+msgid "Can't add another partition."
+msgstr "Tidak dapat menambah partisi yang lain."
+
+#: libparted/labels/rdb.c:162
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s."
+msgstr "%s : Checksum pada block %llu dengan tipe %s tidak baik."
+
+#: libparted/labels/rdb.c:497
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen."
+msgstr "%s : Tidak menemukan rdb block, seharusnya tidak pernah terjadi."
+
+#: libparted/labels/rdb.c:581
+#, c-format
+msgid "%s : Loop detected at block %d."
+msgstr "%s : Loop terdeteksi pada block %d."
+
+#: libparted/labels/rdb.c:600
+#, c-format
+msgid "%s : The %s list seems bad at block %s."
+msgstr "%s : List %s kelihatannya tidak baik pada block %s."
+
+#: libparted/labels/rdb.c:689
+#, c-format
+msgid "%s : Failed to list bad blocks."
+msgstr "%s : Gagal untuk men-list bad blocks."
+
+#: libparted/labels/rdb.c:697
+#, c-format
+msgid "%s : Failed to list partition blocks."
+msgstr "%s : Gagal untuk men-list block partisi."
+
+#: libparted/labels/rdb.c:705
+#, c-format
+msgid "%s : Failed to list file system blocks."
+msgstr "%s : Gagal untuk men-list file system blocks."
+
+#: libparted/labels/rdb.c:713
+#, c-format
+msgid "%s : Failed to list boot blocks."
+msgstr "%s : Gagal untuk men-list boot blocks."
+
+#: libparted/labels/rdb.c:740
+#, c-format
+msgid "Failed to write partition block at %d."
+msgstr "Gagal untuk menulis block partisi pada %d."
+
+#: libparted/labels/rdb.c:1069
+msgid "Unable to allocate a partition number."
+msgstr "Tidak dapat mengalokasikan sebuah nomor partisi."
+
+#: libparted/labels/sun.c:145
+msgid "Corrupted Sun disk label detected."
+msgstr "Sun disk label terdeteksi terkorupsi."
+
+#: libparted/labels/sun.c:266
+#, c-format
+msgid ""
+"The disk CHS geometry (%d,%d,%d) reported by the operating system does not "
+"match the geometry stored on the disk label (%d,%d,%d)."
+msgstr ""
+"Geometri CHS dari disk (%d,%d,%d) dilaporkan oleh sistem operasi tidak cocok "
+"dengan geometri yang disimpan pada disk label (%d,%d,%d)."
+
+#: libparted/labels/sun.c:288
+#, c-format
+msgid "The disk label describes a disk bigger than %s."
+msgstr "Disk label mendeskripsikan disk lebih besar dari %s."
+
+#: libparted/labels/sun.c:442
+#, c-format
+msgid "The disk has %d cylinders, which is greater than the maximum of 65536."
+msgstr ""
+"Disk memiliki %d cylinders, dimana ini lebih besar dari maksimum 65536."
+
+#: libparted/labels/sun.c:737
+msgid ""
+"The Whole Disk partition is the only available one left.  Generally, it is "
+"not a good idea to overwrite this partition with a real one.  Solaris may "
+"not be able to boot without it, and SILO (the sparc boot loader) appreciates "
+"it as well."
+msgstr ""
+"Yang tersisa hanya seluruh partisi Disk. Umumnya, ini bukan ide yang baik "
+"untuk menulis kembali partisi ini dengan yang nyata. Solaris mungkin tidak "
+"dapat di-boot tanpanya, dan SILO (boot loader untuk SPARC) menghargainya "
+"dengan baik."
+
+#: libparted/labels/sun.c:752
+msgid "Sun disk label is full."
+msgstr "Sun disk label sudah penuh"
+
+#: libparted/labels/vtoc.c:163
+#, c-format
+msgid ""
+"%s opening device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:167
+#, c-format
+msgid ""
+"%s seeking device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:171
+#, c-format
+msgid ""
+"%s writing to device '%s' failed,\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:175
+#, c-format
+msgid ""
+"%s reading from device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:179
+#, c-format
+msgid "Fatal error\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:418
+msgid "Could not read VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:424
+msgid "Could not read VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:431
+msgid "Could not read VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:438
+msgid "Could not read VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:445
+msgid "Could not read VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:462
+msgid "Could not write VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:468
+msgid "Could not write VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:475
+msgid "Could not write VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:482
+msgid "Could not write VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:489
+msgid "Could not write VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/libparted.c:296 libparted/libparted.c:316
+msgid "Out of memory."
+msgstr "Kehabisan memori"
+
+#: libparted/unit.c:139
+msgid "Cannot get unit size for special unit 'COMPACT'."
+msgstr "Tidak dapat mendapatkan ukuran unit untuk spesial unit 'COMPAT'."
+
+#: libparted/unit.c:386
+#, c-format
+msgid "\"%s\" has invalid syntax for locations."
+msgstr "\"%s\" memiliki syntax yang tidak valid untuk lokasi."
+
+#: libparted/unit.c:394
+#, c-format
+msgid "The maximum head value is %d."
+msgstr "Nilai head maksimum adalah %d."
+
+#: libparted/unit.c:401
+#, c-format
+msgid "The maximum sector value is %d."
+msgstr "Nilai maksimum dari sektor adalah %d."
+
+#: libparted/unit.c:413 libparted/unit.c:545
+#, c-format
+msgid "The location %s is outside of the device %s."
+msgstr "Lokasi %s terletak diluar dari perangkat %s."
+
+#: libparted/unit.c:527
+msgid "Invalid number."
+msgstr "nomor tidak valid."
+
+#: libparted/fs/amiga/affs.c:63 libparted/fs/amiga/apfs.c:56
+#: libparted/fs/amiga/asfs.c:70
+#, fuzzy, c-format
+msgid "%s : Failed to allocate partition block\n"
+msgstr "%s : Gagal untuk men-list block partisi."
+
+#: libparted/fs/amiga/affs.c:78 libparted/fs/amiga/apfs.c:70
+#: libparted/fs/amiga/asfs.c:86
+#, fuzzy, c-format
+msgid "%s : Failed to allocate block\n"
+msgstr "%s : Gagal untuk men-list boot blocks."
+
+#: libparted/fs/amiga/affs.c:83 libparted/fs/amiga/apfs.c:75
+#, fuzzy, c-format
+msgid "%s : Couldn't read boot block %llu\n"
+msgstr "%s : Loop terdeteksi pada block %d."
+
+#: libparted/fs/amiga/affs.c:99 libparted/fs/amiga/apfs.c:86
+#: libparted/fs/amiga/asfs.c:92 libparted/fs/amiga/asfs.c:106
+#, fuzzy, c-format
+msgid "%s : Couldn't read root block %llu\n"
+msgstr "%s : Loop terdeteksi pada block %d."
+
+#: libparted/fs/amiga/amiga.c:72
+#, fuzzy, c-format
+msgid "%s : Failed to allocate id list element\n"
+msgstr "%s : Gagal untuk men-list bad blocks."
+
+#: libparted/fs/amiga/amiga.c:189
+#, c-format
+msgid "%s : Couldn't read block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:202
+#, fuzzy, c-format
+msgid "%s : Bad checksum on block %llu of type %s\n"
+msgstr "%s : Checksum pada block %llu dengan tipe %s tidak baik."
+
+#: libparted/fs/amiga/amiga.c:212
+#, fuzzy, c-format
+msgid "%s : Couldn't write block %d\n"
+msgstr "%s : Loop terdeteksi pada block %d."
+
+#: libparted/fs/amiga/amiga.c:278
+#, fuzzy, c-format
+msgid "%s : Failed to allocate disk_specific rdb block\n"
+msgstr "%s : Gagal untuk men-list bad blocks."
+
+#: libparted/fs/amiga/amiga.c:289
+#, fuzzy, c-format
+msgid "%s : Didn't find rdb block, should never happen\n"
+msgstr "%s : Tidak menemukan rdb block, seharusnya tidak pernah terjadi."
+
+#: libparted/fs/amiga/amiga.c:318
+#, fuzzy, c-format
+msgid "%s : Failed to read partition block %llu\n"
+msgstr "%s : Gagal untuk men-list block partisi."
+
+#: libparted/fs/ext2/ext2.c:87 libparted/fs/ext2/ext2.c:112
+msgid "Inconsistent group descriptors!"
+msgstr "group descriptors tidak konsistent!"
+
+#: libparted/fs/ext2/ext2.c:91 libparted/fs/ext2/ext2.c:116
+msgid "File system full!"
+msgstr "File system full!"
+
+#: libparted/fs/ext2/ext2.c:686
+msgid "Invalid superblock.  Are you sure this is an ext2 file system?"
+msgstr ""
+"Superblock tidak valid. Apakah anda yakin ini merupakan sebuah ext2 file "
+"system?"
+
+#: libparted/fs/ext2/ext2.c:700 libparted/fs/ext2/ext2_resize.c:658
+msgid "File system has errors!  You should run e2fsck."
+msgstr "File system memiliki errors! Anda seharusnya menjalankan e2fsck."
+
+#: libparted/fs/ext2/ext2.c:711
+msgid ""
+"File system was not cleanly unmounted!  You should run e2fsck.  Modifying an "
+"unclean file system could cause severe corruption."
+msgstr ""
+"File system tidak di-unmount secara bersih! Anda seharusnya menjalankan "
+"e2fsck. Memodifikasi sebuah file system yang tidak bersih dapat menyebabkan "
+"file system tersebut terkorupsi."
+
+#: libparted/fs/ext2/ext2.c:731
+msgid "File system has an incompatible feature enabled."
+msgstr "File system memiliki sebuah feature aktif yang tidak kompatibel."
+
+#: libparted/fs/ext2/ext2.c:742
+msgid "Error allocating buffer cache."
+msgstr "Error mengalokasikan buffer cache."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:114
+msgid ""
+"Found an inode with a incorrect link count.  Better go run e2fsck first!"
+msgstr ""
+"Ditemukan sebuah inode dengan link count yang tidak benar. Lebih baik "
+"menjalankan e2fsck terlebih dahulu!"
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:487
+msgid "Not enough free inodes!"
+msgstr "Tidak cukup free inodes!"
+
+#: libparted/fs/ext2/ext2_resize.c:223
+msgid "File system is too full to remove a group!"
+msgstr "File system terlalu penuh untuk menghapus sebuah group!"
+
+#: libparted/fs/ext2/ext2_resize.c:232
+msgid "File system has too many allocated inodes to remove a group!"
+msgstr ""
+"File system memiliki terlalu banyak inode yang sudah dialokasikan untuk "
+"menghapus sebuah group!"
+
+#: libparted/fs/ext2/ext2_resize.c:491
+msgid "adding groups"
+msgstr "menambahkan groups"
+
+#: libparted/fs/ext2/ext2_resize.c:528
+#, c-format
+msgid "Your file system is too full to resize it to %i blocks.  Sorry."
+msgstr ""
+"File system anda terlalu penuh untuk men-resize-nya menjadi %i blocks. Maaf."
+
+#: libparted/fs/ext2/ext2_resize.c:538
+#, c-format
+msgid ""
+"Your file system has too many occupied inodes to resize it to %i blocks.  "
+"Sorry."
+msgstr ""
+"File system anda memiliki terlalu banyak inode yang terisi untuk diresize "
+"menjadi %i block. Maaf"
+
+#: libparted/fs/ext2/ext2_resize.c:666
+msgid "File system was not cleanly unmounted!  You should run e2fsck."
+msgstr ""
+"File system tidak di-unmount secara bersih! Anda seharusnya menjalankan "
+"e2fsck."
+
+#: libparted/fs/ext2/ext2_resize.c:675
+msgid ""
+"The file system has the 'dir_index' feature enabled.  Parted can only resize "
+"the file system if it disables this feature.  You can enable it later by "
+"running 'tune2fs -O dir_index DEVICE' and then 'e2fsck -fD DEVICE'."
+msgstr ""
+"File system memiliki 'dir_index' featur enabled. Parted hanya bisa me-resize "
+"file system jika ini feature ini dimatikan. Anda dapat menghidupkannya "
+"kembali nanti dengan menjalankan 'tune2fs -O dir_index PERANGKAT' dan "
+"kemudian 'e2fsck -fD PERANGKAT'."
+
+#: libparted/fs/ext2/ext2_resize.c:691
+#, fuzzy
+msgid ""
+"A resize operation on this file system will use EXPERIMENTAL code\n"
+"that MAY CORRUPT it (although no one has reported any such damage yet).\n"
+"You should at least backup your data first, and run 'e2fsck -f' afterwards."
+msgstr ""
+"Sebuah operasi perubahan ukuran di file system ini akan menggunakan kode "
+"PERCOBAAN\n"
+"yang mungkin akan mengkorupsi file system ini (walaupun hal ini belum pernah "
+"terjadi\n"
+"sebelumnya).\n"
+"Anda seharusnya melakukan backup terlebih dahulu terhadap data anda dan "
+"menjalankan 'e2fsck -f' sesudahnya."
+
+#: libparted/fs/ext2/ext2_block_relocator.c:198
+msgid "Cross-linked blocks found!  Better go run e2fsck first!"
+msgstr ""
+"Cross-linked blocks ditemukan! Lebih baik menjalankan e2fsck terlebih daulu!"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:537
+#, c-format
+msgid "Block %i has no reference?  Weird."
+msgstr "Block %i tidak memiliki reference? Aneh."
+
+#: libparted/fs/ext2/ext2_block_relocator.c:737
+#, c-format
+msgid "Block %i shouldn't have been marked (%d, %d)!"
+msgstr "Block %i seharusnya tidak memiliki tanda (%d, %d)!"
+
+#: libparted/fs/ext2/interface.c:186
+msgid ""
+"The ext2 file system passed a basic check.  For a more comprehensive check, "
+"use the e2fsck program."
+msgstr ""
+"File system ext2 lolos dari pengecheckan dasar. Untuk lebih komprehensif "
+"check, gunakan aplikasi e2fsck."
+
+#: libparted/fs/ext2/interface.c:203
+msgid "Sorry, can't move the start of ext2 partitions yet!"
+msgstr "Maaf, tidak dapat memindahkan awal dari partisi ext2!"
+
+#: libparted/fs/ext2/ext2_buffer.c:82
+msgid "Couldn't flush buffer cache!"
+msgstr "Tidak dapat menflush buffer cache!"
+
+#: libparted/fs/ext2/ext2_mkfs.c:162
+msgid "writing per-group metadata"
+msgstr "menulis per-group metadata"
+
+#: libparted/fs/ext2/ext2_mkfs.c:564
+msgid "File system too small for ext2."
+msgstr "File system terlalu kecil untuk ext2."
+
+#: libparted/fs/fat/calc.c:135
+#, c-format
+msgid ""
+"You need %s of free disk space to shrink this partition to this size.  "
+"Currently, only %s is free."
+msgstr ""
+"Anda butuh %s ruang kosong dari disk untuk mengecilkan partisi ini. Saat ini "
+"hanya %s yang kosong."
+
+#: libparted/fs/fat/context.c:56
+#, c-format
+msgid ""
+"Cluster start delta = %d, which is not a multiple of the cluster size %d."
+msgstr ""
+"Cluster awal delta = %d, dimana bukan kelipatan dari ukuran cluster %d."
+
+#: libparted/fs/fat/fat.c:308
+#, c-format
+msgid "Partition too big/small for a %s file system."
+msgstr "Partisi terlalu besar/kecil untuk sebuah file system %s."
+
+#: libparted/fs/fat/fat.c:474
+msgid ""
+"The FATs don't match.  If you don't know what this means, then select "
+"cancel, run scandisk on the file system, and then come back."
+msgstr ""
+"FAT tidak cocok. Jika anda tidak tahu apa artinya ini, maka pilih cancel, "
+"jalankan scandisk pada file system, dan coba lagi."
+
+#: libparted/fs/fat/fat.c:514
+msgid "There are no possible configurations for this FAT type."
+msgstr "Tidak ada konfigurasi yang mungkin untuk tipe FAT ini."
+
+#: libparted/fs/fat/fat.c:526
+#, c-format
+msgid ""
+"File system doesn't have expected sizes for Windows to like it.  Cluster "
+"size is %dk (%dk expected); number of clusters is %d (%d expected); size of "
+"FATs is %d sectors (%d expected)."
+msgstr ""
+"Ukuran file system tidak berukuran seperti yang diperkirakan oleh Windows. "
+"Ukuran cluster adalah %dk (%dk diperkirakan); jumlah dari cluster adalah %d "
+"(%d diperkirakan); ukuran dari FATs adalah %d sektor (%d diperkirakan)."
+
+#: libparted/fs/fat/fat.c:549
+#, c-format
+msgid ""
+"File system is reporting the free space as %d clusters, not %d clusters."
+msgstr ""
+"File system melaporkan ruang kosong sebagai %d clusters, bukan %d clusters."
+
+#: libparted/fs/fat/fat.c:874
+msgid ""
+"GNU Parted was miscompiled: the FAT boot sector should be 512 bytes.  FAT "
+"support will be disabled."
+msgstr ""
+"GNU Parted telah salah dikompile: FAT boot sektor seharusnya 512 bytes. FAT "
+"support akan di nonaktifkan."
+
+#: libparted/fs/fat/resize.c:159
+msgid ""
+"There's not enough room in the root directory for all of the files.  Either "
+"cancel, or ignore to lose the files."
+msgstr ""
+"Tidak terdapat ruangan yang cukup untuk direktori root untuk semua file. "
+"Pilih cancel, atau ignore untuk menggagalkan files."
+
+#: libparted/fs/fat/resize.c:300
+msgid "Error writing to the root directory."
+msgstr "Error menulis pada direktori root."
+
+#: libparted/fs/fat/resize.c:489
+msgid "If you leave your file system as FAT16, then you will have no problems."
+msgstr ""
+"Jika anda meninggalkan file system anda sebagai FAT16, maka anda mungkin "
+"tidak akan menemui masalah"
+
+#: libparted/fs/fat/resize.c:492
+msgid ""
+"If you convert to FAT16, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual)."
+msgstr ""
+"Jika anda mengubah ke FAT16, dan MS Windows terinstall pada partisi "
+"tersebut, maka anda harus meninstall kembali MS Windows boot loader. Jika "
+"anda ingin melakukan ini, anda seharusnya berkonsultasi terlebih dahulu pada "
+"manual dari Parted (atau manual dari distribusi anda)."
+
+#: libparted/fs/fat/resize.c:500
+msgid ""
+"If you leave your file system as FAT32, then you will not introduce any new "
+"problems."
+msgstr ""
+"Jika anda meninggalkan file system sebagai FAT32, mungkin anda tidak menemui "
+"masalah baru."
+
+#: libparted/fs/fat/resize.c:504
+msgid ""
+"If you convert to FAT32, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual).  Also, "
+"converting to FAT32 will make the file system unreadable by MS DOS, MS "
+"Windows 95a, and MS Windows NT."
+msgstr ""
+"Jika anda mengubah ke FAT32, dan MS Windows terinstall pada partisi "
+"tersebut, maka anda harus meninstall kembali MS Windows boot loader. Jika "
+"anda ingin ingin melakukan ini, anda harus berkonsultasi terlebih dahulu "
+"dengan manual dari Parted (atau manual dari distribusi anda). Juga, mengubah "
+"ke FAT32 akan membuat file system tidak dapat dibaca oleh MS DOS, MS Windows "
+"95a, dan MS Windows NT."
+
+#: libparted/fs/fat/resize.c:518
+#, c-format
+msgid "%s  %s  %s"
+msgstr "%s  %s  %s"
+
+#: libparted/fs/fat/resize.c:519
+msgid "Would you like to use FAT32?"
+msgstr "Maukah anda menggunakan FAT32?"
+
+#: libparted/fs/fat/resize.c:550 libparted/fs/fat/resize.c:566
+#, c-format
+msgid "%s  %s"
+msgstr "%s  %s"
+
+#: libparted/fs/fat/resize.c:551
+msgid ""
+"The file system can only be resized to this size by converting to FAT16."
+msgstr ""
+"File system hanya dapat diresize ke ukuran ini dengan mengubahnya ke FAT16."
+
+#: libparted/fs/fat/resize.c:567
+msgid ""
+"The file system can only be resized to this size by converting to FAT32."
+msgstr ""
+"The file system hanya dapat di-resize untuk ukuran ini hanya dengan "
+"mengubahnya menjadi FAT32."
+
+#: libparted/fs/fat/resize.c:580
+msgid ""
+"GNU Parted cannot resize this partition to this size.  We're working on it!"
+msgstr ""
+"GNU Parted tidak dapat men-resize partisi ini untuk ukuran ini. Kita sedang "
+"mengusahkannya untuk bisa!"
+
+#: libparted/fs/fat/bootsector.c:49 libparted/fs/fat/bootsector.c:56
+msgid "File system has an invalid signature for a FAT file system."
+msgstr ""
+"File system memiliki sebuah signature yang tidak valid untuk sebuah FAT file "
+"system."
+
+#: libparted/fs/fat/bootsector.c:64
+msgid "File system has an invalid sector size for a FAT file system."
+msgstr ""
+"File system memiliki ukuran sektor yang tidak valid untuk sebuah FAT file "
+"system."
+
+#: libparted/fs/fat/bootsector.c:71
+msgid "File system has an invalid cluster size for a FAT file system."
+msgstr ""
+"File system memiliki ukuran cluster yang tidak valid untuk file system FAT."
+
+#: libparted/fs/fat/bootsector.c:78
+msgid ""
+"File system has an invalid number of reserved sectors for a FAT file system."
+msgstr ""
+"File system memiliki nomor yang tidak valid untuk reserverd sector dari "
+"sebuah FAT file system."
+
+#: libparted/fs/fat/bootsector.c:85
+msgid "File system has an invalid number of FATs."
+msgstr "File system memiliki nomor yang tidak valid untuk FATs."
+
+#: libparted/fs/fat/bootsector.c:139
+#, c-format
+msgid ""
+"This file system has a logical sector size of %d.  GNU Parted is known not "
+"to work properly with sector sizes other than 512 bytes."
+msgstr ""
+"File system ini memiliki sektor logical yang berukuran %d. GNU Parted tidak "
+"bekerja dengan baik dengan ukuran sektor selain 512 bytes."
+
+#: libparted/fs/fat/bootsector.c:164
+#, c-format
+msgid ""
+"The file system's CHS geometry is (%d, %d, %d), which is invalid.  The "
+"partition table's CHS geometry is (%d, %d, %d).  If you select Ignore, the "
+"file system's CHS geometry will be left unchanged.  If you select Fix, the "
+"file system's CHS geometry will be set to match the partition table's CHS "
+"geometry."
+msgstr ""
+"File system's CHS geometry adalah (%d, %d, %d), ini tidak valid. Tabel "
+"partisi dari CHS geometry adalah (%d, %d, %d). Jika anda memilih Ignore, "
+"file system's CHS geometry akan ditinggalkan tanpa diubah. Jika anda memilih "
+"Betulkan, file system CHS geomtry akan diset sehingga cocok dengan tabel "
+"partisi dari CHS geometry."
+
+#: libparted/fs/fat/bootsector.c:213
+msgid "FAT boot sector says logical sector size is 0.  This is weird. "
+msgstr "FAT boot sector mengatakan ukuran sektor logical adalah 0. Ini aneh"
+
+#: libparted/fs/fat/bootsector.c:219
+msgid "FAT boot sector says there are no FAT tables.  This is weird. "
+msgstr "FAT boot sector mengatakan disana tidak ada tabel FAT. Ini aneh."
+
+#: libparted/fs/fat/bootsector.c:225
+msgid "FAT boot sector says clusters are 0 sectors.  This is weird. "
+msgstr "FAT boot sector mengatakan clusters adalah 0 sectors. Ini aneh."
+
+#: libparted/fs/fat/bootsector.c:235
+msgid "File system is FAT12, which is unsupported."
+msgstr "File system adalah FAT12, dimana file system ini tidak disupport."
+
+#: libparted/fs/fat/bootsector.c:411
+#, c-format
+msgid ""
+"The information sector has the wrong signature (%x).  Select cancel for now, "
+"and send in a bug report.  If you're desperate, it's probably safe to ignore."
+msgstr ""
+"Informasi sektor memiliki signature (%x) yang salah. Pilih cancel sekarang, "
+"dan kirim dalam laporan bug. Jika anda putus asa, mungkin lebih aman untuk "
+"menghiraukannya."
+
+#: libparted/fs/fat/count.c:152
+#, c-format
+msgid "Bad directory entry for %s: first cluster is the end of file marker."
+msgstr ""
+"Bad directory entry untuk %s: cluster pertama merupakan akhir dari file "
+"marker"
+
+#: libparted/fs/fat/count.c:165
+#, c-format
+msgid ""
+"Bad FAT: unterminated chain for %s.  You should run dosfsck or scandisk."
+msgstr ""
+"Bad FAT: unterminated chain untuk %s. Anda seharusnya menjalankan dosfsck "
+"atau scandisk."
+
+#: libparted/fs/fat/count.c:174
+#, c-format
+msgid ""
+"Bad FAT: cluster %d outside file system in chain for %s.  You should run "
+"dosfsck or scandisk."
+msgstr ""
+"Bad FAT: cluster %d diluar dari file system dalam rantai untuk %s. Anda "
+"seharusnya menjalankan dosfsck atau scandisk."
+
+#: libparted/fs/fat/count.c:184
+#, c-format
+msgid ""
+"Bad FAT: cluster %d is cross-linked for %s.  You should run dosfsck or "
+"scandisk."
+msgstr ""
+"Bad FAT: cluster %d adalah cross-linked untuk %s. Anda seharusnya "
+"menjalankan dosfsck atan scandisk."
+
+#: libparted/fs/fat/count.c:203
+#, c-format
+msgid "%s is %dk, but it has %d clusters (%dk)."
+msgstr "%s adalah %dk, tetapi ini memiliki %d clusters (%dk)."
+
+#: libparted/fs/fat/count.c:266
+#, c-format
+msgid ""
+"The file %s is marked as a system file.  This means moving it could cause "
+"some programs to stop working."
+msgstr ""
+"File %s ditandai sebagai sistem file. Ini berarti memindahkannya dapat "
+"menyebabkan beberapa aplikasi untuk tidak dapat bekerja."
+
+#: libparted/fs/fat/table.c:137
+#, c-format
+msgid ""
+"FAT %d media %x doesn't match the boot sector's media %x.  You should "
+"probably run scandisk."
+msgstr ""
+"FAT %d media %x tidak cocok dengan boot sector's media %x. Anda seharusnya "
+"menjalankan scandisk."
+
+#: libparted/fs/fat/table.c:269
+#, c-format
+msgid "fat_table_set: cluster %ld outside file system"
+msgstr "fat_table_set: cluster %ld diluar file system"
+
+#: libparted/fs/fat/table.c:301
+#, c-format
+msgid "fat_table_get: cluster %ld outside file system"
+msgstr "fat_table_get: cluster %ld diluar file system"
+
+#: libparted/fs/fat/table.c:343
+msgid "fat_table_alloc_cluster: no free clusters"
+msgstr "fat_table_alloc_cluster: tidak ada cluster yang kosong"
+
+#: libparted/fs/linux_swap/linux_swap.c:275
+#, fuzzy, c-format
+msgid "Unrecognised old style linux swap signature '%10s'."
+msgstr "Linux swap signature tidak diketahui '%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:318
+#, fuzzy, c-format
+msgid "Unrecognised new style linux swap signature '%10s'."
+msgstr "Linux swap signature tidak diketahui '%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:358
+#, fuzzy, c-format
+msgid "Unrecognised swsusp linux swap signature '%9s'."
+msgstr "Linux swap signature tidak diketahui '%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:434
+msgid "Too many bad pages."
+msgstr "Terlalu banyak bad pages."
+
+#: libparted/fs/hfs/advfs.c:121 libparted/fs/hfs/advfs_plus.c:122
+#: libparted/fs/hfs/reloc.c:414 libparted/fs/hfs/reloc.c:508
+#: libparted/fs/hfs/reloc_plus.c:539 libparted/fs/hfs/reloc_plus.c:658
+#: libparted/fs/hfs/reloc_plus.c:772
+msgid "The file system contains errors."
+msgstr "File system memiliki kerusakan."
+
+#: libparted/fs/hfs/advfs_plus.c:287
+msgid "Bad blocks could not be read."
+msgstr "Bad blocks tidak dapat dibaca."
+
+#: libparted/fs/hfs/cache.c:137
+#, c-format
+msgid ""
+"Trying to register an extent starting at block 0x%X, but another one already "
+"exists at this position.  You should check the file system!"
+msgstr ""
+"Mencoba untuk menregister sebuah extent dimulai dari block 0x%X, tetapi yang "
+"lain sudah ada di partisi ini. Anda seharusnya mengecheck file system !"
+
+#: libparted/fs/hfs/cache.c:214
+#, c-format
+msgid ""
+"Trying to move an extent from block Ox%X to block Ox%X, but another one "
+"already exists at this position.  This should not happen!"
+msgstr ""
+"Mencoba untuk memindahkan sebuah extent dari block 0x%X ke block 0x%X, "
+"tetapi yang lain sudah ada di partisi ini. Ini seharusnya tidak terjadi!"
+
+#: libparted/fs/hfs/file.c:143
+#, c-format
+msgid "Could not update the extent cache for HFS file with CNID %X."
+msgstr "Tidak dapat meng-update extent cache untuk file HFS dengan CNID %X."
+
+#: libparted/fs/hfs/file.c:180
+#, c-format
+msgid "Trying to read HFS file with CNID %X behind EOF."
+msgstr "Mencoba untuk membaca file HFS dengan CNID %X dibelakang EOF."
+
+#: libparted/fs/hfs/file.c:190 libparted/fs/hfs/file.c:220
+#, c-format
+msgid "Could not find sector %lli of HFS file with CNID %X."
+msgstr "Tidak dapat menemukan sekto %lli dari file HFS dengan CNID %X."
+
+#: libparted/fs/hfs/file.c:210
+#, c-format
+msgid "Trying to write HFS file with CNID %X behind EOF."
+msgstr "Mencoba untuk menulis file HFS dengan CNID %X dibelakang EOF."
+
+#: libparted/fs/hfs/file_plus.c:157
+#, c-format
+msgid "Could not update the extent cache for HFS+ file with CNID %X."
+msgstr "Tidak dapat meng-update extent cache untuk file HFS+ dengan CNID %X."
+
+#: libparted/fs/hfs/file_plus.c:202
+#, c-format
+msgid "Trying to read HFS+ file with CNID %X behind EOF."
+msgstr "Mencoba untuk membaca file HFS+ dengan CNID %X dibelakang EOF."
+
+#: libparted/fs/hfs/file_plus.c:213 libparted/fs/hfs/file_plus.c:256
+#, c-format
+msgid "Could not find sector %lli of HFS+ file with CNID %X."
+msgstr "Tidak dapat menemukan sekto %lli dari file HFS+ dengan CNID %X."
+
+#: libparted/fs/hfs/file_plus.c:245
+#, c-format
+msgid "Trying to write HFS+ file with CNID %X behind EOF."
+msgstr "Mencoba untuk menulis file HFS+ dengan CNID %X dibelakang EOF."
+
+#: libparted/fs/hfs/hfs.c:232
+msgid "Sorry, HFS cannot be resized that way yet."
+msgstr "Maaf, HFS tidak dapat di-resize."
+
+#: libparted/fs/hfs/hfs.c:262 libparted/fs/hfs/hfs.c:641
+msgid "Data relocation has failed."
+msgstr "Data relocation telah gagal."
+
+#: libparted/fs/hfs/hfs.c:281
+msgid "Data relocation left some data in the end of the volume."
+msgstr "Data relocation meninggalkan beberapa data pada akhir dari volume."
+
+#: libparted/fs/hfs/hfs.c:320
+msgid "writing HFS Master Directory Block"
+msgstr "menulis HFS Master Directory Block"
+
+#: libparted/fs/hfs/hfs.c:468
+msgid "No valid HFS[+X] signature has been found while opening."
+msgstr "Tanda tangan HFS[+X] tidak valid telah ditemukan ketika membuka."
+
+#: libparted/fs/hfs/hfs.c:478
+#, c-format
+msgid "Version %d of HFS+ isn't supported."
+msgstr "HFS+ versi %d tidak disupport."
+
+#: libparted/fs/hfs/hfs.c:489
+#, c-format
+msgid "Version %d of HFSX isn't supported."
+msgstr "HFS+ versi %d tidak disupport."
+
+#: libparted/fs/hfs/hfs.c:672
+msgid "Data relocation left some data at the end of the volume."
+msgstr "Data relocation meninggalkan beberapa data pada akhir dari volume."
+
+#: libparted/fs/hfs/hfs.c:720
+msgid "Error while writing the allocation file."
+msgstr "Error ketika menulis alokasi file."
+
+#: libparted/fs/hfs/hfs.c:735
+msgid "Error while writing the compatibility part of the allocation file."
+msgstr "Error ketika menulis bagian kompatibilitas dari alokasi file."
+
+#: libparted/fs/hfs/hfs.c:750
+msgid "writing HFS+ Volume Header"
+msgstr "menulis HFS+ Volume Header"
+
+#: libparted/fs/hfs/hfs.c:850
+msgid "An error occurred while looking for the mandatory bad blocks file."
+msgstr "Sebuah error terjadi ketika mencari mandatory bad blocks file."
+
+#: libparted/fs/hfs/hfs.c:904
+msgid ""
+"It seems there is an error in the HFS wrapper: the bad blocks file doesn't "
+"contain the embedded HFS+ volume."
+msgstr ""
+"Kelihatannya terjadi kesalahan dalam HFS wrapper: file bad blocks tidak "
+"berisi embedded HFS+ volume."
+
+#: libparted/fs/hfs/hfs.c:940
+msgid "Sorry, HFS+ cannot be resized that way yet."
+msgstr "Maaf, HFS+ tidak dapat di-resize dengan cara itu saat ini."
+
+#: libparted/fs/hfs/hfs.c:975
+msgid "shrinking embedded HFS+ volume"
+msgstr "mengecilkan embedded HFS+ volume"
+
+#: libparted/fs/hfs/hfs.c:991
+msgid "Resizing the HFS+ volume has failed."
+msgstr "Resizing dari HFS+ volume telah gagal."
+
+#: libparted/fs/hfs/hfs.c:998
+msgid "shrinking HFS wrapper"
+msgstr "mengecilkan HFS wrapper"
+
+#: libparted/fs/hfs/hfs.c:1007
+msgid "Updating the HFS wrapper has failed."
+msgstr "Update dari HFS wrapper telah gagal."
+
+#: libparted/fs/hfs/hfs.c:1109 libparted/fs/hfs/hfs.c:1194
+#, c-format
+msgid ""
+"This is not a real %s check.  This is going to extract special low level "
+"files for debugging purposes."
+msgstr ""
+"Ini bukan sebuah pengecheckan %s nyata. Ini akan mengekstrak files spesial "
+"level bawah untuk tujuan debugging."
+
+#: libparted/fs/hfs/journal.c:155
+msgid "Bad block list header checksum."
+msgstr "Daftar bad block header checksum."
+
+#: libparted/fs/hfs/journal.c:168
+#, c-format
+msgid ""
+"Invalid size of a transaction block while replaying the journal (%i bytes)."
+msgstr ""
+"Ukuran tidak sah dalam transaksi blok ketika membalas transaksi journal (%i "
+"bytes)."
+
+#: libparted/fs/hfs/journal.c:260
+msgid ""
+"Journal stored outside of the volume are not supported.  Try to desactivate "
+"the journal and run Parted again."
+msgstr ""
+"Journal disimpan diluar dari volume tidak disupport. Coba untuk "
+"menonaktifkan journal dan jalankan Parted lagi sesudah itu."
+
+#: libparted/fs/hfs/journal.c:271
+msgid "Journal offset or size is not multiple of the sector size."
+msgstr "Ukuran atau offset dari journal bukan kelipatan dari ukuran sektor"
+
+#: libparted/fs/hfs/journal.c:292
+msgid "Incorrect magic values in the journal header."
+msgstr "Nilai magic tidak benar dalam header journal."
+
+#: libparted/fs/hfs/journal.c:302
+msgid "Journal size mismatch between journal info block and journal header."
+msgstr ""
+"Ukuran journal tidak cocok diantara journal info block dan journal header."
+
+#: libparted/fs/hfs/journal.c:314
+msgid "Some header fields are not multiple of the sector size."
+msgstr "Beberapa fields header bukan kelipatan dari ukuran sektor."
+
+#: libparted/fs/hfs/journal.c:323
+msgid ""
+"The sector size stored in the journal is not 512 bytes.  Parted only "
+"supports 512 bytes length sectors."
+msgstr ""
+"Ukuran sektor yang disimpan dalam journal tidak sebesar 512 bytes. Parted "
+"hanya mendukung ukuran sektor 512 bytes."
+
+#: libparted/fs/hfs/journal.c:335
+msgid "Bad journal checksum."
+msgstr "Journal checksum jelek."
+
+#: libparted/fs/hfs/journal.c:353
+msgid ""
+"The journal is not empty.  Parted must replay the transactions before "
+"opening the file system.  This will modify the file system."
+msgstr ""
+"Journal tidak kosong. Parted harus membalas transaksi sebelum membuka file "
+"system. Ini akan memodifikasi file system."
+
+#: libparted/fs/hfs/journal.c:381
+msgid ""
+"The volume header or the master directory block has changed while replaying "
+"the journal.  You should restart Parted."
+msgstr ""
+"Volume header atau direktori master block telah berubah ketika membalas "
+"transaksi journal. Anda seharusnya merestart Parted."
+
+#: libparted/fs/hfs/probe.c:51
+#, c-format
+msgid ""
+"Parted can't use HFS file systems on disks with a sector size not equal to %"
+"d bytes."
+msgstr ""
+"Parted tidak dapat menggunakan file systems tipe HFS di dist dengan ukuran "
+"sektor tidak sama dengan %d bytes."
+
+#: libparted/fs/hfs/reloc.c:151 libparted/fs/hfs/reloc_plus.c:155
+msgid "An extent has not been relocated."
+msgstr "Sebuah extent tidak dapat direlokasikan."
+
+#: libparted/fs/hfs/reloc.c:251 libparted/fs/hfs/reloc_plus.c:307
+msgid ""
+"A reference to an extent comes from a place it should not.  You should check "
+"the file system!"
+msgstr ""
+"Sebuah referensi untuk sebuah extent datang dari tempat yang tidak "
+"seharusnya. Anda harus mengecheck filesystem!"
+
+#: libparted/fs/hfs/reloc.c:381
+msgid "This HFS volume has no catalog file.  This is very unusual!"
+msgstr "HFS volume tidak memiliki catalog file. Ini sangat tidak biasa!"
+
+#: libparted/fs/hfs/reloc.c:475
+msgid "This HFS volume has no extents overflow file.  This is quite unusual!"
+msgstr "HFS+ volume ini tidak memiliki extent overflow file. Ini tidak biasa!"
+
+#: libparted/fs/hfs/reloc.c:517 libparted/fs/hfs/reloc_plus.c:668
+msgid ""
+"The extents overflow file should not contain its own extents!  You should "
+"check the file system."
+msgstr ""
+"Extent overflow file seharusnya tidak berisi extentnya sendiri! Anda "
+"seharusnya mengecheck filesystem."
+
+#: libparted/fs/hfs/reloc.c:574 libparted/fs/hfs/reloc_plus.c:847
+msgid "Could not cache the file system in memory."
+msgstr "Tidak dapat men-cache filesystem dalam memori."
+
+#: libparted/fs/hfs/reloc.c:635 libparted/fs/hfs/reloc_plus.c:908
+msgid "Bad blocks list could not be loaded."
+msgstr "Daftar bad blocks tidak dapat diload."
+
+#: libparted/fs/hfs/reloc.c:649 libparted/fs/hfs/reloc_plus.c:924
+msgid "An error occurred during extent relocation."
+msgstr "Terjadi error ketika extent relocation."
+
+#: libparted/fs/hfs/reloc_plus.c:495
+msgid "This HFS+ volume has no catalog file.  This is very unusual!"
+msgstr "HFS+ volume tidak memiliki catalog file. Ini sangat tidak biasa!"
+
+#: libparted/fs/hfs/reloc_plus.c:619
+msgid "This HFS+ volume has no extents overflow file.  This is quite unusual!"
+msgstr "HFS+ volume tidak memiliki extent overflow file. Ini tidak biasa!"
+
+#: parted/parted.c:94
+msgid "displays this help message"
+msgstr "tampilkan pesan bantuan ini"
+
+#: parted/parted.c:95
+#, fuzzy
+msgid "lists partition layout on all block devices"
+msgstr "daftar tabel partisi dari seluruh perangkat yang terdeteksi"
+
+#: parted/parted.c:96
+msgid "displays machine parseable output"
+msgstr ""
+
+#: parted/parted.c:97
+msgid "never prompts for user intervention"
+msgstr "jangan menanyakan intervensi pengguna"
+
+#: parted/parted.c:98
+msgid "displays the version"
+msgstr "tampilkan versi dari program ini"
+
+#: parted/parted.c:111
+msgid ""
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"
+msgstr ""
+"NOMOR adalah nomor partisi yang biasa digunakan oleh Linux. Pada MS-DOS disk "
+"label, penomoran partisi utama (primary) dari 1 sampai 4, partisi logical "
+"dari 5 keatas.\n"
+
+#: parted/parted.c:114
+msgid "LABEL-TYPE is one of: "
+msgstr "TIPE-LABEL adalah salah satu dari: "
+
+#: parted/parted.c:115
+msgid "FLAG is one of: "
+msgstr "TANDA adalah salah satu dari: "
+
+#: parted/parted.c:116
+msgid "UNIT is one of: "
+msgstr "SATUAN adalah salah satu dari: "
+
+#: parted/parted.c:117
+msgid "PART-TYPE is one of: primary, logical, extended\n"
+msgstr "TIPE-PART adalah salah satu dari: primary, logical, extended\n"
+
+#: parted/parted.c:119
+msgid "FS-TYPE is one of: "
+msgstr "TIPE-FS adalah salah satu dari: "
+
+#: parted/parted.c:120
+msgid ""
+"START and END are disk locations, such as 4GB or 10%.  Negative values count "
+"from the end of the disk.  For example, -1s specifies exactly the last "
+"sector.\n"
+msgstr ""
+"AWAL dan AKHIR adalah lokasi dari disk, seperti 4GB atau 10%. Nilai negatif "
+"dihitung dari akhir alamat disk. sebagai contoh, =-1s menyatakan lokasi "
+"sektor terakhir.\n"
+
+#: parted/parted.c:123
+msgid "STATE is one of: on, off\n"
+msgstr "STATUS adalah salah satu dari: on, off\n"
+
+#: parted/parted.c:124
+msgid "DEVICE is usually /dev/hda or /dev/sda\n"
+msgstr "PERANGKAT biasanya menggunakan nama /dev/hda atau /dev/sda\n"
+
+#: parted/parted.c:125
+msgid "NAME is any word you want\n"
+msgstr "NAMA adalah kata apapun yang anda inginkan\n"
+
+#: parted/parted.c:126
+msgid "The partition must have one of the following FS-TYPEs: "
+msgstr "Partisi harus memiliki salah satu dari TIPE-FS berikut ini: "
+
+#: parted/parted.c:130
+#, fuzzy
+msgid ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+msgstr ""
+"Hak Cipta (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"Aplikasi ini adalah free software, dilindungi oleh GNU General Public "
+"Licence.\n"
+"\n"
+"Aplikasi ini didistribusikan dengan harapan akan berguna, tetapi TANPA "
+"ADANYA GARANSI; bahkan untuk PENJUALAN atau KESESUAIAN UNTUK TUJUAN "
+"TERTENTU. Lihat GNU General Public License untuk informasi yang lebih "
+"detail.\n"
+
+#: parted/parted.c:176
+#, c-format
+msgid "%0.f%%\t(time left %.2d:%.2d)"
+msgstr "%0.f%%\t(waktu tersisa %.2d:%.2d)"
+
+#: parted/parted.c:195
+#, c-format
+msgid ""
+"Partition %s is being used. You must unmount it before you modify it with "
+"Parted."
+msgstr ""
+"Partisi %s sedang digunakan. Anda harus meng-umount terlebih dahulu sebelum "
+"memodifikasinya dengan menggunakan Parted."
+
+#: parted/parted.c:211
+#, c-format
+msgid "Partition(s) on %s are being used."
+msgstr "Partisi pada %s sedang digunakan."
+
+#: parted/parted.c:223
+msgid ""
+"The existing file system will be destroyed and all data on the partition "
+"will be lost. Do you want to continue?"
+msgstr ""
+"Filesystem yang ada akan dihapus dan seluruh data yang ada di partisi "
+"tersebut akan hilang. Apakah anda ingin melanjutkan?"
+
+#: parted/parted.c:235
+#, c-format
+msgid ""
+"The existing disk label on %s will be destroyed and all data on this disk "
+"will be lost. Do you want to continue?"
+msgstr ""
+"Disk label yang ada di %s akan dihapus dan seluruh data di disk ini akan "
+"hilang. Apakah anda ingin melanjutkan?"
+
+#: parted/parted.c:458 parted/parted.c:652 parted/parted.c:1044
+#: parted/parted.c:1128 parted/parted.c:1771 parted/parted.c:1852
+#: parted/parted.c:1900
+msgid "Partition number?"
+msgstr "Nomor partisi?"
+
+#: parted/parted.c:500
+msgid "Source device?"
+msgstr "Perangkat asal?"
+
+#: parted/parted.c:504
+msgid "Source partition number?"
+msgstr "Nomor partisi asal?"
+
+#: parted/parted.c:509
+msgid "Can't copy an extended partition."
+msgstr "Tidak dapat mengkopi sebuah partisi extended."
+
+#: parted/parted.c:515
+msgid "Destination partition number?"
+msgstr "Nomor partisi tujuan?"
+
+#: parted/parted.c:615
+msgid "New disk label type?"
+msgstr "Tipe disk label baru?"
+
+#: parted/parted.c:656
+msgid "File system?"
+msgstr "File system?"
+
+#: parted/parted.c:707 parted/parted.c:878
+msgid "Partition type?"
+msgstr "Tipe partisi?"
+
+#: parted/parted.c:714 parted/parted.c:885 parted/parted.c:1131
+msgid "Partition name?"
+msgstr "Nama partisi?"
+
+#: parted/parted.c:722 parted/parted.c:895
+msgid "File system type?"
+msgstr "Tipe file system?"
+
+#: parted/parted.c:729 parted/parted.c:897 parted/parted.c:1059
+#: parted/parted.c:1725 parted/parted.c:1780
+msgid "Start?"
+msgstr "Awal?"
+
+#: parted/parted.c:731 parted/parted.c:900 parted/parted.c:1062
+#: parted/parted.c:1727 parted/parted.c:1782
+msgid "End?"
+msgstr "Akhir?"
+
+#: parted/parted.c:769 parted/parted.c:938
+#, c-format
+msgid ""
+"You requested a partition from %s to %s.\n"
+"The closest location we can manage is %s to %s.  Is this still acceptable to "
+"you?"
+msgstr ""
+"Anda meminta sebuah partisi dari %s sampai %s.\n"
+"Pendekatan Parted yang paling dekat adalah %s - %s. Apakah ini dapat "
+"diterima oleh anda?"
+
+#: parted/parted.c:890
+msgid "An extended partition cannot hold a file system.  Did you want mkpart?"
+msgstr ""
+"Sebuah partisi extended tidak dapat berisi sebuah file system. Anda ingin "
+"melakukan mkpart?"
+
+#: parted/parted.c:1050
+msgid "Can't move an extended partition."
+msgstr "Tidak dapat memindahkan sebuah partisi extended."
+
+#: parted/parted.c:1079
+msgid "Can't move a partition onto itself.  Try using resize, perhaps?"
+msgstr ""
+"Tidak dapat memindahkan partisi ke partisi itu sendiri. Coba menggunakan "
+"resize, mungkin?"
+
+#: parted/parted.c:1227
+#, c-format
+msgid "Minor: %d\n"
+msgstr "Minor: %d\n"
+
+#: parted/parted.c:1228
+#, c-format
+msgid "Flags: %s\n"
+msgstr "Tanda: %s\n"
+
+#: parted/parted.c:1229
+#, c-format
+msgid "File System: %s\n"
+msgstr "File System: %s\n"
+
+#: parted/parted.c:1230
+msgid "Size:         "
+msgstr "Ukuran:        "
+
+#: parted/parted.c:1235
+msgid "Minimum size: "
+msgstr "Ukuran minimal: "
+
+#: parted/parted.c:1238
+msgid "Maximum size: "
+msgstr "Ukuran maksimal: "
+
+#: parted/parted.c:1362
+#, c-format
+msgid "Model: %s (%s)\n"
+msgstr "Model: %s (%s)\n"
+
+#: parted/parted.c:1364
+#, c-format
+msgid "Disk %s: %s\n"
+msgstr "Disk %s: %s\n"
+
+#: parted/parted.c:1365
+#, c-format
+msgid "Sector size (logical/physical): %lldB/%lldB\n"
+msgstr "Ukuran sektor (logical/physical): %lldB/%lldB\n"
+
+#: parted/parted.c:1383
+#, c-format
+msgid "BIOS cylinder,head,sector geometry: %d,%d,%d.  Each cylinder is %s.\n"
+msgstr ""
+"BIOS cylinder,head,sector geometry: %d,%d,%d. Setiap cylinder adalah %s.\n"
+
+#: parted/parted.c:1392
+#, c-format
+msgid "Partition Table: %s\n"
+msgstr "Tabel Partisi: %s\n"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Number"
+msgstr "Nomor"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Start"
+msgstr "Awal"
+
+#: parted/parted.c:1407 parted/parted.c:1410
+msgid "End"
+msgstr "Akhir"
+
+#: parted/parted.c:1410
+msgid "Size"
+msgstr "Ukuran"
+
+#: parted/parted.c:1414
+msgid "Type"
+msgstr "Tipe"
+
+#: parted/parted.c:1416
+msgid "File system"
+msgstr "File system"
+
+#: parted/parted.c:1419
+msgid "Name"
+msgstr "Nama"
+
+#: parted/parted.c:1421
+msgid "Flags"
+msgstr "Tanda"
+
+#: parted/parted.c:1477
+msgid "Free Space"
+msgstr "Ruang Kosong"
+
+#: parted/parted.c:1624
+#, c-format
+msgid ""
+"A %s %s partition was found at %s -> %s.  Do you want to add it to the "
+"partition table?"
+msgstr ""
+"Sebuah %s %s partisi ditemukan pada %s -> %s. Anda ingin menambahkan ini "
+"pada tabel partisi?"
+
+#: parted/parted.c:1663
+msgid "searching for file systems"
+msgstr "mencari untuk file systems"
+
+#: parted/parted.c:1877
+msgid "New device?"
+msgstr "Perangkat baru?"
+
+#: parted/parted.c:1902
+msgid "Flag to Invert?"
+msgstr "Tanda yang akan dirubah?"
+
+#: parted/parted.c:1907
+msgid "New state?"
+msgstr "Status baru?"
+
+#: parted/parted.c:1944
+msgid "Unit?"
+msgstr "Satuan?"
+
+#: parted/parted.c:2093
+msgid "check"
+msgstr "check"
+
+#: parted/parted.c:2096
+msgid ""
+"check NUMBER                             do a simple check on the file system"
+msgstr ""
+"check NOMOR                              melakukan penge-check-an sederhana "
+"pada file system"
+
+#: parted/parted.c:2102
+msgid "cp"
+msgstr "salin"
+
+#: parted/parted.c:2105
+msgid ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+"partition"
+msgstr ""
+"salin [ASAL-PERANGKAT] ASAL-NOMOR KE-NOMOR  menyalin file system ke partisi "
+"yang lain"
+
+#: parted/parted.c:2111
+msgid "help"
+msgstr "bantuan"
+
+#: parted/parted.c:2114
+#, fuzzy
+msgid ""
+"help [COMMAND]                           print general help, or help on "
+"COMMAND"
+msgstr ""
+"bantuan [PERINTAH]                       menampilkan bantuan umum, atau "
+"bantuan pada PERINTAH"
+
+#: parted/parted.c:2120
+msgid "mklabel"
+msgstr "mklabel"
+
+#: parted/parted.c:2120
+msgid "mktable"
+msgstr "mktable"
+
+#: parted/parted.c:2123
+msgid ""
+"mklabel,mktable LABEL-TYPE               create a new disklabel (partition "
+"table)"
+msgstr ""
+"mklabel,mktable TIPE-LABEL               membuat sebuah disklabel baru "
+"(tabel partisi)"
+
+#: parted/parted.c:2129
+msgid "mkfs"
+msgstr "mkfs"
+
+#: parted/parted.c:2132
+msgid ""
+"mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on "
+"partititon NUMBER"
+msgstr ""
+"mkfs NOMOR TIPE-FS                       membuat TIPE-FS filesystem pada "
+"partisi NOMOR"
+
+#: parted/parted.c:2138
+msgid "mkpart"
+msgstr "mkpart"
+
+#: parted/parted.c:2141
+msgid "mkpart PART-TYPE [FS-TYPE] START END     make a partition"
+msgstr "mkpart TIPE-PART [TIPE-FS] AWAL AKHIR    membuat sebuah partisi"
+
+#: parted/parted.c:2147
+#, fuzzy
+msgid ""
+"'mkpart' makes a partition without creating a new file system on the "
+"partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"
+msgstr ""
+"mkpart membuat sebuah partisi tanpa membuat sebuah file system baru pada "
+"partisi. TIPE-FS mungkin dispesifikasikan untuk mengeset ID partisi.\n"
+
+#: parted/parted.c:2152
+msgid "mkpartfs"
+msgstr "mkpartfs"
+
+#: parted/parted.c:2155
+msgid ""
+"mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system"
+msgstr ""
+"mkpartfs TIPE-PART TIPE-FS AWAL AKHIR    membuat sebuah partisi dengan "
+"filesystem"
+
+#: parted/parted.c:2161
+msgid "move"
+msgstr "pindah"
+
+#: parted/parted.c:2164
+msgid "move NUMBER START END                    move partition NUMBER"
+msgstr "pindah NOMOR AWAL AKHIR                  memindahkan partisi NOMOR"
+
+#: parted/parted.c:2169
+msgid "name"
+msgstr "nama"
+
+#: parted/parted.c:2172
+msgid "name NUMBER NAME                         name partition NUMBER as NAME"
+msgstr ""
+"nama NOMOR NAMA                          memberi nama partisi NOMOR dengan "
+"NAMA"
+
+#: parted/parted.c:2177
+msgid "print"
+msgstr "cetak"
+
+#: parted/parted.c:2180
+msgid ""
+"print [devices|free|list,all|NUMBER]     display the partition table, "
+"available devices, free space, all found partitions, or a particular "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2185
+msgid ""
+"Without arguments, 'print' displays the entire partition table. However with "
+"the following arguments it performs various other actions.\n"
+msgstr ""
+
+#: parted/parted.c:2187
+msgid "  devices   : display all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2188
+msgid ""
+"  free      : display information about free unpartitioned space on the "
+"current block device\n"
+msgstr ""
+
+#: parted/parted.c:2190
+#, fuzzy
+msgid ""
+"  list, all : display the partition tables of all active block devices\n"
+msgstr "daftar tabel partisi dari seluruh perangkat yang terdeteksi"
+
+#: parted/parted.c:2191
+msgid ""
+"  NUMBER    : display more detailed information about this particular "
+"partition\n"
+msgstr ""
+
+#: parted/parted.c:2196
+msgid "quit"
+msgstr "berhenti"
+
+#: parted/parted.c:2199
+msgid "quit                                     exit program"
+msgstr "berhenti                                 keluar dari program"
+
+#: parted/parted.c:2204
+msgid "rescue"
+msgstr "selamatkan"
+
+#: parted/parted.c:2207
+msgid ""
+"rescue START END                         rescue a lost partition near START "
+"and END"
+msgstr ""
+"selamatkan AWAL AKHIR                    menyelamatkan partisi yang hilang "
+"didekat alamat AWAL dan AKHIR"
+
+#: parted/parted.c:2213
+msgid "resize"
+msgstr "resize"
+
+#: parted/parted.c:2216
+msgid ""
+"resize NUMBER START END                  resize partition NUMBER and its "
+"file system"
+msgstr ""
+"resize NOMOR AWAL AKHIR                  merubah ukuran partisi NOMOR dan "
+"isi filesystemnya"
+
+#: parted/parted.c:2224
+msgid "rm"
+msgstr "hapus"
+
+#: parted/parted.c:2227
+msgid "rm NUMBER                                delete partition NUMBER"
+msgstr "hapus NOMOR                              hapus partisi NOMOR"
+
+#: parted/parted.c:2232
+msgid "select"
+msgstr "pilih"
+
+#: parted/parted.c:2235
+msgid "select DEVICE                            choose the device to edit"
+msgstr ""
+"pilih PERANGKAT                          pilih perangkat yang akan di edit"
+
+#: parted/parted.c:2240
+msgid "set"
+msgstr "set"
+
+#: parted/parted.c:2243
+msgid ""
+"set NUMBER FLAG STATE                    change the FLAG on partition NUMBER"
+msgstr ""
+"set NOMOR FLAG STATUS                    merubah tanda pada partisi NOMOR"
+
+#: parted/parted.c:2249
+msgid "toggle"
+msgstr "ubah"
+
+#: parted/parted.c:2252
+msgid ""
+"toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+"partition NUMBER"
+msgstr ""
+"ubah [NOMOR [TANDA]]                     ubah keadaan dari TANDA di partisi "
+"NOMOR"
+
+#: parted/parted.c:2258
+msgid "unit"
+msgstr "satuan"
+
+#: parted/parted.c:2261
+msgid "unit UNIT                                set the default unit to UNIT"
+msgstr ""
+"satuan SATUAN                            mengeset satuan default pada SATUAN"
+
+#: parted/parted.c:2266
+msgid "version"
+msgstr "versi"
+
+#: parted/parted.c:2269
+#, fuzzy
+msgid ""
+"version                                  display the version number and "
+"copyright information of GNU Parted"
+msgstr ""
+"versi                                    menampilkan versi dari GNU Parted "
+"dan informasi hak cipta"
+
+#: parted/parted.c:2273
+#, fuzzy
+msgid ""
+"'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"
+msgstr ""
+"versi menampilkan hak cipta dan informasi versi sesuai dengan kopi dari GNU "
+"Parted ini\n"
+
+#: parted/parted.c:2335
+#, c-format
+msgid "Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"
+msgstr ""
+
+#: parted/parted.c:2379
+msgid "No device found"
+msgstr "Tidak ditemukan perangkat"
+
+#: parted/parted.c:2412
+#, fuzzy
+msgid "WARNING: You are not superuser.  Watch out for permissions."
+msgstr "PERINGATAN: Anda bukan superuser. Perhatikan permisi anda.\n"
+
+#: parted/parted.c:2450
+#, fuzzy
+msgid "You may need to update /etc/fstab.\n"
+msgstr "Jangan lupa untuk meng-update /etc/fstab, jika diperlukan.\n"
+
+#: parted/ui.c:160
+msgid "Welcome to GNU Parted! Type 'help' to view a list of commands.\n"
+msgstr ""
+"Selamat datang di GNU Parted| Ketik 'bantuan' untuk melihat daftar dari "
+"perintah yang tersedia.\n"
+
+#: parted/ui.c:163
+msgid ""
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run "
+"in\n"
+"interactive mode.\n"
+msgstr ""
+"Penggunaan: parted [OPSI]... [PERANGKAT [PERINTAH [PARAMETERS]...]...]\n"
+"Berikan PERINTAH dengan PARAMETER ke PERANGKAT. Jika tidak ada PERINTAH yang "
+"diberikan,\n"
+"maka parted akan berjalan dengan menggunakan mode interaktif.\n"
+
+#: parted/ui.c:168
+#, fuzzy, c-format
+msgid ""
+"\n"
+"\n"
+"You found a bug in GNU Parted! Here's what you have to do:\n"
+"\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n"
+"\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Please check this version prior to bug reporting.\n"
+"\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"for further information.\n"
+"\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n"
+msgstr ""
+"\n"
+"\n"
+"Anda menemukan sebuah bug dalam GNU Parted! Ini yang harus anda lakukan:\n"
+"\n"
+"Jangan panic! Bug yang ada biasanya tidak mempengaruhi data anda.\n"
+"Bantu kami untuk membetulkan bug ini dengan melakukan hal berikut:\n"
+"\n"
+"Check apakah bug telah dibetulkan dengan mengecheck\n"
+"versi terbaru dari GNU Parted yang dapat anda temukan di:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Jika bug ini belum dibetulkan atau jika anda tidak tahu bagaimana cara "
+"mengechecknya,\n"
+"kunjungi GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"untuk informasi lebih lanjut.\n"
+"\n"
+"Laporan anda seharusnya berisi versi dari release ini (%s)\n"
+"dengan pesan error dibawah ini, dan output dari perintah berikut ini\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"dan beberapa informasi tambahan mengenai setting yang telah anda lakukan "
+"yang menurut anda penting.\n"
+
+#: parted/ui.c:284
+msgid ""
+"\n"
+"Command History:\n"
+msgstr ""
+
+#: parted/ui.c:366
+#, fuzzy
+msgid ""
+"\n"
+"Error: SEGV_MAPERR (Address not mapped to object)\n"
+msgstr ""
+"\n"
+"Error: SEGV_MAPPER (Alamat tidak di map ke objek)"
+
+#: parted/ui.c:372
+#, fuzzy
+msgid ""
+"\n"
+"Error: SEGV_ACCERR (Invalid permissions for mapped object)\n"
+msgstr ""
+"\n"
+"Error: SEGV_ACCER (Permisi tidak sah untuk objek yang dimap)"
+
+#: parted/ui.c:377
+#, fuzzy
+msgid ""
+"\n"
+"Error: A general SIGSEGV signal was encountered.\n"
+msgstr ""
+"\n"
+"Error: Sebuah sinyal SIGSEGV umum telah ditemui."
+
+#: parted/ui.c:410
+msgid ""
+"\n"
+"Error: FPE_INTDIV (Integer: divide by zero)"
+msgstr ""
+"\n"
+"Error: FPE_INTDIV (Integer: dibagi dengan nol)"
+
+#: parted/ui.c:415
+msgid ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+msgstr ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+
+#: parted/ui.c:420
+msgid ""
+"\n"
+"Error: FPE_FLTDIV (Float: divide by zero)"
+msgstr ""
+"\n"
+"Error: FPE_FLTDIV (Float: dibagi dengan nol)"
+
+#: parted/ui.c:425
+msgid ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+msgstr ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+
+#: parted/ui.c:430
+msgid ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+msgstr ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+
+#: parted/ui.c:435
+msgid ""
+"\n"
+"Error: FPE_FLTRES (Float: inexact result)"
+msgstr ""
+"\n"
+"Error: FPE_FLTRES (Float: hasil tidak eksak)"
+
+#: parted/ui.c:440
+msgid ""
+"\n"
+"Error: FPE_FLTINV (Float: invalid operation)"
+msgstr ""
+"\n"
+"Error: FPE_FLTINV (Float: operasi tidak valid)"
+
+#: parted/ui.c:445
+msgid ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript out of range)"
+msgstr ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript diluar dari jangkauan)"
+
+#: parted/ui.c:450
+msgid ""
+"\n"
+"Error: A general SIGFPE signal was encountered."
+msgstr ""
+"\n"
+"Error: Sebuah sinyal SIGFPE umum telah ditemukan."
+
+#: parted/ui.c:483
+msgid ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+msgstr ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+
+#: parted/ui.c:488
+msgid ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+msgstr ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+
+#: parted/ui.c:493
+msgid ""
+"\n"
+"Error: ILL_ILLADR (Illegal addressing mode)"
+msgstr ""
+"\n"
+"Error: ILL_ILLADDR (Illegal mode pengalamatan)"
+
+#: parted/ui.c:498
+msgid ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+msgstr ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+
+#: parted/ui.c:503
+msgid ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+msgstr ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+
+#: parted/ui.c:508
+msgid ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+msgstr ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+
+#: parted/ui.c:513
+msgid ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+msgstr ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+
+#: parted/ui.c:518
+msgid ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+msgstr ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+
+#: parted/ui.c:523
+msgid ""
+"\n"
+"Error: A general SIGILL signal was encountered."
+msgstr ""
+"\n"
+"Error: Sebuah sinyal SIGILL umum telah ditemukan."
+
+#: parted/ui.c:1024
+msgid "Expecting a partition number."
+msgstr "Memperkirakan sebuah nomor partisi."
+
+#: parted/ui.c:1033
+msgid "Partition doesn't exist."
+msgstr "Partisi tidak ada."
+
+#: parted/ui.c:1053
+msgid "Expecting a file system type."
+msgstr "Memperkirakan sebuah tipe filesystem."
+
+#: parted/ui.c:1060
+#, c-format
+msgid "Unknown file system type \"%s\"."
+msgstr "Tipe filesystem tidak diketahui \"%s\"."
+
+#: parted/ui.c:1080
+msgid "Expecting a disk label type."
+msgstr "Memperkirakan sebuah tipe disk label."
+
+#: parted/ui.c:1178
+msgid "Can't create any more partitions."
+msgstr "Tidak dapat membuat partisi lagi."
+
+#: parted/ui.c:1188
+msgid "Expecting a partition type."
+msgstr "Memperkirakan sebuah tipe partisi."
+
+#: parted/ui.c:1315
+msgid "on"
+msgstr "nyala"
+
+#: parted/ui.c:1316
+msgid "off"
+msgstr "mati"
+
+#: parted/ui.c:1431
+msgid "OPTIONs:"
+msgstr "OPSI:"
+
+#: parted/ui.c:1436
+msgid "COMMANDs:"
+msgstr "PERINTAH:"
+
+#: parted/ui.c:1445
+#, c-format
+msgid "Using %s\n"
+msgstr "Menggunakan perangkat %s\n"
+
+#: parted/ui.c:1519
+msgid "This command does not make sense in non-interactive mode.\n"
+msgstr ""
+
+#~ msgid "GNU Parted cannot resize this file system, please useresize2fs."
+#~ msgstr ""
+#~ "GNU Parted tidak dapat mengubah ukuran dari filesystem ini, tolong "
+#~ "gunakan useresize2fs."
+
+#~ msgid "where necessary, prompts for user intervention"
+#~ msgstr "jika diperlukan, tanyakan intervensi pengguna"
+
+#~ msgid "GNU Parted Version information:\n"
+#~ msgstr "Informasi versi dari GNU Parted:\n"
+
+#~ msgid ""
+#~ "print [free|NUMBER|all]                  display the partition table, a "
+#~ "partition, or all devices"
+#~ msgstr ""
+#~ "cetak [NOMOR]                            menampilkan tabel partisi, atau "
+#~ "sebuah partisi"
+
+#~ msgid ""
+#~ "Without arguments, print displays the entire partition table. With "
+#~ "'free'\n"
+#~ "argument, information about free space will be displayed otherwise if a\n"
+#~ "partition number is given, then more detailed information is displayed\n"
+#~ "about that partition. If the 'all' argument is passed instead, partition\n"
+#~ "information for all devices will be displayed.\n"
+#~ msgstr ""
+#~ "Tanpa argumen, menampilkan seluruh tabel partisi. Dengan 'free' "
+#~ "argumen, \n"
+#~ "maka informasi mengenai free space akan ditampilkan sebaliknya jika "
+#~ "sebuah \n"
+#~ "nomor partisi diberikan, maka informasi lebih detail mengenai partisi "
+#~ "tersebut\n"
+#~ "ditampilkan. Jika 'all' argumen di berikan, maka informasi seluruh "
+#~ "partisi pada\n"
+#~ "perangkat akan ditampilkan.\n"
+
+#~ msgid ""
+#~ "The sector size on %s is %d bytes.  Parted is known not to work properly "
+#~ "with drives with sector sizes other than %d bytes."
+#~ msgstr ""
+#~ "Ukuran sektor pada %s adalah %d bytes. Parted tidak dapat bekerja secara "
+#~ "normal dengan drives dengan ukuran sektor selain dari %d bytes."
+
+#~ msgid "IDE"
+#~ msgstr "IDE"
+
+#~ msgid "Attempt to read sectors %ld-%ld outside of partition on %s."
+#~ msgstr "Mencoba untuk membaca sektor %ld-%ld diluar dari partisi pada %s."
+
+#~ msgid ""
+#~ "This ext2 file system has a rather strange layout!  Parted can't resize "
+#~ "this (yet)."
+#~ msgstr ""
+#~ "File system ext2 ini memiliki sebuah layout yang aneh! Parted tidak dapat "
+#~ "menresize ini"
+
+#~ msgid ""
+#~ "You have an HFS+ file system that has a feature that I haven't seen used "
+#~ "anywhere.  Parted can theoretically handle it, but the corresponding code "
+#~ "has never been tested, so this might be risky.  Please email me so I can "
+#~ "see how it works!  <xxx@yyy.zz>"
+#~ msgstr ""
+#~ "Anda memiliki sebuah HFS+ file system yang memiliki feature yang saya "
+#~ "belum pernah lihat sebelumnya dimanapun. Parted secara teori dapat "
+#~ "menanganinya, tetapi kode yang berhubungan dengan itu belum ditest, jadi "
+#~ "ini mungkin beresiko. Tolong email saya sehingga saya bisa tahu jika ini "
+#~ "bekerja! <xxx@yyy.zz>"
+
+#~ msgid ""
+#~ "The extents overflow file should not contain its own extents.  You should "
+#~ "check the file system."
+#~ msgstr ""
+#~ "Extent overflow file seharusnya tidak berisi its own extents. Anda "
+#~ "sebaiknya mengecheck file system."
+
+#~ msgid "Disk geometry for %s: %s - %s\n"
+#~ msgstr "Geometri untuk disk %s: %s - %s\n"
+
+#~ msgid "Disk label type: %s\n"
+#~ msgstr "Tipe disk label: %s\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "You found a bug in GNU Parted.\n"
+#~ "This may have been fixed in the last version of GNU Parted that you can "
+#~ "find at:\n"
+#~ "\thttp://ftp.gnu.org/gnu/parted/\n"
+#~ "If this has not been fixed or if you don't know how to check, please "
+#~ "email:\n"
+#~ "\tbug-parted@gnu.org\n"
+#~ "or (preferably) file a bug report at:\n"
+#~ "\thttp://parted.alioth.debian.org/bugs/\n"
+#~ "Your report should contain the version of this release (%s) along with "
+#~ "the\n"
+#~ "following message and preferably additional information about your "
+#~ "setup.\n"
+#~ "Refer to the web site of parted\n"
+#~ "\thttp://www.gnu.org/software/parted/parted.html\n"
+#~ "for more informations of what could be useful for bug submitting!\n"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Anda menemukan sebuah bug (kutu) dalam GNU Parted.\n"
+#~ "Ini mungkin sudah dibetulkan dalam versi terakhir dari GNU Parted yang "
+#~ "akan anda temukan di:\n"
+#~ "\thttp://ftp.gnu.org/gnu/parted/\n"
+#~ "Jika ini belum dibetulkan atau anda tidak tahu bagaimana untuk "
+#~ "mengecheck, mohon email:\n"
+#~ "\tbug-parted@gnu.org\n"
+#~ "atau (anda lebih suka) untuk mengirim laporan bug pada:\n"
+#~ "\thttp://parted.alioth.debian.org/bugs/\n"
+#~ "Laporan anda seharusnya berisi versi dari release ini (%s) dengan pesan\n"
+#~ "berikut ini dan lebih disukai dengan informasi tambahan mengenai setup "
+#~ "anda.\n"
+#~ "Lihat ke alamat web site dari parted untuk informasi lebih lanjut\n"
+#~ "\thttp://www.gnu.org/software/parted/parted.html\n"
+#~ "Untuk informasi yang lebih berguna dalam mengirimkan laporan bug (kutu)!\n"
+
+#~ msgid ""
+#~ "This HFS volume has no extents overflow file. This is quite unusual !"
+#~ msgstr "HFS volume tidak memiliki extents overflow file. Ini tidak biasa !"
+
+#~ msgid ""
+#~ "You requested to create a partition at %s - %s. The closest Parted can "
+#~ "manage is %s - %s."
+#~ msgstr ""
+#~ "Anda meminta untuk membuat sebuah partisi pada %s - %s. Pendekatan Parted "
+#~ "yang paling dekat adalah %s - %s."
+
+#~ msgid ""
+#~ "You requested to resize the partition to %s - %s.  The closest Parted can "
+#~ "manage is %s - %s."
+#~ msgstr ""
+#~ "Anda meminta untuk meresize partisi menjadi %s - %s. Parted hanya dapat "
+#~ "mengatasi menjadi yang terdekat adalah %s - %s."
+
+#~ msgid ""
+#~ "You found a bug in GNU Parted.  Please email a bug report to bug-"
+#~ "parted@gnu.org containing the version (%s), and the following message:\n"
+#~ msgstr ""
+#~ "Anda menemukan sebuah bug dalam GNU Parted. Tolong email laporan bug ke  "
+#~ "bug-parted@gnu.org yang berisi versi (%s), dan pesan berikut ini:\n"
diff --git a/parted-1.8.7/po/insert-header.sin b/parted-1.8.7/po/insert-header.sin
new file mode 100644
index 0000000..b26de01
--- /dev/null
+++ b/parted-1.8.7/po/insert-header.sin
@@ -0,0 +1,23 @@
+# Sed script that inserts the file called HEADER before the header entry.
+#
+# At each occurrence of a line starting with "msgid ", we execute the following
+# commands. At the first occurrence, insert the file. At the following
+# occurrences, do nothing. The distinction between the first and the following
+# occurrences is achieved by looking at the hold space.
+/^msgid /{
+x
+# Test if the hold space is empty.
+s/m/m/
+ta
+# Yes it was empty. First occurrence. Read the file.
+r HEADER
+# Output the file's contents by reading the next line. But don't lose the
+# current line while doing this.
+g
+N
+bb
+:a
+# The hold space was nonempty. Following occurrences. Do nothing.
+x
+:b
+}
diff --git a/parted-1.8.7/po/it.gmo b/parted-1.8.7/po/it.gmo
new file mode 100644
index 0000000..3031ccc
--- /dev/null
+++ b/parted-1.8.7/po/it.gmo
Binary files differ
diff --git a/parted-1.8.7/po/it.po b/parted-1.8.7/po/it.po
new file mode 100644
index 0000000..8f48665
--- /dev/null
+++ b/parted-1.8.7/po/it.po
@@ -0,0 +1,3307 @@
+# Italian translation for the parted package
+# Copyright (C) 2004 Free Software Foundation, Inc.
+# Giuseppe Sacco <eppesuig@debian.org>, 2004-2006.
+#
+# Thanks to Danilo Piazzalunga and Claudio Gilardoni
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: parted 1.7.0rc1\n"
+"Report-Msgid-Bugs-To: bug-parted@gnu.org\n"
+"POT-Creation-Date: 2007-05-09 17:02-0400\n"
+"PO-Revision-Date: 2006-04-11 21:18+0200\n"
+"Last-Translator: Giuseppe Sacco <eppesuig@debian.org>\n"
+"Language-Team: Italian <tp@lists.linux.it>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/closeout.c:74
+msgid "write error"
+msgstr ""
+
+#: lib/error.c:125
+#, fuzzy
+msgid "Unknown system error"
+msgstr "Tipo \"%s\" di file system sconosciuto."
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK).  A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#.
+#. If you don't know what to put here, please see
+#. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr ""
+
+#: lib/regcomp.c:131
+msgid "Success"
+msgstr ""
+
+#: lib/regcomp.c:134
+msgid "No match"
+msgstr ""
+
+#: lib/regcomp.c:137
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regcomp.c:140
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regcomp.c:143
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regcomp.c:146
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regcomp.c:149
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regcomp.c:152
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regcomp.c:155
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regcomp.c:158
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regcomp.c:161
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regcomp.c:164
+#, fuzzy
+msgid "Invalid range end"
+msgstr "Numero non valido."
+
+#: lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regcomp.c:170
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regcomp.c:173
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regcomp.c:176
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regcomp.c:179
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regcomp.c:680
+msgid "No previous regular expression"
+msgstr ""
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr ""
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:66
+msgid "(C)"
+msgstr ""
+
+#: lib/version-etc.c:68
+msgid ""
+"\n"
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:84
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:88
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:92
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:98
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:104
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:110
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:132
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+
+#: lib/xalloc-die.c:35
+msgid "memory exhausted"
+msgstr ""
+
+#: libparted/arch/beos.c:237
+msgid "Disk Image"
+msgstr ""
+
+#: libparted/arch/beos.c:338 libparted/arch/gnu.c:261
+#: libparted/arch/linux.c:1272
+#, c-format
+msgid "Error opening %s: %s"
+msgstr "Errore nell'apertura di %s: %s"
+
+#: libparted/arch/beos.c:349 libparted/arch/gnu.c:271
+#: libparted/arch/linux.c:1283
+#, c-format
+msgid "Unable to open %s read-write (%s).  %s has been opened read-only."
+msgstr ""
+"Non posso aprire %s in lettura/scrittura (%s). %s è stato aperto in sola "
+"lettura."
+
+#: libparted/arch/beos.c:411 libparted/arch/linux.c:1431
+#, c-format
+msgid "%s during seek for read on %s"
+msgstr "%s durante il posizionamento per la lettura su %s"
+
+#: libparted/arch/beos.c:444 libparted/arch/gnu.c:449 libparted/arch/gnu.c:548
+#: libparted/arch/gnu.c:676 libparted/arch/linux.c:1391
+#: libparted/arch/linux.c:1469
+#, c-format
+msgid "%s during read on %s"
+msgstr "%s durante la lettura su %s"
+
+#: libparted/arch/beos.c:480 libparted/arch/gnu.c:509
+#: libparted/arch/linux.c:1546
+#, c-format
+msgid "Can't write to %s, because it is opened read-only."
+msgstr "Impossibile scrivere su %s poiché è stato aperto in sola lettura."
+
+#: libparted/arch/beos.c:496 libparted/arch/linux.c:1570
+#, c-format
+msgid "%s during seek for write on %s"
+msgstr "%s durante il posizionamento per la scrittura su %s"
+
+#: libparted/arch/beos.c:533 libparted/arch/gnu.c:585 libparted/arch/gnu.c:630
+#: libparted/arch/gnu.c:707 libparted/arch/linux.c:1517
+#: libparted/arch/linux.c:1612 libparted/arch/linux.c:1684
+#, c-format
+msgid "%s during write on %s"
+msgstr "%s durante la scrittura su %s"
+
+#: debug/clearfat/clearfat.c:63 partprobe/partprobe.c:137
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:67
+#, c-format
+msgid ""
+"Usage: %s [OPTION]\n"
+"  or:  %s DEVICE MINOR\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:70
+msgid ""
+"Clear unused space on a FAT partition (a GNU Parted testing tool).\n"
+"\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:74
+msgid "      --help     display this help and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:75
+msgid "      --version  output version information and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:77 partprobe/partprobe.c:154
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:285
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:290
+#, fuzzy, c-format
+msgid "too many arguments"
+msgstr "Troppe pagine inutilizzabili."
+
+#: partprobe/partprobe.c:141
+#, c-format
+msgid "Usage: %s [OPTION] [DEVICE]...\n"
+msgstr ""
+
+#: partprobe/partprobe.c:142
+msgid ""
+"Inform the OS of partition table changes.\n"
+"\n"
+"  -d, --no-update  don't update the kernel\n"
+"  -s, --summary    print a summary of contents\n"
+"  -h, --help       display this help and exit\n"
+"  -v, --version    output version information and exit\n"
+msgstr ""
+
+#: partprobe/partprobe.c:150
+msgid ""
+"\n"
+"With no DEVICE, probe all partitions.\n"
+msgstr ""
+
+#: libparted/arch/gnu.c:94
+#, c-format
+msgid "Unable to open %s."
+msgstr "Impossibile aprire %s."
+
+#: libparted/arch/gnu.c:114
+msgid "Unable to probe store."
+msgstr "Impossibile rilevare il dispositivo di «storage»."
+
+#: libparted/arch/gnu.c:352
+msgid ""
+"The partition table cannot be re-read.  This means you need to reboot before "
+"mounting any modified partitions.  You also need to reinstall your boot "
+"loader before you reboot (which may require mounting modified partitions).  "
+"It is impossible do both things!  So you'll need to boot off a rescue disk, "
+"and reinstall your boot loader from the rescue disk.  Read section 4 of the "
+"Parted User documentation for more information."
+msgstr ""
+"Non è stato possibile rileggere la tabella delle partizioni, quindi si deve "
+"riavviare il computer prima di montare le partizioni modificate. È anche "
+"necessario installare nuovamente il «boot loader» prima del riavvio (il che "
+"può richiedere di montare le partizioni modificate.) Non è possibile fare "
+"entrambe! Quindi si avvii la macchina da un disco di ripristino e si "
+"reinstalli il «boot loader» da quel disco. Leggere la sezione 4 della "
+"documentazione utente di Parted per ulteriori informazioni."
+
+#: libparted/arch/gnu.c:369
+#, c-format
+msgid ""
+"The partition table on %s cannot be re-read (%s).  This means the Hurd knows "
+"nothing about any modifications you made.  You should reboot your computer "
+"before doing anything with %s."
+msgstr ""
+"La tabella delle partizioni su %s (%s) non può essere riletta. Questo vuol "
+"dire che Hurd non sa assolutamente nulla delle modifiche fatte. Riavviare il "
+"computer prima di fare qualsiasi cosa con %s."
+
+#: libparted/arch/gnu.c:380 parted/parted.c:2443
+msgid ""
+"You should reinstall your boot loader before rebooting.  Read section 4 of "
+"the Parted User documentation for more information."
+msgstr ""
+"Si dovrebbe installare nuovamente il «boot loader» prima di riavviare. "
+"Leggere la sezione 4 della documentazione utente di Parted per ulteriori "
+"informazioni."
+
+#: libparted/arch/gnu.c:772
+#, c-format
+msgid "%s trying to sync %s to disk"
+msgstr "%s tentanto di fare il «sync» di %s sul disco"
+
+#: libparted/arch/linux.c:408
+#, c-format
+msgid "Could not stat device %s - %s."
+msgstr "Non posso fare lo «stat» del device %s - %s."
+
+#: libparted/arch/linux.c:523
+#, fuzzy, c-format
+msgid ""
+"Could not determine sector size for %s: %s.\n"
+"Using the default sector size (%lld)."
+msgstr ""
+"Non è stato possibile determinare la dimensione del settore per %s: %s.\n"
+"Verrà utilizzata la dimensione predefinita·(%lld)."
+
+#: libparted/arch/linux.c:539
+#, fuzzy, c-format
+msgid ""
+"Device %s has a logical sector size of %lld.  Not all parts of GNU Parted "
+"support this at the moment, and the working code is HIGHLY EXPERIMENTAL.\n"
+msgstr ""
+"La dimensione del settore logico per %s è %lld. In questo momento, non tutte "
+"le parti di GNU Parted la supportano e il relativo codice è ALTAMENTE "
+"SPERIMENTALE.\n"
+
+#: libparted/arch/linux.c:579
+#, c-format
+msgid "Unable to determine the size of %s (%s)."
+msgstr "Impossibile determinare la dimensione di %s (%s)."
+
+#: libparted/arch/linux.c:668
+#, c-format
+msgid "Could not get identity of device %s - %s"
+msgstr "Non posso identificare il device %s -%s"
+
+#: libparted/arch/linux.c:677
+msgid "Generic IDE"
+msgstr "IDE generico"
+
+#: libparted/arch/linux.c:698
+#, c-format
+msgid ""
+"Device %s has multiple (%d) logical sectors per physical sector.\n"
+"GNU Parted supports this EXPERIMENTALLY for some special disk label/file "
+"system combinations, e.g. GPT and ext2/3.\n"
+"Please consult the web site for up-to-date information."
+msgstr ""
+"Il device %s ha multipli (%d) settori logici per ogni settore fisico.\n"
+"GNU Parted supporta questa configurazione in maniera SPERIMENTALE per alcune "
+"combinazioni di tipi di etichetta/file system, come GPT e ext2/3.\n"
+"Consultare il sito web per una documentazione aggiornata."
+
+#: libparted/arch/linux.c:873
+#, c-format
+msgid "Error initialising SCSI device %s - %s"
+msgstr "Errore nell'inizializzazione del device SCSI %s - %s"
+
+#: libparted/arch/linux.c:928
+#, c-format
+msgid ""
+"The device %s has zero length, and can't possibly store a file system or "
+"partition table.  Perhaps you selected the wrong device?"
+msgstr ""
+"Il device %s ha dimensione zero e probabilmente non può contenere un file "
+"system o una tabella delle partizioni. È stato selezionato il device errato?"
+
+#: libparted/arch/linux.c:1032
+#, fuzzy, c-format
+msgid ""
+"Unable to determine geometry of file/device %s.  You should not use Parted "
+"unless you REALLY know what you're doing!"
+msgstr ""
+"Non è possibile determinare la geometria del file/device. Non si dovrebbe "
+"utilizzare parted a meno che non si sappia VERAMENTE cosa si sta facendo!"
+
+#: libparted/arch/linux.c:1110
+msgid "DAC960 RAID controller"
+msgstr "Controller RAID DAC960"
+
+#: libparted/arch/linux.c:1115
+msgid "Promise SX8 SATA Device"
+msgstr ""
+
+#: libparted/arch/linux.c:1120
+msgid "IBM S390 DASD drive"
+msgstr ""
+
+#: libparted/arch/linux.c:1125
+msgid "IBM iSeries Virtual DASD"
+msgstr ""
+
+#: libparted/arch/linux.c:1130
+msgid "Compaq Smart Array"
+msgstr "Compaq Smart Array"
+
+#: libparted/arch/linux.c:1135
+msgid "ATARAID Controller"
+msgstr "Controller ATARAID"
+
+#: libparted/arch/linux.c:1140
+msgid "I2O Controller"
+msgstr "Controller I2O"
+
+#: libparted/arch/linux.c:1145
+msgid "User-Mode Linux UBD"
+msgstr "User-Mode Linix UBD"
+
+#: libparted/arch/linux.c:1156
+msgid "Linux device-mapper"
+msgstr ""
+
+#: libparted/arch/linux.c:1162
+msgid "Unknown"
+msgstr "Sconosciuto"
+
+#: libparted/arch/linux.c:1169
+msgid "ped_device_new()  Unsupported device type"
+msgstr "ped_device_new() Tipo di device non supportato"
+
+#: libparted/arch/linux.c:2083
+#, c-format
+msgid ""
+"Error informing the kernel about modifications to partition %s -- %s.  This "
+"means Linux won't know about any changes you made to %s until you reboot -- "
+"so you shouldn't mount it or use it in any way before rebooting."
+msgstr ""
+"C'è stato un errore nell'informare il kernel delle modifiche alla partizione "
+"%s -- %s. Questo vuol dire che Linux non sarà al corrente dei cambiamenti "
+"fatti a %s fino al prossimo riavvio -- quindi non montare o usare in alcun "
+"modo la partizione fino ad allora."
+
+#: libparted/arch/linux.c:2262
+#, fuzzy, c-format
+msgid ""
+"parted was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made. "
+msgstr ""
+"Il kernel non è stato capace di rileggere la tabella delle partizioni su %s "
+"(%s). Questo vuol dire che Linux non sarà al corrente dei cambiamenti fatti "
+"fino al riavvio. Si dovrebbe riavviare il computer prima di fare qualsiasi "
+"cosa con %s."
+
+#: libparted/arch/linux.c:2368
+#, c-format
+msgid ""
+"The kernel was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made until you "
+"reboot.  You should reboot your computer before doing anything with %s."
+msgstr ""
+"Il kernel non è stato capace di rileggere la tabella delle partizioni su %s "
+"(%s). Questo vuol dire che Linux non sarà al corrente dei cambiamenti fatti "
+"fino al riavvio. Si dovrebbe riavviare il computer prima di fare qualsiasi "
+"cosa con %s."
+
+#: libparted/cs/geom.c:162
+msgid "Can't have the end before the start!"
+msgstr "Non si puè avere la fine prima dell'inizio!"
+
+#: libparted/cs/geom.c:169
+msgid "Can't have a partition outside the disk!"
+msgstr "Non si può avere una partizione al di fuori del disco!"
+
+#: libparted/cs/geom.c:366
+#, c-format
+msgid "Attempt to write sectors %ld-%ld outside of partition on %s."
+msgstr ""
+"Tentativo di scrivere i settori %ld-%ld al di fuori della partizione %s."
+
+#: libparted/cs/geom.c:406 libparted/fs/linux_swap/linux_swap.c:475
+msgid "checking for bad blocks"
+msgstr "controllo dei blocchi difettosi"
+
+#: libparted/debug.c:102
+#, c-format
+msgid "Backtrace has %d calls on stack:\n"
+msgstr ""
+
+#: libparted/debug.c:114
+#, c-format
+msgid "Assertion (%s) at %s:%d in function %s() failed."
+msgstr ""
+
+#: libparted/disk.c:203
+#, c-format
+msgid "Unable to open %s - unrecognised disk label."
+msgstr "Impossibile aprire %s - etichetta del disco sconosciuta."
+
+#: libparted/disk.c:471
+#, c-format
+msgid ""
+"This libparted doesn't have write support for %s.  Perhaps it was compiled "
+"read-only."
+msgstr ""
+"Questo libparted non supporta la scrittura per %s. Forse è stato compilato "
+"per la sola lettura."
+
+#: libparted/disk.c:598
+#, c-format
+msgid "Partition %d is %s, but the file system is %s."
+msgstr "La partizione %d è %s, ma il file system è %s."
+
+#: libparted/disk.c:1075
+#, c-format
+msgid "%s disk labels do not support extended partitions."
+msgstr "Le etichette dei dischi %s non supportano le partizioni estese."
+
+#: libparted/disk.c:1634
+#, c-format
+msgid "%s disk labels don't support logical or extended partitions."
+msgstr ""
+"le etichette dei dischi %s non supportano le partizioni estese o logiche."
+
+#: libparted/disk.c:1647
+msgid "Too many primary partitions."
+msgstr "Troppe partizioni primarie."
+
+#: libparted/disk.c:1656
+#, c-format
+msgid ""
+"Can't add a logical partition to %s, because there is no extended partition."
+msgstr ""
+"Non è possibile aggiungere una partizione logica a %s perché non ci sono "
+"partizioni estese."
+
+#: libparted/disk.c:1680
+#, c-format
+msgid "Can't have more than one extended partition on %s."
+msgstr "Non è possibile avere più di una partizione estesa su %s."
+
+#: libparted/disk.c:1690
+msgid "Can't have logical partitions outside of the extended partition."
+msgstr ""
+"Non è possibile avere partizioni logiche al di fuori della partizione estesa."
+
+#: libparted/disk.c:1715
+#, c-format
+msgid "Can't have a logical partition outside of the extended partition on %s."
+msgstr ""
+"Non è possibile avere una partizione logica esterna alla partizione estesa "
+"su %s."
+
+#: libparted/disk.c:1725 libparted/disk.c:1779 libparted/disk.c:1945
+msgid "Can't have overlapping partitions."
+msgstr "Non è possibile avere partizioni che si sovrappongono."
+
+#: libparted/disk.c:1733
+msgid "Can't have a primary partition inside an extended partition."
+msgstr ""
+"Non è possibile avere una partizione primaria all'interno di una estesa."
+
+#: libparted/disk.c:2140
+msgid "metadata"
+msgstr "metadati"
+
+#: libparted/disk.c:2142
+msgid "free"
+msgstr "libero"
+
+#: libparted/disk.c:2144 parted/ui.c:1169 parted/ui.c:1197
+msgid "extended"
+msgstr "estesa"
+
+#: libparted/disk.c:2146 parted/ui.c:1173 parted/ui.c:1201
+msgid "logical"
+msgstr "logica"
+
+#: libparted/disk.c:2148 parted/ui.c:1165 parted/ui.c:1193
+msgid "primary"
+msgstr "primaria"
+
+#: libparted/disk.c:2164
+msgid "boot"
+msgstr "avvio"
+
+#: libparted/disk.c:2166
+msgid "root"
+msgstr "root"
+
+#: libparted/disk.c:2168
+msgid "swap"
+msgstr "swap"
+
+#: libparted/disk.c:2170
+msgid "hidden"
+msgstr "nascosta"
+
+#: libparted/disk.c:2172
+msgid "raid"
+msgstr "raid"
+
+#: libparted/disk.c:2174
+msgid "lvm"
+msgstr "lvm"
+
+#: libparted/disk.c:2176
+msgid "lba"
+msgstr "lba"
+
+#: libparted/disk.c:2178
+msgid "hp-service"
+msgstr "hp-service"
+
+#: libparted/disk.c:2180
+msgid "palo"
+msgstr "palo"
+
+#: libparted/disk.c:2182
+msgid "prep"
+msgstr "prep"
+
+#: libparted/disk.c:2184
+msgid "msftres"
+msgstr "msftres"
+
+#: libparted/disk.c:2190
+#, c-format
+msgid "Unknown partition flag, %d."
+msgstr "Flag di partizione %d sconosciuto."
+
+#: libparted/exception.c:78
+msgid "Information"
+msgstr "Informazione"
+
+#: libparted/exception.c:79
+msgid "Warning"
+msgstr "Avviso"
+
+#: libparted/exception.c:80
+msgid "Error"
+msgstr "Errore"
+
+#: libparted/exception.c:81
+msgid "Fatal"
+msgstr "Irrimediabile"
+
+#: libparted/exception.c:82
+msgid "Bug"
+msgstr "Bug"
+
+#: libparted/exception.c:83
+msgid "No Implementation"
+msgstr "Non implementato"
+
+#: libparted/exception.c:87
+msgid "Fix"
+msgstr "Fix"
+
+#: libparted/exception.c:88
+msgid "Yes"
+msgstr "Sì"
+
+#: libparted/exception.c:89
+msgid "No"
+msgstr "No"
+
+#: libparted/exception.c:90
+msgid "OK"
+msgstr "OK"
+
+#: libparted/exception.c:91
+msgid "Retry"
+msgstr "Riprova"
+
+#: libparted/exception.c:92
+msgid "Ignore"
+msgstr "Ignora"
+
+#: libparted/exception.c:93
+msgid "Cancel"
+msgstr "Annulla"
+
+#: libparted/exception.c:133
+#, c-format
+msgid ""
+"A bug has been detected in GNU Parted.  Refer to the web site of parted "
+"http://www.gnu.org/software/parted/parted.html for more informations of what "
+"could be useful for bug submitting!  Please email a bug report to bug-"
+"parted@gnu.org containing at least the version (%s) and the following "
+"message:  "
+msgstr ""
+"È stato trovato un bug di GNU parted. Controllare il sito web di parted "
+"http://www.gnu.org/software/parted/parted.html per maggiori informazioni su "
+"cosa è utile comunicare nelle segnalazioni. Si segnali un bug a bug-"
+"parted@gnu.org specificando la versione (%s) e il seguente messaggio: "
+
+#: libparted/filesys.c:384
+msgid "Could not detect file system."
+msgstr "Non è stato possibile rilevare il file system."
+
+#: libparted/filesys.c:395
+msgid "The file system is bigger than its volume!"
+msgstr "Il file system è più ampio del proprio volume!"
+
+#: libparted/filesys.c:403
+#, c-format
+msgid "Support for opening %s file systems is not implemented yet."
+msgstr ""
+"Il supporto per aprire un file system %s non è ancora stato implementato."
+
+#: libparted/filesys.c:445
+#, c-format
+msgid "Support for creating %s file systems is not implemented yet."
+msgstr ""
+"Il supporto per creare il file system %s non è ancora stato implementato."
+
+#: libparted/filesys.c:505
+#, c-format
+msgid "Support for checking %s file systems is not implemented yet."
+msgstr ""
+"Il supporto per controllare il file system %s non è ancora stato "
+"implementato."
+
+#: libparted/filesys.c:571
+msgid "raw block copying"
+msgstr "copia dei blocchi"
+
+#: libparted/filesys.c:582
+msgid "growing file system"
+msgstr "aumento del file system"
+
+#: libparted/filesys.c:622
+msgid "Can't copy onto an overlapping partition."
+msgstr "Non è possibile copiare su una partizione sovrapposta."
+
+#: libparted/filesys.c:644
+#, c-format
+msgid ""
+"Direct support for copying file systems is not yet implemented for %s.  "
+"However, support for resizing is implemented.  Therefore, the file system "
+"can be copied if the new partition is at least as big as the old one.  So, "
+"either shrink the partition you are trying to copy, or copy to a bigger "
+"partition."
+msgstr ""
+"Il supporto per copiare file system %s non è ancora implementato, ma è "
+"presente quello per ridimensionarlo. Quindi il file system è copiabile se la "
+"partizione di destinazione è grande almeno quanto quella di origine. Quindi "
+"si può rimpicciolire la partizione di partenza oppure copiare in una più "
+"grande."
+
+#: libparted/filesys.c:658
+#, c-format
+msgid "Support for copying %s file systems is not implemented yet."
+msgstr ""
+"Il supporto per copiare file system %s non è ancora stato implementato."
+
+#: libparted/filesys.c:696
+#, c-format
+msgid "Support for resizing %s file systems is not implemented yet."
+msgstr ""
+"Il supporto per ridimensionare il file system %s non è stato ancora "
+"implementato."
+
+#: libparted/fs/reiserfs/reiserfs.c:315
+msgid "creating"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:402
+#, fuzzy
+msgid "The file system is in an invalid state.  Perhaps it is mounted?"
+msgstr "Il file system è più ampio del proprio volume!"
+
+#: libparted/fs/reiserfs/reiserfs.c:410
+msgid "The file system is in old (unresizeable) format."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:416
+msgid "Invalid free blocks count.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:431
+#, fuzzy
+msgid "checking"
+msgstr "controllo"
+
+#: libparted/fs/reiserfs/reiserfs.c:437
+msgid "Reiserfs tree seems to be corrupted.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:449
+#, fuzzy
+msgid ""
+"The reiserfs file system passed a basic check.  For a more comprehensive "
+"check, run reiserfsck --check."
+msgstr ""
+"Il file system ext2 ha passato i controlli di base. Per un controllo più "
+"approfondito utilizzare il programma e2fsck."
+
+#: libparted/fs/reiserfs/reiserfs.c:474
+#, fuzzy
+msgid "Sorry, can't move the start of reiserfs partitions yet."
+msgstr ""
+"Spiacente, ma non è ancora possibile spostare l'inizio di una partizione "
+"ext2!"
+
+#: libparted/fs/reiserfs/reiserfs.c:490
+msgid "Couldn't reopen device abstraction layer for read/write."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:508 libparted/fs/ext2/ext2_resize.c:552
+#: libparted/fs/hfs/hfs.c:250 libparted/fs/hfs/hfs.c:629
+msgid "shrinking"
+msgstr "riduzione"
+
+#: libparted/fs/reiserfs/reiserfs.c:520
+#, fuzzy
+msgid "expanding"
+msgstr "Avviso"
+
+#: libparted/fs/reiserfs/reiserfs.c:592
+msgid "Couldn't create reiserfs device abstraction handler."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:606
+#, fuzzy, c-format
+msgid "Device is too small for %lu blocks."
+msgstr "File system troppo picolo per ext2."
+
+#: libparted/fs/reiserfs/reiserfs.c:615
+msgid "copying"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:682
+#, c-format
+msgid "Couldn't resolve symbol %s.  Error: %s."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:704
+msgid "GNU Parted found an invalid libreiserfs library."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:715
+#, c-format
+msgid ""
+"GNU Parted has detected libreiserfs interface version mismatch.  Found %d-%"
+"d, required %d. ReiserFS support will be disabled."
+msgstr ""
+
+#: libparted/labels/aix.c:137
+#, fuzzy
+msgid "Support for reading AIX disk labels is is not implemented yet."
+msgstr ""
+"Il supporto per creare il file system %s non è ancora stato implementato."
+
+#: libparted/labels/aix.c:148
+#, fuzzy
+msgid "Support for writing AIX disk labels is is not implemented yet."
+msgstr ""
+"Il supporto per creare il file system %s non è ancora stato implementato."
+
+#: libparted/labels/aix.c:161
+#, fuzzy
+msgid ""
+"Support for adding partitions to AIX disk labels is not implemented yet."
+msgstr ""
+"Il supporto per creare il file system %s non è ancora stato implementato."
+
+#: libparted/labels/aix.c:171
+#, fuzzy
+msgid ""
+"Support for duplicating partitions in AIX disk labels is not implemented yet."
+msgstr ""
+"Il supporto per creare il file system %s non è ancora stato implementato."
+
+#: libparted/labels/aix.c:189
+#, fuzzy
+msgid ""
+"Support for setting system type of partitions in AIX disk labels is not "
+"implemented yet."
+msgstr ""
+"Il supporto per creare il file system %s non è ancora stato implementato."
+
+#: libparted/labels/aix.c:199
+#, fuzzy
+msgid "Support for setting flags in AIX disk labels is not implemented yet."
+msgstr ""
+"Il supporto per creare il file system %s non è ancora stato implementato."
+
+#: libparted/labels/bsd.c:501 libparted/labels/dasd.c:755
+#: libparted/labels/dos.c:1974 libparted/labels/dvh.c:770
+#: libparted/labels/gpt.c:1448 libparted/labels/loop.c:248
+#: libparted/labels/mac.c:1408 libparted/labels/pc98.c:759
+#: libparted/labels/rdb.c:1041 libparted/labels/sun.c:705
+msgid "Unable to satisfy all constraints on the partition."
+msgstr "Impossibile soddisfare tutti i vincoli sulla partizione."
+
+#: libparted/labels/bsd.c:526
+msgid "Unable to allocate a bsd disklabel slot."
+msgstr "Impossibile allocare uno spazio dell'etichetta bsd."
+
+#: libparted/labels/dasd.c:166
+#, fuzzy
+msgid "Unable to determine the block size of this dasd"
+msgstr "Impossibile determinare la dimensione di %s (%s)."
+
+#: libparted/labels/dasd.c:781
+#, fuzzy
+msgid "Unable to allocate a dasd disklabel slot"
+msgstr "Impossibile allocare uno spazio dell'etichetta bsd."
+
+#: libparted/labels/dos.c:827
+#, c-format
+msgid "Invalid partition table on %s -- wrong signature %x."
+msgstr "Tabella delle partizioni non valida su %s -- firma %x errata."
+
+#: libparted/labels/dos.c:855
+#, c-format
+msgid "Invalid partition table - recursive partition on %s."
+msgstr "Tabella della partizioni non valida - partizione ricorsiva su %s."
+
+#: libparted/labels/dos.c:1318
+msgid "Extended partitions cannot be hidden on msdos disk labels."
+msgstr "Le partizioni estese non possono essere nascoste su etichette msdos."
+
+#: libparted/labels/dos.c:1958
+msgid "Parted can't resize partitions managed by Windows Dynamic Disk."
+msgstr ""
+"Parted non può ridimensionare partizioni gestite da Windows Dynamic Disk."
+
+#: libparted/labels/dvh.c:190
+#, c-format
+msgid "%s has no extended partition (volume header partition)."
+msgstr "%s non ha partizioni estese (volume header partition)."
+
+#: libparted/labels/dvh.c:313
+msgid "Checksum is wrong, indicating the partition table is corrupt."
+msgstr ""
+"La somma di controllo è sbagliata; vale a dire che la tabella delle "
+"partizioni è corrotta."
+
+#: libparted/labels/dvh.c:616
+msgid "Only primary partitions can be root partitions."
+msgstr "Solo le partizioni primarie possono essere partizioni di root."
+
+#: libparted/labels/dvh.c:630
+msgid "Only primary partitions can be swap partitions."
+msgstr "Solo le partizioni primarie possono essere di swap."
+
+#: libparted/labels/dvh.c:644
+msgid "Only logical partitions can be a boot file."
+msgstr "Solo le partizioni logiche possono essere file di avvio."
+
+#: libparted/labels/dvh.c:721
+msgid "Only logical partitions (boot files) have a name."
+msgstr "Solo le partizioni logiche (file di avvio) hanno un nome."
+
+#: libparted/labels/dvh.c:812
+msgid "Too many primary partitions"
+msgstr "Troppe partizioni primarie"
+
+#: libparted/labels/fdasd.c:103
+#, c-format
+msgid ""
+"%s open error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:107
+#, c-format
+msgid ""
+"%s seek error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:110
+#, c-format
+msgid ""
+"%s read error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:113
+#, fuzzy, c-format
+msgid ""
+"%s write error\n"
+"%s\n"
+msgstr "%s durante la scrittura su %s"
+
+#: libparted/labels/fdasd.c:116
+#, c-format
+msgid ""
+"%s IOCTL error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:119
+#, c-format
+msgid ""
+"%s API version mismatch\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:122
+#, c-format
+msgid ""
+"%s Unsupported disk type\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:126
+#, c-format
+msgid ""
+"%s Unsupported disk format\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:130
+#, fuzzy, c-format
+msgid ""
+"%s Disk in use\n"
+"%s\n"
+msgstr "Disco %s: %s\n"
+
+#: libparted/labels/fdasd.c:133
+#, c-format
+msgid ""
+"%s Config file syntax error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:137
+#, c-format
+msgid ""
+"%s Volume label is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:141
+#, c-format
+msgid ""
+"%s a data set name is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:145
+#, c-format
+msgid ""
+"%s space allocation\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:149
+#, c-format
+msgid ""
+"%s device verification failed\n"
+"The specified device is not a valid DASD device\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:154
+#, c-format
+msgid ""
+"%s Fatal error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/gpt.c:454
+#, c-format
+msgid ""
+"%s contains GPT signatures, indicating that it has a GPT table.  However, it "
+"does not have a valid fake msdos partition table, as it should.  Perhaps it "
+"was corrupted -- possibly by a program that doesn't understand GPT partition "
+"tables.  Or perhaps you deleted the GPT table, and are now using an msdos "
+"partition table.  Is this a GPT partition table?"
+msgstr ""
+"%s contiene delle firme GPT, indicando che è una tabella GPT. Ciononostante "
+"non ha una finta tabella delle partizioni valida per msdos, come dovrebbe. "
+"Forse è stata corrotta, magari da un programma che non comprende le tabelle "
+"delle partizioni GPT, oppure è stata cancellata la tabella GPT e ora si sta "
+"usando quella msdos. Questa è una tabella di partizioni GPT?"
+
+#: libparted/labels/gpt.c:648
+#, c-format
+msgid ""
+"The format of the GPT partition table is version %x, which is newer than "
+"what Parted can recognise.  Please tell us!  bug-parted@gnu.org"
+msgstr ""
+"Il formato della tabella di partizioni GPT ha versione %x, che è successiva "
+"a quelle conosciute da parted. Per favore avvisateci! bug-parted@gnu.org"
+
+#: libparted/labels/gpt.c:698
+#, c-format
+msgid ""
+"Not all of the space available to %s appears to be used, you can fix the GPT "
+"to use all of the space (an extra %llu blocks) or continue with the current "
+"setting? "
+msgstr ""
+
+#: libparted/labels/gpt.c:827
+msgid ""
+"The backup GPT table is not at the end of the disk, as it should be.  This "
+"might mean that another operating system believes the disk is smaller.  Fix, "
+"by moving the backup to the end (and removing the old backup)?"
+msgstr ""
+"La copia di scorta della tabella GPT non è presente, come dovrebbe, alla "
+"fine del disco. Questo potrebbe voler dire che un altro sistema operativo "
+"pensa che il disco sia più piccolo. Correggere il problema spostando la "
+"copia alla fine (e rimuovendo la vecchia copia)?"
+
+#: libparted/labels/gpt.c:862
+msgid ""
+"The primary GPT table is corrupt, but the backup appears OK, so that will be "
+"used."
+msgstr ""
+"La tabella GPT principale è corrotta, ma la copia di backup sembra a posto, "
+"quindi la seconda verrà utilizzata."
+
+#: libparted/labels/gpt.c:870
+msgid ""
+"Both the primary and backup GPT tables are corrupt.  Try making a fresh "
+"table, and using Parted's rescue feature to recover partitions."
+msgstr ""
+"Sia la tabella GPT principale che la copia sono corrotte. Provare a crearne "
+"una nuova e, tramite le potenzialità di recupero di parted, recuperare le "
+"partizioni."
+
+#: libparted/labels/mac.c:181
+#, c-format
+msgid "Invalid signature %x for Mac disk labels."
+msgstr "Firma %x non valida per le etichette dei dischi Mac."
+
+#: libparted/labels/mac.c:226
+msgid "Partition map has no partition map entry!"
+msgstr "La mappa delle partizioni non ha elementi."
+
+#: libparted/labels/mac.c:273
+#, c-format
+msgid "%s is too small for a Mac disk label!"
+msgstr "%s è troppo piccolo per una etichetta di disco Mac!"
+
+#: libparted/labels/mac.c:532
+#, c-format
+msgid "Partition %d has an invalid signature %x."
+msgstr "La partizione %d ha una firma non valida %x."
+
+#: libparted/labels/mac.c:550
+#, c-format
+msgid "Partition %d has an invalid length of 0 bytes!"
+msgstr "La partizione %d ha una lunghezza non valida di 0 byte!"
+
+#: libparted/labels/mac.c:580
+msgid "The data region doesn't start at the start of the partition."
+msgstr "La regione dei dati non comincia all'inizio della partizione."
+
+#: libparted/labels/mac.c:597
+msgid "The boot region doesn't start at the start of the partition."
+msgstr "La regione di avvio non comincia all'inizio della partizione."
+
+#: libparted/labels/mac.c:611
+msgid "The partition's boot region doesn't occupy the entire partition."
+msgstr "La regione di avvio della partizione non occupa l'intera partizione."
+
+#: libparted/labels/mac.c:622
+msgid "The partition's data region doesn't occupy the entire partition."
+msgstr "La regione dati della partizione non occupa l'intera partizione."
+
+#: libparted/labels/mac.c:675
+#, c-format
+msgid ""
+"Weird block size on device descriptor: %d bytes is not divisible by 512."
+msgstr ""
+"Dimensione sospetta del blocco nel descrittore del device: %d byte non è "
+"divisibile per 512."
+
+#: libparted/labels/mac.c:688
+#, c-format
+msgid ""
+"The driver descriptor says the physical block size is %d bytes, but Linux "
+"says it is %d bytes."
+msgstr ""
+"Il descrittore del driver indica che la dimensione del blocco fisico è di %d "
+"byte, ma Linux lo indica di %d byte."
+
+#: libparted/labels/mac.c:736
+msgid "No valid partition map found."
+msgstr "Non è stata trovata alcuna mappa delle partizioni valida."
+
+#: libparted/labels/mac.c:795
+#, c-format
+msgid ""
+"Conflicting partition map entry sizes!  Entry 1 says it is %d, but entry %d "
+"says it is %d!"
+msgstr ""
+"Due elementi della mappa delle partizioni hanno dimensione diversa! "
+"L'elemento 1 dice %d, mentre l'elemento %d dice %d!"
+
+#: libparted/labels/mac.c:822
+msgid "Weird!  There are 2 partitions map entries!"
+msgstr "Strano, ci sono 2 mappa delle partizioni."
+
+#: libparted/labels/mac.c:1347
+msgid ""
+"Changing the name of a root or swap partition will prevent Linux from "
+"recognising it as such."
+msgstr ""
+"Cambiare il nome di una partizione di root o swap non permetterà a Linux di "
+"riconoscerle come tali."
+
+#: libparted/labels/mac.c:1443
+msgid "Can't add another partition -- the partition map is too small!"
+msgstr ""
+"Non è possibile aggiungere un'altra partizione: la mappa delle partizioni è "
+"troppo piccola!"
+
+#: libparted/labels/pc98.c:354
+#, c-format
+msgid "Invalid partition table on %s."
+msgstr "Tabella delle partizioni non valida su %s."
+
+#: libparted/labels/pc98.c:406 libparted/labels/pc98.c:484
+#, c-format
+msgid ""
+"Partition %d isn't aligned to cylinder boundaries.  This is still "
+"unsupported."
+msgstr ""
+"La partizione %d non è allineata con l'inizio di un cilindro. Il supporto "
+"per questa casistica non è ancora presente."
+
+#: libparted/labels/pc98.c:791
+msgid "Can't add another partition."
+msgstr "Non è possibile aggiungere un'altra partizione."
+
+#: libparted/labels/rdb.c:162
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s."
+msgstr "%s: Somma di controllo errata sul blocco %llu di tipo %s."
+
+#: libparted/labels/rdb.c:497
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen."
+msgstr "%s: Non è stato trovato il blocco «rdb», non deve mai succedere."
+
+#: libparted/labels/rdb.c:581
+#, c-format
+msgid "%s : Loop detected at block %d."
+msgstr "%s: Rilevata iterazione al blocco %d."
+
+#: libparted/labels/rdb.c:600
+#, c-format
+msgid "%s : The %s list seems bad at block %s."
+msgstr "%s: La lista %s sembra corrotta al blocco %s."
+
+#: libparted/labels/rdb.c:689
+#, c-format
+msgid "%s : Failed to list bad blocks."
+msgstr "%s: Errore nell'elencare i blocchi corrotti."
+
+#: libparted/labels/rdb.c:697
+#, c-format
+msgid "%s : Failed to list partition blocks."
+msgstr "%s: Errore nell'elencare i blocchi della partizione."
+
+#: libparted/labels/rdb.c:705
+#, c-format
+msgid "%s : Failed to list file system blocks."
+msgstr "%s: Errore nell'elencare i blocchi del file system."
+
+#: libparted/labels/rdb.c:713
+#, c-format
+msgid "%s : Failed to list boot blocks."
+msgstr "%s: Errore nell'elencare i blocchi di avvio (di boot)."
+
+#: libparted/labels/rdb.c:740
+#, c-format
+msgid "Failed to write partition block at %d."
+msgstr "Errore nella scrittura dei blocchi di partizione nella posizione %d."
+
+#: libparted/labels/rdb.c:1069
+msgid "Unable to allocate a partition number."
+msgstr "Impossibile allocare un numero di partizione."
+
+#: libparted/labels/sun.c:145
+msgid "Corrupted Sun disk label detected."
+msgstr "È stata trovata l'etichetta Sun corrotta."
+
+#: libparted/labels/sun.c:266
+#, c-format
+msgid ""
+"The disk CHS geometry (%d,%d,%d) reported by the operating system does not "
+"match the geometry stored on the disk label (%d,%d,%d)."
+msgstr ""
+"La geometria CHS (%d,%d,%d) del disco non corrisponde a quella riportata "
+"nell'etichetta (%d,%d,%d)."
+
+#: libparted/labels/sun.c:288
+#, c-format
+msgid "The disk label describes a disk bigger than %s."
+msgstr "L'etichetta del disco descrive un disco più grande di %s."
+
+#: libparted/labels/sun.c:442
+#, c-format
+msgid "The disk has %d cylinders, which is greater than the maximum of 65536."
+msgstr "Il disco ha %d cilindri, maggiori del massimo consentito che è 65536."
+
+#: libparted/labels/sun.c:737
+msgid ""
+"The Whole Disk partition is the only available one left.  Generally, it is "
+"not a good idea to overwrite this partition with a real one.  Solaris may "
+"not be able to boot without it, and SILO (the sparc boot loader) appreciates "
+"it as well."
+msgstr ""
+"La partizione \"Tutto il disco\" è l'unica rimasta disponibile. Normalmente "
+"non è una buona idea sovrascriverla con una partizione reale. Solaris "
+"potrebbe non essere in grado di avviarsi; inoltre anche SILO (il «boot "
+"loader» per sparc) ne fa uso."
+
+#: libparted/labels/sun.c:752
+msgid "Sun disk label is full."
+msgstr "L'etichetta Sun è completa."
+
+#: libparted/labels/vtoc.c:163
+#, c-format
+msgid ""
+"%s opening device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:167
+#, c-format
+msgid ""
+"%s seeking device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:171
+#, c-format
+msgid ""
+"%s writing to device '%s' failed,\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:175
+#, c-format
+msgid ""
+"%s reading from device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:179
+#, c-format
+msgid "Fatal error\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:418
+msgid "Could not read VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:424
+msgid "Could not read VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:431
+msgid "Could not read VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:438
+msgid "Could not read VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:445
+msgid "Could not read VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:462
+msgid "Could not write VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:468
+msgid "Could not write VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:475
+msgid "Could not write VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:482
+msgid "Could not write VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:489
+msgid "Could not write VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/libparted.c:296 libparted/libparted.c:316
+msgid "Out of memory."
+msgstr "Memoria non sufficiente."
+
+#: libparted/unit.c:139
+msgid "Cannot get unit size for special unit 'COMPACT'."
+msgstr "È impossibile conoscere la dimensione dell'unità speciale 'COMPACT'"
+
+#: libparted/unit.c:386
+#, c-format
+msgid "\"%s\" has invalid syntax for locations."
+msgstr "\"%s\" usa una sintassi errata per la locazione."
+
+#: libparted/unit.c:394
+#, c-format
+msgid "The maximum head value is %d."
+msgstr "Il massimo valore per la testina è %d."
+
+#: libparted/unit.c:401
+#, c-format
+msgid "The maximum sector value is %d."
+msgstr "Il massimo valore del settore è %d."
+
+#: libparted/unit.c:413 libparted/unit.c:545
+#, c-format
+msgid "The location %s is outside of the device %s."
+msgstr "La locazione %s è esterna al device %s."
+
+#: libparted/unit.c:527
+msgid "Invalid number."
+msgstr "Numero non valido."
+
+#: libparted/fs/amiga/affs.c:63 libparted/fs/amiga/apfs.c:56
+#: libparted/fs/amiga/asfs.c:70
+#, fuzzy, c-format
+msgid "%s : Failed to allocate partition block\n"
+msgstr "%s: Errore nell'elencare i blocchi della partizione."
+
+#: libparted/fs/amiga/affs.c:78 libparted/fs/amiga/apfs.c:70
+#: libparted/fs/amiga/asfs.c:86
+#, fuzzy, c-format
+msgid "%s : Failed to allocate block\n"
+msgstr "%s: Errore nell'elencare i blocchi di avvio (di boot)."
+
+#: libparted/fs/amiga/affs.c:83 libparted/fs/amiga/apfs.c:75
+#, fuzzy, c-format
+msgid "%s : Couldn't read boot block %llu\n"
+msgstr "%s: Rilevata iterazione al blocco %d."
+
+#: libparted/fs/amiga/affs.c:99 libparted/fs/amiga/apfs.c:86
+#: libparted/fs/amiga/asfs.c:92 libparted/fs/amiga/asfs.c:106
+#, fuzzy, c-format
+msgid "%s : Couldn't read root block %llu\n"
+msgstr "%s: Rilevata iterazione al blocco %d."
+
+#: libparted/fs/amiga/amiga.c:72
+#, fuzzy, c-format
+msgid "%s : Failed to allocate id list element\n"
+msgstr "%s: Errore nell'elencare i blocchi corrotti."
+
+#: libparted/fs/amiga/amiga.c:189
+#, c-format
+msgid "%s : Couldn't read block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:202
+#, fuzzy, c-format
+msgid "%s : Bad checksum on block %llu of type %s\n"
+msgstr "%s: Somma di controllo errata sul blocco %llu di tipo %s."
+
+#: libparted/fs/amiga/amiga.c:212
+#, fuzzy, c-format
+msgid "%s : Couldn't write block %d\n"
+msgstr "%s: Rilevata iterazione al blocco %d."
+
+#: libparted/fs/amiga/amiga.c:278
+#, fuzzy, c-format
+msgid "%s : Failed to allocate disk_specific rdb block\n"
+msgstr "%s: Errore nell'elencare i blocchi corrotti."
+
+#: libparted/fs/amiga/amiga.c:289
+#, fuzzy, c-format
+msgid "%s : Didn't find rdb block, should never happen\n"
+msgstr "%s: Non è stato trovato il blocco «rdb», non deve mai succedere."
+
+#: libparted/fs/amiga/amiga.c:318
+#, fuzzy, c-format
+msgid "%s : Failed to read partition block %llu\n"
+msgstr "%s: Errore nell'elencare i blocchi della partizione."
+
+#: libparted/fs/ext2/ext2.c:87 libparted/fs/ext2/ext2.c:112
+msgid "Inconsistent group descriptors!"
+msgstr "Descrittori di gruppo inconsistenti!"
+
+#: libparted/fs/ext2/ext2.c:91 libparted/fs/ext2/ext2.c:116
+msgid "File system full!"
+msgstr "File system pieno!"
+
+#: libparted/fs/ext2/ext2.c:686
+msgid "Invalid superblock.  Are you sure this is an ext2 file system?"
+msgstr "Superblocco non valido. Si è certi che sia un file system ext2?"
+
+#: libparted/fs/ext2/ext2.c:700 libparted/fs/ext2/ext2_resize.c:658
+msgid "File system has errors!  You should run e2fsck."
+msgstr "Il file system contiene errori! Eseguire e2fsck."
+
+#: libparted/fs/ext2/ext2.c:711
+msgid ""
+"File system was not cleanly unmounted!  You should run e2fsck.  Modifying an "
+"unclean file system could cause severe corruption."
+msgstr ""
+"Il file system non è stato smontato correttamente! Eseguire e2fsck. "
+"Modificare un file system non consistente può causare seri problemi."
+
+#: libparted/fs/ext2/ext2.c:731
+msgid "File system has an incompatible feature enabled."
+msgstr "Il file system ha abilitata una proprietà incompatibile."
+
+#: libparted/fs/ext2/ext2.c:742
+msgid "Error allocating buffer cache."
+msgstr "Errore allocando la cache dei buffer."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:114
+msgid ""
+"Found an inode with a incorrect link count.  Better go run e2fsck first!"
+msgstr ""
+"Trovato un inode con un contatore di link non corretto. È meglio eseguire "
+"e2fsck prima!"
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:487
+msgid "Not enough free inodes!"
+msgstr "Non ci sono abbastanza inode liberi!"
+
+#: libparted/fs/ext2/ext2_resize.c:223
+msgid "File system is too full to remove a group!"
+msgstr "Il file system è troppo pieno per rimuovere un gruppo!"
+
+#: libparted/fs/ext2/ext2_resize.c:232
+msgid "File system has too many allocated inodes to remove a group!"
+msgstr "Il file system ha troppi inode allocati per rimuove un gruppo!"
+
+#: libparted/fs/ext2/ext2_resize.c:491
+msgid "adding groups"
+msgstr "aggiunta di gruppi"
+
+#: libparted/fs/ext2/ext2_resize.c:528
+#, c-format
+msgid "Your file system is too full to resize it to %i blocks.  Sorry."
+msgstr ""
+"Il file system contiene troppi dati perché sia ridotto a %i blocchi. "
+"Spiacente."
+
+#: libparted/fs/ext2/ext2_resize.c:538
+#, c-format
+msgid ""
+"Your file system has too many occupied inodes to resize it to %i blocks.  "
+"Sorry."
+msgstr ""
+"Il file system ha troppi inode occupati perché sia ridotto a %i blocchi. "
+"Spiacente."
+
+#: libparted/fs/ext2/ext2_resize.c:666
+msgid "File system was not cleanly unmounted!  You should run e2fsck."
+msgstr "Il file system non è stato smontato correttamente. Eseguire e2fsck."
+
+#: libparted/fs/ext2/ext2_resize.c:675
+msgid ""
+"The file system has the 'dir_index' feature enabled.  Parted can only resize "
+"the file system if it disables this feature.  You can enable it later by "
+"running 'tune2fs -O dir_index DEVICE' and then 'e2fsck -fD DEVICE'."
+msgstr ""
+"Il file system ha la \"feature\" «dir_index» attiva. Parted può "
+"ridimensionare solo file system disattivando questa \"feature\". Sarà "
+"possibile riattivarla successivamente eseguendo «tune2fs -O dir_index "
+"DEVICE» e poi «e2fsck -fD DEVICE»."
+
+#: libparted/fs/ext2/ext2_resize.c:691
+#, fuzzy
+msgid ""
+"A resize operation on this file system will use EXPERIMENTAL code\n"
+"that MAY CORRUPT it (although no one has reported any such damage yet).\n"
+"You should at least backup your data first, and run 'e2fsck -f' afterwards."
+msgstr ""
+"Un'operazione di ridimensionamento di questo file system utilizzerà un "
+"codice SPERIMENTALE per POTREBBE CORROMPERLO (anche se finora non è mai "
+"successo.) È quindi consigliato di fare un backup dei dati e eseguire subito "
+"dopo \"e2fsck -f\"."
+
+#: libparted/fs/ext2/ext2_block_relocator.c:198
+msgid "Cross-linked blocks found!  Better go run e2fsck first!"
+msgstr ""
+"Sono stati trovati dei blocchi collegati in maniera incrociata! Meglio "
+"eseguire e2fsck!"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:537
+#, c-format
+msgid "Block %i has no reference?  Weird."
+msgstr "Il blocco %i non è referenziato? Strano"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:737
+#, fuzzy, c-format
+msgid "Block %i shouldn't have been marked (%d, %d)!"
+msgstr "Il blocco %i non avrebbe dovuto essere marcato!"
+
+#: libparted/fs/ext2/interface.c:186
+msgid ""
+"The ext2 file system passed a basic check.  For a more comprehensive check, "
+"use the e2fsck program."
+msgstr ""
+"Il file system ext2 ha passato i controlli di base. Per un controllo più "
+"approfondito utilizzare il programma e2fsck."
+
+#: libparted/fs/ext2/interface.c:203
+msgid "Sorry, can't move the start of ext2 partitions yet!"
+msgstr ""
+"Spiacente, ma non è ancora possibile spostare l'inizio di una partizione "
+"ext2!"
+
+#: libparted/fs/ext2/ext2_buffer.c:82
+msgid "Couldn't flush buffer cache!"
+msgstr "Non posso svuotare la cache dei buffer!"
+
+#: libparted/fs/ext2/ext2_mkfs.c:162
+msgid "writing per-group metadata"
+msgstr "scrittura dei metadati per ogni gruppo"
+
+#: libparted/fs/ext2/ext2_mkfs.c:564
+msgid "File system too small for ext2."
+msgstr "File system troppo picolo per ext2."
+
+#: libparted/fs/fat/calc.c:135
+#, c-format
+msgid ""
+"You need %s of free disk space to shrink this partition to this size.  "
+"Currently, only %s is free."
+msgstr ""
+"Servono %s di spazio libero per ridurre la partizione a questa dimensione. "
+"Attualmente soltanto %s è libero."
+
+#: libparted/fs/fat/context.c:56
+#, c-format
+msgid ""
+"Cluster start delta = %d, which is not a multiple of the cluster size %d."
+msgstr ""
+"Lo spostamento del primo blocco del cluster è %d che non è un multiplo della "
+"dimensione del cluster %d."
+
+#: libparted/fs/fat/fat.c:308
+#, c-format
+msgid "Partition too big/small for a %s file system."
+msgstr "Partizione troppo grande/piccola per il file system %s."
+
+#: libparted/fs/fat/fat.c:474
+msgid ""
+"The FATs don't match.  If you don't know what this means, then select "
+"cancel, run scandisk on the file system, and then come back."
+msgstr ""
+"Le FAT non coincidono. Se non si sa cosa questo voglia dire selezionare "
+"\"annulla\" e poi eseguire «scandisk» sul file system; infine si proceda."
+
+#: libparted/fs/fat/fat.c:514
+msgid "There are no possible configurations for this FAT type."
+msgstr "Non ci sono configurazioni possibili per questo tipo di FAT."
+
+#: libparted/fs/fat/fat.c:526
+#, c-format
+msgid ""
+"File system doesn't have expected sizes for Windows to like it.  Cluster "
+"size is %dk (%dk expected); number of clusters is %d (%d expected); size of "
+"FATs is %d sectors (%d expected)."
+msgstr ""
+"Il file system non ha una serie di dimensioni attese da Windows. La "
+"dimensione del cluster è %dk (%dk attesa); il numero di cluster è %d (%d "
+"atteso); la dimensione delle FAT è %d settori (%d attesi)."
+
+#: libparted/fs/fat/fat.c:549
+#, c-format
+msgid ""
+"File system is reporting the free space as %d clusters, not %d clusters."
+msgstr "Il file system riporta uno spazio libero di %d cluster anziché %d."
+
+#: libparted/fs/fat/fat.c:874
+msgid ""
+"GNU Parted was miscompiled: the FAT boot sector should be 512 bytes.  FAT "
+"support will be disabled."
+msgstr ""
+"GNU parted non è stato compilato correttamente: il settore di avvio dovrebbe "
+"essere di 512 byte. Il supporto per FAT verrà diabilitato."
+
+#: libparted/fs/fat/resize.c:159
+msgid ""
+"There's not enough room in the root directory for all of the files.  Either "
+"cancel, or ignore to lose the files."
+msgstr ""
+"Non c'è sufficiente spazio nella directory principale per tutti i file. "
+"Scegliere Annulla, o Ignora per perdere i file."
+
+#: libparted/fs/fat/resize.c:300
+msgid "Error writing to the root directory."
+msgstr "Errore scrivendo nella directory principale."
+
+#: libparted/fs/fat/resize.c:489
+msgid "If you leave your file system as FAT16, then you will have no problems."
+msgstr "Lasciare il file system come FAT16 non causerà alcun problema."
+
+#: libparted/fs/fat/resize.c:492
+msgid ""
+"If you convert to FAT16, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual)."
+msgstr ""
+"Convertire a FAT16 una partizione che contiene MS Windows, richiede che il "
+"«boot loader» di Windows sia reinstallato. Se lo si vuol fare, consultare il "
+"manuale di Parted (o della propria distribuzione.)"
+
+#: libparted/fs/fat/resize.c:500
+msgid ""
+"If you leave your file system as FAT32, then you will not introduce any new "
+"problems."
+msgstr "Lasciare il file system come FAT32 non introdurrà alcun problema."
+
+#: libparted/fs/fat/resize.c:504
+msgid ""
+"If you convert to FAT32, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual).  Also, "
+"converting to FAT32 will make the file system unreadable by MS DOS, MS "
+"Windows 95a, and MS Windows NT."
+msgstr ""
+"Convertire a FAT32 una partizione che contiene MS Windows, richiede la "
+"reinstallazione del «boot loader». Se lo si vuol fare è possibile consultare "
+"il manuale Parted (o della propria distribuzione). Inoltre, la conversione a "
+"FAT32, renderà il file system illegibile a MS DOS, MS Windows 95a e MS "
+"Windows NT."
+
+#: libparted/fs/fat/resize.c:518
+#, c-format
+msgid "%s  %s  %s"
+msgstr "%s  %s  %s"
+
+#: libparted/fs/fat/resize.c:519
+msgid "Would you like to use FAT32?"
+msgstr "Usare FAT32?"
+
+#: libparted/fs/fat/resize.c:550 libparted/fs/fat/resize.c:566
+#, c-format
+msgid "%s  %s"
+msgstr "%s  %s"
+
+#: libparted/fs/fat/resize.c:551
+msgid ""
+"The file system can only be resized to this size by converting to FAT16."
+msgstr ""
+"Il file system può solo essere portato a questa dimensione durante la "
+"conversione a FAT16."
+
+#: libparted/fs/fat/resize.c:567
+msgid ""
+"The file system can only be resized to this size by converting to FAT32."
+msgstr ""
+"Il file system può solo essere portato a questa dimensione durante la "
+"conversione a FAT32."
+
+#: libparted/fs/fat/resize.c:580
+msgid ""
+"GNU Parted cannot resize this partition to this size.  We're working on it!"
+msgstr ""
+"GNU Parted non può ridimensionare questa partizione a questa dimensione. Ci "
+"stiamo lavorando!"
+
+#: libparted/fs/fat/bootsector.c:49 libparted/fs/fat/bootsector.c:56
+msgid "File system has an invalid signature for a FAT file system."
+msgstr "Il file system ha una firma non valida per un file system FAT."
+
+#: libparted/fs/fat/bootsector.c:64
+msgid "File system has an invalid sector size for a FAT file system."
+msgstr ""
+"Il file system ha una dimensione di settore non valida per un file system "
+"FAT."
+
+#: libparted/fs/fat/bootsector.c:71
+msgid "File system has an invalid cluster size for a FAT file system."
+msgstr ""
+"Il file system ha una dimensione di cluster non valida per un file system "
+"FAT."
+
+#: libparted/fs/fat/bootsector.c:78
+msgid ""
+"File system has an invalid number of reserved sectors for a FAT file system."
+msgstr ""
+"Il file system ha un numero di settori riservati non valido per un file "
+"system FAT."
+
+#: libparted/fs/fat/bootsector.c:85
+msgid "File system has an invalid number of FATs."
+msgstr "Il file system ha un numero non corretto di FAT."
+
+#: libparted/fs/fat/bootsector.c:139
+#, c-format
+msgid ""
+"This file system has a logical sector size of %d.  GNU Parted is known not "
+"to work properly with sector sizes other than 512 bytes."
+msgstr ""
+"Il file system ha dei settori logici con dimensione %d. È risaputo che GNU "
+"Parted non funziona bene con settori di dimensione diversa da 512 byte."
+
+#: libparted/fs/fat/bootsector.c:164
+#, c-format
+msgid ""
+"The file system's CHS geometry is (%d, %d, %d), which is invalid.  The "
+"partition table's CHS geometry is (%d, %d, %d).  If you select Ignore, the "
+"file system's CHS geometry will be left unchanged.  If you select Fix, the "
+"file system's CHS geometry will be set to match the partition table's CHS "
+"geometry."
+msgstr ""
+"La geometria CHS del file system è (%d, %d, %d) che non è valida. La "
+"geometria CHS della tabella delle partizioni è (%d, %d, %d). Selezionando "
+"Ignora la geometria CHS del file system non sarà cambiata. Selezionando Fix "
+"la geometria CHS del file system verrà fatta corrispondere alla geometria "
+"CHS della tabella delle partizioni."
+
+#: libparted/fs/fat/bootsector.c:213
+msgid "FAT boot sector says logical sector size is 0.  This is weird. "
+msgstr ""
+"Il settore di avvio della FAT sostiene che la dimensione del settore logico "
+"sia 0. Il che è strano. "
+
+#: libparted/fs/fat/bootsector.c:219
+msgid "FAT boot sector says there are no FAT tables.  This is weird. "
+msgstr ""
+"Il settore di avvio della FAT sostiene che non ci siano tabelle FAT. Il che "
+"è strano. "
+
+#: libparted/fs/fat/bootsector.c:225
+msgid "FAT boot sector says clusters are 0 sectors.  This is weird. "
+msgstr ""
+"Il settore di avvio della FAT sostiene che il cluster sia composto da 0 "
+"settori. Il che è strano. "
+
+#: libparted/fs/fat/bootsector.c:235
+msgid "File system is FAT12, which is unsupported."
+msgstr "Il file system è FAT12, che non è supportato."
+
+#: libparted/fs/fat/bootsector.c:411
+#, c-format
+msgid ""
+"The information sector has the wrong signature (%x).  Select cancel for now, "
+"and send in a bug report.  If you're desperate, it's probably safe to ignore."
+msgstr ""
+"Il settore di informazioni ha una firma errata (%x). Selezionare Annulla per "
+"ora e inviare un segnalazione di bug. In situazioni disperate è forse "
+"possibile ignorare l'errore."
+
+#: libparted/fs/fat/count.c:152
+#, c-format
+msgid "Bad directory entry for %s: first cluster is the end of file marker."
+msgstr ""
+"Elemento di directory errato per %s: il primo cluster è la fine del "
+"marcatore di file."
+
+#: libparted/fs/fat/count.c:165
+#, c-format
+msgid ""
+"Bad FAT: unterminated chain for %s.  You should run dosfsck or scandisk."
+msgstr ""
+"FAT errata: la catena per %s non è stata terminata. Eseguire «dosfsck» "
+"oppure «scandisk»."
+
+#: libparted/fs/fat/count.c:174
+#, c-format
+msgid ""
+"Bad FAT: cluster %d outside file system in chain for %s.  You should run "
+"dosfsck or scandisk."
+msgstr ""
+"FAT errata: il cluster %d usato nella catena %s è fuori dal file system. "
+"Eseguire «dosfsck» oppure «scandisk»."
+
+#: libparted/fs/fat/count.c:184
+#, c-format
+msgid ""
+"Bad FAT: cluster %d is cross-linked for %s.  You should run dosfsck or "
+"scandisk."
+msgstr ""
+"FAT errata: il cluster %d ha dei collegamenti incrociati per %s. Eseguire "
+"«dosfsck» oppure «scandisk»."
+
+#: libparted/fs/fat/count.c:203
+#, c-format
+msgid "%s is %dk, but it has %d clusters (%dk)."
+msgstr "%s è %dk, ma contiene %d cluster (%dk)."
+
+#: libparted/fs/fat/count.c:266
+#, c-format
+msgid ""
+"The file %s is marked as a system file.  This means moving it could cause "
+"some programs to stop working."
+msgstr ""
+"Il file %s è marcato come file di sistema, vale a dire che spostarlo "
+"potrebbe causare il blocco di alcuni programmi."
+
+#: libparted/fs/fat/table.c:137
+#, c-format
+msgid ""
+"FAT %d media %x doesn't match the boot sector's media %x.  You should "
+"probably run scandisk."
+msgstr ""
+"FAT %d, il media %x non coincide con quello specificato nel settore di avvio "
+"%x. Sarebbe meglio eseguire «scandisk»."
+
+#: libparted/fs/fat/table.c:269
+#, c-format
+msgid "fat_table_set: cluster %ld outside file system"
+msgstr "fat_table_set: il cluster %ld è al di fuori del file system"
+
+#: libparted/fs/fat/table.c:301
+#, c-format
+msgid "fat_table_get: cluster %ld outside file system"
+msgstr "fat_table_get: il cluster %ld è al di fuori del file system"
+
+#: libparted/fs/fat/table.c:343
+msgid "fat_table_alloc_cluster: no free clusters"
+msgstr "fat_table_alloc_cluster: cluster esauriti"
+
+#: libparted/fs/linux_swap/linux_swap.c:275
+#, fuzzy, c-format
+msgid "Unrecognised old style linux swap signature '%10s'."
+msgstr "Firma linux di partizione swap non conosciuta: «%10s»."
+
+#: libparted/fs/linux_swap/linux_swap.c:318
+#, fuzzy, c-format
+msgid "Unrecognised new style linux swap signature '%10s'."
+msgstr "Firma linux di partizione swap non conosciuta: «%10s»."
+
+#: libparted/fs/linux_swap/linux_swap.c:358
+#, fuzzy, c-format
+msgid "Unrecognised swsusp linux swap signature '%9s'."
+msgstr "Firma linux di partizione swap non conosciuta: «%10s»."
+
+#: libparted/fs/linux_swap/linux_swap.c:434
+msgid "Too many bad pages."
+msgstr "Troppe pagine inutilizzabili."
+
+#: libparted/fs/hfs/advfs.c:121 libparted/fs/hfs/advfs_plus.c:122
+#: libparted/fs/hfs/reloc.c:414 libparted/fs/hfs/reloc.c:508
+#: libparted/fs/hfs/reloc_plus.c:539 libparted/fs/hfs/reloc_plus.c:658
+#: libparted/fs/hfs/reloc_plus.c:772
+msgid "The file system contains errors."
+msgstr "Il file system contiene errori."
+
+#: libparted/fs/hfs/advfs_plus.c:287
+msgid "Bad blocks could not be read."
+msgstr "I blocchi corrotti non possone essere letti."
+
+#: libparted/fs/hfs/cache.c:137
+#, c-format
+msgid ""
+"Trying to register an extent starting at block 0x%X, but another one already "
+"exists at this position.  You should check the file system!"
+msgstr ""
+"Tentativo di registrazione di un «extent» dal bocco 0x%X, ma un altro esiste "
+"già nella medesima posizione. Bisogna controllare il file system!"
+
+#: libparted/fs/hfs/cache.c:214
+#, c-format
+msgid ""
+"Trying to move an extent from block Ox%X to block Ox%X, but another one "
+"already exists at this position.  This should not happen!"
+msgstr ""
+"Tentativo di spostamento di un «extent» dal blocco Ox%X al blocco Ox%X, ma "
+"c'è già un altro «extent» nella medesima posizione. Questo non deve "
+"avvenire! "
+
+#: libparted/fs/hfs/file.c:143
+#, c-format
+msgid "Could not update the extent cache for HFS file with CNID %X."
+msgstr ""
+"Impossibile aggiornare la cache degli «extent» per un file HFS con CNID %X."
+
+#: libparted/fs/hfs/file.c:180
+#, c-format
+msgid "Trying to read HFS file with CNID %X behind EOF."
+msgstr "Tentativo di leggere il file HFS con CNID %X oltre EOF."
+
+#: libparted/fs/hfs/file.c:190 libparted/fs/hfs/file.c:220
+#, c-format
+msgid "Could not find sector %lli of HFS file with CNID %X."
+msgstr "Impossibile trovare il settore %lli del file HFS con CNID %X."
+
+#: libparted/fs/hfs/file.c:210
+#, c-format
+msgid "Trying to write HFS file with CNID %X behind EOF."
+msgstr "Tentativo di scrivere un file HFS con CNID %X oltre EOF."
+
+#: libparted/fs/hfs/file_plus.c:157
+#, c-format
+msgid "Could not update the extent cache for HFS+ file with CNID %X."
+msgstr ""
+"Impossibile aggiornare la cache degli «extent» per il file HFS+ con CNID %X. "
+
+#: libparted/fs/hfs/file_plus.c:202
+#, c-format
+msgid "Trying to read HFS+ file with CNID %X behind EOF."
+msgstr "Tentativo di leggere un file HFS+ con CNID %X oltre EOF."
+
+#: libparted/fs/hfs/file_plus.c:213 libparted/fs/hfs/file_plus.c:256
+#, c-format
+msgid "Could not find sector %lli of HFS+ file with CNID %X."
+msgstr "Impossibile trovare il settore %lli del file HFS+ con CNID %X."
+
+#: libparted/fs/hfs/file_plus.c:245
+#, c-format
+msgid "Trying to write HFS+ file with CNID %X behind EOF."
+msgstr "Tentativo di scrittura su file HFS+ con CNID %X oltre EOF."
+
+#: libparted/fs/hfs/hfs.c:232
+msgid "Sorry, HFS cannot be resized that way yet."
+msgstr "Spiacente, ma HFS non può ancora essere ridimensionato in questo modo."
+
+#: libparted/fs/hfs/hfs.c:262 libparted/fs/hfs/hfs.c:641
+msgid "Data relocation has failed."
+msgstr "Fallito il riposizionamento dei dati."
+
+#: libparted/fs/hfs/hfs.c:281
+msgid "Data relocation left some data in the end of the volume."
+msgstr ""
+"Il riposizionamento dei dati ne ha lasciato alcuni alla fine del volume."
+
+#: libparted/fs/hfs/hfs.c:320
+msgid "writing HFS Master Directory Block"
+msgstr "Errore scrivendo nel blocco HFS «Master Directory»."
+
+#: libparted/fs/hfs/hfs.c:468
+msgid "No valid HFS[+X] signature has been found while opening."
+msgstr "Non è stata trovata alcuna firma HFS[+X] valida all'apertura."
+
+#: libparted/fs/hfs/hfs.c:478
+#, c-format
+msgid "Version %d of HFS+ isn't supported."
+msgstr "La versione %d del file HFS+ non è supportata."
+
+#: libparted/fs/hfs/hfs.c:489
+#, c-format
+msgid "Version %d of HFSX isn't supported."
+msgstr "La versione %d del file HFSX non è supportata."
+
+#: libparted/fs/hfs/hfs.c:672
+msgid "Data relocation left some data at the end of the volume."
+msgstr ""
+"Il riposizionamento dei dati ne ha lasciato alcuni alla fine del volume."
+
+#: libparted/fs/hfs/hfs.c:720
+msgid "Error while writing the allocation file."
+msgstr "Errore scrivendo il file di allocazione."
+
+#: libparted/fs/hfs/hfs.c:735
+msgid "Error while writing the compatibility part of the allocation file."
+msgstr ""
+"Errore nella scrittura della parte compatibile ddel file di allocazione."
+
+#: libparted/fs/hfs/hfs.c:750
+msgid "writing HFS+ Volume Header"
+msgstr "Scrittura del «Volume Header» HFS+."
+
+#: libparted/fs/hfs/hfs.c:850
+msgid "An error occurred while looking for the mandatory bad blocks file."
+msgstr "Errore nella ricerca del file obbligatorio dei blocchi corrotti."
+
+#: libparted/fs/hfs/hfs.c:904
+msgid ""
+"It seems there is an error in the HFS wrapper: the bad blocks file doesn't "
+"contain the embedded HFS+ volume."
+msgstr ""
+"Sembra esserci un errore nel wrapper HFS: il file dei blocchi inutilizzabili "
+"non contiene il volume HFS+."
+
+#: libparted/fs/hfs/hfs.c:940
+msgid "Sorry, HFS+ cannot be resized that way yet."
+msgstr "Spiacente, HFS+ non può essere ancora ridimensionato in questo modo."
+
+#: libparted/fs/hfs/hfs.c:975
+msgid "shrinking embedded HFS+ volume"
+msgstr "riduzione del volume HFS+"
+
+#: libparted/fs/hfs/hfs.c:991
+msgid "Resizing the HFS+ volume has failed."
+msgstr "Il ridimensionamento del volume HFS+ non è andato a buon fine."
+
+#: libparted/fs/hfs/hfs.c:998
+msgid "shrinking HFS wrapper"
+msgstr "riduzione del wrapper HFS"
+
+#: libparted/fs/hfs/hfs.c:1007
+msgid "Updating the HFS wrapper has failed."
+msgstr "L'aggiornamento del wrapper HFS è fallita."
+
+#: libparted/fs/hfs/hfs.c:1109 libparted/fs/hfs/hfs.c:1194
+#, c-format
+msgid ""
+"This is not a real %s check.  This is going to extract special low level "
+"files for debugging purposes."
+msgstr ""
+"Non è un controllo %s reale. Avviamento della speciale procedura a basso "
+"livello d'estrazione dei file per il debug."
+
+#: libparted/fs/hfs/journal.c:155
+msgid "Bad block list header checksum."
+msgstr "Somma di controllo della lista dei blocchi inutilizzabili."
+
+#: libparted/fs/hfs/journal.c:168
+#, c-format
+msgid ""
+"Invalid size of a transaction block while replaying the journal (%i bytes)."
+msgstr ""
+"Errata dimensione di un blocco di transazione durante la riesecuzione del "
+"registro (%i byte)."
+
+#: libparted/fs/hfs/journal.c:260
+msgid ""
+"Journal stored outside of the volume are not supported.  Try to desactivate "
+"the journal and run Parted again."
+msgstr ""
+"Registri memorizzati all'esterno del volume non sono supportati. Disattivare "
+"il registro esterno e riavviare Parted."
+
+#: libparted/fs/hfs/journal.c:271
+msgid "Journal offset or size is not multiple of the sector size."
+msgstr ""
+"Lo spostamento o la dimensione del registro non è un multiplo della "
+"dimensione di un settore."
+
+#: libparted/fs/hfs/journal.c:292
+msgid "Incorrect magic values in the journal header."
+msgstr "Valori «magic» errati nell'intestazione del registro."
+
+#: libparted/fs/hfs/journal.c:302
+msgid "Journal size mismatch between journal info block and journal header."
+msgstr ""
+"La dimensione del registro non corrisponde con quelle dell'intestazione del "
+"registro medesimo."
+
+#: libparted/fs/hfs/journal.c:314
+msgid "Some header fields are not multiple of the sector size."
+msgstr ""
+"Alcuni campi dell'intestazione non sono multipli della dimensione di un "
+"settore."
+
+#: libparted/fs/hfs/journal.c:323
+msgid ""
+"The sector size stored in the journal is not 512 bytes.  Parted only "
+"supports 512 bytes length sectors."
+msgstr ""
+"La dimensione del settore registrata nel registro non è di 512 byte. Parted "
+"supporta solo settori di lunghezza pari a 512 byte."
+
+#: libparted/fs/hfs/journal.c:335
+msgid "Bad journal checksum."
+msgstr "Somma di controllo del registro inesatta."
+
+#: libparted/fs/hfs/journal.c:353
+msgid ""
+"The journal is not empty.  Parted must replay the transactions before "
+"opening the file system.  This will modify the file system."
+msgstr ""
+"Il registro non è vuoto. Parted deve ripetere le transazioni prima di "
+"passare all'apertura del file system. Il file system verrà modificato."
+
+#: libparted/fs/hfs/journal.c:381
+msgid ""
+"The volume header or the master directory block has changed while replaying "
+"the journal.  You should restart Parted."
+msgstr ""
+"L'intestazione del volume o il blocco della directory master è stata "
+"modificata durante la riesecuzione delle transazioni. Parted deve essere "
+"riavviato."
+
+#: libparted/fs/hfs/probe.c:51
+#, c-format
+msgid ""
+"Parted can't use HFS file systems on disks with a sector size not equal to %"
+"d bytes."
+msgstr ""
+"Parted non può utilizzare file system HFS su dischi con settori di "
+"dimensione diversa da %d byte."
+
+#: libparted/fs/hfs/reloc.c:151 libparted/fs/hfs/reloc_plus.c:155
+msgid "An extent has not been relocated."
+msgstr "Un «extent» non è stato riposizionato."
+
+#: libparted/fs/hfs/reloc.c:251 libparted/fs/hfs/reloc_plus.c:307
+msgid ""
+"A reference to an extent comes from a place it should not.  You should check "
+"the file system!"
+msgstr ""
+"Il riferimento ad un'estensione proviene da un'insolita posizione. Il file "
+"system deve essere controllato!."
+
+#: libparted/fs/hfs/reloc.c:381
+msgid "This HFS volume has no catalog file.  This is very unusual!"
+msgstr "Questo volume HFS non possiede un catalogo. Questo è inusuale!"
+
+#: libparted/fs/hfs/reloc.c:475
+msgid "This HFS volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+"Questo volume HFS non presenta un file di overflow degli «extent». È molto "
+"strano!."
+
+#: libparted/fs/hfs/reloc.c:517 libparted/fs/hfs/reloc_plus.c:668
+msgid ""
+"The extents overflow file should not contain its own extents!  You should "
+"check the file system."
+msgstr ""
+"Il file di overflow degli «extent» non deve contenere i propri «extent». Si "
+"dovrebbe verificare il file system."
+
+#: libparted/fs/hfs/reloc.c:574 libparted/fs/hfs/reloc_plus.c:847
+msgid "Could not cache the file system in memory."
+msgstr "Non è stato possibile caricare il file system in memoria."
+
+#: libparted/fs/hfs/reloc.c:635 libparted/fs/hfs/reloc_plus.c:908
+msgid "Bad blocks list could not be loaded."
+msgstr "Non è stato possibile caricare l'elenco dei blocchi corrotti."
+
+#: libparted/fs/hfs/reloc.c:649 libparted/fs/hfs/reloc_plus.c:924
+msgid "An error occurred during extent relocation."
+msgstr "Un errore è avvenuto durante la rilocazione degli «extent»."
+
+#: libparted/fs/hfs/reloc_plus.c:495
+msgid "This HFS+ volume has no catalog file.  This is very unusual!"
+msgstr "Questo volume HFS non ha un file per il catalogo. Ciò è inusuale!"
+
+#: libparted/fs/hfs/reloc_plus.c:619
+msgid "This HFS+ volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+"Questo volume HFS+ non ha un file per l'overflow degli «extent». Questo è "
+"abbastanza inusuale!"
+
+#: parted/parted.c:94
+msgid "displays this help message"
+msgstr "mostra questo messaggio di aiuto"
+
+#: parted/parted.c:95
+msgid "lists partition layout on all block devices"
+msgstr ""
+
+#: parted/parted.c:96
+msgid "displays machine parseable output"
+msgstr ""
+
+#: parted/parted.c:97
+msgid "never prompts for user intervention"
+msgstr "non chiede mai l'intervento dell'utente"
+
+#: parted/parted.c:98
+msgid "displays the version"
+msgstr "mostra la versione"
+
+#: parted/parted.c:111
+msgid ""
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"
+msgstr ""
+"NUMBER è il numero di partizione usato da Linux. Su etichette MS-DOS le "
+"partizioni primarie hanno numeri da 1 a 4 e le logiche da 5 in poi.\n"
+
+#: parted/parted.c:114
+msgid "LABEL-TYPE is one of: "
+msgstr "LABEL-TYPE è una di: "
+
+#: parted/parted.c:115
+msgid "FLAG is one of: "
+msgstr "FLAG è uno di: "
+
+#: parted/parted.c:116
+msgid "UNIT is one of: "
+msgstr "UNIT è uno di: "
+
+#: parted/parted.c:117
+msgid "PART-TYPE is one of: primary, logical, extended\n"
+msgstr "PART-TYPE è uno di: primaria, logica, estesa\n"
+
+#: parted/parted.c:119
+msgid "FS-TYPE is one of: "
+msgstr "FS-TYPE è uno di: "
+
+#: parted/parted.c:120
+msgid ""
+"START and END are disk locations, such as 4GB or 10%.  Negative values count "
+"from the end of the disk.  For example, -1s specifies exactly the last "
+"sector.\n"
+msgstr ""
+"START e END sono locazioni sul disco, come 4GB o 10%. I numeri negativi sono "
+"relativi alla fine del disco. Per esempio, -1s indica esattamente l'ultimo "
+"settore.\n"
+
+#: parted/parted.c:123
+msgid "STATE is one of: on, off\n"
+msgstr "STATE è uno di: on, off\n"
+
+#: parted/parted.c:124
+msgid "DEVICE is usually /dev/hda or /dev/sda\n"
+msgstr "DEVICE è normalmente /dev/hda o /dev/sda\n"
+
+#: parted/parted.c:125
+msgid "NAME is any word you want\n"
+msgstr "NAME è qualsiasi parola si voglia\n"
+
+#: parted/parted.c:126
+msgid "The partition must have one of the following FS-TYPEs: "
+msgstr "La partizione deve avere uno dei seguenti FS_TYPE: "
+
+#: parted/parted.c:130
+#, fuzzy
+msgid ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+msgstr ""
+"Copyright (C) 1998-2006 Free Software Foundation, Inc.\n"
+"Questo programma è software libero, protetto dalla licenza GNU General "
+"Public License.\n"
+"\n"
+"Questo programma è distribuito nella speranza che sia utile, ma SENZA ALCUNA "
+"GARANZIA; senza neppure le garanzie derivate dalla COMMERCIABILITÀ o "
+"dall'essere ADATTO AD UN PARTICOLARE SCOPO. Si veda la GNU General Public "
+"License per maggiori dettagli.\n"
+"\n"
+
+#: parted/parted.c:176
+#, c-format
+msgid "%0.f%%\t(time left %.2d:%.2d)"
+msgstr "%0.f%%\t(tempo rimasto %.2d:%.2d)"
+
+#: parted/parted.c:195
+#, fuzzy, c-format
+msgid ""
+"Partition %s is being used. You must unmount it before you modify it with "
+"Parted."
+msgstr ""
+"La partizione %s è in uso. La si deve smontare prima di modificarla con "
+"Parted."
+
+#: parted/parted.c:211
+#, c-format
+msgid "Partition(s) on %s are being used."
+msgstr "La/e partizione/i di %s sono in uso."
+
+#: parted/parted.c:223
+msgid ""
+"The existing file system will be destroyed and all data on the partition "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:235
+#, c-format
+msgid ""
+"The existing disk label on %s will be destroyed and all data on this disk "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:458 parted/parted.c:652 parted/parted.c:1044
+#: parted/parted.c:1128 parted/parted.c:1771 parted/parted.c:1852
+#: parted/parted.c:1900
+msgid "Partition number?"
+msgstr "Numero di partizione?"
+
+#: parted/parted.c:500
+msgid "Source device?"
+msgstr "Device di origine?"
+
+#: parted/parted.c:504
+msgid "Source partition number?"
+msgstr "Numero di partizione di origine?"
+
+#: parted/parted.c:509
+msgid "Can't copy an extended partition."
+msgstr "Non è possibile copiare una partizione estesa."
+
+#: parted/parted.c:515
+msgid "Destination partition number?"
+msgstr "Numero della partizione destinazione?"
+
+#: parted/parted.c:615
+msgid "New disk label type?"
+msgstr "Tipo dell'etichetta del nuovo disco?"
+
+#: parted/parted.c:656
+msgid "File system?"
+msgstr "File system?"
+
+#: parted/parted.c:707 parted/parted.c:878
+msgid "Partition type?"
+msgstr "Tipo di partizione?"
+
+#: parted/parted.c:714 parted/parted.c:885 parted/parted.c:1131
+msgid "Partition name?"
+msgstr "Nome della partizione?"
+
+#: parted/parted.c:722 parted/parted.c:895
+msgid "File system type?"
+msgstr "Tipo di file system?"
+
+#: parted/parted.c:729 parted/parted.c:897 parted/parted.c:1059
+#: parted/parted.c:1725 parted/parted.c:1780
+msgid "Start?"
+msgstr "Inizio?"
+
+#: parted/parted.c:731 parted/parted.c:900 parted/parted.c:1062
+#: parted/parted.c:1727 parted/parted.c:1782
+msgid "End?"
+msgstr "Fine?"
+
+#: parted/parted.c:769 parted/parted.c:938
+#, c-format
+msgid ""
+"You requested a partition from %s to %s.\n"
+"The closest location we can manage is %s to %s.  Is this still acceptable to "
+"you?"
+msgstr ""
+"È stata chiesta una partizione da %s a %s.\n"
+"La locazione più prossima disponibile è da %s a %s. Va bene lo stesso?"
+
+#: parted/parted.c:890
+msgid "An extended partition cannot hold a file system.  Did you want mkpart?"
+msgstr ""
+"Le partizione estese non possono contenere un file system. Proseguire con "
+"mkpart?"
+
+#: parted/parted.c:1050
+msgid "Can't move an extended partition."
+msgstr "Non è possibile spostare una partizione estesa."
+
+#: parted/parted.c:1079
+msgid "Can't move a partition onto itself.  Try using resize, perhaps?"
+msgstr ""
+"Non è possibile muovere una partizione in se stessa. Provare con il comando "
+"resize?"
+
+#: parted/parted.c:1227
+#, c-format
+msgid "Minor: %d\n"
+msgstr "Minor: %d\n"
+
+#: parted/parted.c:1228
+#, c-format
+msgid "Flags: %s\n"
+msgstr "Flag: %s\n"
+
+#: parted/parted.c:1229
+#, c-format
+msgid "File System: %s\n"
+msgstr "File system: %s\n"
+
+#: parted/parted.c:1230
+msgid "Size:         "
+msgstr "Dimensione:    "
+
+#: parted/parted.c:1235
+msgid "Minimum size: "
+msgstr "Dimensione minima: "
+
+#: parted/parted.c:1238
+msgid "Maximum size: "
+msgstr "Dimensione massima: "
+
+#: parted/parted.c:1362
+#, c-format
+msgid "Model: %s (%s)\n"
+msgstr ""
+
+#: parted/parted.c:1364
+#, c-format
+msgid "Disk %s: %s\n"
+msgstr "Disco %s: %s\n"
+
+#: parted/parted.c:1365
+#, c-format
+msgid "Sector size (logical/physical): %lldB/%lldB\n"
+msgstr "Dimensione del settore (logica/fisica): %lldB/%lldB\n"
+
+#: parted/parted.c:1383
+#, c-format
+msgid "BIOS cylinder,head,sector geometry: %d,%d,%d.  Each cylinder is %s.\n"
+msgstr ""
+"Geometria del BIOS cilindri, testine, settori: %d,%d,%d. Ogni cilindro è %"
+"s.\n"
+
+#: parted/parted.c:1392
+#, c-format
+msgid "Partition Table: %s\n"
+msgstr "Tabella delle partizioni: %s\n"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Number"
+msgstr "Numero"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Start"
+msgstr "Inizio"
+
+#: parted/parted.c:1407 parted/parted.c:1410
+msgid "End"
+msgstr "Fine"
+
+#: parted/parted.c:1410
+msgid "Size"
+msgstr "Dimensione"
+
+#: parted/parted.c:1414
+msgid "Type"
+msgstr "Tipo"
+
+#: parted/parted.c:1416
+msgid "File system"
+msgstr "File System"
+
+#: parted/parted.c:1419
+msgid "Name"
+msgstr "Nome"
+
+#: parted/parted.c:1421
+msgid "Flags"
+msgstr "Flag"
+
+#: parted/parted.c:1477
+msgid "Free Space"
+msgstr "Spazio libero"
+
+#: parted/parted.c:1624
+#, c-format
+msgid ""
+"A %s %s partition was found at %s -> %s.  Do you want to add it to the "
+"partition table?"
+msgstr ""
+"Una partizione %s %s è stata trovata a %s -> %s. Aggiungerla alla tabella "
+"delle partizioni?"
+
+#: parted/parted.c:1663
+msgid "searching for file systems"
+msgstr "ricerca di file system"
+
+#: parted/parted.c:1877
+msgid "New device?"
+msgstr "Nuovo device?"
+
+#: parted/parted.c:1902
+msgid "Flag to Invert?"
+msgstr "Flag da invertire?"
+
+#: parted/parted.c:1907
+msgid "New state?"
+msgstr "Nuovo stato?"
+
+#: parted/parted.c:1944
+msgid "Unit?"
+msgstr "Unità?"
+
+#: parted/parted.c:2093
+msgid "check"
+msgstr "controllo"
+
+#: parted/parted.c:2096
+msgid ""
+"check NUMBER                             do a simple check on the file system"
+msgstr ""
+"controllo NUMBER             effettua un semplice controllo del file system"
+
+#: parted/parted.c:2102
+msgid "cp"
+msgstr "cp"
+
+#: parted/parted.c:2105
+msgid ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+"partition"
+msgstr ""
+"cp [DEVICE-INIZIALE] NUMBER-INIZIALE NUMBER-FINALE copia un file system in "
+"un'altra partizione"
+
+#: parted/parted.c:2111
+msgid "help"
+msgstr "help"
+
+#: parted/parted.c:2114
+#, fuzzy
+msgid ""
+"help [COMMAND]                           print general help, or help on "
+"COMMAND"
+msgstr "help [COMANDO]                mostra l'aiuto generico o su COMANDO"
+
+#: parted/parted.c:2120
+msgid "mklabel"
+msgstr "mklabel"
+
+#: parted/parted.c:2120
+#, fuzzy
+msgid "mktable"
+msgstr "mklabel"
+
+#: parted/parted.c:2123
+#, fuzzy
+msgid ""
+"mklabel,mktable LABEL-TYPE               create a new disklabel (partition "
+"table)"
+msgstr ""
+"mklabel TIPO-ETICHETTA        crea una nuova etichetta disco (tabella delle "
+"partizioni)"
+
+#: parted/parted.c:2129
+msgid "mkfs"
+msgstr "mkfs"
+
+#: parted/parted.c:2132
+msgid ""
+"mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on "
+"partititon NUMBER"
+msgstr ""
+"mkfs NUMBER TIPO-FS            crea un file system TIPO-FS sulla partizione "
+"NUMBER"
+
+#: parted/parted.c:2138
+msgid "mkpart"
+msgstr "mkpart"
+
+#: parted/parted.c:2141
+msgid "mkpart PART-TYPE [FS-TYPE] START END     make a partition"
+msgstr "mkpart TIPO_PART [TIPO-FS] INIZIO FILE    crea una partizione"
+
+#: parted/parted.c:2147
+#, fuzzy
+msgid ""
+"'mkpart' makes a partition without creating a new file system on the "
+"partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"
+msgstr ""
+"mkpart crea un partizione senza crearci un file system. Il TIPO-FS può "
+"essere specificato per creare un ID della partizione appropriato.\n"
+
+#: parted/parted.c:2152
+msgid "mkpartfs"
+msgstr "mkpartfs"
+
+#: parted/parted.c:2155
+msgid ""
+"mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system"
+msgstr ""
+"mkpartfs TIPO_PART TIPO_FS INIZIO FINE  crea una partizione e il file system"
+
+#: parted/parted.c:2161
+msgid "move"
+msgstr "move"
+
+#: parted/parted.c:2164
+msgid "move NUMBER START END                    move partition NUMBER"
+msgstr "move NUMBER START END          sposta la partizione NUMBER"
+
+#: parted/parted.c:2169
+msgid "name"
+msgstr "name"
+
+#: parted/parted.c:2172
+msgid "name NUMBER NAME                         name partition NUMBER as NAME"
+msgstr "name NUMBER NOME               chiama la partizione NUMBER \"NOME\""
+
+#: parted/parted.c:2177
+msgid "print"
+msgstr "print"
+
+#: parted/parted.c:2180
+msgid ""
+"print [devices|free|list,all|NUMBER]     display the partition table, "
+"available devices, free space, all found partitions, or a particular "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2185
+msgid ""
+"Without arguments, 'print' displays the entire partition table. However with "
+"the following arguments it performs various other actions.\n"
+msgstr ""
+
+#: parted/parted.c:2187
+msgid "  devices   : display all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2188
+msgid ""
+"  free      : display information about free unpartitioned space on the "
+"current block device\n"
+msgstr ""
+
+#: parted/parted.c:2190
+#, fuzzy
+msgid ""
+"  list, all : display the partition tables of all active block devices\n"
+msgstr ""
+"print [free|NUMBER|all]                 mostra la tabella delle partizioni, "
+"una partizione o tutti i device"
+
+#: parted/parted.c:2191
+msgid ""
+"  NUMBER    : display more detailed information about this particular "
+"partition\n"
+msgstr ""
+
+#: parted/parted.c:2196
+msgid "quit"
+msgstr "quit"
+
+#: parted/parted.c:2199
+msgid "quit                                     exit program"
+msgstr "quit                          termina il programma"
+
+#: parted/parted.c:2204
+msgid "rescue"
+msgstr "rescue"
+
+#: parted/parted.c:2207
+msgid ""
+"rescue START END                         rescue a lost partition near START "
+"and END"
+msgstr ""
+"rescue INIZIO FINE            ripristina una partizione persa vicino a "
+"INIZIO e FINE"
+
+#: parted/parted.c:2213
+msgid "resize"
+msgstr "resize"
+
+#: parted/parted.c:2216
+msgid ""
+"resize NUMBER START END                  resize partition NUMBER and its "
+"file system"
+msgstr ""
+"resize NUMBER START END        ridimensiona la partizione NUMBER e il file "
+"system"
+
+#: parted/parted.c:2224
+msgid "rm"
+msgstr "rm"
+
+#: parted/parted.c:2227
+msgid "rm NUMBER                                delete partition NUMBER"
+msgstr "rm NUMBER                     cancella la partizione NUMERO"
+
+#: parted/parted.c:2232
+msgid "select"
+msgstr "select"
+
+#: parted/parted.c:2235
+msgid "select DEVICE                            choose the device to edit"
+msgstr ""
+"select DISPOSITIVO                 sceglie su quale dispositivo operare"
+
+#: parted/parted.c:2240
+msgid "set"
+msgstr "set"
+
+#: parted/parted.c:2243
+msgid ""
+"set NUMBER FLAG STATE                    change the FLAG on partition NUMBER"
+msgstr "set NUMBER FLAG STATO          cambia un flag nella partizione NUMBER"
+
+#: parted/parted.c:2249
+msgid "toggle"
+msgstr "toggle"
+
+#: parted/parted.c:2252
+msgid ""
+"toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+"partition NUMBER"
+msgstr ""
+"toggle [NUMBER [FLAG]]                   inverte lo stato del FLAG sulla "
+"partitione NUMBER"
+
+#: parted/parted.c:2258
+msgid "unit"
+msgstr "unit"
+
+#: parted/parted.c:2261
+msgid "unit UNIT                                set the default unit to UNIT"
+msgstr "unit UNIT                        impostare l'unità predefinita a UNIT"
+
+#: parted/parted.c:2266
+#, fuzzy
+msgid "version"
+msgstr "version"
+
+#: parted/parted.c:2269
+#, fuzzy
+msgid ""
+"version                                  display the version number and "
+"copyright information of GNU Parted"
+msgstr ""
+"version                                 mostra il copyright e le "
+"informazioni su GNU Parted"
+
+#: parted/parted.c:2273
+#, fuzzy
+msgid ""
+"'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"
+msgstr ""
+"version·mostra il copyright e le informazioni sulla versione di questa copia "
+"di GNU·Parted\n"
+
+#: parted/parted.c:2335
+#, c-format
+msgid "Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"
+msgstr ""
+
+#: parted/parted.c:2379
+msgid "No device found"
+msgstr "Non è stato trovato alcun dispositivo"
+
+#: parted/parted.c:2412
+msgid "WARNING: You are not superuser.  Watch out for permissions."
+msgstr ""
+
+#: parted/parted.c:2450
+#, fuzzy
+msgid "You may need to update /etc/fstab.\n"
+msgstr "Non dimenticare di aggiornare /etc/fstab, se necessario.\n"
+
+#: parted/ui.c:160
+msgid "Welcome to GNU Parted! Type 'help' to view a list of commands.\n"
+msgstr ""
+"Benvenuto su GNU Parted! Digitare \"help\" per avere la lista dei comandi.\n"
+
+#: parted/ui.c:163
+msgid ""
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run "
+"in\n"
+"interactive mode.\n"
+msgstr ""
+"Uso: parted [OPZIONI]... [DEVICE [COMANDO [PARAMETRI]...]...]\n"
+"Esegue COMANDO con i PARAMETRI sul DEVICE. Se non c'è alcun COMANDO\n"
+"parte in modalità interattiva.\n"
+
+#: parted/ui.c:168
+#, fuzzy, c-format
+msgid ""
+"\n"
+"\n"
+"You found a bug in GNU Parted! Here's what you have to do:\n"
+"\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n"
+"\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Please check this version prior to bug reporting.\n"
+"\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"for further information.\n"
+"\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n"
+msgstr ""
+"\n"
+"\n"
+"Si è trovato un bug in GNU Parted! Ecco cosa fare:\n"
+"\n"
+"Non innervosirsi! Molto probabilmente il bug non ha rovinato i dati.\n"
+"Il modo per aiutarci a correggerlo è il seguente:\n"
+"\n"
+"Verificare che il bug non sia già stato corretto utilizzando\n"
+"la versione più recente di GNU Parted che si trova a:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Usare questa versione prima di segnalre il bug.\n"
+"\n"
+"Se il problema non è ancora stato risolto o se non si sa come verificarlo,\n"
+"visitare il sito web di GNU Parted:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"per ulteriori informazioni.\n"
+"\n"
+"La segnalazione deve contenere la versione di questo programma (%s)\n"
+"con il messaggio d'errore riportato sotto, l'output di\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"e ogni altra informazione sulla propria configurazione che si consideti "
+"importante.\n"
+
+#: parted/ui.c:284
+msgid ""
+"\n"
+"Command History:\n"
+msgstr ""
+
+#: parted/ui.c:366
+#, fuzzy
+msgid ""
+"\n"
+"Error: SEGV_MAPERR (Address not mapped to object)\n"
+msgstr ""
+"\n"
+"Errore: SEGV_MAPERR (Indirizzo non corrispondente ad un oggetto)"
+
+#: parted/ui.c:372
+#, fuzzy
+msgid ""
+"\n"
+"Error: SEGV_ACCERR (Invalid permissions for mapped object)\n"
+msgstr ""
+"\n"
+"Errore: SEGV_ACCERR (Permesso non valido per l'oggetto mappato)"
+
+#: parted/ui.c:377
+#, fuzzy
+msgid ""
+"\n"
+"Error: A general SIGSEGV signal was encountered.\n"
+msgstr ""
+"\n"
+"Errore: Un segnale SIGSEGV generico."
+
+#: parted/ui.c:410
+msgid ""
+"\n"
+"Error: FPE_INTDIV (Integer: divide by zero)"
+msgstr ""
+"\n"
+"Errore: FPE_INTDIV (Intero: divisione per zero)"
+
+#: parted/ui.c:415
+msgid ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+msgstr ""
+"\n"
+"Errore: FPE_INTOVF (Intero: overflow)"
+
+#: parted/ui.c:420
+#, fuzzy
+msgid ""
+"\n"
+"Error: FPE_FLTDIV (Float: divide by zero)"
+msgstr ""
+"\n"
+"Errore: FPE_FLTDIV (Float: divisione per zero)"
+
+#: parted/ui.c:425
+msgid ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+msgstr ""
+"\n"
+"Errore: FPE_FLTOVF (Float: overflow)"
+
+#: parted/ui.c:430
+msgid ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+msgstr ""
+"\n"
+"Errore: FPE_FLTUND (Float: underflow)"
+
+#: parted/ui.c:435
+msgid ""
+"\n"
+"Error: FPE_FLTRES (Float: inexact result)"
+msgstr ""
+"\n"
+"Errore: FPE_FLTRES (Float: risultato inesatto)"
+
+#: parted/ui.c:440
+msgid ""
+"\n"
+"Error: FPE_FLTINV (Float: invalid operation)"
+msgstr ""
+"\n"
+"Errore: FPE_FLTINV (Float: operazione non valida)"
+
+#: parted/ui.c:445
+msgid ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript out of range)"
+msgstr ""
+"\n"
+"Errore: FPE_FLTSUB (Float: subscript out of range)"
+
+#: parted/ui.c:450
+msgid ""
+"\n"
+"Error: A general SIGFPE signal was encountered."
+msgstr ""
+"\n"
+"Errore: Un generico segnale SIGFPE."
+
+#: parted/ui.c:483
+msgid ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+msgstr ""
+"\n"
+"Errore: ILL_ILLOPC (Opcode non legale)"
+
+#: parted/ui.c:488
+msgid ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+msgstr ""
+"\n"
+"Errore: ILL_ILLOPN (Operand non legale)"
+
+#: parted/ui.c:493
+msgid ""
+"\n"
+"Error: ILL_ILLADR (Illegal addressing mode)"
+msgstr ""
+"\n"
+"Errore: ILL_ILLADR (Modalità di indirizzamento non legale)"
+
+#: parted/ui.c:498
+msgid ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+msgstr ""
+"\n"
+"Errore: ILL_ILLTRP (Trap non legale)"
+
+#: parted/ui.c:503
+msgid ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+msgstr ""
+"\n"
+"Errore: ILL_PRVOPC (Opcode privilegiato)"
+
+#: parted/ui.c:508
+msgid ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+msgstr ""
+"\n"
+"Errore: ILL_PRVREG (Registro privilegiato)"
+
+#: parted/ui.c:513
+msgid ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+msgstr ""
+"\n"
+"Errore: ILL_COPROC (Errore del coprocessore)"
+
+#: parted/ui.c:518
+msgid ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+msgstr ""
+"\n"
+"Errore: ILL_BADSTK (Errore dello stack interno)"
+
+#: parted/ui.c:523
+#, fuzzy
+msgid ""
+"\n"
+"Error: A general SIGILL signal was encountered."
+msgstr ""
+"\n"
+"Errore: Un segnale SIGILL generico."
+
+#: parted/ui.c:1024
+msgid "Expecting a partition number."
+msgstr "Fornire un numero di partizione."
+
+#: parted/ui.c:1033
+msgid "Partition doesn't exist."
+msgstr "La partizione non esiste."
+
+#: parted/ui.c:1053
+msgid "Expecting a file system type."
+msgstr "Fornire un tipo di file system."
+
+#: parted/ui.c:1060
+#, c-format
+msgid "Unknown file system type \"%s\"."
+msgstr "Tipo \"%s\" di file system sconosciuto."
+
+#: parted/ui.c:1080
+msgid "Expecting a disk label type."
+msgstr "Fornire un tipo di etichetta disco."
+
+#: parted/ui.c:1178
+msgid "Can't create any more partitions."
+msgstr "Non è possibile creare altre partizioni."
+
+#: parted/ui.c:1188
+msgid "Expecting a partition type."
+msgstr "Fornire un tipo di partizione."
+
+#: parted/ui.c:1315
+msgid "on"
+msgstr "on"
+
+#: parted/ui.c:1316
+msgid "off"
+msgstr "off"
+
+#: parted/ui.c:1431
+msgid "OPTIONs:"
+msgstr "OPZIONI:"
+
+#: parted/ui.c:1436
+msgid "COMMANDs:"
+msgstr "COMANDI:"
+
+#: parted/ui.c:1445
+#, c-format
+msgid "Using %s\n"
+msgstr "Uso %s\n"
+
+#: parted/ui.c:1519
+msgid "This command does not make sense in non-interactive mode.\n"
+msgstr ""
+
+#~ msgid "where necessary, prompts for user intervention"
+#~ msgstr "chiede l'intervento dell'utente, quando necessario"
+
+#~ msgid "GNU Parted Version information:\n"
+#~ msgstr "Informazioni sulla versione di GNU Parted:\n"
+
+#, fuzzy
+#~ msgid ""
+#~ "Without arguments, print displays the entire partition table. With "
+#~ "'free'\n"
+#~ "argument, information about free space will be displayed otherwise if a\n"
+#~ "partition number is given, then more detailed information is displayed\n"
+#~ "about that partition. If the 'all' argument is passed instead, partition\n"
+#~ "information for all devices will be displayed.\n"
+#~ msgstr ""
+#~ "Senza argomenti «print» mostra tutta la tabella delle partizioni. Con\n"
+#~ "l'argomento «free» mostra le informazioni sullo spazio disponibile,\n"
+#~ "altrimenti se viene specificato un numero di partizione allora sono\n"
+#~ "mostrate informazioni dettagliate sulla partizione.Se viene passato\n"
+#~ "l'argomento «all»  vengono mostrate le informazioni per tutti i device."
+
+#~ msgid "Attempt to read sectors %ld-%ld outside of partition on %s."
+#~ msgstr ""
+#~ "Tentativo di leggere i settori %ld-%ld al di fuori della partizione %s."
diff --git a/parted-1.8.7/po/ja.gmo b/parted-1.8.7/po/ja.gmo
new file mode 100644
index 0000000..1c56c82
--- /dev/null
+++ b/parted-1.8.7/po/ja.gmo
Binary files differ
diff --git a/parted-1.8.7/po/ja.po b/parted-1.8.7/po/ja.po
new file mode 100644
index 0000000..3105a0d
--- /dev/null
+++ b/parted-1.8.7/po/ja.po
@@ -0,0 +1,3260 @@
+# Parted¤Î¥á¥Ã¥»¡¼¥¸¤ÎÆüËܸìÌõ
+# Copyright (C) 1999 Free Software Foundation, Inc.
+# Hiroshi Takekawa <sian@big.or.jp>, 1999-2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: parted 1.8.1\n"
+"Report-Msgid-Bugs-To: bug-parted@gnu.org\n"
+"POT-Creation-Date: 2007-05-09 17:02-0400\n"
+"PO-Revision-Date: 2006-12-08 19:31+0900\n"
+"Last-Translator: Hiroshi Takekawa <sian@big.or.jp>\n"
+"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=EUC-JP\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/closeout.c:74
+msgid "write error"
+msgstr ""
+
+#: lib/error.c:125
+#, fuzzy
+msgid "Unknown system error"
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¼ïÎà \"%s\" ¤ÏÉÔÌÀ¤Ç¤¹¡£"
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK).  A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#.
+#. If you don't know what to put here, please see
+#. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr ""
+
+#: lib/regcomp.c:131
+msgid "Success"
+msgstr ""
+
+#: lib/regcomp.c:134
+msgid "No match"
+msgstr ""
+
+#: lib/regcomp.c:137
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regcomp.c:140
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regcomp.c:143
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regcomp.c:146
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regcomp.c:149
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regcomp.c:152
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regcomp.c:155
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regcomp.c:158
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regcomp.c:161
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regcomp.c:164
+#, fuzzy
+msgid "Invalid range end"
+msgstr "ÉÔÀµ¤ÊÃͤǤ¹¡£"
+
+#: lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regcomp.c:170
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regcomp.c:173
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regcomp.c:176
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regcomp.c:179
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regcomp.c:680
+msgid "No previous regular expression"
+msgstr ""
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr ""
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:66
+msgid "(C)"
+msgstr ""
+
+#: lib/version-etc.c:68
+msgid ""
+"\n"
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:84
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:88
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:92
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:98
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:104
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:110
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:132
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+
+#: lib/xalloc-die.c:35
+msgid "memory exhausted"
+msgstr ""
+
+#: libparted/arch/beos.c:237
+msgid "Disk Image"
+msgstr ""
+
+#: libparted/arch/beos.c:338 libparted/arch/gnu.c:261
+#: libparted/arch/linux.c:1272
+#, c-format
+msgid "Error opening %s: %s"
+msgstr "%s ¤ò¥ª¡¼¥×¥óÃæ¤Ë¥¨¥é¡¼: %s"
+
+#: libparted/arch/beos.c:349 libparted/arch/gnu.c:271
+#: libparted/arch/linux.c:1283
+#, c-format
+msgid "Unable to open %s read-write (%s).  %s has been opened read-only."
+msgstr ""
+"%s ¤òÆɤ߽ñ¤­²Äǽ¤Ê¾õÂ֤˥ª¡¼¥×¥ó¤Ç¤­¤Þ¤»¤ó(%s)¡£%s ¤ÏÆɤ߹þ¤ß¤Î¤ß²Äǽ¤Ê¾õÂÖ"
+"¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤Þ¤·¤¿¡£"
+
+#: libparted/arch/beos.c:411 libparted/arch/linux.c:1431
+#, c-format
+msgid "%s during seek for read on %s"
+msgstr "%s: %s ¤«¤éÆɤ߹þ¤ßÃæ¤Î¥·¡¼¥¯¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£"
+
+#: libparted/arch/beos.c:444 libparted/arch/gnu.c:449 libparted/arch/gnu.c:548
+#: libparted/arch/gnu.c:676 libparted/arch/linux.c:1391
+#: libparted/arch/linux.c:1469
+#, c-format
+msgid "%s during read on %s"
+msgstr "%s: %s ¤«¤éÆɤ߹þ¤ßÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£"
+
+#: libparted/arch/beos.c:480 libparted/arch/gnu.c:509
+#: libparted/arch/linux.c:1546
+#, c-format
+msgid "Can't write to %s, because it is opened read-only."
+msgstr "Æɤ߹þ¤ß¤Î¤ß¤¬²Äǽ¤Ê¤è¤¦¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢%s¤Ë½ñ¤­¤³¤á¤Þ¤»¤ó¡£"
+
+#: libparted/arch/beos.c:496 libparted/arch/linux.c:1570
+#, c-format
+msgid "%s during seek for write on %s"
+msgstr "%s: %s ¤Ë½ñ¤­¤³¤ßÃæ¤Î¥·¡¼¥¯¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£"
+
+#: libparted/arch/beos.c:533 libparted/arch/gnu.c:585 libparted/arch/gnu.c:630
+#: libparted/arch/gnu.c:707 libparted/arch/linux.c:1517
+#: libparted/arch/linux.c:1612 libparted/arch/linux.c:1684
+#, c-format
+msgid "%s during write on %s"
+msgstr "%s: %s ¤Ë½ñ¤­¤³¤ßÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£"
+
+#: debug/clearfat/clearfat.c:63 partprobe/partprobe.c:137
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:67
+#, c-format
+msgid ""
+"Usage: %s [OPTION]\n"
+"  or:  %s DEVICE MINOR\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:70
+msgid ""
+"Clear unused space on a FAT partition (a GNU Parted testing tool).\n"
+"\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:74
+msgid "      --help     display this help and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:75
+msgid "      --version  output version information and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:77 partprobe/partprobe.c:154
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:285
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:290
+#, fuzzy, c-format
+msgid "too many arguments"
+msgstr "ÉÔÎÉ¥Ú¡¼¥¸¤¬Â¿¤¹¤®¤Þ¤¹¡£"
+
+#: partprobe/partprobe.c:141
+#, c-format
+msgid "Usage: %s [OPTION] [DEVICE]...\n"
+msgstr ""
+
+#: partprobe/partprobe.c:142
+msgid ""
+"Inform the OS of partition table changes.\n"
+"\n"
+"  -d, --no-update  don't update the kernel\n"
+"  -s, --summary    print a summary of contents\n"
+"  -h, --help       display this help and exit\n"
+"  -v, --version    output version information and exit\n"
+msgstr ""
+
+#: partprobe/partprobe.c:150
+msgid ""
+"\n"
+"With no DEVICE, probe all partitions.\n"
+msgstr ""
+
+#: libparted/arch/gnu.c:94
+#, c-format
+msgid "Unable to open %s."
+msgstr "%s ¤ò³«¤±¤Þ¤»¤ó¡£"
+
+#: libparted/arch/gnu.c:114
+msgid "Unable to probe store."
+msgstr "¥Ç¥Ð¥¤¥¹¤Î¥×¥í¡¼¥Ö¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£"
+
+#: libparted/arch/gnu.c:352
+msgid ""
+"The partition table cannot be re-read.  This means you need to reboot before "
+"mounting any modified partitions.  You also need to reinstall your boot "
+"loader before you reboot (which may require mounting modified partitions).  "
+"It is impossible do both things!  So you'll need to boot off a rescue disk, "
+"and reinstall your boot loader from the rescue disk.  Read section 4 of the "
+"Parted User documentation for more information."
+msgstr ""
+"¥«¡¼¥Í¥ë¤Ï¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤ÎºÆÆɤ߹þ¤ß¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¤Î¤Ç¡¢Êѹ¹¤ò²Ã"
+"¤¨¤¿¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò mount ¤¹¤ëÁ°¤ËºÆµ¯Æ°¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤Þ¤¿¡¢ºÆµ¯Æ°¤¹¤ë"
+"Á°¤Ë¥Ö¡¼¥È¥í¡¼¥À¤òºÆ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹(¤³¤Î¤³¤È¤Ï¡¢Êѹ¹¤·¤¿¥Ñ¡¼"
+"¥Æ¥£¥·¥ç¥ó¤Î mount ¤¬É¬ÍפȤʤ뤫¤â¤·¤ì¤Þ¤»¤ó)¡£¤Ç¤â¤½¤ì¤é¤òξÊýƱ»þ¤Ë¤Ï¤Ç¤­"
+"¤Þ¤»¤ó! ¥ì¥¹¥­¥å¡¼¥Ç¥£¥¹¥¯¤ò»È¤Ã¤Æ¥Ö¡¼¥È¤·¤Æ¡¢¥Ö¡¼¥È¥í¡¼¥À¤ò¤¤¤ì¤Ê¤ª¤·¤Æ¤¯¤À"
+"¤µ¤¤¡£¤è¤ê¾Ü¤·¤¤¤³¤È¤Ï Parted ¤Î¥æ¡¼¥¶¥É¥­¥å¥á¥ó¥È¤Î4¾Ï¤òÆɤó¤Ç¤¯¤À¤µ¤¤¡£"
+
+#: libparted/arch/gnu.c:369
+#, c-format
+msgid ""
+"The partition table on %s cannot be re-read (%s).  This means the Hurd knows "
+"nothing about any modifications you made.  You should reboot your computer "
+"before doing anything with %s."
+msgstr ""
+"¥«¡¼¥Í¥ë¤Ï %s ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤ÎÆâÍƤòºÆÆɤ߹þ¤ß¤Ç¤­¤Þ¤»¤ó(%s)¡£¤³¤ì"
+"¤Ï Hurd ¤Ï¤¢¤Ê¤¿¤¬¹Ô¤Ã¤¿Êѹ¹¤ò´ØÃΤ·¤Æ¤¤¤Ê¤¤¤³¤È¤ò°ÕÌ£¤·¤Æ¤¤¤Þ¤¹¡£%s ¤ËÂФ·¤Æ"
+"²¿¤«Áàºî¤ò¤¹¤ëÁ°¤Ë¥³¥ó¥Ô¥å¡¼¥¿¤òºÆµ¯Æ°¤¹¤ë¤Ù¤­¤Ç¤¹¡£"
+
+#: libparted/arch/gnu.c:380 parted/parted.c:2443
+msgid ""
+"You should reinstall your boot loader before rebooting.  Read section 4 of "
+"the Parted User documentation for more information."
+msgstr ""
+"ºÆµ¯Æ°¤¹¤ëÁ°¤Ë¥Ö¡¼¥È¥í¡¼¥À¤ò¤¤¤ì¤Ê¤ª¤¹¤Ù¤­¤Ç¤¹¡£¾ÜºÙ¤Ï Parted ¥æ¡¼¥¶¥É¥­¥å¥á"
+"¥ó¥È¤Î4¾Ï¤òÆɤó¤Ç¤¯¤À¤µ¤¤¡£"
+
+#: libparted/arch/gnu.c:772
+#, c-format
+msgid "%s trying to sync %s to disk"
+msgstr "%s: %s ¤òƱ´üÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£"
+
+#: libparted/arch/linux.c:408
+#, c-format
+msgid "Could not stat device %s - %s."
+msgstr "¥Ç¥Ð¥¤¥¹ %s ¤òÄ´¤Ù¤é¤ì¤Þ¤»¤ó: %s"
+
+#: libparted/arch/linux.c:523
+#, c-format
+msgid ""
+"Could not determine sector size for %s: %s.\n"
+"Using the default sector size (%lld)."
+msgstr ""
+"%s ¤Î¥»¥¯¥¿¥µ¥¤¥º¤¬·èÄê¤Ç¤­¤Þ¤»¤ó: %s\n"
+"¥Ç¥Õ¥©¥ë¥È¤Î¥»¥¯¥¿¥µ¥¤¥º (%lld) ¤ò»È¤¤¤Þ¤¹¡£"
+
+#: libparted/arch/linux.c:539
+#, c-format
+msgid ""
+"Device %s has a logical sector size of %lld.  Not all parts of GNU Parted "
+"support this at the moment, and the working code is HIGHLY EXPERIMENTAL.\n"
+msgstr ""
+"%s ¤Î ÏÀÍý¥»¥¯¥¿¥µ¥¤¥º¤¬ %lld ¤Ç¤¹¡£¤¤¤Þ¤Î¤È¤³¤í GNU Parted ¤ÏÁ´¤Æ¤Îµ¡Ç½¤Ë¤ª"
+"¤¤¤Æ¡¢¤³¤Î¥µ¥¤¥º¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¯¡¢°ì±þÆ°ºî¤¹¤ë¾ì¹ç¤Ç¤â¤Þ¤È¤â¤Ë"
+"Æ°ºî¤¹¤ë¤È¤Ï¸Â¤ê¤Þ¤»¤ó¡£\n"
+
+#: libparted/arch/linux.c:579
+#, c-format
+msgid "Unable to determine the size of %s (%s)."
+msgstr "%s ¤Î¥µ¥¤¥º¤ò·èÄê¤Ç¤­¤Þ¤»¤ó(%s)"
+
+#: libparted/arch/linux.c:668
+#, c-format
+msgid "Could not get identity of device %s - %s"
+msgstr "¥Ç¥Ð¥¤¥¹ %s ¤Î identity ¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó: %s"
+
+#: libparted/arch/linux.c:677
+msgid "Generic IDE"
+msgstr "°ìÈÌŪ¤Ê IDE"
+
+#: libparted/arch/linux.c:698
+#, c-format
+msgid ""
+"Device %s has multiple (%d) logical sectors per physical sector.\n"
+"GNU Parted supports this EXPERIMENTALLY for some special disk label/file "
+"system combinations, e.g. GPT and ext2/3.\n"
+"Please consult the web site for up-to-date information."
+msgstr ""
+"¥Ç¥Ð¥¤¥¹ %s ¤Ë¤Ï¡¢ÊªÍý¥»¥¯¥¿°ì¤Ä¤Ë¤Ä¤­Ê£¿ô (%d¥»¥¯¥¿) ¤ÎÏÀÍý¥»¥¯¥¿¤¬¤¢¤ê¤Þ"
+"¤¹¡£\n"
+"GNU Parted ¤Ï¡¢¤¢¤ëÆÃÄê¤Î¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÁȤ߹ç¤ï¤»¤Ë¤Ä¤¤"
+"¤Æ¡¢¤³¤Î¤è¤¦¤Ê¾ì¹ç¤ò¡Ö¼Â¸³Åª¤Ë¡×¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£Î㤨¤Ð¡¢GPT ¤È ext2/3 ¤È"
+"¤¤¤Ã¤¿ÁȤ߹ç¤ï¤»¤Ç¤¹¡£\n"
+"ºÇ¿·¤Î¾ðÊó¤Ï web ¥µ¥¤¥È¤ò¤´Í÷¤¯¤À¤µ¤¤¡£"
+
+#: libparted/arch/linux.c:873
+#, c-format
+msgid "Error initialising SCSI device %s - %s"
+msgstr "SCSI ¥Ç¥Ð¥¤¥¹ %s ¤Î½é´ü²½¤Ë¼ºÇÔ¤·¤Þ¤·¤¿: %s"
+
+#: libparted/arch/linux.c:928
+#, c-format
+msgid ""
+"The device %s has zero length, and can't possibly store a file system or "
+"partition table.  Perhaps you selected the wrong device?"
+msgstr ""
+"¥Ç¥Ð¥¤¥¹ %s ¤ÎŤµ¤¬ 0 ¤Ê¤Î¤Ç¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ä¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤òµ­Ï¿"
+"¤Ç¤­¤Þ¤»¤ó¡£¥Ç¥Ð¥¤¥¹¤ÎÁªÂò¤ò´Ö°ã¤Ã¤Æ¤¤¤Ê¤¤¤«³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£"
+
+#: libparted/arch/linux.c:1032
+#, c-format
+msgid ""
+"Unable to determine geometry of file/device %s.  You should not use Parted "
+"unless you REALLY know what you're doing!"
+msgstr ""
+"¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¥Ç¥Ð¥¤¥¹ %s ¤Î geometry ¤ò·èÄê¤Ç¤­¤Þ¤»¤ó¡£¼«Ê¬¤Ç²¿¤ò¤·¤Æ¤¤¤ë¤«"
+"¤è¤¯Íý²ò¤·¤Æ¤¤¤Ê¤±¤ì¤Ð Parted ¤ò»È¤¦¤Ù¤­¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£"
+
+#: libparted/arch/linux.c:1110
+msgid "DAC960 RAID controller"
+msgstr "DAC960 RAID ¥³¥ó¥È¥í¡¼¥é"
+
+#: libparted/arch/linux.c:1115
+msgid "Promise SX8 SATA Device"
+msgstr "Promise SX8 SATA ¥Ç¥Ð¥¤¥¹"
+
+#: libparted/arch/linux.c:1120
+msgid "IBM S390 DASD drive"
+msgstr "IBM S390 DASD ¥É¥é¥¤¥Ö"
+
+#: libparted/arch/linux.c:1125
+msgid "IBM iSeries Virtual DASD"
+msgstr "IBM iSeries Virtual DASD"
+
+#: libparted/arch/linux.c:1130
+msgid "Compaq Smart Array"
+msgstr "Compaq Smart Array"
+
+#: libparted/arch/linux.c:1135
+msgid "ATARAID Controller"
+msgstr "ATA RAID ¥³¥ó¥È¥í¡¼¥é"
+
+#: libparted/arch/linux.c:1140
+msgid "I2O Controller"
+msgstr "I2O ¥³¥ó¥È¥í¡¼¥é"
+
+#: libparted/arch/linux.c:1145
+msgid "User-Mode Linux UBD"
+msgstr "User-Mode Linux UBD"
+
+#: libparted/arch/linux.c:1156
+msgid "Linux device-mapper"
+msgstr "Linux device-mapper"
+
+#: libparted/arch/linux.c:1162
+msgid "Unknown"
+msgstr "ÉÔÌÀ"
+
+#: libparted/arch/linux.c:1169
+msgid "ped_device_new()  Unsupported device type"
+msgstr "ped_device_new()  ¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¼ïÎà¤Î¥Ç¥Ð¥¤¥¹¤Ç¤¹¡£"
+
+#: libparted/arch/linux.c:2083
+#, c-format
+msgid ""
+"Error informing the kernel about modifications to partition %s -- %s.  This "
+"means Linux won't know about any changes you made to %s until you reboot -- "
+"so you shouldn't mount it or use it in any way before rebooting."
+msgstr ""
+"¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %s ¤ÎÊѹ¹¤ò¥«¡¼¥Í¥ë¤ËÅÁ¤¨¤ëºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿ -- %s¡£"
+"¥«¡¼¥Í¥ë¤Ï %s ¤ËÂФ·¤Æ¤Ê¤µ¤ì¤¿Êѹ¹¤òºÆµ¯Æ°¤¹¤ë¤Þ¤Ç´ØÃΤ·¤Þ¤»¤ó¤Î¤Ç¡¢¤³¤Î¥Ñ¡¼"
+"¥Æ¥£¥·¥ç¥ó¤ò mount ¤·¤è¤¦¤È¤·¤¿¤ê¡¢¤Ê¤ó¤é¤«¤ÎÁàºî¤ò¤¹¤Ù¤­¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£"
+
+#: libparted/arch/linux.c:2262
+#, c-format
+msgid ""
+"parted was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made. "
+msgstr ""
+"parted ¤Ï %s ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤ÎÆâÍƤòºÆÆɤ߹þ¤ß¤Ç¤­¤Þ¤»¤ó(%s)¡£¤³¤ì"
+"¤Ï Linux ¥«¡¼¥Í¥ë¤Ï¤¢¤Ê¤¿¤¬¹Ô¤Ã¤¿Êѹ¹¤ò´ØÃΤ·¤Æ¤¤¤Ê¤¤¤³¤È¤ò°ÕÌ£¤·¤Æ¤¤¤Þ¤¹¡£"
+
+#: libparted/arch/linux.c:2368
+#, c-format
+msgid ""
+"The kernel was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made until you "
+"reboot.  You should reboot your computer before doing anything with %s."
+msgstr ""
+"¥«¡¼¥Í¥ë¤Ï %s ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤ÎÆâÍƤòºÆÆɤ߹þ¤ß¤Ç¤­¤Þ¤»¤ó(%s)¡£¤³¤ì"
+"¤ÏºÆµ¯Æ°¤¹¤ë¤Þ¤Ç Linux ¥«¡¼¥Í¥ë¤Ï¤¢¤Ê¤¿¤¬¹Ô¤Ã¤¿Êѹ¹¤ò´ØÃΤ·¤Æ¤¤¤Ê¤¤¤³¤È¤ò°ÕÌ£"
+"¤·¤Æ¤¤¤Þ¤¹¡£%s ¤ËÂФ·¤Æ²¿¤«Áàºî¤ò¤¹¤ëÁ°¤Ë¥³¥ó¥Ô¥å¡¼¥¿¤òºÆµ¯Æ°¤¹¤ë¤Ù¤­¤Ç¤¹¡£"
+
+#: libparted/cs/geom.c:162
+msgid "Can't have the end before the start!"
+msgstr "½ªÎ»°ÌÃÖ¤ò³«»Ï°ÌÃÖ¤ò±Û¤¨¤ÆÆ°¤«¤¹¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£"
+
+#: libparted/cs/geom.c:169
+msgid "Can't have a partition outside the disk!"
+msgstr "¥Ç¥£¥¹¥¯¤Î³°Â¦¤Ë¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ïºî¤ì¤Þ¤»¤ó¡£"
+
+#: libparted/cs/geom.c:366
+#, c-format
+msgid "Attempt to write sectors %ld-%ld outside of partition on %s."
+msgstr ""
+"½ñ¤­¹þ¤â¤¦¤È¤·¤¿¥»¥¯¥¿ (%ld-%ld) ¤Ï %s ¾å¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î³°¤Ë¤¢¤ê¤Þ¤¹¡£"
+
+#: libparted/cs/geom.c:406 libparted/fs/linux_swap/linux_swap.c:475
+msgid "checking for bad blocks"
+msgstr "ÉÔÎÉ¥Ö¥í¥Ã¥¯¤ò¥Á¥§¥Ã¥¯Ãæ"
+
+#: libparted/debug.c:102
+#, c-format
+msgid "Backtrace has %d calls on stack:\n"
+msgstr ""
+
+#: libparted/debug.c:114
+#, c-format
+msgid "Assertion (%s) at %s:%d in function %s() failed."
+msgstr ""
+
+#: libparted/disk.c:203
+#, c-format
+msgid "Unable to open %s - unrecognised disk label."
+msgstr "%s ¤ò³«¤±¤Þ¤»¤ó¡£¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤¬Ç§¼±¤Ç¤­¤Þ¤»¤ó¡£"
+
+#: libparted/disk.c:471
+#, c-format
+msgid ""
+"This libparted doesn't have write support for %s.  Perhaps it was compiled "
+"read-only."
+msgstr ""
+"»ÈÍѤ·¤Æ¤¤¤ë libparted ¤Ï %s ¤Î½ñ¤­¤³¤ß¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¡£Æɤ߹þ¤ßÀìÍѤÇ"
+"¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤¤¤ë¤È»×¤ï¤ì¤Þ¤¹¡£"
+
+#: libparted/disk.c:598
+#, c-format
+msgid "Partition %d is %s, but the file system is %s."
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %d ¤Ï %s ¤Ç¤¢¤ë¤Î¤Ë¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï %s ¤Ç¤¹¡£"
+
+#: libparted/disk.c:1075
+#, c-format
+msgid "%s disk labels do not support extended partitions."
+msgstr "%s ¤Î¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤Ï³ÈÄ¥¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¡£"
+
+#: libparted/disk.c:1634
+#, c-format
+msgid "%s disk labels don't support logical or extended partitions."
+msgstr ""
+"%s ¤Î¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤ÏÏÀÍý¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ä³ÈÄ¥¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤Þ¤»"
+"¤ó"
+
+#: libparted/disk.c:1647
+msgid "Too many primary partitions."
+msgstr "¥×¥é¥¤¥Þ¥ê¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬Â¿¤¹¤®¤Þ¤¹¡£"
+
+#: libparted/disk.c:1656
+#, c-format
+msgid ""
+"Can't add a logical partition to %s, because there is no extended partition."
+msgstr "³ÈÄ¥¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬¤Ê¤¤¤Î¤Ç¡¢ÏÀÍý¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò %s ¤Ëºî¤ì¤Þ¤»¤ó¡£"
+
+#: libparted/disk.c:1680
+#, c-format
+msgid "Can't have more than one extended partition on %s."
+msgstr "%s ¤Ë¤Ï 1 ¸Ä¤·¤«³ÈÄ¥¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºî¤ì¤Þ¤»¤ó¡£"
+
+#: libparted/disk.c:1690
+msgid "Can't have logical partitions outside of the extended partition."
+msgstr "ÏÀÍý¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò³ÈÄ¥¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î³°¤Ë¤Ï»ý¤Æ¤Þ¤»¤ó¡£"
+
+#: libparted/disk.c:1715
+#, c-format
+msgid "Can't have a logical partition outside of the extended partition on %s."
+msgstr "%s ¤Î³ÈÄ¥¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î³°¤ËÏÀÍý¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ïºî¤ì¤Þ¤»¤ó¡£"
+
+#: libparted/disk.c:1725 libparted/disk.c:1779 libparted/disk.c:1945
+msgid "Can't have overlapping partitions."
+msgstr "½Å¤Ê¤ê¤Î¤¢¤ë¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï»ý¤Æ¤Þ¤»¤ó¡£"
+
+#: libparted/disk.c:1733
+msgid "Can't have a primary partition inside an extended partition."
+msgstr "³ÈÄ¥¥Ñ¡¼¥Æ¥£¥·¥ç¥óÆâ¤Ë¥×¥é¥¤¥Þ¥ê¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ïºî¤ì¤Þ¤»¤ó¡£"
+
+#: libparted/disk.c:2140
+msgid "metadata"
+msgstr "¥á¥¿¾ðÊó"
+
+#: libparted/disk.c:2142
+msgid "free"
+msgstr "¶õ¤­"
+
+#: libparted/disk.c:2144 parted/ui.c:1169 parted/ui.c:1197
+msgid "extended"
+msgstr "³ÈÄ¥"
+
+#: libparted/disk.c:2146 parted/ui.c:1173 parted/ui.c:1201
+msgid "logical"
+msgstr "ÏÀÍý"
+
+#: libparted/disk.c:2148 parted/ui.c:1165 parted/ui.c:1193
+msgid "primary"
+msgstr "¥×¥é¥¤¥Þ¥ê"
+
+#: libparted/disk.c:2164
+msgid "boot"
+msgstr "boot"
+
+#: libparted/disk.c:2166
+msgid "root"
+msgstr "root"
+
+#: libparted/disk.c:2168
+msgid "swap"
+msgstr "swap"
+
+#: libparted/disk.c:2170
+msgid "hidden"
+msgstr "hidden"
+
+#: libparted/disk.c:2172
+msgid "raid"
+msgstr "raid"
+
+#: libparted/disk.c:2174
+msgid "lvm"
+msgstr "lvm"
+
+#: libparted/disk.c:2176
+msgid "lba"
+msgstr "lba"
+
+#: libparted/disk.c:2178
+msgid "hp-service"
+msgstr "hp-service"
+
+#: libparted/disk.c:2180
+msgid "palo"
+msgstr "palo"
+
+#: libparted/disk.c:2182
+msgid "prep"
+msgstr "prep"
+
+#: libparted/disk.c:2184
+msgid "msftres"
+msgstr "msftres"
+
+#: libparted/disk.c:2190
+#, c-format
+msgid "Unknown partition flag, %d."
+msgstr "%d ¤ÏÉÔÌÀ¤Ê¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Õ¥é¥°¤Ç¤¹¡£"
+
+#: libparted/exception.c:78
+msgid "Information"
+msgstr "ÄÌÃÎ"
+
+#: libparted/exception.c:79
+msgid "Warning"
+msgstr "·Ù¹ð"
+
+#: libparted/exception.c:80
+msgid "Error"
+msgstr "¥¨¥é¡¼"
+
+#: libparted/exception.c:81
+msgid "Fatal"
+msgstr "Ã×̿Ū¥¨¥é¡¼"
+
+#: libparted/exception.c:82
+msgid "Bug"
+msgstr "¥Ð¥°"
+
+#: libparted/exception.c:83
+msgid "No Implementation"
+msgstr "̤¼ÂÁõ"
+
+#: libparted/exception.c:87
+msgid "Fix"
+msgstr "½¤Àµ"
+
+#: libparted/exception.c:88
+msgid "Yes"
+msgstr "¤Ï¤¤(Y)"
+
+#: libparted/exception.c:89
+msgid "No"
+msgstr "¤¤¤¤¤¨(N)"
+
+#: libparted/exception.c:90
+msgid "OK"
+msgstr "OK"
+
+#: libparted/exception.c:91
+msgid "Retry"
+msgstr "¤ä¤ê¤Ê¤ª¤·(R)"
+
+#: libparted/exception.c:92
+msgid "Ignore"
+msgstr "̵»ë(I)"
+
+#: libparted/exception.c:93
+msgid "Cancel"
+msgstr "¼è¾Ã(C)"
+
+#: libparted/exception.c:133
+#, c-format
+msgid ""
+"A bug has been detected in GNU Parted.  Refer to the web site of parted "
+"http://www.gnu.org/software/parted/parted.html for more informations of what "
+"could be useful for bug submitting!  Please email a bug report to bug-"
+"parted@gnu.org containing at least the version (%s) and the following "
+"message:  "
+msgstr ""
+"GNU parted ¤Ë¥Ð¥°¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿¡£http://www.gnu.org/software/parted/parted."
+"html ¤ò¸«¤Æ¡¢¥Ð¥°¥ì¥Ý¡¼¥È¤ËɬÍפʾðÊó¤òÆÀ¤Æ¤¯¤À¤µ¤¤¡£bug-parted@gnu.org ¤Ë "
+"version(%s) ¤È°Ê²¼¤Î¥á¥Ã¥»¡¼¥¸¤ò´Þ¤á¤Æ¥á¡¼¥ë¤ÇÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤: "
+
+#: libparted/filesys.c:384
+msgid "Could not detect file system."
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¸¡½Ð¤Ç¤­¤Þ¤»¤ó¡£"
+
+#: libparted/filesys.c:395
+msgid "The file system is bigger than its volume!"
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¥Ü¥ê¥å¡¼¥à¤è¤ê¤âÂ礭¤¤¤Ç¤¹!"
+
+#: libparted/filesys.c:403
+#, c-format
+msgid "Support for opening %s file systems is not implemented yet."
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à(%s)¤Î¥ª¡¼¥×¥ó¤Ï̤¼ÂÁõ¤Ç¤¹¡£"
+
+#: libparted/filesys.c:445
+#, c-format
+msgid "Support for creating %s file systems is not implemented yet."
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à(%s)¤ÎºîÀ®¤Ï̤¼ÂÁõ¤Ç¤¹¡£"
+
+#: libparted/filesys.c:505
+#, c-format
+msgid "Support for checking %s file systems is not implemented yet."
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à(%s)¤ËÂФ¹¤ë¥Á¥§¥Ã¥¯¤Ï̤¼ÂÁõ¤Ç¤¹¡£"
+
+#: libparted/filesys.c:571
+msgid "raw block copying"
+msgstr "¥Ö¥í¥Ã¥¯¤ò¤½¤Î¤Þ¤Þ¥³¥Ô¡¼Ãæ"
+
+#: libparted/filesys.c:582
+msgid "growing file system"
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òÂ礭¤¯¤·¤Æ¤¤¤Þ¤¹"
+
+#: libparted/filesys.c:622
+msgid "Can't copy onto an overlapping partition."
+msgstr "½Å¤Ê¤ê¤Î¤¢¤ë¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¤Ï¥³¥Ô¡¼¤Ç¤­¤Þ¤»¤ó¡£"
+
+#: libparted/filesys.c:644
+#, c-format
+msgid ""
+"Direct support for copying file systems is not yet implemented for %s.  "
+"However, support for resizing is implemented.  Therefore, the file system "
+"can be copied if the new partition is at least as big as the old one.  So, "
+"either shrink the partition you are trying to copy, or copy to a bigger "
+"partition."
+msgstr ""
+"%s ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥³¥Ô¡¼¤ÎľÀÜŪ¤Ê¼ÂÁõ¤Ï¤Þ¤À¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£¿·¤·¤¤¥Ñ¡¼"
+"¥Æ¥£¥·¥ç¥ó¤¬¸Å¤¤¤Î¤È¾¯¤Ê¤¯¤È¤âƱ¤¸¤¯¤é¤¤¤ÎÂ礭¤µ¤Ç¤¢¤ì¤Ð¥³¥Ô¡¼¤Ç¤­¤Þ¤¹¡£¥ê¥µ"
+"¥¤¥º¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò¾®¤µ¤¯¤·¤Æ¤«¤é¥³¥Ô¡¼¤·¤Æ¤ß¤ë¤«¡¢"
+"¤â¤Ã¤ÈÂ礭¤¤¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¥³¥Ô¡¼¤·¤Æ¤¯¤À¤µ¤¤¡£"
+
+#: libparted/filesys.c:658
+#, c-format
+msgid "Support for copying %s file systems is not implemented yet."
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à(%s)¤Î¥³¥Ô¡¼¤Ï̤¼ÂÁõ¤Ç¤¹¡£"
+
+#: libparted/filesys.c:696
+#, c-format
+msgid "Support for resizing %s file systems is not implemented yet."
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à(%s)¤Î¥ê¥µ¥¤¥º¤Ï̤¼ÂÁõ¤Ç¤¹¡£"
+
+#: libparted/fs/reiserfs/reiserfs.c:315
+msgid "creating"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:402
+#, fuzzy
+msgid "The file system is in an invalid state.  Perhaps it is mounted?"
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¥Ü¥ê¥å¡¼¥à¤è¤ê¤âÂ礭¤¤¤Ç¤¹!"
+
+#: libparted/fs/reiserfs/reiserfs.c:410
+msgid "The file system is in old (unresizeable) format."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:416
+msgid "Invalid free blocks count.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:431
+#, fuzzy
+msgid "checking"
+msgstr "check"
+
+#: libparted/fs/reiserfs/reiserfs.c:437
+msgid "Reiserfs tree seems to be corrupted.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:449
+#, fuzzy
+msgid ""
+"The reiserfs file system passed a basic check.  For a more comprehensive "
+"check, run reiserfsck --check."
+msgstr ""
+"¤³¤Î ext2 ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï´Êñ¤Ê¥Á¥§¥Ã¥¯¤ò¥Ñ¥¹¤·¤Þ¤·¤¿¡£¤µ¤é¤Ë¥Á¥§¥Ã¥¯¤¹¤ë"
+"¤Ë¤Ï e2fsck ¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡£"
+
+#: libparted/fs/reiserfs/reiserfs.c:474
+#, fuzzy
+msgid "Sorry, can't move the start of reiserfs partitions yet."
+msgstr "»ÄÇ°¤Ç¤¹¤¬¡¢¤Þ¤À ext2 ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î³«»Ï°ÌÃ֤ϰÜÆ°¤Ç¤­¤Þ¤»¤ó¡£"
+
+#: libparted/fs/reiserfs/reiserfs.c:490
+msgid "Couldn't reopen device abstraction layer for read/write."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:508 libparted/fs/ext2/ext2_resize.c:552
+#: libparted/fs/hfs/hfs.c:250 libparted/fs/hfs/hfs.c:629
+msgid "shrinking"
+msgstr "½Ì¾®Ãæ"
+
+#: libparted/fs/reiserfs/reiserfs.c:520
+#, fuzzy
+msgid "expanding"
+msgstr "·Ù¹ð"
+
+#: libparted/fs/reiserfs/reiserfs.c:592
+msgid "Couldn't create reiserfs device abstraction handler."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:606
+#, fuzzy, c-format
+msgid "Device is too small for %lu blocks."
+msgstr "ext2 ¤Ë¤¹¤ë¤Ë¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¾®¤µ¤¹¤®¤Þ¤¹¡£"
+
+#: libparted/fs/reiserfs/reiserfs.c:615
+msgid "copying"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:682
+#, c-format
+msgid "Couldn't resolve symbol %s.  Error: %s."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:704
+msgid "GNU Parted found an invalid libreiserfs library."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:715
+#, c-format
+msgid ""
+"GNU Parted has detected libreiserfs interface version mismatch.  Found %d-%"
+"d, required %d. ReiserFS support will be disabled."
+msgstr ""
+
+#: libparted/labels/aix.c:137
+#, fuzzy
+msgid "Support for reading AIX disk labels is is not implemented yet."
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à(%s)¤ÎºîÀ®¤Ï̤¼ÂÁõ¤Ç¤¹¡£"
+
+#: libparted/labels/aix.c:148
+#, fuzzy
+msgid "Support for writing AIX disk labels is is not implemented yet."
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à(%s)¤ÎºîÀ®¤Ï̤¼ÂÁõ¤Ç¤¹¡£"
+
+#: libparted/labels/aix.c:161
+#, fuzzy
+msgid ""
+"Support for adding partitions to AIX disk labels is not implemented yet."
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à(%s)¤ÎºîÀ®¤Ï̤¼ÂÁõ¤Ç¤¹¡£"
+
+#: libparted/labels/aix.c:171
+#, fuzzy
+msgid ""
+"Support for duplicating partitions in AIX disk labels is not implemented yet."
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à(%s)¤ÎºîÀ®¤Ï̤¼ÂÁõ¤Ç¤¹¡£"
+
+#: libparted/labels/aix.c:189
+#, fuzzy
+msgid ""
+"Support for setting system type of partitions in AIX disk labels is not "
+"implemented yet."
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à(%s)¤ÎºîÀ®¤Ï̤¼ÂÁõ¤Ç¤¹¡£"
+
+#: libparted/labels/aix.c:199
+#, fuzzy
+msgid "Support for setting flags in AIX disk labels is not implemented yet."
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à(%s)¤ÎºîÀ®¤Ï̤¼ÂÁõ¤Ç¤¹¡£"
+
+#: libparted/labels/bsd.c:501 libparted/labels/dasd.c:755
+#: libparted/labels/dos.c:1974 libparted/labels/dvh.c:770
+#: libparted/labels/gpt.c:1448 libparted/labels/loop.c:248
+#: libparted/labels/mac.c:1408 libparted/labels/pc98.c:759
+#: libparted/labels/rdb.c:1041 libparted/labels/sun.c:705
+msgid "Unable to satisfy all constraints on the partition."
+msgstr "¤³¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÇÁ´¤Æ¤ÎÀ©Ìó¤òËþ¤¿¤»¤Þ¤»¤ó¡£"
+
+#: libparted/labels/bsd.c:526
+msgid "Unable to allocate a bsd disklabel slot."
+msgstr "BSD¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤Î¥¹¥í¥Ã¥È¤ò³ÎÊݤǤ­¤Þ¤»¤ó¡£"
+
+#: libparted/labels/dasd.c:166
+#, fuzzy
+msgid "Unable to determine the block size of this dasd"
+msgstr "%s ¤Î¥µ¥¤¥º¤ò·èÄê¤Ç¤­¤Þ¤»¤ó(%s)"
+
+#: libparted/labels/dasd.c:781
+#, fuzzy
+msgid "Unable to allocate a dasd disklabel slot"
+msgstr "BSD¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤Î¥¹¥í¥Ã¥È¤ò³ÎÊݤǤ­¤Þ¤»¤ó¡£"
+
+#: libparted/labels/dos.c:827
+#, c-format
+msgid "Invalid partition table on %s -- wrong signature %x."
+msgstr ""
+"%s ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤¬ÉÔÀµ¤Ç¤¹¡£%x ¤È¤¤¤¦¥·¥°¥Í¥Á¥ã¤Ï¤¢¤ä¤Þ¤ê¤Ç¤¹¡£"
+
+#: libparted/labels/dos.c:855
+#, c-format
+msgid "Invalid partition table - recursive partition on %s."
+msgstr ""
+"¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤¬ÉÔÀµ¤Ç¤¹¡£ºÆµ¢Åª¤Ê¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬ %s ¤Ë¤¢¤ê¤Þ¤¹¡£"
+
+#: libparted/labels/dos.c:1318
+msgid "Extended partitions cannot be hidden on msdos disk labels."
+msgstr "MSDOS ¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤Ç³ÈÄ¥¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï±£¤»¤Þ¤»¤ó¡£"
+
+#: libparted/labels/dos.c:1958
+msgid "Parted can't resize partitions managed by Windows Dynamic Disk."
+msgstr ""
+"¥À¥¤¥Ê¥ß¥Ã¥¯¥Ç¥£¥¹¥¯¤Ë»È¤ï¤ì¤Æ¤¤¤ë¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï Parted ¤Ç¤Ï¥ê¥µ¥¤¥º¤Ç¤­¤Þ"
+"¤»¤ó¡£"
+
+#: libparted/labels/dvh.c:190
+#, c-format
+msgid "%s has no extended partition (volume header partition)."
+msgstr ""
+"%s ¤Ï°ì¤Ä¤â³ÈÄ¥¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡Ê¥Ü¥ê¥å¡¼¥à¥Ø¥Ã¥À¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡Ë¤ò»ý¤Ã¤Æ¤¤¤Þ¤»"
+"¤ó¡£"
+
+#: libparted/labels/dvh.c:313
+msgid "Checksum is wrong, indicating the partition table is corrupt."
+msgstr "¥Á¥§¥Ã¥¯¥µ¥à¤ÎÃͤ¬°ã¤¤¤Þ¤¹¡£¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤¬²õ¤ì¤Æ¤¤¤Þ¤¹¡£"
+
+#: libparted/labels/dvh.c:616
+msgid "Only primary partitions can be root partitions."
+msgstr "¥×¥é¥¤¥Þ¥ê¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤À¤±¤¬¥ë¡¼¥È¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¤Ê¤ì¤Þ¤¹¡£"
+
+#: libparted/labels/dvh.c:630
+msgid "Only primary partitions can be swap partitions."
+msgstr "¥×¥é¥¤¥Þ¥ê¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤À¤±¤¬¥¹¥ï¥Ã¥×¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¤Ê¤ì¤Þ¤¹¡£"
+
+#: libparted/labels/dvh.c:644
+msgid "Only logical partitions can be a boot file."
+msgstr "ÏÀÍý¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤À¤±¤¬¥Ö¡¼¥È¥Õ¥¡¥¤¥ë¤Ë¤Ê¤ì¤Þ¤¹¡£"
+
+#: libparted/labels/dvh.c:721
+msgid "Only logical partitions (boot files) have a name."
+msgstr "Æâ¤Ë¥×¥é¥¤¥Þ¥ê¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ïºî¤ì¤Þ¤»¤ó¡£<"
+
+#: libparted/labels/dvh.c:812
+msgid "Too many primary partitions"
+msgstr "¥×¥é¥¤¥Þ¥ê¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬Â¿¤¹¤®¤Þ¤¹¡£"
+
+#: libparted/labels/fdasd.c:103
+#, c-format
+msgid ""
+"%s open error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:107
+#, c-format
+msgid ""
+"%s seek error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:110
+#, c-format
+msgid ""
+"%s read error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:113
+#, fuzzy, c-format
+msgid ""
+"%s write error\n"
+"%s\n"
+msgstr "%s: %s ¤Ë½ñ¤­¤³¤ßÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£"
+
+#: libparted/labels/fdasd.c:116
+#, c-format
+msgid ""
+"%s IOCTL error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:119
+#, c-format
+msgid ""
+"%s API version mismatch\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:122
+#, c-format
+msgid ""
+"%s Unsupported disk type\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:126
+#, c-format
+msgid ""
+"%s Unsupported disk format\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:130
+#, fuzzy, c-format
+msgid ""
+"%s Disk in use\n"
+"%s\n"
+msgstr "¥Ç¥£¥¹¥¯ %s: %s\n"
+
+#: libparted/labels/fdasd.c:133
+#, c-format
+msgid ""
+"%s Config file syntax error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:137
+#, c-format
+msgid ""
+"%s Volume label is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:141
+#, c-format
+msgid ""
+"%s a data set name is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:145
+#, c-format
+msgid ""
+"%s space allocation\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:149
+#, c-format
+msgid ""
+"%s device verification failed\n"
+"The specified device is not a valid DASD device\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:154
+#, c-format
+msgid ""
+"%s Fatal error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/gpt.c:454
+#, c-format
+msgid ""
+"%s contains GPT signatures, indicating that it has a GPT table.  However, it "
+"does not have a valid fake msdos partition table, as it should.  Perhaps it "
+"was corrupted -- possibly by a program that doesn't understand GPT partition "
+"tables.  Or perhaps you deleted the GPT table, and are now using an msdos "
+"partition table.  Is this a GPT partition table?"
+msgstr ""
+"%s ¤Ï GPT ¥Æ¡¼¥Ö¥ë¤Î¸ºß¤ò¼¨¤¹ GPT ¤Î¥·¥°¥Í¥Á¥ã¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¤¬¡¢»ý¤Ã¤Æ¤¤¤ë¤Ù"
+"¤­¸«¤»¤«¤±¤Î msdos ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó¡£¤ª¤½¤é¤¯²õ¤ì¤Æ¤¤¤ë"
+"¤Î¤Ç¤·¤ç¤¦¡£GPT ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤òÍý²ò¤·¤Ê¤¤¥×¥í¥°¥é¥à¤¬²õ¤·¤Æ¤·¤Þ¤Ã¤¿"
+"¤Î¤«¤â¤·¤ì¤Þ¤»¤ó¡£¤¢¤ë¤¤¤Ï¡¢GPT ¥Æ¡¼¥Ö¥ë¤ò¼«¤é¾Ã¤·¤Æ¤¤¤Æ¡¢msdos ¥Ñ¡¼¥Æ¥£¥·¥ç"
+"¥ó¥Æ¡¼¥Ö¥ë¤ò»È¤Ã¤Æ¤¤¤ë¤Î¤«¤â¤·¤ì¤Þ¤»¤ó¡£¤³¤Î¥Æ¡¼¥Ö¥ë¤Ï GPT ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼"
+"¥Ö¥ë¤Ç¤¹¤«¡©"
+
+#: libparted/labels/gpt.c:648
+#, c-format
+msgid ""
+"The format of the GPT partition table is version %x, which is newer than "
+"what Parted can recognise.  Please tell us!  bug-parted@gnu.org"
+msgstr ""
+"GPT ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥Ð¡¼¥¸¥ç¥ó¤¬ %x ¤Ç parted ¤ÎÍý²ò¤Ç"
+"¤­¤ë¤â¤Î¤è¤ê¿·¤·¤¤¤Ç¤¹¡£ bug-parted@gnu.org ¤Þ¤ÇÊó¹ð¤·¤Æ¤¯¤À¤µ¤¤¡£"
+
+#: libparted/labels/gpt.c:698
+#, c-format
+msgid ""
+"Not all of the space available to %s appears to be used, you can fix the GPT "
+"to use all of the space (an extra %llu blocks) or continue with the current "
+"setting? "
+msgstr ""
+"%s ¤ÇÍøÍѲÄǽ¤ÊÎΰè¤Î°ìÉô¤¬ÍøÍѤµ¤ì¤Æ¤¤¤Þ¤»¤ó¡£GPT ¤ò½¤Àµ¤·¤ÆÁ´¤Æ¤ÎÎΰè¤òÍøÍÑ"
+"²Äǽ¤Ë¤¹¤ë¤«(%llu ¥Ö¥í¥Ã¥¯Áý¤¨¤Þ¤¹)¡¢¤³¤Î¤Þ¤Þ¤Ç³¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¤¬¡¢¤É¤¦"
+"¤·¤Þ¤¹¤«¡©"
+
+#: libparted/labels/gpt.c:827
+msgid ""
+"The backup GPT table is not at the end of the disk, as it should be.  This "
+"might mean that another operating system believes the disk is smaller.  Fix, "
+"by moving the backup to the end (and removing the old backup)?"
+msgstr ""
+"¤¢¤ë¤Ù¤­ GPT ¥Æ¡¼¥Ö¥ë¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×¤¬¥Ç¥£¥¹¥¯¤ÎºÇ¸å¤Ë¤¢¤ê¤Þ¤»¤ó¡£Â¾¤Î OS ¤¬"
+"¥Ç¥£¥¹¥¯¤Ï¤â¤Ã¤È¾®¤µ¤¤¤â¤Î¤À¤È»×¤Ã¤Æ¤¤¤ë¤Î¤«¤â¤·¤ì¤Þ¤»¤ó¡£¥Ð¥Ã¥¯¥¢¥Ã¥×¤òºÇ¸å"
+"¤Ë»ý¤Ã¤Æ¤­¤Æ¡Ê¸Å¤¤¥Ð¥Ã¥¯¥¢¥Ã¥×¤òºï½ü¤·¤Æ¡Ë½¤Éü¤·¤Þ¤¹¤«¡©"
+
+#: libparted/labels/gpt.c:862
+msgid ""
+"The primary GPT table is corrupt, but the backup appears OK, so that will be "
+"used."
+msgstr ""
+"¤³¤Î¥×¥é¥¤¥Þ¥ê GPT ¥Æ¡¼¥Ö¥ë¤Ï²õ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢¥Ð¥Ã¥¯¥¢¥Ã¥×¤ÏÌäÂê¤Ê¤¤¤è¤¦¤Ê¤Î"
+"¤Ç¡¢¤½¤Á¤é¤ò»È¤¤¤Þ¤¹¡£"
+
+#: libparted/labels/gpt.c:870
+msgid ""
+"Both the primary and backup GPT tables are corrupt.  Try making a fresh "
+"table, and using Parted's rescue feature to recover partitions."
+msgstr ""
+"¥×¥é¥¤¥Þ¥ê GPT ¥Æ¡¼¥Ö¥ë¤È¥Ð¥Ã¥¯¥¢¥Ã¥×¤ÎξÊý¤¬²õ¤ì¤Æ¤¤¤Þ¤¹¡£¿·¤¿¤Ë¥Æ¡¼¥Ö¥ë¤òºî"
+"¤ê¤Ê¤ª¤·¤Æ¡¢Parted ¤Î½¤Éüµ¡Ç½¤òÍѤ¤¤Æ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î½¤Éü¤ò»î¤ß¤Þ¤¹¡£"
+
+#: libparted/labels/mac.c:181
+#, c-format
+msgid "Invalid signature %x for Mac disk labels."
+msgstr "Mac ¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤Î¥·¥°¥Í¥Á¥ã %x ¤ÏÉÔÀµ¤Ç¤¹¡£"
+
+#: libparted/labels/mac.c:226
+msgid "Partition map has no partition map entry!"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Þ¥Ã¥×¤Ë¥¨¥ó¥È¥ê¤¬¤¢¤ê¤Þ¤»¤ó¡£"
+
+#: libparted/labels/mac.c:273
+#, c-format
+msgid "%s is too small for a Mac disk label!"
+msgstr "%s ¤Ï Mac ¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤Ë¤Ï¾®¤µ¤¹¤®¤Þ¤¹¡£"
+
+#: libparted/labels/mac.c:532
+#, c-format
+msgid "Partition %d has an invalid signature %x."
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %d ¤Î¥·¥°¥Í¥Á¥ã %x ¤ÏÉÔÀµ¤Ç¤¹¡£"
+
+#: libparted/labels/mac.c:550
+#, c-format
+msgid "Partition %d has an invalid length of 0 bytes!"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %d ¤ÎŤµ¤¬ 0 ¤Ê¤Î¤ÏÉÔÀµ¤Ç¤¹¡£"
+
+#: libparted/labels/mac.c:580
+msgid "The data region doesn't start at the start of the partition."
+msgstr "¥Ç¡¼¥¿Îΰ褬¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î³«»Ï°ÌÃÖ¤«¤é»Ï¤Þ¤Ã¤Æ¤Þ¤»¤ó¡£"
+
+#: libparted/labels/mac.c:597
+msgid "The boot region doesn't start at the start of the partition."
+msgstr "¥Ö¡¼¥ÈÎΰ褬¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î³«»Ï°ÌÃÖ¤«¤é»Ï¤Þ¤Ã¤Æ¤Þ¤»¤ó¡£"
+
+#: libparted/labels/mac.c:611
+msgid "The partition's boot region doesn't occupy the entire partition."
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¥Ö¡¼¥ÈÎΰ褬¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥óÁ´ÂΤòÀêÍ­¤·¤Æ¤Þ¤»¤ó¡£"
+
+#: libparted/labels/mac.c:622
+msgid "The partition's data region doesn't occupy the entire partition."
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¥Ç¡¼¥¿Îΰ褬¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥óÁ´ÂΤòÀêÍ­¤·¤Æ¤Þ¤»¤ó¡£"
+
+#: libparted/labels/mac.c:675
+#, c-format
+msgid ""
+"Weird block size on device descriptor: %d bytes is not divisible by 512."
+msgstr ""
+"¥Ç¥Ð¥¤¥¹¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë½ñ¤¤¤Æ¤¢¤ë¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤Ï¤ª¤«¤·¤¤¤Ç¤¹¡£%d ¥Ð¥¤¥È¤Ï "
+"512 ¤Ç³ä¤êÀÚ¤ì¤Þ¤»¤ó¡£"
+
+#: libparted/labels/mac.c:688
+#, c-format
+msgid ""
+"The driver descriptor says the physical block size is %d bytes, but Linux "
+"says it is %d bytes."
+msgstr ""
+"¥É¥é¥¤¥Ð¤ÏʪÍý¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤¬ %d ¥Ð¥¤¥È¤Ç¤¢¤ë¤È¸À¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢Linux ¤Ï %d "
+"¥Ð¥¤¥È¤À¤È¸À¤Ã¤Æ¤¤¤Þ¤¹¡£"
+
+#: libparted/labels/mac.c:736
+msgid "No valid partition map found."
+msgstr "Àµ¤·¤¤¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Þ¥Ã¥×¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£"
+
+#: libparted/labels/mac.c:795
+#, c-format
+msgid ""
+"Conflicting partition map entry sizes!  Entry 1 says it is %d, but entry %d "
+"says it is %d!"
+msgstr ""
+"¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Þ¥Ã¥×¤Î¥¨¥ó¥È¥ê¤Î¥µ¥¤¥º¤¬°ìÃפ·¤Þ¤»¤ó¡£¥¨¥ó¥È¥ê 1 ¤Ë¤è¤ì¤Ð %d "
+"¤Ç¤¹¤¬¡¢¥¨¥ó¥È¥ê %d ¤Ë¤è¤ì¤Ð %d ¤Ç¤¹¡£"
+
+#: libparted/labels/mac.c:822
+msgid "Weird!  There are 2 partitions map entries!"
+msgstr "¤ª¤«¤·¤¤¤Ç¤¹¡£¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Þ¥Ã¥×¥¨¥ó¥È¥ê¤¬2¤Ä¤¢¤ê¤Þ¤¹¡£"
+
+#: libparted/labels/mac.c:1347
+msgid ""
+"Changing the name of a root or swap partition will prevent Linux from "
+"recognising it as such."
+msgstr ""
+"root ¤Ë»È¤ï¤ì¤Æ¤¤¤ë¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ä swap ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î̾Á°¤òÊѹ¹¤¹¤ë¤È "
+"Linux ¤¬¤½¤ì¤é¤ò¤½¤¦¤Èǧ¼±¤Ç¤­¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£"
+
+#: libparted/labels/mac.c:1443
+msgid "Can't add another partition -- the partition map is too small!"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òÄɲäǤ­¤Þ¤»¤ó¡£¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Þ¥Ã¥×¤¬¾®¤µ¤¹¤®¤Þ¤¹¡£"
+
+#: libparted/labels/pc98.c:354
+#, c-format
+msgid "Invalid partition table on %s."
+msgstr "%s ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤¬ÉÔÀµ¤Ç¤¹¡£"
+
+#: libparted/labels/pc98.c:406 libparted/labels/pc98.c:484
+#, c-format
+msgid ""
+"Partition %d isn't aligned to cylinder boundaries.  This is still "
+"unsupported."
+msgstr ""
+"¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %d ¤Ï¥·¥ê¥ó¥À¶­³¦¾å¤Ë¤¢¤ê¤Þ¤»¤ó¡£¤³¤ì¤Ï¤Þ¤À¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ"
+"¤»¤ó¡£"
+
+#: libparted/labels/pc98.c:791
+msgid "Can't add another partition."
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òÄɲäǤ­¤Þ¤»¤ó¡£"
+
+#: libparted/labels/rdb.c:162
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s."
+msgstr "%s : ¥Ö¥í¥Ã¥¯ %llu (type %s) ¤Î¥Á¥§¥Ã¥¯¥µ¥à¤¬ÉÔÀµ¤Ç¤¹¡£"
+
+#: libparted/labels/rdb.c:497
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen."
+msgstr ""
+"%s : rdb ¥Ö¥í¥Ã¥¯¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£¤³¤ì¤Ï¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¤³¤È¤Ç¤¹¡£"
+
+#: libparted/labels/rdb.c:581
+#, c-format
+msgid "%s : Loop detected at block %d."
+msgstr "%s : ¥Ö¥í¥Ã¥¯ %d ¤Ë¥ë¡¼¥×¤¬È¯¸«¤µ¤ì¤Þ¤·¤¿¡£"
+
+#: libparted/labels/rdb.c:600
+#, c-format
+msgid "%s : The %s list seems bad at block %s."
+msgstr "%s : %s ¥ê¥¹¥È¤¬¤ª¤«¤·¤¤¤è¤¦¤Ç¤¹(¥Ö¥í¥Ã¥¯ %s)¡£"
+
+#: libparted/labels/rdb.c:689
+#, c-format
+msgid "%s : Failed to list bad blocks."
+msgstr "%s : ÉÔÀµ¤Ê¥Ö¥í¥Ã¥¯¤Î°ìÍ÷¤òÆÀ¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£"
+
+#: libparted/labels/rdb.c:697
+#, c-format
+msgid "%s : Failed to list partition blocks."
+msgstr "%s : ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Ö¥í¥Ã¥¯¤Î°ìÍ÷¤òÆÀ¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£"
+
+#: libparted/labels/rdb.c:705
+#, c-format
+msgid "%s : Failed to list file system blocks."
+msgstr "%s : ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥Ö¥í¥Ã¥¯¤Î°ìÍ÷¤òÆÀ¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£"
+
+#: libparted/labels/rdb.c:713
+#, c-format
+msgid "%s : Failed to list boot blocks."
+msgstr "%s : ¥Ö¡¼¥È¥Ö¥í¥Ã¥¯¤Î°ìÍ÷¤òÆÀ¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£"
+
+#: libparted/labels/rdb.c:740
+#, c-format
+msgid "Failed to write partition block at %d."
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Ö¥í¥Ã¥¯(¥Ö¥í¥Ã¥¯ %d)¤Î½ñ¤­¤³¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£"
+
+#: libparted/labels/rdb.c:1069
+msgid "Unable to allocate a partition number."
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥óÈÖ¹æ¤ò³ä¤êÅö¤Æ¤é¤ì¤Þ¤»¤ó¡£"
+
+#: libparted/labels/sun.c:145
+msgid "Corrupted Sun disk label detected."
+msgstr "Sun¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤ÎÇË»¤ò¸¡½Ð¤·¤Þ¤·¤¿¡£"
+
+#: libparted/labels/sun.c:266
+#, c-format
+msgid ""
+"The disk CHS geometry (%d,%d,%d) reported by the operating system does not "
+"match the geometry stored on the disk label (%d,%d,%d)."
+msgstr ""
+"¥Ç¥£¥¹¥¯¤Î geometry(CHS) (%d,%d,%d) ¤¬¡¢¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤Î¤â¤Î (%d,%d,%d) ¤È°ì"
+"Ãפ·¤Þ¤»¤ó¡£"
+
+#: libparted/labels/sun.c:288
+#, c-format
+msgid "The disk label describes a disk bigger than %s."
+msgstr "¥Ç¥£¥¹¥¯¥ì¥Ù¥ë¤Ë¤è¤ë¤È¡¢¥Ç¥£¥¹¥¯¤Ï %s ¤è¤êÂ礭¤¤¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£"
+
+#: libparted/labels/sun.c:442
+#, c-format
+msgid "The disk has %d cylinders, which is greater than the maximum of 65536."
+msgstr ""
+"¤³¤Î¥Ç¥£¥¹¥¯¤Ï %d ¥·¥ê¥ó¥À¤¢¤ê¤Þ¤¹¡£¤³¤ì¤ÏºÇÂçÃͤΠ65536 ¤ò±Û¤¨¤Æ¤¤¤Þ¤¹¡£"
+
+#: libparted/labels/sun.c:737
+msgid ""
+"The Whole Disk partition is the only available one left.  Generally, it is "
+"not a good idea to overwrite this partition with a real one.  Solaris may "
+"not be able to boot without it, and SILO (the sparc boot loader) appreciates "
+"it as well."
+msgstr ""
+"Whole Disk ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤·¤«»Ä¤µ¤ì¤Æ¤Þ¤»¤ó¡£¤À¤¤¤¿¤¤¤Î¾ì¹ç¤Ë¤ª¤¤¤Æ¡¢¤³¤Î¥Ñ¡¼"
+"¥Æ¥£¥·¥ç¥ó¤ò¾å½ñ¤­¤¹¤ë¤Î¤Ï¤è¤¯¤¢¤ê¤Þ¤»¤ó¡£Solaris ¤¬µ¯Æ°¤·¤Ê¤¯¤Ê¤ë¤«¤â¤·¤ì¤Þ"
+"¤»¤ó¤·¡¢SILO(the sparc boot loader)¤Ë¤âÅԹ礬¤è¤¯¤¢¤ê¤Þ¤»¤ó¡£"
+
+#: libparted/labels/sun.c:752
+msgid "Sun disk label is full."
+msgstr "Sun¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤¬¤¤¤Ã¤Ñ¤¤¤Ç¤¹¡£"
+
+#: libparted/labels/vtoc.c:163
+#, c-format
+msgid ""
+"%s opening device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:167
+#, c-format
+msgid ""
+"%s seeking device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:171
+#, c-format
+msgid ""
+"%s writing to device '%s' failed,\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:175
+#, c-format
+msgid ""
+"%s reading from device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:179
+#, c-format
+msgid "Fatal error\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:418
+msgid "Could not read VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:424
+msgid "Could not read VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:431
+msgid "Could not read VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:438
+msgid "Could not read VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:445
+msgid "Could not read VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:462
+msgid "Could not write VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:468
+msgid "Could not write VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:475
+msgid "Could not write VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:482
+msgid "Could not write VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:489
+msgid "Could not write VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/libparted.c:296 libparted/libparted.c:316
+msgid "Out of memory."
+msgstr "¥á¥â¥êÉÔ­¤Ç¤¹¡£"
+
+#: libparted/unit.c:139
+msgid "Cannot get unit size for special unit 'COMPACT'."
+msgstr "ÆÃÊ̤Êñ°Ì¤Ç¤¢¤ë 'COMPACT' ¤Îñ°Ì¤¢¤¿¤ê¤Î¥µ¥¤¥º¤òÆÀ¤é¤ì¤Þ¤»¤ó¡£"
+
+#: libparted/unit.c:386
+#, c-format
+msgid "\"%s\" has invalid syntax for locations."
+msgstr "\"%s\" ¤Ë¤Ï°ÌÃ֤ˤĤ¤¤Æ¸í¤ê¤¬¤¢¤ê¤Þ¤¹¡£"
+
+#: libparted/unit.c:394
+#, c-format
+msgid "The maximum head value is %d."
+msgstr "ºÇÂç¥Ø¥Ã¥ÉÃÍ¤Ï %d ¤Ç¤¹¡£"
+
+#: libparted/unit.c:401
+#, c-format
+msgid "The maximum sector value is %d."
+msgstr "ºÇÂ祻¥¯¥¿ÃÍ¤Ï %d ¤Ç¤¹¡£"
+
+#: libparted/unit.c:413 libparted/unit.c:545
+#, c-format
+msgid "The location %s is outside of the device %s."
+msgstr "%s ¤Ï¡¢¥Ç¥Ð¥¤¥¹ %s ¤Î³°¤Ç¤¹¡£"
+
+#: libparted/unit.c:527
+msgid "Invalid number."
+msgstr "ÉÔÀµ¤ÊÃͤǤ¹¡£"
+
+#: libparted/fs/amiga/affs.c:63 libparted/fs/amiga/apfs.c:56
+#: libparted/fs/amiga/asfs.c:70
+#, fuzzy, c-format
+msgid "%s : Failed to allocate partition block\n"
+msgstr "%s : ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Ö¥í¥Ã¥¯¤Î°ìÍ÷¤òÆÀ¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£"
+
+#: libparted/fs/amiga/affs.c:78 libparted/fs/amiga/apfs.c:70
+#: libparted/fs/amiga/asfs.c:86
+#, fuzzy, c-format
+msgid "%s : Failed to allocate block\n"
+msgstr "%s : ¥Ö¡¼¥È¥Ö¥í¥Ã¥¯¤Î°ìÍ÷¤òÆÀ¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£"
+
+#: libparted/fs/amiga/affs.c:83 libparted/fs/amiga/apfs.c:75
+#, fuzzy, c-format
+msgid "%s : Couldn't read boot block %llu\n"
+msgstr "%s : ¥Ö¥í¥Ã¥¯ %d ¤Ë¥ë¡¼¥×¤¬È¯¸«¤µ¤ì¤Þ¤·¤¿¡£"
+
+#: libparted/fs/amiga/affs.c:99 libparted/fs/amiga/apfs.c:86
+#: libparted/fs/amiga/asfs.c:92 libparted/fs/amiga/asfs.c:106
+#, fuzzy, c-format
+msgid "%s : Couldn't read root block %llu\n"
+msgstr "%s : ¥Ö¥í¥Ã¥¯ %d ¤Ë¥ë¡¼¥×¤¬È¯¸«¤µ¤ì¤Þ¤·¤¿¡£"
+
+#: libparted/fs/amiga/amiga.c:72
+#, fuzzy, c-format
+msgid "%s : Failed to allocate id list element\n"
+msgstr "%s : ÉÔÀµ¤Ê¥Ö¥í¥Ã¥¯¤Î°ìÍ÷¤òÆÀ¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£"
+
+#: libparted/fs/amiga/amiga.c:189
+#, c-format
+msgid "%s : Couldn't read block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:202
+#, fuzzy, c-format
+msgid "%s : Bad checksum on block %llu of type %s\n"
+msgstr "%s : ¥Ö¥í¥Ã¥¯ %llu (type %s) ¤Î¥Á¥§¥Ã¥¯¥µ¥à¤¬ÉÔÀµ¤Ç¤¹¡£"
+
+#: libparted/fs/amiga/amiga.c:212
+#, fuzzy, c-format
+msgid "%s : Couldn't write block %d\n"
+msgstr "%s : ¥Ö¥í¥Ã¥¯ %d ¤Ë¥ë¡¼¥×¤¬È¯¸«¤µ¤ì¤Þ¤·¤¿¡£"
+
+#: libparted/fs/amiga/amiga.c:278
+#, fuzzy, c-format
+msgid "%s : Failed to allocate disk_specific rdb block\n"
+msgstr "%s : ÉÔÀµ¤Ê¥Ö¥í¥Ã¥¯¤Î°ìÍ÷¤òÆÀ¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£"
+
+#: libparted/fs/amiga/amiga.c:289
+#, fuzzy, c-format
+msgid "%s : Didn't find rdb block, should never happen\n"
+msgstr ""
+"%s : rdb ¥Ö¥í¥Ã¥¯¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£¤³¤ì¤Ï¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¤³¤È¤Ç¤¹¡£"
+
+#: libparted/fs/amiga/amiga.c:318
+#, fuzzy, c-format
+msgid "%s : Failed to read partition block %llu\n"
+msgstr "%s : ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Ö¥í¥Ã¥¯¤Î°ìÍ÷¤òÆÀ¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£"
+
+#: libparted/fs/ext2/ext2.c:87 libparted/fs/ext2/ext2.c:112
+msgid "Inconsistent group descriptors!"
+msgstr "¥°¥ë¡¼¥×µ­½Ò»Ò¤ËÌ·½â¤¬¤¢¤ê¤Þ¤¹!"
+
+#: libparted/fs/ext2/ext2.c:91 libparted/fs/ext2/ext2.c:116
+msgid "File system full!"
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¤¤¤Ã¤Ñ¤¤¤Ë¤Ê¤ê¤Þ¤·¤¿!"
+
+#: libparted/fs/ext2/ext2.c:686
+msgid "Invalid superblock.  Are you sure this is an ext2 file system?"
+msgstr "¥¹¡¼¥Ñ¡¼¥Ö¥í¥Ã¥¯¤¬ÉÔÀµ¤Ç¤¹¡£¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÏËÜÅö¤Ë ext2 ¤Ç¤¹¤«¡©"
+
+#: libparted/fs/ext2/ext2.c:700 libparted/fs/ext2/ext2_resize.c:658
+msgid "File system has errors!  You should run e2fsck."
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¥¨¥é¡¼¤¬¤¢¤ê¤Þ¤¹¡£Àè¤Ë e2fsck ¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£"
+
+#: libparted/fs/ext2/ext2.c:711
+msgid ""
+"File system was not cleanly unmounted!  You should run e2fsck.  Modifying an "
+"unclean file system could cause severe corruption."
+msgstr ""
+"¥¯¥ê¡¼¥ó¤Ë unmount ¤µ¤ì¤Æ¤Þ¤»¤ó¡£e2fsck ¤ò¼Â¹Ô¤¹¤Ù¤­¤Ç¤¹¡£¥¯¥ê¡¼¥ó¤Ë¤Ê¤Ã¤Æ¤¤"
+"¤Ê¤¤¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ø¤ÎÊѹ¹¤ÏÂ礭¤Ê»³²¤Ë¤Ä¤Ê¤¬¤ê¤«¤Í¤Þ¤»¤ó¡£"
+
+#: libparted/fs/ext2/ext2.c:731
+msgid "File system has an incompatible feature enabled."
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï¸ß´¹À­¤Î¤Ê¤¤µ¡Ç½¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£"
+
+#: libparted/fs/ext2/ext2.c:742
+msgid "Error allocating buffer cache."
+msgstr "¥Ð¥Ã¥Õ¥¡¥­¥ã¥Ã¥·¥å¤ò³ÎÊݤ·¤Æ¤ëºÇÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£"
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:114
+msgid ""
+"Found an inode with a incorrect link count.  Better go run e2fsck first!"
+msgstr ""
+"¥ê¥ó¥¯¤Î¿ô¤¬Àµ¤·¤¯¤Ê¤¤inode¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿¡£Àè¤Ë e2fsck ¤ò¼Â¹Ô¤·¤¿Êý¤¬¤¤¤¤¤Ç"
+"¤·¤ç¤¦¡£"
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:487
+msgid "Not enough free inodes!"
+msgstr "̤»ÈÍѤΠinode ¤Î¿ô¤¬ÉÔ­¤·¤Æ¤¤¤Þ¤¹¡£"
+
+#: libparted/fs/ext2/ext2_resize.c:223
+msgid "File system is too full to remove a group!"
+msgstr "¥°¥ë¡¼¥×¤òºï½ü¤¹¤ë¤Ë¤Ï¶õ¤­Îΰ褬­¤ê¤Þ¤»¤ó¡£"
+
+#: libparted/fs/ext2/ext2_resize.c:232
+msgid "File system has too many allocated inodes to remove a group!"
+msgstr "¥°¥ë¡¼¥×¤òºï½ü¤¹¤ë¤Ë¤Ï̤»ÈÍѤΠinode ¤¬Â­¤ê¤Þ¤»¤ó¡£"
+
+#: libparted/fs/ext2/ext2_resize.c:491
+msgid "adding groups"
+msgstr "¥°¥ë¡¼¥×¤òÄɲÃÃæ"
+
+#: libparted/fs/ext2/ext2_resize.c:528
+#, c-format
+msgid "Your file system is too full to resize it to %i blocks.  Sorry."
+msgstr "%i ¥Ö¥í¥Ã¥¯¤Ë¥ê¥µ¥¤¥º¤¹¤ë¤Ë¤ÏÎΰ褬ÉÔ­¤·¤Æ¤¤¤Þ¤¹¡£"
+
+#: libparted/fs/ext2/ext2_resize.c:538
+#, c-format
+msgid ""
+"Your file system has too many occupied inodes to resize it to %i blocks.  "
+"Sorry."
+msgstr "%i ¥Ö¥í¥Ã¥¯¤Ë¥ê¥µ¥¤¥º¤¹¤ë¤Ë¤Ï inode ¤¬ÉÔ­¤·¤Æ¤¤¤Þ¤¹¡£"
+
+#: libparted/fs/ext2/ext2_resize.c:666
+msgid "File system was not cleanly unmounted!  You should run e2fsck."
+msgstr ""
+"¥¯¥ê¡¼¥ó¤Ë unmount ¤µ¤ì¤Æ¤Þ¤»¤ó¤Ç¤·¤¿¡£¤Þ¤º¡¢e2fsck ¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£"
+
+#: libparted/fs/ext2/ext2_resize.c:675
+msgid ""
+"The file system has the 'dir_index' feature enabled.  Parted can only resize "
+"the file system if it disables this feature.  You can enable it later by "
+"running 'tune2fs -O dir_index DEVICE' and then 'e2fsck -fD DEVICE'."
+msgstr ""
+"¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï 'dir_index' ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤ò̵¸ú¤Ë¤·¤Ê¤¤"
+"¤È Parted ¤Ç¤Ï¥ê¥µ¥¤¥º¤Ç¤­¤Þ¤»¤ó¡£°ìö̵¸ú¤Ë¤·¤Æ¤â¼¡¤Î¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ç¡¢Í­¸ú"
+"¤Ë¤Ç¤­¤Þ¤¹¡£'tune2fs -O dir_index DEVICE' 'e2fsck -fD DEVICE'"
+
+#: libparted/fs/ext2/ext2_resize.c:691
+msgid ""
+"A resize operation on this file system will use EXPERIMENTAL code\n"
+"that MAY CORRUPT it (although no one has reported any such damage yet).\n"
+"You should at least backup your data first, and run 'e2fsck -f' afterwards."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_block_relocator.c:198
+msgid "Cross-linked blocks found!  Better go run e2fsck first!"
+msgstr ""
+"Cross-link ¤·¤Æ¤¤¤ë¥Ö¥í¥Ã¥¯¤¬¤ß¤Ä¤«¤ê¤Þ¤·¤¿¡£Àè¤Ë e2fsck ¤ò¼Â¹Ô¤·¤¿Êý¤¬¤¤¤¤¤Ç"
+"¤·¤ç¤¦¡£"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:537
+#, c-format
+msgid "Block %i has no reference?  Weird."
+msgstr "¥Ö¥í¥Ã¥¯ %i ¤Ï²¿¤â»²¾È¤·¤Æ¤¤¤Þ¤»¤ó¡£¤ª¤«¤·¤¤¤Ç¤¹¡£"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:737
+#, c-format
+msgid "Block %i shouldn't have been marked (%d, %d)!"
+msgstr "¥Ö¥í¥Ã¥¯ %i ¤Ï¥Þ¡¼¥¯¤µ¤ì¤Æ¤¤¤Ê¤¤¤Ï¤º¤Ç¤¹(%d, %d)¡£"
+
+#: libparted/fs/ext2/interface.c:186
+msgid ""
+"The ext2 file system passed a basic check.  For a more comprehensive check, "
+"use the e2fsck program."
+msgstr ""
+"¤³¤Î ext2 ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï´Êñ¤Ê¥Á¥§¥Ã¥¯¤ò¥Ñ¥¹¤·¤Þ¤·¤¿¡£¤µ¤é¤Ë¥Á¥§¥Ã¥¯¤¹¤ë"
+"¤Ë¤Ï e2fsck ¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡£"
+
+#: libparted/fs/ext2/interface.c:203
+msgid "Sorry, can't move the start of ext2 partitions yet!"
+msgstr "»ÄÇ°¤Ç¤¹¤¬¡¢¤Þ¤À ext2 ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î³«»Ï°ÌÃ֤ϰÜÆ°¤Ç¤­¤Þ¤»¤ó¡£"
+
+#: libparted/fs/ext2/ext2_buffer.c:82
+msgid "Couldn't flush buffer cache!"
+msgstr "¥Ð¥Ã¥Õ¥¡¥­¥ã¥Ã¥·¥å¤ò¥Õ¥é¥Ã¥·¥å¤Ç¤­¤Þ¤»¤ó¡£"
+
+#: libparted/fs/ext2/ext2_mkfs.c:162
+msgid "writing per-group metadata"
+msgstr "¥°¥ë¡¼¥×Ëè¤Î¥á¥¿¾ðÊó¤ò½ñ¹þÃæ"
+
+#: libparted/fs/ext2/ext2_mkfs.c:564
+msgid "File system too small for ext2."
+msgstr "ext2 ¤Ë¤¹¤ë¤Ë¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¾®¤µ¤¹¤®¤Þ¤¹¡£"
+
+#: libparted/fs/fat/calc.c:135
+#, c-format
+msgid ""
+"You need %s of free disk space to shrink this partition to this size.  "
+"Currently, only %s is free."
+msgstr ""
+"¤³¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò¤³¤Î¥µ¥¤¥º¤Ë¾®¤µ¤¯¤¹¤ë¤Ë¤Ï %s ¤Î¶õ¤­¤¬É¬ÍפǤ¹¡£(¸½ºß %s "
+"¤·¤«¶õ¤­¤¬¤¢¤ê¤Þ¤»¤ó¡£)"
+
+#: libparted/fs/fat/context.c:56
+#, c-format
+msgid ""
+"Cluster start delta = %d, which is not a multiple of the cluster size %d."
+msgstr ""
+"Cluster start delta = %d ¤³¤ì¤Ï¥¯¥é¥¹¥¿¥µ¥¤¥º %d ¤ÎÇÜ¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£"
+
+#: libparted/fs/fat/fat.c:308
+#, c-format
+msgid "Partition too big/small for a %s file system."
+msgstr ""
+"¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬ %s ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤Ï¾®¤µ¤¹¤®¡¢¤¢¤ë¤¤¤ÏÂ礭¤¹¤®¤Þ¤¹¡£"
+
+#: libparted/fs/fat/fat.c:474
+msgid ""
+"The FATs don't match.  If you don't know what this means, then select "
+"cancel, run scandisk on the file system, and then come back."
+msgstr ""
+"FAT ¤¬°ìÃפ·¤Þ¤»¤ó¡£¤³¤ì¤¬²¿¤ò°ÕÌ£¤¹¤ë¤«¤ï¤«¤é¤Ê¤¤¤Ê¤é¡¢¼è¾Ã(C) ¤òÁª¤ó¤Ç¡¢"
+"scandisk ¤ò¼Â¹Ô¤·¤Æ¤«¤é¡¢¤Þ¤¿¤ä¤ê¤Ê¤ª¤·¤Æ¤¯¤À¤µ¤¤¡£"
+
+#: libparted/fs/fat/fat.c:514
+msgid "There are no possible configurations for this FAT type."
+msgstr "¤³¤Î FAT ¥¿¥¤¥×¤Ë¹ç¤¦ configuration ¤¬¤¢¤ê¤Þ¤»¤ó¡£"
+
+#: libparted/fs/fat/fat.c:526
+#, c-format
+msgid ""
+"File system doesn't have expected sizes for Windows to like it.  Cluster "
+"size is %dk (%dk expected); number of clusters is %d (%d expected); size of "
+"FATs is %d sectors (%d expected)."
+msgstr ""
+"¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥µ¥¤¥º¤¬ Windows ¤Î´üÂÔ¤·¤½¤¦¤Ê¥µ¥¤¥º¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¥¯¥é¥¹"
+"¥¿¥µ¥¤¥º %dk (ͽÁÛ %dk); ¥¯¥é¥¹¥¿¤Î¿ô %d (ͽÁÛ %d); FAT ¤Î¥µ¥¤¥º %d ¥»¥¯¥¿ "
+"(ͽÁÛ %d)"
+
+#: libparted/fs/fat/fat.c:549
+#, c-format
+msgid ""
+"File system is reporting the free space as %d clusters, not %d clusters."
+msgstr ""
+"¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¶õ¤­ÍÆÎÌ¤Ï %d ¥¯¥é¥¹¥¿ ¤Ç¡¢%d ¥¯¥é¥¹¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£"
+
+#: libparted/fs/fat/fat.c:874
+msgid ""
+"GNU Parted was miscompiled: the FAT boot sector should be 512 bytes.  FAT "
+"support will be disabled."
+msgstr ""
+"GNU parted ¤¬¤Á¤ã¤ó¤È¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£FAT ¤Î¥Ö¡¼¥È¥»¥¯¥¿¤Ï 512 ¥Ð¥¤"
+"¥È¤Ç¤¢¤ë¤Ù¤­¤Ç¤¹¡£FAT ¥µ¥Ý¡¼¥È¤ò̵¸ú¤Ë¤·¤Þ¤¹¡£"
+
+#: libparted/fs/fat/resize.c:159
+msgid ""
+"There's not enough room in the root directory for all of the files.  Either "
+"cancel, or ignore to lose the files."
+msgstr ""
+"¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ë½½Ê¬¤Ê¶õ¤­¤¬¤¢¤ê¤Þ¤»¤ó¡£¼è¾Ã(C) ¤¹¤«¡¢¥Õ¥¡¥¤¥ë¤ò¼º¤Ã¤Æ¤â"
+"¤è¤±¤ì¤Ð ̵»ë(I) ¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤¡£"
+
+#: libparted/fs/fat/resize.c:300
+msgid "Error writing to the root directory."
+msgstr "¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ë½ñ¤­¤³¤ßÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£"
+
+#: libparted/fs/fat/resize.c:489
+msgid "If you leave your file system as FAT16, then you will have no problems."
+msgstr "FAT16 ¤Î¤Þ¤Þ¤Ë¤·¤Æ¤ª¤¯¤Ê¤é¡¢²¿¤ÎÌäÂê¤â¤¢¤ê¤Þ¤»¤ó¡£"
+
+#: libparted/fs/fat/resize.c:492
+msgid ""
+"If you convert to FAT16, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual)."
+msgstr ""
+"FAT16 ¤ËÊÑ´¹¤·¤è¤¦¤È¤·¤Æ¤¤¤Æ¡¢¤·¤«¤â MS Windows ¤¬¤³¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¥¤¥ó¥¹"
+"¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¤Ê¤é¡¢MS Windows ¤Î¥Ö¡¼¥È¥í¡¼¥À¤òºÆ¥¤¥ó¥¹¥È¡¼¥ë¤·¤Ê¤±¤ì¤Ð¤Ê¤ê"
+"¤Þ¤»¤ó¡£¤â¤·¤½¤¦¤·¤¿¤¤¤Î¤Ê¤é¡¢Parted(¤¢¤ë¤¤¤Ï distribution) ¤Î¥Þ¥Ë¥å¥¢¥ë¤ò¤è"
+"¤¯Æɤó¤Ç¤¯¤À¤µ¤¤¡£"
+
+#: libparted/fs/fat/resize.c:500
+msgid ""
+"If you leave your file system as FAT32, then you will not introduce any new "
+"problems."
+msgstr "FAT32 ¤Î¤Þ¤Þ¤Ë¤·¤Æ¤ª¤¯¤Ê¤é¡¢²¿¤ÎÌäÂê¤âÀ¸¤¸¤Þ¤»¤ó¡£"
+
+#: libparted/fs/fat/resize.c:504
+msgid ""
+"If you convert to FAT32, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual).  Also, "
+"converting to FAT32 will make the file system unreadable by MS DOS, MS "
+"Windows 95a, and MS Windows NT."
+msgstr ""
+"FAT32 ¤ËÊÑ´¹¤·¤è¤¦¤È¤·¤Æ¤¤¤Æ¡¢¤·¤«¤â MS Windows ¤¬¤³¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¥¤¥ó¥¹"
+"¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¤Ê¤é¡¢MS Windows ¤Î¥Ö¡¼¥È¥í¡¼¥À¤òºÆ¥¤¥ó¥¹¥È¡¼¥ë¤·¤Ê¤±¤ì¤Ð¤Ê¤ê"
+"¤Þ¤»¤ó¡£¤â¤·¤½¤¦¤·¤¿¤¤¤Î¤Ê¤é¡¢Parted(¤¢¤ë¤¤¤Ï distribution) ¤Î¥Þ¥Ë¥å¥¢¥ë¤ò¤è"
+"¤¯Æɤó¤Ç¤¯¤À¤µ¤¤¡£FAT32 ¤ËÊÑ´¹¤¹¤ë¤È¡¢MS-DOS¡¢MS Windows 95a¡¢MS Windows NT "
+"¤«¤é¤ÏÆɤá¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£"
+
+#: libparted/fs/fat/resize.c:518
+#, c-format
+msgid "%s  %s  %s"
+msgstr "%s  %s  %s"
+
+#: libparted/fs/fat/resize.c:519
+msgid "Would you like to use FAT32?"
+msgstr "FAT32 ¤ò»È¤¤¤¿¤¤¤Ç¤¹¤«¡©"
+
+#: libparted/fs/fat/resize.c:550 libparted/fs/fat/resize.c:566
+#, c-format
+msgid "%s  %s"
+msgstr "%s  %s"
+
+#: libparted/fs/fat/resize.c:551
+msgid ""
+"The file system can only be resized to this size by converting to FAT16."
+msgstr "¤³¤Î¥µ¥¤¥º¤Ë¥ê¥µ¥¤¥º¤¹¤ë¤Ë¤Ï FAT16 ¤ËÊÑ´¹¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£"
+
+#: libparted/fs/fat/resize.c:567
+msgid ""
+"The file system can only be resized to this size by converting to FAT32."
+msgstr "¤³¤Î¥µ¥¤¥º¤Ë¥ê¥µ¥¤¥º¤¹¤ë¤Ë¤Ï FAT32 ¤ËÊÑ´¹¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£"
+
+#: libparted/fs/fat/resize.c:580
+msgid ""
+"GNU Parted cannot resize this partition to this size.  We're working on it!"
+msgstr ""
+"GNU Parted ¤Ï¤³¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò¤³¤Î¥µ¥¤¥º¤Ë¥ê¥µ¥¤¥º¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£¤Ç"
+"¤­¤ë¤è¤¦¤ËÅØÎϤ·¤Æ¤¤¤Þ¤¹¡£"
+
+#: libparted/fs/fat/bootsector.c:49 libparted/fs/fat/bootsector.c:56
+msgid "File system has an invalid signature for a FAT file system."
+msgstr ""
+"¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥·¥°¥Í¥Á¥ã¤¬ FAT ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£"
+
+#: libparted/fs/fat/bootsector.c:64
+msgid "File system has an invalid sector size for a FAT file system."
+msgstr ""
+"¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥»¥¯¥¿¥µ¥¤¥º¤¬ FAT ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£"
+
+#: libparted/fs/fat/bootsector.c:71
+msgid "File system has an invalid cluster size for a FAT file system."
+msgstr ""
+"¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥¯¥é¥¹¥¿¥µ¥¤¥º¤¬ FAT ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£"
+
+#: libparted/fs/fat/bootsector.c:78
+msgid ""
+"File system has an invalid number of reserved sectors for a FAT file system."
+msgstr ""
+"¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎͽÌ󥻥¯¥¿¤Î¿ô¤¬ FAT ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤È¤·¤Æ¤ÏÉÔÀµ¤Ç¤¹¡£"
+
+#: libparted/fs/fat/bootsector.c:85
+msgid "File system has an invalid number of FATs."
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î FAT ¤Î¿ô¤¬ÉÔÀµ¤Ç¤¹¡£"
+
+#: libparted/fs/fat/bootsector.c:139
+#, c-format
+msgid ""
+"This file system has a logical sector size of %d.  GNU Parted is known not "
+"to work properly with sector sizes other than 512 bytes."
+msgstr ""
+"¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÏÀÍý¥»¥¯¥¿¥µ¥¤¥º¤Ï %d ¤Ç¤¹.  ¥»¥¯¥¿¥µ¥¤¥º¤¬ 512 ¥Ð¥¤¥È"
+"°Ê³°¤Ç¤Ï GNU Parted ¤Ï¤¦¤Þ¤¯Æ°¤«¤Ê¤¤¤³¤È¤¬ÃΤé¤ì¤Æ¤¤¤Þ¤¹¡£"
+
+#: libparted/fs/fat/bootsector.c:164
+#, c-format
+msgid ""
+"The file system's CHS geometry is (%d, %d, %d), which is invalid.  The "
+"partition table's CHS geometry is (%d, %d, %d).  If you select Ignore, the "
+"file system's CHS geometry will be left unchanged.  If you select Fix, the "
+"file system's CHS geometry will be set to match the partition table's CHS "
+"geometry."
+msgstr ""
+"¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î CHS geometry ¤Ï (%d, %d, %d) ¤ÇÉÔÀµ¤Ç¤¹¡£¥Ñ¡¼¥Æ¥£¥·¥ç"
+"¥ó¥Æ¡¼¥Ö¥ë¤Î CHS geometry ¤Ï (%d, %d, %d) ¤Ç¤¹¡£Ìµ»ë(I)¤òÁª¤Ù¤Ð¥Õ¥¡¥¤¥ë¥·¥¹¥Æ"
+"¥à¤Î CHS geometry ¤Ï¤½¤Î¤Þ¤Þ¤Ë¤Ê¤ê¤Þ¤¹¡£½¤Àµ(F)¤òÁª¤Ù¤Ð¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î "
+"CHS geometry ¤Ï¡¢¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î CHS geometry ¤È¹ç¤¦¤è¤¦½¤Àµ¤µ¤ì¤Þ¤¹¡£"
+
+#: libparted/fs/fat/bootsector.c:213
+msgid "FAT boot sector says logical sector size is 0.  This is weird. "
+msgstr ""
+"FAT ¤Î¥Ö¡¼¥È¥»¥¯¥¿¤Ë¤ÏÏÀÍý¥»¥¯¥¿¥µ¥¤¥º¤¬ 0 ¤È½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡¢¤³¤ì¤Ï¤ª¤«¤·¤¤¤Ç"
+"¤¹¡£"
+
+#: libparted/fs/fat/bootsector.c:219
+msgid "FAT boot sector says there are no FAT tables.  This is weird. "
+msgstr "FAT ¤Î¥Ö¡¼¥È¥»¥¯¥¿¤Ë FAT ¥Æ¡¼¥Ö¥ë¤¬¤¢¤ê¤Þ¤»¤ó¡£¤³¤ì¤Ï¤ª¤«¤·¤¤¤Ç¤¹¡£"
+
+#: libparted/fs/fat/bootsector.c:225
+msgid "FAT boot sector says clusters are 0 sectors.  This is weird. "
+msgstr ""
+"FAT ¤Î¥Ö¡¼¥È¥»¥¯¥¿¤Ë¥¯¥é¥¹¥¿¤Ï 0 ¥»¥¯¥¿¤Ç¤¢¤ë¤È½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤Ï¤ª¤«¤·¤¤"
+"¤Ç¤¹¡£"
+
+#: libparted/fs/fat/bootsector.c:235
+msgid "File system is FAT12, which is unsupported."
+msgstr "FAT12 ¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¡£"
+
+#: libparted/fs/fat/bootsector.c:411
+#, c-format
+msgid ""
+"The information sector has the wrong signature (%x).  Select cancel for now, "
+"and send in a bug report.  If you're desperate, it's probably safe to ignore."
+msgstr ""
+"information ¥»¥¯¥¿¤Î¥·¥°¥Í¥Á¥ã(%x)¤Ï¤Þ¤Á¤¬¤Ã¤Æ¤¤¤Þ¤¹¡£¼è¾Ã(C) ¤·¤Æ¥Ð¥°¥ì¥Ý¡¼"
+"¥È¤òÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤¡£¤â¤·¤É¤¦¤Ê¤Ã¤Æ¤â¤¤¤¤¤Î¤Ç¤¢¤ì¤Ð ̵»ë(I) ¤·¤Æ¤â¤¤¤¤¤Ç¤·¤ç"
+"¤¦¡£"
+
+#: libparted/fs/fat/count.c:152
+#, c-format
+msgid "Bad directory entry for %s: first cluster is the end of file marker."
+msgstr ""
+"%s ¤Î¥Ç¥£¥ì¥¯¥È¥ê¥¨¥ó¥È¥ê¤¬ÉÔÎɤǤ¹: ºÇ½é¤Î¥¯¥é¥¹¥¿¤¬¥Õ¥¡¥¤¥ë¤Î½ªÎ»¤òɽ¤ï¤¹"
+"¥Þ¡¼¥¯¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£"
+
+#: libparted/fs/fat/count.c:165
+#, c-format
+msgid ""
+"Bad FAT: unterminated chain for %s.  You should run dosfsck or scandisk."
+msgstr ""
+"FAT ¤Ë¤¢¤ä¤Þ¤ê¤¬¤¢¤ê¤Þ¤¹¡£%s ¤Î chain ¤¬½ªÎ»¤·¤Þ¤»¤ó¡£dosfsck ¤ä scandisk ¤ò"
+"¼Â¹Ô¤¹¤ë¤Ù¤­¤Ç¤¹¡£"
+
+#: libparted/fs/fat/count.c:174
+#, c-format
+msgid ""
+"Bad FAT: cluster %d outside file system in chain for %s.  You should run "
+"dosfsck or scandisk."
+msgstr ""
+"FAT ¤Ë¤¢¤ä¤Þ¤ê¤¬¤¢¤ê¤Þ¤¹¡£¥¯¥é¥¹¥¿ %d(%s ¤Î chain)¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î³°¤Ë¤¢"
+"¤ê¤Þ¤¹¡£dosfsck ¤ä scandisk ¤ò¼Â¹Ô¤¹¤ë¤Ù¤­¤Ç¤¹¡£"
+
+#: libparted/fs/fat/count.c:184
+#, c-format
+msgid ""
+"Bad FAT: cluster %d is cross-linked for %s.  You should run dosfsck or "
+"scandisk."
+msgstr ""
+"FAT¤Ë¤¢¤ä¤Þ¤ê¤¬¤¢¤ê¤Þ¤¹¡£¥¯¥é¥¹¥¿ %d(%s ¤Îchain)¤¬cross-link¤·¤Æ¤¤¤Þ¤¹¡£"
+"dosfsck¤äscandisk¤ò¼Â¹Ô¤¹¤ë¤Ù¤­¤Ç¤¹¡£"
+
+#: libparted/fs/fat/count.c:203
+#, c-format
+msgid "%s is %dk, but it has %d clusters (%dk)."
+msgstr "%s ¤Ï %dk ¤Ç¤¹¤¬¡¢%d ¥¯¥é¥¹¥¿(%dk)¤¢¤ê¤Þ¤¹¡£"
+
+#: libparted/fs/fat/count.c:266
+#, c-format
+msgid ""
+"The file %s is marked as a system file.  This means moving it could cause "
+"some programs to stop working."
+msgstr ""
+"¥Õ¥¡¥¤¥ë %s ¤Ï¥·¥¹¥Æ¥à¥Õ¥¡¥¤¥ë¤Ç¤¹¡£¤³¤Î¥Õ¥¡¥¤¥ë¤òÆ°¤«¤·¤Æ¤·¤Þ¤¦¤ÈÆ°¤«¤Ê¤¯¤Ê"
+"¤ë¥×¥í¥°¥é¥à¤¬¤¢¤ê¤Þ¤¹¡£"
+
+#: libparted/fs/fat/table.c:137
+#, c-format
+msgid ""
+"FAT %d media %x doesn't match the boot sector's media %x.  You should "
+"probably run scandisk."
+msgstr ""
+"FAT %d media %x ¤Ï¥Ö¡¼¥È¥»¥¯¥¿¤Îmedia %x ¤È°ìÃפ·¤Þ¤»¤ó¡£scandisk ¤ò¼Â¹Ô¤·¤¿"
+"Êý¤¬¤¤¤¤¤Ç¤·¤ç¤¦¡£"
+
+#: libparted/fs/fat/table.c:269
+#, c-format
+msgid "fat_table_set: cluster %ld outside file system"
+msgstr "fat_table_set: ¥¯¥é¥¹¥¿ %ld ¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î³°¤Ë¤¢¤ê¤Þ¤¹¡£"
+
+#: libparted/fs/fat/table.c:301
+#, c-format
+msgid "fat_table_get: cluster %ld outside file system"
+msgstr "fat_table_get: ¥¯¥é¥¹¥¿ %ld ¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î³°¤Ë¤¢¤ê¤Þ¤¹¡£"
+
+#: libparted/fs/fat/table.c:343
+msgid "fat_table_alloc_cluster: no free clusters"
+msgstr "fat_table_alloc_cluster: ¶õ¤­¥¯¥é¥¹¥¿¤¬¤¢¤ê¤Þ¤»¤ó¡£"
+
+#: libparted/fs/linux_swap/linux_swap.c:275
+#, fuzzy, c-format
+msgid "Unrecognised old style linux swap signature '%10s'."
+msgstr "Linux ¤Î swap signature '%10s' ¤òǧ¼±¤Ç¤­¤Þ¤»¤ó¡£"
+
+#: libparted/fs/linux_swap/linux_swap.c:318
+#, fuzzy, c-format
+msgid "Unrecognised new style linux swap signature '%10s'."
+msgstr "Linux ¤Î swap signature '%10s' ¤òǧ¼±¤Ç¤­¤Þ¤»¤ó¡£"
+
+#: libparted/fs/linux_swap/linux_swap.c:358
+#, fuzzy, c-format
+msgid "Unrecognised swsusp linux swap signature '%9s'."
+msgstr "Linux ¤Î swap signature '%10s' ¤òǧ¼±¤Ç¤­¤Þ¤»¤ó¡£"
+
+#: libparted/fs/linux_swap/linux_swap.c:434
+msgid "Too many bad pages."
+msgstr "ÉÔÎÉ¥Ú¡¼¥¸¤¬Â¿¤¹¤®¤Þ¤¹¡£"
+
+#: libparted/fs/hfs/advfs.c:121 libparted/fs/hfs/advfs_plus.c:122
+#: libparted/fs/hfs/reloc.c:414 libparted/fs/hfs/reloc.c:508
+#: libparted/fs/hfs/reloc_plus.c:539 libparted/fs/hfs/reloc_plus.c:658
+#: libparted/fs/hfs/reloc_plus.c:772
+msgid "The file system contains errors."
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¥¨¥é¡¼¤¬¤¢¤ê¤Þ¤¹¡£"
+
+#: libparted/fs/hfs/advfs_plus.c:287
+msgid "Bad blocks could not be read."
+msgstr "ÉÔÀµ¤Ê¥Ö¥í¥Ã¥¯¤ÏÆɤá¤Þ¤»¤ó¤Ç¤·¤¿¡£"
+
+#: libparted/fs/hfs/cache.c:137
+#, c-format
+msgid ""
+"Trying to register an extent starting at block 0x%X, but another one already "
+"exists at this position.  You should check the file system!"
+msgstr ""
+"¥Ö¥í¥Ã¥¯ 0x%X ¤«¤é»Ï¤Þ¤ë extent ¤òÅÐÏ¿¤·¤è¤¦¤È¤·¤Þ¤·¤¿¤¬¡¢´û¤Ë¾¤Î¤â¤Î¤¬¤³¤Î"
+"¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¸ºß¤·¤Þ¤¹¡£¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤¡£"
+
+#: libparted/fs/hfs/cache.c:214
+#, c-format
+msgid ""
+"Trying to move an extent from block Ox%X to block Ox%X, but another one "
+"already exists at this position.  This should not happen!"
+msgstr ""
+"¥Ö¥í¥Ã¥¯ 0x%X ¤«¤é¥Ö¥í¥Ã¥¯ 0x%X¤Ë extent ¤ò°ÜÆ°¤·¤è¤¦¤È¤·¤Þ¤·¤¿¤¬¡¢´û¤Ë¾¤Î¤â"
+"¤Î¤¬¤³¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¸ºß¤·¤Þ¤¹¡£¤³¤ì¤Ï¤¢¤ê¤¨¤Þ¤»¤ó¡£"
+
+#: libparted/fs/hfs/file.c:143
+#, c-format
+msgid "Could not update the extent cache for HFS file with CNID %X."
+msgstr "HFS ¥Õ¥¡¥¤¥ë(CNID %X)¤Î extent cache ¤ò¹¹¿·¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£"
+
+#: libparted/fs/hfs/file.c:180
+#, c-format
+msgid "Trying to read HFS file with CNID %X behind EOF."
+msgstr "EOF ¤ò±Û¤¨¤Æ HFS ¥Õ¥¡¥¤¥ë(CNID %X)¤òÆɤ⤦¤È¤·¤Þ¤·¤¿¡£"
+
+#: libparted/fs/hfs/file.c:190 libparted/fs/hfs/file.c:220
+#, c-format
+msgid "Could not find sector %lli of HFS file with CNID %X."
+msgstr "¥»¥¯¥¿ %lli (HFS ¥Õ¥¡¥¤¥ë, CNID %X)¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£"
+
+#: libparted/fs/hfs/file.c:210
+#, c-format
+msgid "Trying to write HFS file with CNID %X behind EOF."
+msgstr "EOF ¤ò±Û¤¨¤Æ HFS ¥Õ¥¡¥¤¥ë(CNID %X)¤Ë½ñ¤­¤³¤â¤¦¤È¤·¤Þ¤·¤¿¡£"
+
+#: libparted/fs/hfs/file_plus.c:157
+#, c-format
+msgid "Could not update the extent cache for HFS+ file with CNID %X."
+msgstr "HFS+ ¥Õ¥¡¥¤¥ë(CNID %X)¤Î extent cache ¤ò¹¹¿·¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£"
+
+#: libparted/fs/hfs/file_plus.c:202
+#, c-format
+msgid "Trying to read HFS+ file with CNID %X behind EOF."
+msgstr "EOF ¤ò±Û¤¨¤Æ HFS+ ¥Õ¥¡¥¤¥ë(CNID %X)¤òÆɤ⤦¤È¤·¤Þ¤·¤¿¡£"
+
+#: libparted/fs/hfs/file_plus.c:213 libparted/fs/hfs/file_plus.c:256
+#, c-format
+msgid "Could not find sector %lli of HFS+ file with CNID %X."
+msgstr "¥»¥¯¥¿ %lli (HFS+ ¥Õ¥¡¥¤¥ë, CNID %X)¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£"
+
+#: libparted/fs/hfs/file_plus.c:245
+#, c-format
+msgid "Trying to write HFS+ file with CNID %X behind EOF."
+msgstr "EOF ¤ò±Û¤¨¤Æ HFS+ ¥Õ¥¡¥¤¥ë(CNID %X)¤Ë½ñ¤­¤³¤â¤¦¤È¤·¤Þ¤·¤¿¡£"
+
+#: libparted/fs/hfs/hfs.c:232
+msgid "Sorry, HFS cannot be resized that way yet."
+msgstr "HFS ¤Ï¤Þ¤À¤½¤Î¤è¤¦¤Ë¥ê¥µ¥¤¥º¤Ç¤­¤Þ¤»¤ó¡£"
+
+#: libparted/fs/hfs/hfs.c:262 libparted/fs/hfs/hfs.c:641
+msgid "Data relocation has failed."
+msgstr "¥Ç¡¼¥¿¤ÎºÆÇÛÃ֤˼ºÇÔ¤·¤Þ¤·¤¿¡£"
+
+#: libparted/fs/hfs/hfs.c:281
+msgid "Data relocation left some data in the end of the volume."
+msgstr "¥Ç¡¼¥¿¤ÎºÆÇÛÃÖ¤ò¤·¤Þ¤·¤¿¤¬¡¢¥Ü¥ê¥å¡¼¥à¤ÎºÇ¸å¤Ë»Ä¤Ã¤¿¥Ç¡¼¥¿¤¬¤¢¤ê¤Þ¤¹¡£"
+
+#: libparted/fs/hfs/hfs.c:320
+msgid "writing HFS Master Directory Block"
+msgstr "HFS ¥Þ¥¹¥¿¥Ç¥£¥ì¥¯¥È¥ê¥Ö¥í¥Ã¥¯¤ò½ñ¤­¤³¤ó¤Ç¤¤¤Þ¤¹"
+
+#: libparted/fs/hfs/hfs.c:468
+msgid "No valid HFS[+X] signature has been found while opening."
+msgstr "Í­¸ú¤Ê HFS[+X] ¥·¥°¥Í¥Á¥ã¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£"
+
+#: libparted/fs/hfs/hfs.c:478
+#, c-format
+msgid "Version %d of HFS+ isn't supported."
+msgstr "HFS+ ¤Î¥Ð¡¼¥¸¥ç¥ó %d ¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¡£"
+
+#: libparted/fs/hfs/hfs.c:489
+#, c-format
+msgid "Version %d of HFSX isn't supported."
+msgstr "HFSX ¤Î¥Ð¡¼¥¸¥ç¥ó %d ¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¡£"
+
+#: libparted/fs/hfs/hfs.c:672
+msgid "Data relocation left some data at the end of the volume."
+msgstr "¥Ç¡¼¥¿¤ÎºÆÇÛÃÖ¤ò¤·¤Þ¤·¤¿¤¬¡¢¥Ü¥ê¥å¡¼¥à¤ÎºÇ¸å¤Ë»Ä¤Ã¤¿¥Ç¡¼¥¿¤¬¤¢¤ê¤Þ¤¹¡£"
+
+#: libparted/fs/hfs/hfs.c:720
+msgid "Error while writing the allocation file."
+msgstr "allocation file ¤ò½ñ¤­¤³¤ßÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£"
+
+#: libparted/fs/hfs/hfs.c:735
+msgid "Error while writing the compatibility part of the allocation file."
+msgstr ""
+"allocation file ¤Î compatibility part ¤ò½ñ¤­¤³¤ßÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£"
+
+#: libparted/fs/hfs/hfs.c:750
+msgid "writing HFS+ Volume Header"
+msgstr "HFS+ ¥Ü¥ê¥å¡¼¥à¥Ø¥Ã¥À¤ò½ñ¤­¤³¤ßÃæ¤Ç¤¹"
+
+#: libparted/fs/hfs/hfs.c:850
+msgid "An error occurred while looking for the mandatory bad blocks file."
+msgstr "ÉÔÀµ¥Ö¥í¥Ã¥¯°ìÍ÷¥Õ¥¡¥¤¥ë¤òõ¤·¤Æ¤¤¤ë¤È¤­¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£"
+
+#: libparted/fs/hfs/hfs.c:904
+msgid ""
+"It seems there is an error in the HFS wrapper: the bad blocks file doesn't "
+"contain the embedded HFS+ volume."
+msgstr ""
+"HFS ¥é¥Ã¥Ñ¡¼¤Ë¥¨¥é¡¼¤¬¤¢¤ë¤è¤¦¤Ç¤¹¡£ÉÔÀµ¥Ö¥í¥Ã¥¯°ìÍ÷¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ë¡¢embedded "
+"HFS+ ¥Ü¥ê¥å¡¼¥à¤¬¤¢¤ê¤Þ¤»¤ó¡£"
+
+#: libparted/fs/hfs/hfs.c:940
+msgid "Sorry, HFS+ cannot be resized that way yet."
+msgstr "HFS ¤Ï¤Þ¤À¤½¤Î¤è¤¦¤Ë¥ê¥µ¥¤¥º¤Ç¤­¤Þ¤»¤ó¡£"
+
+#: libparted/fs/hfs/hfs.c:975
+msgid "shrinking embedded HFS+ volume"
+msgstr "embedded HFS+ ¥Ü¥ê¥å¡¼¥à¤ò½Ì¾®¤·¤Æ¤¤¤Þ¤¹"
+
+#: libparted/fs/hfs/hfs.c:991
+msgid "Resizing the HFS+ volume has failed."
+msgstr "HFS+ ¥Ü¥ê¥å¡¼¥à¤Î¥ê¥µ¥¤¥º¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£"
+
+#: libparted/fs/hfs/hfs.c:998
+msgid "shrinking HFS wrapper"
+msgstr "HFS ¥é¥Ã¥Ñ¡¼¤ò½Ì¾®¤·¤Æ¤¤¤Þ¤¹"
+
+#: libparted/fs/hfs/hfs.c:1007
+msgid "Updating the HFS wrapper has failed."
+msgstr "HFS ¥é¥Ã¥Ñ¡¼¤Î¹¹¿·¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£"
+
+#: libparted/fs/hfs/hfs.c:1109 libparted/fs/hfs/hfs.c:1194
+#, c-format
+msgid ""
+"This is not a real %s check.  This is going to extract special low level "
+"files for debugging purposes."
+msgstr ""
+"¤³¤ì¤Ï real %s check ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£special low level file ¤ò¥Ç¥Ð¥Ã¥°¤Î¤¿¤á"
+"¤Ë¼è¤ê½Ð¤·¤Þ¤¹¡£"
+
+#: libparted/fs/hfs/journal.c:155
+msgid "Bad block list header checksum."
+msgstr "¥Ö¥í¥Ã¥¯¥ê¥¹¥È¥Ø¥Ã¥À¤Î¥Á¥§¥Ã¥¯¥µ¥à¤¬ÉÔÀµ¤Ç¤¹¡£"
+
+#: libparted/fs/hfs/journal.c:168
+#, c-format
+msgid ""
+"Invalid size of a transaction block while replaying the journal (%i bytes)."
+msgstr ""
+"¥¸¥ã¡¼¥Ê¥ë¤Î¥ê¥×¥ì¥¤Ãæ¤Ë¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¥Ö¥í¥Ã¥¯¤Î¥µ¥¤¥º (%i ¥Ð¥¤¥È) ¤ÎÉÔÀµ¤¬"
+"¤¢¤ê¤Þ¤·¤¿¡£"
+
+#: libparted/fs/hfs/journal.c:260
+msgid ""
+"Journal stored outside of the volume are not supported.  Try to desactivate "
+"the journal and run Parted again."
+msgstr ""
+"¥¸¥ã¡¼¥Ê¥ë¤¬Ê̥ܥê¥å¡¼¥à¤Ë¤¢¤ë HFS+ ¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¡£¥¸¥ã¡¼¥Ê¥ë¤ò̵¸ú"
+"¤Ë¤·¤Æ¤«¤éÁàºî¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£"
+
+#: libparted/fs/hfs/journal.c:271
+msgid "Journal offset or size is not multiple of the sector size."
+msgstr "¥¸¥ã¡¼¥Ê¥ë¤Î¥ª¥Õ¥»¥Ã¥È¤«¥µ¥¤¥º¤¬¥»¥¯¥¿¥µ¥¤¥º¤ÎÇÜ¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£"
+
+#: libparted/fs/hfs/journal.c:292
+msgid "Incorrect magic values in the journal header."
+msgstr "¥¸¥ã¡¼¥Ê¥ë¥Ø¥Ã¥À¤Î¥Þ¥¸¥Ã¥¯¥Ê¥ó¥Ð¡¼¤¬ÉÔÀµ¤Ç¤¹¡£"
+
+#: libparted/fs/hfs/journal.c:302
+msgid "Journal size mismatch between journal info block and journal header."
+msgstr ""
+"¥¸¥ã¡¼¥Ê¥ë¥µ¥¤¥º¤Ë¤Ä¤¤¤Æ¡¢¥¸¥ã¡¼¥Ê¥ë¥¤¥ó¥Õ¥©¥Ö¥í¥Ã¥¯¤È¥¸¥ã¡¼¥Ê¥ë¥Ø¥Ã¥À¤È¤ÇÉÔ"
+"À°¹ç¤¬¤¢¤ê¤Þ¤¹¡£"
+
+#: libparted/fs/hfs/journal.c:314
+msgid "Some header fields are not multiple of the sector size."
+msgstr "¥Ø¥Ã¥À¥Õ¥£¡¼¥ë¥É¤ÎÃæ¤Ë¥»¥¯¥¿¥µ¥¤¥º¤ÎÇÜ¿ô¤Ë¤Ê¤Ã¤Æ¤Ê¤¤¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£"
+
+#: libparted/fs/hfs/journal.c:323
+msgid ""
+"The sector size stored in the journal is not 512 bytes.  Parted only "
+"supports 512 bytes length sectors."
+msgstr ""
+"¥¸¥ã¡¼¥Ê¥ë¤¬Êݸ¤µ¤ì¤Æ¤¤¤ë¥»¥¯¥¿¤Î¥µ¥¤¥º¤¬ 512 ¥Ð¥¤¥È¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£Parted "
+"¤Ç¤Ï 512 ¥Ð¥¤¥È¤Î¥»¥¯¥¿¤·¤«¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¡£"
+
+#: libparted/fs/hfs/journal.c:335
+msgid "Bad journal checksum."
+msgstr "¥¸¥ã¡¼¥Ê¥ë¤Î¥Á¥§¥Ã¥¯¥µ¥à¤¬ÉÔÀµ¤Ç¤¹¡£"
+
+#: libparted/fs/hfs/journal.c:353
+msgid ""
+"The journal is not empty.  Parted must replay the transactions before "
+"opening the file system.  This will modify the file system."
+msgstr ""
+"¥¸¥ã¡¼¥Ê¥ë¤¬¶õ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£Parted ¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥ª¡¼¥×¥ó¤¹¤ëÁ°¤Ë¥È¥é"
+"¥ó¥¶¥¯¥·¥ç¥ó¤Î¥ê¥×¥ì¥¤¤ò¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¥ê¥×¥ì¥¤¤¹¤ë¤È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à"
+"¤ÏÊѹ¹¤µ¤ì¤Þ¤¹¡£"
+
+#: libparted/fs/hfs/journal.c:381
+msgid ""
+"The volume header or the master directory block has changed while replaying "
+"the journal.  You should restart Parted."
+msgstr ""
+"¥Ü¥ê¥å¡¼¥à¥Ø¥Ã¥À¤«¥Þ¥¹¥¿¡¼¥Ç¥£¥ì¥¯¥È¥ê¥Ö¥í¥Ã¥¯¤¬¥¸¥ã¡¼¥Ê¥ë¤Î¥ê¥×¥ì¥¤Ãæ¤ËÊѹ¹"
+"¤µ¤ì¤Þ¤·¤¿¡£Parted ¤òºÆµ¯Æ°¤·¤Æ¤¯¤À¤µ¤¤¡£"
+
+#: libparted/fs/hfs/probe.c:51
+#, c-format
+msgid ""
+"Parted can't use HFS file systems on disks with a sector size not equal to %"
+"d bytes."
+msgstr ""
+"Parted ¤Ï¡¢¥»¥¯¥¿¥µ¥¤¥º¤¬ %d ¥Ð¥¤¥È¤Ç¤Ê¤¤¥Ç¥£¥¹¥¯¤Ç¤Ï HFS ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò"
+"»È¤¨¤Þ¤»¤ó¡£"
+
+#: libparted/fs/hfs/reloc.c:151 libparted/fs/hfs/reloc_plus.c:155
+msgid "An extent has not been relocated."
+msgstr "extent ¤ÏºÆÇÛÃÖ¤µ¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£"
+
+#: libparted/fs/hfs/reloc.c:251 libparted/fs/hfs/reloc_plus.c:307
+msgid ""
+"A reference to an extent comes from a place it should not.  You should check "
+"the file system!"
+msgstr ""
+"extent ¤Ø¤Î»²¾È¤Ï¤¢¤ê¤¨¤Ê¤¤¤È¤³¤í¤«¤é¤Ê¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥Á¥§¥Ã"
+"¥¯¤·¤Æ¤¯¤À¤µ¤¤¡£"
+
+#: libparted/fs/hfs/reloc.c:381
+msgid "This HFS volume has no catalog file.  This is very unusual!"
+msgstr ""
+"¤³¤Î HFS ¥Ü¥ê¥å¡¼¥à¤Ë¤Ï catalog file ¤¬¤¢¤ê¤Þ¤»¤ó¡£¤³¤ì¤Ï¤¢¤Þ¤ê¤¢¤ê¤¨¤Ê¤¤¤³¤È"
+"¤Ç¤¹¡£"
+
+#: libparted/fs/hfs/reloc.c:475
+msgid "This HFS volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+"¤³¤Î HFS ¥Ü¥ê¥å¡¼¥à¤Ë¤Ï extents overflow file ¤¬¤¢¤ê¤Þ¤»¤ó¡£¤³¤ì¤Ï¤Û¤È¤ó¤É¤¢"
+"¤ê¤¨¤Ê¤¤¤³¤È¤Ç¤¹¡£"
+
+#: libparted/fs/hfs/reloc.c:517 libparted/fs/hfs/reloc_plus.c:668
+msgid ""
+"The extents overflow file should not contain its own extents!  You should "
+"check the file system."
+msgstr ""
+"extents overflow file ¤Ï¼«Ê¬¼«¿È¤Î extent ¤ò´Þ¤ó¤Ç¤Ï¤¤¤±¤Þ¤»¤ó¡£¥Õ¥¡¥¤¥ë¥·¥¹"
+"¥Æ¥à¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤¡£"
+
+#: libparted/fs/hfs/reloc.c:574 libparted/fs/hfs/reloc_plus.c:847
+msgid "Could not cache the file system in memory."
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥á¥â¥ê¤Ë¥­¥ã¥Ã¥·¥å¤Ç¤­¤Þ¤»¤ó¡£"
+
+#: libparted/fs/hfs/reloc.c:635 libparted/fs/hfs/reloc_plus.c:908
+msgid "Bad blocks list could not be loaded."
+msgstr "ÉÔÀµ¥Ö¥í¥Ã¥¯°ìÍ÷¥Õ¥¡¥¤¥ë¤¬Æɤߤ³¤á¤Þ¤»¤ó¤Ç¤·¤¿¡£"
+
+#: libparted/fs/hfs/reloc.c:649 libparted/fs/hfs/reloc_plus.c:924
+msgid "An error occurred during extent relocation."
+msgstr "extent ¤ÎºÆÇÛÃÖÃæ¤Ë¥¨¥é¡¼¤ÏȯÀ¸¤·¤Þ¤·¤¿¡£"
+
+#: libparted/fs/hfs/reloc_plus.c:495
+msgid "This HFS+ volume has no catalog file.  This is very unusual!"
+msgstr ""
+"¤³¤Î HFS+ ¥Ü¥ê¥å¡¼¥à¤Ë¤Ï catalog file ¤¬¤¢¤ê¤Þ¤»¤ó¡£¤³¤ì¤Ï¤¢¤Þ¤ê¤¢¤ê¤¨¤Ê¤¤¤³"
+"¤È¤Ç¤¹¡£"
+
+#: libparted/fs/hfs/reloc_plus.c:619
+msgid "This HFS+ volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+"¤³¤Î HFS+ ¥Ü¥ê¥å¡¼¥à¤Ë¤Ï extents overflow file ¤¬¤¢¤ê¤Þ¤»¤ó¡£¤³¤ì¤Ï¤Û¤È¤ó¤É¤¢"
+"¤ê¤¨¤Ê¤¤¤³¤È¤Ç¤¹¡£"
+
+#: parted/parted.c:94
+msgid "displays this help message"
+msgstr "¤³¤Î¥Ø¥ë¥×¤òɽ¼¨¤¹¤ë"
+
+#: parted/parted.c:95
+#, fuzzy
+msgid "lists partition layout on all block devices"
+msgstr "¸¡½Ð¤·¤¿Á´¥Ç¥Ð¥¤¥¹¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤òɽ¼¨"
+
+#: parted/parted.c:96
+msgid "displays machine parseable output"
+msgstr ""
+
+#: parted/parted.c:97
+msgid "never prompts for user intervention"
+msgstr "¥æ¡¼¥¶¤Ë²ðÆþ¤µ¤»¤Ê¤¤"
+
+#: parted/parted.c:98
+msgid "displays the version"
+msgstr "¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤¹¤ë"
+
+#: parted/parted.c:111
+msgid ""
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"
+msgstr ""
+"NUMBER ¤Ï Linux ¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ¥Ñ¡¼¥Æ¥£¥·¥ç¥óÈÖ¹æ¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£MS-DOS "
+"¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤Ç¤Ï¡¢´ðËܥѡ¼¥Æ¥£¥·¥ç¥óÈÖ¹æ¤Ï 1 ¤«¤é 4 ¤Þ¤Ç¤Ç¡¢ÏÀÍý¥Ñ¡¼¥Æ¥£"
+"¥·¥ç¥ó¤Ï 5 °Ê¹ß¤È¤Ê¤ê¤Þ¤¹¡£\n"
+
+#: parted/parted.c:114
+msgid "LABEL-TYPE is one of: "
+msgstr "¥é¥Ù¥ë¤Î¼ïÎà¤Ï¼¡¤Î¤¦¤Á¤«¤éÁª¤Ó¤Þ¤¹: "
+
+#: parted/parted.c:115
+msgid "FLAG is one of: "
+msgstr "¥Õ¥é¥°¤Ï¼¡¤Î¤¦¤Á¤«¤éÁª¤Ó¤Þ¤¹: "
+
+#: parted/parted.c:116
+msgid "UNIT is one of: "
+msgstr "UNIT ¤Ï¼¡¤Î¤¦¤Á¤«¤éÁª¤Ó¤Þ¤¹: "
+
+#: parted/parted.c:117
+msgid "PART-TYPE is one of: primary, logical, extended\n"
+msgstr ""
+"¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¼ïÎà¤Ï¼¡¤Î¤¦¤Á¤Î¤É¤ì¤«¤È¤Ê¤ê¤Þ¤¹: ¥×¥é¥¤¥Þ¥ê¡¢ÏÀÍý¡¢³ÈÄ¥\n"
+
+#: parted/parted.c:119
+msgid "FS-TYPE is one of: "
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¼ïÎà¤Ï¼¡¤Î¤¦¤Á¤«¤éÁª¤Ó¤Þ¤¹: "
+
+#: parted/parted.c:120
+msgid ""
+"START and END are disk locations, such as 4GB or 10%.  Negative values count "
+"from the end of the disk.  For example, -1s specifies exactly the last "
+"sector.\n"
+msgstr ""
+"START ¤È END ¤Ï¡¢¥Ç¥£¥¹¥¯¾å¤Î°ÌÃÖ¤ò 4G ¤ä 10% ¤Ê¤É¤Çɽ¤ï¤·¤Þ¤¹¡£Éé¤ÎÃͤϥǥ£"
+"¥¹¥¯¤Î½ª¤ï¤ê¤«¤é¤ÎÃͤˤʤê¤Þ¤¹¡£Î㤨¤Ð¡¢-1s ¤Ï¡¢ºÇ¸å¤Î¥»¥¯¥¿¤ò»Ø¤·¤Þ¤¹¡£\n"
+
+#: parted/parted.c:123
+msgid "STATE is one of: on, off\n"
+msgstr "¾õÂÖ¤Ï on ¤« off ¤Î¤É¤Á¤é¤«\n"
+
+#: parted/parted.c:124
+msgid "DEVICE is usually /dev/hda or /dev/sda\n"
+msgstr "¥Ç¥Ð¥¤¥¹¤Ï¤¿¤¤¤Æ¤¤ /dev/hda ¤« /dev/sda ¤Ç¤¹¡£\n"
+
+#: parted/parted.c:125
+msgid "NAME is any word you want\n"
+msgstr "̾Á°¤ÎÉôʬ¤ÏǤ°Õ¤Îñ¸ì\n"
+
+#: parted/parted.c:126
+msgid "The partition must have one of the following FS-TYPEs: "
+msgstr ""
+"¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï°Ê²¼¤Î¤¦¤Á¤Î¤¤¤º¤ì¤«¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó: "
+
+#: parted/parted.c:130
+#, fuzzy
+msgid ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+msgstr ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"¤³¤Î¥×¥í¥°¥é¥à¤Ï GPL ¤Ë´ð¤Å¤¤¤¿¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¤Ç¤¹¡£\n"
+"ÆüËܸìÌõ¤Ë´Ø¤·¤Æ¤Ï Hiroshi Takekawa <sian@big.or.jp> ¤Þ¤Ç¤ª¤Í¤¬¤¤¤·¤Þ¤¹¡£\n"
+"\n"
+"ËÜ¥×¥í¥°¥é¥à¤ÏÍ­ÍѤȤϻפ¤¤Þ¤¹¤¬¡¢ÈÒÉۤˤ¢¤¿¤Ã¤Æ¤Ï¡¢»Ô¾ìÀ­µÚ¤ÓÆÃÄêÌÜŪŬ¹çÀ­"
+"¤Ë¤Ä¤¤¤Æ¤Î°ÅÌÛ¤ÎÊݾڤò´Þ¤á¤Æ¡¢¤¤¤«¤Ê¤ëÊݾڤâ¹Ô¤Ê¤¤¤Þ¤»¤ó¡£¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤ÏGNU "
+"°ìÈ̸øÍ­»ÈÍѵöÂú½ñ¤ò¤ªÆɤߤ¯¤À¤µ¤¤¡£\n"
+
+#: parted/parted.c:176
+#, c-format
+msgid "%0.f%%\t(time left %.2d:%.2d)"
+msgstr "%0.f%%\t(»Ä¤ê»þ´Ö %.2d:%.2d)"
+
+#: parted/parted.c:195
+#, c-format
+msgid ""
+"Partition %s is being used. You must unmount it before you modify it with "
+"Parted."
+msgstr ""
+"¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %s ¤Ï»ÈÍÑÃæ¤Ç¤¹¡£Parted ¤ÇÁàºî¤¹¤ëÁ°¤Ë unmount ¤·¤Æ¤¯¤À¤µ¤¤¡£"
+
+#: parted/parted.c:211
+#, c-format
+msgid "Partition(s) on %s are being used."
+msgstr "%s ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬»ÈÍÑÃæ¤Ç¤¹¡£"
+
+#: parted/parted.c:223
+msgid ""
+"The existing file system will be destroyed and all data on the partition "
+"will be lost. Do you want to continue?"
+msgstr ""
+"¤¤¤Þ¸ºß¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÏÇ˲õ¤µ¤ì¡¢¤³¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ÎÁ´¥Ç¡¼¥¿¤¬¼º"
+"¤ï¤ì¤Þ¤¹¡£Â³¹Ô¤·¤Þ¤¹¤«¡©"
+
+#: parted/parted.c:235
+#, c-format
+msgid ""
+"The existing disk label on %s will be destroyed and all data on this disk "
+"will be lost. Do you want to continue?"
+msgstr ""
+"¤¤¤Þ¸ºß¤·¤Æ¤¤¤ë %s ¤Î¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤ÏÇ˲õ¤µ¤ì¡¢¤³¤Î¥Ç¥£¥¹¥¯¤ÎÁ´¥Ç¡¼¥¿¤¬¼º¤ï"
+"¤ì¤Þ¤¹¡£Â³¹Ô¤·¤Þ¤¹¤«¡©"
+
+#: parted/parted.c:458 parted/parted.c:652 parted/parted.c:1044
+#: parted/parted.c:1128 parted/parted.c:1771 parted/parted.c:1852
+#: parted/parted.c:1900
+msgid "Partition number?"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥óÈÖ¹æ?"
+
+#: parted/parted.c:500
+msgid "Source device?"
+msgstr "žÁ÷¸µ¤Î¥Ç¥Ð¥¤¥¹?"
+
+#: parted/parted.c:504
+msgid "Source partition number?"
+msgstr "žÁ÷¸µ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥óÈÖ¹æ?"
+
+#: parted/parted.c:509
+msgid "Can't copy an extended partition."
+msgstr "³ÈÄ¥¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï¥³¥Ô¡¼¤Ç¤­¤Þ¤»¤ó¡£"
+
+#: parted/parted.c:515
+msgid "Destination partition number?"
+msgstr "žÁ÷Àè¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥óÈÖ¹æ?"
+
+#: parted/parted.c:615
+msgid "New disk label type?"
+msgstr "¿·¤·¤¤¥Ç¥£¥¹¥¯¥é¥Ù¥ë?"
+
+#: parted/parted.c:656
+msgid "File system?"
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à?"
+
+#: parted/parted.c:707 parted/parted.c:878
+msgid "Partition type?"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¼ïÎà?"
+
+#: parted/parted.c:714 parted/parted.c:885 parted/parted.c:1131
+msgid "Partition name?"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î̾Á°?"
+
+#: parted/parted.c:722 parted/parted.c:895
+msgid "File system type?"
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¼ïÎà?"
+
+#: parted/parted.c:729 parted/parted.c:897 parted/parted.c:1059
+#: parted/parted.c:1725 parted/parted.c:1780
+msgid "Start?"
+msgstr "³«»Ï?"
+
+#: parted/parted.c:731 parted/parted.c:900 parted/parted.c:1062
+#: parted/parted.c:1727 parted/parted.c:1782
+msgid "End?"
+msgstr "½ªÎ»?"
+
+#: parted/parted.c:769 parted/parted.c:938
+#, c-format
+msgid ""
+"You requested a partition from %s to %s.\n"
+"The closest location we can manage is %s to %s.  Is this still acceptable to "
+"you?"
+msgstr ""
+"%s ¤«¤é %s ¤Þ¤Ç¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò»ØÄꤵ¤ì¤Þ¤·¤¿¡£\n"
+"²Äǽ¤ÊÃæ¤ÇºÇ¤â¶á¤¤¤â¤Î¤Ï %s ¤«¤é %s ¤Þ¤Ç¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¤Ê¤ê¤Þ¤¹¡£¤½¤ì¤Ç¤â"
+"¤«¤Þ¤¤¤Þ¤»¤ó¤«¡©"
+
+#: parted/parted.c:890
+msgid "An extended partition cannot hold a file system.  Did you want mkpart?"
+msgstr ""
+"³ÈÄ¥¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ïºî¤ì¤Þ¤»¤ó¡£mkpart ¤ò¤·¤¿¤¤¤Î¤Ç¤¹¤«¡©"
+
+#: parted/parted.c:1050
+msgid "Can't move an extended partition."
+msgstr "³ÈÄ¥¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï°ÜÆ°¤Ç¤­¤Þ¤»¤ó¡£"
+
+#: parted/parted.c:1079
+msgid "Can't move a partition onto itself.  Try using resize, perhaps?"
+msgstr "¼«Ê¬¼«¿È¤Î¾å¤Ë¤Ï°ÜÆ°¤Ç¤­¤Þ¤»¤ó¡£¥ê¥µ¥¤¥º¤·¤è¤¦¤È¤·¤Æ¤ë¤Î¤Ç¤¹¤«¡©"
+
+#: parted/parted.c:1227
+#, c-format
+msgid "Minor: %d\n"
+msgstr "¥Þ¥¤¥Ê¡¼: %d\n"
+
+#: parted/parted.c:1228
+#, c-format
+msgid "Flags: %s\n"
+msgstr "¥Õ¥é¥°: %s\n"
+
+#: parted/parted.c:1229
+#, c-format
+msgid "File System: %s\n"
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à: %s\n"
+
+#: parted/parted.c:1230
+msgid "Size:         "
+msgstr "¥µ¥¤¥º:       "
+
+#: parted/parted.c:1235
+msgid "Minimum size: "
+msgstr "ºÇ¾®¥µ¥¤¥º:   "
+
+#: parted/parted.c:1238
+msgid "Maximum size: "
+msgstr "ºÇÂ祵¥¤¥º:   "
+
+#: parted/parted.c:1362
+#, c-format
+msgid "Model: %s (%s)\n"
+msgstr "¥â¥Ç¥ë: %s (%s)\n"
+
+#: parted/parted.c:1364
+#, c-format
+msgid "Disk %s: %s\n"
+msgstr "¥Ç¥£¥¹¥¯ %s: %s\n"
+
+#: parted/parted.c:1365
+#, c-format
+msgid "Sector size (logical/physical): %lldB/%lldB\n"
+msgstr "¥»¥¯¥¿¥µ¥¤¥º (ÏÀÍý/ʪÍý): %lldB/%lldB\n"
+
+#: parted/parted.c:1383
+#, c-format
+msgid "BIOS cylinder,head,sector geometry: %d,%d,%d.  Each cylinder is %s.\n"
+msgstr "BIOS ¥·¥ê¥ó¥À¡¢¥Ø¥Ã¥É¡¢¥»¥¯¥¿ geometry: %d,%d,%d.  1¥·¥ê¥ó¥À¤Ï %s¡£\n"
+
+#: parted/parted.c:1392
+#, c-format
+msgid "Partition Table: %s\n"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë: %s\n"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Number"
+msgstr "ÈÖ¹æ"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Start"
+msgstr "³«»Ï"
+
+#: parted/parted.c:1407 parted/parted.c:1410
+msgid "End"
+msgstr "½ªÎ»"
+
+#: parted/parted.c:1410
+msgid "Size"
+msgstr "¥µ¥¤¥º"
+
+#: parted/parted.c:1414
+msgid "Type"
+msgstr "¥¿¥¤¥×"
+
+#: parted/parted.c:1416
+msgid "File system"
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à"
+
+#: parted/parted.c:1419
+msgid "Name"
+msgstr "̾Á°"
+
+#: parted/parted.c:1421
+msgid "Flags"
+msgstr "¥Õ¥é¥°"
+
+#: parted/parted.c:1477
+msgid "Free Space"
+msgstr "¶õ¤­ÍÆÎÌ"
+
+#: parted/parted.c:1624
+#, c-format
+msgid ""
+"A %s %s partition was found at %s -> %s.  Do you want to add it to the "
+"partition table?"
+msgstr ""
+"%s %s ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬ %s ¢ª %s ¤Î¾ì½ê¤Ëȯ¸«¤µ¤ì¤Þ¤·¤¿¡£¤³¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò"
+"¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤ËÄɲä·¤Þ¤¹¤«¡©"
+
+#: parted/parted.c:1663
+msgid "searching for file systems"
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òõ¤·¤Æ¤¤¤Þ¤¹"
+
+#: parted/parted.c:1877
+msgid "New device?"
+msgstr "¿·¤·¤¤¥Ç¥Ð¥¤¥¹?"
+
+#: parted/parted.c:1902
+msgid "Flag to Invert?"
+msgstr "ȿž¤¹¤ë¥Õ¥é¥°?"
+
+#: parted/parted.c:1907
+msgid "New state?"
+msgstr "¿·¤·¤¤¾õÂÖ?"
+
+#: parted/parted.c:1944
+msgid "Unit?"
+msgstr "ñ°Ì¤Ï?"
+
+#: parted/parted.c:2093
+msgid "check"
+msgstr "check"
+
+#: parted/parted.c:2096
+msgid ""
+"check NUMBER                             do a simple check on the file system"
+msgstr "check NUMBER                  ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î´Êñ¤Ê¥Á¥§¥Ã¥¯¤¹¤ë"
+
+#: parted/parted.c:2102
+msgid "cp"
+msgstr "cp"
+
+#: parted/parted.c:2105
+msgid ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+"partition"
+msgstr ""
+"cp [žÁ÷¸µ¥Ç¥Ð¥¤¥¹] žÁ÷¸µNUMBER žÁ÷ÀèNUMBER\n"
+"¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¾¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¥³¥Ô¡¼¤¹¤ë"
+
+#: parted/parted.c:2111
+msgid "help"
+msgstr "help"
+
+#: parted/parted.c:2114
+#, fuzzy
+msgid ""
+"help [COMMAND]                           print general help, or help on "
+"COMMAND"
+msgstr ""
+"help [¥³¥Þ¥ó¥É]               ¥Ø¥ë¥×ɽ¼¨¡£¥³¥Þ¥ó¥É»ØÄê¤Ç¤½¤Î¥Ø¥ë¥×¤òɽ¼¨"
+
+#: parted/parted.c:2120
+msgid "mklabel"
+msgstr "mklabel"
+
+#: parted/parted.c:2120
+msgid "mktable"
+msgstr "mktable"
+
+#: parted/parted.c:2123
+msgid ""
+"mklabel,mktable LABEL-TYPE               create a new disklabel (partition "
+"table)"
+msgstr ""
+"mklabel,mktable ¥é¥Ù¥ë¤Î¼ïÎà          ¿·¤·¤¤¥é¥Ù¥ë(¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë)¤ò"
+"ºî¤ë"
+
+#: parted/parted.c:2129
+msgid "mkfs"
+msgstr "mkfs"
+
+#: parted/parted.c:2132
+msgid ""
+"mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on "
+"partititon NUMBER"
+msgstr ""
+"mkfs NUMBER ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¼ïÎà\n"
+"¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÄꤷ¤¿¼ïÎà¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òºî¤ë"
+
+#: parted/parted.c:2138
+msgid "mkpart"
+msgstr "mkpart"
+
+#: parted/parted.c:2141
+msgid "mkpart PART-TYPE [FS-TYPE] START END     make a partition"
+msgstr ""
+"mkpart ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¼ïÎà [¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¼ïÎà] ³«»Ï ½ªÎ»\n"
+"¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºî¤ë"
+
+#: parted/parted.c:2147
+#, fuzzy
+msgid ""
+"'mkpart' makes a partition without creating a new file system on the "
+"partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"
+msgstr ""
+"mkpart ¤Ï¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤À¤±ºî¤ê¡¢¿·¤·¤¤¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ïºî¤ê¤Þ¤»¤ó¡£¥Õ¥¡¥¤¥ë"
+"¥·¥¹¥Æ¥à¤Î¼ïÎà¤ò»ØÄꤹ¤ë¤È¡¢Àµ¤·¤¤ID¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£\n"
+
+#: parted/parted.c:2152
+msgid "mkpartfs"
+msgstr "mkpartfs"
+
+#: parted/parted.c:2155
+msgid ""
+"mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system"
+msgstr ""
+"mkpartfs ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¼ïÎà ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¼ïÎà ³«»Ï ½ªÎ»\n"
+"¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òºî¤ë"
+
+#: parted/parted.c:2161
+msgid "move"
+msgstr "move"
+
+#: parted/parted.c:2164
+msgid "move NUMBER START END                    move partition NUMBER"
+msgstr "move NUMBER ³«»Ï ½ªÎ»         ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò°ÜÆ°¤¹¤ë"
+
+#: parted/parted.c:2169
+msgid "name"
+msgstr "name"
+
+#: parted/parted.c:2172
+msgid "name NUMBER NAME                         name partition NUMBER as NAME"
+msgstr "name NUMBER ̾Á°              ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë̾Á°¤ò¤Ä¤±¤ë"
+
+#: parted/parted.c:2177
+msgid "print"
+msgstr "print"
+
+#: parted/parted.c:2180
+msgid ""
+"print [devices|free|list,all|NUMBER]     display the partition table, "
+"available devices, free space, all found partitions, or a particular "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2185
+msgid ""
+"Without arguments, 'print' displays the entire partition table. However with "
+"the following arguments it performs various other actions.\n"
+msgstr ""
+
+#: parted/parted.c:2187
+msgid "  devices   : display all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2188
+msgid ""
+"  free      : display information about free unpartitioned space on the "
+"current block device\n"
+msgstr ""
+
+#: parted/parted.c:2190
+#, fuzzy
+msgid ""
+"  list, all : display the partition tables of all active block devices\n"
+msgstr "¸¡½Ð¤·¤¿Á´¥Ç¥Ð¥¤¥¹¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤òɽ¼¨"
+
+#: parted/parted.c:2191
+msgid ""
+"  NUMBER    : display more detailed information about this particular "
+"partition\n"
+msgstr ""
+
+#: parted/parted.c:2196
+msgid "quit"
+msgstr "quit"
+
+#: parted/parted.c:2199
+msgid "quit                                     exit program"
+msgstr "quit                          ¥×¥í¥°¥é¥à¤ò½ªÎ»¤¹¤ë"
+
+#: parted/parted.c:2204
+msgid "rescue"
+msgstr "rescue"
+
+#: parted/parted.c:2207
+msgid ""
+"rescue START END                         rescue a lost partition near START "
+"and END"
+msgstr ""
+"rescue ³«»Ï ½ªÎ»              ³«»Ï¡¢½ªÎ»¤Ç»ØÄꤷ¤¿ÈÏ°ÏÉÕ¶á¤Ë¤¢¤ë¥Ñ¡¼¥Æ¥£¥·¥ç"
+"¥ó¤òÉü³è¤µ¤»¤ë"
+
+#: parted/parted.c:2213
+msgid "resize"
+msgstr "resize"
+
+#: parted/parted.c:2216
+msgid ""
+"resize NUMBER START END                  resize partition NUMBER and its "
+"file system"
+msgstr ""
+"resize NUMBER ³«»Ï ½ªÎ»       ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤È¤½¤ÎÃæ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥ê¥µ"
+"¥¤¥º¤¹¤ë"
+
+#: parted/parted.c:2224
+msgid "rm"
+msgstr "rm"
+
+#: parted/parted.c:2227
+msgid "rm NUMBER                                delete partition NUMBER"
+msgstr "rm NUMBER                     ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºï½ü¤¹¤ë"
+
+#: parted/parted.c:2232
+msgid "select"
+msgstr "select"
+
+#: parted/parted.c:2235
+msgid "select DEVICE                            choose the device to edit"
+msgstr "select ¥Ç¥Ð¥¤¥¹               Áàºî¤¹¤ë¥Ç¥Ð¥¤¥¹¤òÁªÂò"
+
+#: parted/parted.c:2240
+msgid "set"
+msgstr "set"
+
+#: parted/parted.c:2243
+msgid ""
+"set NUMBER FLAG STATE                    change the FLAG on partition NUMBER"
+msgstr "set NUMBER ¥Õ¥é¥° ¾õÂÖ        ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Õ¥é¥°¤È¾õÂÖ¤òÀßÄꤹ¤ë"
+
+#: parted/parted.c:2249
+msgid "toggle"
+msgstr "toggle"
+
+#: parted/parted.c:2252
+msgid ""
+"toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+"partition NUMBER"
+msgstr "toggle [NUMBER [FLAG]]        ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¥Õ¥é¥°¤Î¾õÂÖ¤òȿž¤¹¤ë"
+
+#: parted/parted.c:2258
+msgid "unit"
+msgstr "unit"
+
+#: parted/parted.c:2261
+msgid "unit UNIT                                set the default unit to UNIT"
+msgstr "unit UNIT                     ¥Ç¥Õ¥©¥ë¥È¤Îñ°Ì¤ò UNIT ¤Ë¤¹¤ë"
+
+#: parted/parted.c:2266
+msgid "version"
+msgstr "version"
+
+#: parted/parted.c:2269
+#, fuzzy
+msgid ""
+"version                                  display the version number and "
+"copyright information of GNU Parted"
+msgstr ""
+"version                       GNU Parted ¤Î¥Ð¡¼¥¸¥ç¥ó¤ÈÃøºî¸¢¾ðÊó¤òɽ¼¨"
+
+#: parted/parted.c:2273
+#, fuzzy
+msgid ""
+"'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"
+msgstr ""
+"version ¤Ï¡¢¼Â¹ÔÃæ¤Î GNU Parted ¤Î¥Ð¡¼¥¸¥ç¥ó¤ÈÃøºî¸¢¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡£\n"
+
+#: parted/parted.c:2335
+#, c-format
+msgid "Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"
+msgstr ""
+
+#: parted/parted.c:2379
+msgid "No device found"
+msgstr "¥Ç¥Ð¥¤¥¹¤¬¤ß¤Ä¤«¤ê¤Þ¤»¤ó¡£"
+
+#: parted/parted.c:2412
+#, fuzzy
+msgid "WARNING: You are not superuser.  Watch out for permissions."
+msgstr "·Ù¹ð: ´ÉÍý¼Ô¸¢¸Â¤¬¤¢¤ê¤Þ¤»¤ó¡£¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: parted/parted.c:2450
+#, fuzzy
+msgid "You may need to update /etc/fstab.\n"
+msgstr "ɬÍפǤ¢¤ì¤Ð /etc/fstab ¤ò¹¹¿·¤¹¤ë¤Î¤ò˺¤ì¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: parted/ui.c:160
+msgid "Welcome to GNU Parted! Type 'help' to view a list of commands.\n"
+msgstr ""
+"GNU Parted ¤Ø¤è¤¦¤³¤½¡ª ¥³¥Þ¥ó¥É°ìÍ÷¤ò¸«¤ë¤Ë¤Ï 'help' ¤ÈÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: parted/ui.c:163
+msgid ""
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run "
+"in\n"
+"interactive mode.\n"
+msgstr ""
+"»È¤¤Êý: parted [¥ª¥×¥·¥ç¥ó]... [¥Ç¥Ð¥¤¥¹ [¥³¥Þ¥ó¥É [¥Ñ¥é¥á¡¼¥¿]...]...]\n"
+"¥Ç¥Ð¥¤¥¹¤ËÂФ·¤Æ¥Ñ¥é¥á¡¼¥¿¤Ë½¾¤Ã¤Æ¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Þ¤¹¡£¤â¤·¥³¥Þ¥ó¥É¤¬»ØÄꤵ"
+"¤ì¤Ê¤±¤ì¤Ð¡¢ÂÐÏå⡼¥É¤ËÆþ¤ê¤Þ¤¹¡£\n"
+
+#: parted/ui.c:168
+#, fuzzy, c-format
+msgid ""
+"\n"
+"\n"
+"You found a bug in GNU Parted! Here's what you have to do:\n"
+"\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n"
+"\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Please check this version prior to bug reporting.\n"
+"\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"for further information.\n"
+"\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n"
+msgstr ""
+"\n"
+"\n"
+"GNU Parted ¤Î¥Ð¥°¤òȯ¸«¤·¤Þ¤·¤¿¡ª\n"
+"\n"
+"¥Ñ¥Ë¥Ã¥¯¤òµ¯¤³¤µ¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡ª ¤³¤Î¥Ð¥°¤Ï¤ª¤½¤é¤¯¥Ç¡¼¥¿¤Ë¤Ï±Æ¶Á¤¢¤ê¤Þ¤»"
+"¤ó¡£\n"
+"¼¡¤Î¤³¤È¤ò¤·¤Æ¤³¤Î¥Ð¥°¤Î½¤Àµ¤Ë¤´¶¨ÎϤ¯¤À¤µ¤¤¡£\n"
+"\n"
+"¼¡¤Î¥µ¥¤¥È¤ËºÇ¿·¥Ð¡¼¥¸¥ç¥ó¤¬¤¢¤ê¤Þ¤¹¡£\n"
+"´û¤Ë¤³¤Î¥Ð¥°¤¬½¤Àµ¤µ¤ì¤Æ¤¤¤Ê¤¤¤«³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"¥Ð¥°¥ì¥Ý¡¼¥È¤ò¤¹¤ëÁ°¤ËºÇ¿·¥Ð¡¼¥¸¥ç¥ó¤Ç³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
+"\n"
+"¤Þ¤À¥Ð¥°¤¬½¤Àµ¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢³Îǧ¤Î»ÅÊý¤¬¤ï¤«¤é¤Ê¤¤¾ì¹ç¡¢\n"
+"GNU Parted ¤Î web ¥µ¥¤¥È\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"¤ò³«¤¤¤Æ¡¢¾Ü¤·¤¤¾ðÊó¤òÄ´¤Ù¤Æ¤¯¤À¤µ¤¤¡£\n"
+"\n"
+"¥ì¥Ý¡¼¥È¤Ë¤Ï¡¢¤³¤Î Parted ¤Î¥Ð¡¼¥¸¥ç¥ó¾ðÊó (%s) ¤È¡¢\n"
+"²¼¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¡¢¼¡¤Î¥³¥Þ¥ó¥É\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"¤Î½ÐÎϤȡ¢¤½¤Î¾½ÅÍפȻפ¦¾ðÊó¤òµ­½Ò¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: parted/ui.c:284
+msgid ""
+"\n"
+"Command History:\n"
+msgstr ""
+
+#: parted/ui.c:366
+#, fuzzy
+msgid ""
+"\n"
+"Error: SEGV_MAPERR (Address not mapped to object)\n"
+msgstr ""
+"\n"
+"¥¨¥é¡¼: SEGV_MAPERR (¥¢¥É¥ì¥¹¤¬¥ª¥Ö¥¸¥§¥¯¥È¤ËÊÑ´¹¤µ¤ì¤Þ¤»¤ó¤Ç¤·¤¿)"
+
+#: parted/ui.c:372
+#, fuzzy
+msgid ""
+"\n"
+"Error: SEGV_ACCERR (Invalid permissions for mapped object)\n"
+msgstr ""
+"\n"
+"¥¨¥é¡¼: SEGV_ACCERR (¥Þ¥Ã¥×¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤¬ÉÔÀµ¤Ç¤¹)"
+
+#: parted/ui.c:377
+#, fuzzy
+msgid ""
+"\n"
+"Error: A general SIGSEGV signal was encountered.\n"
+msgstr ""
+"\n"
+"¥¨¥é¡¼: SIGSEGV ¥·¥°¥Ê¥ë¤ò¼õ¤±¤È¤ê¤Þ¤·¤¿¡£"
+
+#: parted/ui.c:410
+msgid ""
+"\n"
+"Error: FPE_INTDIV (Integer: divide by zero)"
+msgstr ""
+"\n"
+"¥¨¥é¡¼: FPE_INTDIV (À°¿ô: 0¤Ë¤è¤ë½ü»»)"
+
+#: parted/ui.c:415
+msgid ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+msgstr ""
+"\n"
+"¥¨¥é¡¼: FPE_INTOVF (À°¿ô: ¥ª¡¼¥Ð¡¼¥Õ¥í¡¼)"
+
+#: parted/ui.c:420
+msgid ""
+"\n"
+"Error: FPE_FLTDIV (Float: divide by zero)"
+msgstr ""
+"\n"
+"¥¨¥é¡¼: FPE_FLTDIV (ÉâÆ°¾®¿ôÅÀ: 0¤Ë¤è¤ë½ü»»)"
+
+#: parted/ui.c:425
+msgid ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+msgstr ""
+"\n"
+"¥¨¥é¡¼: FPE_FLTOVF (ÉâÆ°¾®¿ôÅÀ: ¥ª¡¼¥Ð¡¼¥Õ¥í¡¼)"
+
+#: parted/ui.c:430
+msgid ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+msgstr ""
+"\n"
+"¥¨¥é¡¼: FPE_FLTUND (ÉâÆ°¾®¿ôÅÀ: ¥¢¥ó¥À¡¼¥Õ¥í¡¼)"
+
+#: parted/ui.c:435
+msgid ""
+"\n"
+"Error: FPE_FLTRES (Float: inexact result)"
+msgstr ""
+"\n"
+"¥¨¥é¡¼: FPE_FLTRES (ÉâÆ°¾®¿ôÅÀ: Àµ¤·¤¯¤Ê¤¤·ë²Ì)"
+
+#: parted/ui.c:440
+msgid ""
+"\n"
+"Error: FPE_FLTINV (Float: invalid operation)"
+msgstr ""
+"\n"
+"\n"
+"¥¨¥é¡¼: FPE_FLTINV (ÉâÆ°¾®¿ôÅÀ: ÉÔÀµ¤ÊÁàºî)"
+
+#: parted/ui.c:445
+msgid ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript out of range)"
+msgstr ""
+"\n"
+"¥¨¥é¡¼: FPE_FLTSUB (ÉâÆ°¾®¿ôÅÀ: ź»ú¤¬ÈϰϤò±Û¤¨¤Þ¤·¤¿)"
+
+#: parted/ui.c:450
+msgid ""
+"\n"
+"Error: A general SIGFPE signal was encountered."
+msgstr ""
+"\n"
+"¥¨¥é¡¼: SIGFPE ¥·¥°¥Ê¥ë¤ò¼õ¤±¤È¤ê¤Þ¤·¤¿¡£"
+
+#: parted/ui.c:483
+msgid ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+msgstr ""
+"\n"
+"¥¨¥é¡¼: ILL_ILLOPC (ÉÔÀµ¤Ê¥ª¥Ú¥³¡¼¥É)"
+
+#: parted/ui.c:488
+msgid ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+msgstr ""
+"\n"
+"¥¨¥é¡¼: ILL_ILLOPN (ÉÔÀµ¤Ê¥ª¥Ú¥é¥ó¥É)"
+
+#: parted/ui.c:493
+msgid ""
+"\n"
+"Error: ILL_ILLADR (Illegal addressing mode)"
+msgstr ""
+"\n"
+"¥¨¥é¡¼: ILL_ILLADR (ÉÔÀµ¤Ê¥¢¥É¥ì¥¹¥â¡¼¥É)"
+
+#: parted/ui.c:498
+msgid ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+msgstr ""
+"\n"
+"¥¨¥é¡¼: ILL_ILLTRP (ÉÔÀµ¤Ê¥È¥é¥Ã¥×)"
+
+#: parted/ui.c:503
+msgid ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+msgstr ""
+"\n"
+"¥¨¥é¡¼: ILL_PRVOPC (Æø¢¤¬É¬Íפʥª¥Ú¥³¡¼¥É)"
+
+#: parted/ui.c:508
+msgid ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+msgstr ""
+"\n"
+"¥¨¥é¡¼: ILL_PRVREG (Æø¢¤¬É¬Íפʥ쥸¥¹¥¿)"
+
+#: parted/ui.c:513
+msgid ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+msgstr ""
+"\n"
+"¥¨¥é¡¼: ILL_COPROC (¥³¥×¥í¥»¥Ã¥µ¥¨¥é¡¼)"
+
+#: parted/ui.c:518
+msgid ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+msgstr ""
+"\n"
+"¥¨¥é¡¼: ILL_BADSTK (¥¤¥ó¥¿¡¼¥Ê¥ë¥¹¥¿¥Ã¥¯¥¨¥é¡¼)"
+
+#: parted/ui.c:523
+msgid ""
+"\n"
+"Error: A general SIGILL signal was encountered."
+msgstr ""
+"\n"
+"¥¨¥é¡¼: SIGILL ¥·¥°¥Ê¥ë¤ò¼õ¤±¤È¤ê¤Þ¤·¤¿¡£"
+
+#: parted/ui.c:1024
+msgid "Expecting a partition number."
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥óÈÖ¹æ¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£"
+
+#: parted/ui.c:1033
+msgid "Partition doesn't exist."
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬¤¢¤ê¤Þ¤»¤ó¡£"
+
+#: parted/ui.c:1053
+msgid "Expecting a file system type."
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¼ïÎà¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£"
+
+#: parted/ui.c:1060
+#, c-format
+msgid "Unknown file system type \"%s\"."
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¼ïÎà \"%s\" ¤ÏÉÔÌÀ¤Ç¤¹¡£"
+
+#: parted/ui.c:1080
+msgid "Expecting a disk label type."
+msgstr "¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤Î¼ïÎà¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£"
+
+#: parted/ui.c:1178
+msgid "Can't create any more partitions."
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òÄɲäǤ­¤Þ¤»¤ó¡£"
+
+#: parted/ui.c:1188
+msgid "Expecting a partition type."
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¼ïÎà¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£"
+
+#: parted/ui.c:1315
+msgid "on"
+msgstr "on"
+
+#: parted/ui.c:1316
+msgid "off"
+msgstr "off"
+
+#: parted/ui.c:1431
+msgid "OPTIONs:"
+msgstr "¥ª¥×¥·¥ç¥ó"
+
+#: parted/ui.c:1436
+msgid "COMMANDs:"
+msgstr "¥³¥Þ¥ó¥É:"
+
+#: parted/ui.c:1445
+#, c-format
+msgid "Using %s\n"
+msgstr "%s ¤ò»ÈÍÑ\n"
+
+#: parted/ui.c:1519
+msgid "This command does not make sense in non-interactive mode.\n"
+msgstr ""
+
+#~ msgid "GNU Parted cannot resize this file system, please useresize2fs."
+#~ msgstr ""
+#~ "GNU Parted ¤Ç¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥ê¥µ¥¤¥º¤Ç¤­¤Þ¤»¤ó¡£resize2fs ¤ò"
+#~ "»È¤Ã¤Æ¤¯¤À¤µ¤¤¡£"
+
+#~ msgid "where necessary, prompts for user intervention"
+#~ msgstr "ɬÍפǤ¢¤ì¤Ð¥×¥í¥ó¥×¥È¤ò¤À¤·¤Æ¥æ¡¼¥¶¤Ë²ðÆþ¤µ¤»¤ë"
+
+#~ msgid "GNU Parted Version information:\n"
+#~ msgstr "GNU Parted ¥Ð¡¼¥¸¥ç¥ó¾ðÊó:\n"
+
+#~ msgid ""
+#~ "print [free|NUMBER|all]                  display the partition table, a "
+#~ "partition, or all devices"
+#~ msgstr "print [free|NUMBER|all]       ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤òɽ¼¨¤¹¤ë"
+
+#~ msgid ""
+#~ "Without arguments, print displays the entire partition table. With "
+#~ "'free'\n"
+#~ "argument, information about free space will be displayed otherwise if a\n"
+#~ "partition number is given, then more detailed information is displayed\n"
+#~ "about that partition. If the 'all' argument is passed instead, partition\n"
+#~ "information for all devices will be displayed.\n"
+#~ msgstr ""
+#~ "°ú¿ô¤Ê¤·¤Î¾ì¹ç¡¢print ¤Ï¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤ÎÁ´ÆâÍƤòɽ¼¨¤·¤Þ¤¹¡£\n"
+#~ "'free'¤È¤¤¤¦°ú¿ô¤òÍ¿¤¨¤ë¤È¡¢¶õ¤­ÍÆÎ̤ˤĤ¤¤Æɽ¼¨¤µ¤ì¡¢\n"
+#~ "¥Ñ¡¼¥Æ¥£¥·¥ç¥óÈÖ¹æ¤òÍ¿¤¨¤ë¤È¡¢¤½¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤¬É½¼¨¤µ¤ì¤Þ"
+#~ "¤¹¡£\n"
+#~ "'all'¤òÍ¿¤¨¤ë¤È¡¢Á´¤Æ¤Î¥Ç¥Ð¥¤¥¹¤Ë¤Ä¤¤¤Æ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¾ðÊó¤¬É½¼¨¤µ¤ì¤Þ"
+#~ "¤¹¡£\n"
diff --git a/parted-1.8.7/po/nl.gmo b/parted-1.8.7/po/nl.gmo
new file mode 100644
index 0000000..2bb25f3
--- /dev/null
+++ b/parted-1.8.7/po/nl.gmo
Binary files differ
diff --git a/parted-1.8.7/po/nl.po b/parted-1.8.7/po/nl.po
new file mode 100644
index 0000000..69cc8bc
--- /dev/null
+++ b/parted-1.8.7/po/nl.po
@@ -0,0 +1,3313 @@
+# Translation of parted-1.8.1 to Dutch.
+# Copyright (C) 2000, 2005, 2006 Free Software Foundation, Inc.
+# Ivo Timmermans <ivo@o2w.nl>, 2000.
+# Benno Schulenberg <benno@nietvergeten.nl>, 2005, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: parted 1.8.1\n"
+"Report-Msgid-Bugs-To: bug-parted@gnu.org\n"
+"POT-Creation-Date: 2007-05-09 17:02-0400\n"
+"PO-Revision-Date: 2006-12-07 22:52+0100\n"
+"Last-Translator: Benno Schulenberg <benno@nietvergeten.nl>\n"
+"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: lib/closeout.c:74
+msgid "write error"
+msgstr ""
+
+#: lib/error.c:125
+#, fuzzy
+msgid "Unknown system error"
+msgstr "Onbekende bestandssysteemsoort '%s'."
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK).  A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#.
+#. If you don't know what to put here, please see
+#. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr ""
+
+#: lib/regcomp.c:131
+msgid "Success"
+msgstr ""
+
+#: lib/regcomp.c:134
+msgid "No match"
+msgstr ""
+
+#: lib/regcomp.c:137
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regcomp.c:140
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regcomp.c:143
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regcomp.c:146
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regcomp.c:149
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regcomp.c:152
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regcomp.c:155
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regcomp.c:158
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regcomp.c:161
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regcomp.c:164
+#, fuzzy
+msgid "Invalid range end"
+msgstr "Ongeldig nummer."
+
+#: lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regcomp.c:170
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regcomp.c:173
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regcomp.c:176
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regcomp.c:179
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regcomp.c:680
+msgid "No previous regular expression"
+msgstr ""
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr ""
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:66
+msgid "(C)"
+msgstr ""
+
+#: lib/version-etc.c:68
+msgid ""
+"\n"
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:84
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:88
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:92
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:98
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:104
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:110
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:132
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+
+#: lib/xalloc-die.c:35
+msgid "memory exhausted"
+msgstr ""
+
+#: libparted/arch/beos.c:237
+msgid "Disk Image"
+msgstr ""
+
+#: libparted/arch/beos.c:338 libparted/arch/gnu.c:261
+#: libparted/arch/linux.c:1272
+#, c-format
+msgid "Error opening %s: %s"
+msgstr "Fout tijdens openen van %s: %s"
+
+#: libparted/arch/beos.c:349 libparted/arch/gnu.c:271
+#: libparted/arch/linux.c:1283
+#, c-format
+msgid "Unable to open %s read-write (%s).  %s has been opened read-only."
+msgstr ""
+"Kan %s niet openen voor lezen-en-schrijven (%s);  %s is geopend voor alleen-"
+"lezen."
+
+#: libparted/arch/beos.c:411 libparted/arch/linux.c:1431
+#, c-format
+msgid "%s during seek for read on %s"
+msgstr "%s tijdens een 'seek' bij het lezen van %s"
+
+#: libparted/arch/beos.c:444 libparted/arch/gnu.c:449 libparted/arch/gnu.c:548
+#: libparted/arch/gnu.c:676 libparted/arch/linux.c:1391
+#: libparted/arch/linux.c:1469
+#, c-format
+msgid "%s during read on %s"
+msgstr "%s tijdens lezen van %s"
+
+#: libparted/arch/beos.c:480 libparted/arch/gnu.c:509
+#: libparted/arch/linux.c:1546
+#, c-format
+msgid "Can't write to %s, because it is opened read-only."
+msgstr "Kan niet naar %s schrijven, omdat het geopend is voor alleen-lezen."
+
+#: libparted/arch/beos.c:496 libparted/arch/linux.c:1570
+#, c-format
+msgid "%s during seek for write on %s"
+msgstr "%s tijdens een 'seek' bij het schrijven naar %s"
+
+#: libparted/arch/beos.c:533 libparted/arch/gnu.c:585 libparted/arch/gnu.c:630
+#: libparted/arch/gnu.c:707 libparted/arch/linux.c:1517
+#: libparted/arch/linux.c:1612 libparted/arch/linux.c:1684
+#, c-format
+msgid "%s during write on %s"
+msgstr "%s tijdens schrijven naar %s"
+
+#: debug/clearfat/clearfat.c:63 partprobe/partprobe.c:137
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:67
+#, c-format
+msgid ""
+"Usage: %s [OPTION]\n"
+"  or:  %s DEVICE MINOR\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:70
+msgid ""
+"Clear unused space on a FAT partition (a GNU Parted testing tool).\n"
+"\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:74
+msgid "      --help     display this help and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:75
+msgid "      --version  output version information and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:77 partprobe/partprobe.c:154
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:285
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:290
+#, fuzzy, c-format
+msgid "too many arguments"
+msgstr "Te veel slechte pagina's."
+
+#: partprobe/partprobe.c:141
+#, c-format
+msgid "Usage: %s [OPTION] [DEVICE]...\n"
+msgstr ""
+
+#: partprobe/partprobe.c:142
+msgid ""
+"Inform the OS of partition table changes.\n"
+"\n"
+"  -d, --no-update  don't update the kernel\n"
+"  -s, --summary    print a summary of contents\n"
+"  -h, --help       display this help and exit\n"
+"  -v, --version    output version information and exit\n"
+msgstr ""
+
+#: partprobe/partprobe.c:150
+msgid ""
+"\n"
+"With no DEVICE, probe all partitions.\n"
+msgstr ""
+
+#: libparted/arch/gnu.c:94
+#, c-format
+msgid "Unable to open %s."
+msgstr "Kan %s niet openen."
+
+#: libparted/arch/gnu.c:114
+msgid "Unable to probe store."
+msgstr "Kan de logische opbouw van het apparaat niet achterhalen."
+
+#: libparted/arch/gnu.c:352
+msgid ""
+"The partition table cannot be re-read.  This means you need to reboot before "
+"mounting any modified partitions.  You also need to reinstall your boot "
+"loader before you reboot (which may require mounting modified partitions).  "
+"It is impossible do both things!  So you'll need to boot off a rescue disk, "
+"and reinstall your boot loader from the rescue disk.  Read section 4 of the "
+"Parted User documentation for more information."
+msgstr ""
+"De kernel kan de partitietabel niet herlezen.  Dit betekent dat u uw "
+"computer moet herstarten alvorens veranderde partities te gebruiken.  Maar "
+"voor het herstarten moet u ook uw opstartprogramma opnieuw installeren, wat "
+"mogelijk het aankoppelen van veranderde partitities vereist.  De twee dingen "
+"zijn niet samen mogelijk!  U zult dus van een reddingsdiskette of van een CD "
+"moeten herstarten, en vanaf daar uw opstartprogramma moeten herinstalleren.  "
+"Lees eventueel sectie 4 van de Parted-gebruikersdocumentatie."
+
+#: libparted/arch/gnu.c:369
+#, c-format
+msgid ""
+"The partition table on %s cannot be re-read (%s).  This means the Hurd knows "
+"nothing about any modifications you made.  You should reboot your computer "
+"before doing anything with %s."
+msgstr ""
+"De kernel kan de partitietabel op %s niet herlezen (%s).  Dit betekent dat "
+"de Hurd geen weet heeft van de veranderingen die u net heeft gemaakt.  U "
+"dient uw computer te herstarten alvorens iets met %s te doen."
+
+#: libparted/arch/gnu.c:380 parted/parted.c:2443
+msgid ""
+"You should reinstall your boot loader before rebooting.  Read section 4 of "
+"the Parted User documentation for more information."
+msgstr ""
+"Alvorens te herstarten dient u uw opstartprogramma opnieuw te installeren.  "
+"Lees sectie 4 van de Parted-gebruikersdocumentatie voor meer informatie."
+
+#: libparted/arch/gnu.c:772
+#, c-format
+msgid "%s trying to sync %s to disk"
+msgstr "%s: bezig met synchroniseren van %s naar schijf"
+
+#: libparted/arch/linux.c:408
+#, c-format
+msgid "Could not stat device %s - %s."
+msgstr "Kan de status van apparaat %s niet opvragen -- %s."
+
+#: libparted/arch/linux.c:523
+#, c-format
+msgid ""
+"Could not determine sector size for %s: %s.\n"
+"Using the default sector size (%lld)."
+msgstr ""
+"Kan de sectorgrootte van %s niet bepalen: %s.\n"
+"De standaard sectorgrootte (%lld) wordt gebruikt."
+
+#: libparted/arch/linux.c:539
+#, c-format
+msgid ""
+"Device %s has a logical sector size of %lld.  Not all parts of GNU Parted "
+"support this at the moment, and the working code is HIGHLY EXPERIMENTAL.\n"
+msgstr ""
+"Apparaat %s heeft een logische sectorgrootte van %lld.\n"
+"Niet alle onderdelen van GNU Parted ondersteunen dit momenteel,\n"
+"en de wel aanwezige ondersteuning is ZEER EXPERIMENTEEL.\n"
+
+#: libparted/arch/linux.c:579
+#, c-format
+msgid "Unable to determine the size of %s (%s)."
+msgstr "Kan de grootte van %s niet achterhalen -- %s."
+
+#: libparted/arch/linux.c:668
+#, c-format
+msgid "Could not get identity of device %s - %s"
+msgstr "Kan de identiteit van apparaat %s niet achterhalen -- %s."
+
+#: libparted/arch/linux.c:677
+msgid "Generic IDE"
+msgstr "Gewone IDE"
+
+#: libparted/arch/linux.c:698
+#, c-format
+msgid ""
+"Device %s has multiple (%d) logical sectors per physical sector.\n"
+"GNU Parted supports this EXPERIMENTALLY for some special disk label/file "
+"system combinations, e.g. GPT and ext2/3.\n"
+"Please consult the web site for up-to-date information."
+msgstr ""
+"Apparaat %s bevat per fysieke sector meerdere (%d) logische sectoren.\n"
+"GNU Parted ondersteunt dit op EXPERIMENTELE basis voor sommige combinaties "
+"van schijflabel en bestandssysteem, bijvoorbeeld GPT met ext2/3.\n"
+"Zie de website van Parted voor de laatste informatie."
+
+#: libparted/arch/linux.c:873
+#, c-format
+msgid "Error initialising SCSI device %s - %s"
+msgstr "Fout tijdens initialiseren van SCSI-apparaat %s -- %s."
+
+#: libparted/arch/linux.c:928
+#, c-format
+msgid ""
+"The device %s has zero length, and can't possibly store a file system or "
+"partition table.  Perhaps you selected the wrong device?"
+msgstr ""
+"Apparaat %s heeft lengte nul en kan met geen mogelijkheid een "
+"bestandssysteem of partitietabel bevatten.  Heeft u misschien een verkeerd "
+"apparaat gekozen?"
+
+#: libparted/arch/linux.c:1032
+#, c-format
+msgid ""
+"Unable to determine geometry of file/device %s.  You should not use Parted "
+"unless you REALLY know what you're doing!"
+msgstr ""
+"Kan de logische opbouw van het apparaat %s niet achterhalen.\n"
+"U kunt Parted beter niet gebruiken tenzij u ECHT weet wat u doet!"
+
+#: libparted/arch/linux.c:1110
+msgid "DAC960 RAID controller"
+msgstr "DAC960 RAID-stuurapparaat"
+
+#: libparted/arch/linux.c:1115
+msgid "Promise SX8 SATA Device"
+msgstr "Promise SX8 SATA-apparaat"
+
+#: libparted/arch/linux.c:1120
+msgid "IBM S390 DASD drive"
+msgstr "IBM S390 DASD-schijf"
+
+#: libparted/arch/linux.c:1125
+msgid "IBM iSeries Virtual DASD"
+msgstr "IBM iSeries virtuele DASD"
+
+#: libparted/arch/linux.c:1130
+msgid "Compaq Smart Array"
+msgstr "Compaq Smart Array-stuurapparaat"
+
+#: libparted/arch/linux.c:1135
+msgid "ATARAID Controller"
+msgstr "ATARAID-stuurapparaat"
+
+#: libparted/arch/linux.c:1140
+msgid "I2O Controller"
+msgstr "I2O-stuurapparaat"
+
+#: libparted/arch/linux.c:1145
+msgid "User-Mode Linux UBD"
+msgstr "User-Mode Linux-blokapparaat (UBD)"
+
+#: libparted/arch/linux.c:1156
+msgid "Linux device-mapper"
+msgstr "Linux device-mapper"
+
+#: libparted/arch/linux.c:1162
+msgid "Unknown"
+msgstr "Onbekend"
+
+#: libparted/arch/linux.c:1169
+msgid "ped_device_new()  Unsupported device type"
+msgstr "Apparaattype wordt niet ondersteund."
+
+#: libparted/arch/linux.c:2083
+#, c-format
+msgid ""
+"Error informing the kernel about modifications to partition %s -- %s.  This "
+"means Linux won't know about any changes you made to %s until you reboot -- "
+"so you shouldn't mount it or use it in any way before rebooting."
+msgstr ""
+"Fout tijdens het inlichten van de kernel over de veranderingen aan partitie %"
+"s (%s).  Dit betekent dat Linux geen weet heeft van de veranderingen die u "
+"net heeft gemaakt.  U dient uw computer te herstarten alvorens iets met %s "
+"te doen."
+
+#: libparted/arch/linux.c:2262
+#, c-format
+msgid ""
+"parted was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made. "
+msgstr ""
+"Parted kan de partitietabel op %s niet herlezen (%s).  Dit betekent dat "
+"Linux geen weet heeft van de veranderingen die u net heeft gemaakt.  "
+
+#: libparted/arch/linux.c:2368
+#, c-format
+msgid ""
+"The kernel was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made until you "
+"reboot.  You should reboot your computer before doing anything with %s."
+msgstr ""
+"De kernel kan de partitietabel op %s niet herlezen (%s).  Dit betekent dat "
+"Linux geen weet heeft van de veranderingen die u net heeft gemaakt.  U dient "
+"uw computer te herstarten alvorens iets met %s te doen."
+
+#: libparted/cs/geom.c:162
+msgid "Can't have the end before the start!"
+msgstr "Het einde kan niet vóór het begin liggen!"
+
+#: libparted/cs/geom.c:169
+msgid "Can't have a partition outside the disk!"
+msgstr "Kan geen partitie maken buiten de schijf!"
+
+#: libparted/cs/geom.c:366
+#, c-format
+msgid "Attempt to write sectors %ld-%ld outside of partition on %s."
+msgstr ""
+"Poging tot het schrijven van sectoren %ld-%ld buiten de partitie op %s."
+
+#: libparted/cs/geom.c:406 libparted/fs/linux_swap/linux_swap.c:475
+msgid "checking for bad blocks"
+msgstr "bezig met zoeken naar slechte blokken"
+
+#: libparted/debug.c:102
+#, c-format
+msgid "Backtrace has %d calls on stack:\n"
+msgstr ""
+
+#: libparted/debug.c:114
+#, c-format
+msgid "Assertion (%s) at %s:%d in function %s() failed."
+msgstr ""
+
+#: libparted/disk.c:203
+#, c-format
+msgid "Unable to open %s - unrecognised disk label."
+msgstr "Kan %s niet openen -- onbekend schijflabel."
+
+#: libparted/disk.c:471
+#, c-format
+msgid ""
+"This libparted doesn't have write support for %s.  Perhaps it was compiled "
+"read-only."
+msgstr ""
+"Deze libparted kan niet naar %s schrijven.  Mogelijk werd libparted voor "
+"alleen-lezen gecompileerd."
+
+#: libparted/disk.c:598
+#, c-format
+msgid "Partition %d is %s, but the file system is %s."
+msgstr "Partitie %d is %s, maar het bestandssysteem is %s."
+
+#: libparted/disk.c:1075
+#, c-format
+msgid "%s disk labels do not support extended partitions."
+msgstr "%s-schijflabels kennen geen uitgebreide partities."
+
+#: libparted/disk.c:1634
+#, c-format
+msgid "%s disk labels don't support logical or extended partitions."
+msgstr "%s-schijflabels kennen geen logische of uitgebreide partities."
+
+#: libparted/disk.c:1647
+msgid "Too many primary partitions."
+msgstr "Te veel primaire partities."
+
+#: libparted/disk.c:1656
+#, c-format
+msgid ""
+"Can't add a logical partition to %s, because there is no extended partition."
+msgstr ""
+"Kan geen logische partitie aan %s toevoegen, omdat er geen uitgebreide "
+"partitie is."
+
+#: libparted/disk.c:1680
+#, c-format
+msgid "Can't have more than one extended partition on %s."
+msgstr "Kan niet meer dan één uitgebreide partitie maken op %s."
+
+#: libparted/disk.c:1690
+msgid "Can't have logical partitions outside of the extended partition."
+msgstr "Kan geen logische partitie buiten de uitgebreide partitie maken."
+
+#: libparted/disk.c:1715
+#, c-format
+msgid "Can't have a logical partition outside of the extended partition on %s."
+msgstr "Kan geen logische partitie buiten de uitgebreide partitie op %s maken."
+
+#: libparted/disk.c:1725 libparted/disk.c:1779 libparted/disk.c:1945
+msgid "Can't have overlapping partitions."
+msgstr "Kan geen overlappende partities maken."
+
+#: libparted/disk.c:1733
+msgid "Can't have a primary partition inside an extended partition."
+msgstr "Kan geen primaire partitie binnen een uitgebreide partitie maken."
+
+#: libparted/disk.c:2140
+msgid "metadata"
+msgstr "metagegevens"
+
+#: libparted/disk.c:2142
+msgid "free"
+msgstr "vrij"
+
+#: libparted/disk.c:2144 parted/ui.c:1169 parted/ui.c:1197
+msgid "extended"
+msgstr "uitgebreid"
+
+#: libparted/disk.c:2146 parted/ui.c:1173 parted/ui.c:1201
+msgid "logical"
+msgstr "logisch"
+
+#: libparted/disk.c:2148 parted/ui.c:1165 parted/ui.c:1193
+msgid "primary"
+msgstr "primair"
+
+#: libparted/disk.c:2164
+msgid "boot"
+msgstr "opstart"
+
+#: libparted/disk.c:2166
+msgid "root"
+msgstr "root"
+
+#: libparted/disk.c:2168
+msgid "swap"
+msgstr "swap"
+
+#: libparted/disk.c:2170
+msgid "hidden"
+msgstr "verborgen"
+
+#: libparted/disk.c:2172
+msgid "raid"
+msgstr "raid"
+
+#: libparted/disk.c:2174
+msgid "lvm"
+msgstr "lvm"
+
+#: libparted/disk.c:2176
+msgid "lba"
+msgstr "lba"
+
+#: libparted/disk.c:2178
+msgid "hp-service"
+msgstr "hp-service"
+
+#: libparted/disk.c:2180
+msgid "palo"
+msgstr "palo"
+
+#: libparted/disk.c:2182
+msgid "prep"
+msgstr "prep"
+
+#: libparted/disk.c:2184
+msgid "msftres"
+msgstr "msftres"
+
+#: libparted/disk.c:2190
+#, c-format
+msgid "Unknown partition flag, %d."
+msgstr "Onbekende partitievlag %d."
+
+#: libparted/exception.c:78
+msgid "Information"
+msgstr "Informatie"
+
+#: libparted/exception.c:79
+msgid "Warning"
+msgstr "Waarschuwing"
+
+#: libparted/exception.c:80
+msgid "Error"
+msgstr "Fout"
+
+#: libparted/exception.c:81
+msgid "Fatal"
+msgstr "Fataal"
+
+#: libparted/exception.c:82
+msgid "Bug"
+msgstr "Programmeerfout"
+
+#: libparted/exception.c:83
+msgid "No Implementation"
+msgstr "Niet-geïmplementeerd"
+
+#: libparted/exception.c:87
+msgid "Fix"
+msgstr "Repareren"
+
+#: libparted/exception.c:88
+msgid "Yes"
+msgstr "Ja"
+
+#: libparted/exception.c:89
+msgid "No"
+msgstr "Nee"
+
+#: libparted/exception.c:90
+msgid "OK"
+msgstr "OK"
+
+#: libparted/exception.c:91
+msgid "Retry"
+msgstr "Opnieuw proberen"
+
+#: libparted/exception.c:92
+msgid "Ignore"
+msgstr "Negeren"
+
+#: libparted/exception.c:93
+msgid "Cancel"
+msgstr "Annuleren"
+
+#: libparted/exception.c:133
+#, c-format
+msgid ""
+"A bug has been detected in GNU Parted.  Refer to the web site of parted "
+"http://www.gnu.org/software/parted/parted.html for more informations of what "
+"could be useful for bug submitting!  Please email a bug report to bug-"
+"parted@gnu.org containing at least the version (%s) and the following "
+"message:  "
+msgstr ""
+"U bent tegen een programmeerfout in GNU Parted aangelopen.  Zie de website "
+"van Parted (http://www.gnu.org/software/parted/parted.html) voor meer "
+"informatie over het nuttig rapporteren van fouten.  Stuur de foutrapportage "
+"alstublieft naar <bug-parted@gnu.org> met het versienummer (%s) en de "
+"volgende boodschap:"
+
+#: libparted/filesys.c:384
+msgid "Could not detect file system."
+msgstr "Kan geen bestandssysteem vinden."
+
+#: libparted/filesys.c:395
+msgid "The file system is bigger than its volume!"
+msgstr "Het bestandssysteem is groter dan de partitie!"
+
+#: libparted/filesys.c:403
+#, c-format
+msgid "Support for opening %s file systems is not implemented yet."
+msgstr ""
+"Ondersteuning voor het openen van %s-bestandssystemen is nog niet "
+"geïmplementeerd."
+
+#: libparted/filesys.c:445
+#, c-format
+msgid "Support for creating %s file systems is not implemented yet."
+msgstr ""
+"Ondersteuning voor het maken van %s-bestandssystemen is nog niet "
+"geïmplementeerd."
+
+#: libparted/filesys.c:505
+#, c-format
+msgid "Support for checking %s file systems is not implemented yet."
+msgstr ""
+"Ondersteuning voor het controleren van %s-bestandssystemen is nog niet "
+"geïmplementeerd."
+
+#: libparted/filesys.c:571
+msgid "raw block copying"
+msgstr "bezig met kopiëren van blokken"
+
+#: libparted/filesys.c:582
+msgid "growing file system"
+msgstr "bezig met vergroten van bestandssysteem"
+
+#: libparted/filesys.c:622
+msgid "Can't copy onto an overlapping partition."
+msgstr "Kan niet naar een overlappende partitie kopiëren."
+
+#: libparted/filesys.c:644
+#, c-format
+msgid ""
+"Direct support for copying file systems is not yet implemented for %s.  "
+"However, support for resizing is implemented.  Therefore, the file system "
+"can be copied if the new partition is at least as big as the old one.  So, "
+"either shrink the partition you are trying to copy, or copy to a bigger "
+"partition."
+msgstr ""
+"Het tegelijkertijd kopiëren en verkleinen van een %s-bestandssysteem is nog "
+"niet geïmplementeerd.  Verklein dus eerst de bronpartitie alvorens deze naar "
+"de gekozen partitie te kopiëren, of kies een grotere doelpartitie."
+
+#: libparted/filesys.c:658
+#, c-format
+msgid "Support for copying %s file systems is not implemented yet."
+msgstr ""
+"Ondersteuning voor het kopiëren van %s-bestandssystemen is nog niet "
+"geïmplementeerd."
+
+#: libparted/filesys.c:696
+#, c-format
+msgid "Support for resizing %s file systems is not implemented yet."
+msgstr ""
+"Ondersteuning voor het van grootte veranderen van %s-bestandssystemen is nog "
+"niet geïmplementeerd."
+
+#: libparted/fs/reiserfs/reiserfs.c:315
+msgid "creating"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:402
+#, fuzzy
+msgid "The file system is in an invalid state.  Perhaps it is mounted?"
+msgstr "Het bestandssysteem is groter dan de partitie!"
+
+#: libparted/fs/reiserfs/reiserfs.c:410
+msgid "The file system is in old (unresizeable) format."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:416
+msgid "Invalid free blocks count.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:431
+#, fuzzy
+msgid "checking"
+msgstr "controleer"
+
+#: libparted/fs/reiserfs/reiserfs.c:437
+msgid "Reiserfs tree seems to be corrupted.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:449
+#, fuzzy
+msgid ""
+"The reiserfs file system passed a basic check.  For a more comprehensive "
+"check, run reiserfsck --check."
+msgstr ""
+"Het ext2-bestandssysteem heeft deze basistest goed doorstaan.  Voor een meer "
+"uitgebreide test kunt u het programma e2fsck gebruiken."
+
+#: libparted/fs/reiserfs/reiserfs.c:474
+#, fuzzy
+msgid "Sorry, can't move the start of reiserfs partitions yet."
+msgstr "Sorry, het begin van een ext2-partitie kan nog niet verplaatst worden!"
+
+#: libparted/fs/reiserfs/reiserfs.c:490
+msgid "Couldn't reopen device abstraction layer for read/write."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:508 libparted/fs/ext2/ext2_resize.c:552
+#: libparted/fs/hfs/hfs.c:250 libparted/fs/hfs/hfs.c:629
+msgid "shrinking"
+msgstr "bezig met verkleinen"
+
+#: libparted/fs/reiserfs/reiserfs.c:520
+#, fuzzy
+msgid "expanding"
+msgstr "Waarschuwing"
+
+#: libparted/fs/reiserfs/reiserfs.c:592
+msgid "Couldn't create reiserfs device abstraction handler."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:606
+#, fuzzy, c-format
+msgid "Device is too small for %lu blocks."
+msgstr "Het bestandssysteem is te klein voor ext2."
+
+#: libparted/fs/reiserfs/reiserfs.c:615
+msgid "copying"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:682
+#, c-format
+msgid "Couldn't resolve symbol %s.  Error: %s."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:704
+msgid "GNU Parted found an invalid libreiserfs library."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:715
+#, c-format
+msgid ""
+"GNU Parted has detected libreiserfs interface version mismatch.  Found %d-%"
+"d, required %d. ReiserFS support will be disabled."
+msgstr ""
+
+#: libparted/labels/aix.c:137
+#, fuzzy
+msgid "Support for reading AIX disk labels is is not implemented yet."
+msgstr ""
+"Ondersteuning voor het maken van %s-bestandssystemen is nog niet "
+"geïmplementeerd."
+
+#: libparted/labels/aix.c:148
+#, fuzzy
+msgid "Support for writing AIX disk labels is is not implemented yet."
+msgstr ""
+"Ondersteuning voor het maken van %s-bestandssystemen is nog niet "
+"geïmplementeerd."
+
+#: libparted/labels/aix.c:161
+#, fuzzy
+msgid ""
+"Support for adding partitions to AIX disk labels is not implemented yet."
+msgstr ""
+"Ondersteuning voor het maken van %s-bestandssystemen is nog niet "
+"geïmplementeerd."
+
+#: libparted/labels/aix.c:171
+#, fuzzy
+msgid ""
+"Support for duplicating partitions in AIX disk labels is not implemented yet."
+msgstr ""
+"Ondersteuning voor het maken van %s-bestandssystemen is nog niet "
+"geïmplementeerd."
+
+#: libparted/labels/aix.c:189
+#, fuzzy
+msgid ""
+"Support for setting system type of partitions in AIX disk labels is not "
+"implemented yet."
+msgstr ""
+"Ondersteuning voor het maken van %s-bestandssystemen is nog niet "
+"geïmplementeerd."
+
+#: libparted/labels/aix.c:199
+#, fuzzy
+msgid "Support for setting flags in AIX disk labels is not implemented yet."
+msgstr ""
+"Ondersteuning voor het maken van %s-bestandssystemen is nog niet "
+"geïmplementeerd."
+
+#: libparted/labels/bsd.c:501 libparted/labels/dasd.c:755
+#: libparted/labels/dos.c:1974 libparted/labels/dvh.c:770
+#: libparted/labels/gpt.c:1448 libparted/labels/loop.c:248
+#: libparted/labels/mac.c:1408 libparted/labels/pc98.c:759
+#: libparted/labels/rdb.c:1041 libparted/labels/sun.c:705
+msgid "Unable to satisfy all constraints on the partition."
+msgstr "Kan niet aan alle voorwaarden voor deze partitie voldoen."
+
+#: libparted/labels/bsd.c:526
+msgid "Unable to allocate a bsd disklabel slot."
+msgstr "Kan in het BSD-schijflabel geen plekje meer reserveren."
+
+#: libparted/labels/dasd.c:166
+#, fuzzy
+msgid "Unable to determine the block size of this dasd"
+msgstr "Kan de grootte van %s niet achterhalen -- %s."
+
+#: libparted/labels/dasd.c:781
+#, fuzzy
+msgid "Unable to allocate a dasd disklabel slot"
+msgstr "Kan in het BSD-schijflabel geen plekje meer reserveren."
+
+#: libparted/labels/dos.c:827
+#, c-format
+msgid "Invalid partition table on %s -- wrong signature %x."
+msgstr "Ongeldige partitietabel op %s -- onjuiste vingerafdruk %x."
+
+#: libparted/labels/dos.c:855
+#, c-format
+msgid "Invalid partition table - recursive partition on %s."
+msgstr "Ongeldige partitietabel -- recursieve partitie op %s."
+
+#: libparted/labels/dos.c:1318
+msgid "Extended partitions cannot be hidden on msdos disk labels."
+msgstr ""
+"Uitgebreide partities kunnen op MSDOS-schijflabels niet verborgen zijn."
+
+#: libparted/labels/dos.c:1958
+msgid "Parted can't resize partitions managed by Windows Dynamic Disk."
+msgstr ""
+"Parted kan partitities beheerd door Windows Dynamic Disk niet van grootte "
+"veranderen."
+
+#: libparted/labels/dvh.c:190
+#, c-format
+msgid "%s has no extended partition (volume header partition)."
+msgstr "%s bevat geen uitgebreide partitie (volumenkop-partitie)."
+
+#: libparted/labels/dvh.c:313
+msgid "Checksum is wrong, indicating the partition table is corrupt."
+msgstr "Onjuiste controlesom: de partitietabel is beschadigd."
+
+#: libparted/labels/dvh.c:616
+msgid "Only primary partitions can be root partitions."
+msgstr "Alleen een primaire partitie kan rootpartitie zijn."
+
+#: libparted/labels/dvh.c:630
+msgid "Only primary partitions can be swap partitions."
+msgstr "Alleen een primaire partitie kan swappartitie zijn."
+
+#: libparted/labels/dvh.c:644
+msgid "Only logical partitions can be a boot file."
+msgstr "Alleen een logische partitie kan een opstartbestand zijn."
+
+#: libparted/labels/dvh.c:721
+msgid "Only logical partitions (boot files) have a name."
+msgstr "Alleen logische partities (opstartbestanden) hebben een naam."
+
+#: libparted/labels/dvh.c:812
+msgid "Too many primary partitions"
+msgstr "Te veel primaire partities."
+
+#: libparted/labels/fdasd.c:103
+#, c-format
+msgid ""
+"%s open error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:107
+#, c-format
+msgid ""
+"%s seek error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:110
+#, c-format
+msgid ""
+"%s read error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:113
+#, fuzzy, c-format
+msgid ""
+"%s write error\n"
+"%s\n"
+msgstr "%s tijdens schrijven naar %s"
+
+#: libparted/labels/fdasd.c:116
+#, c-format
+msgid ""
+"%s IOCTL error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:119
+#, c-format
+msgid ""
+"%s API version mismatch\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:122
+#, c-format
+msgid ""
+"%s Unsupported disk type\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:126
+#, c-format
+msgid ""
+"%s Unsupported disk format\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:130
+#, fuzzy, c-format
+msgid ""
+"%s Disk in use\n"
+"%s\n"
+msgstr "Schijf %s: %s\n"
+
+#: libparted/labels/fdasd.c:133
+#, c-format
+msgid ""
+"%s Config file syntax error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:137
+#, c-format
+msgid ""
+"%s Volume label is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:141
+#, c-format
+msgid ""
+"%s a data set name is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:145
+#, c-format
+msgid ""
+"%s space allocation\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:149
+#, c-format
+msgid ""
+"%s device verification failed\n"
+"The specified device is not a valid DASD device\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:154
+#, c-format
+msgid ""
+"%s Fatal error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/gpt.c:454
+#, c-format
+msgid ""
+"%s contains GPT signatures, indicating that it has a GPT table.  However, it "
+"does not have a valid fake msdos partition table, as it should.  Perhaps it "
+"was corrupted -- possibly by a program that doesn't understand GPT partition "
+"tables.  Or perhaps you deleted the GPT table, and are now using an msdos "
+"partition table.  Is this a GPT partition table?"
+msgstr ""
+"%s bevat GPT-vingerafdrukken, die aangeven dat het een GPT-tabel heeft.  "
+"Maar het bevat geen geldige nep-MSDOS-partitietabel, zoals zou moeten.  "
+"Misschien werd deze beschadigd, mogelijk door een programma dat GPT-"
+"partitietabellen niet begrijpt.  Of misschien heeft u de GPT-tabel "
+"verwijderd en gebruikt nu een MSDOS-partitietabel.  Is dit echt een GPT-"
+"partitietabel?"
+
+#: libparted/labels/gpt.c:648
+#, c-format
+msgid ""
+"The format of the GPT partition table is version %x, which is newer than "
+"what Parted can recognise.  Please tell us!  bug-parted@gnu.org"
+msgstr ""
+"De indeling van de GPT-partitietabel is van versie %x.  Dit is nieuwer dan "
+"wat deze versie van Parted kent.  Vertel het ons: <bug-parted@gnu.org>"
+
+#: libparted/labels/gpt.c:698
+#, c-format
+msgid ""
+"Not all of the space available to %s appears to be used, you can fix the GPT "
+"to use all of the space (an extra %llu blocks) or continue with the current "
+"setting? "
+msgstr ""
+"Niet alle beschibare ruimte voor %s schijnt gebruikt te worden.\n"
+"De GPT bijwerken om alle ruimte te gebruiken (%llu extra blokken),\n"
+"of doorgaan en deze extra ruimte negeren?"
+
+#: libparted/labels/gpt.c:827
+msgid ""
+"The backup GPT table is not at the end of the disk, as it should be.  This "
+"might mean that another operating system believes the disk is smaller.  Fix, "
+"by moving the backup to the end (and removing the old backup)?"
+msgstr ""
+"De reservekopie van de GPT-tabel staat niet helemaal aan het einde van de "
+"schijf, zoals zou moeten.  Dit zou kunnen betekenen dat een ander "
+"besturingssysteem aanneemt dat de schijf kleiner is dan hij is.  Dit kan "
+"gerepareerd worden door de reservekopie naar het einde te verplaatsen en de "
+"oude reservekopie te verwijderen.  Reparatie uitvoeren?"
+
+#: libparted/labels/gpt.c:862
+msgid ""
+"The primary GPT table is corrupt, but the backup appears OK, so that will be "
+"used."
+msgstr ""
+"De primaire GPT-tabel is beschadigd, maar de reservekopie lijkt goed.  Deze "
+"laatste zal worden gebruikt."
+
+#: libparted/labels/gpt.c:870
+msgid ""
+"Both the primary and backup GPT tables are corrupt.  Try making a fresh "
+"table, and using Parted's rescue feature to recover partitions."
+msgstr ""
+"Zowel de primaire GPT-tabel als de reservekopie zijn beschadigd.  Maak eerst "
+"een nieuw schijflabel aan, en probeer dan met de 'red'-opdracht de "
+"kwijtgeraakte partities te herstellen."
+
+#: libparted/labels/mac.c:181
+#, c-format
+msgid "Invalid signature %x for Mac disk labels."
+msgstr "Ongeldige vingerafdruk %x voor een Mac-schijflabel."
+
+#: libparted/labels/mac.c:226
+msgid "Partition map has no partition map entry!"
+msgstr "Partitietabel bevat geen partitietabelitem!"
+
+#: libparted/labels/mac.c:273
+#, c-format
+msgid "%s is too small for a Mac disk label!"
+msgstr "%s is te klein voor een Mac-schijflabel!"
+
+#: libparted/labels/mac.c:532
+#, c-format
+msgid "Partition %d has an invalid signature %x."
+msgstr "Partitie %d heeft een ongeldige vingerafdruk %x."
+
+#: libparted/labels/mac.c:550
+#, c-format
+msgid "Partition %d has an invalid length of 0 bytes!"
+msgstr "Partitie %d heeft een ongeldige lengte van 0 bytes!"
+
+#: libparted/labels/mac.c:580
+msgid "The data region doesn't start at the start of the partition."
+msgstr "Het gegevensgebied begint niet bij het begin van de partitie."
+
+#: libparted/labels/mac.c:597
+msgid "The boot region doesn't start at the start of the partition."
+msgstr "Het opstartgebied begint niet bij het begin van de partitie."
+
+#: libparted/labels/mac.c:611
+msgid "The partition's boot region doesn't occupy the entire partition."
+msgstr "Het opstartgebied beslaat niet de gehele partitie."
+
+#: libparted/labels/mac.c:622
+msgid "The partition's data region doesn't occupy the entire partition."
+msgstr "Het gegevensgebied beslaat niet de gehele partitie."
+
+#: libparted/labels/mac.c:675
+#, c-format
+msgid ""
+"Weird block size on device descriptor: %d bytes is not divisible by 512."
+msgstr ""
+"Vreemde blokgrootte in apparaatbeschrijving: %d bytes is niet deelbaar door "
+"512."
+
+#: libparted/labels/mac.c:688
+#, c-format
+msgid ""
+"The driver descriptor says the physical block size is %d bytes, but Linux "
+"says it is %d bytes."
+msgstr ""
+"De beschrijving van het stuurprogramma zegt dat de fysieke blokgrootte %d "
+"bytes is, maar Linux zegt dat het %d bytes is."
+
+#: libparted/labels/mac.c:736
+msgid "No valid partition map found."
+msgstr "Geen geldige partitietabel gevonden."
+
+#: libparted/labels/mac.c:795
+#, c-format
+msgid ""
+"Conflicting partition map entry sizes!  Entry 1 says it is %d, but entry %d "
+"says it is %d!"
+msgstr ""
+"Tegenstrijdige groottes van partitietabelitems!  Item 1 zegt dat het %d is, "
+"maar item %d zegt dat het %d is!"
+
+#: libparted/labels/mac.c:822
+msgid "Weird!  There are 2 partitions map entries!"
+msgstr "Vreemd: twee partitietabelitems!"
+
+#: libparted/labels/mac.c:1347
+msgid ""
+"Changing the name of a root or swap partition will prevent Linux from "
+"recognising it as such."
+msgstr ""
+"Het veranderen van de naam van een root- of swappartitie zal verhinderen dat "
+"Linux deze als zodanig herkent."
+
+#: libparted/labels/mac.c:1443
+msgid "Can't add another partition -- the partition map is too small!"
+msgstr ""
+"Kan geen nieuwe primaire partitie toevoegen: de partitietabel is te klein!"
+
+#: libparted/labels/pc98.c:354
+#, c-format
+msgid "Invalid partition table on %s."
+msgstr "Ongeldige partitietabel op %s."
+
+#: libparted/labels/pc98.c:406 libparted/labels/pc98.c:484
+#, c-format
+msgid ""
+"Partition %d isn't aligned to cylinder boundaries.  This is still "
+"unsupported."
+msgstr ""
+"Partitie %d is niet uitgelijnd op cilindergrenzen.  Dit wordt nog niet "
+"ondersteund."
+
+#: libparted/labels/pc98.c:791
+msgid "Can't add another partition."
+msgstr "Kan niet nog een partitie toevoegen."
+
+#: libparted/labels/rdb.c:162
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s."
+msgstr "%s : Onjuiste controlesom op blok %llu van type %s."
+
+#: libparted/labels/rdb.c:497
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen."
+msgstr "%s : Geen 'rdb'-blok gevonden -- zou nooit mogen gebeuren."
+
+#: libparted/labels/rdb.c:581
+#, c-format
+msgid "%s : Loop detected at block %d."
+msgstr "%s : Lus gedetecteerd bij blok %d."
+
+#: libparted/labels/rdb.c:600
+#, c-format
+msgid "%s : The %s list seems bad at block %s."
+msgstr "%s : De %s-lijst lijkt verkeerd te zijn bij blok %s."
+
+#: libparted/labels/rdb.c:689
+#, c-format
+msgid "%s : Failed to list bad blocks."
+msgstr "%s : Invullen van slechte blokken is mislukt."
+
+#: libparted/labels/rdb.c:697
+#, c-format
+msgid "%s : Failed to list partition blocks."
+msgstr "%s : Invullen van partitieblokken is mislukt."
+
+#: libparted/labels/rdb.c:705
+#, c-format
+msgid "%s : Failed to list file system blocks."
+msgstr "%s : Invullen van bestandssysteemblokken is mislukt."
+
+#: libparted/labels/rdb.c:713
+#, c-format
+msgid "%s : Failed to list boot blocks."
+msgstr "%s : Invullen van opstartblokken is mislukt."
+
+#: libparted/labels/rdb.c:740
+#, c-format
+msgid "Failed to write partition block at %d."
+msgstr "Schrijven van partitieblok %d is mislukt."
+
+#: libparted/labels/rdb.c:1069
+msgid "Unable to allocate a partition number."
+msgstr "Geen partitienummer meer beschikbaar."
+
+#: libparted/labels/sun.c:145
+msgid "Corrupted Sun disk label detected."
+msgstr "Beschadigd Sun-schijflabel gevonden."
+
+#: libparted/labels/sun.c:266
+#, c-format
+msgid ""
+"The disk CHS geometry (%d,%d,%d) reported by the operating system does not "
+"match the geometry stored on the disk label (%d,%d,%d)."
+msgstr ""
+"De logische schijfopbouw (%d,%d,%d) gerapporteerd door het besturingssysteem "
+"komt niet overeen met de opbouw (%d,%d,%d) opgeslagen in het schijflabel."
+
+#: libparted/labels/sun.c:288
+#, c-format
+msgid "The disk label describes a disk bigger than %s."
+msgstr "Het schijflabel beschrijft een schijf groter dan %s."
+
+#: libparted/labels/sun.c:442
+#, c-format
+msgid "The disk has %d cylinders, which is greater than the maximum of 65536."
+msgstr "De schijf heeft %d cilinders, wat groter is dan het maximum van 65536."
+
+#: libparted/labels/sun.c:737
+msgid ""
+"The Whole Disk partition is the only available one left.  Generally, it is "
+"not a good idea to overwrite this partition with a real one.  Solaris may "
+"not be able to boot without it, and SILO (the sparc boot loader) appreciates "
+"it as well."
+msgstr ""
+"De 'Hele-Schijf'-partitie is de enige die over is.  In het algemeen is het "
+"geen goed idee om deze partitie met een echte te overschrijven.  Solaris kan "
+"mogelijk niet zonder deze partitie starten, en SILO (het Sparc-"
+"opstartprogramma) waardeert de aanwezigheid ervan ook."
+
+#: libparted/labels/sun.c:752
+msgid "Sun disk label is full."
+msgstr "Sun-schijflabel is vol."
+
+#: libparted/labels/vtoc.c:163
+#, c-format
+msgid ""
+"%s opening device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:167
+#, c-format
+msgid ""
+"%s seeking device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:171
+#, c-format
+msgid ""
+"%s writing to device '%s' failed,\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:175
+#, c-format
+msgid ""
+"%s reading from device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:179
+#, c-format
+msgid "Fatal error\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:418
+msgid "Could not read VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:424
+msgid "Could not read VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:431
+msgid "Could not read VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:438
+msgid "Could not read VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:445
+msgid "Could not read VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:462
+msgid "Could not write VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:468
+msgid "Could not write VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:475
+msgid "Could not write VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:482
+msgid "Could not write VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:489
+msgid "Could not write VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/libparted.c:296 libparted/libparted.c:316
+msgid "Out of memory."
+msgstr "Onvoldoende geheugen."
+
+#: libparted/unit.c:139
+msgid "Cannot get unit size for special unit 'COMPACT'."
+msgstr "Kan grootte van speciale eenheid 'COMPACT' niet bepalen."
+
+#: libparted/unit.c:386
+#, c-format
+msgid "\"%s\" has invalid syntax for locations."
+msgstr "\"%s\" heeft een voor lokaties ongeldige syntaxis."
+
+#: libparted/unit.c:394
+#, c-format
+msgid "The maximum head value is %d."
+msgstr "De maximum waarde voor de kop is %d."
+
+#: libparted/unit.c:401
+#, c-format
+msgid "The maximum sector value is %d."
+msgstr "De maximum waarde voor de sector is %d."
+
+#: libparted/unit.c:413 libparted/unit.c:545
+#, c-format
+msgid "The location %s is outside of the device %s."
+msgstr "Lokatie %s ligt buiten het apparaat %s."
+
+#: libparted/unit.c:527
+msgid "Invalid number."
+msgstr "Ongeldig nummer."
+
+#: libparted/fs/amiga/affs.c:63 libparted/fs/amiga/apfs.c:56
+#: libparted/fs/amiga/asfs.c:70
+#, fuzzy, c-format
+msgid "%s : Failed to allocate partition block\n"
+msgstr "%s : Invullen van partitieblokken is mislukt."
+
+#: libparted/fs/amiga/affs.c:78 libparted/fs/amiga/apfs.c:70
+#: libparted/fs/amiga/asfs.c:86
+#, fuzzy, c-format
+msgid "%s : Failed to allocate block\n"
+msgstr "%s : Invullen van opstartblokken is mislukt."
+
+#: libparted/fs/amiga/affs.c:83 libparted/fs/amiga/apfs.c:75
+#, fuzzy, c-format
+msgid "%s : Couldn't read boot block %llu\n"
+msgstr "%s : Lus gedetecteerd bij blok %d."
+
+#: libparted/fs/amiga/affs.c:99 libparted/fs/amiga/apfs.c:86
+#: libparted/fs/amiga/asfs.c:92 libparted/fs/amiga/asfs.c:106
+#, fuzzy, c-format
+msgid "%s : Couldn't read root block %llu\n"
+msgstr "%s : Lus gedetecteerd bij blok %d."
+
+#: libparted/fs/amiga/amiga.c:72
+#, fuzzy, c-format
+msgid "%s : Failed to allocate id list element\n"
+msgstr "%s : Invullen van slechte blokken is mislukt."
+
+#: libparted/fs/amiga/amiga.c:189
+#, c-format
+msgid "%s : Couldn't read block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:202
+#, fuzzy, c-format
+msgid "%s : Bad checksum on block %llu of type %s\n"
+msgstr "%s : Onjuiste controlesom op blok %llu van type %s."
+
+#: libparted/fs/amiga/amiga.c:212
+#, fuzzy, c-format
+msgid "%s : Couldn't write block %d\n"
+msgstr "%s : Lus gedetecteerd bij blok %d."
+
+#: libparted/fs/amiga/amiga.c:278
+#, fuzzy, c-format
+msgid "%s : Failed to allocate disk_specific rdb block\n"
+msgstr "%s : Invullen van slechte blokken is mislukt."
+
+#: libparted/fs/amiga/amiga.c:289
+#, fuzzy, c-format
+msgid "%s : Didn't find rdb block, should never happen\n"
+msgstr "%s : Geen 'rdb'-blok gevonden -- zou nooit mogen gebeuren."
+
+#: libparted/fs/amiga/amiga.c:318
+#, fuzzy, c-format
+msgid "%s : Failed to read partition block %llu\n"
+msgstr "%s : Invullen van partitieblokken is mislukt."
+
+#: libparted/fs/ext2/ext2.c:87 libparted/fs/ext2/ext2.c:112
+msgid "Inconsistent group descriptors!"
+msgstr "Inconsistente groepsbeschrijvers!"
+
+#: libparted/fs/ext2/ext2.c:91 libparted/fs/ext2/ext2.c:116
+msgid "File system full!"
+msgstr "Bestandssysteem is vol!"
+
+#: libparted/fs/ext2/ext2.c:686
+msgid "Invalid superblock.  Are you sure this is an ext2 file system?"
+msgstr "Ongeldig superblok.  Weet u zeker dat dit een ext2-bestandssysteem is?"
+
+#: libparted/fs/ext2/ext2.c:700 libparted/fs/ext2/ext2_resize.c:658
+msgid "File system has errors!  You should run e2fsck."
+msgstr "Het bestandssysteem bevat fouten!  Voer eerst e2fsck uit."
+
+#: libparted/fs/ext2/ext2.c:711
+msgid ""
+"File system was not cleanly unmounted!  You should run e2fsck.  Modifying an "
+"unclean file system could cause severe corruption."
+msgstr ""
+"Het bestandssysteem werd niet correct ontkoppeld!  Voer eerst e2fsck uit.  "
+"Het veranderen van een ongeschoond bestandssysteem kan tot zware "
+"beschadigingen leiden."
+
+#: libparted/fs/ext2/ext2.c:731
+msgid "File system has an incompatible feature enabled."
+msgstr "Het bestandssysteem gebruikt een incompatibele functie."
+
+#: libparted/fs/ext2/ext2.c:742
+msgid "Error allocating buffer cache."
+msgstr "Fout tijdens reserveren van buffercache."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:114
+msgid ""
+"Found an inode with a incorrect link count.  Better go run e2fsck first!"
+msgstr ""
+"Er is een inode gevonden met een onjuist aantal verwijzingen.  U kunt beter "
+"eerst e2fsck uitvoeren."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:487
+msgid "Not enough free inodes!"
+msgstr "Niet genoeg beschikbare inodes!"
+
+#: libparted/fs/ext2/ext2_resize.c:223
+msgid "File system is too full to remove a group!"
+msgstr "Het bestandssysteem is te vol om een groep te verwijderen!"
+
+#: libparted/fs/ext2/ext2_resize.c:232
+msgid "File system has too many allocated inodes to remove a group!"
+msgstr ""
+"Het bestandssysteem heeft te veel gebruikte inodes om een groep te "
+"verwijderen!"
+
+#: libparted/fs/ext2/ext2_resize.c:491
+msgid "adding groups"
+msgstr "bezig met toevoegen van groepen"
+
+#: libparted/fs/ext2/ext2_resize.c:528
+#, c-format
+msgid "Your file system is too full to resize it to %i blocks.  Sorry."
+msgstr ""
+"Uw bestandssysteem is te vol om het naar %i blokken te verkleinen.  Sorry."
+
+#: libparted/fs/ext2/ext2_resize.c:538
+#, c-format
+msgid ""
+"Your file system has too many occupied inodes to resize it to %i blocks.  "
+"Sorry."
+msgstr ""
+"Uw bestandssysteem heeft te veel bezette inodes om het naar %i blokken te "
+"verkleinen.  Sorry."
+
+#: libparted/fs/ext2/ext2_resize.c:666
+msgid "File system was not cleanly unmounted!  You should run e2fsck."
+msgstr ""
+"Het bestandssysteem werd niet correct ontkoppeld!  Voer eerst e2fsck uit."
+
+#: libparted/fs/ext2/ext2_resize.c:675
+msgid ""
+"The file system has the 'dir_index' feature enabled.  Parted can only resize "
+"the file system if it disables this feature.  You can enable it later by "
+"running 'tune2fs -O dir_index DEVICE' and then 'e2fsck -fD DEVICE'."
+msgstr ""
+"Het bestandssysteem gebruikt de 'dir_index'-functie.  Parted kan het "
+"bestandssysteem alleen van grootte veranderen als het deze functie "
+"uitschakelt.  U kunt deze functie later weer aanzetten door middel van "
+"'tune2fs -O dir_index APPARAAT' en dan 'e2fsck -fD APPARAAT'."
+
+#: libparted/fs/ext2/ext2_resize.c:691
+msgid ""
+"A resize operation on this file system will use EXPERIMENTAL code\n"
+"that MAY CORRUPT it (although no one has reported any such damage yet).\n"
+"You should at least backup your data first, and run 'e2fsck -f' afterwards."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_block_relocator.c:198
+msgid "Cross-linked blocks found!  Better go run e2fsck first!"
+msgstr ""
+"Kruiselings gekoppelde blokken gevonden!  U kunt beter eerst e2fsck "
+"uitvoeren."
+
+#: libparted/fs/ext2/ext2_block_relocator.c:537
+#, c-format
+msgid "Block %i has no reference?  Weird."
+msgstr "Aan blok %i wordt niet gerefereerd!  Merkwaardig."
+
+#: libparted/fs/ext2/ext2_block_relocator.c:737
+#, c-format
+msgid "Block %i shouldn't have been marked (%d, %d)!"
+msgstr "Blok %i zou niet (%d, %d) gemarkeerd moeten zijn!"
+
+#: libparted/fs/ext2/interface.c:186
+msgid ""
+"The ext2 file system passed a basic check.  For a more comprehensive check, "
+"use the e2fsck program."
+msgstr ""
+"Het ext2-bestandssysteem heeft deze basistest goed doorstaan.  Voor een meer "
+"uitgebreide test kunt u het programma e2fsck gebruiken."
+
+#: libparted/fs/ext2/interface.c:203
+msgid "Sorry, can't move the start of ext2 partitions yet!"
+msgstr "Sorry, het begin van een ext2-partitie kan nog niet verplaatst worden!"
+
+#: libparted/fs/ext2/ext2_buffer.c:82
+msgid "Couldn't flush buffer cache!"
+msgstr "Kan de buffercache niet leegmaken!"
+
+#: libparted/fs/ext2/ext2_mkfs.c:162
+msgid "writing per-group metadata"
+msgstr "bezig met schrijven van groepsmetagegevens"
+
+#: libparted/fs/ext2/ext2_mkfs.c:564
+msgid "File system too small for ext2."
+msgstr "Het bestandssysteem is te klein voor ext2."
+
+#: libparted/fs/fat/calc.c:135
+#, c-format
+msgid ""
+"You need %s of free disk space to shrink this partition to this size.  "
+"Currently, only %s is free."
+msgstr ""
+"U heeft minstens %s vrije schijfruimte nodig om deze partitie naar die "
+"grootte te kunnen verkleinen (u heeft nu slechts %s beschikbaar)."
+
+#: libparted/fs/fat/context.c:56
+#, c-format
+msgid ""
+"Cluster start delta = %d, which is not a multiple of the cluster size %d."
+msgstr ""
+"Clusterbegin-delta = %d, en dat is geen veelvoud van de clustergrootte %d."
+
+#: libparted/fs/fat/fat.c:308
+#, c-format
+msgid "Partition too big/small for a %s file system."
+msgstr "Partitie is te klein of te groot voor een %s-bestandssysteem."
+
+#: libparted/fs/fat/fat.c:474
+msgid ""
+"The FATs don't match.  If you don't know what this means, then select "
+"cancel, run scandisk on the file system, and then come back."
+msgstr ""
+"De FATs komen niet overeen.  Als u niet weet wat dit betekent, selecteer dan "
+"'Annuleren', voer scandisk uit op het bestandssysteem, en kom dan weer terug."
+
+#: libparted/fs/fat/fat.c:514
+msgid "There are no possible configurations for this FAT type."
+msgstr "Er zijn geen mogelijke configuraties voor dit type FAT."
+
+#: libparted/fs/fat/fat.c:526
+#, c-format
+msgid ""
+"File system doesn't have expected sizes for Windows to like it.  Cluster "
+"size is %dk (%dk expected); number of clusters is %d (%d expected); size of "
+"FATs is %d sectors (%d expected)."
+msgstr ""
+"Het bestandssysteem heeft andere groottes dan Windows graag wil.  De "
+"clustergrootte is %dk (%dk verwacht); het aantal clusters is %d (%d "
+"verwacht); de grootte van de FATs is %d sectoren (%d verwacht)."
+
+#: libparted/fs/fat/fat.c:549
+#, c-format
+msgid ""
+"File system is reporting the free space as %d clusters, not %d clusters."
+msgstr ""
+"Het bestandssysteem geeft de beschikbare ruimte aan als %d clusters, niet %d "
+"clusters."
+
+#: libparted/fs/fat/fat.c:874
+msgid ""
+"GNU Parted was miscompiled: the FAT boot sector should be 512 bytes.  FAT "
+"support will be disabled."
+msgstr ""
+"GNU Parted is verkeerd gecompileerd: de FAT-opstartsector zou 512 bytes "
+"moeten zijn.  Ondersteuning voor FAT wordt uitgeschakeld."
+
+#: libparted/fs/fat/resize.c:159
+msgid ""
+"There's not enough room in the root directory for all of the files.  Either "
+"cancel, or ignore to lose the files."
+msgstr ""
+"Er is niet genoeg ruimte in de hoofdmap voor alle bestanden.  Kies 'Negeren' "
+"om de overtallige bestanden te verwijderen."
+
+#: libparted/fs/fat/resize.c:300
+msgid "Error writing to the root directory."
+msgstr "Fout tijdens schrijven naar de hoofdmap."
+
+#: libparted/fs/fat/resize.c:489
+msgid "If you leave your file system as FAT16, then you will have no problems."
+msgstr ""
+"Als u het bestandssysteem als FAT16 laat, zult u geen problemen hebben."
+
+#: libparted/fs/fat/resize.c:492
+msgid ""
+"If you convert to FAT16, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual)."
+msgstr ""
+"Als u converteert naar FAT16, en MS-Windows is op deze partitie "
+"geïnstalleerd, dan dient u het MS-Windows-opstartprogramma opnieuw te "
+"installeren.  Als u dit wilt doen, raadpleeg dan de Parted-documentatie (of "
+"de documentatie van uw distributie)."
+
+#: libparted/fs/fat/resize.c:500
+msgid ""
+"If you leave your file system as FAT32, then you will not introduce any new "
+"problems."
+msgstr ""
+"Als u het bestandssysteem als FAT32 laat, zult u geen nieuwe problemen "
+"introduceren."
+
+#: libparted/fs/fat/resize.c:504
+msgid ""
+"If you convert to FAT32, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual).  Also, "
+"converting to FAT32 will make the file system unreadable by MS DOS, MS "
+"Windows 95a, and MS Windows NT."
+msgstr ""
+"Als u converteert naar FAT32, en MS-Windows is op deze partitie "
+"geïnstalleerd, dan dient u het MS-Windows-opstartprogramma opnieuw te "
+"installeren.  Als u dit wilt doen, raadpleeg dan de Parted-documentatie (of "
+"de documentatie van uw distributie).  Maar bedenk: converteren naar FAT32 "
+"maakt het bestandssysteem onleesbaar voor MSDOS, Windows 95a en Windows NT."
+
+#: libparted/fs/fat/resize.c:518
+#, c-format
+msgid "%s  %s  %s"
+msgstr "%s  %s  %s"
+
+#: libparted/fs/fat/resize.c:519
+msgid "Would you like to use FAT32?"
+msgstr "Wilt u FAT32 gebruiken?"
+
+#: libparted/fs/fat/resize.c:550 libparted/fs/fat/resize.c:566
+#, c-format
+msgid "%s  %s"
+msgstr "%s  %s"
+
+#: libparted/fs/fat/resize.c:551
+msgid ""
+"The file system can only be resized to this size by converting to FAT16."
+msgstr ""
+"Het bestandssysteem kan alleen naar deze grootte veranderd worden door te "
+"converteren naar FAT16."
+
+#: libparted/fs/fat/resize.c:567
+msgid ""
+"The file system can only be resized to this size by converting to FAT32."
+msgstr ""
+"Het bestandssysteem kan alleen naar deze grootte veranderd worden door te "
+"converteren naar FAT32."
+
+#: libparted/fs/fat/resize.c:580
+msgid ""
+"GNU Parted cannot resize this partition to this size.  We're working on it!"
+msgstr ""
+"GNU Parted kan de partitiegrootte niet naar deze afmetingen veranderen.  We "
+"zijn er mee bezig!"
+
+#: libparted/fs/fat/bootsector.c:49 libparted/fs/fat/bootsector.c:56
+msgid "File system has an invalid signature for a FAT file system."
+msgstr "Dit bestandssysteem heeft een voor FAT ongeldige vingerafdruk."
+
+#: libparted/fs/fat/bootsector.c:64
+msgid "File system has an invalid sector size for a FAT file system."
+msgstr "Dit bestandssysteem heeft een voor FAT ongeldige sectorgrootte."
+
+#: libparted/fs/fat/bootsector.c:71
+msgid "File system has an invalid cluster size for a FAT file system."
+msgstr "Dit bestandssysteem heeft een voor FAT ongeldige clustergrootte."
+
+#: libparted/fs/fat/bootsector.c:78
+msgid ""
+"File system has an invalid number of reserved sectors for a FAT file system."
+msgstr ""
+"Dit bestandssysteem heeft een voor FAT ongeldig aantal gereserveerde "
+"sectoren."
+
+#: libparted/fs/fat/bootsector.c:85
+msgid "File system has an invalid number of FATs."
+msgstr "Dit bestandssysteem heeft een ongeldig aantal FATs."
+
+#: libparted/fs/fat/bootsector.c:139
+#, c-format
+msgid ""
+"This file system has a logical sector size of %d.  GNU Parted is known not "
+"to work properly with sector sizes other than 512 bytes."
+msgstr ""
+"Dit bestandssysteem heeft een logische sectorgrootte van %d.  GNU Parted "
+"werkt niet goed met sectorgroottes anders dan 512 bytes."
+
+#: libparted/fs/fat/bootsector.c:164
+#, c-format
+msgid ""
+"The file system's CHS geometry is (%d, %d, %d), which is invalid.  The "
+"partition table's CHS geometry is (%d, %d, %d).  If you select Ignore, the "
+"file system's CHS geometry will be left unchanged.  If you select Fix, the "
+"file system's CHS geometry will be set to match the partition table's CHS "
+"geometry."
+msgstr ""
+"De logische schijfopbouw (%d,%d,%d) vermeld in het bestandssysteem is "
+"ongeldig.  De opbouw opgeslagen in het schijflabel is (%d,%d,%d) (cilinders,"
+"koppen,sectoren).  Als u 'Negeren' kiest, wordt de opbouw vermeld in het "
+"bestandssysteem onveranderd gelaten.  Als u 'Repareren' kiest, wordt deze "
+"opbouw gelijkgemaakt aan die in de partitietabel."
+
+#: libparted/fs/fat/bootsector.c:213
+msgid "FAT boot sector says logical sector size is 0.  This is weird. "
+msgstr ""
+"De FAT-opstartsector zegt dat de logische sectorgrootte 0 is.  Dit is heel "
+"vreemd. "
+
+#: libparted/fs/fat/bootsector.c:219
+msgid "FAT boot sector says there are no FAT tables.  This is weird. "
+msgstr ""
+"De FAT-opstartsector zegt dat er geen FAT-tabellen zijn.  Dit is heel "
+"vreemd. "
+
+#: libparted/fs/fat/bootsector.c:225
+msgid "FAT boot sector says clusters are 0 sectors.  This is weird. "
+msgstr ""
+"De FAT-opstartsector zegt dat een cluster nul sectoren heeft.  Dit is heel "
+"vreemd. "
+
+#: libparted/fs/fat/bootsector.c:235
+msgid "File system is FAT12, which is unsupported."
+msgstr "Het bestandssysteem is FAT12.  Dit wordt niet ondersteund."
+
+#: libparted/fs/fat/bootsector.c:411
+#, c-format
+msgid ""
+"The information sector has the wrong signature (%x).  Select cancel for now, "
+"and send in a bug report.  If you're desperate, it's probably safe to ignore."
+msgstr ""
+"De informatiesector heeft een onjuiste vingerafdruk (%x).  Kies voorlopig "
+"'Annuleren', en stuur een foutrapportage naar <bug-parted@gnu.org>.  Indien "
+"u heel wanhopig bent: het is waarschijnlijk wel veilig om voor 'Negeren' "
+"kiezen."
+
+#: libparted/fs/fat/count.c:152
+#, c-format
+msgid "Bad directory entry for %s: first cluster is the end of file marker."
+msgstr ""
+"Foutief mapitem voor %s: de eerste cluster is een bestandseinde-markering."
+
+#: libparted/fs/fat/count.c:165
+#, c-format
+msgid ""
+"Bad FAT: unterminated chain for %s.  You should run dosfsck or scandisk."
+msgstr ""
+"Onjuiste FAT: onbeëindigde keten voor %s.  Voer eerst dosfsck of scandisk "
+"uit."
+
+#: libparted/fs/fat/count.c:174
+#, c-format
+msgid ""
+"Bad FAT: cluster %d outside file system in chain for %s.  You should run "
+"dosfsck or scandisk."
+msgstr ""
+"Onjuiste FAT: cluster %d in de keten voor %s ligt buiten het "
+"bestandssysteem.  Voer eerst dosfsck of scandisk uit."
+
+#: libparted/fs/fat/count.c:184
+#, c-format
+msgid ""
+"Bad FAT: cluster %d is cross-linked for %s.  You should run dosfsck or "
+"scandisk."
+msgstr ""
+"Onjuiste FAT: cluster %d is voor %s kruiselings gekoppeld.  Voer eerst "
+"dosfsck of scandisk uit."
+
+#: libparted/fs/fat/count.c:203
+#, c-format
+msgid "%s is %dk, but it has %d clusters (%dk)."
+msgstr "%s is %dk, maar heeft %d clusters (%dk)."
+
+#: libparted/fs/fat/count.c:266
+#, c-format
+msgid ""
+"The file %s is marked as a system file.  This means moving it could cause "
+"some programs to stop working."
+msgstr ""
+"Het bestand %s is gemarkeerd als een systeembestand.  Als het verplaatst "
+"wordt, zullen sommige programma's misschien niet meer werken."
+
+#: libparted/fs/fat/table.c:137
+#, c-format
+msgid ""
+"FAT %d media %x doesn't match the boot sector's media %x.  You should "
+"probably run scandisk."
+msgstr ""
+"FAT %d medium %x komt niet overeen met medium %x uit de opstartsector.  U "
+"kunt beter eerst scandisk uitvoeren."
+
+#: libparted/fs/fat/table.c:269
+#, c-format
+msgid "fat_table_set: cluster %ld outside file system"
+msgstr "fat_table_set(): cluster %ld ligt buiten het bestandssysteem"
+
+#: libparted/fs/fat/table.c:301
+#, c-format
+msgid "fat_table_get: cluster %ld outside file system"
+msgstr "fat_table_get(): cluster %ld ligt buiten het bestandssysteem"
+
+#: libparted/fs/fat/table.c:343
+msgid "fat_table_alloc_cluster: no free clusters"
+msgstr "fat_table_alloc_cluster(): geen beschikbare clusters"
+
+#: libparted/fs/linux_swap/linux_swap.c:275
+#, fuzzy, c-format
+msgid "Unrecognised old style linux swap signature '%10s'."
+msgstr "Onbekende vingerafdruk '%10s' voor Linux-swappartitie."
+
+#: libparted/fs/linux_swap/linux_swap.c:318
+#, fuzzy, c-format
+msgid "Unrecognised new style linux swap signature '%10s'."
+msgstr "Onbekende vingerafdruk '%10s' voor Linux-swappartitie."
+
+#: libparted/fs/linux_swap/linux_swap.c:358
+#, fuzzy, c-format
+msgid "Unrecognised swsusp linux swap signature '%9s'."
+msgstr "Onbekende vingerafdruk '%10s' voor Linux-swappartitie."
+
+#: libparted/fs/linux_swap/linux_swap.c:434
+msgid "Too many bad pages."
+msgstr "Te veel slechte pagina's."
+
+#: libparted/fs/hfs/advfs.c:121 libparted/fs/hfs/advfs_plus.c:122
+#: libparted/fs/hfs/reloc.c:414 libparted/fs/hfs/reloc.c:508
+#: libparted/fs/hfs/reloc_plus.c:539 libparted/fs/hfs/reloc_plus.c:658
+#: libparted/fs/hfs/reloc_plus.c:772
+msgid "The file system contains errors."
+msgstr "Het bestandssysteem bevat fouten."
+
+#: libparted/fs/hfs/advfs_plus.c:287
+msgid "Bad blocks could not be read."
+msgstr "Slechte blokken konden niet gelezen worden."
+
+#: libparted/fs/hfs/cache.c:137
+#, c-format
+msgid ""
+"Trying to register an extent starting at block 0x%X, but another one already "
+"exists at this position.  You should check the file system!"
+msgstr ""
+"Poging tot het registreren van een 'extent' beginnend bij blok 0x%X, maar er "
+"bestaat al een 'extent' op die positie.  Voer een bestandssysteemcontrole "
+"uit!"
+
+#: libparted/fs/hfs/cache.c:214
+#, c-format
+msgid ""
+"Trying to move an extent from block Ox%X to block Ox%X, but another one "
+"already exists at this position.  This should not happen!"
+msgstr ""
+"Poging tot het verplaatsen van een 'extent' van blok 0x%X naar blok Ox%X, "
+"maar er bestaat al een 'extent' op die positie.  Dit hoort nooit te gebeuren!"
+
+#: libparted/fs/hfs/file.c:143
+#, c-format
+msgid "Could not update the extent cache for HFS file with CNID %X."
+msgstr "Kan 'extent'-cache voor HFS-bestand met CNID %X niet bijwerken."
+
+#: libparted/fs/hfs/file.c:180
+#, c-format
+msgid "Trying to read HFS file with CNID %X behind EOF."
+msgstr ""
+"Poging tot lezen van HFS-bestand met CNID %X voorbij einde-van-bestand."
+
+#: libparted/fs/hfs/file.c:190 libparted/fs/hfs/file.c:220
+#, c-format
+msgid "Could not find sector %lli of HFS file with CNID %X."
+msgstr "Kan sector %lli van HFS-bestand met CNID %X niet vinden."
+
+#: libparted/fs/hfs/file.c:210
+#, c-format
+msgid "Trying to write HFS file with CNID %X behind EOF."
+msgstr ""
+"Poging tot schrijven van HFS-bestand met CNID %X voorbij einde-van-bestand."
+
+#: libparted/fs/hfs/file_plus.c:157
+#, c-format
+msgid "Could not update the extent cache for HFS+ file with CNID %X."
+msgstr "Kan 'extent'-cache voor HFS+-bestand met CNID %X niet bijwerken."
+
+#: libparted/fs/hfs/file_plus.c:202
+#, c-format
+msgid "Trying to read HFS+ file with CNID %X behind EOF."
+msgstr ""
+"Poging tot lezen van HFS+-bestand met CNID %X voorbij einde-van-bestand."
+
+#: libparted/fs/hfs/file_plus.c:213 libparted/fs/hfs/file_plus.c:256
+#, c-format
+msgid "Could not find sector %lli of HFS+ file with CNID %X."
+msgstr "Kan sector %lli van HFS+-bestand met CNID %X niet vinden."
+
+#: libparted/fs/hfs/file_plus.c:245
+#, c-format
+msgid "Trying to write HFS+ file with CNID %X behind EOF."
+msgstr ""
+"Poging tot schrijven van HFS+-bestand met CNID %X voorbij einde-van-bestand."
+
+#: libparted/fs/hfs/hfs.c:232
+msgid "Sorry, HFS cannot be resized that way yet."
+msgstr "Sorry, HFS kan nog niet op deze manier van grootte veranderd worden."
+
+#: libparted/fs/hfs/hfs.c:262 libparted/fs/hfs/hfs.c:641
+msgid "Data relocation has failed."
+msgstr "De gegevensverplaatsing is mislukt."
+
+#: libparted/fs/hfs/hfs.c:281
+msgid "Data relocation left some data in the end of the volume."
+msgstr ""
+"De gegevensverplaatsing heeft enkele gegevens aan het einde van het volumen "
+"achtergelaten."
+
+#: libparted/fs/hfs/hfs.c:320
+msgid "writing HFS Master Directory Block"
+msgstr "bezig met schrijven van HFS-hoofdmapblok"
+
+#: libparted/fs/hfs/hfs.c:468
+msgid "No valid HFS[+X] signature has been found while opening."
+msgstr "Geen geldige HFS[+X]-vingerafdruk gevonden tijdens openen."
+
+#: libparted/fs/hfs/hfs.c:478
+#, c-format
+msgid "Version %d of HFS+ isn't supported."
+msgstr "Versie %d van HFS+ wordt niet ondersteund."
+
+#: libparted/fs/hfs/hfs.c:489
+#, c-format
+msgid "Version %d of HFSX isn't supported."
+msgstr "Versie %d van HFSX wordt niet ondersteund."
+
+#: libparted/fs/hfs/hfs.c:672
+msgid "Data relocation left some data at the end of the volume."
+msgstr ""
+"De gegevensverplaatsing heeft enkele gegevens aan het einde van het volumen "
+"achtergelaten."
+
+#: libparted/fs/hfs/hfs.c:720
+msgid "Error while writing the allocation file."
+msgstr "Fout tijdens schrijven van het reserveringsbestand."
+
+#: libparted/fs/hfs/hfs.c:735
+msgid "Error while writing the compatibility part of the allocation file."
+msgstr ""
+"Fout tijdens schrijven van het compatibiliteitsdeel van het "
+"reserveringsbestand."
+
+#: libparted/fs/hfs/hfs.c:750
+msgid "writing HFS+ Volume Header"
+msgstr "bezig met schrijven van HFS+-volumenkop"
+
+#: libparted/fs/hfs/hfs.c:850
+msgid "An error occurred while looking for the mandatory bad blocks file."
+msgstr "Fout tijdens zoeken naar het vereiste slechte-blokkenbestand."
+
+#: libparted/fs/hfs/hfs.c:904
+msgid ""
+"It seems there is an error in the HFS wrapper: the bad blocks file doesn't "
+"contain the embedded HFS+ volume."
+msgstr ""
+"Er schijnt een fout in de HFS-wikkel te zitten: het slechte-blokkenbestand "
+"bevat geen ingebed HFS+-volumen."
+
+#: libparted/fs/hfs/hfs.c:940
+msgid "Sorry, HFS+ cannot be resized that way yet."
+msgstr "Sorry, HFS+ kan nog niet op deze manier van grootte veranderd worden."
+
+#: libparted/fs/hfs/hfs.c:975
+msgid "shrinking embedded HFS+ volume"
+msgstr "bezig met verkleinen van een ingebed HFS+-volumen"
+
+#: libparted/fs/hfs/hfs.c:991
+msgid "Resizing the HFS+ volume has failed."
+msgstr "Het van grootte veranderen van het HFS+-volumen is mislukt."
+
+#: libparted/fs/hfs/hfs.c:998
+msgid "shrinking HFS wrapper"
+msgstr "bezig met verkleinen van HFS-wikkel"
+
+#: libparted/fs/hfs/hfs.c:1007
+msgid "Updating the HFS wrapper has failed."
+msgstr "Het bijwerken van de HFS-wikkel is mislukt."
+
+#: libparted/fs/hfs/hfs.c:1109 libparted/fs/hfs/hfs.c:1194
+#, c-format
+msgid ""
+"This is not a real %s check.  This is going to extract special low level "
+"files for debugging purposes."
+msgstr ""
+"Dit is geen echte %s-controle.  Het extraheert slechts enkele speciale "
+"bestanden om bij de foutopsporing te helpen."
+
+#: libparted/fs/hfs/journal.c:155
+msgid "Bad block list header checksum."
+msgstr "Onjuiste controlesom van kop van blokkenlijst."
+
+#: libparted/fs/hfs/journal.c:168
+#, c-format
+msgid ""
+"Invalid size of a transaction block while replaying the journal (%i bytes)."
+msgstr ""
+"Ongeldige grootte (%i bytes) van een transactieblok tijdens herafspelen van "
+"het journal."
+
+#: libparted/fs/hfs/journal.c:260
+msgid ""
+"Journal stored outside of the volume are not supported.  Try to desactivate "
+"the journal and run Parted again."
+msgstr ""
+"Een journal opgeslagen buiten het volumen wordt niet ondersteund.  Probeer "
+"het journal uit te schakelen en voer dan Parted opnieuw uit."
+
+#: libparted/fs/hfs/journal.c:271
+msgid "Journal offset or size is not multiple of the sector size."
+msgstr ""
+"Grootte of offset van het journal is geen veelvoud van de sectorgrootte."
+
+#: libparted/fs/hfs/journal.c:292
+msgid "Incorrect magic values in the journal header."
+msgstr "Onjuiste magische getallen in de journalkop."
+
+#: libparted/fs/hfs/journal.c:302
+msgid "Journal size mismatch between journal info block and journal header."
+msgstr ""
+"Journalgrootte is verschillend aangegeven in journal-infoblok en journalkop."
+
+#: libparted/fs/hfs/journal.c:314
+msgid "Some header fields are not multiple of the sector size."
+msgstr ""
+"Sommige velden in de journalkop zijn geen veelvoud van de sectorgrootte."
+
+#: libparted/fs/hfs/journal.c:323
+msgid ""
+"The sector size stored in the journal is not 512 bytes.  Parted only "
+"supports 512 bytes length sectors."
+msgstr ""
+"De sectorgrootte is volgens het journal niet 512 bytes.  Parted ondersteunt "
+"alleen sectoren van 512 bytes."
+
+#: libparted/fs/hfs/journal.c:335
+msgid "Bad journal checksum."
+msgstr "Onjuiste controlesom van journal."
+
+#: libparted/fs/hfs/journal.c:353
+msgid ""
+"The journal is not empty.  Parted must replay the transactions before "
+"opening the file system.  This will modify the file system."
+msgstr ""
+"Het journal is niet leeg.  Parted moet de transacties herafspelen alvorens "
+"het bestandssysteem te openen.  Dit zal het bestandssysteem veranderen."
+
+#: libparted/fs/hfs/journal.c:381
+msgid ""
+"The volume header or the master directory block has changed while replaying "
+"the journal.  You should restart Parted."
+msgstr ""
+"De volumenkop of het hoofdmappenblok is veranderd tijdens het herafspelen "
+"van het journal.  U dient Parted te herstarten."
+
+#: libparted/fs/hfs/probe.c:51
+#, c-format
+msgid ""
+"Parted can't use HFS file systems on disks with a sector size not equal to %"
+"d bytes."
+msgstr ""
+"Parted kan geen HFS-bestandssystemen bewerken op schijven met een andere "
+"sectorgrootte dan %d bytes."
+
+#: libparted/fs/hfs/reloc.c:151 libparted/fs/hfs/reloc_plus.c:155
+msgid "An extent has not been relocated."
+msgstr "Een 'extent' is niet verplaatst."
+
+#: libparted/fs/hfs/reloc.c:251 libparted/fs/hfs/reloc_plus.c:307
+msgid ""
+"A reference to an extent comes from a place it should not.  You should check "
+"the file system!"
+msgstr ""
+"Er wordt gerefereerd aan een 'extent' vanuit een onmogelijke plaats.  Voer "
+"een bestandssyteemcontrole uit!"
+
+#: libparted/fs/hfs/reloc.c:381
+msgid "This HFS volume has no catalog file.  This is very unusual!"
+msgstr ""
+"Dit HFS-volumen heeft geen catalogusbestand.  Dit is zeer ongebruikelijk!"
+
+#: libparted/fs/hfs/reloc.c:475
+msgid "This HFS volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+"Dit HFS-volumen heeft geen 'extents-overflow'-bestand.  Dit is zeer "
+"ongebruikelijk!"
+
+#: libparted/fs/hfs/reloc.c:517 libparted/fs/hfs/reloc_plus.c:668
+msgid ""
+"The extents overflow file should not contain its own extents!  You should "
+"check the file system."
+msgstr ""
+"Het 'extents-overflow'-bestand hoort niet zijn eigen 'extents' te bevatten.  "
+"Voer een bestandssyteemcontrole uit!"
+
+#: libparted/fs/hfs/reloc.c:574 libparted/fs/hfs/reloc_plus.c:847
+msgid "Could not cache the file system in memory."
+msgstr "Kan het bestandssysteem niet tijdelijk opslaan in het geheugen."
+
+#: libparted/fs/hfs/reloc.c:635 libparted/fs/hfs/reloc_plus.c:908
+msgid "Bad blocks list could not be loaded."
+msgstr "De lijst met slechte blokken kan niet geladen worden."
+
+#: libparted/fs/hfs/reloc.c:649 libparted/fs/hfs/reloc_plus.c:924
+msgid "An error occurred during extent relocation."
+msgstr "Er is een fout opgetreden tijdens het verplaatsen van een 'extent'."
+
+#: libparted/fs/hfs/reloc_plus.c:495
+msgid "This HFS+ volume has no catalog file.  This is very unusual!"
+msgstr ""
+"Dit HFS+-volumen heeft geen catalogusbestand.  Dit is zeer ongebruikelijk!"
+
+#: libparted/fs/hfs/reloc_plus.c:619
+msgid "This HFS+ volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+"Dit HFS+-volumen heeft geen 'extents-overflow'-bestand.  Dit is zeer "
+"ongebruikelijk!"
+
+#: parted/parted.c:94
+msgid "displays this help message"
+msgstr "deze hulptekst tonen"
+
+#: parted/parted.c:95
+#, fuzzy
+msgid "lists partition layout on all block devices"
+msgstr "de partietabellen van alle apparaten tonen"
+
+#: parted/parted.c:96
+msgid "displays machine parseable output"
+msgstr ""
+
+#: parted/parted.c:97
+msgid "never prompts for user intervention"
+msgstr "nooit vragen stellen"
+
+#: parted/parted.c:98
+msgid "displays the version"
+msgstr "de programmaversie tonen"
+
+#: parted/parted.c:111
+msgid ""
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"
+msgstr ""
+"NUMMER is het door Linux gebruikte nummer van de partitie.  In MSDOS-"
+"schijflabels zijn de primaire partities genummerd van 1 tot 4, de logische "
+"partities vanaf 5 en hoger.\n"
+
+#: parted/parted.c:114
+msgid "LABEL-TYPE is one of: "
+msgstr "LABEL-TYPE is een van: "
+
+#: parted/parted.c:115
+msgid "FLAG is one of: "
+msgstr "VLAG is een van: "
+
+#: parted/parted.c:116
+msgid "UNIT is one of: "
+msgstr "EENHEID is een van: "
+
+#: parted/parted.c:117
+msgid "PART-TYPE is one of: primary, logical, extended\n"
+msgstr "PART-TYPE is een van: primair, logisch, uitgebreid\n"
+
+#: parted/parted.c:119
+msgid "FS-TYPE is one of: "
+msgstr "BS-SOORT is een van: "
+
+#: parted/parted.c:120
+msgid ""
+"START and END are disk locations, such as 4GB or 10%.  Negative values count "
+"from the end of the disk.  For example, -1s specifies exactly the last "
+"sector.\n"
+msgstr ""
+"BEGIN en EINDE zijn schijflokaties, zoals 4GB of 10%.  Negatieve waarden "
+"tellen vanaf het einde van de schijf.  Bijvoorbeeld, -1s geeft precies de "
+"laatste sector aan.\n"
+
+#: parted/parted.c:123
+msgid "STATE is one of: on, off\n"
+msgstr "TOESTAND is één van: aan, uit\n"
+
+#: parted/parted.c:124
+msgid "DEVICE is usually /dev/hda or /dev/sda\n"
+msgstr "APPARAAT is gewoonlijk /dev/hda of /dev/sda\n"
+
+#: parted/parted.c:125
+msgid "NAME is any word you want\n"
+msgstr "NAAM is elk woord dat u wilt\n"
+
+#: parted/parted.c:126
+msgid "The partition must have one of the following FS-TYPEs: "
+msgstr "De partitie dient een van de volgende BS-SOORTen te hebben: "
+
+#: parted/parted.c:130
+#, fuzzy
+msgid ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+msgstr ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"Dit is vrije programmatuur, vallend onder de GNU General Public License.\n"
+"\n"
+"Dit programma wordt uitgegeven in de hoop dat het nuttig is, maar ZONDER "
+"ENIGE GARANTIE; zelfs zonder de impliciete garantie van VERKOOPBAARHEID of "
+"GESCHIKTHEID VOOR EEN BEPAALD DOEL.  Zie de GNU General Public License voor "
+"nadere details.\n"
+
+#: parted/parted.c:176
+#, c-format
+msgid "%0.f%%\t(time left %.2d:%.2d)"
+msgstr "%0.f%%\t(resterende tijd: %.2d:%.2d)"
+
+#: parted/parted.c:195
+#, c-format
+msgid ""
+"Partition %s is being used. You must unmount it before you modify it with "
+"Parted."
+msgstr ""
+"Partitie %s is in gebruik.  Deze dient ontkoppeld te worden alvorens hem met "
+"Parted te bewerken."
+
+#: parted/parted.c:211
+#, c-format
+msgid "Partition(s) on %s are being used."
+msgstr "Partitie(s) op %s zijn in gebruik."
+
+#: parted/parted.c:223
+msgid ""
+"The existing file system will be destroyed and all data on the partition "
+"will be lost. Do you want to continue?"
+msgstr ""
+"Het bestaande bestandssysteem zal worden vernietigd en alle gegevens op de "
+"partitie zullen verloren gaan.  Wilt u doorgaan?"
+
+#: parted/parted.c:235
+#, c-format
+msgid ""
+"The existing disk label on %s will be destroyed and all data on this disk "
+"will be lost. Do you want to continue?"
+msgstr ""
+"Het bestaande label op %s zal worden vernietigd en alle gegevens op deze "
+"schijf zullen verloren gaan.  Wilt u doorgaan?"
+
+#: parted/parted.c:458 parted/parted.c:652 parted/parted.c:1044
+#: parted/parted.c:1128 parted/parted.c:1771 parted/parted.c:1852
+#: parted/parted.c:1900
+msgid "Partition number?"
+msgstr "Nummer van partitie?"
+
+#: parted/parted.c:500
+msgid "Source device?"
+msgstr "Bronapparaat?"
+
+#: parted/parted.c:504
+msgid "Source partition number?"
+msgstr "Nummer van bronpartitie?"
+
+#: parted/parted.c:509
+msgid "Can't copy an extended partition."
+msgstr "Kan een uitgebreide partitie niet kopiëren."
+
+#: parted/parted.c:515
+msgid "Destination partition number?"
+msgstr "Nummer van doelpartitie?"
+
+#: parted/parted.c:615
+msgid "New disk label type?"
+msgstr "Type van nieuw schijflabel?"
+
+#: parted/parted.c:656
+msgid "File system?"
+msgstr "Bestandssysteem?"
+
+#: parted/parted.c:707 parted/parted.c:878
+msgid "Partition type?"
+msgstr "Partitietype?"
+
+#: parted/parted.c:714 parted/parted.c:885 parted/parted.c:1131
+msgid "Partition name?"
+msgstr "Naam van partitie?"
+
+#: parted/parted.c:722 parted/parted.c:895
+msgid "File system type?"
+msgstr "Bestandssysteemsoort?"
+
+#: parted/parted.c:729 parted/parted.c:897 parted/parted.c:1059
+#: parted/parted.c:1725 parted/parted.c:1780
+msgid "Start?"
+msgstr "Begin?"
+
+#: parted/parted.c:731 parted/parted.c:900 parted/parted.c:1062
+#: parted/parted.c:1727 parted/parted.c:1782
+msgid "End?"
+msgstr "Einde?"
+
+#: parted/parted.c:769 parted/parted.c:938
+#, c-format
+msgid ""
+"You requested a partition from %s to %s.\n"
+"The closest location we can manage is %s to %s.  Is this still acceptable to "
+"you?"
+msgstr ""
+"U verzocht om een partitie van %s tot %s.\n"
+"De dichtstbijzijnde mogelijkheid is van %s tot %s.  Is dit nog acceptabel?"
+
+#: parted/parted.c:890
+msgid "An extended partition cannot hold a file system.  Did you want mkpart?"
+msgstr ""
+"Een uitgebreide partitie kan geen bestandssysteem bevatten.  Bedoelde u "
+"'maakpart'?"
+
+#: parted/parted.c:1050
+msgid "Can't move an extended partition."
+msgstr "Kan een uitgebreide partitie niet verplaatsen."
+
+#: parted/parted.c:1079
+msgid "Can't move a partition onto itself.  Try using resize, perhaps?"
+msgstr ""
+"Kan een partitie niet naar zichzelf verplaatsen.  Bedoelde u 'grootte'?"
+
+#: parted/parted.c:1227
+#, c-format
+msgid "Minor: %d\n"
+msgstr "Nummer: %d\n"
+
+#: parted/parted.c:1228
+#, c-format
+msgid "Flags: %s\n"
+msgstr "Vlaggen: %s\n"
+
+#: parted/parted.c:1229
+#, c-format
+msgid "File System: %s\n"
+msgstr "Bestandssysteem: %s\n"
+
+#: parted/parted.c:1230
+msgid "Size:         "
+msgstr "Grootte:         "
+
+#: parted/parted.c:1235
+msgid "Minimum size: "
+msgstr "Minimum grootte: "
+
+#: parted/parted.c:1238
+msgid "Maximum size: "
+msgstr "Maximum grootte: "
+
+#: parted/parted.c:1362
+#, c-format
+msgid "Model: %s (%s)\n"
+msgstr "Model: %s (%s)\n"
+
+#: parted/parted.c:1364
+#, c-format
+msgid "Disk %s: %s\n"
+msgstr "Schijf %s: %s\n"
+
+#: parted/parted.c:1365
+#, c-format
+msgid "Sector size (logical/physical): %lldB/%lldB\n"
+msgstr "Sectorgrootte (logisch/fysiek): %lldB/%lldB\n"
+
+#: parted/parted.c:1383
+#, c-format
+msgid "BIOS cylinder,head,sector geometry: %d,%d,%d.  Each cylinder is %s.\n"
+msgstr ""
+"Logische schijfopbouw volgens BIOS: %d,%d,%d (cilinders,koppen,sectoren).  "
+"Elke cilinder is %s.\n"
+
+#: parted/parted.c:1392
+#, c-format
+msgid "Partition Table: %s\n"
+msgstr "Partitietabel: %s\n"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Number"
+msgstr "Nummer"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Start"
+msgstr "Begin"
+
+#: parted/parted.c:1407 parted/parted.c:1410
+msgid "End"
+msgstr "Einde"
+
+#: parted/parted.c:1410
+msgid "Size"
+msgstr "Grootte"
+
+#: parted/parted.c:1414
+msgid "Type"
+msgstr "Type"
+
+#: parted/parted.c:1416
+msgid "File system"
+msgstr "Bestandssysteem"
+
+#: parted/parted.c:1419
+msgid "Name"
+msgstr "Naam"
+
+#: parted/parted.c:1421
+msgid "Flags"
+msgstr "Vlaggen"
+
+#: parted/parted.c:1477
+msgid "Free Space"
+msgstr "Vrije ruimte"
+
+#: parted/parted.c:1624
+#, c-format
+msgid ""
+"A %s %s partition was found at %s -> %s.  Do you want to add it to the "
+"partition table?"
+msgstr ""
+"Er is een %s %s-partitie gevonden van %s tot %s.  Wilt u deze aan de "
+"partitietabel toevoegen?"
+
+#: parted/parted.c:1663
+msgid "searching for file systems"
+msgstr "bezig met zoeken naar bestandssystemen"
+
+#: parted/parted.c:1877
+msgid "New device?"
+msgstr "Nieuw apparaat?"
+
+#: parted/parted.c:1902
+msgid "Flag to Invert?"
+msgstr "Om te zetten vlag?"
+
+#: parted/parted.c:1907
+msgid "New state?"
+msgstr "Nieuwe toestand?"
+
+#: parted/parted.c:1944
+msgid "Unit?"
+msgstr "Eenheid?"
+
+#: parted/parted.c:2093
+msgid "check"
+msgstr "controleer"
+
+#: parted/parted.c:2096
+msgid ""
+"check NUMBER                             do a simple check on the file system"
+msgstr ""
+"controleer NUMMER           een simpele controle uitvoeren van "
+"bestandssysteem op partitie NUMMER"
+
+#: parted/parted.c:2102
+msgid "cp"
+msgstr "kopieer"
+
+#: parted/parted.c:2105
+msgid ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+"partition"
+msgstr ""
+"kopieer [APPARAAT] VAN-NUMMER NAAR-NUMMER   een bestandssysteem naar een "
+"andere partitie kopiëren"
+
+#: parted/parted.c:2111
+msgid "help"
+msgstr "hulp"
+
+#: parted/parted.c:2114
+#, fuzzy
+msgid ""
+"help [COMMAND]                           print general help, or help on "
+"COMMAND"
+msgstr ""
+"help [OPDRACHT]             enige algemene hulp geven (of hulp bij OPDRACHT)"
+
+#: parted/parted.c:2120
+msgid "mklabel"
+msgstr "maaklabel"
+
+#: parted/parted.c:2120
+msgid "mktable"
+msgstr "maaktabel"
+
+#: parted/parted.c:2123
+msgid ""
+"mklabel,mktable LABEL-TYPE               create a new disklabel (partition "
+"table)"
+msgstr ""
+"maaklabel LABEL-TYPE        nieuw schijflabel maken (met lege partitietabel)"
+
+#: parted/parted.c:2129
+msgid "mkfs"
+msgstr "maakbs"
+
+#: parted/parted.c:2132
+msgid ""
+"mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on "
+"partititon NUMBER"
+msgstr ""
+"maakbs NUMMER BS-SOORT      op partitie NUMMER een bestandssysteem van BS-"
+"SOORT aanmaken"
+
+#: parted/parted.c:2138
+msgid "mkpart"
+msgstr "maakpart"
+
+#: parted/parted.c:2141
+msgid "mkpart PART-TYPE [FS-TYPE] START END     make a partition"
+msgstr "maakpart PART-TYPE [BS-SOORT] BEGIN EINDE   een partitie aanmaken"
+
+#: parted/parted.c:2147
+#, fuzzy
+msgid ""
+"'mkpart' makes a partition without creating a new file system on the "
+"partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"
+msgstr ""
+"Opdracht 'maakpart' maakt een partitie aan zonder een bestandssysteem aan te "
+"maken.  BS-SOORT mag gebruikt worden om het een geschikt partitiekenmerk te "
+"geven.\n"
+
+#: parted/parted.c:2152
+msgid "mkpartfs"
+msgstr "maakpartbs"
+
+#: parted/parted.c:2155
+msgid ""
+"mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system"
+msgstr ""
+"maakpartbs PART-TYPE BS-SOORT BEGIN EINDE   een partitie met een "
+"bestandssysteem aanmaken "
+
+#: parted/parted.c:2161
+msgid "move"
+msgstr "schuif"
+
+#: parted/parted.c:2164
+msgid "move NUMBER START END                    move partition NUMBER"
+msgstr ""
+"schuif NUMMER BEGIN EINDE   partitie verplaatsen naar nieuw BEGIN en EINDE"
+
+#: parted/parted.c:2169
+msgid "name"
+msgstr "noem"
+
+#: parted/parted.c:2172
+msgid "name NUMBER NAME                         name partition NUMBER as NAME"
+msgstr "noem NUMMER NAAM            partitie NUMMER deze NAAM geven"
+
+#: parted/parted.c:2177
+msgid "print"
+msgstr "toon"
+
+#: parted/parted.c:2180
+msgid ""
+"print [devices|free|list,all|NUMBER]     display the partition table, "
+"available devices, free space, all found partitions, or a particular "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2185
+msgid ""
+"Without arguments, 'print' displays the entire partition table. However with "
+"the following arguments it performs various other actions.\n"
+msgstr ""
+
+#: parted/parted.c:2187
+msgid "  devices   : display all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2188
+msgid ""
+"  free      : display information about free unpartitioned space on the "
+"current block device\n"
+msgstr ""
+
+#: parted/parted.c:2190
+#, fuzzy
+msgid ""
+"  list, all : display the partition tables of all active block devices\n"
+msgstr "de partietabellen van alle apparaten tonen"
+
+#: parted/parted.c:2191
+msgid ""
+"  NUMBER    : display more detailed information about this particular "
+"partition\n"
+msgstr ""
+
+#: parted/parted.c:2196
+msgid "quit"
+msgstr "einde"
+
+#: parted/parted.c:2199
+msgid "quit                                     exit program"
+msgstr "einde                       programma afsluiten"
+
+#: parted/parted.c:2204
+msgid "rescue"
+msgstr "red"
+
+#: parted/parted.c:2207
+msgid ""
+"rescue START END                         rescue a lost partition near START "
+"and END"
+msgstr ""
+"red BEGIN EINDE             een verloren partitie proberen te herstellen"
+
+#: parted/parted.c:2213
+msgid "resize"
+msgstr "grootte"
+
+#: parted/parted.c:2216
+msgid ""
+"resize NUMBER START END                  resize partition NUMBER and its "
+"file system"
+msgstr ""
+"grootte NUMMER BEGIN EINDE  de grootte van het bestandssysteem op partitie "
+"NUMMER veranderen"
+
+#: parted/parted.c:2224
+msgid "rm"
+msgstr "verwijder"
+
+#: parted/parted.c:2227
+msgid "rm NUMBER                                delete partition NUMBER"
+msgstr "verwijder NUMMER            partitie NUMMER verwijderen"
+
+#: parted/parted.c:2232
+msgid "select"
+msgstr "kies"
+
+#: parted/parted.c:2235
+msgid "select DEVICE                            choose the device to edit"
+msgstr "kies APPARAAT               dit APPARAAT kiezen om te bewerken"
+
+#: parted/parted.c:2240
+msgid "set"
+msgstr "zet"
+
+#: parted/parted.c:2243
+msgid ""
+"set NUMBER FLAG STATE                    change the FLAG on partition NUMBER"
+msgstr ""
+"zet NUMMER VLAG TOESTAND    op partitie NUMMER deze VLAG in TOESTAND zetten"
+
+#: parted/parted.c:2249
+msgid "toggle"
+msgstr "zetom"
+
+#: parted/parted.c:2252
+msgid ""
+"toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+"partition NUMBER"
+msgstr ""
+"zetom [NUMMER [VLAG]]       op partitie NUMMER de toestand van VLAG omzetten"
+
+#: parted/parted.c:2258
+msgid "unit"
+msgstr "eenheid"
+
+#: parted/parted.c:2261
+msgid "unit UNIT                                set the default unit to UNIT"
+msgstr "eenheid EENHEID             standaard deze EENHEID gebruiken"
+
+#: parted/parted.c:2266
+msgid "version"
+msgstr "versie"
+
+#: parted/parted.c:2269
+#, fuzzy
+msgid ""
+"version                                  display the version number and "
+"copyright information of GNU Parted"
+msgstr ""
+"versie                      versienummer en copyright van deze Parted tonen"
+
+#: parted/parted.c:2273
+#, fuzzy
+msgid ""
+"'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"
+msgstr ""
+"'versie' toont informatie over het copyright en de versie van deze GNU "
+"Parted\n"
+
+#: parted/parted.c:2335
+#, c-format
+msgid "Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"
+msgstr ""
+
+#: parted/parted.c:2379
+msgid "No device found"
+msgstr "Geen apparaat gevonden"
+
+#: parted/parted.c:2412
+#, fuzzy
+msgid "WARNING: You are not superuser.  Watch out for permissions."
+msgstr ""
+"WAARSCHUWING: u bent niet root.\n"
+"Houd rekening met ontbrekende toegangsrechten.\n"
+
+#: parted/parted.c:2450
+#, fuzzy
+msgid "You may need to update /etc/fstab.\n"
+msgstr "Vergeet niet, indien nodig, /etc/fstab bij te werken.\n"
+
+#: parted/ui.c:160
+msgid "Welcome to GNU Parted! Type 'help' to view a list of commands.\n"
+msgstr "Welkom bij GNU Parted!  Typ 'help' voor een opdrachtenoverzicht.\n"
+
+#: parted/ui.c:163
+msgid ""
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run "
+"in\n"
+"interactive mode.\n"
+msgstr ""
+"Gebruik:  parted [OPTIE]... [APPARAAT [OPDRACHT [ARGUMENTEN]...]...]\n"
+"Dit voert OPDRACHT met ARGUMENTEN uit op APPARAAT.\n"
+"Als er geen OPDRACHT gegeven is, wordt interactieve modus gestart.\n"
+
+#: parted/ui.c:168
+#, fuzzy, c-format
+msgid ""
+"\n"
+"\n"
+"You found a bug in GNU Parted! Here's what you have to do:\n"
+"\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n"
+"\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Please check this version prior to bug reporting.\n"
+"\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"for further information.\n"
+"\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n"
+msgstr ""
+"\n"
+"\n"
+"U heeft een programmeerfout in GNU Parted gevonden.  Raak niet in paniek.\n"
+"De fout heeft zeer waarschijnlijk uw gegevens ongemoeid gelaten.\n"
+"\n"
+"Help ons de fout te verbeteren door het volgende te doen:\n"
+"\n"
+"Controleer of de fout al is verbeterd door de nieuwste versie van GNU "
+"Parted\n"
+"te gebruiken die te vinden is op:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Probeer die versie alvorens een fout te rapporteren.\n"
+"\n"
+"Als de fout nog niet is verbeterd, of als u niet precies weet hoe dit\n"
+"te controleren, kijk dan voor verdere informatie op de Parted-website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"Uw rapportage dient het versienummer van Parted te bevatten (%s),\n"
+"de onderstaande foutmelding, de uitvoer van\n"
+"\n"
+"\tparted APPARAAT unit co print unit s print\n"
+"\n"
+"en verdere relevante informatie over de configuratie van uw systeem.\n"
+
+#: parted/ui.c:284
+msgid ""
+"\n"
+"Command History:\n"
+msgstr ""
+
+#: parted/ui.c:366
+#, fuzzy
+msgid ""
+"\n"
+"Error: SEGV_MAPERR (Address not mapped to object)\n"
+msgstr ""
+"\n"
+"Error: SEGV_MAPERR (Adres niet verbonden met object)"
+
+#: parted/ui.c:372
+#, fuzzy
+msgid ""
+"\n"
+"Error: SEGV_ACCERR (Invalid permissions for mapped object)\n"
+msgstr ""
+"\n"
+"Error: SEGV_ACCERR (Ongeldige toegangsrechten voor object)"
+
+#: parted/ui.c:377
+#, fuzzy
+msgid ""
+"\n"
+"Error: A general SIGSEGV signal was encountered.\n"
+msgstr ""
+"\n"
+"Fout: een niet-specifiek SIGSEGV-signaal werd ontvangen."
+
+#: parted/ui.c:410
+msgid ""
+"\n"
+"Error: FPE_INTDIV (Integer: divide by zero)"
+msgstr ""
+"\n"
+"Error: FPE_INTDIV (Deling door nul)"
+
+#: parted/ui.c:415
+msgid ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+msgstr ""
+"\n"
+"Error: FPE_INTOVF (Overloop)"
+
+#: parted/ui.c:420
+msgid ""
+"\n"
+"Error: FPE_FLTDIV (Float: divide by zero)"
+msgstr ""
+"\n"
+"Error: FPE_FLTDIV (Deling door nul)"
+
+#: parted/ui.c:425
+msgid ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+msgstr ""
+"\n"
+"Error: FPE_FLTOVF (Overloop)"
+
+#: parted/ui.c:430
+msgid ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+msgstr ""
+"\n"
+"Error: FPE_FLTUND (Onderloop)"
+
+#: parted/ui.c:435
+msgid ""
+"\n"
+"Error: FPE_FLTRES (Float: inexact result)"
+msgstr ""
+"\n"
+"Error: FPE_FLTRES (Inexact resultaat)"
+
+#: parted/ui.c:440
+msgid ""
+"\n"
+"Error: FPE_FLTINV (Float: invalid operation)"
+msgstr ""
+"\n"
+"Error: FPE_FLTINV (Ongeldige operatie)"
+
+#: parted/ui.c:445
+msgid ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript out of range)"
+msgstr ""
+"\n"
+"Error: FPE_FLTSUB (Index buiten bereik)"
+
+#: parted/ui.c:450
+msgid ""
+"\n"
+"Error: A general SIGFPE signal was encountered."
+msgstr ""
+"\n"
+"Fout: een niet-specifiek SIGFPE-signaal werd ontvangen."
+
+#: parted/ui.c:483
+msgid ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+msgstr ""
+"\n"
+"Error: ILL_ILLOPC (Ongeldige opcode)"
+
+#: parted/ui.c:488
+msgid ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+msgstr ""
+"\n"
+"Error: ILL_ILLOPN (Ongeldige parameter)"
+
+#: parted/ui.c:493
+msgid ""
+"\n"
+"Error: ILL_ILLADR (Illegal addressing mode)"
+msgstr ""
+"\n"
+"Error: ILL_ILLADR (Ongeldige adresseringsmodus)"
+
+#: parted/ui.c:498
+msgid ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+msgstr ""
+"\n"
+"Error: ILL_ILLTRP (Ongeldige 'trap')"
+
+#: parted/ui.c:503
+msgid ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+msgstr ""
+"\n"
+"Error: ILL_PRVOPC (Instructie alleen toegankelijk voor geprivilegeerden)"
+
+#: parted/ui.c:508
+msgid ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+msgstr ""
+"\n"
+"Error: ILL_PRVREG (Register alleen toegankelijk voor geprivilegeerden)"
+
+#: parted/ui.c:513
+msgid ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+msgstr ""
+"\n"
+"Error: ILL_COPROC (Coprocessorfout)"
+
+#: parted/ui.c:518
+msgid ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+msgstr ""
+"\n"
+"Error: ILL_BADSTK (Interne stackfout)"
+
+#: parted/ui.c:523
+msgid ""
+"\n"
+"Error: A general SIGILL signal was encountered."
+msgstr ""
+"\n"
+"Fout: een niet-specifiek SIGILL-signaal werd ontvangen."
+
+#: parted/ui.c:1024
+msgid "Expecting a partition number."
+msgstr "Een partitienummer wordt verwacht."
+
+#: parted/ui.c:1033
+msgid "Partition doesn't exist."
+msgstr "Partitie bestaat niet."
+
+#: parted/ui.c:1053
+msgid "Expecting a file system type."
+msgstr "Een bestandssysteemsoort wordt verwacht."
+
+#: parted/ui.c:1060
+#, c-format
+msgid "Unknown file system type \"%s\"."
+msgstr "Onbekende bestandssysteemsoort '%s'."
+
+#: parted/ui.c:1080
+msgid "Expecting a disk label type."
+msgstr "Een schijflabeltype wordt verwacht."
+
+#: parted/ui.c:1178
+msgid "Can't create any more partitions."
+msgstr "Kan geen nieuwe partities meer maken."
+
+#: parted/ui.c:1188
+msgid "Expecting a partition type."
+msgstr "Een partitietype wordt verwacht."
+
+#: parted/ui.c:1315
+msgid "on"
+msgstr "aan"
+
+#: parted/ui.c:1316
+msgid "off"
+msgstr "uit"
+
+#: parted/ui.c:1431
+msgid "OPTIONs:"
+msgstr "OPTIEs:"
+
+#: parted/ui.c:1436
+msgid "COMMANDs:"
+msgstr "OPDRACHTen:"
+
+#: parted/ui.c:1445
+#, c-format
+msgid "Using %s\n"
+msgstr "Apparaat %s wordt gebruikt.\n"
+
+#: parted/ui.c:1519
+msgid "This command does not make sense in non-interactive mode.\n"
+msgstr ""
+
+#~ msgid "GNU Parted cannot resize this file system, please useresize2fs."
+#~ msgstr ""
+#~ "GNU Parted kan dit bestandssysteem niet van grootte veranderen;\n"
+#~ "gebruik 'resize2fs'."
+
+#~ msgid "where necessary, prompts for user intervention"
+#~ msgstr "indien nodig vragen stellen"
+
+#~ msgid "GNU Parted Version information:\n"
+#~ msgstr "GNU Parted versieinformatie:\n"
+
+#~ msgid ""
+#~ "print [free|NUMBER|all]                  display the partition table, a "
+#~ "partition, or all devices"
+#~ msgstr ""
+#~ "toon [free|NUMMER|all]      de partitietabel weergeven (of de vrije "
+#~ "ruimte, of een specifieke partitie, of alle apparaten)"
+
+#~ msgid ""
+#~ "Without arguments, print displays the entire partition table. With "
+#~ "'free'\n"
+#~ "argument, information about free space will be displayed otherwise if a\n"
+#~ "partition number is given, then more detailed information is displayed\n"
+#~ "about that partition. If the 'all' argument is passed instead, partition\n"
+#~ "information for all devices will be displayed.\n"
+#~ msgstr ""
+#~ "Zonder argumenten toont 'toon' de volledige partitietabel.  Met 'free'\n"
+#~ "als argument, toont het hoeveel ruimte er nog beschikbaar is.  Met een\n"
+#~ "partitienummer als argument, toont het meer gedetailleerde informatie\n"
+#~ "over die partitie.  En met 'all' als argument, toont het informatie over\n"
+#~ "alle apparaten.\n"
diff --git a/parted-1.8.7/po/nn.gmo b/parted-1.8.7/po/nn.gmo
new file mode 100644
index 0000000..45a082a
--- /dev/null
+++ b/parted-1.8.7/po/nn.gmo
Binary files differ
diff --git a/parted-1.8.7/po/nn.po b/parted-1.8.7/po/nn.po
new file mode 100644
index 0000000..70bcaf8
--- /dev/null
+++ b/parted-1.8.7/po/nn.po
@@ -0,0 +1,3336 @@
+# Norwegian nynorsk messages for GNU parted
+# Copyright (C) 2001 Free Software Foundation, Inc.
+# Kjetil Torgrim Homme <kjetilho@ifi.uio.no>, 2001.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU parted 1.6.6-pre2\n"
+"Report-Msgid-Bugs-To: bug-parted@gnu.org\n"
+"POT-Creation-Date: 2007-05-09 17:02-0400\n"
+"PO-Revision-Date: 2003-07-04 19:03+0200\n"
+"Last-Translator: Kjetil Torgrim Homme <kjetilho@ifi.uio.no>\n"
+"Language-Team: Norwegian Nynorsk <i18n-nn@lister.ping.uio.no>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/closeout.c:74
+msgid "write error"
+msgstr ""
+
+#: lib/error.c:125
+#, fuzzy
+msgid "Unknown system error"
+msgstr "Filsystemtypen «%s» er ukjend."
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK).  A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#.
+#. If you don't know what to put here, please see
+#. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr ""
+
+#: lib/regcomp.c:131
+msgid "Success"
+msgstr ""
+
+#: lib/regcomp.c:134
+msgid "No match"
+msgstr ""
+
+#: lib/regcomp.c:137
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regcomp.c:140
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regcomp.c:143
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regcomp.c:146
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regcomp.c:149
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regcomp.c:152
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regcomp.c:155
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regcomp.c:158
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regcomp.c:161
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regcomp.c:164
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regcomp.c:170
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regcomp.c:173
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regcomp.c:176
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regcomp.c:179
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regcomp.c:680
+msgid "No previous regular expression"
+msgstr ""
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr ""
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:66
+msgid "(C)"
+msgstr ""
+
+#: lib/version-etc.c:68
+msgid ""
+"\n"
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:84
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:88
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:92
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:98
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:104
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:110
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:132
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+
+#: lib/xalloc-die.c:35
+msgid "memory exhausted"
+msgstr ""
+
+#: libparted/arch/beos.c:237
+msgid "Disk Image"
+msgstr ""
+
+#: libparted/arch/beos.c:338 libparted/arch/gnu.c:261
+#: libparted/arch/linux.c:1272
+#, c-format
+msgid "Error opening %s: %s"
+msgstr "Feil ved opning av %s: %s"
+
+#: libparted/arch/beos.c:349 libparted/arch/gnu.c:271
+#: libparted/arch/linux.c:1283
+#, c-format
+msgid "Unable to open %s read-write (%s).  %s has been opened read-only."
+msgstr ""
+"Kunne ikkje opna %s for både lesing og skriving (%s).  %s er berre opna for "
+"lesing."
+
+#: libparted/arch/beos.c:411 libparted/arch/linux.c:1431
+#, c-format
+msgid "%s during seek for read on %s"
+msgstr "%s under posisjonering før lesing av %s"
+
+#: libparted/arch/beos.c:444 libparted/arch/gnu.c:449 libparted/arch/gnu.c:548
+#: libparted/arch/gnu.c:676 libparted/arch/linux.c:1391
+#: libparted/arch/linux.c:1469
+#, c-format
+msgid "%s during read on %s"
+msgstr "%s under lesing av %s"
+
+#: libparted/arch/beos.c:480 libparted/arch/gnu.c:509
+#: libparted/arch/linux.c:1546
+#, c-format
+msgid "Can't write to %s, because it is opened read-only."
+msgstr "Kan ikkje skriva til %s, sidan han berre er opna for lesing."
+
+#: libparted/arch/beos.c:496 libparted/arch/linux.c:1570
+#, c-format
+msgid "%s during seek for write on %s"
+msgstr "%s under posisjonering før skriving til %s"
+
+#: libparted/arch/beos.c:533 libparted/arch/gnu.c:585 libparted/arch/gnu.c:630
+#: libparted/arch/gnu.c:707 libparted/arch/linux.c:1517
+#: libparted/arch/linux.c:1612 libparted/arch/linux.c:1684
+#, c-format
+msgid "%s during write on %s"
+msgstr "%s under skriving til %s"
+
+#: debug/clearfat/clearfat.c:63 partprobe/partprobe.c:137
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:67
+#, c-format
+msgid ""
+"Usage: %s [OPTION]\n"
+"  or:  %s DEVICE MINOR\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:70
+msgid ""
+"Clear unused space on a FAT partition (a GNU Parted testing tool).\n"
+"\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:74
+msgid "      --help     display this help and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:75
+msgid "      --version  output version information and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:77 partprobe/partprobe.c:154
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:285
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:290
+#, fuzzy, c-format
+msgid "too many arguments"
+msgstr "For mange dårlege sider."
+
+#: partprobe/partprobe.c:141
+#, c-format
+msgid "Usage: %s [OPTION] [DEVICE]...\n"
+msgstr ""
+
+#: partprobe/partprobe.c:142
+msgid ""
+"Inform the OS of partition table changes.\n"
+"\n"
+"  -d, --no-update  don't update the kernel\n"
+"  -s, --summary    print a summary of contents\n"
+"  -h, --help       display this help and exit\n"
+"  -v, --version    output version information and exit\n"
+msgstr ""
+
+#: partprobe/partprobe.c:150
+msgid ""
+"\n"
+"With no DEVICE, probe all partitions.\n"
+msgstr ""
+
+#: libparted/arch/gnu.c:94
+#, c-format
+msgid "Unable to open %s."
+msgstr "Kunne ikkje opna %s."
+
+#: libparted/arch/gnu.c:114
+msgid "Unable to probe store."
+msgstr "Kunne ikkje undersøkja lagringsmediet."
+
+#: libparted/arch/gnu.c:352
+#, fuzzy
+msgid ""
+"The partition table cannot be re-read.  This means you need to reboot before "
+"mounting any modified partitions.  You also need to reinstall your boot "
+"loader before you reboot (which may require mounting modified partitions).  "
+"It is impossible do both things!  So you'll need to boot off a rescue disk, "
+"and reinstall your boot loader from the rescue disk.  Read section 4 of the "
+"Parted User documentation for more information."
+msgstr ""
+"Kjerna klarte ikkje å lesa partisjonstabellen på nytt, så du må starta om "
+"maskina før du kan montera endra partisjonar.  Du må også installera boot-"
+"lastaren på nytt før omstarten (som kanskje krever at du monterer "
+"partisjonane du har endra).  Det er umogleg å gjera båe delar!  Start frå "
+"ein redningsdiskett, og reinstallera boot-lastaren frå redningsmiljøet.  Les "
+"del 4 i brukarhandboka for meir informasjon."
+
+#: libparted/arch/gnu.c:369
+#, fuzzy, c-format
+msgid ""
+"The partition table on %s cannot be re-read (%s).  This means the Hurd knows "
+"nothing about any modifications you made.  You should reboot your computer "
+"before doing anything with %s."
+msgstr ""
+"Partisjonstabellen på %s (%s).  Det tyder at Hurd ikkje veit noko om "
+"endringar du har gjort.  Datamaskinen må startast på nytt før du gjer noko "
+"med %s."
+
+#: libparted/arch/gnu.c:380 parted/parted.c:2443
+msgid ""
+"You should reinstall your boot loader before rebooting.  Read section 4 of "
+"the Parted User documentation for more information."
+msgstr ""
+"Du må installera boot-lastaren på nytt før neste omstart.  Les del 4 i "
+"brukarhandboka for meir informasjon."
+
+#: libparted/arch/gnu.c:772
+#, c-format
+msgid "%s trying to sync %s to disk"
+msgstr "Fekk feilmeldinga «%s» ved forsøk på å synkronisera %s til disk"
+
+#: libparted/arch/linux.c:408
+#, c-format
+msgid "Could not stat device %s - %s."
+msgstr "Kunne ikkje undersøkja eininga %s - %s."
+
+#: libparted/arch/linux.c:523
+#, c-format
+msgid ""
+"Could not determine sector size for %s: %s.\n"
+"Using the default sector size (%lld)."
+msgstr ""
+
+#: libparted/arch/linux.c:539
+#, c-format
+msgid ""
+"Device %s has a logical sector size of %lld.  Not all parts of GNU Parted "
+"support this at the moment, and the working code is HIGHLY EXPERIMENTAL.\n"
+msgstr ""
+
+#: libparted/arch/linux.c:579
+#, fuzzy, c-format
+msgid "Unable to determine the size of %s (%s)."
+msgstr "Klarte ikkje å finna storleiken til %s (%s)"
+
+#: libparted/arch/linux.c:668
+#, c-format
+msgid "Could not get identity of device %s - %s"
+msgstr "Kunne ikkje finna identiteten til eininga %s - %s"
+
+#: libparted/arch/linux.c:677
+msgid "Generic IDE"
+msgstr ""
+
+#: libparted/arch/linux.c:698
+#, c-format
+msgid ""
+"Device %s has multiple (%d) logical sectors per physical sector.\n"
+"GNU Parted supports this EXPERIMENTALLY for some special disk label/file "
+"system combinations, e.g. GPT and ext2/3.\n"
+"Please consult the web site for up-to-date information."
+msgstr ""
+
+#: libparted/arch/linux.c:873
+#, c-format
+msgid "Error initialising SCSI device %s - %s"
+msgstr "Initialisering av SCSI-eininga %s gav feil - %s"
+
+#: libparted/arch/linux.c:928
+#, fuzzy, c-format
+msgid ""
+"The device %s has zero length, and can't possibly store a file system or "
+"partition table.  Perhaps you selected the wrong device?"
+msgstr ""
+"Eininga %s har storleik null, og kan umogleg innehalda eit filsystem eller "
+"ein partisjonstabell.  Kanskje du valte feil eining?"
+
+#: libparted/arch/linux.c:1032
+#, fuzzy, c-format
+msgid ""
+"Unable to determine geometry of file/device %s.  You should not use Parted "
+"unless you REALLY know what you're doing!"
+msgstr ""
+"Klarte ikkje å finna geometrien til fila/eininga.  Du bør ikkje bruka Parted "
+"med mindre du VERKELEG veit kva du gjer!"
+
+#: libparted/arch/linux.c:1110
+msgid "DAC960 RAID controller"
+msgstr "DAC960 RAID-kontroller"
+
+#: libparted/arch/linux.c:1115
+msgid "Promise SX8 SATA Device"
+msgstr ""
+
+#: libparted/arch/linux.c:1120
+msgid "IBM S390 DASD drive"
+msgstr ""
+
+#: libparted/arch/linux.c:1125
+msgid "IBM iSeries Virtual DASD"
+msgstr ""
+
+#: libparted/arch/linux.c:1130
+msgid "Compaq Smart Array"
+msgstr "Compaq Smart Array"
+
+#: libparted/arch/linux.c:1135
+msgid "ATARAID Controller"
+msgstr "ATARAID-kontroller"
+
+#: libparted/arch/linux.c:1140
+msgid "I2O Controller"
+msgstr "I2O-kontroller"
+
+#: libparted/arch/linux.c:1145
+msgid "User-Mode Linux UBD"
+msgstr ""
+
+#: libparted/arch/linux.c:1156
+msgid "Linux device-mapper"
+msgstr ""
+
+#: libparted/arch/linux.c:1162
+msgid "Unknown"
+msgstr "Ukjent"
+
+#: libparted/arch/linux.c:1169
+msgid "ped_device_new()  Unsupported device type"
+msgstr "ped_device_new()  Einingstypen er ikkje støtta"
+
+#: libparted/arch/linux.c:2083
+#, fuzzy, c-format
+msgid ""
+"Error informing the kernel about modifications to partition %s -- %s.  This "
+"means Linux won't know about any changes you made to %s until you reboot -- "
+"so you shouldn't mount it or use it in any way before rebooting."
+msgstr ""
+"Ein feil oppstod ved varsling av kjerna om endringane på partisjon %s - %s.  "
+"Dette tyder at Linux ikkje veit om endringar du har gjort på %s før etter "
+"omstart av maskinen, så du må ikkje montera han eller bruka han på nokon "
+"måte før omstart."
+
+#: libparted/arch/linux.c:2262
+#, fuzzy, c-format
+msgid ""
+"parted was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made. "
+msgstr ""
+"Kjerna klarte ikkje å lesa partisjonstabellen på %s på nytt (%s).  Dette "
+"tyder at Linux ikkje veit om endringane du har gjort.  Du må ta omstart på "
+"maskinen din før du gjer noko med %s."
+
+#: libparted/arch/linux.c:2368
+#, fuzzy, c-format
+msgid ""
+"The kernel was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made until you "
+"reboot.  You should reboot your computer before doing anything with %s."
+msgstr ""
+"Kjerna klarte ikkje å lesa partisjonstabellen på %s på nytt (%s).  Dette "
+"tyder at Linux ikkje veit om endringane du har gjort.  Du må ta omstart på "
+"maskinen din før du gjer noko med %s."
+
+#: libparted/cs/geom.c:162
+msgid "Can't have the end before the start!"
+msgstr "Kan ikkje ha slutten før starten!"
+
+#: libparted/cs/geom.c:169
+msgid "Can't have a partition outside the disk!"
+msgstr "Kan ikkje ha ein partisjon utanfor disken!"
+
+#: libparted/cs/geom.c:366
+#, fuzzy, c-format
+msgid "Attempt to write sectors %ld-%ld outside of partition on %s."
+msgstr "Prøvde å skriva sektorane %ld-%ld utanfor partisjonen på %s"
+
+#: libparted/cs/geom.c:406 libparted/fs/linux_swap/linux_swap.c:475
+msgid "checking for bad blocks"
+msgstr "ser etter dårlege blokker"
+
+#: libparted/debug.c:102
+#, c-format
+msgid "Backtrace has %d calls on stack:\n"
+msgstr ""
+
+#: libparted/debug.c:114
+#, c-format
+msgid "Assertion (%s) at %s:%d in function %s() failed."
+msgstr ""
+
+#: libparted/disk.c:203
+#, c-format
+msgid "Unable to open %s - unrecognised disk label."
+msgstr "Kunne ikkje opna %s - ukjend disklabel."
+
+#: libparted/disk.c:471
+#, c-format
+msgid ""
+"This libparted doesn't have write support for %s.  Perhaps it was compiled "
+"read-only."
+msgstr ""
+"Dette libparted-biblioteket har ikkje støtte for skriving til %s.  Kanskje "
+"vart det kompilert for kun lesing."
+
+#: libparted/disk.c:598
+#, fuzzy, c-format
+msgid "Partition %d is %s, but the file system is %s."
+msgstr "Partisjonen %d er %.3f MiB, men filsystemet er %.3f MiB."
+
+#: libparted/disk.c:1075
+#, c-format
+msgid "%s disk labels do not support extended partitions."
+msgstr "Ein %s-disklabel støttar ikkje utvidingspartisjonar."
+
+#: libparted/disk.c:1634
+#, c-format
+msgid "%s disk labels don't support logical or extended partitions."
+msgstr "%s-disklablar støttar ikkje logiske eller utvidingspartisjonar."
+
+#: libparted/disk.c:1647
+#, fuzzy
+msgid "Too many primary partitions."
+msgstr "For mange primærpartisjonar"
+
+#: libparted/disk.c:1656
+#, c-format
+msgid ""
+"Can't add a logical partition to %s, because there is no extended partition."
+msgstr ""
+"Kan ikkje leggja ein logisk partisjon til %s, sidan der ikkje er nokon "
+"utvidingspartisjon."
+
+#: libparted/disk.c:1680
+#, fuzzy, c-format
+msgid "Can't have more than one extended partition on %s."
+msgstr "Kan ikkje ha meir enn éin utvidingspartisjon på %s"
+
+#: libparted/disk.c:1690
+msgid "Can't have logical partitions outside of the extended partition."
+msgstr "Kan ikkje ha logiske partisjonar utanfor utvidingspartisjonen."
+
+#: libparted/disk.c:1715
+#, c-format
+msgid "Can't have a logical partition outside of the extended partition on %s."
+msgstr ""
+"Ein logisk partisjon kan ikkje liggja utanfor utvidingspartisjonen på %s."
+
+#: libparted/disk.c:1725 libparted/disk.c:1779 libparted/disk.c:1945
+#, fuzzy
+msgid "Can't have overlapping partitions."
+msgstr "Partisjonar kan ikkje overlappa kvarandre."
+
+#: libparted/disk.c:1733
+msgid "Can't have a primary partition inside an extended partition."
+msgstr "Ein primærpartisjon kan ikkje liggja inne i ein utvidingspartisjon."
+
+#: libparted/disk.c:2140
+msgid "metadata"
+msgstr "metadata"
+
+#: libparted/disk.c:2142
+msgid "free"
+msgstr "ledig"
+
+#: libparted/disk.c:2144 parted/ui.c:1169 parted/ui.c:1197
+msgid "extended"
+msgstr "utviding"
+
+#: libparted/disk.c:2146 parted/ui.c:1173 parted/ui.c:1201
+msgid "logical"
+msgstr "logisk"
+
+#: libparted/disk.c:2148 parted/ui.c:1165 parted/ui.c:1193
+msgid "primary"
+msgstr "primær"
+
+#: libparted/disk.c:2164
+msgid "boot"
+msgstr "boot"
+
+#: libparted/disk.c:2166
+msgid "root"
+msgstr "rot"
+
+#: libparted/disk.c:2168
+msgid "swap"
+msgstr "swap"
+
+#: libparted/disk.c:2170
+msgid "hidden"
+msgstr "skjult"
+
+#: libparted/disk.c:2172
+msgid "raid"
+msgstr "raid"
+
+#: libparted/disk.c:2174
+msgid "lvm"
+msgstr "lvm"
+
+#: libparted/disk.c:2176
+msgid "lba"
+msgstr "lba"
+
+#: libparted/disk.c:2178
+msgid "hp-service"
+msgstr "hp-service"
+
+#: libparted/disk.c:2180
+msgid "palo"
+msgstr ""
+
+#: libparted/disk.c:2182
+msgid "prep"
+msgstr ""
+
+#: libparted/disk.c:2184
+msgid "msftres"
+msgstr ""
+
+#: libparted/disk.c:2190
+#, fuzzy, c-format
+msgid "Unknown partition flag, %d."
+msgstr "Ukjent partisjonsflagg, %d."
+
+#: libparted/exception.c:78
+msgid "Information"
+msgstr "Informasjon"
+
+#: libparted/exception.c:79
+msgid "Warning"
+msgstr "Åtvaring"
+
+#: libparted/exception.c:80
+msgid "Error"
+msgstr "Feil"
+
+#: libparted/exception.c:81
+msgid "Fatal"
+msgstr "Kritisk"
+
+#: libparted/exception.c:82
+msgid "Bug"
+msgstr "Programfeil"
+
+#: libparted/exception.c:83
+msgid "No Implementation"
+msgstr "Ikkje laga"
+
+#: libparted/exception.c:87
+msgid "Fix"
+msgstr "Rett opp"
+
+#: libparted/exception.c:88
+msgid "Yes"
+msgstr "Ja"
+
+#: libparted/exception.c:89
+msgid "No"
+msgstr "Nei"
+
+#: libparted/exception.c:90
+msgid "OK"
+msgstr "OK"
+
+#: libparted/exception.c:91
+msgid "Retry"
+msgstr "Prøv igjen"
+
+#: libparted/exception.c:92
+msgid "Ignore"
+msgstr "Oversjå"
+
+#: libparted/exception.c:93
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: libparted/exception.c:133
+#, fuzzy, c-format
+msgid ""
+"A bug has been detected in GNU Parted.  Refer to the web site of parted "
+"http://www.gnu.org/software/parted/parted.html for more informations of what "
+"could be useful for bug submitting!  Please email a bug report to bug-"
+"parted@gnu.org containing at least the version (%s) and the following "
+"message:  "
+msgstr ""
+"Ein programfeil oppstod i GNU Parted.  Ver venleg å senda ei feilmelding til "
+"bug-parted@gnu.org der du oppgjev versjonsnummeret (%s) og fylgjande melding:"
+
+#: libparted/filesys.c:384
+msgid "Could not detect file system."
+msgstr "Kan ikkje kjenna igjen noko filsystem."
+
+#: libparted/filesys.c:395
+#, fuzzy
+msgid "The file system is bigger than its volume!"
+msgstr "Filsystemet er større enn volumet det ligg på!"
+
+#: libparted/filesys.c:403
+#, c-format
+msgid "Support for opening %s file systems is not implemented yet."
+msgstr "Støtte for å opna %s-filsystem er ikkje lagt inn enno."
+
+#: libparted/filesys.c:445
+#, c-format
+msgid "Support for creating %s file systems is not implemented yet."
+msgstr "Støtte for å laga %s-filsystem er ikkje lagt inn enno."
+
+#: libparted/filesys.c:505
+#, c-format
+msgid "Support for checking %s file systems is not implemented yet."
+msgstr "Støtte for å sjekka %s-filsystem for feil er ikkje lagt inn enno."
+
+#: libparted/filesys.c:571
+msgid "raw block copying"
+msgstr "rå blokkopiering"
+
+#: libparted/filesys.c:582
+msgid "growing file system"
+msgstr "aukar storleik på filsystemet"
+
+#: libparted/filesys.c:622
+msgid "Can't copy onto an overlapping partition."
+msgstr "Kan ikkje kopiera inn i ein overlappande partisjon."
+
+#: libparted/filesys.c:644
+#, fuzzy, c-format
+msgid ""
+"Direct support for copying file systems is not yet implemented for %s.  "
+"However, support for resizing is implemented.  Therefore, the file system "
+"can be copied if the new partition is at least as big as the old one.  So, "
+"either shrink the partition you are trying to copy, or copy to a bigger "
+"partition."
+msgstr ""
+"Å kopiera filsystemet er ikkje direkte støtta for %s.  Men, støtte for å "
+"endra storleik er med, så filsystemet kan kopierast viss den nye partisjonen "
+"er minst like stor som den gamle.  Du må altså anten krympa partisjonen du "
+"prøver å kopiera, eller kopiera til ein større partisjon."
+
+#: libparted/filesys.c:658
+#, c-format
+msgid "Support for copying %s file systems is not implemented yet."
+msgstr "Støtte for å kopiera %s-filsystem er ikkje lagt inn enno."
+
+#: libparted/filesys.c:696
+#, c-format
+msgid "Support for resizing %s file systems is not implemented yet."
+msgstr "Støtte for å endra storleik på %s-filsystem er ikkje lagt inn enno."
+
+#: libparted/fs/reiserfs/reiserfs.c:315
+msgid "creating"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:402
+#, fuzzy
+msgid "The file system is in an invalid state.  Perhaps it is mounted?"
+msgstr "Filsystemet er større enn volumet det ligg på!"
+
+#: libparted/fs/reiserfs/reiserfs.c:410
+msgid "The file system is in old (unresizeable) format."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:416
+msgid "Invalid free blocks count.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:431
+#, fuzzy
+msgid "checking"
+msgstr "check"
+
+#: libparted/fs/reiserfs/reiserfs.c:437
+msgid "Reiserfs tree seems to be corrupted.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:449
+#, fuzzy
+msgid ""
+"The reiserfs file system passed a basic check.  For a more comprehensive "
+"check, run reiserfsck --check."
+msgstr ""
+"Ext2-filsystemet gjekk gjennom ein enkel sjekk.  For ein meir grundig sjekk, "
+"bruk programmet e2fsck."
+
+#: libparted/fs/reiserfs/reiserfs.c:474
+#, fuzzy
+msgid "Sorry, can't move the start of reiserfs partitions yet."
+msgstr "Beklagar, kan ikkje flytta starten på ein ext2-partisjon enno!"
+
+#: libparted/fs/reiserfs/reiserfs.c:490
+msgid "Couldn't reopen device abstraction layer for read/write."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:508 libparted/fs/ext2/ext2_resize.c:552
+#: libparted/fs/hfs/hfs.c:250 libparted/fs/hfs/hfs.c:629
+msgid "shrinking"
+msgstr "krympar"
+
+#: libparted/fs/reiserfs/reiserfs.c:520
+#, fuzzy
+msgid "expanding"
+msgstr "Åtvaring"
+
+#: libparted/fs/reiserfs/reiserfs.c:592
+msgid "Couldn't create reiserfs device abstraction handler."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:606
+#, fuzzy, c-format
+msgid "Device is too small for %lu blocks."
+msgstr "Filsystemet er for lite for ext2."
+
+#: libparted/fs/reiserfs/reiserfs.c:615
+msgid "copying"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:682
+#, c-format
+msgid "Couldn't resolve symbol %s.  Error: %s."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:704
+msgid "GNU Parted found an invalid libreiserfs library."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:715
+#, c-format
+msgid ""
+"GNU Parted has detected libreiserfs interface version mismatch.  Found %d-%"
+"d, required %d. ReiserFS support will be disabled."
+msgstr ""
+
+#: libparted/labels/aix.c:137
+#, fuzzy
+msgid "Support for reading AIX disk labels is is not implemented yet."
+msgstr "Støtte for å laga %s-filsystem er ikkje lagt inn enno."
+
+#: libparted/labels/aix.c:148
+#, fuzzy
+msgid "Support for writing AIX disk labels is is not implemented yet."
+msgstr "Støtte for å laga %s-filsystem er ikkje lagt inn enno."
+
+#: libparted/labels/aix.c:161
+#, fuzzy
+msgid ""
+"Support for adding partitions to AIX disk labels is not implemented yet."
+msgstr "Støtte for å laga %s-filsystem er ikkje lagt inn enno."
+
+#: libparted/labels/aix.c:171
+#, fuzzy
+msgid ""
+"Support for duplicating partitions in AIX disk labels is not implemented yet."
+msgstr "Støtte for å laga %s-filsystem er ikkje lagt inn enno."
+
+#: libparted/labels/aix.c:189
+#, fuzzy
+msgid ""
+"Support for setting system type of partitions in AIX disk labels is not "
+"implemented yet."
+msgstr "Støtte for å laga %s-filsystem er ikkje lagt inn enno."
+
+#: libparted/labels/aix.c:199
+#, fuzzy
+msgid "Support for setting flags in AIX disk labels is not implemented yet."
+msgstr "Støtte for å laga %s-filsystem er ikkje lagt inn enno."
+
+#: libparted/labels/bsd.c:501 libparted/labels/dasd.c:755
+#: libparted/labels/dos.c:1974 libparted/labels/dvh.c:770
+#: libparted/labels/gpt.c:1448 libparted/labels/loop.c:248
+#: libparted/labels/mac.c:1408 libparted/labels/pc98.c:759
+#: libparted/labels/rdb.c:1041 libparted/labels/sun.c:705
+msgid "Unable to satisfy all constraints on the partition."
+msgstr "Kunne ikkje oppfylla alle dei tekniske krava til partisjonen."
+
+#: libparted/labels/bsd.c:526
+#, fuzzy
+msgid "Unable to allocate a bsd disklabel slot."
+msgstr "Kunne ikkje tilordna plass i BSD-disklabel."
+
+#: libparted/labels/dasd.c:166
+#, fuzzy
+msgid "Unable to determine the block size of this dasd"
+msgstr "Klarte ikkje å finna storleiken til %s (%s)"
+
+#: libparted/labels/dasd.c:781
+#, fuzzy
+msgid "Unable to allocate a dasd disklabel slot"
+msgstr "Kunne ikkje tilordna plass i BSD-disklabel."
+
+#: libparted/labels/dos.c:827
+#, fuzzy, c-format
+msgid "Invalid partition table on %s -- wrong signature %x."
+msgstr "Ugyldig partisjonstabell på %s - feil signatur %x"
+
+#: libparted/labels/dos.c:855
+#, c-format
+msgid "Invalid partition table - recursive partition on %s."
+msgstr "Ugyldig partisjonstabell - rekursiv partisjon på %s."
+
+#: libparted/labels/dos.c:1318
+msgid "Extended partitions cannot be hidden on msdos disk labels."
+msgstr ""
+
+#: libparted/labels/dos.c:1958
+msgid "Parted can't resize partitions managed by Windows Dynamic Disk."
+msgstr ""
+
+# checkit
+#: libparted/labels/dvh.c:190
+#, fuzzy, c-format
+msgid "%s has no extended partition (volume header partition)."
+msgstr ""
+"%s har ingen utvidingspartisjon (volume header-partisjon).  Om du overser "
+"denne meldinga, vil eventuelle bootvolum verta sletta."
+
+#: libparted/labels/dvh.c:313
+msgid "Checksum is wrong, indicating the partition table is corrupt."
+msgstr "Sjekksummen er feil, og det tyder på at partisjonstabellen er korrupt."
+
+#: libparted/labels/dvh.c:616
+msgid "Only primary partitions can be root partitions."
+msgstr "Berre primærpartisjonar kan vera rotpartisjonar."
+
+#: libparted/labels/dvh.c:630
+msgid "Only primary partitions can be swap partitions."
+msgstr "Berre primærpartisjonar kan vera swap-partisjonar."
+
+# checkit
+#: libparted/labels/dvh.c:644
+msgid "Only logical partitions can be a boot file."
+msgstr "Berre logiske partisjonar kan vera ei bootfil."
+
+# checkit
+#: libparted/labels/dvh.c:721
+msgid "Only logical partitions (boot files) have a name."
+msgstr "Berre logiske partisjonar (bootfiler) kan ha namn."
+
+#: libparted/labels/dvh.c:812
+msgid "Too many primary partitions"
+msgstr "For mange primærpartisjonar"
+
+#: libparted/labels/fdasd.c:103
+#, c-format
+msgid ""
+"%s open error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:107
+#, c-format
+msgid ""
+"%s seek error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:110
+#, c-format
+msgid ""
+"%s read error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:113
+#, fuzzy, c-format
+msgid ""
+"%s write error\n"
+"%s\n"
+msgstr "%s under skriving til %s"
+
+#: libparted/labels/fdasd.c:116
+#, c-format
+msgid ""
+"%s IOCTL error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:119
+#, c-format
+msgid ""
+"%s API version mismatch\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:122
+#, c-format
+msgid ""
+"%s Unsupported disk type\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:126
+#, c-format
+msgid ""
+"%s Unsupported disk format\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:130
+#, fuzzy, c-format
+msgid ""
+"%s Disk in use\n"
+"%s\n"
+msgstr "%s  %s  %s"
+
+#: libparted/labels/fdasd.c:133
+#, c-format
+msgid ""
+"%s Config file syntax error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:137
+#, c-format
+msgid ""
+"%s Volume label is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:141
+#, c-format
+msgid ""
+"%s a data set name is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:145
+#, c-format
+msgid ""
+"%s space allocation\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:149
+#, c-format
+msgid ""
+"%s device verification failed\n"
+"The specified device is not a valid DASD device\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:154
+#, c-format
+msgid ""
+"%s Fatal error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/gpt.c:454
+#, fuzzy, c-format
+msgid ""
+"%s contains GPT signatures, indicating that it has a GPT table.  However, it "
+"does not have a valid fake msdos partition table, as it should.  Perhaps it "
+"was corrupted -- possibly by a program that doesn't understand GPT partition "
+"tables.  Or perhaps you deleted the GPT table, and are now using an msdos "
+"partition table.  Is this a GPT partition table?"
+msgstr ""
+"%s inneheld GPT-signaturar, som tyder på at han har ein GPT-tabell.  Men han "
+"har ikkje ein gyldig falsk MSDOS-partisjonstabell slik han skulle.  Kanskje "
+"vart han øydelagt, t.d. av eit program som ikkje forstår GPT-"
+"partisjonstabellar.  Eller kanskje du har sletta GPT-tabellen og brukar no "
+"ein MSDOS-partisjonstabell.  Er dette ein GPT-partisjonstabell?"
+
+#: libparted/labels/gpt.c:648
+#, c-format
+msgid ""
+"The format of the GPT partition table is version %x, which is newer than "
+"what Parted can recognise.  Please tell us!  bug-parted@gnu.org"
+msgstr ""
+"Formatet til GPT-partisjonstabellen er versjon %x, som er nyare enn det "
+"Parted kan kjenna att.  Ver venleg å seia i frå med ein epost til <bug-"
+"parted@gnu.org> (skriv helst på engelsk)"
+
+#: libparted/labels/gpt.c:698
+#, c-format
+msgid ""
+"Not all of the space available to %s appears to be used, you can fix the GPT "
+"to use all of the space (an extra %llu blocks) or continue with the current "
+"setting? "
+msgstr ""
+
+#: libparted/labels/gpt.c:827
+msgid ""
+"The backup GPT table is not at the end of the disk, as it should be.  This "
+"might mean that another operating system believes the disk is smaller.  Fix, "
+"by moving the backup to the end (and removing the old backup)?"
+msgstr ""
+"Sikringskopien av GPT-tabellen er ikkje sist på disken slik han skal vera.  "
+"Dette kan tyda at eit anna operativsystem trur at disken er mindre.  Skal "
+"dette rettast ved å flytta kopien til slutten av disken (og sletta den gamle "
+"kopien)?"
+
+#: libparted/labels/gpt.c:862
+#, fuzzy
+msgid ""
+"The primary GPT table is corrupt, but the backup appears OK, so that will be "
+"used."
+msgstr ""
+"GPT-tabellen er korrupt, men sikringskopien ser frisk ut, så kopien vert "
+"brukt."
+
+#: libparted/labels/gpt.c:870
+#, fuzzy
+msgid ""
+"Both the primary and backup GPT tables are corrupt.  Try making a fresh "
+"table, and using Parted's rescue feature to recover partitions."
+msgstr ""
+"Både originalen og kopien av GPT-tabellen er korrupt.  Prøv å laga ein ny "
+"tom tabell, og bruk Parteds redningsmodus til å finna partisjonane."
+
+#: libparted/labels/mac.c:181
+#, c-format
+msgid "Invalid signature %x for Mac disk labels."
+msgstr "Ugyldig signatur %x for ein Mac-disklabel."
+
+#: libparted/labels/mac.c:226
+msgid "Partition map has no partition map entry!"
+msgstr "Partisjonskartet inneheld ingen oppføringar!"
+
+#: libparted/labels/mac.c:273
+#, c-format
+msgid "%s is too small for a Mac disk label!"
+msgstr "%s er for liten for ein Mac-disklabel!"
+
+#: libparted/labels/mac.c:532
+#, c-format
+msgid "Partition %d has an invalid signature %x."
+msgstr "Partisjon %d har ein ugyldig signatur %x."
+
+#: libparted/labels/mac.c:550
+#, c-format
+msgid "Partition %d has an invalid length of 0 bytes!"
+msgstr "Partisjon %d har ei ugyldig lengde på 0 oktettar!"
+
+#: libparted/labels/mac.c:580
+#, fuzzy
+msgid "The data region doesn't start at the start of the partition."
+msgstr "Dataregionen startar ikkje på starten av partisjonen"
+
+#: libparted/labels/mac.c:597
+#, fuzzy
+msgid "The boot region doesn't start at the start of the partition."
+msgstr "Bootregionen startar ikkje på starten av partisjonen"
+
+#: libparted/labels/mac.c:611
+msgid "The partition's boot region doesn't occupy the entire partition."
+msgstr "Bootregionen fyller ikkje heile partisjonen."
+
+#: libparted/labels/mac.c:622
+msgid "The partition's data region doesn't occupy the entire partition."
+msgstr "Dataregionen fyller ikkje heile partisjonen."
+
+#: libparted/labels/mac.c:675
+#, c-format
+msgid ""
+"Weird block size on device descriptor: %d bytes is not divisible by 512."
+msgstr ""
+"Merkeleg blokkstorleik på einingsdeskriptor: %d oktettar er ikkje deleleg på "
+"512."
+
+#: libparted/labels/mac.c:688
+#, c-format
+msgid ""
+"The driver descriptor says the physical block size is %d bytes, but Linux "
+"says it is %d bytes."
+msgstr ""
+"Drivardeskriptoren seier at den fysiske blokkstorleiken er %d oktettar, men "
+"Linux seier at han er %d oktettar."
+
+#: libparted/labels/mac.c:736
+msgid "No valid partition map found."
+msgstr "Fann ikkje noko gyldig partisjonskart."
+
+#: libparted/labels/mac.c:795
+#, fuzzy, c-format
+msgid ""
+"Conflicting partition map entry sizes!  Entry 1 says it is %d, but entry %d "
+"says it is %d!"
+msgstr ""
+"Motstridande storleikar i partisjonskartet!  Oppføring 1 seier at han er %d, "
+"men oppføring %d seier at han er %d!"
+
+#: libparted/labels/mac.c:822
+#, fuzzy
+msgid "Weird!  There are 2 partitions map entries!"
+msgstr "Merkeleg - to partisjonskartoppføringar!"
+
+#: libparted/labels/mac.c:1347
+msgid ""
+"Changing the name of a root or swap partition will prevent Linux from "
+"recognising it as such."
+msgstr ""
+"Endrar du namnet på ein rot- eller swap-partisjon, vil ikkje Linux lenger "
+"kjenna han igjen."
+
+#: libparted/labels/mac.c:1443
+#, fuzzy
+msgid "Can't add another partition -- the partition map is too small!"
+msgstr "Kan ikkje leggja til ein partisjon til - partisjonskartet er for lite!"
+
+#: libparted/labels/pc98.c:354
+#, fuzzy, c-format
+msgid "Invalid partition table on %s."
+msgstr "Ugyldig partisjonstabell på %s"
+
+#: libparted/labels/pc98.c:406 libparted/labels/pc98.c:484
+#, fuzzy, c-format
+msgid ""
+"Partition %d isn't aligned to cylinder boundaries.  This is still "
+"unsupported."
+msgstr ""
+"Partisjon %d ligg ikkje nøyaktig på grensa mellom to sylinderar.  Det "
+"manglar støtte for dette."
+
+#: libparted/labels/pc98.c:791
+msgid "Can't add another partition."
+msgstr "Kan ikkje leggja til ein partisjon til."
+
+#: libparted/labels/rdb.c:162
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:497
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen."
+msgstr ""
+
+#: libparted/labels/rdb.c:581
+#, c-format
+msgid "%s : Loop detected at block %d."
+msgstr ""
+
+#: libparted/labels/rdb.c:600
+#, c-format
+msgid "%s : The %s list seems bad at block %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:689
+#, c-format
+msgid "%s : Failed to list bad blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:697
+#, c-format
+msgid "%s : Failed to list partition blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:705
+#, c-format
+msgid "%s : Failed to list file system blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:713
+#, c-format
+msgid "%s : Failed to list boot blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:740
+#, c-format
+msgid "Failed to write partition block at %d."
+msgstr ""
+
+#: libparted/labels/rdb.c:1069
+#, fuzzy
+msgid "Unable to allocate a partition number."
+msgstr "Forventa eit partisjonsnummer."
+
+#: libparted/labels/sun.c:145
+msgid "Corrupted Sun disk label detected."
+msgstr "Øydelagd Sun-disklabel funne."
+
+#: libparted/labels/sun.c:266
+#, fuzzy, c-format
+msgid ""
+"The disk CHS geometry (%d,%d,%d) reported by the operating system does not "
+"match the geometry stored on the disk label (%d,%d,%d)."
+msgstr ""
+"Geometrien til disken (C=%d,H=%d,S=%d) stemmer ikkje med geometrien i "
+"disklabelen (C=%d,H=%d,S=%d)."
+
+#: libparted/labels/sun.c:288
+#, c-format
+msgid "The disk label describes a disk bigger than %s."
+msgstr "Disklabelen skildrar ein disk større enn %s."
+
+#: libparted/labels/sun.c:442
+#, c-format
+msgid "The disk has %d cylinders, which is greater than the maximum of 65536."
+msgstr ""
+
+#: libparted/labels/sun.c:737
+msgid ""
+"The Whole Disk partition is the only available one left.  Generally, it is "
+"not a good idea to overwrite this partition with a real one.  Solaris may "
+"not be able to boot without it, and SILO (the sparc boot loader) appreciates "
+"it as well."
+msgstr ""
+"Partisjonen som omfattar heile disken er den einaste som er ledig.  Det er "
+"vanlegvis ikkje nokon god idé å bruka dette som ein vanleg partisjon.  "
+"Solaris klarer kanskje ikkje å starta utan han, og SILO (boot-lastar for "
+"SPARC) likar det heller ikkje."
+
+#: libparted/labels/sun.c:752
+msgid "Sun disk label is full."
+msgstr "Sun-disklabel er full."
+
+#: libparted/labels/vtoc.c:163
+#, c-format
+msgid ""
+"%s opening device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:167
+#, c-format
+msgid ""
+"%s seeking device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:171
+#, c-format
+msgid ""
+"%s writing to device '%s' failed,\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:175
+#, c-format
+msgid ""
+"%s reading from device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:179
+#, c-format
+msgid "Fatal error\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:418
+msgid "Could not read VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:424
+msgid "Could not read VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:431
+msgid "Could not read VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:438
+msgid "Could not read VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:445
+msgid "Could not read VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:462
+msgid "Could not write VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:468
+msgid "Could not write VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:475
+msgid "Could not write VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:482
+msgid "Could not write VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:489
+msgid "Could not write VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/libparted.c:296 libparted/libparted.c:316
+msgid "Out of memory."
+msgstr "Tom for minne."
+
+#: libparted/unit.c:139
+msgid "Cannot get unit size for special unit 'COMPACT'."
+msgstr ""
+
+#: libparted/unit.c:386
+#, c-format
+msgid "\"%s\" has invalid syntax for locations."
+msgstr ""
+
+#: libparted/unit.c:394
+#, c-format
+msgid "The maximum head value is %d."
+msgstr ""
+
+#: libparted/unit.c:401
+#, c-format
+msgid "The maximum sector value is %d."
+msgstr ""
+
+#: libparted/unit.c:413 libparted/unit.c:545
+#, c-format
+msgid "The location %s is outside of the device %s."
+msgstr ""
+
+#: libparted/unit.c:527
+msgid "Invalid number."
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:63 libparted/fs/amiga/apfs.c:56
+#: libparted/fs/amiga/asfs.c:70
+#, fuzzy, c-format
+msgid "%s : Failed to allocate partition block\n"
+msgstr "Forventa eit partisjonsnummer."
+
+#: libparted/fs/amiga/affs.c:78 libparted/fs/amiga/apfs.c:70
+#: libparted/fs/amiga/asfs.c:86
+#, c-format
+msgid "%s : Failed to allocate block\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:83 libparted/fs/amiga/apfs.c:75
+#, c-format
+msgid "%s : Couldn't read boot block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:99 libparted/fs/amiga/apfs.c:86
+#: libparted/fs/amiga/asfs.c:92 libparted/fs/amiga/asfs.c:106
+#, c-format
+msgid "%s : Couldn't read root block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:72
+#, c-format
+msgid "%s : Failed to allocate id list element\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:189
+#, c-format
+msgid "%s : Couldn't read block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:202
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:212
+#, fuzzy, c-format
+msgid "%s : Couldn't write block %d\n"
+msgstr "%s under skriving til %s"
+
+#: libparted/fs/amiga/amiga.c:278
+#, c-format
+msgid "%s : Failed to allocate disk_specific rdb block\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:289
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:318
+#, c-format
+msgid "%s : Failed to read partition block %llu\n"
+msgstr ""
+
+#: libparted/fs/ext2/ext2.c:87 libparted/fs/ext2/ext2.c:112
+msgid "Inconsistent group descriptors!"
+msgstr "Inkonsistente gruppe-deskriptorar"
+
+#: libparted/fs/ext2/ext2.c:91 libparted/fs/ext2/ext2.c:116
+#, fuzzy
+msgid "File system full!"
+msgstr "Filsystemet er fullt!"
+
+#: libparted/fs/ext2/ext2.c:686
+#, fuzzy
+msgid "Invalid superblock.  Are you sure this is an ext2 file system?"
+msgstr "Ugyldig superblokk.  Er du sikker på at dette er eit ext2-filsystem?"
+
+#: libparted/fs/ext2/ext2.c:700 libparted/fs/ext2/ext2_resize.c:658
+#, fuzzy
+msgid "File system has errors!  You should run e2fsck."
+msgstr "Der er feil på filsystemet!  Køyr e2fsck først."
+
+#: libparted/fs/ext2/ext2.c:711
+#, fuzzy
+msgid ""
+"File system was not cleanly unmounted!  You should run e2fsck.  Modifying an "
+"unclean file system could cause severe corruption."
+msgstr ""
+"Filsystemet vart ikkje avmontert på ein rein og pen måte.  Du må køyra "
+"e2fsck.  Å gjera endringar på eit ureint filsystem kan føre til alvorleg "
+"datatap."
+
+#: libparted/fs/ext2/ext2.c:731
+#, fuzzy
+msgid "File system has an incompatible feature enabled."
+msgstr "Filsystemet brukar finessar GNU parted ikkje støttar"
+
+#: libparted/fs/ext2/ext2.c:742
+msgid "Error allocating buffer cache."
+msgstr "Kunne ikkje allokera buffercache."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:114
+#, fuzzy
+msgid ""
+"Found an inode with a incorrect link count.  Better go run e2fsck first!"
+msgstr "Fann ein inode med feil tal på lenkar.  Du bør køyra e2fsck først."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:487
+msgid "Not enough free inodes!"
+msgstr "For få ledige inodar!"
+
+#: libparted/fs/ext2/ext2_resize.c:223
+#, fuzzy
+msgid "File system is too full to remove a group!"
+msgstr "Filsystemet er for fullt til å sletta ei gruppe!"
+
+#: libparted/fs/ext2/ext2_resize.c:232
+#, fuzzy
+msgid "File system has too many allocated inodes to remove a group!"
+msgstr "Filsystemet har for mange inodar i bruk til å sletta ei gruppe!"
+
+#: libparted/fs/ext2/ext2_resize.c:491
+msgid "adding groups"
+msgstr "legg til grupper"
+
+#: libparted/fs/ext2/ext2_resize.c:528
+#, fuzzy, c-format
+msgid "Your file system is too full to resize it to %i blocks.  Sorry."
+msgstr ""
+"Filsystemet er for fullt til at ein kan endra storleiken til %i blokker.  "
+"Beklagar."
+
+#: libparted/fs/ext2/ext2_resize.c:538
+#, fuzzy, c-format
+msgid ""
+"Your file system has too many occupied inodes to resize it to %i blocks.  "
+"Sorry."
+msgstr ""
+"Filsystemet har for mange inodar i bruk til at ein kan endra storleiken til %"
+"i blokker.  Beklagar."
+
+#: libparted/fs/ext2/ext2_resize.c:666
+#, fuzzy
+msgid "File system was not cleanly unmounted!  You should run e2fsck."
+msgstr ""
+"Filsystemet vart ikkje avmontert på ein rein og pen måte.  Du må køyra "
+"e2fsck."
+
+#: libparted/fs/ext2/ext2_resize.c:675
+msgid ""
+"The file system has the 'dir_index' feature enabled.  Parted can only resize "
+"the file system if it disables this feature.  You can enable it later by "
+"running 'tune2fs -O dir_index DEVICE' and then 'e2fsck -fD DEVICE'."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:691
+msgid ""
+"A resize operation on this file system will use EXPERIMENTAL code\n"
+"that MAY CORRUPT it (although no one has reported any such damage yet).\n"
+"You should at least backup your data first, and run 'e2fsck -f' afterwards."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_block_relocator.c:198
+#, fuzzy
+msgid "Cross-linked blocks found!  Better go run e2fsck first!"
+msgstr "Krysslenka blokker funne!  Køyr e2fsck først!"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:537
+#, fuzzy, c-format
+msgid "Block %i has no reference?  Weird."
+msgstr "Blokk %i har ingen referansar til seg?  Rart"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:737
+#, fuzzy, c-format
+msgid "Block %i shouldn't have been marked (%d, %d)!"
+msgstr "Blokk %i burde ikkje ha vore merka!"
+
+#: libparted/fs/ext2/interface.c:186
+#, fuzzy
+msgid ""
+"The ext2 file system passed a basic check.  For a more comprehensive check, "
+"use the e2fsck program."
+msgstr ""
+"Ext2-filsystemet gjekk gjennom ein enkel sjekk.  For ein meir grundig sjekk, "
+"bruk programmet e2fsck."
+
+#: libparted/fs/ext2/interface.c:203
+msgid "Sorry, can't move the start of ext2 partitions yet!"
+msgstr "Beklagar, kan ikkje flytta starten på ein ext2-partisjon enno!"
+
+#: libparted/fs/ext2/ext2_buffer.c:82
+msgid "Couldn't flush buffer cache!"
+msgstr "Kunne ikkje lagra buffercache til disk!"
+
+#: libparted/fs/ext2/ext2_mkfs.c:162
+msgid "writing per-group metadata"
+msgstr "skriv per-gruppe metadata"
+
+#: libparted/fs/ext2/ext2_mkfs.c:564
+msgid "File system too small for ext2."
+msgstr "Filsystemet er for lite for ext2."
+
+#: libparted/fs/fat/calc.c:135
+#, fuzzy, c-format
+msgid ""
+"You need %s of free disk space to shrink this partition to this size.  "
+"Currently, only %s is free."
+msgstr ""
+"Du treng %d MiB med ledig diskplass for å krympa partisjonen til denne "
+"storleiken (du har for tida berre %d MiB ledig)"
+
+#: libparted/fs/fat/context.c:56
+#, c-format
+msgid ""
+"Cluster start delta = %d, which is not a multiple of the cluster size %d."
+msgstr ""
+"Allokeringseininga sitt startdelta er %d, og det er ikkje eit multiplum av "
+"storleiken %d."
+
+#: libparted/fs/fat/fat.c:308
+#, fuzzy, c-format
+msgid "Partition too big/small for a %s file system."
+msgstr "Partisjonen er for liten eller stor for eit %s-filsystem"
+
+#: libparted/fs/fat/fat.c:474
+msgid ""
+"The FATs don't match.  If you don't know what this means, then select "
+"cancel, run scandisk on the file system, and then come back."
+msgstr ""
+"FAT-ane stemmer ikkje overeins.  Viss du ikkje veit kva dette tyder, vel "
+"avbryt, køyr scandisk på filsystem, og kom attende."
+
+#: libparted/fs/fat/fat.c:514
+msgid "There are no possible configurations for this FAT type."
+msgstr "Der er ingen moglege konfigurasjonar for denne FAT-typen."
+
+#: libparted/fs/fat/fat.c:526
+#, c-format
+msgid ""
+"File system doesn't have expected sizes for Windows to like it.  Cluster "
+"size is %dk (%dk expected); number of clusters is %d (%d expected); size of "
+"FATs is %d sectors (%d expected)."
+msgstr ""
+"Filsystemet har ikkje parametrar som Windows vil like.  Allokeringseininga "
+"er %d KiB (%d KiB er forventa), talet på allokeringseiningar er %d (%d er "
+"forventa), FAT-ane er på %d sektorar (%d er forventa)."
+
+#: libparted/fs/fat/fat.c:549
+#, c-format
+msgid ""
+"File system is reporting the free space as %d clusters, not %d clusters."
+msgstr ""
+"Filsystemet rapporterer %d allokeringseiningar med ledig plass, ikkje %d."
+
+#: libparted/fs/fat/fat.c:874
+#, fuzzy
+msgid ""
+"GNU Parted was miscompiled: the FAT boot sector should be 512 bytes.  FAT "
+"support will be disabled."
+msgstr ""
+"GNU parted er feilkompilert:  ein bootsektor i FAT skal vera 512 oktettar.  "
+"FAT-støtte er no skrudd av."
+
+#: libparted/fs/fat/resize.c:159
+#, fuzzy
+msgid ""
+"There's not enough room in the root directory for all of the files.  Either "
+"cancel, or ignore to lose the files."
+msgstr ""
+"Der er ikkje plass i toppkatalogen til alle filene.  Vel anten avbryt, eller "
+"oversjå feilen for å misse alle filene."
+
+#: libparted/fs/fat/resize.c:300
+msgid "Error writing to the root directory."
+msgstr "Feil ved skriving til toppkatalogen."
+
+#: libparted/fs/fat/resize.c:489
+#, fuzzy
+msgid "If you leave your file system as FAT16, then you will have no problems."
+msgstr "Viss du let filsystemet vera FAT16, vil du ikkje ha nokon problem."
+
+#: libparted/fs/fat/resize.c:492
+msgid ""
+"If you convert to FAT16, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual)."
+msgstr ""
+"Viss du konverterer til FAT16 og MS Windows er installert på denne "
+"partisjonen, må du leggja inn boot-lastaren til MS Windows på nytt.  Dersom "
+"du vil gjera dette, bør du lesa Parted-manualen (eller manualen som høyrer "
+"til distribusjonen din)."
+
+#: libparted/fs/fat/resize.c:500
+msgid ""
+"If you leave your file system as FAT32, then you will not introduce any new "
+"problems."
+msgstr "Viss du let filsystemet vera FAT32, vil du ikkje få nokon nye problem."
+
+#: libparted/fs/fat/resize.c:504
+msgid ""
+"If you convert to FAT32, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual).  Also, "
+"converting to FAT32 will make the file system unreadable by MS DOS, MS "
+"Windows 95a, and MS Windows NT."
+msgstr ""
+"Viss du konverterer til FAT32, og MS Windows er installert på denne "
+"partisjonen, må du leggja inn boot-lastaren til MS Windows på nytt.  Dersom "
+"du vil gjera dette, bør du lesa Parted-manualen (eller manualen som høyrer "
+"til distribusjonen din).  FAT32 er også uleseleg for MS-DOS, MS Windows 95a "
+"og NT."
+
+#: libparted/fs/fat/resize.c:518
+#, c-format
+msgid "%s  %s  %s"
+msgstr "%s  %s  %s"
+
+#: libparted/fs/fat/resize.c:519
+msgid "Would you like to use FAT32?"
+msgstr "Ønskjer du å bruka FAT32?"
+
+#: libparted/fs/fat/resize.c:550 libparted/fs/fat/resize.c:566
+#, c-format
+msgid "%s  %s"
+msgstr "%s  %s"
+
+#: libparted/fs/fat/resize.c:551
+msgid ""
+"The file system can only be resized to this size by converting to FAT16."
+msgstr "Filsystemet kan kun få denne storleiken ved å konvertera til FAT16."
+
+#: libparted/fs/fat/resize.c:567
+msgid ""
+"The file system can only be resized to this size by converting to FAT32."
+msgstr "Filsystemet kan kun få denne storleiken ved å konvertera til FAT32."
+
+#: libparted/fs/fat/resize.c:580
+#, fuzzy
+msgid ""
+"GNU Parted cannot resize this partition to this size.  We're working on it!"
+msgstr ""
+"GNU Parted kan ikkje endra storleiken til dette.  Vi arbeider med saka!"
+
+#: libparted/fs/fat/bootsector.c:49 libparted/fs/fat/bootsector.c:56
+msgid "File system has an invalid signature for a FAT file system."
+msgstr "Filsystemet har ein ugyldig signatur til å vera eit FAT-filsystem."
+
+#: libparted/fs/fat/bootsector.c:64
+msgid "File system has an invalid sector size for a FAT file system."
+msgstr ""
+"Filsystemet har ein ugyldig sektorstorleik til å vera eit FAT-filsystem."
+
+#: libparted/fs/fat/bootsector.c:71
+msgid "File system has an invalid cluster size for a FAT file system."
+msgstr ""
+"Filsystemet har ein storleik på allokeringseininga som er ugyldig for FAT-"
+"filsystem."
+
+#: libparted/fs/fat/bootsector.c:78
+#, fuzzy
+msgid ""
+"File system has an invalid number of reserved sectors for a FAT file system."
+msgstr ""
+"Filsystemet har eit ugyldig tal på reserverte sektorar til å vera eit FAT-"
+"filsystem"
+
+#: libparted/fs/fat/bootsector.c:85
+#, fuzzy
+msgid "File system has an invalid number of FATs."
+msgstr "Filsystemet har eit ugyldig tal på FAT-ar."
+
+#: libparted/fs/fat/bootsector.c:139
+#, c-format
+msgid ""
+"This file system has a logical sector size of %d.  GNU Parted is known not "
+"to work properly with sector sizes other than 512 bytes."
+msgstr ""
+"Dette filsystemet har ein logisk sektorstorleik på %d.  GNU Parted fungerer "
+"berre skikkeleg når sektorstorleiken er 512 oktettar."
+
+#: libparted/fs/fat/bootsector.c:164
+#, c-format
+msgid ""
+"The file system's CHS geometry is (%d, %d, %d), which is invalid.  The "
+"partition table's CHS geometry is (%d, %d, %d).  If you select Ignore, the "
+"file system's CHS geometry will be left unchanged.  If you select Fix, the "
+"file system's CHS geometry will be set to match the partition table's CHS "
+"geometry."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:213
+msgid "FAT boot sector says logical sector size is 0.  This is weird. "
+msgstr ""
+"Bootsektoren i FAT seier at logisk sektorstorleik er 0.  Det var rart. "
+
+#: libparted/fs/fat/bootsector.c:219
+msgid "FAT boot sector says there are no FAT tables.  This is weird. "
+msgstr ""
+"Bootsektoren i FAT seier at der ikkje er nokon FAT-tabellar.  Det var rart. "
+
+#: libparted/fs/fat/bootsector.c:225
+msgid "FAT boot sector says clusters are 0 sectors.  This is weird. "
+msgstr ""
+"Bootsektoren i FAT seier at allokeringseininga er 0 sektorar.  Det var rart. "
+
+#: libparted/fs/fat/bootsector.c:235
+#, fuzzy
+msgid "File system is FAT12, which is unsupported."
+msgstr "Filsystemet er FAT12, som er ustøtta."
+
+#: libparted/fs/fat/bootsector.c:411
+#, c-format
+msgid ""
+"The information sector has the wrong signature (%x).  Select cancel for now, "
+"and send in a bug report.  If you're desperate, it's probably safe to ignore."
+msgstr ""
+"Informasjonssektoren har feil signatur (%x).  Vel avbryt, og send inn ein "
+"feilrapport.  Viss du er desperat, er det sannsynlegvis trygt å oversjå "
+"denne feilen."
+
+#: libparted/fs/fat/count.c:152
+#, c-format
+msgid "Bad directory entry for %s: first cluster is the end of file marker."
+msgstr ""
+"Feil i katalogoppføringa for %s: første allokeringseininga markerer slutt på "
+"fila."
+
+#: libparted/fs/fat/count.c:165
+#, c-format
+msgid ""
+"Bad FAT: unterminated chain for %s.  You should run dosfsck or scandisk."
+msgstr ""
+"Feil på FAT: endelaus kjede for %s.  Du bør køyre dosfsck eller scandisk."
+
+#: libparted/fs/fat/count.c:174
+#, fuzzy, c-format
+msgid ""
+"Bad FAT: cluster %d outside file system in chain for %s.  You should run "
+"dosfsck or scandisk."
+msgstr ""
+"Feil på FAT: allokeringseining %d er utanfor filsystemet i kjeda for %s.  Du "
+"bør køyra dosfsck eller scandisk."
+
+#: libparted/fs/fat/count.c:184
+#, c-format
+msgid ""
+"Bad FAT: cluster %d is cross-linked for %s.  You should run dosfsck or "
+"scandisk."
+msgstr ""
+"Feil på FAT: allokeringseining %d er krysslenka for %s.  Du bør køyre "
+"dosfsck eller scandisk."
+
+#: libparted/fs/fat/count.c:203
+#, c-format
+msgid "%s is %dk, but it has %d clusters (%dk)."
+msgstr "%s er %d KiB, men har %d allokeringseiningar (%d KiB)."
+
+#: libparted/fs/fat/count.c:266
+#, c-format
+msgid ""
+"The file %s is marked as a system file.  This means moving it could cause "
+"some programs to stop working."
+msgstr ""
+"Fila %s er klassifisert som ei systemfil.  Å flytta denne fila kan føra til "
+"at nokon program sluttar å fungera."
+
+#: libparted/fs/fat/table.c:137
+#, c-format
+msgid ""
+"FAT %d media %x doesn't match the boot sector's media %x.  You should "
+"probably run scandisk."
+msgstr ""
+"FAT %d media %x stemmer ikkje overeins med bootsektorens media %x.  Du bør "
+"sannsynlegvis køyra scandisk."
+
+#: libparted/fs/fat/table.c:269
+#, fuzzy, c-format
+msgid "fat_table_set: cluster %ld outside file system"
+msgstr "fat_table_set: allokeringseining %ld utanfor filsystemet"
+
+#: libparted/fs/fat/table.c:301
+#, fuzzy, c-format
+msgid "fat_table_get: cluster %ld outside file system"
+msgstr "fat_table_get: allokeringseining %ld utanfor filsystemet"
+
+#: libparted/fs/fat/table.c:343
+msgid "fat_table_alloc_cluster: no free clusters"
+msgstr "fat_table_alloc_cluster: ingen ledige allokeringseiningar"
+
+#: libparted/fs/linux_swap/linux_swap.c:275
+#, fuzzy, c-format
+msgid "Unrecognised old style linux swap signature '%10s'."
+msgstr "Ukjent swap-signatur for Linux '%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:318
+#, fuzzy, c-format
+msgid "Unrecognised new style linux swap signature '%10s'."
+msgstr "Ukjent swap-signatur for Linux '%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:358
+#, fuzzy, c-format
+msgid "Unrecognised swsusp linux swap signature '%9s'."
+msgstr "Ukjent swap-signatur for Linux '%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:434
+msgid "Too many bad pages."
+msgstr "For mange dårlege sider."
+
+#: libparted/fs/hfs/advfs.c:121 libparted/fs/hfs/advfs_plus.c:122
+#: libparted/fs/hfs/reloc.c:414 libparted/fs/hfs/reloc.c:508
+#: libparted/fs/hfs/reloc_plus.c:539 libparted/fs/hfs/reloc_plus.c:658
+#: libparted/fs/hfs/reloc_plus.c:772
+msgid "The file system contains errors."
+msgstr ""
+
+#: libparted/fs/hfs/advfs_plus.c:287
+msgid "Bad blocks could not be read."
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:137
+#, c-format
+msgid ""
+"Trying to register an extent starting at block 0x%X, but another one already "
+"exists at this position.  You should check the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:214
+#, c-format
+msgid ""
+"Trying to move an extent from block Ox%X to block Ox%X, but another one "
+"already exists at this position.  This should not happen!"
+msgstr ""
+
+#: libparted/fs/hfs/file.c:143
+#, c-format
+msgid "Could not update the extent cache for HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:180
+#, c-format
+msgid "Trying to read HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:190 libparted/fs/hfs/file.c:220
+#, c-format
+msgid "Could not find sector %lli of HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:210
+#, c-format
+msgid "Trying to write HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:157
+#, c-format
+msgid "Could not update the extent cache for HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:202
+#, c-format
+msgid "Trying to read HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:213 libparted/fs/hfs/file_plus.c:256
+#, c-format
+msgid "Could not find sector %lli of HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:245
+#, c-format
+msgid "Trying to write HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:232
+msgid "Sorry, HFS cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:262 libparted/fs/hfs/hfs.c:641
+msgid "Data relocation has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:281
+msgid "Data relocation left some data in the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:320
+#, fuzzy
+msgid "writing HFS Master Directory Block"
+msgstr "Feil ved skriving til toppkatalogen."
+
+#: libparted/fs/hfs/hfs.c:468
+msgid "No valid HFS[+X] signature has been found while opening."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:478
+#, c-format
+msgid "Version %d of HFS+ isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:489
+#, c-format
+msgid "Version %d of HFSX isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:672
+msgid "Data relocation left some data at the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:720
+#, fuzzy
+msgid "Error while writing the allocation file."
+msgstr "Feil ved skriving til toppkatalogen."
+
+#: libparted/fs/hfs/hfs.c:735
+msgid "Error while writing the compatibility part of the allocation file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:750
+msgid "writing HFS+ Volume Header"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:850
+msgid "An error occurred while looking for the mandatory bad blocks file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:904
+msgid ""
+"It seems there is an error in the HFS wrapper: the bad blocks file doesn't "
+"contain the embedded HFS+ volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:940
+msgid "Sorry, HFS+ cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:975
+msgid "shrinking embedded HFS+ volume"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:991
+msgid "Resizing the HFS+ volume has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:998
+#, fuzzy
+msgid "shrinking HFS wrapper"
+msgstr "krympar"
+
+#: libparted/fs/hfs/hfs.c:1007
+msgid "Updating the HFS wrapper has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:1109 libparted/fs/hfs/hfs.c:1194
+#, c-format
+msgid ""
+"This is not a real %s check.  This is going to extract special low level "
+"files for debugging purposes."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:155
+msgid "Bad block list header checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:168
+#, c-format
+msgid ""
+"Invalid size of a transaction block while replaying the journal (%i bytes)."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:260
+msgid ""
+"Journal stored outside of the volume are not supported.  Try to desactivate "
+"the journal and run Parted again."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:271
+#, fuzzy
+msgid "Journal offset or size is not multiple of the sector size."
+msgstr ""
+"Allokeringseininga sitt startdelta er %d, og det er ikkje eit multiplum av "
+"storleiken %d."
+
+#: libparted/fs/hfs/journal.c:292
+msgid "Incorrect magic values in the journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:302
+msgid "Journal size mismatch between journal info block and journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:314
+#, fuzzy
+msgid "Some header fields are not multiple of the sector size."
+msgstr ""
+"Allokeringseininga sitt startdelta er %d, og det er ikkje eit multiplum av "
+"storleiken %d."
+
+#: libparted/fs/hfs/journal.c:323
+msgid ""
+"The sector size stored in the journal is not 512 bytes.  Parted only "
+"supports 512 bytes length sectors."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:335
+msgid "Bad journal checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:353
+msgid ""
+"The journal is not empty.  Parted must replay the transactions before "
+"opening the file system.  This will modify the file system."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:381
+msgid ""
+"The volume header or the master directory block has changed while replaying "
+"the journal.  You should restart Parted."
+msgstr ""
+
+#: libparted/fs/hfs/probe.c:51
+#, c-format
+msgid ""
+"Parted can't use HFS file systems on disks with a sector size not equal to %"
+"d bytes."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:151 libparted/fs/hfs/reloc_plus.c:155
+msgid "An extent has not been relocated."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:251 libparted/fs/hfs/reloc_plus.c:307
+msgid ""
+"A reference to an extent comes from a place it should not.  You should check "
+"the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:381
+msgid "This HFS volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:475
+msgid "This HFS volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:517 libparted/fs/hfs/reloc_plus.c:668
+msgid ""
+"The extents overflow file should not contain its own extents!  You should "
+"check the file system."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:574 libparted/fs/hfs/reloc_plus.c:847
+#, fuzzy
+msgid "Could not cache the file system in memory."
+msgstr "Kan ikkje kjenna igjen noko filsystem."
+
+#: libparted/fs/hfs/reloc.c:635 libparted/fs/hfs/reloc_plus.c:908
+msgid "Bad blocks list could not be loaded."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:649 libparted/fs/hfs/reloc_plus.c:924
+msgid "An error occurred during extent relocation."
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:495
+msgid "This HFS+ volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:619
+msgid "This HFS+ volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: parted/parted.c:94
+msgid "displays this help message"
+msgstr "vis denne hjelpeteksten"
+
+#: parted/parted.c:95
+msgid "lists partition layout on all block devices"
+msgstr ""
+
+#: parted/parted.c:96
+msgid "displays machine parseable output"
+msgstr ""
+
+#: parted/parted.c:97
+msgid "never prompts for user intervention"
+msgstr "spør aldri brukaren"
+
+#: parted/parted.c:98
+msgid "displays the version"
+msgstr "vis programversjon"
+
+#: parted/parted.c:111
+#, fuzzy
+msgid ""
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"
+msgstr ""
+"NR er partisjonsnummeret brukt av Linux.  På MS-DOS-disklabels, er "
+"primærpartisjonar nummerert 1-4, og logiske partisjonar går frå 5 og "
+"oppover.\n"
+
+#: parted/parted.c:114
+msgid "LABEL-TYPE is one of: "
+msgstr "LABEL-TYPE er ein av: "
+
+#: parted/parted.c:115
+msgid "FLAG is one of: "
+msgstr "FLAGG er eitt av: "
+
+#: parted/parted.c:116
+#, fuzzy
+msgid "UNIT is one of: "
+msgstr "FLAGG er eitt av: "
+
+#: parted/parted.c:117
+msgid "PART-TYPE is one of: primary, logical, extended\n"
+msgstr "PART-TYPE er ein av: primær, logisk, utviding\n"
+
+#: parted/parted.c:119
+msgid "FS-TYPE is one of: "
+msgstr "FS-TYPE er ein av: "
+
+#: parted/parted.c:120
+#, fuzzy
+msgid ""
+"START and END are disk locations, such as 4GB or 10%.  Negative values count "
+"from the end of the disk.  For example, -1s specifies exactly the last "
+"sector.\n"
+msgstr ""
+"START og SLUTT er i mebibytes.  Negative verdiar tel frå slutten av disken.\n"
+
+#: parted/parted.c:123
+msgid "STATE is one of: on, off\n"
+msgstr "STATUS er ein av: av, på\n"
+
+#: parted/parted.c:124
+msgid "DEVICE is usually /dev/hda or /dev/sda\n"
+msgstr "EINING er vanlegvis /dev/hda eller /dev/sda\n"
+
+#: parted/parted.c:125
+msgid "NAME is any word you want\n"
+msgstr "NAMN er eit valfritt ord\n"
+
+#: parted/parted.c:126
+msgid "The partition must have one of the following FS-TYPEs: "
+msgstr ""
+
+#: parted/parted.c:130
+#, fuzzy
+msgid ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+msgstr ""
+"(Fylgjande tekst er ei omsetjing som *kun* vert gjeve på informativ basis.  "
+"For alle juridiske tolkingar gjeld den engelske originalteksten.)\n"
+"\n"
+"Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.\n"
+"Dette programmet er fri programvare, dekt av GNU General Public License.\n"
+"\n"
+"Dette programmet vert distribuert med von om at det vil vera nyttig, men "
+"utan NOKA FORM FOR garanti; ikkje eingong for at produktet er eigna for SAL "
+"eller BRUK TIL NOKO FORMÅL.  Sjå GNU General Public License for detaljar.\n"
+"\n"
+
+#: parted/parted.c:176
+#, c-format
+msgid "%0.f%%\t(time left %.2d:%.2d)"
+msgstr "%0.f%%\t(tid att %.2d:%.2d)"
+
+#: parted/parted.c:195
+#, c-format
+msgid ""
+"Partition %s is being used. You must unmount it before you modify it with "
+"Parted."
+msgstr ""
+
+#: parted/parted.c:211
+#, c-format
+msgid "Partition(s) on %s are being used."
+msgstr "Partisjon(ane) på %s er i bruk."
+
+#: parted/parted.c:223
+msgid ""
+"The existing file system will be destroyed and all data on the partition "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:235
+#, c-format
+msgid ""
+"The existing disk label on %s will be destroyed and all data on this disk "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:458 parted/parted.c:652 parted/parted.c:1044
+#: parted/parted.c:1128 parted/parted.c:1771 parted/parted.c:1852
+#: parted/parted.c:1900
+msgid "Partition number?"
+msgstr "Partisjonsnummer?"
+
+#: parted/parted.c:500
+msgid "Source device?"
+msgstr "Kva eining skal vera kjelda?"
+
+#: parted/parted.c:504
+msgid "Source partition number?"
+msgstr "Kva partisjonsnummer skal vera kjelda?"
+
+#: parted/parted.c:509
+#, fuzzy
+msgid "Can't copy an extended partition."
+msgstr "Kan ikkje kopiera utvidingspartisjonar."
+
+#: parted/parted.c:515
+msgid "Destination partition number?"
+msgstr "Kva partisjonsnummer er målet?"
+
+#: parted/parted.c:615
+msgid "New disk label type?"
+msgstr "Ny disklabel-type?"
+
+#: parted/parted.c:656
+msgid "File system?"
+msgstr "Filsystem?"
+
+#: parted/parted.c:707 parted/parted.c:878
+msgid "Partition type?"
+msgstr "Partisjonstype?"
+
+#: parted/parted.c:714 parted/parted.c:885 parted/parted.c:1131
+msgid "Partition name?"
+msgstr "Partisjonsnamn?"
+
+#: parted/parted.c:722 parted/parted.c:895
+msgid "File system type?"
+msgstr "Filsystemtype?"
+
+#: parted/parted.c:729 parted/parted.c:897 parted/parted.c:1059
+#: parted/parted.c:1725 parted/parted.c:1780
+msgid "Start?"
+msgstr "Start?"
+
+#: parted/parted.c:731 parted/parted.c:900 parted/parted.c:1062
+#: parted/parted.c:1727 parted/parted.c:1782
+msgid "End?"
+msgstr "Slutt?"
+
+#: parted/parted.c:769 parted/parted.c:938
+#, c-format
+msgid ""
+"You requested a partition from %s to %s.\n"
+"The closest location we can manage is %s to %s.  Is this still acceptable to "
+"you?"
+msgstr ""
+
+#: parted/parted.c:890
+#, fuzzy
+msgid "An extended partition cannot hold a file system.  Did you want mkpart?"
+msgstr "Utvidingspartisjonar kan ikkje ha filsystem.  Meinte du mkpart?"
+
+#: parted/parted.c:1050
+#, fuzzy
+msgid "Can't move an extended partition."
+msgstr "Kan ikkje flytta utvidingspartisjonar."
+
+#: parted/parted.c:1079
+msgid "Can't move a partition onto itself.  Try using resize, perhaps?"
+msgstr ""
+"Kan ikkje flytta ein partisjon til seg sjølv.  Kanskje du vil prøva å endra "
+"storleik?"
+
+#: parted/parted.c:1227
+#, c-format
+msgid "Minor: %d\n"
+msgstr "Nummer: %d\n"
+
+#: parted/parted.c:1228
+#, fuzzy, c-format
+msgid "Flags: %s\n"
+msgstr "Flagg: "
+
+#: parted/parted.c:1229
+#, c-format
+msgid "File System: %s\n"
+msgstr "Filsystem: %s\n"
+
+#: parted/parted.c:1230
+#, fuzzy
+msgid "Size:         "
+msgstr "Storleik:         %10.3fMiB (%d%%)\n"
+
+#: parted/parted.c:1235
+#, fuzzy
+msgid "Minimum size: "
+msgstr "Minste storleik:  %10.3fMiB (%d%%)\n"
+
+#: parted/parted.c:1238
+#, fuzzy
+msgid "Maximum size: "
+msgstr "Største storleik: %10.3fMiB (%d%%)\n"
+
+#: parted/parted.c:1362
+#, c-format
+msgid "Model: %s (%s)\n"
+msgstr ""
+
+#: parted/parted.c:1364
+#, fuzzy, c-format
+msgid "Disk %s: %s\n"
+msgstr "%s  %s  %s"
+
+#: parted/parted.c:1365
+#, c-format
+msgid "Sector size (logical/physical): %lldB/%lldB\n"
+msgstr ""
+
+#: parted/parted.c:1383
+#, c-format
+msgid "BIOS cylinder,head,sector geometry: %d,%d,%d.  Each cylinder is %s.\n"
+msgstr ""
+
+#: parted/parted.c:1392
+#, fuzzy, c-format
+msgid "Partition Table: %s\n"
+msgstr "Partisjonsnamn?"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Number"
+msgstr ""
+
+#: parted/parted.c:1406 parted/parted.c:1409
+#, fuzzy
+msgid "Start"
+msgstr "Start?"
+
+#: parted/parted.c:1407 parted/parted.c:1410
+#, fuzzy
+msgid "End"
+msgstr "Slutt?"
+
+#: parted/parted.c:1410
+#, fuzzy
+msgid "Size"
+msgstr "resize"
+
+#: parted/parted.c:1414
+msgid "Type"
+msgstr ""
+
+#: parted/parted.c:1416
+#, fuzzy
+msgid "File system"
+msgstr "Filsystem?"
+
+#: parted/parted.c:1419
+#, fuzzy
+msgid "Name"
+msgstr "name"
+
+#: parted/parted.c:1421
+msgid "Flags"
+msgstr "Flagg"
+
+#: parted/parted.c:1477
+msgid "Free Space"
+msgstr ""
+
+#: parted/parted.c:1624
+#, fuzzy, c-format
+msgid ""
+"A %s %s partition was found at %s -> %s.  Do you want to add it to the "
+"partition table?"
+msgstr ""
+"Ein %s %s-partisjon vart funnen på %.3f MiB -> %.3f MiB.  Ønskjer du å "
+"leggja han til i partisjonstabellen?"
+
+#: parted/parted.c:1663
+msgid "searching for file systems"
+msgstr "leitar etter filsystem"
+
+#: parted/parted.c:1877
+msgid "New device?"
+msgstr "Ny eining?"
+
+#: parted/parted.c:1902
+#, fuzzy
+msgid "Flag to Invert?"
+msgstr "Flagg som skal endrast?"
+
+#: parted/parted.c:1907
+msgid "New state?"
+msgstr "Ny status?"
+
+#: parted/parted.c:1944
+msgid "Unit?"
+msgstr ""
+
+#: parted/parted.c:2093
+msgid "check"
+msgstr "check"
+
+#: parted/parted.c:2096
+#, fuzzy
+msgid ""
+"check NUMBER                             do a simple check on the file system"
+msgstr ""
+"check NR                      ta ein enkel konsistenssjekk av filsystemet"
+
+#: parted/parted.c:2102
+msgid "cp"
+msgstr "cp"
+
+#: parted/parted.c:2105
+#, fuzzy
+msgid ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+"partition"
+msgstr ""
+"cp [FRÅ-EINING] FRÅ-NR TIL-NR      kopier filsystem til ein annan partisjon"
+
+#: parted/parted.c:2111
+msgid "help"
+msgstr "help"
+
+#: parted/parted.c:2114
+#, fuzzy
+msgid ""
+"help [COMMAND]                           print general help, or help on "
+"COMMAND"
+msgstr ""
+"help [KOMMANDO]               gjev generell hjelp, eller hjelp om KOMMANDO"
+
+#: parted/parted.c:2120
+msgid "mklabel"
+msgstr "mklabel"
+
+#: parted/parted.c:2120
+#, fuzzy
+msgid "mktable"
+msgstr "mklabel"
+
+#: parted/parted.c:2123
+#, fuzzy
+msgid ""
+"mklabel,mktable LABEL-TYPE               create a new disklabel (partition "
+"table)"
+msgstr "mklabel LABEL-TYPE            lag ny disklabel (partisjonstabell)"
+
+#: parted/parted.c:2129
+msgid "mkfs"
+msgstr "mkfs"
+
+#: parted/parted.c:2132
+#, fuzzy
+msgid ""
+"mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on "
+"partititon NUMBER"
+msgstr ""
+"mkfs NR FS-TYPE               lag eit filsystem av FS-TYPE på partisjon NR"
+
+#: parted/parted.c:2138
+msgid "mkpart"
+msgstr "mkpart"
+
+#: parted/parted.c:2141
+#, fuzzy
+msgid "mkpart PART-TYPE [FS-TYPE] START END     make a partition"
+msgstr "mkpart PART-TYPE [FS-TYPE] START SLUTT    lag ein partisjon"
+
+#: parted/parted.c:2147
+#, fuzzy
+msgid ""
+"'mkpart' makes a partition without creating a new file system on the "
+"partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"
+msgstr ""
+"mkpart lagar ein partisjon utan å laga eit nytt filsystem der.  Du kan "
+"spesifisera FS-TYPE for å setja ein passande partisjons-id.\n"
+
+#: parted/parted.c:2152
+msgid "mkpartfs"
+msgstr "mkpartfs"
+
+#: parted/parted.c:2155
+#, fuzzy
+msgid ""
+"mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system"
+msgstr ""
+"mkpartfs PART-TYPE FS-TYPE START SLUTT    lag ein partition med eit filsystem"
+
+#: parted/parted.c:2161
+msgid "move"
+msgstr "move"
+
+#: parted/parted.c:2164
+#, fuzzy
+msgid "move NUMBER START END                    move partition NUMBER"
+msgstr "move NR START SLUTT           flytt partisjonen NR"
+
+#: parted/parted.c:2169
+msgid "name"
+msgstr "name"
+
+#: parted/parted.c:2172
+#, fuzzy
+msgid "name NUMBER NAME                         name partition NUMBER as NAME"
+msgstr "name NR NAMN                  gje partisjonen NR namnet NAMN"
+
+#: parted/parted.c:2177
+msgid "print"
+msgstr "print"
+
+#: parted/parted.c:2180
+msgid ""
+"print [devices|free|list,all|NUMBER]     display the partition table, "
+"available devices, free space, all found partitions, or a particular "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2185
+msgid ""
+"Without arguments, 'print' displays the entire partition table. However with "
+"the following arguments it performs various other actions.\n"
+msgstr ""
+
+#: parted/parted.c:2187
+msgid "  devices   : display all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2188
+msgid ""
+"  free      : display information about free unpartitioned space on the "
+"current block device\n"
+msgstr ""
+
+#: parted/parted.c:2190
+#, fuzzy
+msgid ""
+"  list, all : display the partition tables of all active block devices\n"
+msgstr ""
+"print [NR]                    vis partisjonstabellen eller ein partisjon"
+
+#: parted/parted.c:2191
+msgid ""
+"  NUMBER    : display more detailed information about this particular "
+"partition\n"
+msgstr ""
+
+#: parted/parted.c:2196
+msgid "quit"
+msgstr "quit"
+
+#: parted/parted.c:2199
+#, fuzzy
+msgid "quit                                     exit program"
+msgstr "quit                          avslutt programmet"
+
+#: parted/parted.c:2204
+msgid "rescue"
+msgstr "rescue"
+
+#: parted/parted.c:2207
+#, fuzzy
+msgid ""
+"rescue START END                         rescue a lost partition near START "
+"and END"
+msgstr ""
+"rescue START SLUTT            redd tapte partisjonar nær START og SLUTT"
+
+#: parted/parted.c:2213
+msgid "resize"
+msgstr "resize"
+
+#: parted/parted.c:2216
+#, fuzzy
+msgid ""
+"resize NUMBER START END                  resize partition NUMBER and its "
+"file system"
+msgstr ""
+"rescue START SLUTT            redd tapte partisjonar nær START og SLUTT"
+
+#: parted/parted.c:2224
+msgid "rm"
+msgstr "rm"
+
+#: parted/parted.c:2227
+#, fuzzy
+msgid "rm NUMBER                                delete partition NUMBER"
+msgstr "rm NR                         slett partisjonen NR"
+
+#: parted/parted.c:2232
+msgid "select"
+msgstr "select"
+
+#: parted/parted.c:2235
+#, fuzzy
+msgid "select DEVICE                            choose the device to edit"
+msgstr "select EINING                 vel eininga du vil gjera endringar på"
+
+#: parted/parted.c:2240
+msgid "set"
+msgstr "set"
+
+#: parted/parted.c:2243
+#, fuzzy
+msgid ""
+"set NUMBER FLAG STATE                    change the FLAG on partition NUMBER"
+msgstr "set NR FLAGG STATUS           endra eit flagg på partisjonen NR"
+
+#: parted/parted.c:2249
+msgid "toggle"
+msgstr ""
+
+#: parted/parted.c:2252
+msgid ""
+"toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+"partition NUMBER"
+msgstr ""
+
+#: parted/parted.c:2258
+#, fuzzy
+msgid "unit"
+msgstr "quit"
+
+#: parted/parted.c:2261
+#, fuzzy
+msgid "unit UNIT                                set the default unit to UNIT"
+msgstr "quit                          avslutt programmet"
+
+#: parted/parted.c:2266
+msgid "version"
+msgstr ""
+
+#: parted/parted.c:2269
+msgid ""
+"version                                  display the version number and "
+"copyright information of GNU Parted"
+msgstr ""
+
+#: parted/parted.c:2273
+msgid ""
+"'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"
+msgstr ""
+
+#: parted/parted.c:2335
+#, c-format
+msgid "Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"
+msgstr ""
+
+#: parted/parted.c:2379
+msgid "No device found"
+msgstr "Ingen diskar funne"
+
+#: parted/parted.c:2412
+msgid "WARNING: You are not superuser.  Watch out for permissions."
+msgstr ""
+
+#: parted/parted.c:2450
+#, fuzzy
+msgid "You may need to update /etc/fstab.\n"
+msgstr "Gløym ikkje å oppdatera /etc/fstab, om naudsynt.\n"
+
+#: parted/ui.c:160
+msgid "Welcome to GNU Parted! Type 'help' to view a list of commands.\n"
+msgstr ""
+
+#: parted/ui.c:163
+#, fuzzy
+msgid ""
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run "
+"in\n"
+"interactive mode.\n"
+msgstr ""
+"Bruk: parted [FLAGG]... [EINING [KOMMANDO [PARAMETER]...]...]\n"
+"Utfør KOMMANDO med PARAMETER på EINING.  Dersom ingen KOMMANDO er gjeven,\n"
+"køyrer GNU Parted i interaktiv modus.\n"
+
+#: parted/ui.c:168
+#, c-format
+msgid ""
+"\n"
+"\n"
+"You found a bug in GNU Parted! Here's what you have to do:\n"
+"\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n"
+"\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Please check this version prior to bug reporting.\n"
+"\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"for further information.\n"
+"\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n"
+msgstr ""
+
+#: parted/ui.c:284
+msgid ""
+"\n"
+"Command History:\n"
+msgstr ""
+
+#: parted/ui.c:366
+msgid ""
+"\n"
+"Error: SEGV_MAPERR (Address not mapped to object)\n"
+msgstr ""
+
+#: parted/ui.c:372
+msgid ""
+"\n"
+"Error: SEGV_ACCERR (Invalid permissions for mapped object)\n"
+msgstr ""
+
+#: parted/ui.c:377
+msgid ""
+"\n"
+"Error: A general SIGSEGV signal was encountered.\n"
+msgstr ""
+
+#: parted/ui.c:410
+msgid ""
+"\n"
+"Error: FPE_INTDIV (Integer: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:415
+msgid ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+msgstr ""
+
+#: parted/ui.c:420
+msgid ""
+"\n"
+"Error: FPE_FLTDIV (Float: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:425
+msgid ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+msgstr ""
+
+#: parted/ui.c:430
+msgid ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+msgstr ""
+
+#: parted/ui.c:435
+msgid ""
+"\n"
+"Error: FPE_FLTRES (Float: inexact result)"
+msgstr ""
+
+#: parted/ui.c:440
+msgid ""
+"\n"
+"Error: FPE_FLTINV (Float: invalid operation)"
+msgstr ""
+
+#: parted/ui.c:445
+msgid ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript out of range)"
+msgstr ""
+
+#: parted/ui.c:450
+msgid ""
+"\n"
+"Error: A general SIGFPE signal was encountered."
+msgstr ""
+
+#: parted/ui.c:483
+msgid ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+msgstr ""
+
+#: parted/ui.c:488
+msgid ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+msgstr ""
+
+#: parted/ui.c:493
+msgid ""
+"\n"
+"Error: ILL_ILLADR (Illegal addressing mode)"
+msgstr ""
+
+#: parted/ui.c:498
+msgid ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+msgstr ""
+
+#: parted/ui.c:503
+msgid ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+msgstr ""
+
+#: parted/ui.c:508
+msgid ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+msgstr ""
+
+#: parted/ui.c:513
+msgid ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+msgstr ""
+
+#: parted/ui.c:518
+msgid ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+msgstr ""
+
+#: parted/ui.c:523
+msgid ""
+"\n"
+"Error: A general SIGILL signal was encountered."
+msgstr ""
+
+#: parted/ui.c:1024
+msgid "Expecting a partition number."
+msgstr "Forventa eit partisjonsnummer."
+
+#: parted/ui.c:1033
+msgid "Partition doesn't exist."
+msgstr "Partisjonen finst ikkje."
+
+#: parted/ui.c:1053
+msgid "Expecting a file system type."
+msgstr "Forventa ei filsystemtype."
+
+#: parted/ui.c:1060
+#, c-format
+msgid "Unknown file system type \"%s\"."
+msgstr "Filsystemtypen «%s» er ukjend."
+
+#: parted/ui.c:1080
+msgid "Expecting a disk label type."
+msgstr "Forventa ein disklabel-type."
+
+#: parted/ui.c:1178
+msgid "Can't create any more partitions."
+msgstr "Kan ikkje laga fleire partisjonar."
+
+#: parted/ui.c:1188
+msgid "Expecting a partition type."
+msgstr "Forventa ein partisjonstype."
+
+#: parted/ui.c:1315
+msgid "on"
+msgstr "på"
+
+#: parted/ui.c:1316
+msgid "off"
+msgstr "av"
+
+#: parted/ui.c:1431
+msgid "OPTIONs:"
+msgstr "FLAGG:"
+
+#: parted/ui.c:1436
+msgid "COMMANDs:"
+msgstr "KOMMANDOar:"
+
+#: parted/ui.c:1445
+#, c-format
+msgid "Using %s\n"
+msgstr "Brukar %s\n"
+
+#: parted/ui.c:1519
+msgid "This command does not make sense in non-interactive mode.\n"
+msgstr ""
+
+#~ msgid "where necessary, prompts for user intervention"
+#~ msgstr "der naudsynt, spør brukaren"
+
+#, fuzzy
+#~ msgid ""
+#~ "Without arguments, print displays the entire partition table. With "
+#~ "'free'\n"
+#~ "argument, information about free space will be displayed otherwise if a\n"
+#~ "partition number is given, then more detailed information is displayed\n"
+#~ "about that partition. If the 'all' argument is passed instead, partition\n"
+#~ "information for all devices will be displayed.\n"
+#~ msgstr ""
+#~ "Utan argument skriv print ut heile partisjonstabellen.  Dersom eit\n"
+#~ "partisjonsnummer er oppgjeve, vil meir detaljert informasjon om\n"
+#~ "partisjonen verta vist.\n"
+
+#~ msgid ""
+#~ "The sector size on %s is %d bytes.  Parted is known not to work properly "
+#~ "with drives with sector sizes other than %d bytes"
+#~ msgstr ""
+#~ "Sektorane på %s er %d oktettar store.  Parted fungerer berre skikkeleg på "
+#~ "diskar som har ein sektorstorleik på %d oktettar"
+
+#~ msgid "Could not read geometry of %s - %s."
+#~ msgstr "Kunne ikkje lesa geometrien til %s - %s."
+
+#~ msgid "Device %s has dodgey geometry."
+#~ msgstr "Eininga %s har tvilsam geometri."
+
+#~ msgid "IDE"
+#~ msgstr "IDE"
+
+#~ msgid "SCSI"
+#~ msgstr "SCSI"
+
+#~ msgid "Device %s is neither a SCSI nor IDE drive."
+#~ msgstr "Eininga %s er korkje ein SCSI- eller IDE-disk."
+
+#~ msgid "Error reading %s (%s) to determine if partition is mounted."
+#~ msgstr "Feil ved lesing av %s (%s) for å avgjera om partisjonen er montert."
+
+#~ msgid ""
+#~ "Unable to determine if partitions are mounted via /proc/mounts or /etc/"
+#~ "mtab.  Make sure you don't attempt to resize or modify mounted file "
+#~ "systems.  (Even read-only mounted)"
+#~ msgstr ""
+#~ "Kunne ikkje finna liste over monterte partisjonar i /proc/mounts eller /"
+#~ "etc/mtab.  Forsikra deg om at du ikkje prøver å endra på monterte "
+#~ "filsystem (sjølv om dei er montert med kun lesetilgang)"
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  However, the most likely reason is that Linux "
+#~ "detected the BIOS geometry for %s incorrectly.  GNU Parted suspects the "
+#~ "real geometry should be %d/%d/%d (not %d/%d/%d).  You should check with "
+#~ "your BIOS first, as this may not be correct.  You can inform Linux by "
+#~ "adding the parameter %s=%d,%d,%d to the command line.  See the LILO or "
+#~ "GRUB documentation for more information.  If you think Parted's suggested "
+#~ "geometry is correct, you may select Ignore to continue (and fix Linux "
+#~ "later).  Otherwise, select Cancel (and fix Linux and/or the BIOS now)."
+#~ msgstr ""
+#~ "Partisjonstabellen på %s er inkonsistent.  Det kan koma av mange ting, "
+#~ "men mest sannsynleg har Linux brukt feil BIOS-geometri for %s.  GNU "
+#~ "Parted trur den verkelege geometrien er %d/%d/%d (ikkje %d/%d/%d).  Sjekk "
+#~ "først i BIOS om det stemmer.  Du kan læra Linux dette ved å leggja til "
+#~ "parameteren %s=%d,%d,%d på kjernekommandolinja.  Sjå dokumentasjonen til "
+#~ "LILO eller GRUB for meir informasjon.  Viss du trur geometrien Parted "
+#~ "foreslår er rett, kan du velja Ignorer for å halda fram (og fiksa Linux "
+#~ "seinare).  Viss ikkje, vel Avbryt (og fiks Linux og/eller BIOS-en no)."
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  Often, the reason is that Linux detected the "
+#~ "BIOS geometry incorrectly.  However, this does not appear to be the case "
+#~ "here.  It is safe to ignore,but ignoring may cause (fixable) problems "
+#~ "with some boot loaders, and may cause problems with FAT file systems.  "
+#~ "Using LBA is recommended."
+#~ msgstr ""
+#~ "Partisjonstabellen på %s er inkonsistent.  Det kan koma av mange ting, og "
+#~ "ofte er grunnen at Linux har brukt feil BIOS-geometri.  I dette tilfellet "
+#~ "ser det ikkje slik ut.  Det er trygt å oversjå denne feilen, men du kan "
+#~ "koma bort i problem med boot-lastaren (som kan rettast opp), og med FAT-"
+#~ "filsystem.  Det er tilrådd å bruka LBA."
+
+#~ msgid ""
+#~ "Unable to align partition properly.  This probably means that another "
+#~ "partitioning tool generated an incorrect partition table, because it "
+#~ "didn't have the correct BIOS geometry.  It is safe to ignore,but ignoring "
+#~ "may cause (fixable) problems with some boot loaders."
+#~ msgstr ""
+#~ "Kunne ikkje plassera partisjonen på ei passande skiljelinje.  Dette tyder "
+#~ "vanlegvis at eit anna partisjonsprogram har laga ein partisjonstabell med "
+#~ "feil BIOS-geometri.  Det er trygt å oversjå denne feilen, men du kan kome "
+#~ "bort i problem med boot-lastaren (som kan rettast opp)."
+
+#~ msgid "Attempt to read sectors %ld-%ld outside of partition on %s"
+#~ msgstr "Prøvde å lesa sektorane %ld-%ld utanfor partisjonen på %s"
+
+#~ msgid ""
+#~ "This ext2 filesystem has a rather strange layout!  Parted can't resize "
+#~ "this (yet)."
+#~ msgstr ""
+#~ "Dette ext2-filsystemet har eit ganske rart utlegg.  Parted kan ikkje "
+#~ "endra storleiken på det (enno)."
+
+#~ msgid "File system has an invalid signature for a FAT file systems."
+#~ msgstr "Filsystemet har ein ugyldig signatur til å vera eit FAT-filsystem."
+
+#~ msgid ""
+#~ "Partition %s is being used.  Modifying it while it is in use could cause "
+#~ "severe corruption."
+#~ msgstr ""
+#~ "Partisjonen %s er i bruk.  Endringar no kan føre til alvorleg datatap."
+
+#~ msgid ""
+#~ "You requested to create a partition at %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Du bad om ein partisjon på %.3f-%.3f MiB.  Det nærmaste Parted kan koma "
+#~ "er %.3f-%.3f MiB."
+
+#~ msgid ""
+#~ "You requested to move the partition to %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Du bad om å flytta partisjonen til %.3f-%.3f MiB.  Det nærmaste Parted "
+#~ "kan klara er %.3f-%.3f MiB."
+
+#~ msgid "Disk geometry for %s: 0.000-%.3f megabytes\n"
+#~ msgstr "Diskgeometri for %s: 0.000-%.3f mebibytes\n"
+
+#~ msgid "Disk label type: %s\n"
+#~ msgstr "Disklabel-type: %s\n"
+
+#~ msgid "Minor    Start       End     "
+#~ msgstr "Nr       Start       End     "
+
+#~ msgid "Type      "
+#~ msgstr "Type      "
+
+#~ msgid "Filesystem  "
+#~ msgstr "Filsystem   "
+
+#~ msgid "Name                  "
+#~ msgstr "Namn                  "
+
+#~ msgid ""
+#~ "You requested to resize the partition to %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Du bad om å endra storleik på partisjonen til %.3f-%.3f MiB.  Det "
+#~ "nærmaste Parted kan klara er %.3f-%.3f MiB."
+
+#~ msgid "resize MINOR START END        resize filesystem on partition MINOR"
+#~ msgstr ""
+#~ "resize NR START SLUTT         endra storleik på filsystemet på "
+#~ "partisjonen NR"
+
+#~ msgid ""
+#~ "You found a bug in GNU Parted.  Please email a bug report to bug-"
+#~ "parted@gnu.org containing the version (%s), and the following message:\n"
+#~ msgstr ""
+#~ "Du har funne ein programfeil i GNU Parted.  Ver venleg å senda ei "
+#~ "feilmelding til bug-parted@gnu.org der du oppgjev versjonsnummeret (%s) "
+#~ "og fylgjande melding:\n"
+
+#~ msgid ""
+#~ "  You have Windows FAT partition(s) that are not using LBA.  If your BIOS "
+#~ "supports LBA, then you should switch to LBA by setting the LBA flag on "
+#~ "all FAT partitions.  Otherwise, make sure the operating system and the "
+#~ "BIOS have the same geometry before resizing any FAT partitions."
+#~ msgstr ""
+#~ "  Du har Windows FAT-partisjon(ar) som ikkje brukar LBA.  Viss BIOS "
+#~ "støttar LBA, bør du bytta til LBA ved å setja LBA-flagget på alle FAT-"
+#~ "partisjonar.  Viss ikkje, sjekk at operativsystemet og BIOS har same "
+#~ "formeining om diskgeomtetri før du endrar storleik på nokon av FAT-"
+#~ "partisjonane."
+
+#~ msgid ""
+#~ "The operating system thinks the geometry on %s is %d/%d/%d.  Therefore, "
+#~ "cylinder 1024 ends at %.3fM.%s"
+#~ msgstr ""
+#~ "Operativsystemet trur geometrien på %s er %d/%d/%d, altså endar sylinder "
+#~ "1024 på %.3f MiB.%s"
+
+#~ msgid "The operating system thinks the geometry on %s is %d/%d/%d.%s"
+#~ msgstr "Operativsystemet meiner at geometrien til %s er %d/%d/%d.%s"
diff --git a/parted-1.8.7/po/parted.pot b/parted-1.8.7/po/parted.pot
new file mode 100644
index 0000000..5c5f285
--- /dev/null
+++ b/parted-1.8.7/po/parted.pot
@@ -0,0 +1,2891 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: bug-parted@gnu.org\n"
+"POT-Creation-Date: 2007-05-09 17:02-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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/closeout.c:74
+msgid "write error"
+msgstr ""
+
+#: lib/error.c:125
+msgid "Unknown system error"
+msgstr ""
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK).  A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#.
+#. If you don't know what to put here, please see
+#. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr ""
+
+#: lib/regcomp.c:131
+msgid "Success"
+msgstr ""
+
+#: lib/regcomp.c:134
+msgid "No match"
+msgstr ""
+
+#: lib/regcomp.c:137
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regcomp.c:140
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regcomp.c:143
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regcomp.c:146
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regcomp.c:149
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regcomp.c:152
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regcomp.c:155
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regcomp.c:158
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regcomp.c:161
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regcomp.c:164
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regcomp.c:170
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regcomp.c:173
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regcomp.c:176
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regcomp.c:179
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regcomp.c:680
+msgid "No previous regular expression"
+msgstr ""
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr ""
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:66
+msgid "(C)"
+msgstr ""
+
+#: lib/version-etc.c:68
+msgid ""
+"\n"
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:84
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:88
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:92
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:98
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:104
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:110
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:132
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+
+#: lib/xalloc-die.c:35
+msgid "memory exhausted"
+msgstr ""
+
+#: libparted/arch/beos.c:237
+msgid "Disk Image"
+msgstr ""
+
+#: libparted/arch/beos.c:338 libparted/arch/gnu.c:261
+#: libparted/arch/linux.c:1272
+#, c-format
+msgid "Error opening %s: %s"
+msgstr ""
+
+#: libparted/arch/beos.c:349 libparted/arch/gnu.c:271
+#: libparted/arch/linux.c:1283
+#, c-format
+msgid "Unable to open %s read-write (%s).  %s has been opened read-only."
+msgstr ""
+
+#: libparted/arch/beos.c:411 libparted/arch/linux.c:1431
+#, c-format
+msgid "%s during seek for read on %s"
+msgstr ""
+
+#: libparted/arch/beos.c:444 libparted/arch/gnu.c:449 libparted/arch/gnu.c:548
+#: libparted/arch/gnu.c:676 libparted/arch/linux.c:1391
+#: libparted/arch/linux.c:1469
+#, c-format
+msgid "%s during read on %s"
+msgstr ""
+
+#: libparted/arch/beos.c:480 libparted/arch/gnu.c:509
+#: libparted/arch/linux.c:1546
+#, c-format
+msgid "Can't write to %s, because it is opened read-only."
+msgstr ""
+
+#: libparted/arch/beos.c:496 libparted/arch/linux.c:1570
+#, c-format
+msgid "%s during seek for write on %s"
+msgstr ""
+
+#: libparted/arch/beos.c:533 libparted/arch/gnu.c:585 libparted/arch/gnu.c:630
+#: libparted/arch/gnu.c:707 libparted/arch/linux.c:1517
+#: libparted/arch/linux.c:1612 libparted/arch/linux.c:1684
+#, c-format
+msgid "%s during write on %s"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:63 partprobe/partprobe.c:137
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:67
+#, c-format
+msgid ""
+"Usage: %s [OPTION]\n"
+"  or:  %s DEVICE MINOR\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:70
+msgid ""
+"Clear unused space on a FAT partition (a GNU Parted testing tool).\n"
+"\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:74
+msgid "      --help     display this help and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:75
+msgid "      --version  output version information and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:77 partprobe/partprobe.c:154
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:285
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:290
+#, c-format
+msgid "too many arguments"
+msgstr ""
+
+#: partprobe/partprobe.c:141
+#, c-format
+msgid "Usage: %s [OPTION] [DEVICE]...\n"
+msgstr ""
+
+#: partprobe/partprobe.c:142
+msgid ""
+"Inform the OS of partition table changes.\n"
+"\n"
+"  -d, --no-update  don't update the kernel\n"
+"  -s, --summary    print a summary of contents\n"
+"  -h, --help       display this help and exit\n"
+"  -v, --version    output version information and exit\n"
+msgstr ""
+
+#: partprobe/partprobe.c:150
+msgid ""
+"\n"
+"With no DEVICE, probe all partitions.\n"
+msgstr ""
+
+#: libparted/arch/gnu.c:94
+#, c-format
+msgid "Unable to open %s."
+msgstr ""
+
+#: libparted/arch/gnu.c:114
+msgid "Unable to probe store."
+msgstr ""
+
+#: libparted/arch/gnu.c:352
+msgid ""
+"The partition table cannot be re-read.  This means you need to reboot before "
+"mounting any modified partitions.  You also need to reinstall your boot "
+"loader before you reboot (which may require mounting modified partitions).  "
+"It is impossible do both things!  So you'll need to boot off a rescue disk, "
+"and reinstall your boot loader from the rescue disk.  Read section 4 of the "
+"Parted User documentation for more information."
+msgstr ""
+
+#: libparted/arch/gnu.c:369
+#, c-format
+msgid ""
+"The partition table on %s cannot be re-read (%s).  This means the Hurd knows "
+"nothing about any modifications you made.  You should reboot your computer "
+"before doing anything with %s."
+msgstr ""
+
+#: libparted/arch/gnu.c:380 parted/parted.c:2443
+msgid ""
+"You should reinstall your boot loader before rebooting.  Read section 4 of "
+"the Parted User documentation for more information."
+msgstr ""
+
+#: libparted/arch/gnu.c:772
+#, c-format
+msgid "%s trying to sync %s to disk"
+msgstr ""
+
+#: libparted/arch/linux.c:408
+#, c-format
+msgid "Could not stat device %s - %s."
+msgstr ""
+
+#: libparted/arch/linux.c:523
+#, c-format
+msgid ""
+"Could not determine sector size for %s: %s.\n"
+"Using the default sector size (%lld)."
+msgstr ""
+
+#: libparted/arch/linux.c:539
+#, c-format
+msgid ""
+"Device %s has a logical sector size of %lld.  Not all parts of GNU Parted "
+"support this at the moment, and the working code is HIGHLY EXPERIMENTAL.\n"
+msgstr ""
+
+#: libparted/arch/linux.c:579
+#, c-format
+msgid "Unable to determine the size of %s (%s)."
+msgstr ""
+
+#: libparted/arch/linux.c:668
+#, c-format
+msgid "Could not get identity of device %s - %s"
+msgstr ""
+
+#: libparted/arch/linux.c:677
+msgid "Generic IDE"
+msgstr ""
+
+#: libparted/arch/linux.c:698
+#, c-format
+msgid ""
+"Device %s has multiple (%d) logical sectors per physical sector.\n"
+"GNU Parted supports this EXPERIMENTALLY for some special disk label/file "
+"system combinations, e.g. GPT and ext2/3.\n"
+"Please consult the web site for up-to-date information."
+msgstr ""
+
+#: libparted/arch/linux.c:873
+#, c-format
+msgid "Error initialising SCSI device %s - %s"
+msgstr ""
+
+#: libparted/arch/linux.c:928
+#, c-format
+msgid ""
+"The device %s has zero length, and can't possibly store a file system or "
+"partition table.  Perhaps you selected the wrong device?"
+msgstr ""
+
+#: libparted/arch/linux.c:1032
+#, c-format
+msgid ""
+"Unable to determine geometry of file/device %s.  You should not use Parted "
+"unless you REALLY know what you're doing!"
+msgstr ""
+
+#: libparted/arch/linux.c:1110
+msgid "DAC960 RAID controller"
+msgstr ""
+
+#: libparted/arch/linux.c:1115
+msgid "Promise SX8 SATA Device"
+msgstr ""
+
+#: libparted/arch/linux.c:1120
+msgid "IBM S390 DASD drive"
+msgstr ""
+
+#: libparted/arch/linux.c:1125
+msgid "IBM iSeries Virtual DASD"
+msgstr ""
+
+#: libparted/arch/linux.c:1130
+msgid "Compaq Smart Array"
+msgstr ""
+
+#: libparted/arch/linux.c:1135
+msgid "ATARAID Controller"
+msgstr ""
+
+#: libparted/arch/linux.c:1140
+msgid "I2O Controller"
+msgstr ""
+
+#: libparted/arch/linux.c:1145
+msgid "User-Mode Linux UBD"
+msgstr ""
+
+#: libparted/arch/linux.c:1156
+msgid "Linux device-mapper"
+msgstr ""
+
+#: libparted/arch/linux.c:1162
+msgid "Unknown"
+msgstr ""
+
+#: libparted/arch/linux.c:1169
+msgid "ped_device_new()  Unsupported device type"
+msgstr ""
+
+#: libparted/arch/linux.c:2083
+#, c-format
+msgid ""
+"Error informing the kernel about modifications to partition %s -- %s.  This "
+"means Linux won't know about any changes you made to %s until you reboot -- "
+"so you shouldn't mount it or use it in any way before rebooting."
+msgstr ""
+
+#: libparted/arch/linux.c:2262
+#, c-format
+msgid ""
+"parted was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made. "
+msgstr ""
+
+#: libparted/arch/linux.c:2368
+#, c-format
+msgid ""
+"The kernel was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made until you "
+"reboot.  You should reboot your computer before doing anything with %s."
+msgstr ""
+
+#: libparted/cs/geom.c:162
+msgid "Can't have the end before the start!"
+msgstr ""
+
+#: libparted/cs/geom.c:169
+msgid "Can't have a partition outside the disk!"
+msgstr ""
+
+#: libparted/cs/geom.c:366
+#, c-format
+msgid "Attempt to write sectors %ld-%ld outside of partition on %s."
+msgstr ""
+
+#: libparted/cs/geom.c:406 libparted/fs/linux_swap/linux_swap.c:475
+msgid "checking for bad blocks"
+msgstr ""
+
+#: libparted/debug.c:102
+#, c-format
+msgid "Backtrace has %d calls on stack:\n"
+msgstr ""
+
+#: libparted/debug.c:114
+#, c-format
+msgid "Assertion (%s) at %s:%d in function %s() failed."
+msgstr ""
+
+#: libparted/disk.c:203
+#, c-format
+msgid "Unable to open %s - unrecognised disk label."
+msgstr ""
+
+#: libparted/disk.c:471
+#, c-format
+msgid ""
+"This libparted doesn't have write support for %s.  Perhaps it was compiled "
+"read-only."
+msgstr ""
+
+#: libparted/disk.c:598
+#, c-format
+msgid "Partition %d is %s, but the file system is %s."
+msgstr ""
+
+#: libparted/disk.c:1075
+#, c-format
+msgid "%s disk labels do not support extended partitions."
+msgstr ""
+
+#: libparted/disk.c:1634
+#, c-format
+msgid "%s disk labels don't support logical or extended partitions."
+msgstr ""
+
+#: libparted/disk.c:1647
+msgid "Too many primary partitions."
+msgstr ""
+
+#: libparted/disk.c:1656
+#, c-format
+msgid ""
+"Can't add a logical partition to %s, because there is no extended partition."
+msgstr ""
+
+#: libparted/disk.c:1680
+#, c-format
+msgid "Can't have more than one extended partition on %s."
+msgstr ""
+
+#: libparted/disk.c:1690
+msgid "Can't have logical partitions outside of the extended partition."
+msgstr ""
+
+#: libparted/disk.c:1715
+#, c-format
+msgid "Can't have a logical partition outside of the extended partition on %s."
+msgstr ""
+
+#: libparted/disk.c:1725 libparted/disk.c:1779 libparted/disk.c:1945
+msgid "Can't have overlapping partitions."
+msgstr ""
+
+#: libparted/disk.c:1733
+msgid "Can't have a primary partition inside an extended partition."
+msgstr ""
+
+#: libparted/disk.c:2140
+msgid "metadata"
+msgstr ""
+
+#: libparted/disk.c:2142
+msgid "free"
+msgstr ""
+
+#: libparted/disk.c:2144 parted/ui.c:1169 parted/ui.c:1197
+msgid "extended"
+msgstr ""
+
+#: libparted/disk.c:2146 parted/ui.c:1173 parted/ui.c:1201
+msgid "logical"
+msgstr ""
+
+#: libparted/disk.c:2148 parted/ui.c:1165 parted/ui.c:1193
+msgid "primary"
+msgstr ""
+
+#: libparted/disk.c:2164
+msgid "boot"
+msgstr ""
+
+#: libparted/disk.c:2166
+msgid "root"
+msgstr ""
+
+#: libparted/disk.c:2168
+msgid "swap"
+msgstr ""
+
+#: libparted/disk.c:2170
+msgid "hidden"
+msgstr ""
+
+#: libparted/disk.c:2172
+msgid "raid"
+msgstr ""
+
+#: libparted/disk.c:2174
+msgid "lvm"
+msgstr ""
+
+#: libparted/disk.c:2176
+msgid "lba"
+msgstr ""
+
+#: libparted/disk.c:2178
+msgid "hp-service"
+msgstr ""
+
+#: libparted/disk.c:2180
+msgid "palo"
+msgstr ""
+
+#: libparted/disk.c:2182
+msgid "prep"
+msgstr ""
+
+#: libparted/disk.c:2184
+msgid "msftres"
+msgstr ""
+
+#: libparted/disk.c:2190
+#, c-format
+msgid "Unknown partition flag, %d."
+msgstr ""
+
+#: libparted/exception.c:78
+msgid "Information"
+msgstr ""
+
+#: libparted/exception.c:79
+msgid "Warning"
+msgstr ""
+
+#: libparted/exception.c:80
+msgid "Error"
+msgstr ""
+
+#: libparted/exception.c:81
+msgid "Fatal"
+msgstr ""
+
+#: libparted/exception.c:82
+msgid "Bug"
+msgstr ""
+
+#: libparted/exception.c:83
+msgid "No Implementation"
+msgstr ""
+
+#: libparted/exception.c:87
+msgid "Fix"
+msgstr ""
+
+#: libparted/exception.c:88
+msgid "Yes"
+msgstr ""
+
+#: libparted/exception.c:89
+msgid "No"
+msgstr ""
+
+#: libparted/exception.c:90
+msgid "OK"
+msgstr ""
+
+#: libparted/exception.c:91
+msgid "Retry"
+msgstr ""
+
+#: libparted/exception.c:92
+msgid "Ignore"
+msgstr ""
+
+#: libparted/exception.c:93
+msgid "Cancel"
+msgstr ""
+
+#: libparted/exception.c:133
+#, c-format
+msgid ""
+"A bug has been detected in GNU Parted.  Refer to the web site of parted "
+"http://www.gnu.org/software/parted/parted.html for more informations of what "
+"could be useful for bug submitting!  Please email a bug report to bug-"
+"parted@gnu.org containing at least the version (%s) and the following "
+"message:  "
+msgstr ""
+
+#: libparted/filesys.c:384
+msgid "Could not detect file system."
+msgstr ""
+
+#: libparted/filesys.c:395
+msgid "The file system is bigger than its volume!"
+msgstr ""
+
+#: libparted/filesys.c:403
+#, c-format
+msgid "Support for opening %s file systems is not implemented yet."
+msgstr ""
+
+#: libparted/filesys.c:445
+#, c-format
+msgid "Support for creating %s file systems is not implemented yet."
+msgstr ""
+
+#: libparted/filesys.c:505
+#, c-format
+msgid "Support for checking %s file systems is not implemented yet."
+msgstr ""
+
+#: libparted/filesys.c:571
+msgid "raw block copying"
+msgstr ""
+
+#: libparted/filesys.c:582
+msgid "growing file system"
+msgstr ""
+
+#: libparted/filesys.c:622
+msgid "Can't copy onto an overlapping partition."
+msgstr ""
+
+#: libparted/filesys.c:644
+#, c-format
+msgid ""
+"Direct support for copying file systems is not yet implemented for %s.  "
+"However, support for resizing is implemented.  Therefore, the file system "
+"can be copied if the new partition is at least as big as the old one.  So, "
+"either shrink the partition you are trying to copy, or copy to a bigger "
+"partition."
+msgstr ""
+
+#: libparted/filesys.c:658
+#, c-format
+msgid "Support for copying %s file systems is not implemented yet."
+msgstr ""
+
+#: libparted/filesys.c:696
+#, c-format
+msgid "Support for resizing %s file systems is not implemented yet."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:315
+msgid "creating"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:402
+msgid "The file system is in an invalid state.  Perhaps it is mounted?"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:410
+msgid "The file system is in old (unresizeable) format."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:416
+msgid "Invalid free blocks count.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:431
+msgid "checking"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:437
+msgid "Reiserfs tree seems to be corrupted.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:449
+msgid ""
+"The reiserfs file system passed a basic check.  For a more comprehensive "
+"check, run reiserfsck --check."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:474
+msgid "Sorry, can't move the start of reiserfs partitions yet."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:490
+msgid "Couldn't reopen device abstraction layer for read/write."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:508 libparted/fs/ext2/ext2_resize.c:552
+#: libparted/fs/hfs/hfs.c:250 libparted/fs/hfs/hfs.c:629
+msgid "shrinking"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:520
+msgid "expanding"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:592
+msgid "Couldn't create reiserfs device abstraction handler."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:606
+#, c-format
+msgid "Device is too small for %lu blocks."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:615
+msgid "copying"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:682
+#, c-format
+msgid "Couldn't resolve symbol %s.  Error: %s."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:704
+msgid "GNU Parted found an invalid libreiserfs library."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:715
+#, c-format
+msgid ""
+"GNU Parted has detected libreiserfs interface version mismatch.  Found %d-%"
+"d, required %d. ReiserFS support will be disabled."
+msgstr ""
+
+#: libparted/labels/aix.c:137
+msgid "Support for reading AIX disk labels is is not implemented yet."
+msgstr ""
+
+#: libparted/labels/aix.c:148
+msgid "Support for writing AIX disk labels is is not implemented yet."
+msgstr ""
+
+#: libparted/labels/aix.c:161
+msgid ""
+"Support for adding partitions to AIX disk labels is not implemented yet."
+msgstr ""
+
+#: libparted/labels/aix.c:171
+msgid ""
+"Support for duplicating partitions in AIX disk labels is not implemented yet."
+msgstr ""
+
+#: libparted/labels/aix.c:189
+msgid ""
+"Support for setting system type of partitions in AIX disk labels is not "
+"implemented yet."
+msgstr ""
+
+#: libparted/labels/aix.c:199
+msgid "Support for setting flags in AIX disk labels is not implemented yet."
+msgstr ""
+
+#: libparted/labels/bsd.c:501 libparted/labels/dasd.c:755
+#: libparted/labels/dos.c:1974 libparted/labels/dvh.c:770
+#: libparted/labels/gpt.c:1448 libparted/labels/loop.c:248
+#: libparted/labels/mac.c:1408 libparted/labels/pc98.c:759
+#: libparted/labels/rdb.c:1041 libparted/labels/sun.c:705
+msgid "Unable to satisfy all constraints on the partition."
+msgstr ""
+
+#: libparted/labels/bsd.c:526
+msgid "Unable to allocate a bsd disklabel slot."
+msgstr ""
+
+#: libparted/labels/dasd.c:166
+msgid "Unable to determine the block size of this dasd"
+msgstr ""
+
+#: libparted/labels/dasd.c:781
+msgid "Unable to allocate a dasd disklabel slot"
+msgstr ""
+
+#: libparted/labels/dos.c:827
+#, c-format
+msgid "Invalid partition table on %s -- wrong signature %x."
+msgstr ""
+
+#: libparted/labels/dos.c:855
+#, c-format
+msgid "Invalid partition table - recursive partition on %s."
+msgstr ""
+
+#: libparted/labels/dos.c:1318
+msgid "Extended partitions cannot be hidden on msdos disk labels."
+msgstr ""
+
+#: libparted/labels/dos.c:1958
+msgid "Parted can't resize partitions managed by Windows Dynamic Disk."
+msgstr ""
+
+#: libparted/labels/dvh.c:190
+#, c-format
+msgid "%s has no extended partition (volume header partition)."
+msgstr ""
+
+#: libparted/labels/dvh.c:313
+msgid "Checksum is wrong, indicating the partition table is corrupt."
+msgstr ""
+
+#: libparted/labels/dvh.c:616
+msgid "Only primary partitions can be root partitions."
+msgstr ""
+
+#: libparted/labels/dvh.c:630
+msgid "Only primary partitions can be swap partitions."
+msgstr ""
+
+#: libparted/labels/dvh.c:644
+msgid "Only logical partitions can be a boot file."
+msgstr ""
+
+#: libparted/labels/dvh.c:721
+msgid "Only logical partitions (boot files) have a name."
+msgstr ""
+
+#: libparted/labels/dvh.c:812
+msgid "Too many primary partitions"
+msgstr ""
+
+#: libparted/labels/fdasd.c:103
+#, c-format
+msgid ""
+"%s open error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:107
+#, c-format
+msgid ""
+"%s seek error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:110
+#, c-format
+msgid ""
+"%s read error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:113
+#, c-format
+msgid ""
+"%s write error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:116
+#, c-format
+msgid ""
+"%s IOCTL error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:119
+#, c-format
+msgid ""
+"%s API version mismatch\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:122
+#, c-format
+msgid ""
+"%s Unsupported disk type\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:126
+#, c-format
+msgid ""
+"%s Unsupported disk format\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:130
+#, c-format
+msgid ""
+"%s Disk in use\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:133
+#, c-format
+msgid ""
+"%s Config file syntax error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:137
+#, c-format
+msgid ""
+"%s Volume label is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:141
+#, c-format
+msgid ""
+"%s a data set name is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:145
+#, c-format
+msgid ""
+"%s space allocation\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:149
+#, c-format
+msgid ""
+"%s device verification failed\n"
+"The specified device is not a valid DASD device\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:154
+#, c-format
+msgid ""
+"%s Fatal error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/gpt.c:454
+#, c-format
+msgid ""
+"%s contains GPT signatures, indicating that it has a GPT table.  However, it "
+"does not have a valid fake msdos partition table, as it should.  Perhaps it "
+"was corrupted -- possibly by a program that doesn't understand GPT partition "
+"tables.  Or perhaps you deleted the GPT table, and are now using an msdos "
+"partition table.  Is this a GPT partition table?"
+msgstr ""
+
+#: libparted/labels/gpt.c:648
+#, c-format
+msgid ""
+"The format of the GPT partition table is version %x, which is newer than "
+"what Parted can recognise.  Please tell us!  bug-parted@gnu.org"
+msgstr ""
+
+#: libparted/labels/gpt.c:698
+#, c-format
+msgid ""
+"Not all of the space available to %s appears to be used, you can fix the GPT "
+"to use all of the space (an extra %llu blocks) or continue with the current "
+"setting? "
+msgstr ""
+
+#: libparted/labels/gpt.c:827
+msgid ""
+"The backup GPT table is not at the end of the disk, as it should be.  This "
+"might mean that another operating system believes the disk is smaller.  Fix, "
+"by moving the backup to the end (and removing the old backup)?"
+msgstr ""
+
+#: libparted/labels/gpt.c:862
+msgid ""
+"The primary GPT table is corrupt, but the backup appears OK, so that will be "
+"used."
+msgstr ""
+
+#: libparted/labels/gpt.c:870
+msgid ""
+"Both the primary and backup GPT tables are corrupt.  Try making a fresh "
+"table, and using Parted's rescue feature to recover partitions."
+msgstr ""
+
+#: libparted/labels/mac.c:181
+#, c-format
+msgid "Invalid signature %x for Mac disk labels."
+msgstr ""
+
+#: libparted/labels/mac.c:226
+msgid "Partition map has no partition map entry!"
+msgstr ""
+
+#: libparted/labels/mac.c:273
+#, c-format
+msgid "%s is too small for a Mac disk label!"
+msgstr ""
+
+#: libparted/labels/mac.c:532
+#, c-format
+msgid "Partition %d has an invalid signature %x."
+msgstr ""
+
+#: libparted/labels/mac.c:550
+#, c-format
+msgid "Partition %d has an invalid length of 0 bytes!"
+msgstr ""
+
+#: libparted/labels/mac.c:580
+msgid "The data region doesn't start at the start of the partition."
+msgstr ""
+
+#: libparted/labels/mac.c:597
+msgid "The boot region doesn't start at the start of the partition."
+msgstr ""
+
+#: libparted/labels/mac.c:611
+msgid "The partition's boot region doesn't occupy the entire partition."
+msgstr ""
+
+#: libparted/labels/mac.c:622
+msgid "The partition's data region doesn't occupy the entire partition."
+msgstr ""
+
+#: libparted/labels/mac.c:675
+#, c-format
+msgid ""
+"Weird block size on device descriptor: %d bytes is not divisible by 512."
+msgstr ""
+
+#: libparted/labels/mac.c:688
+#, c-format
+msgid ""
+"The driver descriptor says the physical block size is %d bytes, but Linux "
+"says it is %d bytes."
+msgstr ""
+
+#: libparted/labels/mac.c:736
+msgid "No valid partition map found."
+msgstr ""
+
+#: libparted/labels/mac.c:795
+#, c-format
+msgid ""
+"Conflicting partition map entry sizes!  Entry 1 says it is %d, but entry %d "
+"says it is %d!"
+msgstr ""
+
+#: libparted/labels/mac.c:822
+msgid "Weird!  There are 2 partitions map entries!"
+msgstr ""
+
+#: libparted/labels/mac.c:1347
+msgid ""
+"Changing the name of a root or swap partition will prevent Linux from "
+"recognising it as such."
+msgstr ""
+
+#: libparted/labels/mac.c:1443
+msgid "Can't add another partition -- the partition map is too small!"
+msgstr ""
+
+#: libparted/labels/pc98.c:354
+#, c-format
+msgid "Invalid partition table on %s."
+msgstr ""
+
+#: libparted/labels/pc98.c:406 libparted/labels/pc98.c:484
+#, c-format
+msgid ""
+"Partition %d isn't aligned to cylinder boundaries.  This is still "
+"unsupported."
+msgstr ""
+
+#: libparted/labels/pc98.c:791
+msgid "Can't add another partition."
+msgstr ""
+
+#: libparted/labels/rdb.c:162
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:497
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen."
+msgstr ""
+
+#: libparted/labels/rdb.c:581
+#, c-format
+msgid "%s : Loop detected at block %d."
+msgstr ""
+
+#: libparted/labels/rdb.c:600
+#, c-format
+msgid "%s : The %s list seems bad at block %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:689
+#, c-format
+msgid "%s : Failed to list bad blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:697
+#, c-format
+msgid "%s : Failed to list partition blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:705
+#, c-format
+msgid "%s : Failed to list file system blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:713
+#, c-format
+msgid "%s : Failed to list boot blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:740
+#, c-format
+msgid "Failed to write partition block at %d."
+msgstr ""
+
+#: libparted/labels/rdb.c:1069
+msgid "Unable to allocate a partition number."
+msgstr ""
+
+#: libparted/labels/sun.c:145
+msgid "Corrupted Sun disk label detected."
+msgstr ""
+
+#: libparted/labels/sun.c:266
+#, c-format
+msgid ""
+"The disk CHS geometry (%d,%d,%d) reported by the operating system does not "
+"match the geometry stored on the disk label (%d,%d,%d)."
+msgstr ""
+
+#: libparted/labels/sun.c:288
+#, c-format
+msgid "The disk label describes a disk bigger than %s."
+msgstr ""
+
+#: libparted/labels/sun.c:442
+#, c-format
+msgid "The disk has %d cylinders, which is greater than the maximum of 65536."
+msgstr ""
+
+#: libparted/labels/sun.c:737
+msgid ""
+"The Whole Disk partition is the only available one left.  Generally, it is "
+"not a good idea to overwrite this partition with a real one.  Solaris may "
+"not be able to boot without it, and SILO (the sparc boot loader) appreciates "
+"it as well."
+msgstr ""
+
+#: libparted/labels/sun.c:752
+msgid "Sun disk label is full."
+msgstr ""
+
+#: libparted/labels/vtoc.c:163
+#, c-format
+msgid ""
+"%s opening device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:167
+#, c-format
+msgid ""
+"%s seeking device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:171
+#, c-format
+msgid ""
+"%s writing to device '%s' failed,\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:175
+#, c-format
+msgid ""
+"%s reading from device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:179
+#, c-format
+msgid "Fatal error\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:418
+msgid "Could not read VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:424
+msgid "Could not read VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:431
+msgid "Could not read VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:438
+msgid "Could not read VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:445
+msgid "Could not read VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:462
+msgid "Could not write VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:468
+msgid "Could not write VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:475
+msgid "Could not write VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:482
+msgid "Could not write VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:489
+msgid "Could not write VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/libparted.c:296 libparted/libparted.c:316
+msgid "Out of memory."
+msgstr ""
+
+#: libparted/unit.c:139
+msgid "Cannot get unit size for special unit 'COMPACT'."
+msgstr ""
+
+#: libparted/unit.c:386
+#, c-format
+msgid "\"%s\" has invalid syntax for locations."
+msgstr ""
+
+#: libparted/unit.c:394
+#, c-format
+msgid "The maximum head value is %d."
+msgstr ""
+
+#: libparted/unit.c:401
+#, c-format
+msgid "The maximum sector value is %d."
+msgstr ""
+
+#: libparted/unit.c:413 libparted/unit.c:545
+#, c-format
+msgid "The location %s is outside of the device %s."
+msgstr ""
+
+#: libparted/unit.c:527
+msgid "Invalid number."
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:63 libparted/fs/amiga/apfs.c:56
+#: libparted/fs/amiga/asfs.c:70
+#, c-format
+msgid "%s : Failed to allocate partition block\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:78 libparted/fs/amiga/apfs.c:70
+#: libparted/fs/amiga/asfs.c:86
+#, c-format
+msgid "%s : Failed to allocate block\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:83 libparted/fs/amiga/apfs.c:75
+#, c-format
+msgid "%s : Couldn't read boot block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:99 libparted/fs/amiga/apfs.c:86
+#: libparted/fs/amiga/asfs.c:92 libparted/fs/amiga/asfs.c:106
+#, c-format
+msgid "%s : Couldn't read root block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:72
+#, c-format
+msgid "%s : Failed to allocate id list element\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:189
+#, c-format
+msgid "%s : Couldn't read block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:202
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:212
+#, c-format
+msgid "%s : Couldn't write block %d\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:278
+#, c-format
+msgid "%s : Failed to allocate disk_specific rdb block\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:289
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:318
+#, c-format
+msgid "%s : Failed to read partition block %llu\n"
+msgstr ""
+
+#: libparted/fs/ext2/ext2.c:87 libparted/fs/ext2/ext2.c:112
+msgid "Inconsistent group descriptors!"
+msgstr ""
+
+#: libparted/fs/ext2/ext2.c:91 libparted/fs/ext2/ext2.c:116
+msgid "File system full!"
+msgstr ""
+
+#: libparted/fs/ext2/ext2.c:686
+msgid "Invalid superblock.  Are you sure this is an ext2 file system?"
+msgstr ""
+
+#: libparted/fs/ext2/ext2.c:700 libparted/fs/ext2/ext2_resize.c:658
+msgid "File system has errors!  You should run e2fsck."
+msgstr ""
+
+#: libparted/fs/ext2/ext2.c:711
+msgid ""
+"File system was not cleanly unmounted!  You should run e2fsck.  Modifying an "
+"unclean file system could cause severe corruption."
+msgstr ""
+
+#: libparted/fs/ext2/ext2.c:731
+msgid "File system has an incompatible feature enabled."
+msgstr ""
+
+#: libparted/fs/ext2/ext2.c:742
+msgid "Error allocating buffer cache."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:114
+msgid ""
+"Found an inode with a incorrect link count.  Better go run e2fsck first!"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:487
+msgid "Not enough free inodes!"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:223
+msgid "File system is too full to remove a group!"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:232
+msgid "File system has too many allocated inodes to remove a group!"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:491
+msgid "adding groups"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:528
+#, c-format
+msgid "Your file system is too full to resize it to %i blocks.  Sorry."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:538
+#, c-format
+msgid ""
+"Your file system has too many occupied inodes to resize it to %i blocks.  "
+"Sorry."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:666
+msgid "File system was not cleanly unmounted!  You should run e2fsck."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:675
+msgid ""
+"The file system has the 'dir_index' feature enabled.  Parted can only resize "
+"the file system if it disables this feature.  You can enable it later by "
+"running 'tune2fs -O dir_index DEVICE' and then 'e2fsck -fD DEVICE'."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:691
+msgid ""
+"A resize operation on this file system will use EXPERIMENTAL code\n"
+"that MAY CORRUPT it (although no one has reported any such damage yet).\n"
+"You should at least backup your data first, and run 'e2fsck -f' afterwards."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_block_relocator.c:198
+msgid "Cross-linked blocks found!  Better go run e2fsck first!"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_block_relocator.c:537
+#, c-format
+msgid "Block %i has no reference?  Weird."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_block_relocator.c:737
+#, c-format
+msgid "Block %i shouldn't have been marked (%d, %d)!"
+msgstr ""
+
+#: libparted/fs/ext2/interface.c:186
+msgid ""
+"The ext2 file system passed a basic check.  For a more comprehensive check, "
+"use the e2fsck program."
+msgstr ""
+
+#: libparted/fs/ext2/interface.c:203
+msgid "Sorry, can't move the start of ext2 partitions yet!"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_buffer.c:82
+msgid "Couldn't flush buffer cache!"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_mkfs.c:162
+msgid "writing per-group metadata"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_mkfs.c:564
+msgid "File system too small for ext2."
+msgstr ""
+
+#: libparted/fs/fat/calc.c:135
+#, c-format
+msgid ""
+"You need %s of free disk space to shrink this partition to this size.  "
+"Currently, only %s is free."
+msgstr ""
+
+#: libparted/fs/fat/context.c:56
+#, c-format
+msgid ""
+"Cluster start delta = %d, which is not a multiple of the cluster size %d."
+msgstr ""
+
+#: libparted/fs/fat/fat.c:308
+#, c-format
+msgid "Partition too big/small for a %s file system."
+msgstr ""
+
+#: libparted/fs/fat/fat.c:474
+msgid ""
+"The FATs don't match.  If you don't know what this means, then select "
+"cancel, run scandisk on the file system, and then come back."
+msgstr ""
+
+#: libparted/fs/fat/fat.c:514
+msgid "There are no possible configurations for this FAT type."
+msgstr ""
+
+#: libparted/fs/fat/fat.c:526
+#, c-format
+msgid ""
+"File system doesn't have expected sizes for Windows to like it.  Cluster "
+"size is %dk (%dk expected); number of clusters is %d (%d expected); size of "
+"FATs is %d sectors (%d expected)."
+msgstr ""
+
+#: libparted/fs/fat/fat.c:549
+#, c-format
+msgid ""
+"File system is reporting the free space as %d clusters, not %d clusters."
+msgstr ""
+
+#: libparted/fs/fat/fat.c:874
+msgid ""
+"GNU Parted was miscompiled: the FAT boot sector should be 512 bytes.  FAT "
+"support will be disabled."
+msgstr ""
+
+#: libparted/fs/fat/resize.c:159
+msgid ""
+"There's not enough room in the root directory for all of the files.  Either "
+"cancel, or ignore to lose the files."
+msgstr ""
+
+#: libparted/fs/fat/resize.c:300
+msgid "Error writing to the root directory."
+msgstr ""
+
+#: libparted/fs/fat/resize.c:489
+msgid "If you leave your file system as FAT16, then you will have no problems."
+msgstr ""
+
+#: libparted/fs/fat/resize.c:492
+msgid ""
+"If you convert to FAT16, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual)."
+msgstr ""
+
+#: libparted/fs/fat/resize.c:500
+msgid ""
+"If you leave your file system as FAT32, then you will not introduce any new "
+"problems."
+msgstr ""
+
+#: libparted/fs/fat/resize.c:504
+msgid ""
+"If you convert to FAT32, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual).  Also, "
+"converting to FAT32 will make the file system unreadable by MS DOS, MS "
+"Windows 95a, and MS Windows NT."
+msgstr ""
+
+#: libparted/fs/fat/resize.c:518
+#, c-format
+msgid "%s  %s  %s"
+msgstr ""
+
+#: libparted/fs/fat/resize.c:519
+msgid "Would you like to use FAT32?"
+msgstr ""
+
+#: libparted/fs/fat/resize.c:550 libparted/fs/fat/resize.c:566
+#, c-format
+msgid "%s  %s"
+msgstr ""
+
+#: libparted/fs/fat/resize.c:551
+msgid ""
+"The file system can only be resized to this size by converting to FAT16."
+msgstr ""
+
+#: libparted/fs/fat/resize.c:567
+msgid ""
+"The file system can only be resized to this size by converting to FAT32."
+msgstr ""
+
+#: libparted/fs/fat/resize.c:580
+msgid ""
+"GNU Parted cannot resize this partition to this size.  We're working on it!"
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:49 libparted/fs/fat/bootsector.c:56
+msgid "File system has an invalid signature for a FAT file system."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:64
+msgid "File system has an invalid sector size for a FAT file system."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:71
+msgid "File system has an invalid cluster size for a FAT file system."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:78
+msgid ""
+"File system has an invalid number of reserved sectors for a FAT file system."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:85
+msgid "File system has an invalid number of FATs."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:139
+#, c-format
+msgid ""
+"This file system has a logical sector size of %d.  GNU Parted is known not "
+"to work properly with sector sizes other than 512 bytes."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:164
+#, c-format
+msgid ""
+"The file system's CHS geometry is (%d, %d, %d), which is invalid.  The "
+"partition table's CHS geometry is (%d, %d, %d).  If you select Ignore, the "
+"file system's CHS geometry will be left unchanged.  If you select Fix, the "
+"file system's CHS geometry will be set to match the partition table's CHS "
+"geometry."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:213
+msgid "FAT boot sector says logical sector size is 0.  This is weird. "
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:219
+msgid "FAT boot sector says there are no FAT tables.  This is weird. "
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:225
+msgid "FAT boot sector says clusters are 0 sectors.  This is weird. "
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:235
+msgid "File system is FAT12, which is unsupported."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:411
+#, c-format
+msgid ""
+"The information sector has the wrong signature (%x).  Select cancel for now, "
+"and send in a bug report.  If you're desperate, it's probably safe to ignore."
+msgstr ""
+
+#: libparted/fs/fat/count.c:152
+#, c-format
+msgid "Bad directory entry for %s: first cluster is the end of file marker."
+msgstr ""
+
+#: libparted/fs/fat/count.c:165
+#, c-format
+msgid ""
+"Bad FAT: unterminated chain for %s.  You should run dosfsck or scandisk."
+msgstr ""
+
+#: libparted/fs/fat/count.c:174
+#, c-format
+msgid ""
+"Bad FAT: cluster %d outside file system in chain for %s.  You should run "
+"dosfsck or scandisk."
+msgstr ""
+
+#: libparted/fs/fat/count.c:184
+#, c-format
+msgid ""
+"Bad FAT: cluster %d is cross-linked for %s.  You should run dosfsck or "
+"scandisk."
+msgstr ""
+
+#: libparted/fs/fat/count.c:203
+#, c-format
+msgid "%s is %dk, but it has %d clusters (%dk)."
+msgstr ""
+
+#: libparted/fs/fat/count.c:266
+#, c-format
+msgid ""
+"The file %s is marked as a system file.  This means moving it could cause "
+"some programs to stop working."
+msgstr ""
+
+#: libparted/fs/fat/table.c:137
+#, c-format
+msgid ""
+"FAT %d media %x doesn't match the boot sector's media %x.  You should "
+"probably run scandisk."
+msgstr ""
+
+#: libparted/fs/fat/table.c:269
+#, c-format
+msgid "fat_table_set: cluster %ld outside file system"
+msgstr ""
+
+#: libparted/fs/fat/table.c:301
+#, c-format
+msgid "fat_table_get: cluster %ld outside file system"
+msgstr ""
+
+#: libparted/fs/fat/table.c:343
+msgid "fat_table_alloc_cluster: no free clusters"
+msgstr ""
+
+#: libparted/fs/linux_swap/linux_swap.c:275
+#, c-format
+msgid "Unrecognised old style linux swap signature '%10s'."
+msgstr ""
+
+#: libparted/fs/linux_swap/linux_swap.c:318
+#, c-format
+msgid "Unrecognised new style linux swap signature '%10s'."
+msgstr ""
+
+#: libparted/fs/linux_swap/linux_swap.c:358
+#, c-format
+msgid "Unrecognised swsusp linux swap signature '%9s'."
+msgstr ""
+
+#: libparted/fs/linux_swap/linux_swap.c:434
+msgid "Too many bad pages."
+msgstr ""
+
+#: libparted/fs/hfs/advfs.c:121 libparted/fs/hfs/advfs_plus.c:122
+#: libparted/fs/hfs/reloc.c:414 libparted/fs/hfs/reloc.c:508
+#: libparted/fs/hfs/reloc_plus.c:539 libparted/fs/hfs/reloc_plus.c:658
+#: libparted/fs/hfs/reloc_plus.c:772
+msgid "The file system contains errors."
+msgstr ""
+
+#: libparted/fs/hfs/advfs_plus.c:287
+msgid "Bad blocks could not be read."
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:137
+#, c-format
+msgid ""
+"Trying to register an extent starting at block 0x%X, but another one already "
+"exists at this position.  You should check the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:214
+#, c-format
+msgid ""
+"Trying to move an extent from block Ox%X to block Ox%X, but another one "
+"already exists at this position.  This should not happen!"
+msgstr ""
+
+#: libparted/fs/hfs/file.c:143
+#, c-format
+msgid "Could not update the extent cache for HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:180
+#, c-format
+msgid "Trying to read HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:190 libparted/fs/hfs/file.c:220
+#, c-format
+msgid "Could not find sector %lli of HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:210
+#, c-format
+msgid "Trying to write HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:157
+#, c-format
+msgid "Could not update the extent cache for HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:202
+#, c-format
+msgid "Trying to read HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:213 libparted/fs/hfs/file_plus.c:256
+#, c-format
+msgid "Could not find sector %lli of HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:245
+#, c-format
+msgid "Trying to write HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:232
+msgid "Sorry, HFS cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:262 libparted/fs/hfs/hfs.c:641
+msgid "Data relocation has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:281
+msgid "Data relocation left some data in the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:320
+msgid "writing HFS Master Directory Block"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:468
+msgid "No valid HFS[+X] signature has been found while opening."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:478
+#, c-format
+msgid "Version %d of HFS+ isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:489
+#, c-format
+msgid "Version %d of HFSX isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:672
+msgid "Data relocation left some data at the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:720
+msgid "Error while writing the allocation file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:735
+msgid "Error while writing the compatibility part of the allocation file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:750
+msgid "writing HFS+ Volume Header"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:850
+msgid "An error occurred while looking for the mandatory bad blocks file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:904
+msgid ""
+"It seems there is an error in the HFS wrapper: the bad blocks file doesn't "
+"contain the embedded HFS+ volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:940
+msgid "Sorry, HFS+ cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:975
+msgid "shrinking embedded HFS+ volume"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:991
+msgid "Resizing the HFS+ volume has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:998
+msgid "shrinking HFS wrapper"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:1007
+msgid "Updating the HFS wrapper has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:1109 libparted/fs/hfs/hfs.c:1194
+#, c-format
+msgid ""
+"This is not a real %s check.  This is going to extract special low level "
+"files for debugging purposes."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:155
+msgid "Bad block list header checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:168
+#, c-format
+msgid ""
+"Invalid size of a transaction block while replaying the journal (%i bytes)."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:260
+msgid ""
+"Journal stored outside of the volume are not supported.  Try to desactivate "
+"the journal and run Parted again."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:271
+msgid "Journal offset or size is not multiple of the sector size."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:292
+msgid "Incorrect magic values in the journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:302
+msgid "Journal size mismatch between journal info block and journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:314
+msgid "Some header fields are not multiple of the sector size."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:323
+msgid ""
+"The sector size stored in the journal is not 512 bytes.  Parted only "
+"supports 512 bytes length sectors."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:335
+msgid "Bad journal checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:353
+msgid ""
+"The journal is not empty.  Parted must replay the transactions before "
+"opening the file system.  This will modify the file system."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:381
+msgid ""
+"The volume header or the master directory block has changed while replaying "
+"the journal.  You should restart Parted."
+msgstr ""
+
+#: libparted/fs/hfs/probe.c:51
+#, c-format
+msgid ""
+"Parted can't use HFS file systems on disks with a sector size not equal to %"
+"d bytes."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:151 libparted/fs/hfs/reloc_plus.c:155
+msgid "An extent has not been relocated."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:251 libparted/fs/hfs/reloc_plus.c:307
+msgid ""
+"A reference to an extent comes from a place it should not.  You should check "
+"the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:381
+msgid "This HFS volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:475
+msgid "This HFS volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:517 libparted/fs/hfs/reloc_plus.c:668
+msgid ""
+"The extents overflow file should not contain its own extents!  You should "
+"check the file system."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:574 libparted/fs/hfs/reloc_plus.c:847
+msgid "Could not cache the file system in memory."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:635 libparted/fs/hfs/reloc_plus.c:908
+msgid "Bad blocks list could not be loaded."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:649 libparted/fs/hfs/reloc_plus.c:924
+msgid "An error occurred during extent relocation."
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:495
+msgid "This HFS+ volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:619
+msgid "This HFS+ volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: parted/parted.c:94
+msgid "displays this help message"
+msgstr ""
+
+#: parted/parted.c:95
+msgid "lists partition layout on all block devices"
+msgstr ""
+
+#: parted/parted.c:96
+msgid "displays machine parseable output"
+msgstr ""
+
+#: parted/parted.c:97
+msgid "never prompts for user intervention"
+msgstr ""
+
+#: parted/parted.c:98
+msgid "displays the version"
+msgstr ""
+
+#: parted/parted.c:111
+msgid ""
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"
+msgstr ""
+
+#: parted/parted.c:114
+msgid "LABEL-TYPE is one of: "
+msgstr ""
+
+#: parted/parted.c:115
+msgid "FLAG is one of: "
+msgstr ""
+
+#: parted/parted.c:116
+msgid "UNIT is one of: "
+msgstr ""
+
+#: parted/parted.c:117
+msgid "PART-TYPE is one of: primary, logical, extended\n"
+msgstr ""
+
+#: parted/parted.c:119
+msgid "FS-TYPE is one of: "
+msgstr ""
+
+#: parted/parted.c:120
+msgid ""
+"START and END are disk locations, such as 4GB or 10%.  Negative values count "
+"from the end of the disk.  For example, -1s specifies exactly the last "
+"sector.\n"
+msgstr ""
+
+#: parted/parted.c:123
+msgid "STATE is one of: on, off\n"
+msgstr ""
+
+#: parted/parted.c:124
+msgid "DEVICE is usually /dev/hda or /dev/sda\n"
+msgstr ""
+
+#: parted/parted.c:125
+msgid "NAME is any word you want\n"
+msgstr ""
+
+#: parted/parted.c:126
+msgid "The partition must have one of the following FS-TYPEs: "
+msgstr ""
+
+#: parted/parted.c:130
+msgid ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+msgstr ""
+
+#: parted/parted.c:176
+#, c-format
+msgid "%0.f%%\t(time left %.2d:%.2d)"
+msgstr ""
+
+#: parted/parted.c:195
+#, c-format
+msgid ""
+"Partition %s is being used. You must unmount it before you modify it with "
+"Parted."
+msgstr ""
+
+#: parted/parted.c:211
+#, c-format
+msgid "Partition(s) on %s are being used."
+msgstr ""
+
+#: parted/parted.c:223
+msgid ""
+"The existing file system will be destroyed and all data on the partition "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:235
+#, c-format
+msgid ""
+"The existing disk label on %s will be destroyed and all data on this disk "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:458 parted/parted.c:652 parted/parted.c:1044
+#: parted/parted.c:1128 parted/parted.c:1771 parted/parted.c:1852
+#: parted/parted.c:1900
+msgid "Partition number?"
+msgstr ""
+
+#: parted/parted.c:500
+msgid "Source device?"
+msgstr ""
+
+#: parted/parted.c:504
+msgid "Source partition number?"
+msgstr ""
+
+#: parted/parted.c:509
+msgid "Can't copy an extended partition."
+msgstr ""
+
+#: parted/parted.c:515
+msgid "Destination partition number?"
+msgstr ""
+
+#: parted/parted.c:615
+msgid "New disk label type?"
+msgstr ""
+
+#: parted/parted.c:656
+msgid "File system?"
+msgstr ""
+
+#: parted/parted.c:707 parted/parted.c:878
+msgid "Partition type?"
+msgstr ""
+
+#: parted/parted.c:714 parted/parted.c:885 parted/parted.c:1131
+msgid "Partition name?"
+msgstr ""
+
+#: parted/parted.c:722 parted/parted.c:895
+msgid "File system type?"
+msgstr ""
+
+#: parted/parted.c:729 parted/parted.c:897 parted/parted.c:1059
+#: parted/parted.c:1725 parted/parted.c:1780
+msgid "Start?"
+msgstr ""
+
+#: parted/parted.c:731 parted/parted.c:900 parted/parted.c:1062
+#: parted/parted.c:1727 parted/parted.c:1782
+msgid "End?"
+msgstr ""
+
+#: parted/parted.c:769 parted/parted.c:938
+#, c-format
+msgid ""
+"You requested a partition from %s to %s.\n"
+"The closest location we can manage is %s to %s.  Is this still acceptable to "
+"you?"
+msgstr ""
+
+#: parted/parted.c:890
+msgid "An extended partition cannot hold a file system.  Did you want mkpart?"
+msgstr ""
+
+#: parted/parted.c:1050
+msgid "Can't move an extended partition."
+msgstr ""
+
+#: parted/parted.c:1079
+msgid "Can't move a partition onto itself.  Try using resize, perhaps?"
+msgstr ""
+
+#: parted/parted.c:1227
+#, c-format
+msgid "Minor: %d\n"
+msgstr ""
+
+#: parted/parted.c:1228
+#, c-format
+msgid "Flags: %s\n"
+msgstr ""
+
+#: parted/parted.c:1229
+#, c-format
+msgid "File System: %s\n"
+msgstr ""
+
+#: parted/parted.c:1230
+msgid "Size:         "
+msgstr ""
+
+#: parted/parted.c:1235
+msgid "Minimum size: "
+msgstr ""
+
+#: parted/parted.c:1238
+msgid "Maximum size: "
+msgstr ""
+
+#: parted/parted.c:1362
+#, c-format
+msgid "Model: %s (%s)\n"
+msgstr ""
+
+#: parted/parted.c:1364
+#, c-format
+msgid "Disk %s: %s\n"
+msgstr ""
+
+#: parted/parted.c:1365
+#, c-format
+msgid "Sector size (logical/physical): %lldB/%lldB\n"
+msgstr ""
+
+#: parted/parted.c:1383
+#, c-format
+msgid "BIOS cylinder,head,sector geometry: %d,%d,%d.  Each cylinder is %s.\n"
+msgstr ""
+
+#: parted/parted.c:1392
+#, c-format
+msgid "Partition Table: %s\n"
+msgstr ""
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Number"
+msgstr ""
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Start"
+msgstr ""
+
+#: parted/parted.c:1407 parted/parted.c:1410
+msgid "End"
+msgstr ""
+
+#: parted/parted.c:1410
+msgid "Size"
+msgstr ""
+
+#: parted/parted.c:1414
+msgid "Type"
+msgstr ""
+
+#: parted/parted.c:1416
+msgid "File system"
+msgstr ""
+
+#: parted/parted.c:1419
+msgid "Name"
+msgstr ""
+
+#: parted/parted.c:1421
+msgid "Flags"
+msgstr ""
+
+#: parted/parted.c:1477
+msgid "Free Space"
+msgstr ""
+
+#: parted/parted.c:1624
+#, c-format
+msgid ""
+"A %s %s partition was found at %s -> %s.  Do you want to add it to the "
+"partition table?"
+msgstr ""
+
+#: parted/parted.c:1663
+msgid "searching for file systems"
+msgstr ""
+
+#: parted/parted.c:1877
+msgid "New device?"
+msgstr ""
+
+#: parted/parted.c:1902
+msgid "Flag to Invert?"
+msgstr ""
+
+#: parted/parted.c:1907
+msgid "New state?"
+msgstr ""
+
+#: parted/parted.c:1944
+msgid "Unit?"
+msgstr ""
+
+#: parted/parted.c:2093
+msgid "check"
+msgstr ""
+
+#: parted/parted.c:2096
+msgid ""
+"check NUMBER                             do a simple check on the file system"
+msgstr ""
+
+#: parted/parted.c:2102
+msgid "cp"
+msgstr ""
+
+#: parted/parted.c:2105
+msgid ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2111
+msgid "help"
+msgstr ""
+
+#: parted/parted.c:2114
+msgid ""
+"help [COMMAND]                           print general help, or help on "
+"COMMAND"
+msgstr ""
+
+#: parted/parted.c:2120
+msgid "mklabel"
+msgstr ""
+
+#: parted/parted.c:2120
+msgid "mktable"
+msgstr ""
+
+#: parted/parted.c:2123
+msgid ""
+"mklabel,mktable LABEL-TYPE               create a new disklabel (partition "
+"table)"
+msgstr ""
+
+#: parted/parted.c:2129
+msgid "mkfs"
+msgstr ""
+
+#: parted/parted.c:2132
+msgid ""
+"mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on "
+"partititon NUMBER"
+msgstr ""
+
+#: parted/parted.c:2138
+msgid "mkpart"
+msgstr ""
+
+#: parted/parted.c:2141
+msgid "mkpart PART-TYPE [FS-TYPE] START END     make a partition"
+msgstr ""
+
+#: parted/parted.c:2147
+msgid ""
+"'mkpart' makes a partition without creating a new file system on the "
+"partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"
+msgstr ""
+
+#: parted/parted.c:2152
+msgid "mkpartfs"
+msgstr ""
+
+#: parted/parted.c:2155
+msgid ""
+"mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system"
+msgstr ""
+
+#: parted/parted.c:2161
+msgid "move"
+msgstr ""
+
+#: parted/parted.c:2164
+msgid "move NUMBER START END                    move partition NUMBER"
+msgstr ""
+
+#: parted/parted.c:2169
+msgid "name"
+msgstr ""
+
+#: parted/parted.c:2172
+msgid "name NUMBER NAME                         name partition NUMBER as NAME"
+msgstr ""
+
+#: parted/parted.c:2177
+msgid "print"
+msgstr ""
+
+#: parted/parted.c:2180
+msgid ""
+"print [devices|free|list,all|NUMBER]     display the partition table, "
+"available devices, free space, all found partitions, or a particular "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2185
+msgid ""
+"Without arguments, 'print' displays the entire partition table. However with "
+"the following arguments it performs various other actions.\n"
+msgstr ""
+
+#: parted/parted.c:2187
+msgid "  devices   : display all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2188
+msgid ""
+"  free      : display information about free unpartitioned space on the "
+"current block device\n"
+msgstr ""
+
+#: parted/parted.c:2190
+msgid ""
+"  list, all : display the partition tables of all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2191
+msgid ""
+"  NUMBER    : display more detailed information about this particular "
+"partition\n"
+msgstr ""
+
+#: parted/parted.c:2196
+msgid "quit"
+msgstr ""
+
+#: parted/parted.c:2199
+msgid "quit                                     exit program"
+msgstr ""
+
+#: parted/parted.c:2204
+msgid "rescue"
+msgstr ""
+
+#: parted/parted.c:2207
+msgid ""
+"rescue START END                         rescue a lost partition near START "
+"and END"
+msgstr ""
+
+#: parted/parted.c:2213
+msgid "resize"
+msgstr ""
+
+#: parted/parted.c:2216
+msgid ""
+"resize NUMBER START END                  resize partition NUMBER and its "
+"file system"
+msgstr ""
+
+#: parted/parted.c:2224
+msgid "rm"
+msgstr ""
+
+#: parted/parted.c:2227
+msgid "rm NUMBER                                delete partition NUMBER"
+msgstr ""
+
+#: parted/parted.c:2232
+msgid "select"
+msgstr ""
+
+#: parted/parted.c:2235
+msgid "select DEVICE                            choose the device to edit"
+msgstr ""
+
+#: parted/parted.c:2240
+msgid "set"
+msgstr ""
+
+#: parted/parted.c:2243
+msgid ""
+"set NUMBER FLAG STATE                    change the FLAG on partition NUMBER"
+msgstr ""
+
+#: parted/parted.c:2249
+msgid "toggle"
+msgstr ""
+
+#: parted/parted.c:2252
+msgid ""
+"toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+"partition NUMBER"
+msgstr ""
+
+#: parted/parted.c:2258
+msgid "unit"
+msgstr ""
+
+#: parted/parted.c:2261
+msgid "unit UNIT                                set the default unit to UNIT"
+msgstr ""
+
+#: parted/parted.c:2266
+msgid "version"
+msgstr ""
+
+#: parted/parted.c:2269
+msgid ""
+"version                                  display the version number and "
+"copyright information of GNU Parted"
+msgstr ""
+
+#: parted/parted.c:2273
+msgid ""
+"'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"
+msgstr ""
+
+#: parted/parted.c:2335
+#, c-format
+msgid "Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"
+msgstr ""
+
+#: parted/parted.c:2379
+msgid "No device found"
+msgstr ""
+
+#: parted/parted.c:2412
+msgid "WARNING: You are not superuser.  Watch out for permissions."
+msgstr ""
+
+#: parted/parted.c:2450
+msgid "You may need to update /etc/fstab.\n"
+msgstr ""
+
+#: parted/ui.c:160
+msgid "Welcome to GNU Parted! Type 'help' to view a list of commands.\n"
+msgstr ""
+
+#: parted/ui.c:163
+msgid ""
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run "
+"in\n"
+"interactive mode.\n"
+msgstr ""
+
+#: parted/ui.c:168
+#, c-format
+msgid ""
+"\n"
+"\n"
+"You found a bug in GNU Parted! Here's what you have to do:\n"
+"\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n"
+"\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Please check this version prior to bug reporting.\n"
+"\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"for further information.\n"
+"\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n"
+msgstr ""
+
+#: parted/ui.c:284
+msgid ""
+"\n"
+"Command History:\n"
+msgstr ""
+
+#: parted/ui.c:366
+msgid ""
+"\n"
+"Error: SEGV_MAPERR (Address not mapped to object)\n"
+msgstr ""
+
+#: parted/ui.c:372
+msgid ""
+"\n"
+"Error: SEGV_ACCERR (Invalid permissions for mapped object)\n"
+msgstr ""
+
+#: parted/ui.c:377
+msgid ""
+"\n"
+"Error: A general SIGSEGV signal was encountered.\n"
+msgstr ""
+
+#: parted/ui.c:410
+msgid ""
+"\n"
+"Error: FPE_INTDIV (Integer: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:415
+msgid ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+msgstr ""
+
+#: parted/ui.c:420
+msgid ""
+"\n"
+"Error: FPE_FLTDIV (Float: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:425
+msgid ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+msgstr ""
+
+#: parted/ui.c:430
+msgid ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+msgstr ""
+
+#: parted/ui.c:435
+msgid ""
+"\n"
+"Error: FPE_FLTRES (Float: inexact result)"
+msgstr ""
+
+#: parted/ui.c:440
+msgid ""
+"\n"
+"Error: FPE_FLTINV (Float: invalid operation)"
+msgstr ""
+
+#: parted/ui.c:445
+msgid ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript out of range)"
+msgstr ""
+
+#: parted/ui.c:450
+msgid ""
+"\n"
+"Error: A general SIGFPE signal was encountered."
+msgstr ""
+
+#: parted/ui.c:483
+msgid ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+msgstr ""
+
+#: parted/ui.c:488
+msgid ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+msgstr ""
+
+#: parted/ui.c:493
+msgid ""
+"\n"
+"Error: ILL_ILLADR (Illegal addressing mode)"
+msgstr ""
+
+#: parted/ui.c:498
+msgid ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+msgstr ""
+
+#: parted/ui.c:503
+msgid ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+msgstr ""
+
+#: parted/ui.c:508
+msgid ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+msgstr ""
+
+#: parted/ui.c:513
+msgid ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+msgstr ""
+
+#: parted/ui.c:518
+msgid ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+msgstr ""
+
+#: parted/ui.c:523
+msgid ""
+"\n"
+"Error: A general SIGILL signal was encountered."
+msgstr ""
+
+#: parted/ui.c:1024
+msgid "Expecting a partition number."
+msgstr ""
+
+#: parted/ui.c:1033
+msgid "Partition doesn't exist."
+msgstr ""
+
+#: parted/ui.c:1053
+msgid "Expecting a file system type."
+msgstr ""
+
+#: parted/ui.c:1060
+#, c-format
+msgid "Unknown file system type \"%s\"."
+msgstr ""
+
+#: parted/ui.c:1080
+msgid "Expecting a disk label type."
+msgstr ""
+
+#: parted/ui.c:1178
+msgid "Can't create any more partitions."
+msgstr ""
+
+#: parted/ui.c:1188
+msgid "Expecting a partition type."
+msgstr ""
+
+#: parted/ui.c:1315
+msgid "on"
+msgstr ""
+
+#: parted/ui.c:1316
+msgid "off"
+msgstr ""
+
+#: parted/ui.c:1431
+msgid "OPTIONs:"
+msgstr ""
+
+#: parted/ui.c:1436
+msgid "COMMANDs:"
+msgstr ""
+
+#: parted/ui.c:1445
+#, c-format
+msgid "Using %s\n"
+msgstr ""
+
+#: parted/ui.c:1519
+msgid "This command does not make sense in non-interactive mode.\n"
+msgstr ""
diff --git a/parted-1.8.7/po/pl.gmo b/parted-1.8.7/po/pl.gmo
new file mode 100644
index 0000000..d845e40
--- /dev/null
+++ b/parted-1.8.7/po/pl.gmo
Binary files differ
diff --git a/parted-1.8.7/po/pl.po b/parted-1.8.7/po/pl.po
new file mode 100644
index 0000000..df29f1c
--- /dev/null
+++ b/parted-1.8.7/po/pl.po
@@ -0,0 +1,3306 @@
+# Polish translations for GNU Parted package.
+# Copyright (C) 2003, 2005, 2006 Free Software Foundation, Inc.
+# Wojciech Polak <polak@gnu.org>, 2003, 2005, 2006.
+# Jakub Bogusz <qboosh@pld-linux.org>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: parted 1.8.1\n"
+"Report-Msgid-Bugs-To: bug-parted@gnu.org\n"
+"POT-Creation-Date: 2007-05-09 17:02-0400\n"
+"PO-Revision-Date: 2006-12-07 18:01+0100\n"
+"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
+"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\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"
+
+#: lib/closeout.c:74
+msgid "write error"
+msgstr ""
+
+#: lib/error.c:125
+#, fuzzy
+msgid "Unknown system error"
+msgstr "Nieznany typ systemu plików \"%s\"."
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK).  A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#.
+#. If you don't know what to put here, please see
+#. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr ""
+
+#: lib/regcomp.c:131
+msgid "Success"
+msgstr ""
+
+#: lib/regcomp.c:134
+msgid "No match"
+msgstr ""
+
+#: lib/regcomp.c:137
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regcomp.c:140
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regcomp.c:143
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regcomp.c:146
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regcomp.c:149
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regcomp.c:152
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regcomp.c:155
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regcomp.c:158
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regcomp.c:161
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regcomp.c:164
+#, fuzzy
+msgid "Invalid range end"
+msgstr "Nieprawid³owy numer."
+
+#: lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regcomp.c:170
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regcomp.c:173
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regcomp.c:176
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regcomp.c:179
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regcomp.c:680
+msgid "No previous regular expression"
+msgstr ""
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr ""
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:66
+msgid "(C)"
+msgstr ""
+
+#: lib/version-etc.c:68
+msgid ""
+"\n"
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:84
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:88
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:92
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:98
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:104
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:110
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:132
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+
+#: lib/xalloc-die.c:35
+msgid "memory exhausted"
+msgstr ""
+
+#: libparted/arch/beos.c:237
+msgid "Disk Image"
+msgstr ""
+
+#: libparted/arch/beos.c:338 libparted/arch/gnu.c:261
+#: libparted/arch/linux.c:1272
+#, c-format
+msgid "Error opening %s: %s"
+msgstr "B³±d podczas otwierania %s: %s"
+
+#: libparted/arch/beos.c:349 libparted/arch/gnu.c:271
+#: libparted/arch/linux.c:1283
+#, c-format
+msgid "Unable to open %s read-write (%s).  %s has been opened read-only."
+msgstr ""
+"Nie mo¿na otworzyæ %s jednocze¶nie w trybie do odczytu i zapisu (%s).  %s "
+"zosta³ otwarty tylko w trybie do odczytu."
+
+#: libparted/arch/beos.c:411 libparted/arch/linux.c:1431
+#, c-format
+msgid "%s during seek for read on %s"
+msgstr "%s podczas ustawiania do odczytu na %s"
+
+#: libparted/arch/beos.c:444 libparted/arch/gnu.c:449 libparted/arch/gnu.c:548
+#: libparted/arch/gnu.c:676 libparted/arch/linux.c:1391
+#: libparted/arch/linux.c:1469
+#, c-format
+msgid "%s during read on %s"
+msgstr "%s podczas czytania %s"
+
+#: libparted/arch/beos.c:480 libparted/arch/gnu.c:509
+#: libparted/arch/linux.c:1546
+#, c-format
+msgid "Can't write to %s, because it is opened read-only."
+msgstr "Nie mo¿na zapisaæ do %s, poniewa¿ otwarte jest tylko do czytania."
+
+#: libparted/arch/beos.c:496 libparted/arch/linux.c:1570
+#, c-format
+msgid "%s during seek for write on %s"
+msgstr "%s podczas ustawiania do zapisu na %s"
+
+#: libparted/arch/beos.c:533 libparted/arch/gnu.c:585 libparted/arch/gnu.c:630
+#: libparted/arch/gnu.c:707 libparted/arch/linux.c:1517
+#: libparted/arch/linux.c:1612 libparted/arch/linux.c:1684
+#, c-format
+msgid "%s during write on %s"
+msgstr "%s podczas zapisu %s"
+
+#: debug/clearfat/clearfat.c:63 partprobe/partprobe.c:137
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:67
+#, c-format
+msgid ""
+"Usage: %s [OPTION]\n"
+"  or:  %s DEVICE MINOR\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:70
+msgid ""
+"Clear unused space on a FAT partition (a GNU Parted testing tool).\n"
+"\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:74
+msgid "      --help     display this help and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:75
+msgid "      --version  output version information and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:77 partprobe/partprobe.c:154
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:285
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:290
+#, fuzzy, c-format
+msgid "too many arguments"
+msgstr "Zbyt du¿o nieprawid³owych stron."
+
+#: partprobe/partprobe.c:141
+#, c-format
+msgid "Usage: %s [OPTION] [DEVICE]...\n"
+msgstr ""
+
+#: partprobe/partprobe.c:142
+msgid ""
+"Inform the OS of partition table changes.\n"
+"\n"
+"  -d, --no-update  don't update the kernel\n"
+"  -s, --summary    print a summary of contents\n"
+"  -h, --help       display this help and exit\n"
+"  -v, --version    output version information and exit\n"
+msgstr ""
+
+#: partprobe/partprobe.c:150
+msgid ""
+"\n"
+"With no DEVICE, probe all partitions.\n"
+msgstr ""
+
+#: libparted/arch/gnu.c:94
+#, c-format
+msgid "Unable to open %s."
+msgstr "Nie mo¿na otworzyæ %s."
+
+#: libparted/arch/gnu.c:114
+msgid "Unable to probe store."
+msgstr "Detekcja geometrii nie powiod³a siê."
+
+#: libparted/arch/gnu.c:352
+msgid ""
+"The partition table cannot be re-read.  This means you need to reboot before "
+"mounting any modified partitions.  You also need to reinstall your boot "
+"loader before you reboot (which may require mounting modified partitions).  "
+"It is impossible do both things!  So you'll need to boot off a rescue disk, "
+"and reinstall your boot loader from the rescue disk.  Read section 4 of the "
+"Parted User documentation for more information."
+msgstr ""
+"Nie mo¿na ponownie odczytaæ tablicy partycji.  Nale¿y ponownie uruchomiæ "
+"komputer przed pod³±czeniem jakichkolwiek zmodyfikowanych partycji.  Nale¿y "
+"tak¿e przeinstalowaæ program ³aduj±cy (boot loader) zanim uruchomisz "
+"ponownie komputer (co mo¿e wymagaæ pod³±czenia zmodyfikowanych partycji).  "
+"Wykonanie dwóch powy¿szych rzeczy jest niemo¿liwe!  A wiêc pozostaje Ci "
+"uruchomienie dysku/p³yty ratunkowej i przeinstalowanie programu ³aduj±cego "
+"prosto z dysku ratunkowego.  Przeczytaj rozdzia³ 4 dokumentacji programu GNU "
+"Parted, aby uzyskaæ wiêcej informacji na ten temat."
+
+#: libparted/arch/gnu.c:369
+#, c-format
+msgid ""
+"The partition table on %s cannot be re-read (%s).  This means the Hurd knows "
+"nothing about any modifications you made.  You should reboot your computer "
+"before doing anything with %s."
+msgstr ""
+"Nie mo¿na ponownie wczytaæ tablicy partycji na %s (%s).  Oznacza to, ¿e Hurd "
+"nie wie o ¿adnych zmianach jakie zosta³y wprowadzone.  Nale¿y ponownie "
+"uruchomiæ komputer zanim wykonasz jak±kolwiek operacjê na %s."
+
+#: libparted/arch/gnu.c:380 parted/parted.c:2443
+msgid ""
+"You should reinstall your boot loader before rebooting.  Read section 4 of "
+"the Parted User documentation for more information."
+msgstr ""
+"Nale¿y przeinstalowaæ program ³aduj±cy (boot loader) przed ponownym "
+"uruchomieniem komputera.  Przeczytaj rozdzia³ 4 dokumentacji u¿ytkownika "
+"Parted, aby uzyskaæ wiêcej informacji."
+
+#: libparted/arch/gnu.c:772
+#, c-format
+msgid "%s trying to sync %s to disk"
+msgstr "B³±d synchronizacji %s do dysku %s"
+
+#: libparted/arch/linux.c:408
+#, c-format
+msgid "Could not stat device %s - %s."
+msgstr "Nie mo¿na sprawdziæ urz±dzenia %s - %s."
+
+#: libparted/arch/linux.c:523
+#, c-format
+msgid ""
+"Could not determine sector size for %s: %s.\n"
+"Using the default sector size (%lld)."
+msgstr ""
+"Nie uda³o siê okre¶liæ rozmiaru sektora dla %s: %s.\n"
+"U¿yto domy¶lnego rozmiaru sektora (%lld)."
+
+#: libparted/arch/linux.c:539
+#, c-format
+msgid ""
+"Device %s has a logical sector size of %lld.  Not all parts of GNU Parted "
+"support this at the moment, and the working code is HIGHLY EXPERIMENTAL.\n"
+msgstr ""
+"Logiczny rozmiar sektora dla %s wynosi %lld. Nie wszystkie czê¶ci GNU "
+"Parteda aktualnie to obs³uguj±, a dzia³aj±cy kod jest WYSOCE "
+"EKSPERYMENTALNY.\n"
+
+#: libparted/arch/linux.c:579
+#, c-format
+msgid "Unable to determine the size of %s (%s)."
+msgstr "Nie mo¿na ustaliæ rozmiaru %s (%s)."
+
+#: libparted/arch/linux.c:668
+#, c-format
+msgid "Could not get identity of device %s - %s"
+msgstr "Nie mo¿na uzyskaæ to¿samo¶ci urz±dzenia %s - %s"
+
+#: libparted/arch/linux.c:677
+msgid "Generic IDE"
+msgstr "Ogólne IDE"
+
+#: libparted/arch/linux.c:698
+#, c-format
+msgid ""
+"Device %s has multiple (%d) logical sectors per physical sector.\n"
+"GNU Parted supports this EXPERIMENTALLY for some special disk label/file "
+"system combinations, e.g. GPT and ext2/3.\n"
+"Please consult the web site for up-to-date information."
+msgstr ""
+"Urz±dzenie %s ma wiele (%d) logicznych sektorów w ka¿dym sektorze "
+"fizycznym.\n"
+"GNU Parted obs³uguje to EKSPERYMENTALNIE dla niektórych specjalnych po³±czeñ "
+"etykiet dysków i systemów plików, np. GPT i ext2/3.\n"
+"Aktualne informacje znajduj± siê na stronie WWW."
+
+#: libparted/arch/linux.c:873
+#, c-format
+msgid "Error initialising SCSI device %s - %s"
+msgstr "B³±d podczas inicjalizacji urz±dzenia SCSI %s - %s"
+
+#: libparted/arch/linux.c:928
+#, c-format
+msgid ""
+"The device %s has zero length, and can't possibly store a file system or "
+"partition table.  Perhaps you selected the wrong device?"
+msgstr ""
+"Urz±dzenie %s posiada zerow± d³ugo¶æ i mo¿e nie byæ w stanie przechowywaæ "
+"systemu plików lub tablicy partycji.  Byæ mo¿e dokonano niew³a¶ciwego wyboru "
+"urz±dzenia?"
+
+#: libparted/arch/linux.c:1032
+#, c-format
+msgid ""
+"Unable to determine geometry of file/device %s.  You should not use Parted "
+"unless you REALLY know what you're doing!"
+msgstr ""
+"Nie mo¿na ustaliæ geometrii pliku/urz±dzenia %s.  W tym przypadku nie jest "
+"zalecane u¿ywanie Parteda, chyba ¿e NAPRAWDÊ wiesz co robisz!"
+
+#: libparted/arch/linux.c:1110
+msgid "DAC960 RAID controller"
+msgstr "Kontroler DAC960 RAID"
+
+#: libparted/arch/linux.c:1115
+msgid "Promise SX8 SATA Device"
+msgstr "Urz±dzenie Promise SX8 SATA"
+
+#: libparted/arch/linux.c:1120
+msgid "IBM S390 DASD drive"
+msgstr "Dysk DASD IBM S390"
+
+#: libparted/arch/linux.c:1125
+msgid "IBM iSeries Virtual DASD"
+msgstr "Wirtualny dysk DASD IBM iSeries"
+
+#: libparted/arch/linux.c:1130
+msgid "Compaq Smart Array"
+msgstr "Compaq Smart Array"
+
+#: libparted/arch/linux.c:1135
+msgid "ATARAID Controller"
+msgstr "Kontroler ATARAID"
+
+#: libparted/arch/linux.c:1140
+msgid "I2O Controller"
+msgstr "Kontroler I2O"
+
+#: libparted/arch/linux.c:1145
+msgid "User-Mode Linux UBD"
+msgstr "UBD z User-Mode Linuksa"
+
+#: libparted/arch/linux.c:1156
+msgid "Linux device-mapper"
+msgstr "Linuksowy device-mapper"
+
+#: libparted/arch/linux.c:1162
+msgid "Unknown"
+msgstr "Nieznane"
+
+#: libparted/arch/linux.c:1169
+msgid "ped_device_new()  Unsupported device type"
+msgstr "ped_device_new()  Ten typ urz±dzenia nie jest wspierany"
+
+#: libparted/arch/linux.c:2083
+#, c-format
+msgid ""
+"Error informing the kernel about modifications to partition %s -- %s.  This "
+"means Linux won't know about any changes you made to %s until you reboot -- "
+"so you shouldn't mount it or use it in any way before rebooting."
+msgstr ""
+"B³±d podczas informowania j±dra systemu o modyfikacji partycji %s -- %s.  "
+"Oznacza to, ¿e Linux nie bêdzie wiedzia³ o ¿adnych zmianach jakie zosta³y "
+"dokonane na %s a¿ do czasu ponownego uruchomienia komputera -- proszê nie "
+"pod³±czaæ ani u¿ywaæ tej partycji do czasu ponownego uruchomienia komputera."
+
+#: libparted/arch/linux.c:2262
+#, c-format
+msgid ""
+"parted was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made. "
+msgstr ""
+"parted nie móg³ ponownie odczytaæ tablicy partycji na %s (%s).  Oznacza to, "
+"¿e Linux nie bêdzie wiedzia³ nic o modyfikacjach jakie zosta³y poczynione. "
+
+#: libparted/arch/linux.c:2368
+#, c-format
+msgid ""
+"The kernel was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made until you "
+"reboot.  You should reboot your computer before doing anything with %s."
+msgstr ""
+"J±dro systemu nie mog³o ponownie odczytaæ tablicy partycji na %s (%s).  "
+"Oznacza to, ¿e Linux nie bêdzie wiedzia³ nic o modyfikacjach jakie zosta³y "
+"poczynione a¿ do czasu ponownego uruchomienia komputera.  Nale¿y ponownie "
+"uruchomiæ komputer zanim wykonasz jak±kolwiek operacjê na %s."
+
+#: libparted/cs/geom.c:162
+msgid "Can't have the end before the start!"
+msgstr "Nie mo¿na mieæ koñca przed pocz±tkiem!"
+
+#: libparted/cs/geom.c:169
+msgid "Can't have a partition outside the disk!"
+msgstr "Nie mo¿na mieæ partycji poza dyskiem!"
+
+#: libparted/cs/geom.c:366
+#, c-format
+msgid "Attempt to write sectors %ld-%ld outside of partition on %s."
+msgstr "Próba zapisania sektorów %ld-%ld poza partycj± na %s."
+
+#: libparted/cs/geom.c:406 libparted/fs/linux_swap/linux_swap.c:475
+msgid "checking for bad blocks"
+msgstr "sprawdzam czy istniej± uszkodzone bloki"
+
+#: libparted/debug.c:102
+#, c-format
+msgid "Backtrace has %d calls on stack:\n"
+msgstr ""
+
+#: libparted/debug.c:114
+#, c-format
+msgid "Assertion (%s) at %s:%d in function %s() failed."
+msgstr ""
+
+#: libparted/disk.c:203
+#, c-format
+msgid "Unable to open %s - unrecognised disk label."
+msgstr "Nie mo¿na otworzyæ %s - nierozpoznana etykieta dysku."
+
+#: libparted/disk.c:471
+#, c-format
+msgid ""
+"This libparted doesn't have write support for %s.  Perhaps it was compiled "
+"read-only."
+msgstr ""
+"Biblioteka libparted nie posiada obs³ugi zapisu dla %s.  Byæ mo¿e zosta³a "
+"ona zbudowana z obs³ug± tylko-do-odczytu."
+
+#: libparted/disk.c:598
+#, c-format
+msgid "Partition %d is %s, but the file system is %s."
+msgstr "Partycja %d jest %s, lecz system plików jest %s."
+
+#: libparted/disk.c:1075
+#, c-format
+msgid "%s disk labels do not support extended partitions."
+msgstr "Etykiety dysku %s nie wspieraj± rozszerzonych partycji."
+
+#: libparted/disk.c:1634
+#, c-format
+msgid "%s disk labels don't support logical or extended partitions."
+msgstr "Etykiety dysku %s nie wspieraj± logicznych lub rozszerzonych partycji."
+
+#: libparted/disk.c:1647
+msgid "Too many primary partitions."
+msgstr "Zbyt du¿o partycji g³ównych."
+
+#: libparted/disk.c:1656
+#, c-format
+msgid ""
+"Can't add a logical partition to %s, because there is no extended partition."
+msgstr ""
+"Nie mo¿na dodaæ logicznej partycji do %s, poniewa¿ nie istnieje rozszerzona "
+"partycja."
+
+#: libparted/disk.c:1680
+#, c-format
+msgid "Can't have more than one extended partition on %s."
+msgstr "Nie mo¿na mieæ wiêcej ni¿ jedn± rozszerzon± partycjê na %s."
+
+#: libparted/disk.c:1690
+msgid "Can't have logical partitions outside of the extended partition."
+msgstr "Nie mo¿na mieæ logicznych partycji poza rozszerzon± partycj±."
+
+#: libparted/disk.c:1715
+#, c-format
+msgid "Can't have a logical partition outside of the extended partition on %s."
+msgstr "%s nie mo¿e mieæ logicznej partycji poza rozszerzon± partycj±."
+
+#: libparted/disk.c:1725 libparted/disk.c:1779 libparted/disk.c:1945
+msgid "Can't have overlapping partitions."
+msgstr "Nie mo¿na mieæ nak³adaj±cych siê partycji."
+
+#: libparted/disk.c:1733
+msgid "Can't have a primary partition inside an extended partition."
+msgstr "Nie mo¿na mieæ g³ównej partycji wewn±trz rozszerzonej partycji."
+
+#: libparted/disk.c:2140
+msgid "metadata"
+msgstr "metadane"
+
+#: libparted/disk.c:2142
+msgid "free"
+msgstr "wolna"
+
+#: libparted/disk.c:2144 parted/ui.c:1169 parted/ui.c:1197
+msgid "extended"
+msgstr "rozszerzona"
+
+#: libparted/disk.c:2146 parted/ui.c:1173 parted/ui.c:1201
+msgid "logical"
+msgstr "logiczna"
+
+#: libparted/disk.c:2148 parted/ui.c:1165 parted/ui.c:1193
+msgid "primary"
+msgstr "g³ówna"
+
+#: libparted/disk.c:2164
+msgid "boot"
+msgstr "³adowalna"
+
+#: libparted/disk.c:2166
+msgid "root"
+msgstr "root"
+
+#: libparted/disk.c:2168
+msgid "swap"
+msgstr "wymiany"
+
+#: libparted/disk.c:2170
+msgid "hidden"
+msgstr "ukryta"
+
+#: libparted/disk.c:2172
+msgid "raid"
+msgstr "raid"
+
+#: libparted/disk.c:2174
+msgid "lvm"
+msgstr "lvm"
+
+#: libparted/disk.c:2176
+msgid "lba"
+msgstr "lba"
+
+#: libparted/disk.c:2178
+msgid "hp-service"
+msgstr "us³uga-hp"
+
+#: libparted/disk.c:2180
+msgid "palo"
+msgstr "palo"
+
+#: libparted/disk.c:2182
+msgid "prep"
+msgstr "prep"
+
+#: libparted/disk.c:2184
+msgid "msftres"
+msgstr "msftres"
+
+#: libparted/disk.c:2190
+#, c-format
+msgid "Unknown partition flag, %d."
+msgstr "Nieznana flaga partycji, %d."
+
+#: libparted/exception.c:78
+msgid "Information"
+msgstr "Informacja"
+
+#: libparted/exception.c:79
+msgid "Warning"
+msgstr "Ostrze¿enie"
+
+#: libparted/exception.c:80
+msgid "Error"
+msgstr "B³±d"
+
+#: libparted/exception.c:81
+msgid "Fatal"
+msgstr "Fatalny b³±d"
+
+#: libparted/exception.c:82
+msgid "Bug"
+msgstr "B³±d"
+
+#: libparted/exception.c:83
+msgid "No Implementation"
+msgstr "Brak implementacji"
+
+#: libparted/exception.c:87
+msgid "Fix"
+msgstr "Popraw"
+
+#: libparted/exception.c:88
+msgid "Yes"
+msgstr "Tak"
+
+#: libparted/exception.c:89
+msgid "No"
+msgstr "Nie"
+
+#: libparted/exception.c:90
+msgid "OK"
+msgstr "OK"
+
+#: libparted/exception.c:91
+msgid "Retry"
+msgstr "Powtórz"
+
+#: libparted/exception.c:92
+msgid "Ignore"
+msgstr "Zignoruj"
+
+#: libparted/exception.c:93
+msgid "Cancel"
+msgstr "Poniechaj"
+
+#: libparted/exception.c:133
+#, c-format
+msgid ""
+"A bug has been detected in GNU Parted.  Refer to the web site of parted "
+"http://www.gnu.org/software/parted/parted.html for more informations of what "
+"could be useful for bug submitting!  Please email a bug report to bug-"
+"parted@gnu.org containing at least the version (%s) and the following "
+"message:  "
+msgstr ""
+"Zosta³ wykryty b³±d w dzia³aniu programu GNU Parted.  Odwied¼ stronê http://"
+"www.gnu.org/software/parted/parted.html w celu uzyskania informacji na temat "
+"zg³aszania b³êdów.  Proszê wys³aæ raport na temat b³êdu na adres bug-"
+"parted@gnu.org, do³±czaj±c numer wersji (%s) oraz nastêpuj±c± wiadomo¶æ:  "
+
+#: libparted/filesys.c:384
+msgid "Could not detect file system."
+msgstr "Nie mo¿na wykryæ systemu plików."
+
+#: libparted/filesys.c:395
+msgid "The file system is bigger than its volume!"
+msgstr "System plików jest wiêkszy ni¿ jego wolumen!"
+
+#: libparted/filesys.c:403
+#, c-format
+msgid "Support for opening %s file systems is not implemented yet."
+msgstr ""
+"Wsparcie dla otwierania systemów plików %s nie zosta³o jeszcze "
+"zaimplementowane."
+
+#: libparted/filesys.c:445
+#, c-format
+msgid "Support for creating %s file systems is not implemented yet."
+msgstr ""
+"Wsparcie dla tworzenia systemów plików %s nie zosta³o jeszcze "
+"zaimplementowane."
+
+#: libparted/filesys.c:505
+#, c-format
+msgid "Support for checking %s file systems is not implemented yet."
+msgstr ""
+"Wsparcie dla sprawdzania systemów plików %s nie zosta³o jeszcze "
+"zaimplementowane."
+
+#: libparted/filesys.c:571
+msgid "raw block copying"
+msgstr "bezpo¶rednie kopiowanie bloków"
+
+#: libparted/filesys.c:582
+msgid "growing file system"
+msgstr "powiêkszanie systemu plików"
+
+#: libparted/filesys.c:622
+msgid "Can't copy onto an overlapping partition."
+msgstr "Nie mo¿na skopiowaæ na nak³adaj±c± siê partycjê."
+
+#: libparted/filesys.c:644
+#, c-format
+msgid ""
+"Direct support for copying file systems is not yet implemented for %s.  "
+"However, support for resizing is implemented.  Therefore, the file system "
+"can be copied if the new partition is at least as big as the old one.  So, "
+"either shrink the partition you are trying to copy, or copy to a bigger "
+"partition."
+msgstr ""
+"Bezpo¶rednie wsparcie kopiowania systemów plików dla %s nie jest jeszcze "
+"zaimplementowane.  Aczkolwiek, wspierana jest zmiana rozmiaru systemu "
+"plików.  Tak wiêc, system plików mo¿e zostaæ skopiowany, je¶li nowa partycja "
+"ma przynajmniej tak± sam± pojemno¶æ jak stara.  Mo¿esz tak¿e zmniejszyæ "
+"rozmiar partycji, któr± chcesz skopiowaæ lub skopiuj na partycjê o wiêkszym "
+"rozmiarze."
+
+#: libparted/filesys.c:658
+#, c-format
+msgid "Support for copying %s file systems is not implemented yet."
+msgstr ""
+"Wsparcie dla kopiowania systemów plików %s nie zosta³o jeszcze "
+"zaimplementowane."
+
+#: libparted/filesys.c:696
+#, c-format
+msgid "Support for resizing %s file systems is not implemented yet."
+msgstr ""
+"Wsparcie dla zmiany wielko¶ci systemów plików %s nie zosta³o jeszcze "
+"zaimplementowane."
+
+#: libparted/fs/reiserfs/reiserfs.c:315
+msgid "creating"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:402
+#, fuzzy
+msgid "The file system is in an invalid state.  Perhaps it is mounted?"
+msgstr "System plików jest wiêkszy ni¿ jego wolumen!"
+
+#: libparted/fs/reiserfs/reiserfs.c:410
+msgid "The file system is in old (unresizeable) format."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:416
+msgid "Invalid free blocks count.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:431
+#, fuzzy
+msgid "checking"
+msgstr "sprawd¼"
+
+#: libparted/fs/reiserfs/reiserfs.c:437
+msgid "Reiserfs tree seems to be corrupted.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:449
+#, fuzzy
+msgid ""
+"The reiserfs file system passed a basic check.  For a more comprehensive "
+"check, run reiserfsck --check."
+msgstr ""
+"System plików ext2 przeszed³ pomy¶lnie podstawowe sprawdzenie.  U¿yj program "
+"e2fsck, aby wykonaæ bardziej wyczerpuj±ce sprawdzenie."
+
+#: libparted/fs/reiserfs/reiserfs.c:474
+#, fuzzy
+msgid "Sorry, can't move the start of reiserfs partitions yet."
+msgstr "Przepraszam, ale na razie nie mo¿na przesun±æ pocz±tku partycji ext2!"
+
+#: libparted/fs/reiserfs/reiserfs.c:490
+msgid "Couldn't reopen device abstraction layer for read/write."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:508 libparted/fs/ext2/ext2_resize.c:552
+#: libparted/fs/hfs/hfs.c:250 libparted/fs/hfs/hfs.c:629
+msgid "shrinking"
+msgstr "zmniejszanie"
+
+#: libparted/fs/reiserfs/reiserfs.c:520
+#, fuzzy
+msgid "expanding"
+msgstr "Ostrze¿enie"
+
+#: libparted/fs/reiserfs/reiserfs.c:592
+msgid "Couldn't create reiserfs device abstraction handler."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:606
+#, fuzzy, c-format
+msgid "Device is too small for %lu blocks."
+msgstr "System plików jest zbyt ma³y dla ext2."
+
+#: libparted/fs/reiserfs/reiserfs.c:615
+msgid "copying"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:682
+#, c-format
+msgid "Couldn't resolve symbol %s.  Error: %s."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:704
+msgid "GNU Parted found an invalid libreiserfs library."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:715
+#, c-format
+msgid ""
+"GNU Parted has detected libreiserfs interface version mismatch.  Found %d-%"
+"d, required %d. ReiserFS support will be disabled."
+msgstr ""
+
+#: libparted/labels/aix.c:137
+#, fuzzy
+msgid "Support for reading AIX disk labels is is not implemented yet."
+msgstr ""
+"Wsparcie dla tworzenia systemów plików %s nie zosta³o jeszcze "
+"zaimplementowane."
+
+#: libparted/labels/aix.c:148
+#, fuzzy
+msgid "Support for writing AIX disk labels is is not implemented yet."
+msgstr ""
+"Wsparcie dla tworzenia systemów plików %s nie zosta³o jeszcze "
+"zaimplementowane."
+
+#: libparted/labels/aix.c:161
+#, fuzzy
+msgid ""
+"Support for adding partitions to AIX disk labels is not implemented yet."
+msgstr ""
+"Wsparcie dla tworzenia systemów plików %s nie zosta³o jeszcze "
+"zaimplementowane."
+
+#: libparted/labels/aix.c:171
+#, fuzzy
+msgid ""
+"Support for duplicating partitions in AIX disk labels is not implemented yet."
+msgstr ""
+"Wsparcie dla tworzenia systemów plików %s nie zosta³o jeszcze "
+"zaimplementowane."
+
+#: libparted/labels/aix.c:189
+#, fuzzy
+msgid ""
+"Support for setting system type of partitions in AIX disk labels is not "
+"implemented yet."
+msgstr ""
+"Wsparcie dla tworzenia systemów plików %s nie zosta³o jeszcze "
+"zaimplementowane."
+
+#: libparted/labels/aix.c:199
+#, fuzzy
+msgid "Support for setting flags in AIX disk labels is not implemented yet."
+msgstr ""
+"Wsparcie dla tworzenia systemów plików %s nie zosta³o jeszcze "
+"zaimplementowane."
+
+#: libparted/labels/bsd.c:501 libparted/labels/dasd.c:755
+#: libparted/labels/dos.c:1974 libparted/labels/dvh.c:770
+#: libparted/labels/gpt.c:1448 libparted/labels/loop.c:248
+#: libparted/labels/mac.c:1408 libparted/labels/pc98.c:759
+#: libparted/labels/rdb.c:1041 libparted/labels/sun.c:705
+msgid "Unable to satisfy all constraints on the partition."
+msgstr "Nie mo¿na zaspokoiæ wszystkich ograniczeñ na partycji."
+
+#: libparted/labels/bsd.c:526
+msgid "Unable to allocate a bsd disklabel slot."
+msgstr "Nie mo¿na przydzieliæ miejsca na etykietê dysku bsd."
+
+#: libparted/labels/dasd.c:166
+#, fuzzy
+msgid "Unable to determine the block size of this dasd"
+msgstr "Nie mo¿na ustaliæ rozmiaru %s (%s)."
+
+#: libparted/labels/dasd.c:781
+#, fuzzy
+msgid "Unable to allocate a dasd disklabel slot"
+msgstr "Nie mo¿na przydzieliæ miejsca na etykietê dysku bsd."
+
+#: libparted/labels/dos.c:827
+#, c-format
+msgid "Invalid partition table on %s -- wrong signature %x."
+msgstr "Nieprawid³owa tablica partycji na %s -- b³êdna sygnatura %x."
+
+#: libparted/labels/dos.c:855
+#, c-format
+msgid "Invalid partition table - recursive partition on %s."
+msgstr "Nieprawid³owa tablica partycji - partycja rekursywna na %s."
+
+#: libparted/labels/dos.c:1318
+msgid "Extended partitions cannot be hidden on msdos disk labels."
+msgstr "Rozszerzone partycje nie mog± byæ ukryte dla etykieta dysków msdos."
+
+#: libparted/labels/dos.c:1958
+msgid "Parted can't resize partitions managed by Windows Dynamic Disk."
+msgstr ""
+"Parted nie mo¿e zmieniæ rozmiaru partycji zarz±dzanych przez Windows Dynamic "
+"Disk."
+
+#: libparted/labels/dvh.c:190
+#, c-format
+msgid "%s has no extended partition (volume header partition)."
+msgstr ""
+"%s nie posiada ¿adnych rozszerzonych partycji (partycji nag³ówka wolumenu)."
+
+#: libparted/labels/dvh.c:313
+msgid "Checksum is wrong, indicating the partition table is corrupt."
+msgstr ""
+"Suma kontrolna jest b³êdna i oznacza to, ¿e tablica partycji jest uszkodzona."
+
+#: libparted/labels/dvh.c:616
+msgid "Only primary partitions can be root partitions."
+msgstr "Tylko g³ówne partycje mog± byæ typu root."
+
+#: libparted/labels/dvh.c:630
+msgid "Only primary partitions can be swap partitions."
+msgstr "Tylko g³ówne partycje mog± byæ partycjami wymiany."
+
+#: libparted/labels/dvh.c:644
+msgid "Only logical partitions can be a boot file."
+msgstr "Tylko logiczne partycje mog± byæ plikami ³adowalnymi (boot)."
+
+#: libparted/labels/dvh.c:721
+msgid "Only logical partitions (boot files) have a name."
+msgstr "Tylko logiczne partycje (³adowalne pliki) maj± nazwy."
+
+#: libparted/labels/dvh.c:812
+msgid "Too many primary partitions"
+msgstr "Zbyt du¿o partycji g³ównych"
+
+#: libparted/labels/fdasd.c:103
+#, c-format
+msgid ""
+"%s open error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:107
+#, c-format
+msgid ""
+"%s seek error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:110
+#, c-format
+msgid ""
+"%s read error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:113
+#, fuzzy, c-format
+msgid ""
+"%s write error\n"
+"%s\n"
+msgstr "%s podczas zapisu %s"
+
+#: libparted/labels/fdasd.c:116
+#, c-format
+msgid ""
+"%s IOCTL error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:119
+#, c-format
+msgid ""
+"%s API version mismatch\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:122
+#, c-format
+msgid ""
+"%s Unsupported disk type\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:126
+#, c-format
+msgid ""
+"%s Unsupported disk format\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:130
+#, fuzzy, c-format
+msgid ""
+"%s Disk in use\n"
+"%s\n"
+msgstr "Dysk %s: %s\n"
+
+#: libparted/labels/fdasd.c:133
+#, c-format
+msgid ""
+"%s Config file syntax error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:137
+#, c-format
+msgid ""
+"%s Volume label is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:141
+#, c-format
+msgid ""
+"%s a data set name is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:145
+#, c-format
+msgid ""
+"%s space allocation\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:149
+#, c-format
+msgid ""
+"%s device verification failed\n"
+"The specified device is not a valid DASD device\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:154
+#, c-format
+msgid ""
+"%s Fatal error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/gpt.c:454
+#, c-format
+msgid ""
+"%s contains GPT signatures, indicating that it has a GPT table.  However, it "
+"does not have a valid fake msdos partition table, as it should.  Perhaps it "
+"was corrupted -- possibly by a program that doesn't understand GPT partition "
+"tables.  Or perhaps you deleted the GPT table, and are now using an msdos "
+"partition table.  Is this a GPT partition table?"
+msgstr ""
+"%s zawiera sygnaturê GPT.  Oznacza to, ¿e posiada tablicê GPT, ale nie "
+"posiada prawid³owej fa³szywej tablicy partycji msdos, tak jak powinna.  Byæ "
+"mo¿e jest uszkodzona -- mo¿liwe, ¿e przez program, który nie rozumie tablic "
+"partycji GPT.  Albo te¿ tablica GPT zosta³a skasowana, za¶ teraz u¿ywana "
+"jest tablica partycji msdos.  Czy to jest tablica partycji GPT?"
+
+#: libparted/labels/gpt.c:648
+#, c-format
+msgid ""
+"The format of the GPT partition table is version %x, which is newer than "
+"what Parted can recognise.  Please tell us!  bug-parted@gnu.org"
+msgstr ""
+"Format tablicy partycji GPT (wersja %x) jest nowszy ni¿ program Parted jest "
+"w stanie rozpoznaæ.  Poinformuj nas o tym!  bug-parted@gnu.org"
+
+#: libparted/labels/gpt.c:698
+#, c-format
+msgid ""
+"Not all of the space available to %s appears to be used, you can fix the GPT "
+"to use all of the space (an extra %llu blocks) or continue with the current "
+"setting? "
+msgstr ""
+"Nie ca³e dostêpne miejsce na %s wydaje siê byæ u¿ywane, poprawiæ GPT, aby "
+"u¿yte zosta³o ca³e miejsce (dodatkowe %llu bloków) czy kontynuowaæ przy "
+"aktualnych ustawieniach? "
+
+#: libparted/labels/gpt.c:827
+msgid ""
+"The backup GPT table is not at the end of the disk, as it should be.  This "
+"might mean that another operating system believes the disk is smaller.  Fix, "
+"by moving the backup to the end (and removing the old backup)?"
+msgstr ""
+"Kopia zapasowa tablicy GPT nie znajduje siê na koñcu dysku, a powinna.  Mo¿e "
+"to oznaczaæ, ¿e inny system operacyjny my¶li, ¿e dysk jest mniejszy ni¿ jest "
+"w rzeczywisto¶ci.  Czy naprawiæ to poprzez przesuniêcie kopii zapasowej na "
+"koniec (i usuniêcie starej kopii)?"
+
+#: libparted/labels/gpt.c:862
+msgid ""
+"The primary GPT table is corrupt, but the backup appears OK, so that will be "
+"used."
+msgstr ""
+"G³ówna tablica GPT jest uszkodzona, ale jej kopia zapasowa wydaje siê byæ w "
+"porz±dku i zostanie ona u¿yta."
+
+#: libparted/labels/gpt.c:870
+msgid ""
+"Both the primary and backup GPT tables are corrupt.  Try making a fresh "
+"table, and using Parted's rescue feature to recover partitions."
+msgstr ""
+"Obie tablice GPT, g³ówna i jej kopia zapasowa, s± uszkodzone.  Spróbuj "
+"utworzyæ now± tablicê oraz u¿yj opcjê 'rescue', aby odzyskaæ partycje."
+
+#: libparted/labels/mac.c:181
+#, c-format
+msgid "Invalid signature %x for Mac disk labels."
+msgstr "Nieprawid³owy podpis %x dla etykiet dysków Mac."
+
+#: libparted/labels/mac.c:226
+msgid "Partition map has no partition map entry!"
+msgstr "Mapa partycji nie posiada wpisu mapy partycji!"
+
+#: libparted/labels/mac.c:273
+#, c-format
+msgid "%s is too small for a Mac disk label!"
+msgstr "%s jest zbyt ma³y dla etykiety dysku Mac!"
+
+#: libparted/labels/mac.c:532
+#, c-format
+msgid "Partition %d has an invalid signature %x."
+msgstr "Partycja %d posiada nieprawid³owy podpis %x."
+
+#: libparted/labels/mac.c:550
+#, c-format
+msgid "Partition %d has an invalid length of 0 bytes!"
+msgstr "Partycja %d posiada nieprawid³ow± d³ugo¶æ 0 bajtów!"
+
+#: libparted/labels/mac.c:580
+msgid "The data region doesn't start at the start of the partition."
+msgstr "Obszar danych nie rozpoczyna siê na pocz±tku partycji."
+
+#: libparted/labels/mac.c:597
+msgid "The boot region doesn't start at the start of the partition."
+msgstr "Obszar rozruchowy nie zaczyna siê na pocz±tku partycji."
+
+#: libparted/labels/mac.c:611
+msgid "The partition's boot region doesn't occupy the entire partition."
+msgstr "Obszar rozruchowy partycji nie okupuje ca³ej partycji."
+
+#: libparted/labels/mac.c:622
+msgid "The partition's data region doesn't occupy the entire partition."
+msgstr "Obszar danych partycji nie okupuje ca³ej partycji."
+
+#: libparted/labels/mac.c:675
+#, c-format
+msgid ""
+"Weird block size on device descriptor: %d bytes is not divisible by 512."
+msgstr ""
+"Dziwny rozmiar bloku w deskryptorze urz±dzenia: %d bajtów nie jest podzielne "
+"przez 512."
+
+#: libparted/labels/mac.c:688
+#, c-format
+msgid ""
+"The driver descriptor says the physical block size is %d bytes, but Linux "
+"says it is %d bytes."
+msgstr ""
+"Deskryptor napêdu mówi, ¿e fizyczny rozmiar bloku wynosi %d bajtów, ale "
+"Linux mówi, ¿e wynosi %d bajtów."
+
+#: libparted/labels/mac.c:736
+msgid "No valid partition map found."
+msgstr "Nie znaleziono prawid³owej mapy partycji."
+
+#: libparted/labels/mac.c:795
+#, c-format
+msgid ""
+"Conflicting partition map entry sizes!  Entry 1 says it is %d, but entry %d "
+"says it is %d!"
+msgstr ""
+"Wyst±pi³ konflikt miêdzy rozmiarami wpisów mapy partycji!  Wpis 1 mówi, ¿e "
+"jest %d, ale wpis %d mówi, ¿e jest %d!"
+
+#: libparted/labels/mac.c:822
+msgid "Weird!  There are 2 partitions map entries!"
+msgstr "Dziwne!  Istniej± 2 wpisy map partycji!"
+
+#: libparted/labels/mac.c:1347
+msgid ""
+"Changing the name of a root or swap partition will prevent Linux from "
+"recognising it as such."
+msgstr ""
+"Zmiana nazwy partycji root lub wymiany spowoduje, ¿e Linux jej nie rozpozna."
+
+#: libparted/labels/mac.c:1443
+msgid "Can't add another partition -- the partition map is too small!"
+msgstr "Nie mo¿na dodaæ kolejnej partycji -- mapa partycji jest zbyt ma³a!"
+
+#: libparted/labels/pc98.c:354
+#, c-format
+msgid "Invalid partition table on %s."
+msgstr "Nieprawid³owa tablica partycji na %s."
+
+#: libparted/labels/pc98.c:406 libparted/labels/pc98.c:484
+#, c-format
+msgid ""
+"Partition %d isn't aligned to cylinder boundaries.  This is still "
+"unsupported."
+msgstr ""
+"Partycja %d nie jest wyrównana do granic cylindra.  Nadal nie jest to "
+"wspierane."
+
+#: libparted/labels/pc98.c:791
+msgid "Can't add another partition."
+msgstr "Nie mo¿na dodaæ kolejnej partycji."
+
+#: libparted/labels/rdb.c:162
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s."
+msgstr "%s : Nieprawid³owa suma kontrolna bloku %llu typu %s."
+
+#: libparted/labels/rdb.c:497
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen."
+msgstr "%s : Nie znaleziono bloku rdb, co nie powinno siê zdarzyæ."
+
+#: libparted/labels/rdb.c:581
+#, c-format
+msgid "%s : Loop detected at block %d."
+msgstr "%s : Wykryto pêtlê na bloku %d."
+
+#: libparted/labels/rdb.c:600
+#, c-format
+msgid "%s : The %s list seems bad at block %s."
+msgstr "%s : Lista %s wydaje siê byæ uszkodzona na bloku %s."
+
+#: libparted/labels/rdb.c:689
+#, c-format
+msgid "%s : Failed to list bad blocks."
+msgstr "%s : Nie powiod³o siê wypisanie uszkodzonych bloków."
+
+#: libparted/labels/rdb.c:697
+#, c-format
+msgid "%s : Failed to list partition blocks."
+msgstr "%s : Wypisanie bloków partycji nie powiod³o siê."
+
+#: libparted/labels/rdb.c:705
+#, c-format
+msgid "%s : Failed to list file system blocks."
+msgstr "%s : Wypisanie bloków systemu plików nie powiod³o siê."
+
+#: libparted/labels/rdb.c:713
+#, c-format
+msgid "%s : Failed to list boot blocks."
+msgstr "%s : Nie powiod³o siê wypisanie bloków rozruchowych."
+
+#: libparted/labels/rdb.c:740
+#, c-format
+msgid "Failed to write partition block at %d."
+msgstr "Nie powiód³ siê zapis bloku partycji na %d."
+
+#: libparted/labels/rdb.c:1069
+msgid "Unable to allocate a partition number."
+msgstr "Nie mo¿na przydzieliæ numeru partycji."
+
+#: libparted/labels/sun.c:145
+msgid "Corrupted Sun disk label detected."
+msgstr "Wykryto uszkodzon± etykietê dysku Sun."
+
+#: libparted/labels/sun.c:266
+#, c-format
+msgid ""
+"The disk CHS geometry (%d,%d,%d) reported by the operating system does not "
+"match the geometry stored on the disk label (%d,%d,%d)."
+msgstr ""
+"Geometria dysku CHS (%d,%d,%d), zg³oszona przez system operacyjny, nie "
+"pasuje do geometrii przechowywanej w etykiecie dysku (%d,%d,%d)."
+
+#: libparted/labels/sun.c:288
+#, c-format
+msgid "The disk label describes a disk bigger than %s."
+msgstr "Etykieta dysku opisuje dysk wiêkszy ni¿ %s."
+
+#: libparted/labels/sun.c:442
+#, c-format
+msgid "The disk has %d cylinders, which is greater than the maximum of 65536."
+msgstr ""
+"Dysk posiada %d cylindrów, co stanowi wiêcej ni¿ dopuszczalny limit 65536."
+
+#: libparted/labels/sun.c:737
+msgid ""
+"The Whole Disk partition is the only available one left.  Generally, it is "
+"not a good idea to overwrite this partition with a real one.  Solaris may "
+"not be able to boot without it, and SILO (the sparc boot loader) appreciates "
+"it as well."
+msgstr ""
+"Partycja ca³ego dysku jest jedyn± jaka pozosta³a.  Generalnie nie jest to "
+"dobry pomys³, aby j± nadpisaæ inn±, prawdziw±.  System Solaris mo¿e siê bez "
+"niej nie uruchomiæ, za¶ SILO (program ³aduj±cy SPARC) równie¿ j± doceni."
+
+#: libparted/labels/sun.c:752
+msgid "Sun disk label is full."
+msgstr "Etykieta dysku Sun jest pe³na."
+
+#: libparted/labels/vtoc.c:163
+#, c-format
+msgid ""
+"%s opening device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:167
+#, c-format
+msgid ""
+"%s seeking device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:171
+#, c-format
+msgid ""
+"%s writing to device '%s' failed,\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:175
+#, c-format
+msgid ""
+"%s reading from device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:179
+#, c-format
+msgid "Fatal error\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:418
+msgid "Could not read VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:424
+msgid "Could not read VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:431
+msgid "Could not read VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:438
+msgid "Could not read VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:445
+msgid "Could not read VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:462
+msgid "Could not write VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:468
+msgid "Could not write VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:475
+msgid "Could not write VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:482
+msgid "Could not write VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:489
+msgid "Could not write VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/libparted.c:296 libparted/libparted.c:316
+msgid "Out of memory."
+msgstr "Brak pamiêci"
+
+#: libparted/unit.c:139
+msgid "Cannot get unit size for special unit 'COMPACT'."
+msgstr ""
+"Nie mo¿na pobraæ rozmiaru jednostki dla specjalnej jednostki 'COMPACT'."
+
+#: libparted/unit.c:386
+#, c-format
+msgid "\"%s\" has invalid syntax for locations."
+msgstr "\"%s\" posiada nieprawid³ow± sk³adniê dla lokacji."
+
+#: libparted/unit.c:394
+#, c-format
+msgid "The maximum head value is %d."
+msgstr "Maksymalna warto¶æ g³owicy wynosi %d."
+
+#: libparted/unit.c:401
+#, c-format
+msgid "The maximum sector value is %d."
+msgstr "Maksymalna warto¶æ sektora wynosi %d."
+
+#: libparted/unit.c:413 libparted/unit.c:545
+#, c-format
+msgid "The location %s is outside of the device %s."
+msgstr "Lokacja %s jest poza urz±dzeniem %s."
+
+#: libparted/unit.c:527
+msgid "Invalid number."
+msgstr "Nieprawid³owy numer."
+
+#: libparted/fs/amiga/affs.c:63 libparted/fs/amiga/apfs.c:56
+#: libparted/fs/amiga/asfs.c:70
+#, fuzzy, c-format
+msgid "%s : Failed to allocate partition block\n"
+msgstr "%s : Wypisanie bloków partycji nie powiod³o siê."
+
+#: libparted/fs/amiga/affs.c:78 libparted/fs/amiga/apfs.c:70
+#: libparted/fs/amiga/asfs.c:86
+#, fuzzy, c-format
+msgid "%s : Failed to allocate block\n"
+msgstr "%s : Nie powiod³o siê wypisanie bloków rozruchowych."
+
+#: libparted/fs/amiga/affs.c:83 libparted/fs/amiga/apfs.c:75
+#, fuzzy, c-format
+msgid "%s : Couldn't read boot block %llu\n"
+msgstr "%s : Wykryto pêtlê na bloku %d."
+
+#: libparted/fs/amiga/affs.c:99 libparted/fs/amiga/apfs.c:86
+#: libparted/fs/amiga/asfs.c:92 libparted/fs/amiga/asfs.c:106
+#, fuzzy, c-format
+msgid "%s : Couldn't read root block %llu\n"
+msgstr "%s : Wykryto pêtlê na bloku %d."
+
+#: libparted/fs/amiga/amiga.c:72
+#, fuzzy, c-format
+msgid "%s : Failed to allocate id list element\n"
+msgstr "%s : Nie powiod³o siê wypisanie uszkodzonych bloków."
+
+#: libparted/fs/amiga/amiga.c:189
+#, c-format
+msgid "%s : Couldn't read block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:202
+#, fuzzy, c-format
+msgid "%s : Bad checksum on block %llu of type %s\n"
+msgstr "%s : Nieprawid³owa suma kontrolna bloku %llu typu %s."
+
+#: libparted/fs/amiga/amiga.c:212
+#, fuzzy, c-format
+msgid "%s : Couldn't write block %d\n"
+msgstr "%s : Wykryto pêtlê na bloku %d."
+
+#: libparted/fs/amiga/amiga.c:278
+#, fuzzy, c-format
+msgid "%s : Failed to allocate disk_specific rdb block\n"
+msgstr "%s : Nie powiod³o siê wypisanie uszkodzonych bloków."
+
+#: libparted/fs/amiga/amiga.c:289
+#, fuzzy, c-format
+msgid "%s : Didn't find rdb block, should never happen\n"
+msgstr "%s : Nie znaleziono bloku rdb, co nie powinno siê zdarzyæ."
+
+#: libparted/fs/amiga/amiga.c:318
+#, fuzzy, c-format
+msgid "%s : Failed to read partition block %llu\n"
+msgstr "%s : Wypisanie bloków partycji nie powiod³o siê."
+
+#: libparted/fs/ext2/ext2.c:87 libparted/fs/ext2/ext2.c:112
+msgid "Inconsistent group descriptors!"
+msgstr "Sprzeczne deskryptory grup!"
+
+#: libparted/fs/ext2/ext2.c:91 libparted/fs/ext2/ext2.c:116
+msgid "File system full!"
+msgstr "Pe³ny system plików!"
+
+#: libparted/fs/ext2/ext2.c:686
+msgid "Invalid superblock.  Are you sure this is an ext2 file system?"
+msgstr "Nieprawid³owy superblok.  Czy to na pewno jest system plików ext2?"
+
+#: libparted/fs/ext2/ext2.c:700 libparted/fs/ext2/ext2_resize.c:658
+msgid "File system has errors!  You should run e2fsck."
+msgstr "System plików posiada b³êdy!  Uruchom program e2fsck."
+
+#: libparted/fs/ext2/ext2.c:711
+msgid ""
+"File system was not cleanly unmounted!  You should run e2fsck.  Modifying an "
+"unclean file system could cause severe corruption."
+msgstr ""
+"System plików nie zosta³ prawid³owo od³±czony!  Uruchom program e2fsck. "
+"Modyfikowanie takiego systemu plików mo¿e spowodowaæ jego uszkodzenie."
+
+#: libparted/fs/ext2/ext2.c:731
+msgid "File system has an incompatible feature enabled."
+msgstr "System plików ma w³±czon± niekompatybiln± funkcjê."
+
+#: libparted/fs/ext2/ext2.c:742
+msgid "Error allocating buffer cache."
+msgstr "B³±d podczas przydzielania pamiêci do bufora podrêcznego."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:114
+msgid ""
+"Found an inode with a incorrect link count.  Better go run e2fsck first!"
+msgstr ""
+"Znaleziono i-wêze³ z nieprawid³owym licznikiem dowi±zañ.  Lepiej uruchom "
+"najpierw program e2fsck!"
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:487
+msgid "Not enough free inodes!"
+msgstr "Zbyt ma³o wolnych i-wêz³ów!"
+
+#: libparted/fs/ext2/ext2_resize.c:223
+msgid "File system is too full to remove a group!"
+msgstr "System plików jest zbyt pe³ny, aby usun±æ grupê!"
+
+#: libparted/fs/ext2/ext2_resize.c:232
+msgid "File system has too many allocated inodes to remove a group!"
+msgstr ""
+"System plików posiada zbyt du¿o przydzielonych i-wêz³ów, aby usun±æ grupê!"
+
+#: libparted/fs/ext2/ext2_resize.c:491
+msgid "adding groups"
+msgstr "dodawanie grup"
+
+#: libparted/fs/ext2/ext2_resize.c:528
+#, c-format
+msgid "Your file system is too full to resize it to %i blocks.  Sorry."
+msgstr ""
+"Twój system plików jest zbyt pe³ny, aby móc zmieniæ jego rozmiar do %i "
+"bloków.  Przykro mi."
+
+#: libparted/fs/ext2/ext2_resize.c:538
+#, c-format
+msgid ""
+"Your file system has too many occupied inodes to resize it to %i blocks.  "
+"Sorry."
+msgstr ""
+"Twój system plików posiada zbyt du¿o zajêtych i-wêz³ów, aby móc zmieniæ jego "
+"rozmiar do %i bloków.  Przykro mi."
+
+#: libparted/fs/ext2/ext2_resize.c:666
+msgid "File system was not cleanly unmounted!  You should run e2fsck."
+msgstr ""
+"System plików nie zosta³ prawid³owo od³±czony!  Uruchom program e2fsck."
+
+#: libparted/fs/ext2/ext2_resize.c:675
+msgid ""
+"The file system has the 'dir_index' feature enabled.  Parted can only resize "
+"the file system if it disables this feature.  You can enable it later by "
+"running 'tune2fs -O dir_index DEVICE' and then 'e2fsck -fD DEVICE'."
+msgstr ""
+"System plików posiada w³±czon± funkcjê 'dir_index'.  Parted mo¿e zmieniæ "
+"rozmiar systemu plików tylko je¶li zostanie wy³±czona ta funkcja.  Mo¿esz j± "
+"w³±czyæ ponownie pó¼niej poprzez uruchomienie 'tune2fs -O dir_index "
+"URZ¡DZENIE', a nastêpnie 'e2fsck -fD URZ¡DZENIE'."
+
+#: libparted/fs/ext2/ext2_resize.c:691
+msgid ""
+"A resize operation on this file system will use EXPERIMENTAL code\n"
+"that MAY CORRUPT it (although no one has reported any such damage yet).\n"
+"You should at least backup your data first, and run 'e2fsck -f' afterwards."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_block_relocator.c:198
+msgid "Cross-linked blocks found!  Better go run e2fsck first!"
+msgstr ""
+"Znaleziono bloki dowi±zane skro¶nie! Lepiej uruchom najpierw program e2fsck!"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:537
+#, c-format
+msgid "Block %i has no reference?  Weird."
+msgstr "Blok %i nie posiada odwo³añ?  Dziwne."
+
+#: libparted/fs/ext2/ext2_block_relocator.c:737
+#, c-format
+msgid "Block %i shouldn't have been marked (%d, %d)!"
+msgstr "Blok %i nie powinien byæ zaznaczony (%d, %d)!"
+
+#: libparted/fs/ext2/interface.c:186
+msgid ""
+"The ext2 file system passed a basic check.  For a more comprehensive check, "
+"use the e2fsck program."
+msgstr ""
+"System plików ext2 przeszed³ pomy¶lnie podstawowe sprawdzenie.  U¿yj program "
+"e2fsck, aby wykonaæ bardziej wyczerpuj±ce sprawdzenie."
+
+#: libparted/fs/ext2/interface.c:203
+msgid "Sorry, can't move the start of ext2 partitions yet!"
+msgstr "Przepraszam, ale na razie nie mo¿na przesun±æ pocz±tku partycji ext2!"
+
+#: libparted/fs/ext2/ext2_buffer.c:82
+msgid "Couldn't flush buffer cache!"
+msgstr "Nie mo¿na opró¿niæ bufora pamiêci podrêcznej!"
+
+#: libparted/fs/ext2/ext2_mkfs.c:162
+msgid "writing per-group metadata"
+msgstr "zapis metadanych do grup"
+
+#: libparted/fs/ext2/ext2_mkfs.c:564
+msgid "File system too small for ext2."
+msgstr "System plików jest zbyt ma³y dla ext2."
+
+#: libparted/fs/fat/calc.c:135
+#, c-format
+msgid ""
+"You need %s of free disk space to shrink this partition to this size.  "
+"Currently, only %s is free."
+msgstr ""
+"Potrzebujesz %s wolnej przestrzeni, aby zmniejszyæ partycjê do tego "
+"rozmiaru.  Aktualnie, tylko %s jest wolne."
+
+#: libparted/fs/fat/context.c:56
+#, c-format
+msgid ""
+"Cluster start delta = %d, which is not a multiple of the cluster size %d."
+msgstr ""
+"Pocz±tek klastra delta = %d, a wiêc nie jest to wielokrotno¶æ rozmiaru "
+"klastra %d."
+
+#: libparted/fs/fat/fat.c:308
+#, c-format
+msgid "Partition too big/small for a %s file system."
+msgstr "Partycja jest zbyt du¿a/ma³a dla systemu plików %s."
+
+#: libparted/fs/fat/fat.c:474
+msgid ""
+"The FATs don't match.  If you don't know what this means, then select "
+"cancel, run scandisk on the file system, and then come back."
+msgstr ""
+"Tablice FAT nie pasuj±.  Je¶li nie wiesz co to znaczy, to wybierz "
+"'Poniechaj', uruchom scandisk, a potem ponów próbê."
+
+#: libparted/fs/fat/fat.c:514
+msgid "There are no possible configurations for this FAT type."
+msgstr "Nie ma mo¿liwych konfiguracji dla tego typu FAT."
+
+#: libparted/fs/fat/fat.c:526
+#, c-format
+msgid ""
+"File system doesn't have expected sizes for Windows to like it.  Cluster "
+"size is %dk (%dk expected); number of clusters is %d (%d expected); size of "
+"FATs is %d sectors (%d expected)."
+msgstr ""
+"System plików nie posiada rozmiaru spodziewanego przez system MS Windows.  "
+"Rozmiar klastra wynosi %dk (powinno byæ %dk); ilo¶æ klastrów wynosi %d "
+"(powinno byæ %d); rozmiar FAT wynosi %d sektorów (powinno byæ %d)."
+
+#: libparted/fs/fat/fat.c:549
+#, c-format
+msgid ""
+"File system is reporting the free space as %d clusters, not %d clusters."
+msgstr ""
+"System plików mówi, ¿e wolna przestrzeñ wynosi %d klastrów, a nie %d "
+"klastrów."
+
+#: libparted/fs/fat/fat.c:874
+msgid ""
+"GNU Parted was miscompiled: the FAT boot sector should be 512 bytes.  FAT "
+"support will be disabled."
+msgstr ""
+"Program GNU Parted zosta³ nieprawid³owo zbudowany: sektor rozruchowy FAT "
+"powinien mieæ 512 bajtów.  Wsparcie dla FAT zostaje wy³±czone."
+
+#: libparted/fs/fat/resize.c:159
+msgid ""
+"There's not enough room in the root directory for all of the files.  Either "
+"cancel, or ignore to lose the files."
+msgstr ""
+"Brakuje miejsca w katalogu root dla wszystkich tych plików.  Poniechaj "
+"operacjê lub zignoruj, aby utraciæ pliki."
+
+#: libparted/fs/fat/resize.c:300
+msgid "Error writing to the root directory."
+msgstr "B³±d podczas zapisu do katalogu g³ównego (root)."
+
+#: libparted/fs/fat/resize.c:489
+msgid "If you leave your file system as FAT16, then you will have no problems."
+msgstr ""
+"Je¶li pozostawisz swój system plików jako FAT16, to nie bêdziesz mia³(a) "
+"¿adnych problemów."
+
+#: libparted/fs/fat/resize.c:492
+msgid ""
+"If you convert to FAT16, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual)."
+msgstr ""
+"Je¿eli dokonasz konwersji do FAT16 i system MS Windows jest zainstalowany na "
+"tej partycji, to wtedy musisz przeinstalowaæ program ³aduj±cy (boot loader) "
+"MS Windows.  Je¶li chcesz to zrobiæ, to proszê przeczytaj dokumentacjê "
+"programu Parted (lub dokumentacjê Twojej dystrybucji systemu)."
+
+#: libparted/fs/fat/resize.c:500
+msgid ""
+"If you leave your file system as FAT32, then you will not introduce any new "
+"problems."
+msgstr ""
+"Je¶li pozostawisz swój system plików jako FAT32, to wtedy nie bêdziesz mia³"
+"(a) ¿adnych nowych problemów."
+
+#: libparted/fs/fat/resize.c:504
+msgid ""
+"If you convert to FAT32, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual).  Also, "
+"converting to FAT32 will make the file system unreadable by MS DOS, MS "
+"Windows 95a, and MS Windows NT."
+msgstr ""
+"Je¿eli dokonasz konwersji do FAT32 i system MS Windows jest zainstalowany na "
+"tej partycji, to wtedy musisz przeinstalowaæ program ³aduj±cy (boot loader) "
+"MS Windows.  Je¶li chcesz to zrobiæ, to proszê przeczytaj dokumentacjê "
+"programu Parted (lub dokumentacjê Twojej dystrybucji systemu). Ponadto, "
+"konwersja do FAT32 spowoduje, ¿e taki system plików bêdzie niemo¿liwy do "
+"odczytania przez systemy MS-DOS, MS Windows 95a oraz MS Windows NT."
+
+#: libparted/fs/fat/resize.c:518
+#, c-format
+msgid "%s  %s  %s"
+msgstr "%s  %s  %s"
+
+#: libparted/fs/fat/resize.c:519
+msgid "Would you like to use FAT32?"
+msgstr "Czy chcesz u¿yæ FAT32?"
+
+#: libparted/fs/fat/resize.c:550 libparted/fs/fat/resize.c:566
+#, c-format
+msgid "%s  %s"
+msgstr "%s  %s"
+
+#: libparted/fs/fat/resize.c:551
+msgid ""
+"The file system can only be resized to this size by converting to FAT16."
+msgstr ""
+"Rozmiar systemu plików mo¿e byæ tylko zmieniony poprzez konwersjê do FAT16."
+
+#: libparted/fs/fat/resize.c:567
+msgid ""
+"The file system can only be resized to this size by converting to FAT32."
+msgstr ""
+"System plików mo¿e mieæ zmieniony rozmiar, ale tylko poprzez konwersjê do "
+"FAT32."
+
+#: libparted/fs/fat/resize.c:580
+msgid ""
+"GNU Parted cannot resize this partition to this size.  We're working on it!"
+msgstr ""
+"GNU Parted nie mo¿e zmieniæ rozmiaru tej partycji do podanego.  Pracujemy "
+"nad tym!"
+
+#: libparted/fs/fat/bootsector.c:49 libparted/fs/fat/bootsector.c:56
+msgid "File system has an invalid signature for a FAT file system."
+msgstr "System plików posiada nieprawid³owy podpis dla systemu plików FAT."
+
+#: libparted/fs/fat/bootsector.c:64
+msgid "File system has an invalid sector size for a FAT file system."
+msgstr ""
+"System plików posiada nieprawid³owy rozmiar sektora dla systemu plików FAT."
+
+#: libparted/fs/fat/bootsector.c:71
+msgid "File system has an invalid cluster size for a FAT file system."
+msgstr ""
+"System plików posiada nieprawid³owy rozmiar klastra dla systemu plików FAT."
+
+#: libparted/fs/fat/bootsector.c:78
+msgid ""
+"File system has an invalid number of reserved sectors for a FAT file system."
+msgstr ""
+"System plików posiada nieprawid³ow± ilo¶æ zarezerwowanych sektorów dla "
+"systemu plików FAT."
+
+#: libparted/fs/fat/bootsector.c:85
+msgid "File system has an invalid number of FATs."
+msgstr "System plików posiada nieprawid³ow± ilo¶æ FAT-ów."
+
+#: libparted/fs/fat/bootsector.c:139
+#, c-format
+msgid ""
+"This file system has a logical sector size of %d.  GNU Parted is known not "
+"to work properly with sector sizes other than 512 bytes."
+msgstr ""
+"Ten system plików posiada rozmiar logicznego sektora %d.  GNU Parted nie "
+"wspó³pracuje prawid³owo z rozmiarami sektorów innymi ni¿ 512 bajtów."
+
+#: libparted/fs/fat/bootsector.c:164
+#, c-format
+msgid ""
+"The file system's CHS geometry is (%d, %d, %d), which is invalid.  The "
+"partition table's CHS geometry is (%d, %d, %d).  If you select Ignore, the "
+"file system's CHS geometry will be left unchanged.  If you select Fix, the "
+"file system's CHS geometry will be set to match the partition table's CHS "
+"geometry."
+msgstr ""
+"Geometri± CHS systemu pliku jest (%d, %d, %d), która nie jest prawid³owa.  "
+"Geometri± CHS tablicy partycji jest (%d, %d, %d).  Je¶li zignorujesz, to "
+"geometria CHS systemu pliku pozostanie niezmieniona.  Je¶li zdecydujesz siê "
+"naprawiæ, geometria CHS systemu plików zostanie dopasowana do geometrii CHS "
+"tablicy partycji."
+
+#: libparted/fs/fat/bootsector.c:213
+msgid "FAT boot sector says logical sector size is 0.  This is weird. "
+msgstr ""
+"Sektor rozruchowy FAT mówi, ¿e rozmiar sektora logicznego jest 0.  Dziwne."
+
+#: libparted/fs/fat/bootsector.c:219
+msgid "FAT boot sector says there are no FAT tables.  This is weird. "
+msgstr "Sektor rozruchowy FAT mówi, ¿e nie ma ¿adnych tablic FAT.  Dziwne."
+
+#: libparted/fs/fat/bootsector.c:225
+msgid "FAT boot sector says clusters are 0 sectors.  This is weird. "
+msgstr "Sektor rozruchowy FAT mówi, ¿e klastry zajmuj± 0 sektorów.  Dziwne."
+
+#: libparted/fs/fat/bootsector.c:235
+msgid "File system is FAT12, which is unsupported."
+msgstr "Systemem plików jest FAT12, który nie jest wspierany."
+
+#: libparted/fs/fat/bootsector.c:411
+#, c-format
+msgid ""
+"The information sector has the wrong signature (%x).  Select cancel for now, "
+"and send in a bug report.  If you're desperate, it's probably safe to ignore."
+msgstr ""
+"Sektor informacyjny posiada nieprawid³owy podpis (%x).  Na razie poniechaj "
+"aktualn± operacjê i wy¶lij raport dotycz±cy b³êdów.  Ewentualnie zignoruj "
+"ca³± sytuacjê."
+
+#: libparted/fs/fat/count.c:152
+#, c-format
+msgid "Bad directory entry for %s: first cluster is the end of file marker."
+msgstr ""
+"Nieprawid³owy wpis w katalogu dla %s: pierwszy klaster jest znacznikiem "
+"koñca pliku."
+
+#: libparted/fs/fat/count.c:165
+#, c-format
+msgid ""
+"Bad FAT: unterminated chain for %s.  You should run dosfsck or scandisk."
+msgstr ""
+"Nieprawid³owy FAT: niezakoñczony ³añcuch dla %s.  Proszê uruchomiæ program "
+"dosfsck lub scandisk."
+
+#: libparted/fs/fat/count.c:174
+#, c-format
+msgid ""
+"Bad FAT: cluster %d outside file system in chain for %s.  You should run "
+"dosfsck or scandisk."
+msgstr ""
+"Nieprawid³owy FAT: klaster %d jest poza systemem plików w ³añcuchu dla %s.  "
+"Proszê uruchomiæ program dosfsck lub scandisk."
+
+#: libparted/fs/fat/count.c:184
+#, c-format
+msgid ""
+"Bad FAT: cluster %d is cross-linked for %s.  You should run dosfsck or "
+"scandisk."
+msgstr ""
+"Nieprawid³owy FAT: klaster %d jest dowi±zany skro¶nie dla %s.  Proszê "
+"uruchomiæ program dosfsck lub scandisk."
+
+#: libparted/fs/fat/count.c:203
+#, c-format
+msgid "%s is %dk, but it has %d clusters (%dk)."
+msgstr "%s ma %dk, jednak ma %d klastrów (%dk)."
+
+#: libparted/fs/fat/count.c:266
+#, c-format
+msgid ""
+"The file %s is marked as a system file.  This means moving it could cause "
+"some programs to stop working."
+msgstr ""
+"Plik %s jest oznaczony jako plik systemowy.  Oznacza to, ¿e jego "
+"przesuniêcie mo¿e spowodowaæ nieprawid³ow± pracê innych programów."
+
+#: libparted/fs/fat/table.c:137
+#, c-format
+msgid ""
+"FAT %d media %x doesn't match the boot sector's media %x.  You should "
+"probably run scandisk."
+msgstr ""
+"Typ no¶nika odczytany z FAT %d (%x) nie zgadza siê z typem odczytanym z "
+"sektora rozruchowego (%x).  Nale¿y uruchomiæ scandisk."
+
+#: libparted/fs/fat/table.c:269
+#, c-format
+msgid "fat_table_set: cluster %ld outside file system"
+msgstr "fat_table_set: klaster %ld poza systemem plików"
+
+#: libparted/fs/fat/table.c:301
+#, c-format
+msgid "fat_table_get: cluster %ld outside file system"
+msgstr "fat_table_get: klaster %ld poza systemem plików"
+
+#: libparted/fs/fat/table.c:343
+msgid "fat_table_alloc_cluster: no free clusters"
+msgstr "fat_table_alloc_cluster: brak wolnych klastrów"
+
+#: libparted/fs/linux_swap/linux_swap.c:275
+#, fuzzy, c-format
+msgid "Unrecognised old style linux swap signature '%10s'."
+msgstr "Nierozpoznany podpis linuksowej partycji wymiany `%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:318
+#, fuzzy, c-format
+msgid "Unrecognised new style linux swap signature '%10s'."
+msgstr "Nierozpoznany podpis linuksowej partycji wymiany `%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:358
+#, fuzzy, c-format
+msgid "Unrecognised swsusp linux swap signature '%9s'."
+msgstr "Nierozpoznany podpis linuksowej partycji wymiany `%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:434
+msgid "Too many bad pages."
+msgstr "Zbyt du¿o nieprawid³owych stron."
+
+#: libparted/fs/hfs/advfs.c:121 libparted/fs/hfs/advfs_plus.c:122
+#: libparted/fs/hfs/reloc.c:414 libparted/fs/hfs/reloc.c:508
+#: libparted/fs/hfs/reloc_plus.c:539 libparted/fs/hfs/reloc_plus.c:658
+#: libparted/fs/hfs/reloc_plus.c:772
+msgid "The file system contains errors."
+msgstr "System plików zawiera b³êdy."
+
+#: libparted/fs/hfs/advfs_plus.c:287
+msgid "Bad blocks could not be read."
+msgstr "Uszkodzone bloki nie mog± byæ odczytane."
+
+#: libparted/fs/hfs/cache.c:137
+#, c-format
+msgid ""
+"Trying to register an extent starting at block 0x%X, but another one already "
+"exists at this position.  You should check the file system!"
+msgstr ""
+"Podczas próby zarejestrowania obszaru z pocz±tkiem na bloku 0x%X wykryto "
+"inny obszar na tej pozycji.  Nale¿y sprawdziæ system plików!"
+
+#: libparted/fs/hfs/cache.c:214
+#, c-format
+msgid ""
+"Trying to move an extent from block Ox%X to block Ox%X, but another one "
+"already exists at this position.  This should not happen!"
+msgstr ""
+"Podczas próby przeniesienia obszaru z bloku 0x%X do bloku 0x%X wykryto inny "
+"obszar na tej pozycji.  To nie powinno siê zdarzyæ!"
+
+#: libparted/fs/hfs/file.c:143
+#, c-format
+msgid "Could not update the extent cache for HFS file with CNID %X."
+msgstr "Nie mo¿na uaktualniæ pamiêci obszarów dla pliku HFS z CNID %X."
+
+#: libparted/fs/hfs/file.c:180
+#, c-format
+msgid "Trying to read HFS file with CNID %X behind EOF."
+msgstr "Próba odczytania pliku HFS z CNID %X za EOF."
+
+#: libparted/fs/hfs/file.c:190 libparted/fs/hfs/file.c:220
+#, c-format
+msgid "Could not find sector %lli of HFS file with CNID %X."
+msgstr "Nie znaleziono sektora %lli pliku HFS z CNID %X."
+
+#: libparted/fs/hfs/file.c:210
+#, c-format
+msgid "Trying to write HFS file with CNID %X behind EOF."
+msgstr "Próba zapisu pliku HFS z CNID %X za EOF."
+
+#: libparted/fs/hfs/file_plus.c:157
+#, c-format
+msgid "Could not update the extent cache for HFS+ file with CNID %X."
+msgstr "Nie mo¿na uaktualniæ pamiêci obszarów dla pliku HFS+ z CNID %X."
+
+#: libparted/fs/hfs/file_plus.c:202
+#, c-format
+msgid "Trying to read HFS+ file with CNID %X behind EOF."
+msgstr "Próba odczytania pliku HFS+ z CNID %X za EOF."
+
+#: libparted/fs/hfs/file_plus.c:213 libparted/fs/hfs/file_plus.c:256
+#, c-format
+msgid "Could not find sector %lli of HFS+ file with CNID %X."
+msgstr "Nie znaleziono sektora %lli pliku HFS+ z CNID %X."
+
+#: libparted/fs/hfs/file_plus.c:245
+#, c-format
+msgid "Trying to write HFS+ file with CNID %X behind EOF."
+msgstr "Próba zapisu pliku HFS+ z CNID %X za EOF."
+
+#: libparted/fs/hfs/hfs.c:232
+msgid "Sorry, HFS cannot be resized that way yet."
+msgstr "Przykro mi, ale nie mo¿na jeszcze w ten sposób zmieniæ rozmiaru HFS."
+
+#: libparted/fs/hfs/hfs.c:262 libparted/fs/hfs/hfs.c:641
+msgid "Data relocation has failed."
+msgstr "Relokacja danych nie powiod³a siê."
+
+#: libparted/fs/hfs/hfs.c:281
+msgid "Data relocation left some data in the end of the volume."
+msgstr "Relokacja danych pozostawi³a dane pod koniec wolumenu."
+
+#: libparted/fs/hfs/hfs.c:320
+msgid "writing HFS Master Directory Block"
+msgstr "zapisywanie g³ównego bloku katalogu HFS (HFS Master Directory Block)"
+
+#: libparted/fs/hfs/hfs.c:468
+msgid "No valid HFS[+X] signature has been found while opening."
+msgstr "Nie znaleziono prawid³owej sygnatury HFS[+X] podczas otwierania."
+
+#: libparted/fs/hfs/hfs.c:478
+#, c-format
+msgid "Version %d of HFS+ isn't supported."
+msgstr "Wersja %d HFS+ nie jest wspierana."
+
+#: libparted/fs/hfs/hfs.c:489
+#, c-format
+msgid "Version %d of HFSX isn't supported."
+msgstr "Wersja %d HFSX nie jest wspierana."
+
+#: libparted/fs/hfs/hfs.c:672
+msgid "Data relocation left some data at the end of the volume."
+msgstr "Relokacja danych pozostawi³a dane na koñcu wolumenu."
+
+#: libparted/fs/hfs/hfs.c:720
+msgid "Error while writing the allocation file."
+msgstr "B³±d podczas zapisu pliku przydzia³u."
+
+#: libparted/fs/hfs/hfs.c:735
+msgid "Error while writing the compatibility part of the allocation file."
+msgstr "B³±d podczas zapisu kompatybilnej czê¶ci pliku przydzia³u."
+
+#: libparted/fs/hfs/hfs.c:750
+msgid "writing HFS+ Volume Header"
+msgstr "zapisywanie nag³ówka wolumenu HFS+"
+
+#: libparted/fs/hfs/hfs.c:850
+msgid "An error occurred while looking for the mandatory bad blocks file."
+msgstr ""
+"Wyst±pi³ b³±d podczas szukania obowi±zkowego pliku uszkodzonych bloków."
+
+#: libparted/fs/hfs/hfs.c:904
+msgid ""
+"It seems there is an error in the HFS wrapper: the bad blocks file doesn't "
+"contain the embedded HFS+ volume."
+msgstr ""
+"Prawdopodobnie wystêpuje b³±d w otoczce HFS: plik uszkodzonych bloków nie "
+"zawiera wbudowanego wolumenu HFS+."
+
+#: libparted/fs/hfs/hfs.c:940
+msgid "Sorry, HFS+ cannot be resized that way yet."
+msgstr "Przykro mi, ale nie mo¿na jeszcze w ten sposób zmieniæ rozmiaru HFS+."
+
+#: libparted/fs/hfs/hfs.c:975
+msgid "shrinking embedded HFS+ volume"
+msgstr "zmniejszanie wbudowanego wolumenu HFS+"
+
+#: libparted/fs/hfs/hfs.c:991
+msgid "Resizing the HFS+ volume has failed."
+msgstr "Zmiana rozmiaru wolumenu HFS+ nie powiod³a siê."
+
+#: libparted/fs/hfs/hfs.c:998
+msgid "shrinking HFS wrapper"
+msgstr "zmniejszanie otoczki HFS"
+
+#: libparted/fs/hfs/hfs.c:1007
+msgid "Updating the HFS wrapper has failed."
+msgstr "Aktualizacja otoczki HFS nie powiod³a siê."
+
+#: libparted/fs/hfs/hfs.c:1109 libparted/fs/hfs/hfs.c:1194
+#, c-format
+msgid ""
+"This is not a real %s check.  This is going to extract special low level "
+"files for debugging purposes."
+msgstr ""
+"To nie jest prawdziwe sprawdzanie %s.  Celem jest wydobycie specjalnych "
+"niskopoziomowych plików w celu odpluskwiania."
+
+#: libparted/fs/hfs/journal.c:155
+msgid "Bad block list header checksum."
+msgstr "Suma kontrolna nag³ówka listy uszkodzonych bloków."
+
+#: libparted/fs/hfs/journal.c:168
+#, c-format
+msgid ""
+"Invalid size of a transaction block while replaying the journal (%i bytes)."
+msgstr ""
+"Nieprawid³owy rozmiar bloku transakcyjnego podczas ponawiania kroniki (%i "
+"bajtów)."
+
+#: libparted/fs/hfs/journal.c:260
+msgid ""
+"Journal stored outside of the volume are not supported.  Try to desactivate "
+"the journal and run Parted again."
+msgstr ""
+"Kroniki umieszczone poza wolumenem nie s± wspierane.  Proszê wy³±czyæ "
+"kronikê i uruchomiæ ponownie Parted."
+
+#: libparted/fs/hfs/journal.c:271
+msgid "Journal offset or size is not multiple of the sector size."
+msgstr ""
+"Wyrównanie kroniki lub wielko¶æ nie jest wielokrotno¶ci± rozmiaru sektora."
+
+#: libparted/fs/hfs/journal.c:292
+msgid "Incorrect magic values in the journal header."
+msgstr "Nieprawid³owe magiczne warto¶ci w nag³ówku kroniki."
+
+#: libparted/fs/hfs/journal.c:302
+msgid "Journal size mismatch between journal info block and journal header."
+msgstr ""
+"Rozmiar kroniki nie pasuje pomiêdzy blokiem informacyjnym kroniki i "
+"nag³ówkiem kroniki."
+
+#: libparted/fs/hfs/journal.c:314
+msgid "Some header fields are not multiple of the sector size."
+msgstr "Niektóre pola nag³ówka nie s± wielokrotno¶ci± rozmiaru sektora."
+
+#: libparted/fs/hfs/journal.c:323
+msgid ""
+"The sector size stored in the journal is not 512 bytes.  Parted only "
+"supports 512 bytes length sectors."
+msgstr ""
+"Rozmiar sektora zapisany w kronice nie ma 512 bajtów.  Parted wspiera tylko "
+"sektory o rozmiarach 512 bajtów."
+
+#: libparted/fs/hfs/journal.c:335
+msgid "Bad journal checksum."
+msgstr "Nieprawid³owa suma kontrolna kroniki."
+
+#: libparted/fs/hfs/journal.c:353
+msgid ""
+"The journal is not empty.  Parted must replay the transactions before "
+"opening the file system.  This will modify the file system."
+msgstr ""
+"Kronika nie jest pusta.  Parted musi ponowiæ transakcje przed otwarciem "
+"systemu plików.  To zmodyfikuje system plików."
+
+#: libparted/fs/hfs/journal.c:381
+msgid ""
+"The volume header or the master directory block has changed while replaying "
+"the journal.  You should restart Parted."
+msgstr ""
+"Nag³ówek wolumenu lub g³ówny blok katalogu zmieni³ siê podczas ponawiania "
+"kroniki.  Nale¿y ponownie uruchomiæ Parted."
+
+#: libparted/fs/hfs/probe.c:51
+#, c-format
+msgid ""
+"Parted can't use HFS file systems on disks with a sector size not equal to %"
+"d bytes."
+msgstr ""
+"Parted nie mo¿e u¿ywaæ systemów plików HFS na dyskach z rozmiarem sektora "
+"innym ni¿ %d bajtów."
+
+#: libparted/fs/hfs/reloc.c:151 libparted/fs/hfs/reloc_plus.c:155
+msgid "An extent has not been relocated."
+msgstr "Obszar nie zosta³ przeniesiony."
+
+#: libparted/fs/hfs/reloc.c:251 libparted/fs/hfs/reloc_plus.c:307
+msgid ""
+"A reference to an extent comes from a place it should not.  You should check "
+"the file system!"
+msgstr ""
+"Odwo³anie do obszaru nie powinno by³o wyst±piæ w tym miejscu. Nale¿y "
+"sprawdziæ system plików!"
+
+#: libparted/fs/hfs/reloc.c:381
+msgid "This HFS volume has no catalog file.  This is very unusual!"
+msgstr ""
+"Ten wolumen HFS nie posiada pliku katalogowego.  To jest bardzo niezwyk³e!"
+
+#: libparted/fs/hfs/reloc.c:475
+msgid "This HFS volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+"Ten wolumen HFS nie zawiera pliku przepe³nienia obszarów.  To raczej "
+"niezwykle!"
+
+#: libparted/fs/hfs/reloc.c:517 libparted/fs/hfs/reloc_plus.c:668
+msgid ""
+"The extents overflow file should not contain its own extents!  You should "
+"check the file system."
+msgstr ""
+"Plik przepe³nienia obszarów nie powinien zawieraæ w³asnych obszarów!  Nale¿y "
+"sprawdziæ system plików."
+
+#: libparted/fs/hfs/reloc.c:574 libparted/fs/hfs/reloc_plus.c:847
+msgid "Could not cache the file system in memory."
+msgstr "Nie mo¿na zapamiêtaæ systemu plików w pamiêci."
+
+#: libparted/fs/hfs/reloc.c:635 libparted/fs/hfs/reloc_plus.c:908
+msgid "Bad blocks list could not be loaded."
+msgstr "Nie powiod³o siê za³adowanie listy uszkodzonych bloków."
+
+#: libparted/fs/hfs/reloc.c:649 libparted/fs/hfs/reloc_plus.c:924
+msgid "An error occurred during extent relocation."
+msgstr "Wykryto b³±d podczas przenoszenia obszaru."
+
+#: libparted/fs/hfs/reloc_plus.c:495
+msgid "This HFS+ volume has no catalog file.  This is very unusual!"
+msgstr ""
+"Ten wolumen HFS+ nie posiada pliku katalogowego.  To jest bardzo niezwyk³e!"
+
+#: libparted/fs/hfs/reloc_plus.c:619
+msgid "This HFS+ volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+"Ten wolumen HFS+ nie zawiera pliku przepe³nienia obszarów. To raczej "
+"niezwykle!"
+
+#: parted/parted.c:94
+msgid "displays this help message"
+msgstr "wy¶wietla tê oto pomoc"
+
+#: parted/parted.c:95
+#, fuzzy
+msgid "lists partition layout on all block devices"
+msgstr "wypisuje tablice partycji wszystkich wykrytych urz±dzeñ"
+
+#: parted/parted.c:96
+msgid "displays machine parseable output"
+msgstr ""
+
+#: parted/parted.c:97
+msgid "never prompts for user intervention"
+msgstr "nigdy nie prosi u¿ytkownika o interwencjê"
+
+#: parted/parted.c:98
+msgid "displays the version"
+msgstr "wy¶wietla numer wersji"
+
+#: parted/parted.c:111
+msgid ""
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"
+msgstr ""
+"NUMER oznacza numer partycji u¿ywanej przez Linuksa.  Dla etykiet dysków MS-"
+"DOS liczba partycji g³ównych mie¶ci siê w przedziale 1-4, za¶ partycje "
+"logiczne zajmuj± kolejne numery pocz±wszy od 5.\n"
+
+#: parted/parted.c:114
+msgid "LABEL-TYPE is one of: "
+msgstr "TYP-ETYKIETY stanowi jedn± z nastêpuj±cych warto¶ci: "
+
+#: parted/parted.c:115
+msgid "FLAG is one of: "
+msgstr "FLAGA stanowi jedn± z nastêpuj±cych warto¶ci: "
+
+#: parted/parted.c:116
+msgid "UNIT is one of: "
+msgstr "JEDNOSTKA stanowi jedn± z nastêpuj±cych warto¶ci: "
+
+#: parted/parted.c:117
+msgid "PART-TYPE is one of: primary, logical, extended\n"
+msgstr ""
+"TYP-PARTYCJI stanowi jedn± z nastêpuj±cych warto¶ci: g³ówna, logiczna, "
+"rozszerzona\n"
+
+#: parted/parted.c:119
+msgid "FS-TYPE is one of: "
+msgstr "SYSTEM-PLIKÓW stanowi jedn± z nastêpuj±cych warto¶ci: "
+
+#: parted/parted.c:120
+msgid ""
+"START and END are disk locations, such as 4GB or 10%.  Negative values count "
+"from the end of the disk.  For example, -1s specifies exactly the last "
+"sector.\n"
+msgstr ""
+"POCZ¡TEK i KONIEC oznaczaj± po³o¿enia na dysku, np. 4GB lub 10%.  Ujemne "
+"warto¶ci s± liczone od koñca dysku.  Na przyk³ad -1s oznacza dok³adnie "
+"ostatni sektor.\n"
+
+#: parted/parted.c:123
+msgid "STATE is one of: on, off\n"
+msgstr "STAN jest reprezentowany poprzez: w³±czony, wy³±czony\n"
+
+#: parted/parted.c:124
+msgid "DEVICE is usually /dev/hda or /dev/sda\n"
+msgstr "URZ¡DZENIEM jest zwykle /dev/hda lub /dev/sda\n"
+
+#: parted/parted.c:125
+msgid "NAME is any word you want\n"
+msgstr "NAZWA jest dowolnym s³owem jakie chcesz\n"
+
+#: parted/parted.c:126
+msgid "The partition must have one of the following FS-TYPEs: "
+msgstr "Partycja musi posiadaæ jeden z nastêpuj±cych systemów plików: "
+
+#: parted/parted.c:130
+#, fuzzy
+msgid ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+msgstr ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"Program ten jest wolno dostêpny, zgodnie z Powszechn± Licencj± Publiczn± "
+"GNU.\n"
+"\n"
+"Program ten udostêpniany jest w nadziei, ¿e bêdzie przydatny, ale BEZ ¯ADNEJ "
+"GWARANCJI, nawet bez domy¶lnej gwarancji PRZYDATNO¦CI HANDLOWEJ albo "
+"PRZYDATNO¦CI DO KONKRETNYCH ZASTOSOWAÑ. Wiêcej szczegó³ów znajduje siê w "
+"Powszechnej Licencji Publicznej GNU.\n"
+"\n"
+
+#: parted/parted.c:176
+#, c-format
+msgid "%0.f%%\t(time left %.2d:%.2d)"
+msgstr "%0.f%%\t(czas do koñca %.2d:%.2d)"
+
+#: parted/parted.c:195
+#, c-format
+msgid ""
+"Partition %s is being used. You must unmount it before you modify it with "
+"Parted."
+msgstr ""
+"Partycja %s jest u¿ywana.  Nale¿y j± od³±czyæ przed jej modyfikacj± "
+"Parteddem."
+
+#: parted/parted.c:211
+#, c-format
+msgid "Partition(s) on %s are being used."
+msgstr "Partycja (partycje) na %s s± u¿ywane."
+
+#: parted/parted.c:223
+msgid ""
+"The existing file system will be destroyed and all data on the partition "
+"will be lost. Do you want to continue?"
+msgstr ""
+"Istniej±cy system plików zostanie zniszczony, a wszystkie dane na partycji "
+"zostan± utracone. Kontynuowaæ?"
+
+#: parted/parted.c:235
+#, c-format
+msgid ""
+"The existing disk label on %s will be destroyed and all data on this disk "
+"will be lost. Do you want to continue?"
+msgstr ""
+"Istniej±ca etykieta dysku na %s zostanie zniszczona, a wszystkie dane na tym "
+"dysku zostan± utracone. Kontynuowaæ?"
+
+#: parted/parted.c:458 parted/parted.c:652 parted/parted.c:1044
+#: parted/parted.c:1128 parted/parted.c:1771 parted/parted.c:1852
+#: parted/parted.c:1900
+msgid "Partition number?"
+msgstr "Numer partycji?"
+
+#: parted/parted.c:500
+msgid "Source device?"
+msgstr "Urz±dzenie ¼ród³owe?"
+
+#: parted/parted.c:504
+msgid "Source partition number?"
+msgstr "Numer partycji ¼ród³owej?"
+
+#: parted/parted.c:509
+msgid "Can't copy an extended partition."
+msgstr "Nie mo¿na skopiowaæ rozszerzonej partycji."
+
+#: parted/parted.c:515
+msgid "Destination partition number?"
+msgstr "Numer partycji docelowej?"
+
+#: parted/parted.c:615
+msgid "New disk label type?"
+msgstr "Nowy typ etykiety dysku?"
+
+#: parted/parted.c:656
+msgid "File system?"
+msgstr "System plików?"
+
+#: parted/parted.c:707 parted/parted.c:878
+msgid "Partition type?"
+msgstr "Typ partycji?"
+
+#: parted/parted.c:714 parted/parted.c:885 parted/parted.c:1131
+msgid "Partition name?"
+msgstr "Nazwa partycji?"
+
+#: parted/parted.c:722 parted/parted.c:895
+msgid "File system type?"
+msgstr "Typ systemu plików?"
+
+#: parted/parted.c:729 parted/parted.c:897 parted/parted.c:1059
+#: parted/parted.c:1725 parted/parted.c:1780
+msgid "Start?"
+msgstr "Pocz±tek?"
+
+#: parted/parted.c:731 parted/parted.c:900 parted/parted.c:1062
+#: parted/parted.c:1727 parted/parted.c:1782
+msgid "End?"
+msgstr "Koniec?"
+
+#: parted/parted.c:769 parted/parted.c:938
+#, c-format
+msgid ""
+"You requested a partition from %s to %s.\n"
+"The closest location we can manage is %s to %s.  Is this still acceptable to "
+"you?"
+msgstr ""
+"Wybrano partycjê od %s do %s.\n"
+"Najbli¿sza z jak± Parted mo¿e sobie poradziæ jest %s - %s. Czy jest to "
+"akceptowalne?"
+
+#: parted/parted.c:890
+msgid "An extended partition cannot hold a file system.  Did you want mkpart?"
+msgstr ""
+"Rozszerzona partycja nie mo¿e trzymaæ systemu plików.  Czy chodzi³o Ci o "
+"mkpart?"
+
+#: parted/parted.c:1050
+msgid "Can't move an extended partition."
+msgstr "Nie mo¿na przesun±æ rozszerzonej partycji."
+
+#: parted/parted.c:1079
+msgid "Can't move a partition onto itself.  Try using resize, perhaps?"
+msgstr ""
+"Nie mo¿na przesun±æ partycji na sam± siebie.  Mo¿e spróbuj zmieniæ jej "
+"rozmiar?"
+
+#: parted/parted.c:1227
+#, c-format
+msgid "Minor: %d\n"
+msgstr "Numer: %d\n"
+
+#: parted/parted.c:1228
+#, c-format
+msgid "Flags: %s\n"
+msgstr "Flagi: %s\n"
+
+#: parted/parted.c:1229
+#, c-format
+msgid "File System: %s\n"
+msgstr "System plików: %s\n"
+
+#: parted/parted.c:1230
+msgid "Size:         "
+msgstr "Rozmiar:      "
+
+#: parted/parted.c:1235
+msgid "Minimum size: "
+msgstr "Minimalny rozmiar: "
+
+#: parted/parted.c:1238
+msgid "Maximum size: "
+msgstr "Maksymalny rozmiar: "
+
+#: parted/parted.c:1362
+#, c-format
+msgid "Model: %s (%s)\n"
+msgstr "Model: %s (%s)\n"
+
+#: parted/parted.c:1364
+#, c-format
+msgid "Disk %s: %s\n"
+msgstr "Dysk %s: %s\n"
+
+#: parted/parted.c:1365
+#, c-format
+msgid "Sector size (logical/physical): %lldB/%lldB\n"
+msgstr "Rozmiar sektora (logiczny/fizyczny): %lldB/%lldB\n"
+
+#: parted/parted.c:1383
+#, c-format
+msgid "BIOS cylinder,head,sector geometry: %d,%d,%d.  Each cylinder is %s.\n"
+msgstr ""
+"Geometria BIOS cylinder,g³owica,sektor: %d,%d,%d.  Ka¿dy cylinder ma %s.\n"
+
+#: parted/parted.c:1392
+#, c-format
+msgid "Partition Table: %s\n"
+msgstr "Tablica partycji: %s\n"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Number"
+msgstr "Numer"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Start"
+msgstr "Pocz±tek"
+
+#: parted/parted.c:1407 parted/parted.c:1410
+msgid "End"
+msgstr "Koniec"
+
+#: parted/parted.c:1410
+msgid "Size"
+msgstr "Rozmiar"
+
+#: parted/parted.c:1414
+msgid "Type"
+msgstr "Typ"
+
+#: parted/parted.c:1416
+msgid "File system"
+msgstr "System plików"
+
+#: parted/parted.c:1419
+msgid "Name"
+msgstr "Nazwa"
+
+#: parted/parted.c:1421
+msgid "Flags"
+msgstr "Flaga"
+
+#: parted/parted.c:1477
+msgid "Free Space"
+msgstr "Wolne miejsce"
+
+#: parted/parted.c:1624
+#, c-format
+msgid ""
+"A %s %s partition was found at %s -> %s.  Do you want to add it to the "
+"partition table?"
+msgstr ""
+"Partycja %s %s zosta³a znaleziona na %s -> %s.  Czy chcesz j± dodaæ do "
+"tablicy partycji?"
+
+#: parted/parted.c:1663
+msgid "searching for file systems"
+msgstr "szukam systemów plików"
+
+#: parted/parted.c:1877
+msgid "New device?"
+msgstr "Nowe urz±dzenie?"
+
+#: parted/parted.c:1902
+msgid "Flag to Invert?"
+msgstr "Flaga do przestawienia?"
+
+#: parted/parted.c:1907
+msgid "New state?"
+msgstr "Nowy stan?"
+
+#: parted/parted.c:1944
+msgid "Unit?"
+msgstr "Jednostka?"
+
+#: parted/parted.c:2093
+msgid "check"
+msgstr "sprawd¼"
+
+#: parted/parted.c:2096
+msgid ""
+"check NUMBER                             do a simple check on the file system"
+msgstr ""
+"check NUMER                   wykonuje proste sprawdzenie systemu plików"
+
+#: parted/parted.c:2102
+msgid "cp"
+msgstr "kopiuj"
+
+#: parted/parted.c:2105
+msgid ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+"partition"
+msgstr ""
+"cp [URZ¡DZENIE-¬RÓD£OWE] NUMER-¬RÓD£OWY NUMER-DOCELOWY  kopiuje system "
+"plików na inn± partycjê"
+
+#: parted/parted.c:2111
+msgid "help"
+msgstr "pomoc"
+
+#: parted/parted.c:2114
+#, fuzzy
+msgid ""
+"help [COMMAND]                           print general help, or help on "
+"COMMAND"
+msgstr ""
+"pomoc [KOMENDA]               wy¶wietla pomoc ogóln± lub dotycz±c± KOMENDY"
+
+#: parted/parted.c:2120
+msgid "mklabel"
+msgstr "mklabel"
+
+#: parted/parted.c:2120
+msgid "mktable"
+msgstr "mktable"
+
+#: parted/parted.c:2123
+msgid ""
+"mklabel,mktable LABEL-TYPE               create a new disklabel (partition "
+"table)"
+msgstr ""
+"mklabel,mktable TYP-ETYKIETY  tworzy now± etykietê dysku (tablicê partycji)"
+
+#: parted/parted.c:2129
+msgid "mkfs"
+msgstr "mkfs"
+
+#: parted/parted.c:2132
+msgid ""
+"mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on "
+"partititon NUMBER"
+msgstr "mkfs NUMER SYSTEM-PLIKÓW      tworzy system plików na partycji NUMER"
+
+#: parted/parted.c:2138
+msgid "mkpart"
+msgstr "mkpart"
+
+#: parted/parted.c:2141
+msgid "mkpart PART-TYPE [FS-TYPE] START END     make a partition"
+msgstr "mkpart TYP-PARTYCJI [SYSTEM-PLIKÓW] POCZ¡TEK KONIEC   tworzy partycjê"
+
+#: parted/parted.c:2147
+#, fuzzy
+msgid ""
+"'mkpart' makes a partition without creating a new file system on the "
+"partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"
+msgstr ""
+"Komenda mkpart tworzy partycjê bez tworzenia nowego systemu plików na tej "
+"partycji.  Opcjonalny SYSTEM-PLIKÓW mo¿e zostaæ podany do okre¶lenia "
+"w³a¶ciwego identyfikatora partycji.\n"
+
+#: parted/parted.c:2152
+msgid "mkpartfs"
+msgstr "mkpartfs"
+
+#: parted/parted.c:2155
+msgid ""
+"mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system"
+msgstr ""
+"mkpartfs TYP-PARTYCJI SYSTEM-PLIKÓW POCZ¡TEK KONIEC   tworzy partycjê z "
+"systemem plików"
+
+#: parted/parted.c:2161
+msgid "move"
+msgstr "przesuñ"
+
+#: parted/parted.c:2164
+msgid "move NUMBER START END                    move partition NUMBER"
+msgstr "move NUMER POCZ¡TEK KONIEC    przesuwa partycjê NUMER"
+
+#: parted/parted.c:2169
+msgid "name"
+msgstr "nazwa"
+
+#: parted/parted.c:2172
+msgid "name NUMBER NAME                         name partition NUMBER as NAME"
+msgstr "name NUMER NAZWA              nadaje NAZWÊ partycji NUMER"
+
+#: parted/parted.c:2177
+msgid "print"
+msgstr "drukuj"
+
+#: parted/parted.c:2180
+msgid ""
+"print [devices|free|list,all|NUMBER]     display the partition table, "
+"available devices, free space, all found partitions, or a particular "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2185
+msgid ""
+"Without arguments, 'print' displays the entire partition table. However with "
+"the following arguments it performs various other actions.\n"
+msgstr ""
+
+#: parted/parted.c:2187
+msgid "  devices   : display all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2188
+msgid ""
+"  free      : display information about free unpartitioned space on the "
+"current block device\n"
+msgstr ""
+
+#: parted/parted.c:2190
+#, fuzzy
+msgid ""
+"  list, all : display the partition tables of all active block devices\n"
+msgstr "wypisuje tablice partycji wszystkich wykrytych urz±dzeñ"
+
+#: parted/parted.c:2191
+msgid ""
+"  NUMBER    : display more detailed information about this particular "
+"partition\n"
+msgstr ""
+
+#: parted/parted.c:2196
+msgid "quit"
+msgstr "koniec"
+
+#: parted/parted.c:2199
+msgid "quit                                     exit program"
+msgstr "quit                          koñczy pracê programu"
+
+#: parted/parted.c:2204
+msgid "rescue"
+msgstr "uratuj"
+
+#: parted/parted.c:2207
+msgid ""
+"rescue START END                         rescue a lost partition near START "
+"and END"
+msgstr ""
+"rescue POCZ¡TEK KONIEC        odzyskuje utracon± partycjê blisko POCZ¡TKU i "
+"KOÑCA"
+
+#: parted/parted.c:2213
+msgid "resize"
+msgstr "rozmiar"
+
+#: parted/parted.c:2216
+msgid ""
+"resize NUMBER START END                  resize partition NUMBER and its "
+"file system"
+msgstr ""
+"resize NUMER POCZ¡TEK KONIEC  zmienia rozmiar systemu plików i partycji NUMER"
+
+#: parted/parted.c:2224
+msgid "rm"
+msgstr "usuñ"
+
+#: parted/parted.c:2227
+msgid "rm NUMBER                                delete partition NUMBER"
+msgstr "rm NUMER                      usuwa partycjê NUMER"
+
+#: parted/parted.c:2232
+msgid "select"
+msgstr "wybierz"
+
+#: parted/parted.c:2235
+msgid "select DEVICE                            choose the device to edit"
+msgstr "select URZ¡DZENIE             wybiera urz±dzenie do edycji"
+
+#: parted/parted.c:2240
+msgid "set"
+msgstr "ustaw"
+
+#: parted/parted.c:2243
+msgid ""
+"set NUMBER FLAG STATE                    change the FLAG on partition NUMBER"
+msgstr "set NUMER FLAGA STAN          zmienia flagê na partycji NUMER"
+
+#: parted/parted.c:2249
+msgid "toggle"
+msgstr "przestaw"
+
+#: parted/parted.c:2252
+msgid ""
+"toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+"partition NUMBER"
+msgstr "toggle [NUMER [FLAGA]]        przestawia stan FLAGI na partycji NUMER"
+
+#: parted/parted.c:2258
+msgid "unit"
+msgstr "jednostka"
+
+#: parted/parted.c:2261
+msgid "unit UNIT                                set the default unit to UNIT"
+msgstr "unit JEDNOSTKA                ustawia domy¶ln± jednostkê"
+
+#: parted/parted.c:2266
+msgid "version"
+msgstr "wersja"
+
+#: parted/parted.c:2269
+#, fuzzy
+msgid ""
+"version                                  display the version number and "
+"copyright information of GNU Parted"
+msgstr ""
+"version                       wy¶wietla aktualn± wersjê GNU Parteda i "
+"informacje o prawach autorskich"
+
+#: parted/parted.c:2273
+#, fuzzy
+msgid ""
+"'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"
+msgstr ""
+"version wy¶wietla informacje o prawach autorskich i wersji dla tej kopii GNU "
+"Parteda\n"
+
+#: parted/parted.c:2335
+#, c-format
+msgid "Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"
+msgstr ""
+
+#: parted/parted.c:2379
+msgid "No device found"
+msgstr "Nie znaleziono urz±dzenia"
+
+#: parted/parted.c:2412
+#, fuzzy
+msgid "WARNING: You are not superuser.  Watch out for permissions."
+msgstr "UWAGA: Nie jeste¶ superu¿ytkownikiem. Uwa¿aj na uprawnienia.\n"
+
+#: parted/parted.c:2450
+#, fuzzy
+msgid "You may need to update /etc/fstab.\n"
+msgstr ""
+"Nie zapomnij o aktualizacji /etc/fstab, je¶li istnieje taka potrzeba.\n"
+
+#: parted/ui.c:160
+msgid "Welcome to GNU Parted! Type 'help' to view a list of commands.\n"
+msgstr ""
+"Witamy w GNU Partedzie! Listê komend mo¿na zobaczyæ po napisaniu 'help'.\n"
+
+#: parted/ui.c:163
+msgid ""
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run "
+"in\n"
+"interactive mode.\n"
+msgstr ""
+"Sk³adnia: parted [OPCJA]... [URZ¡DZENIE [KOMENDA [PARAMETRY]...]...]\n"
+"Wykonuje KOMENDY z PARAMETRAMI dla URZ¡DZENIA.  Je¶li nie podano KOMEND(Y),\n"
+"program zostanie uruchomiony w trybie interaktywnym.\n"
+
+#: parted/ui.c:168
+#, fuzzy, c-format
+msgid ""
+"\n"
+"\n"
+"You found a bug in GNU Parted! Here's what you have to do:\n"
+"\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n"
+"\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Please check this version prior to bug reporting.\n"
+"\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"for further information.\n"
+"\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n"
+msgstr ""
+"\n"
+"\n"
+"Znalaz³e¶ b³±d w programie GNU Parted! Poni¿ej znajduje siê instrukcja "
+"postêpowania:\n"
+"\n"
+"Nie panikuj! B³±d najprawdopodobniej nie dotkn±³ ¿adnych twoich danych.\n"
+"Pomó¿ nam poprawiæ ten b³±d wykonuj±c nastêpuj±ce czynno¶ci:\n"
+"\n"
+"Sprawd¼, czy b³±d zosta³ ju¿ poprawiony sprawdzaj±c najnowsz± wersjê GNU "
+"Parteda\n"
+"dostêpn± pod adresem:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Proszê sprawdziæ tê wersjê przed zg³aszaniem b³êdu.\n"
+"\n"
+"Je¶li b³±d nie zosta³ jeszcze poprawiony lub nie wiesz, jak to sprawdziæ,\n"
+"proszê odwiedziæ stronê GNU Parteda:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"gdzie znajduje siê wiêcej informacji.\n"
+"\n"
+"Zg³oszenie b³êdu powinno zawieraæ wersjê tego wydania (%s)\n"
+"wraz z poni¿szym komunikatem o b³êdzie, wyj¶ciem polecenia\n"
+"\n"
+"\tparted URZ¡DZENIE unit co print unit s print\n"
+"\n"
+"i dodatkowymi informacjami o konfiguracji, które uwa¿asz za istotne.\n"
+
+#: parted/ui.c:284
+msgid ""
+"\n"
+"Command History:\n"
+msgstr ""
+
+#: parted/ui.c:366
+#, fuzzy
+msgid ""
+"\n"
+"Error: SEGV_MAPERR (Address not mapped to object)\n"
+msgstr ""
+"\n"
+"B³±d: SEGV_MAPERR (Adres nie odwzorowany na obiekcie)"
+
+#: parted/ui.c:372
+#, fuzzy
+msgid ""
+"\n"
+"Error: SEGV_ACCERR (Invalid permissions for mapped object)\n"
+msgstr ""
+"\n"
+"B³±d: SEGV_ACCERR (Nieprawid³owe uprawnienia dla odwzorowanego obiektu)"
+
+#: parted/ui.c:377
+#, fuzzy
+msgid ""
+"\n"
+"Error: A general SIGSEGV signal was encountered.\n"
+msgstr ""
+"\n"
+"B³±d: Wyst±pi³ ogólny sygna³ SIGSEGV."
+
+#: parted/ui.c:410
+msgid ""
+"\n"
+"Error: FPE_INTDIV (Integer: divide by zero)"
+msgstr ""
+"\n"
+"B³±d: FPE_INTDIV (dzielenie przez zero na liczbach ca³kowitych)"
+
+#: parted/ui.c:415
+msgid ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+msgstr ""
+"\n"
+"B³±d: FPE_INTOVF (przepe³nienie dla liczby ca³kowitej)"
+
+#: parted/ui.c:420
+msgid ""
+"\n"
+"Error: FPE_FLTDIV (Float: divide by zero)"
+msgstr ""
+"\n"
+"B³±d: FPE_FLTDIV (dzielenie przez zero na liczbach zmiennoprzecinkowych)"
+
+#: parted/ui.c:425
+msgid ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+msgstr ""
+"\n"
+"B³±d: FPE_FLTOVF (przepe³nienie dla liczby zmiennoprzecinkowej)"
+
+#: parted/ui.c:430
+msgid ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+msgstr ""
+"\n"
+"B³±d: FPE_FLTUND (niedope³nienie dla liczby zmiennoprzecinkowej)"
+
+#: parted/ui.c:435
+msgid ""
+"\n"
+"Error: FPE_FLTRES (Float: inexact result)"
+msgstr ""
+"\n"
+"B³±d: FPE_FLTRES (niedok³adny wynik dla liczb zmiennoprzecinkowych)"
+
+#: parted/ui.c:440
+msgid ""
+"\n"
+"Error: FPE_FLTINV (Float: invalid operation)"
+msgstr ""
+"\n"
+"B³±d: FPE_FLTINV (nieprawid³owa operacja dla liczb zmiennoprzecinkowych)"
+
+#: parted/ui.c:445
+msgid ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript out of range)"
+msgstr ""
+"\n"
+"B³±d: FPE_FLTSUB (indeks spoza zakresu dla liczb zmiennoprzecinkowych)"
+
+#: parted/ui.c:450
+msgid ""
+"\n"
+"Error: A general SIGFPE signal was encountered."
+msgstr ""
+"\n"
+"B³±d: Wyst±pi³ ogólny sygna³ SIGFPE."
+
+#: parted/ui.c:483
+msgid ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+msgstr ""
+"\n"
+"B³±d: ILL_ILLOPC (niedozwolony kod instrukcji)"
+
+#: parted/ui.c:488
+msgid ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+msgstr ""
+"\n"
+"B³±d: ILL_ILLOPN (niedozwolony operand)"
+
+#: parted/ui.c:493
+msgid ""
+"\n"
+"Error: ILL_ILLADR (Illegal addressing mode)"
+msgstr ""
+"\n"
+"B³±d: ILL_ILLADR (niedozwolony tryb adresowania)"
+
+#: parted/ui.c:498
+msgid ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+msgstr ""
+"\n"
+"B³±d: ILL_ILLTRP (niedozwolona pu³apka)"
+
+#: parted/ui.c:503
+msgid ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+msgstr ""
+"\n"
+"B³±d: ILL_PRVOPC (uprzywilejowany kod instrukcji)"
+
+#: parted/ui.c:508
+msgid ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+msgstr ""
+"\n"
+"B³±d: ILL_PRVREG (uprzywilejowany rejestr)"
+
+#: parted/ui.c:513
+msgid ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+msgstr ""
+"\n"
+"B³±d: ILL_COPROC (b³±d koprocesora)"
+
+#: parted/ui.c:518
+msgid ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+msgstr ""
+"\n"
+"B³±d: ILL_BADSTK (wewnêtrzny b³±d stosu)"
+
+#: parted/ui.c:523
+msgid ""
+"\n"
+"Error: A general SIGILL signal was encountered."
+msgstr ""
+"\n"
+"B³±d: Wyst±pi³ ogólny sygna³ SIGILL."
+
+#: parted/ui.c:1024
+msgid "Expecting a partition number."
+msgstr "Oczekiwany by³ numer partycji."
+
+#: parted/ui.c:1033
+msgid "Partition doesn't exist."
+msgstr "Partycja nie istnieje."
+
+#: parted/ui.c:1053
+msgid "Expecting a file system type."
+msgstr "Oczekiwany by³ typ systemu plików."
+
+#: parted/ui.c:1060
+#, c-format
+msgid "Unknown file system type \"%s\"."
+msgstr "Nieznany typ systemu plików \"%s\"."
+
+#: parted/ui.c:1080
+msgid "Expecting a disk label type."
+msgstr "Oczekiwany by³ typ etykiety dysku."
+
+#: parted/ui.c:1178
+msgid "Can't create any more partitions."
+msgstr "Nie mo¿na utworzyæ wiêcej partycji."
+
+#: parted/ui.c:1188
+msgid "Expecting a partition type."
+msgstr "Oczekiwany by³ typ partycji."
+
+#: parted/ui.c:1315
+msgid "on"
+msgstr "w³±czone"
+
+#: parted/ui.c:1316
+msgid "off"
+msgstr "wy³±czone"
+
+#: parted/ui.c:1431
+msgid "OPTIONs:"
+msgstr "OPCJE:"
+
+#: parted/ui.c:1436
+msgid "COMMANDs:"
+msgstr "KOMENDY:"
+
+#: parted/ui.c:1445
+#, c-format
+msgid "Using %s\n"
+msgstr "U¿ycie %s\n"
+
+#: parted/ui.c:1519
+msgid "This command does not make sense in non-interactive mode.\n"
+msgstr ""
+
+#~ msgid "GNU Parted cannot resize this file system, please useresize2fs."
+#~ msgstr ""
+#~ "GNU Parted nie potrafi zmieniæ rozmiaru tego systemu plików, proszê u¿yæ "
+#~ "resize2fs."
+
+#~ msgid "where necessary, prompts for user intervention"
+#~ msgstr "gdy jest potrzeba, prosi o interwencjê u¿ytkownika"
+
+#~ msgid "GNU Parted Version information:\n"
+#~ msgstr "Informacje o wersji GNU Parteda:\n"
+
+#~ msgid ""
+#~ "print [free|NUMBER|all]                  display the partition table, a "
+#~ "partition, or all devices"
+#~ msgstr ""
+#~ "print [free|NUMER|all]        wy¶wietla tablicê partycji, partycjê lub "
+#~ "wszystkie urz±dzenia"
+
+#~ msgid ""
+#~ "Without arguments, print displays the entire partition table. With "
+#~ "'free'\n"
+#~ "argument, information about free space will be displayed otherwise if a\n"
+#~ "partition number is given, then more detailed information is displayed\n"
+#~ "about that partition. If the 'all' argument is passed instead, partition\n"
+#~ "information for all devices will be displayed.\n"
+#~ msgstr ""
+#~ "Bez podania argumentów, komenda print wy¶wietla ca³± tablicê partycji.\n"
+#~ "Z argumentem 'free' wy¶wietla informacje o wolnym miejscu, natomiast\n"
+#~ "je¶li podano NUMER partycji, wtedy wy¶wietlone zostan± bardziej\n"
+#~ "szczegó³owe informacje odno¶nie podanej partycji. Je¶li podano argument\n"
+#~ "'all', wy¶wietlone zostan± informacje dla wszystkich urz±dzeñ.\n"
diff --git a/parted-1.8.7/po/pt.gmo b/parted-1.8.7/po/pt.gmo
new file mode 100644
index 0000000..f6f6a2a
--- /dev/null
+++ b/parted-1.8.7/po/pt.gmo
Binary files differ
diff --git a/parted-1.8.7/po/pt.po b/parted-1.8.7/po/pt.po
new file mode 100644
index 0000000..1a70280
--- /dev/null
+++ b/parted-1.8.7/po/pt.po
@@ -0,0 +1,3411 @@
+# Portuguese messages for GNU parted.
+# Copyright (C) 2001 Free Software Foundation, Inc.
+# Gonçalo Silva <goncalo.silva@caixamagica.pt>, 2001.
+# Based on pt_BR.po made by Eliphas Levy Theodoro.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: parted 1.4.20\n"
+"Report-Msgid-Bugs-To: bug-parted@gnu.org\n"
+"POT-Creation-Date: 2007-05-09 17:02-0400\n"
+"PO-Revision-Date: 2001-10-16 20:16+02:00\n"
+"Last-Translator: Gonçalo Silva <goncalo.silva@caixamagica.org>\n"
+"Language-Team: Portuguese <pt@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: lib/closeout.c:74
+msgid "write error"
+msgstr ""
+
+#: lib/error.c:125
+#, fuzzy
+msgid "Unknown system error"
+msgstr "Tipo de sistema de ficheiros desconhecido."
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK).  A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#.
+#. If you don't know what to put here, please see
+#. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr ""
+
+#: lib/regcomp.c:131
+msgid "Success"
+msgstr ""
+
+#: lib/regcomp.c:134
+msgid "No match"
+msgstr ""
+
+#: lib/regcomp.c:137
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regcomp.c:140
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regcomp.c:143
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regcomp.c:146
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regcomp.c:149
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regcomp.c:152
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regcomp.c:155
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regcomp.c:158
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regcomp.c:161
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regcomp.c:164
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regcomp.c:170
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regcomp.c:173
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regcomp.c:176
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regcomp.c:179
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regcomp.c:680
+msgid "No previous regular expression"
+msgstr ""
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr ""
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:66
+msgid "(C)"
+msgstr ""
+
+#: lib/version-etc.c:68
+msgid ""
+"\n"
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:84
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:88
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:92
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:98
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:104
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:110
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:132
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+
+#: lib/xalloc-die.c:35
+msgid "memory exhausted"
+msgstr ""
+
+#: libparted/arch/beos.c:237
+msgid "Disk Image"
+msgstr ""
+
+#: libparted/arch/beos.c:338 libparted/arch/gnu.c:261
+#: libparted/arch/linux.c:1272
+#, c-format
+msgid "Error opening %s: %s"
+msgstr "Erro abrindo %s: %s"
+
+#: libparted/arch/beos.c:349 libparted/arch/gnu.c:271
+#: libparted/arch/linux.c:1283
+#, c-format
+msgid "Unable to open %s read-write (%s).  %s has been opened read-only."
+msgstr ""
+"Não posso abrir %s para gravação (%s). %s foi aberto somente para leitura."
+
+#: libparted/arch/beos.c:411 libparted/arch/linux.c:1431
+#, c-format
+msgid "%s during seek for read on %s"
+msgstr "%s durante procura para leitura em %s"
+
+#: libparted/arch/beos.c:444 libparted/arch/gnu.c:449 libparted/arch/gnu.c:548
+#: libparted/arch/gnu.c:676 libparted/arch/linux.c:1391
+#: libparted/arch/linux.c:1469
+#, c-format
+msgid "%s during read on %s"
+msgstr "%s durante leitura em %s"
+
+#: libparted/arch/beos.c:480 libparted/arch/gnu.c:509
+#: libparted/arch/linux.c:1546
+#, c-format
+msgid "Can't write to %s, because it is opened read-only."
+msgstr "Não posso gravar em %s, pois ela foi aberta como somente para leitura."
+
+#: libparted/arch/beos.c:496 libparted/arch/linux.c:1570
+#, c-format
+msgid "%s during seek for write on %s"
+msgstr "%s durante procura para escrita em %s"
+
+#: libparted/arch/beos.c:533 libparted/arch/gnu.c:585 libparted/arch/gnu.c:630
+#: libparted/arch/gnu.c:707 libparted/arch/linux.c:1517
+#: libparted/arch/linux.c:1612 libparted/arch/linux.c:1684
+#, c-format
+msgid "%s during write on %s"
+msgstr "%s durante escrita em %s"
+
+#: debug/clearfat/clearfat.c:63 partprobe/partprobe.c:137
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:67
+#, c-format
+msgid ""
+"Usage: %s [OPTION]\n"
+"  or:  %s DEVICE MINOR\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:70
+msgid ""
+"Clear unused space on a FAT partition (a GNU Parted testing tool).\n"
+"\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:74
+msgid "      --help     display this help and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:75
+msgid "      --version  output version information and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:77 partprobe/partprobe.c:154
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:285
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:290
+#, fuzzy, c-format
+msgid "too many arguments"
+msgstr "Muitas páginas inválidas."
+
+#: partprobe/partprobe.c:141
+#, c-format
+msgid "Usage: %s [OPTION] [DEVICE]...\n"
+msgstr ""
+
+#: partprobe/partprobe.c:142
+msgid ""
+"Inform the OS of partition table changes.\n"
+"\n"
+"  -d, --no-update  don't update the kernel\n"
+"  -s, --summary    print a summary of contents\n"
+"  -h, --help       display this help and exit\n"
+"  -v, --version    output version information and exit\n"
+msgstr ""
+
+#: partprobe/partprobe.c:150
+msgid ""
+"\n"
+"With no DEVICE, probe all partitions.\n"
+msgstr ""
+
+#: libparted/arch/gnu.c:94
+#, c-format
+msgid "Unable to open %s."
+msgstr ""
+
+#: libparted/arch/gnu.c:114
+#, fuzzy
+msgid "Unable to probe store."
+msgstr "Impossível alinhar a partição."
+
+#: libparted/arch/gnu.c:352
+#, fuzzy
+msgid ""
+"The partition table cannot be re-read.  This means you need to reboot before "
+"mounting any modified partitions.  You also need to reinstall your boot "
+"loader before you reboot (which may require mounting modified partitions).  "
+"It is impossible do both things!  So you'll need to boot off a rescue disk, "
+"and reinstall your boot loader from the rescue disk.  Read section 4 of the "
+"Parted User documentation for more information."
+msgstr ""
+"O kernel não pôde reler sua tabela de partições, portanto precisa de "
+"reiniciar antes de montar qualquer partição modificada. Voce pode também "
+"precisar reinstalar seu gestor de boot antes de reinicializar (o que pode "
+"requerer a montagem das partições modificadas). É impossível fazer as duas "
+"coisas! Leia a secção 4 da documentação do usuário do Parted para mais "
+"informações."
+
+#: libparted/arch/gnu.c:369
+#, fuzzy, c-format
+msgid ""
+"The partition table on %s cannot be re-read (%s).  This means the Hurd knows "
+"nothing about any modifications you made.  You should reboot your computer "
+"before doing anything with %s."
+msgstr ""
+"O kernel não conseguiu reler a tabela de partições de %s (%s). Isto "
+"significa que o Linux não sabe nada sobre as modificações que fez. Deverá "
+"reinicializar seu computador antes de fazer qualquer uso de %s."
+
+#: libparted/arch/gnu.c:380 parted/parted.c:2443
+msgid ""
+"You should reinstall your boot loader before rebooting.  Read section 4 of "
+"the Parted User documentation for more information."
+msgstr ""
+"Deverá reinstalar seu gestor de boot antes de reinicializar. Leia a secção 4 "
+"da documentação do utilizador do Parted para mais informações."
+
+#: libparted/arch/gnu.c:772
+#, c-format
+msgid "%s trying to sync %s to disk"
+msgstr ""
+
+#: libparted/arch/linux.c:408
+#, c-format
+msgid "Could not stat device %s - %s."
+msgstr "Não foi possível inicializar o dispositivo %s - %s."
+
+#: libparted/arch/linux.c:523
+#, c-format
+msgid ""
+"Could not determine sector size for %s: %s.\n"
+"Using the default sector size (%lld)."
+msgstr ""
+
+#: libparted/arch/linux.c:539
+#, c-format
+msgid ""
+"Device %s has a logical sector size of %lld.  Not all parts of GNU Parted "
+"support this at the moment, and the working code is HIGHLY EXPERIMENTAL.\n"
+msgstr ""
+
+#: libparted/arch/linux.c:579
+#, fuzzy, c-format
+msgid "Unable to determine the size of %s (%s)."
+msgstr "Impossível determinar tamanho de %s (%s)"
+
+#: libparted/arch/linux.c:668
+#, c-format
+msgid "Could not get identity of device %s - %s"
+msgstr "Não foi possível obter a identificação do dispositivo %s - %s"
+
+#: libparted/arch/linux.c:677
+msgid "Generic IDE"
+msgstr ""
+
+#: libparted/arch/linux.c:698
+#, c-format
+msgid ""
+"Device %s has multiple (%d) logical sectors per physical sector.\n"
+"GNU Parted supports this EXPERIMENTALLY for some special disk label/file "
+"system combinations, e.g. GPT and ext2/3.\n"
+"Please consult the web site for up-to-date information."
+msgstr ""
+
+#: libparted/arch/linux.c:873
+#, c-format
+msgid "Error initialising SCSI device %s - %s"
+msgstr "Erro inicializando dispositivo SCSI %s - %s"
+
+#: libparted/arch/linux.c:928
+#, c-format
+msgid ""
+"The device %s has zero length, and can't possibly store a file system or "
+"partition table.  Perhaps you selected the wrong device?"
+msgstr ""
+
+#: libparted/arch/linux.c:1032
+#, fuzzy, c-format
+msgid ""
+"Unable to determine geometry of file/device %s.  You should not use Parted "
+"unless you REALLY know what you're doing!"
+msgstr ""
+"Impossível determinar a geometria do ficheiro/dispositivo. Não deve utilizar "
+"o Parted a não ser que REALMENTE saiba o que está a fazer!"
+
+#: libparted/arch/linux.c:1110
+msgid "DAC960 RAID controller"
+msgstr "Controlador RAID DAC960"
+
+#: libparted/arch/linux.c:1115
+msgid "Promise SX8 SATA Device"
+msgstr ""
+
+#: libparted/arch/linux.c:1120
+msgid "IBM S390 DASD drive"
+msgstr ""
+
+#: libparted/arch/linux.c:1125
+msgid "IBM iSeries Virtual DASD"
+msgstr ""
+
+#: libparted/arch/linux.c:1130
+msgid "Compaq Smart Array"
+msgstr "Compaq Smart Array"
+
+#: libparted/arch/linux.c:1135
+msgid "ATARAID Controller"
+msgstr "Controlador ATARAID"
+
+#: libparted/arch/linux.c:1140
+msgid "I2O Controller"
+msgstr "Controlador I20"
+
+#: libparted/arch/linux.c:1145
+msgid "User-Mode Linux UBD"
+msgstr ""
+
+#: libparted/arch/linux.c:1156
+msgid "Linux device-mapper"
+msgstr ""
+
+#: libparted/arch/linux.c:1162
+msgid "Unknown"
+msgstr "Desconhecido"
+
+#: libparted/arch/linux.c:1169
+msgid "ped_device_new()  Unsupported device type"
+msgstr "ped_device_new()  Tipo de dispositivo não suportado"
+
+#: libparted/arch/linux.c:2083
+#, c-format
+msgid ""
+"Error informing the kernel about modifications to partition %s -- %s.  This "
+"means Linux won't know about any changes you made to %s until you reboot -- "
+"so you shouldn't mount it or use it in any way before rebooting."
+msgstr ""
+
+#: libparted/arch/linux.c:2262
+#, fuzzy, c-format
+msgid ""
+"parted was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made. "
+msgstr ""
+"O kernel não conseguiu reler a tabela de partições de %s (%s). Isto "
+"significa que o Linux não sabe nada sobre as modificações que fez. Deverá "
+"reinicializar seu computador antes de fazer qualquer uso de %s."
+
+#: libparted/arch/linux.c:2368
+#, fuzzy, c-format
+msgid ""
+"The kernel was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made until you "
+"reboot.  You should reboot your computer before doing anything with %s."
+msgstr ""
+"O kernel não conseguiu reler a tabela de partições de %s (%s). Isto "
+"significa que o Linux não sabe nada sobre as modificações que fez. Deverá "
+"reinicializar seu computador antes de fazer qualquer uso de %s."
+
+#: libparted/cs/geom.c:162
+msgid "Can't have the end before the start!"
+msgstr "Não pode ter o fim da partição antes do início."
+
+#: libparted/cs/geom.c:169
+msgid "Can't have a partition outside the disk!"
+msgstr "Não pode ter uma partição fora do disco!."
+
+#: libparted/cs/geom.c:366
+#, fuzzy, c-format
+msgid "Attempt to write sectors %ld-%ld outside of partition on %s."
+msgstr "Tentativa de escrever sectores %ld-%ld fora da partição em %s"
+
+#: libparted/cs/geom.c:406 libparted/fs/linux_swap/linux_swap.c:475
+msgid "checking for bad blocks"
+msgstr ""
+
+#: libparted/debug.c:102
+#, c-format
+msgid "Backtrace has %d calls on stack:\n"
+msgstr ""
+
+#: libparted/debug.c:114
+#, c-format
+msgid "Assertion (%s) at %s:%d in function %s() failed."
+msgstr ""
+
+#: libparted/disk.c:203
+#, c-format
+msgid "Unable to open %s - unrecognised disk label."
+msgstr "Impossível abrir %s - rótulo de disco desconhecido."
+
+#: libparted/disk.c:471
+#, fuzzy, c-format
+msgid ""
+"This libparted doesn't have write support for %s.  Perhaps it was compiled "
+"read-only."
+msgstr "Não posso gravar em %s, pois ela foi aberta como somente para leitura."
+
+#: libparted/disk.c:598
+#, fuzzy, c-format
+msgid "Partition %d is %s, but the file system is %s."
+msgstr "A partição é muito pequena para um sistema de ficheiros FAT"
+
+#: libparted/disk.c:1075
+#, c-format
+msgid "%s disk labels do not support extended partitions."
+msgstr "Rótulos de disco %s não suportam partições extendidas."
+
+#: libparted/disk.c:1634
+#, c-format
+msgid "%s disk labels don't support logical or extended partitions."
+msgstr "Rótulos de disco %s não suportam partições lógicas ou extendidas."
+
+#: libparted/disk.c:1647
+#, fuzzy
+msgid "Too many primary partitions."
+msgstr "Muitas páginas inválidas."
+
+#: libparted/disk.c:1656
+#, c-format
+msgid ""
+"Can't add a logical partition to %s, because there is no extended partition."
+msgstr ""
+"Não posso adicionar uma partição lógica em %s, pois não há uma partição "
+"extendida."
+
+#: libparted/disk.c:1680
+#, fuzzy, c-format
+msgid "Can't have more than one extended partition on %s."
+msgstr "Não se pode haver mais de uma partição extendida em %s"
+
+#: libparted/disk.c:1690
+#, fuzzy
+msgid "Can't have logical partitions outside of the extended partition."
+msgstr ""
+"Não posso adicionar uma partição lógica fora da partição extendida em %s."
+
+#: libparted/disk.c:1715
+#, fuzzy, c-format
+msgid "Can't have a logical partition outside of the extended partition on %s."
+msgstr ""
+"Não posso adicionar uma partição lógica fora da partição extendida em %s."
+
+#: libparted/disk.c:1725 libparted/disk.c:1779 libparted/disk.c:1945
+#, fuzzy
+msgid "Can't have overlapping partitions."
+msgstr "Não posso copiar para uma partição sobreposta."
+
+#: libparted/disk.c:1733
+#, fuzzy
+msgid "Can't have a primary partition inside an extended partition."
+msgstr "Não posso adicionar uma partição primária dentro de uma extendida."
+
+#: libparted/disk.c:2140
+msgid "metadata"
+msgstr ""
+
+#: libparted/disk.c:2142
+msgid "free"
+msgstr "livre"
+
+#: libparted/disk.c:2144 parted/ui.c:1169 parted/ui.c:1197
+msgid "extended"
+msgstr "extendida"
+
+#: libparted/disk.c:2146 parted/ui.c:1173 parted/ui.c:1201
+msgid "logical"
+msgstr "lógica"
+
+#: libparted/disk.c:2148 parted/ui.c:1165 parted/ui.c:1193
+msgid "primary"
+msgstr "primária"
+
+#: libparted/disk.c:2164
+msgid "boot"
+msgstr "boot"
+
+#: libparted/disk.c:2166
+msgid "root"
+msgstr "root"
+
+#: libparted/disk.c:2168
+msgid "swap"
+msgstr "swap"
+
+#: libparted/disk.c:2170
+msgid "hidden"
+msgstr "escondida"
+
+#: libparted/disk.c:2172
+msgid "raid"
+msgstr "raid"
+
+#: libparted/disk.c:2174
+msgid "lvm"
+msgstr "lvm"
+
+#: libparted/disk.c:2176
+msgid "lba"
+msgstr "lba"
+
+#: libparted/disk.c:2178
+msgid "hp-service"
+msgstr ""
+
+#: libparted/disk.c:2180
+msgid "palo"
+msgstr ""
+
+#: libparted/disk.c:2182
+msgid "prep"
+msgstr ""
+
+#: libparted/disk.c:2184
+msgid "msftres"
+msgstr ""
+
+#: libparted/disk.c:2190
+#, fuzzy, c-format
+msgid "Unknown partition flag, %d."
+msgstr "Sinalizador de partição desconhecido, %d."
+
+#: libparted/exception.c:78
+msgid "Information"
+msgstr "Informação"
+
+#: libparted/exception.c:79
+msgid "Warning"
+msgstr "Aviso"
+
+#: libparted/exception.c:80
+msgid "Error"
+msgstr "Erro"
+
+#: libparted/exception.c:81
+msgid "Fatal"
+msgstr "Fatal"
+
+#: libparted/exception.c:82
+msgid "Bug"
+msgstr "Bug"
+
+#: libparted/exception.c:83
+msgid "No Implementation"
+msgstr "Sem Implementação"
+
+#: libparted/exception.c:87
+msgid "Fix"
+msgstr "Arranjar"
+
+#: libparted/exception.c:88
+msgid "Yes"
+msgstr "Sim"
+
+#: libparted/exception.c:89
+msgid "No"
+msgstr "Não"
+
+#: libparted/exception.c:90
+msgid "OK"
+msgstr "OK"
+
+#: libparted/exception.c:91
+msgid "Retry"
+msgstr "Repetir"
+
+#: libparted/exception.c:92
+msgid "Ignore"
+msgstr "Ignorar"
+
+#: libparted/exception.c:93
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: libparted/exception.c:133
+#, fuzzy, c-format
+msgid ""
+"A bug has been detected in GNU Parted.  Refer to the web site of parted "
+"http://www.gnu.org/software/parted/parted.html for more informations of what "
+"could be useful for bug submitting!  Please email a bug report to bug-"
+"parted@gnu.org containing at least the version (%s) and the following "
+"message:  "
+msgstr ""
+"Um bug foi detectado no GNU parted. Por favor, envie um relatório do bug "
+"para bug-parted@gnu.org contendo a versão (%s) e a mensagem abaixo:"
+
+#: libparted/filesys.c:384
+msgid "Could not detect file system."
+msgstr "Não foi possível detectar o sistema de Ficheiros."
+
+#: libparted/filesys.c:395
+#, fuzzy
+msgid "The file system is bigger than its volume!"
+msgstr "O rotulo do disco afirma que o disco é maior que %s"
+
+#: libparted/filesys.c:403
+#, c-format
+msgid "Support for opening %s file systems is not implemented yet."
+msgstr ""
+"O suporte para abrir sistema de ficheiros %s não foi implementado ainda."
+
+#: libparted/filesys.c:445
+#, c-format
+msgid "Support for creating %s file systems is not implemented yet."
+msgstr ""
+"O suporte para criar sistema de ficheiros %s não foi implementado ainda."
+
+#: libparted/filesys.c:505
+#, c-format
+msgid "Support for checking %s file systems is not implemented yet."
+msgstr "Suporte para verificar sistema de ficheiros não implementado para %s."
+
+#: libparted/filesys.c:571
+msgid "raw block copying"
+msgstr ""
+
+#: libparted/filesys.c:582
+#, fuzzy
+msgid "growing file system"
+msgstr "Tipo de sistema de ficheiros desconhecido."
+
+#: libparted/filesys.c:622
+msgid "Can't copy onto an overlapping partition."
+msgstr "Não posso copiar para uma partição sobreposta."
+
+#: libparted/filesys.c:644
+#, fuzzy, c-format
+msgid ""
+"Direct support for copying file systems is not yet implemented for %s.  "
+"However, support for resizing is implemented.  Therefore, the file system "
+"can be copied if the new partition is at least as big as the old one.  So, "
+"either shrink the partition you are trying to copy, or copy to a bigger "
+"partition."
+msgstr ""
+"O suporte directo para cópia de sistemas de ficheiros não está implementado "
+"para %s. Entretanto, o suporte para redimensionamento está. Portanto, o "
+"sistema de ficheiros pode ser copiado se a nova partição for pelo menos tão "
+"grande quanto a antiga. Então, diminua a partição que você está a tentar "
+"copiar, ou copie para uma partição maior."
+
+#: libparted/filesys.c:658
+#, c-format
+msgid "Support for copying %s file systems is not implemented yet."
+msgstr "Suporte para copiar sistema de ficheiros não implementado para %s."
+
+#: libparted/filesys.c:696
+#, c-format
+msgid "Support for resizing %s file systems is not implemented yet."
+msgstr ""
+"Suporte para redimensionar sistema de ficheiros não implementado para %s."
+
+#: libparted/fs/reiserfs/reiserfs.c:315
+msgid "creating"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:402
+#, fuzzy
+msgid "The file system is in an invalid state.  Perhaps it is mounted?"
+msgstr "O rotulo do disco afirma que o disco é maior que %s"
+
+#: libparted/fs/reiserfs/reiserfs.c:410
+msgid "The file system is in old (unresizeable) format."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:416
+msgid "Invalid free blocks count.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:431
+#, fuzzy
+msgid "checking"
+msgstr "check"
+
+#: libparted/fs/reiserfs/reiserfs.c:437
+msgid "Reiserfs tree seems to be corrupted.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:449
+#, fuzzy
+msgid ""
+"The reiserfs file system passed a basic check.  For a more comprehensive "
+"check, run reiserfsck --check."
+msgstr ""
+"O sistema de ficheiros ext2 passou pelo teste básico. Para um teste mais "
+"profundo, utilize o programa e2fsck."
+
+#: libparted/fs/reiserfs/reiserfs.c:474
+#, fuzzy
+msgid "Sorry, can't move the start of reiserfs partitions yet."
+msgstr "Desculpe, não posso mover o início de partições ext2 ainda!"
+
+#: libparted/fs/reiserfs/reiserfs.c:490
+msgid "Couldn't reopen device abstraction layer for read/write."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:508 libparted/fs/ext2/ext2_resize.c:552
+#: libparted/fs/hfs/hfs.c:250 libparted/fs/hfs/hfs.c:629
+#, fuzzy
+msgid "shrinking"
+msgstr "Aviso"
+
+#: libparted/fs/reiserfs/reiserfs.c:520
+#, fuzzy
+msgid "expanding"
+msgstr "Aviso"
+
+#: libparted/fs/reiserfs/reiserfs.c:592
+msgid "Couldn't create reiserfs device abstraction handler."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:606
+#, c-format
+msgid "Device is too small for %lu blocks."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:615
+msgid "copying"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:682
+#, c-format
+msgid "Couldn't resolve symbol %s.  Error: %s."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:704
+msgid "GNU Parted found an invalid libreiserfs library."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:715
+#, c-format
+msgid ""
+"GNU Parted has detected libreiserfs interface version mismatch.  Found %d-%"
+"d, required %d. ReiserFS support will be disabled."
+msgstr ""
+
+#: libparted/labels/aix.c:137
+#, fuzzy
+msgid "Support for reading AIX disk labels is is not implemented yet."
+msgstr ""
+"O suporte para criar sistema de ficheiros %s não foi implementado ainda."
+
+#: libparted/labels/aix.c:148
+#, fuzzy
+msgid "Support for writing AIX disk labels is is not implemented yet."
+msgstr ""
+"O suporte para criar sistema de ficheiros %s não foi implementado ainda."
+
+#: libparted/labels/aix.c:161
+#, fuzzy
+msgid ""
+"Support for adding partitions to AIX disk labels is not implemented yet."
+msgstr ""
+"O suporte para criar sistema de ficheiros %s não foi implementado ainda."
+
+#: libparted/labels/aix.c:171
+#, fuzzy
+msgid ""
+"Support for duplicating partitions in AIX disk labels is not implemented yet."
+msgstr ""
+"O suporte para criar sistema de ficheiros %s não foi implementado ainda."
+
+#: libparted/labels/aix.c:189
+#, fuzzy
+msgid ""
+"Support for setting system type of partitions in AIX disk labels is not "
+"implemented yet."
+msgstr ""
+"O suporte para criar sistema de ficheiros %s não foi implementado ainda."
+
+#: libparted/labels/aix.c:199
+#, fuzzy
+msgid "Support for setting flags in AIX disk labels is not implemented yet."
+msgstr ""
+"O suporte para criar sistema de ficheiros %s não foi implementado ainda."
+
+#: libparted/labels/bsd.c:501 libparted/labels/dasd.c:755
+#: libparted/labels/dos.c:1974 libparted/labels/dvh.c:770
+#: libparted/labels/gpt.c:1448 libparted/labels/loop.c:248
+#: libparted/labels/mac.c:1408 libparted/labels/pc98.c:759
+#: libparted/labels/rdb.c:1041 libparted/labels/sun.c:705
+#, fuzzy
+msgid "Unable to satisfy all constraints on the partition."
+msgstr "Impossível alinhar a partição."
+
+#: libparted/labels/bsd.c:526
+#, fuzzy
+msgid "Unable to allocate a bsd disklabel slot."
+msgstr "Impossível localizar um rotulo de disco bsd"
+
+#: libparted/labels/dasd.c:166
+#, fuzzy
+msgid "Unable to determine the block size of this dasd"
+msgstr "Impossível determinar tamanho de %s (%s)"
+
+#: libparted/labels/dasd.c:781
+#, fuzzy
+msgid "Unable to allocate a dasd disklabel slot"
+msgstr "Impossível localizar um rotulo de disco bsd"
+
+#: libparted/labels/dos.c:827
+#, fuzzy, c-format
+msgid "Invalid partition table on %s -- wrong signature %x."
+msgstr "Tabela de partições inválida em %s - assinatura errada %x"
+
+#: libparted/labels/dos.c:855
+#, c-format
+msgid "Invalid partition table - recursive partition on %s."
+msgstr "Tabela de partições inválida - partição recursiva em %s."
+
+#: libparted/labels/dos.c:1318
+#, fuzzy
+msgid "Extended partitions cannot be hidden on msdos disk labels."
+msgstr "Partições ext2 não podem ser escondidas em rótulos de disco msdos."
+
+#: libparted/labels/dos.c:1958
+msgid "Parted can't resize partitions managed by Windows Dynamic Disk."
+msgstr ""
+
+#: libparted/labels/dvh.c:190
+#, fuzzy, c-format
+msgid "%s has no extended partition (volume header partition)."
+msgstr ""
+"Não posso redimensionar uma partição extendida, sem excluir uma partição "
+"lógica."
+
+#: libparted/labels/dvh.c:313
+msgid "Checksum is wrong, indicating the partition table is corrupt."
+msgstr ""
+
+#: libparted/labels/dvh.c:616
+#, fuzzy
+msgid "Only primary partitions can be root partitions."
+msgstr "Não posso adicionar uma partição primária dentro de uma extendida."
+
+#: libparted/labels/dvh.c:630
+#, fuzzy
+msgid "Only primary partitions can be swap partitions."
+msgstr "Não posso adicionar uma partição primária dentro de uma extendida."
+
+#: libparted/labels/dvh.c:644
+msgid "Only logical partitions can be a boot file."
+msgstr ""
+
+#: libparted/labels/dvh.c:721
+msgid "Only logical partitions (boot files) have a name."
+msgstr ""
+
+#: libparted/labels/dvh.c:812
+#, fuzzy
+msgid "Too many primary partitions"
+msgstr "Muitas páginas inválidas."
+
+#: libparted/labels/fdasd.c:103
+#, c-format
+msgid ""
+"%s open error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:107
+#, c-format
+msgid ""
+"%s seek error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:110
+#, c-format
+msgid ""
+"%s read error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:113
+#, fuzzy, c-format
+msgid ""
+"%s write error\n"
+"%s\n"
+msgstr "%s durante escrita em %s"
+
+#: libparted/labels/fdasd.c:116
+#, c-format
+msgid ""
+"%s IOCTL error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:119
+#, c-format
+msgid ""
+"%s API version mismatch\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:122
+#, c-format
+msgid ""
+"%s Unsupported disk type\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:126
+#, c-format
+msgid ""
+"%s Unsupported disk format\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:130
+#, fuzzy, c-format
+msgid ""
+"%s Disk in use\n"
+"%s\n"
+msgstr "Tipo de rótulo de disco: %s\n"
+
+#: libparted/labels/fdasd.c:133
+#, c-format
+msgid ""
+"%s Config file syntax error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:137
+#, c-format
+msgid ""
+"%s Volume label is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:141
+#, c-format
+msgid ""
+"%s a data set name is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:145
+#, c-format
+msgid ""
+"%s space allocation\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:149
+#, c-format
+msgid ""
+"%s device verification failed\n"
+"The specified device is not a valid DASD device\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:154
+#, c-format
+msgid ""
+"%s Fatal error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/gpt.c:454
+#, c-format
+msgid ""
+"%s contains GPT signatures, indicating that it has a GPT table.  However, it "
+"does not have a valid fake msdos partition table, as it should.  Perhaps it "
+"was corrupted -- possibly by a program that doesn't understand GPT partition "
+"tables.  Or perhaps you deleted the GPT table, and are now using an msdos "
+"partition table.  Is this a GPT partition table?"
+msgstr ""
+
+#: libparted/labels/gpt.c:648
+#, c-format
+msgid ""
+"The format of the GPT partition table is version %x, which is newer than "
+"what Parted can recognise.  Please tell us!  bug-parted@gnu.org"
+msgstr ""
+
+#: libparted/labels/gpt.c:698
+#, c-format
+msgid ""
+"Not all of the space available to %s appears to be used, you can fix the GPT "
+"to use all of the space (an extra %llu blocks) or continue with the current "
+"setting? "
+msgstr ""
+
+#: libparted/labels/gpt.c:827
+msgid ""
+"The backup GPT table is not at the end of the disk, as it should be.  This "
+"might mean that another operating system believes the disk is smaller.  Fix, "
+"by moving the backup to the end (and removing the old backup)?"
+msgstr ""
+
+#: libparted/labels/gpt.c:862
+msgid ""
+"The primary GPT table is corrupt, but the backup appears OK, so that will be "
+"used."
+msgstr ""
+
+#: libparted/labels/gpt.c:870
+msgid ""
+"Both the primary and backup GPT tables are corrupt.  Try making a fresh "
+"table, and using Parted's rescue feature to recover partitions."
+msgstr ""
+
+#: libparted/labels/mac.c:181
+#, c-format
+msgid "Invalid signature %x for Mac disk labels."
+msgstr "Assinatura inválida %x para rótulos de disco Mac."
+
+#: libparted/labels/mac.c:226
+msgid "Partition map has no partition map entry!"
+msgstr "Mapa de partições não tem nenhuma entrada!"
+
+#: libparted/labels/mac.c:273
+#, c-format
+msgid "%s is too small for a Mac disk label!"
+msgstr "%s é muito pequeno para um rótulo de disco Mac!"
+
+#: libparted/labels/mac.c:532
+#, c-format
+msgid "Partition %d has an invalid signature %x."
+msgstr "A partição %d tem uma assinatura inválida %x."
+
+#: libparted/labels/mac.c:550
+#, c-format
+msgid "Partition %d has an invalid length of 0 bytes!"
+msgstr "A partição %d tem um tamanho inválido de 0 bytes!"
+
+#: libparted/labels/mac.c:580
+#, fuzzy
+msgid "The data region doesn't start at the start of the partition."
+msgstr "A região de dados não começa no início da partição"
+
+#: libparted/labels/mac.c:597
+#, fuzzy
+msgid "The boot region doesn't start at the start of the partition."
+msgstr "A região de inicialização não começa no início da partição"
+
+#: libparted/labels/mac.c:611
+msgid "The partition's boot region doesn't occupy the entire partition."
+msgstr "A região de inicialização da partição não a ocupa inteiramente."
+
+#: libparted/labels/mac.c:622
+msgid "The partition's data region doesn't occupy the entire partition."
+msgstr "A região de dados da partição não a ocupa inteiramente."
+
+#: libparted/labels/mac.c:675
+#, c-format
+msgid ""
+"Weird block size on device descriptor: %d bytes is not divisible by 512."
+msgstr ""
+"tamanho de bloco estranho no descritor de dispositivo: %d bytes não são "
+"divisíveis por 512."
+
+#: libparted/labels/mac.c:688
+#, c-format
+msgid ""
+"The driver descriptor says the physical block size is %d bytes, but Linux "
+"says it is %d bytes."
+msgstr ""
+"O descritor do driver informa que o tamanho físico de bloco é %d bytes, mas "
+"o Linux informa que é %d bytes."
+
+#: libparted/labels/mac.c:736
+msgid "No valid partition map found."
+msgstr "Nenhum mapa de partições válido foi encontrado."
+
+#: libparted/labels/mac.c:795
+#, fuzzy, c-format
+msgid ""
+"Conflicting partition map entry sizes!  Entry 1 says it is %d, but entry %d "
+"says it is %d!"
+msgstr ""
+"Conflito nos tamanhos de mapa de partição! Entrada 1 informa que é %d, mas "
+"entrada %d informa que é %d!"
+
+#: libparted/labels/mac.c:822
+#, fuzzy
+msgid "Weird!  There are 2 partitions map entries!"
+msgstr "Estranho - 2 entradas no mapa de partição"
+
+#: libparted/labels/mac.c:1347
+msgid ""
+"Changing the name of a root or swap partition will prevent Linux from "
+"recognising it as such."
+msgstr ""
+"Mudar o nome de uma partição root ou swap irá impedir o Linux de reconhecê-"
+"la como tal."
+
+#: libparted/labels/mac.c:1443
+#, fuzzy
+msgid "Can't add another partition -- the partition map is too small!"
+msgstr ""
+"Não posso adicionar outra partição - o mapa de partições é muito pequeno!"
+
+#: libparted/labels/pc98.c:354
+#, fuzzy, c-format
+msgid "Invalid partition table on %s."
+msgstr "Tabela de partições inválida em %s"
+
+#: libparted/labels/pc98.c:406 libparted/labels/pc98.c:484
+#, fuzzy, c-format
+msgid ""
+"Partition %d isn't aligned to cylinder boundaries.  This is still "
+"unsupported."
+msgstr ""
+"A partição %d não está alinhada com o limite do cilindro. Preciso adicionar "
+"suporte para isso."
+
+#: libparted/labels/pc98.c:791
+msgid "Can't add another partition."
+msgstr "Não posso adicionar outra partição."
+
+#: libparted/labels/rdb.c:162
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:497
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen."
+msgstr ""
+
+#: libparted/labels/rdb.c:581
+#, c-format
+msgid "%s : Loop detected at block %d."
+msgstr ""
+
+#: libparted/labels/rdb.c:600
+#, c-format
+msgid "%s : The %s list seems bad at block %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:689
+#, c-format
+msgid "%s : Failed to list bad blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:697
+#, fuzzy, c-format
+msgid "%s : Failed to list partition blocks."
+msgstr "Impossível alinhar a partição."
+
+#: libparted/labels/rdb.c:705
+#, c-format
+msgid "%s : Failed to list file system blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:713
+#, c-format
+msgid "%s : Failed to list boot blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:740
+#, fuzzy, c-format
+msgid "Failed to write partition block at %d."
+msgstr "Impossível determinar se a partição está montada."
+
+#: libparted/labels/rdb.c:1069
+#, fuzzy
+msgid "Unable to allocate a partition number."
+msgstr "Impossível alinhar a partição."
+
+#: libparted/labels/sun.c:145
+msgid "Corrupted Sun disk label detected."
+msgstr ""
+
+#: libparted/labels/sun.c:266
+#, c-format
+msgid ""
+"The disk CHS geometry (%d,%d,%d) reported by the operating system does not "
+"match the geometry stored on the disk label (%d,%d,%d)."
+msgstr ""
+
+#: libparted/labels/sun.c:288
+#, c-format
+msgid "The disk label describes a disk bigger than %s."
+msgstr "O rotulo do disco afirma que o disco é maior que %s"
+
+#: libparted/labels/sun.c:442
+#, c-format
+msgid "The disk has %d cylinders, which is greater than the maximum of 65536."
+msgstr ""
+
+#: libparted/labels/sun.c:737
+msgid ""
+"The Whole Disk partition is the only available one left.  Generally, it is "
+"not a good idea to overwrite this partition with a real one.  Solaris may "
+"not be able to boot without it, and SILO (the sparc boot loader) appreciates "
+"it as well."
+msgstr ""
+
+#: libparted/labels/sun.c:752
+msgid "Sun disk label is full."
+msgstr ""
+
+#: libparted/labels/vtoc.c:163
+#, c-format
+msgid ""
+"%s opening device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:167
+#, c-format
+msgid ""
+"%s seeking device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:171
+#, c-format
+msgid ""
+"%s writing to device '%s' failed,\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:175
+#, c-format
+msgid ""
+"%s reading from device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:179
+#, c-format
+msgid "Fatal error\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:418
+msgid "Could not read VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:424
+msgid "Could not read VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:431
+msgid "Could not read VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:438
+msgid "Could not read VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:445
+msgid "Could not read VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:462
+msgid "Could not write VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:468
+msgid "Could not write VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:475
+msgid "Could not write VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:482
+msgid "Could not write VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:489
+msgid "Could not write VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/libparted.c:296 libparted/libparted.c:316
+msgid "Out of memory."
+msgstr "Não há memória."
+
+#: libparted/unit.c:139
+msgid "Cannot get unit size for special unit 'COMPACT'."
+msgstr ""
+
+#: libparted/unit.c:386
+#, c-format
+msgid "\"%s\" has invalid syntax for locations."
+msgstr ""
+
+#: libparted/unit.c:394
+#, c-format
+msgid "The maximum head value is %d."
+msgstr ""
+
+#: libparted/unit.c:401
+#, c-format
+msgid "The maximum sector value is %d."
+msgstr ""
+
+#: libparted/unit.c:413 libparted/unit.c:545
+#, fuzzy, c-format
+msgid "The location %s is outside of the device %s."
+msgstr "Impossível criar partição fora do dispositivo."
+
+#: libparted/unit.c:527
+msgid "Invalid number."
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:63 libparted/fs/amiga/apfs.c:56
+#: libparted/fs/amiga/asfs.c:70
+#, fuzzy, c-format
+msgid "%s : Failed to allocate partition block\n"
+msgstr "Impossível alinhar a partição."
+
+#: libparted/fs/amiga/affs.c:78 libparted/fs/amiga/apfs.c:70
+#: libparted/fs/amiga/asfs.c:86
+#, fuzzy, c-format
+msgid "%s : Failed to allocate block\n"
+msgstr "Impossível alinhar a partição."
+
+#: libparted/fs/amiga/affs.c:83 libparted/fs/amiga/apfs.c:75
+#, c-format
+msgid "%s : Couldn't read boot block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:99 libparted/fs/amiga/apfs.c:86
+#: libparted/fs/amiga/asfs.c:92 libparted/fs/amiga/asfs.c:106
+#, c-format
+msgid "%s : Couldn't read root block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:72
+#, c-format
+msgid "%s : Failed to allocate id list element\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:189
+#, c-format
+msgid "%s : Couldn't read block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:202
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:212
+#, fuzzy, c-format
+msgid "%s : Couldn't write block %d\n"
+msgstr "%s durante escrita em %s"
+
+#: libparted/fs/amiga/amiga.c:278
+#, fuzzy, c-format
+msgid "%s : Failed to allocate disk_specific rdb block\n"
+msgstr "Impossível alinhar a partição."
+
+#: libparted/fs/amiga/amiga.c:289
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:318
+#, fuzzy, c-format
+msgid "%s : Failed to read partition block %llu\n"
+msgstr "Impossível alinhar a partição."
+
+#: libparted/fs/ext2/ext2.c:87 libparted/fs/ext2/ext2.c:112
+msgid "Inconsistent group descriptors!"
+msgstr "Descritores de grupo inconsistentes!"
+
+#: libparted/fs/ext2/ext2.c:91 libparted/fs/ext2/ext2.c:116
+#, fuzzy
+msgid "File system full!"
+msgstr "Sistema de ficheiros cheio!"
+
+#: libparted/fs/ext2/ext2.c:686
+#, fuzzy
+msgid "Invalid superblock.  Are you sure this is an ext2 file system?"
+msgstr "Superbloco inválido. Tem certeza que isto é um sistema ext2?"
+
+#: libparted/fs/ext2/ext2.c:700 libparted/fs/ext2/ext2_resize.c:658
+#, fuzzy
+msgid "File system has errors!  You should run e2fsck."
+msgstr "Sistema de ficheiros tem erros! Execute e2fsck primeiro!"
+
+#: libparted/fs/ext2/ext2.c:711
+#, fuzzy
+msgid ""
+"File system was not cleanly unmounted!  You should run e2fsck.  Modifying an "
+"unclean file system could cause severe corruption."
+msgstr ""
+"Sistema de ficheiros não foi desmontado correctamente! Execute e2fsck "
+"primeiro!"
+
+#: libparted/fs/ext2/ext2.c:731
+#, fuzzy
+msgid "File system has an incompatible feature enabled."
+msgstr "Sistema de ficheiros tem características incompatíveis"
+
+#: libparted/fs/ext2/ext2.c:742
+msgid "Error allocating buffer cache."
+msgstr "Erro ao determinar o cache temporário."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:114
+#, fuzzy
+msgid ""
+"Found an inode with a incorrect link count.  Better go run e2fsck first!"
+msgstr ""
+"Encontrado um inode com uma contagem incorreta de ligações. Melhor executar "
+"o e2fsck primeiro."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:487
+msgid "Not enough free inodes!"
+msgstr "Não há inodes livres suficientes!"
+
+#: libparted/fs/ext2/ext2_resize.c:223
+#, fuzzy
+msgid "File system is too full to remove a group!"
+msgstr "Sistema de ficheiros muito ocupado para remover um grupo!"
+
+#: libparted/fs/ext2/ext2_resize.c:232
+#, fuzzy
+msgid "File system has too many allocated inodes to remove a group!"
+msgstr ""
+"Sistema de ficheiros tem muitos inodes utilizados para remover um grupo!"
+
+#: libparted/fs/ext2/ext2_resize.c:491
+msgid "adding groups"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:528
+#, fuzzy, c-format
+msgid "Your file system is too full to resize it to %i blocks.  Sorry."
+msgstr ""
+"Seu sistema de ficheiros está muito ocupado para redimensioná-lo para %i "
+"blocos. Desculpe."
+
+#: libparted/fs/ext2/ext2_resize.c:538
+#, fuzzy, c-format
+msgid ""
+"Your file system has too many occupied inodes to resize it to %i blocks.  "
+"Sorry."
+msgstr ""
+"Seu sistema de ficheiros está com muitos inodes ocupados para redimensioná-"
+"lo para %i blocos. Desculpe."
+
+#: libparted/fs/ext2/ext2_resize.c:666
+#, fuzzy
+msgid "File system was not cleanly unmounted!  You should run e2fsck."
+msgstr ""
+"Sistema de ficheiros não foi desmontado correctamente! Execute e2fsck "
+"primeiro!"
+
+#: libparted/fs/ext2/ext2_resize.c:675
+msgid ""
+"The file system has the 'dir_index' feature enabled.  Parted can only resize "
+"the file system if it disables this feature.  You can enable it later by "
+"running 'tune2fs -O dir_index DEVICE' and then 'e2fsck -fD DEVICE'."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:691
+msgid ""
+"A resize operation on this file system will use EXPERIMENTAL code\n"
+"that MAY CORRUPT it (although no one has reported any such damage yet).\n"
+"You should at least backup your data first, and run 'e2fsck -f' afterwards."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_block_relocator.c:198
+#, fuzzy
+msgid "Cross-linked blocks found!  Better go run e2fsck first!"
+msgstr ""
+"Encontrados blocos com referência cruzada! Melhor executar e2fsck primeiro."
+
+#: libparted/fs/ext2/ext2_block_relocator.c:537
+#, fuzzy, c-format
+msgid "Block %i has no reference?  Weird."
+msgstr "Bloco %i não tem referência? Estranho"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:737
+#, fuzzy, c-format
+msgid "Block %i shouldn't have been marked (%d, %d)!"
+msgstr "Bloco %i não deveria ter sido marcado!"
+
+#: libparted/fs/ext2/interface.c:186
+#, fuzzy
+msgid ""
+"The ext2 file system passed a basic check.  For a more comprehensive check, "
+"use the e2fsck program."
+msgstr ""
+"O sistema de ficheiros ext2 passou pelo teste básico. Para um teste mais "
+"profundo, utilize o programa e2fsck."
+
+#: libparted/fs/ext2/interface.c:203
+msgid "Sorry, can't move the start of ext2 partitions yet!"
+msgstr "Desculpe, não posso mover o início de partições ext2 ainda!"
+
+#: libparted/fs/ext2/ext2_buffer.c:82
+msgid "Couldn't flush buffer cache!"
+msgstr "Não foi possível esvaziar a cache temporária!"
+
+#: libparted/fs/ext2/ext2_mkfs.c:162
+msgid "writing per-group metadata"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_mkfs.c:564
+msgid "File system too small for ext2."
+msgstr ""
+
+#: libparted/fs/fat/calc.c:135
+#, fuzzy, c-format
+msgid ""
+"You need %s of free disk space to shrink this partition to this size.  "
+"Currently, only %s is free."
+msgstr ""
+"Você precisa de %dM de espaço livre para diminuir esta partição para este "
+"tamanho (você tem somente %dM livres)"
+
+#: libparted/fs/fat/context.c:56
+#, c-format
+msgid ""
+"Cluster start delta = %d, which is not a multiple of the cluster size %d."
+msgstr ""
+"O cluster inicia em delta = %d, que não é um múltiplo do tamanho de cluster %"
+"d."
+
+#: libparted/fs/fat/fat.c:308
+#, fuzzy, c-format
+msgid "Partition too big/small for a %s file system."
+msgstr "A partição é muito pequena para um sistema de ficheiros FAT"
+
+#: libparted/fs/fat/fat.c:474
+msgid ""
+"The FATs don't match.  If you don't know what this means, then select "
+"cancel, run scandisk on the file system, and then come back."
+msgstr ""
+"As FATs não estão iguais. Se não sabe o que isto significa, seleccione "
+"cancelar, execute o scandisk no sistema de ficheiros, depois volte."
+
+#: libparted/fs/fat/fat.c:514
+msgid "There are no possible configurations for this FAT type."
+msgstr "Não há configurações possíveis para este tipo de FAT."
+
+#: libparted/fs/fat/fat.c:526
+#, c-format
+msgid ""
+"File system doesn't have expected sizes for Windows to like it.  Cluster "
+"size is %dk (%dk expected); number of clusters is %d (%d expected); size of "
+"FATs is %d sectors (%d expected)."
+msgstr ""
+"O sistema de ficheiros não tem o tamanho esperado para que o Windows o "
+"utilize. O tamanho do cluster é %dk (%dk esperado); número de clusters é %d "
+"(%d esperado); tamanho da FAT é %d sectores (%d esperado)."
+
+#: libparted/fs/fat/fat.c:549
+#, c-format
+msgid ""
+"File system is reporting the free space as %d clusters, not %d clusters."
+msgstr ""
+"O sistema de ficheiros reporta que o espaço livre é de %d clusters, não de %"
+"d clusters."
+
+#: libparted/fs/fat/fat.c:874
+#, fuzzy
+msgid ""
+"GNU Parted was miscompiled: the FAT boot sector should be 512 bytes.  FAT "
+"support will be disabled."
+msgstr ""
+"O GNU parted foi compilado erradamente: o sector de boot FAT deveria ser de "
+"512 bytes. O suporte a FAT será desabilitado."
+
+#: libparted/fs/fat/resize.c:159
+#, fuzzy
+msgid ""
+"There's not enough room in the root directory for all of the files.  Either "
+"cancel, or ignore to lose the files."
+msgstr ""
+"Não há espaço suficiente no diretório raiz para todos os ficheiros. Cancele, "
+"ou ignore para perder os ficheiros."
+
+#: libparted/fs/fat/resize.c:300
+msgid "Error writing to the root directory."
+msgstr "Erro escrevendo no diretório raiz."
+
+#: libparted/fs/fat/resize.c:489
+#, fuzzy
+msgid "If you leave your file system as FAT16, then you will have no problems."
+msgstr "Se deixar seu sistema de ficheiros como FAT16, não haverá problemas."
+
+#: libparted/fs/fat/resize.c:492
+msgid ""
+"If you convert to FAT16, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual)."
+msgstr ""
+"Se você converter para FAT16, e o MS Windows está instalado nesta partição, "
+"deverá reinstalar o gestor de boot do MS Windows. Se quiser fazer isso, "
+"consulte o manual do Parted (ou o manual de sua distribuição)."
+
+#: libparted/fs/fat/resize.c:500
+msgid ""
+"If you leave your file system as FAT32, then you will not introduce any new "
+"problems."
+msgstr ""
+"Se deixar seu sistema de ficheiros como FAT32, você não terá mais nenhum "
+"problema novo."
+
+#: libparted/fs/fat/resize.c:504
+msgid ""
+"If you convert to FAT32, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual).  Also, "
+"converting to FAT32 will make the file system unreadable by MS DOS, MS "
+"Windows 95a, and MS Windows NT."
+msgstr ""
+"Se você converter para FAT32, e o MS Windows está instalado nesta partição, "
+"deverá reinstalar o gestor de boot do MS Windows. Se quiser fazer isso, "
+"consulte o manual do Parted (ou o manual de sua distribuição). Também, "
+"convertendo para FAT32 fará com que o sistema de ficheiros não seja mais "
+"reconhecido pelo MS DOS, Windows 95a, e MS Windows NT."
+
+#: libparted/fs/fat/resize.c:518
+#, c-format
+msgid "%s  %s  %s"
+msgstr ""
+
+#: libparted/fs/fat/resize.c:519
+msgid "Would you like to use FAT32?"
+msgstr "Você gostaria de usar FAT32?"
+
+#: libparted/fs/fat/resize.c:550 libparted/fs/fat/resize.c:566
+#, c-format
+msgid "%s  %s"
+msgstr ""
+
+#: libparted/fs/fat/resize.c:551
+msgid ""
+"The file system can only be resized to this size by converting to FAT16."
+msgstr ""
+"O sistema de ficheiros só pode ser redimensionado para esse tamanho se "
+"convertido para FAT16."
+
+#: libparted/fs/fat/resize.c:567
+msgid ""
+"The file system can only be resized to this size by converting to FAT32."
+msgstr ""
+"O sistema de ficheiros só pode ser redimensionado para esse tamanho se "
+"convertido para FAT32."
+
+#: libparted/fs/fat/resize.c:580
+#, fuzzy
+msgid ""
+"GNU Parted cannot resize this partition to this size.  We're working on it!"
+msgstr ""
+"O GNU Parted não pode redimensionar esta partição para esse tamanho. Estamos "
+"a trabalhar nisso!"
+
+#: libparted/fs/fat/bootsector.c:49 libparted/fs/fat/bootsector.c:56
+msgid "File system has an invalid signature for a FAT file system."
+msgstr "Sistema de ficheiros tem uma assinatura inválida para um FAT."
+
+#: libparted/fs/fat/bootsector.c:64
+msgid "File system has an invalid sector size for a FAT file system."
+msgstr "Sistema de ficheiros tem um tamanho de sector inválido para um FAT."
+
+#: libparted/fs/fat/bootsector.c:71
+#, fuzzy
+msgid "File system has an invalid cluster size for a FAT file system."
+msgstr "Sistema de ficheiros tem um tamanho de sector inválido para um FAT."
+
+#: libparted/fs/fat/bootsector.c:78
+#, fuzzy
+msgid ""
+"File system has an invalid number of reserved sectors for a FAT file system."
+msgstr ""
+"Sistema de ficheiros tem um número de setores reservados inválido para um "
+"FAT."
+
+#: libparted/fs/fat/bootsector.c:85
+#, fuzzy
+msgid "File system has an invalid number of FATs."
+msgstr "Sistema de ficheiros tem um número inválido de FATS."
+
+#: libparted/fs/fat/bootsector.c:139
+#, c-format
+msgid ""
+"This file system has a logical sector size of %d.  GNU Parted is known not "
+"to work properly with sector sizes other than 512 bytes."
+msgstr ""
+"Este sistema de ficheiros tem um tamanho de sector lógico de %d. O GNU "
+"Parted é conhecido por não funcionar corretamente com sectores diferentes de "
+"512 bytes."
+
+#: libparted/fs/fat/bootsector.c:164
+#, c-format
+msgid ""
+"The file system's CHS geometry is (%d, %d, %d), which is invalid.  The "
+"partition table's CHS geometry is (%d, %d, %d).  If you select Ignore, the "
+"file system's CHS geometry will be left unchanged.  If you select Fix, the "
+"file system's CHS geometry will be set to match the partition table's CHS "
+"geometry."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:213
+msgid "FAT boot sector says logical sector size is 0.  This is weird. "
+msgstr "Sector de boot FAT diz que o tamanho lógico do sector é 0. Estranho. "
+
+#: libparted/fs/fat/bootsector.c:219
+msgid "FAT boot sector says there are no FAT tables.  This is weird. "
+msgstr "Sector de boot FAT diz que não há tabelas FAT. Estranho. "
+
+#: libparted/fs/fat/bootsector.c:225
+msgid "FAT boot sector says clusters are 0 sectors.  This is weird. "
+msgstr "Sector de boot FAT diz que os clusters têm 0 setores. Estranho. "
+
+#: libparted/fs/fat/bootsector.c:235
+#, fuzzy
+msgid "File system is FAT12, which is unsupported."
+msgstr "O sistema de ficheiros é FAT12, que não é suportado."
+
+#: libparted/fs/fat/bootsector.c:411
+#, c-format
+msgid ""
+"The information sector has the wrong signature (%x).  Select cancel for now, "
+"and send in a bug report.  If you're desperate, it's probably safe to ignore."
+msgstr ""
+"O sector de informações tem uma assinatura inválida (%x). Selecione cancelar "
+"agora, e mande um relatório de bug. Se você está desesperado, é provável que "
+"seja seguro ignorar."
+
+#: libparted/fs/fat/count.c:152
+#, c-format
+msgid "Bad directory entry for %s: first cluster is the end of file marker."
+msgstr ""
+"Entrada de diretório inválida para %s: o primeiro cluster é o fim do "
+"marcador de ficheiro."
+
+#: libparted/fs/fat/count.c:165
+#, c-format
+msgid ""
+"Bad FAT: unterminated chain for %s.  You should run dosfsck or scandisk."
+msgstr ""
+"FAT estragada: cadeia não terminada para %s. Você deveria correr o dosfsck "
+"ou o scandisk."
+
+#: libparted/fs/fat/count.c:174
+#, fuzzy, c-format
+msgid ""
+"Bad FAT: cluster %d outside file system in chain for %s.  You should run "
+"dosfsck or scandisk."
+msgstr ""
+"FAT estragada: cluster %d fora do sistema de ficheiros na cadeia para %s. "
+"Você deveria correr o dosfsck ou o scandisk."
+
+#: libparted/fs/fat/count.c:184
+#, c-format
+msgid ""
+"Bad FAT: cluster %d is cross-linked for %s.  You should run dosfsck or "
+"scandisk."
+msgstr ""
+"FAT estragada: o cluster %d tem uma referência cruzada para %s. Você deveria "
+"correr o dosfsck ou o scandisk."
+
+#: libparted/fs/fat/count.c:203
+#, fuzzy, c-format
+msgid "%s is %dk, but it has %d clusters (%dk)."
+msgstr "%s é %dk, mas tem %d clusters (%dk)."
+
+#: libparted/fs/fat/count.c:266
+#, c-format
+msgid ""
+"The file %s is marked as a system file.  This means moving it could cause "
+"some programs to stop working."
+msgstr ""
+
+#: libparted/fs/fat/table.c:137
+#, c-format
+msgid ""
+"FAT %d media %x doesn't match the boot sector's media %x.  You should "
+"probably run scandisk."
+msgstr ""
+"FAT %d média %x não coincide com o sector de boot médio %x. Você deveria "
+"executar o scandisk."
+
+#: libparted/fs/fat/table.c:269
+#, fuzzy, c-format
+msgid "fat_table_set: cluster %ld outside file system"
+msgstr "fat_table_set: cluster %ld fora do sistema de ficheiros"
+
+#: libparted/fs/fat/table.c:301
+#, fuzzy, c-format
+msgid "fat_table_get: cluster %ld outside file system"
+msgstr "fat_table_get: cluster %ld fora do sistema de ficheiros"
+
+#: libparted/fs/fat/table.c:343
+msgid "fat_table_alloc_cluster: no free clusters"
+msgstr "fat_table_alloc_cluster: não há clusters livres"
+
+#: libparted/fs/linux_swap/linux_swap.c:275
+#, fuzzy, c-format
+msgid "Unrecognised old style linux swap signature '%10s'."
+msgstr "Assinatura linux swap não reconhecida '%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:318
+#, fuzzy, c-format
+msgid "Unrecognised new style linux swap signature '%10s'."
+msgstr "Assinatura linux swap não reconhecida '%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:358
+#, fuzzy, c-format
+msgid "Unrecognised swsusp linux swap signature '%9s'."
+msgstr "Assinatura linux swap não reconhecida '%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:434
+msgid "Too many bad pages."
+msgstr "Muitas páginas inválidas."
+
+#: libparted/fs/hfs/advfs.c:121 libparted/fs/hfs/advfs_plus.c:122
+#: libparted/fs/hfs/reloc.c:414 libparted/fs/hfs/reloc.c:508
+#: libparted/fs/hfs/reloc_plus.c:539 libparted/fs/hfs/reloc_plus.c:658
+#: libparted/fs/hfs/reloc_plus.c:772
+msgid "The file system contains errors."
+msgstr ""
+
+#: libparted/fs/hfs/advfs_plus.c:287
+msgid "Bad blocks could not be read."
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:137
+#, c-format
+msgid ""
+"Trying to register an extent starting at block 0x%X, but another one already "
+"exists at this position.  You should check the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:214
+#, c-format
+msgid ""
+"Trying to move an extent from block Ox%X to block Ox%X, but another one "
+"already exists at this position.  This should not happen!"
+msgstr ""
+
+#: libparted/fs/hfs/file.c:143
+#, c-format
+msgid "Could not update the extent cache for HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:180
+#, c-format
+msgid "Trying to read HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:190 libparted/fs/hfs/file.c:220
+#, c-format
+msgid "Could not find sector %lli of HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:210
+#, c-format
+msgid "Trying to write HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:157
+#, c-format
+msgid "Could not update the extent cache for HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:202
+#, c-format
+msgid "Trying to read HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:213 libparted/fs/hfs/file_plus.c:256
+#, c-format
+msgid "Could not find sector %lli of HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:245
+#, c-format
+msgid "Trying to write HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:232
+msgid "Sorry, HFS cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:262 libparted/fs/hfs/hfs.c:641
+msgid "Data relocation has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:281
+msgid "Data relocation left some data in the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:320
+#, fuzzy
+msgid "writing HFS Master Directory Block"
+msgstr "Erro escrevendo no diretório raiz."
+
+#: libparted/fs/hfs/hfs.c:468
+msgid "No valid HFS[+X] signature has been found while opening."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:478
+#, c-format
+msgid "Version %d of HFS+ isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:489
+#, c-format
+msgid "Version %d of HFSX isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:672
+msgid "Data relocation left some data at the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:720
+#, fuzzy
+msgid "Error while writing the allocation file."
+msgstr "Erro escrevendo no diretório raiz."
+
+#: libparted/fs/hfs/hfs.c:735
+msgid "Error while writing the compatibility part of the allocation file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:750
+msgid "writing HFS+ Volume Header"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:850
+msgid "An error occurred while looking for the mandatory bad blocks file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:904
+msgid ""
+"It seems there is an error in the HFS wrapper: the bad blocks file doesn't "
+"contain the embedded HFS+ volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:940
+msgid "Sorry, HFS+ cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:975
+msgid "shrinking embedded HFS+ volume"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:991
+msgid "Resizing the HFS+ volume has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:998
+msgid "shrinking HFS wrapper"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:1007
+msgid "Updating the HFS wrapper has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:1109 libparted/fs/hfs/hfs.c:1194
+#, c-format
+msgid ""
+"This is not a real %s check.  This is going to extract special low level "
+"files for debugging purposes."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:155
+msgid "Bad block list header checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:168
+#, c-format
+msgid ""
+"Invalid size of a transaction block while replaying the journal (%i bytes)."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:260
+msgid ""
+"Journal stored outside of the volume are not supported.  Try to desactivate "
+"the journal and run Parted again."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:271
+#, fuzzy
+msgid "Journal offset or size is not multiple of the sector size."
+msgstr ""
+"O cluster inicia em delta = %d, que não é um múltiplo do tamanho de cluster %"
+"d."
+
+#: libparted/fs/hfs/journal.c:292
+msgid "Incorrect magic values in the journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:302
+msgid "Journal size mismatch between journal info block and journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:314
+#, fuzzy
+msgid "Some header fields are not multiple of the sector size."
+msgstr ""
+"O cluster inicia em delta = %d, que não é um múltiplo do tamanho de cluster %"
+"d."
+
+#: libparted/fs/hfs/journal.c:323
+msgid ""
+"The sector size stored in the journal is not 512 bytes.  Parted only "
+"supports 512 bytes length sectors."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:335
+msgid "Bad journal checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:353
+msgid ""
+"The journal is not empty.  Parted must replay the transactions before "
+"opening the file system.  This will modify the file system."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:381
+msgid ""
+"The volume header or the master directory block has changed while replaying "
+"the journal.  You should restart Parted."
+msgstr ""
+
+#: libparted/fs/hfs/probe.c:51
+#, c-format
+msgid ""
+"Parted can't use HFS file systems on disks with a sector size not equal to %"
+"d bytes."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:151 libparted/fs/hfs/reloc_plus.c:155
+msgid "An extent has not been relocated."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:251 libparted/fs/hfs/reloc_plus.c:307
+msgid ""
+"A reference to an extent comes from a place it should not.  You should check "
+"the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:381
+msgid "This HFS volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:475
+msgid "This HFS volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:517 libparted/fs/hfs/reloc_plus.c:668
+msgid ""
+"The extents overflow file should not contain its own extents!  You should "
+"check the file system."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:574 libparted/fs/hfs/reloc_plus.c:847
+#, fuzzy
+msgid "Could not cache the file system in memory."
+msgstr "Não foi possível detectar o sistema de Ficheiros."
+
+#: libparted/fs/hfs/reloc.c:635 libparted/fs/hfs/reloc_plus.c:908
+msgid "Bad blocks list could not be loaded."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:649 libparted/fs/hfs/reloc_plus.c:924
+msgid "An error occurred during extent relocation."
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:495
+msgid "This HFS+ volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:619
+msgid "This HFS+ volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: parted/parted.c:94
+msgid "displays this help message"
+msgstr "mostra esta mensagem de ajuda"
+
+#: parted/parted.c:95
+msgid "lists partition layout on all block devices"
+msgstr ""
+
+#: parted/parted.c:96
+msgid "displays machine parseable output"
+msgstr ""
+
+#: parted/parted.c:97
+msgid "never prompts for user intervention"
+msgstr "nunca pede intervenção do utulizador"
+
+#: parted/parted.c:98
+msgid "displays the version"
+msgstr "mostra a versão"
+
+#: parted/parted.c:111
+#, fuzzy
+msgid ""
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"
+msgstr ""
+"MINOR é o número da partição usado pelo linux. Em rótulos de disco msdos, as "
+"partições primárias são de 1-4, e partições lógicas de 5 adiante.\n"
+
+#: parted/parted.c:114
+msgid "LABEL-TYPE is one of: "
+msgstr "TIPO_ROTULO é um de:"
+
+#: parted/parted.c:115
+msgid "FLAG is one of: "
+msgstr "FLAG é um de: "
+
+#: parted/parted.c:116
+#, fuzzy
+msgid "UNIT is one of: "
+msgstr "FLAG é um de: "
+
+#: parted/parted.c:117
+msgid "PART-TYPE is one of: primary, logical, extended\n"
+msgstr "TIPO-PART é um de: primary, logical, extended\n"
+
+#: parted/parted.c:119
+msgid "FS-TYPE is one of: "
+msgstr "TIPO-FS é um de: "
+
+#: parted/parted.c:120
+msgid ""
+"START and END are disk locations, such as 4GB or 10%.  Negative values count "
+"from the end of the disk.  For example, -1s specifies exactly the last "
+"sector.\n"
+msgstr ""
+
+#: parted/parted.c:123
+msgid "STATE is one of: on, off\n"
+msgstr "ESTADO é um de: on, off\n"
+
+#: parted/parted.c:124
+msgid "DEVICE is usually /dev/hda or /dev/sda\n"
+msgstr "DISPOSITIVO é usualmente /dev/hda ou /dev/sda\n"
+
+#: parted/parted.c:125
+msgid "NAME is any word you want\n"
+msgstr "NAME é qualquer palavra que desejar\n"
+
+#: parted/parted.c:126
+msgid "The partition must have one of the following FS-TYPEs: "
+msgstr ""
+
+#: parted/parted.c:130
+msgid ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+msgstr ""
+
+#: parted/parted.c:176
+#, c-format
+msgid "%0.f%%\t(time left %.2d:%.2d)"
+msgstr ""
+
+#: parted/parted.c:195
+#, c-format
+msgid ""
+"Partition %s is being used. You must unmount it before you modify it with "
+"Parted."
+msgstr ""
+
+#: parted/parted.c:211
+#, c-format
+msgid "Partition(s) on %s are being used."
+msgstr "Partição(ões) em %s está(ão) a ser utilizada(s)."
+
+#: parted/parted.c:223
+msgid ""
+"The existing file system will be destroyed and all data on the partition "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:235
+#, c-format
+msgid ""
+"The existing disk label on %s will be destroyed and all data on this disk "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:458 parted/parted.c:652 parted/parted.c:1044
+#: parted/parted.c:1128 parted/parted.c:1771 parted/parted.c:1852
+#: parted/parted.c:1900
+#, fuzzy
+msgid "Partition number?"
+msgstr "A partição está a ser utilizada."
+
+#: parted/parted.c:500
+msgid "Source device?"
+msgstr ""
+
+#: parted/parted.c:504
+#, fuzzy
+msgid "Source partition number?"
+msgstr "A partição origem não existe."
+
+#: parted/parted.c:509
+#, fuzzy
+msgid "Can't copy an extended partition."
+msgstr "Não posso copiar partições extendidas."
+
+#: parted/parted.c:515
+#, fuzzy
+msgid "Destination partition number?"
+msgstr "A partição destino está a ser utilizada."
+
+#: parted/parted.c:615
+#, fuzzy
+msgid "New disk label type?"
+msgstr "Tipo de rótulo de disco: %s\n"
+
+#: parted/parted.c:656
+#, fuzzy
+msgid "File system?"
+msgstr "SistemaFich "
+
+#: parted/parted.c:707 parted/parted.c:878
+#, fuzzy
+msgid "Partition type?"
+msgstr "A partição não existe."
+
+#: parted/parted.c:714 parted/parted.c:885 parted/parted.c:1131
+#, fuzzy
+msgid "Partition name?"
+msgstr "A partição não existe."
+
+#: parted/parted.c:722 parted/parted.c:895
+#, fuzzy
+msgid "File system type?"
+msgstr "SistemaFich "
+
+#: parted/parted.c:729 parted/parted.c:897 parted/parted.c:1059
+#: parted/parted.c:1725 parted/parted.c:1780
+msgid "Start?"
+msgstr ""
+
+#: parted/parted.c:731 parted/parted.c:900 parted/parted.c:1062
+#: parted/parted.c:1727 parted/parted.c:1782
+msgid "End?"
+msgstr ""
+
+#: parted/parted.c:769 parted/parted.c:938
+#, c-format
+msgid ""
+"You requested a partition from %s to %s.\n"
+"The closest location we can manage is %s to %s.  Is this still acceptable to "
+"you?"
+msgstr ""
+
+#: parted/parted.c:890
+msgid "An extended partition cannot hold a file system.  Did you want mkpart?"
+msgstr ""
+
+#: parted/parted.c:1050
+#, fuzzy
+msgid "Can't move an extended partition."
+msgstr "Não posso mover partições extendidas."
+
+#: parted/parted.c:1079
+msgid "Can't move a partition onto itself.  Try using resize, perhaps?"
+msgstr ""
+"Não posso mover a partição sobre ela mesma. Talvez queira redimensionar?"
+
+#: parted/parted.c:1227
+#, c-format
+msgid "Minor: %d\n"
+msgstr ""
+
+#: parted/parted.c:1228
+#, fuzzy, c-format
+msgid "Flags: %s\n"
+msgstr "Sinalizador"
+
+#: parted/parted.c:1229
+#, fuzzy, c-format
+msgid "File System: %s\n"
+msgstr "SistemaFich "
+
+#: parted/parted.c:1230
+msgid "Size:         "
+msgstr ""
+
+#: parted/parted.c:1235
+msgid "Minimum size: "
+msgstr ""
+
+#: parted/parted.c:1238
+msgid "Maximum size: "
+msgstr ""
+
+#: parted/parted.c:1362
+#, c-format
+msgid "Model: %s (%s)\n"
+msgstr ""
+
+#: parted/parted.c:1364
+#, fuzzy, c-format
+msgid "Disk %s: %s\n"
+msgstr "Tipo de rótulo de disco: %s\n"
+
+#: parted/parted.c:1365
+#, c-format
+msgid "Sector size (logical/physical): %lldB/%lldB\n"
+msgstr ""
+
+#: parted/parted.c:1383
+#, c-format
+msgid "BIOS cylinder,head,sector geometry: %d,%d,%d.  Each cylinder is %s.\n"
+msgstr ""
+
+#: parted/parted.c:1392
+#, fuzzy, c-format
+msgid "Partition Table: %s\n"
+msgstr "Tabela de partições inválida em %s"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Number"
+msgstr ""
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Start"
+msgstr ""
+
+#: parted/parted.c:1407 parted/parted.c:1410
+msgid "End"
+msgstr ""
+
+#: parted/parted.c:1410
+#, fuzzy
+msgid "Size"
+msgstr "resize"
+
+#: parted/parted.c:1414
+msgid "Type"
+msgstr ""
+
+#: parted/parted.c:1416
+#, fuzzy
+msgid "File system"
+msgstr "SistemaFich "
+
+#: parted/parted.c:1419
+#, fuzzy
+msgid "Name"
+msgstr "name"
+
+#: parted/parted.c:1421
+msgid "Flags"
+msgstr "Sinalizador"
+
+#: parted/parted.c:1477
+msgid "Free Space"
+msgstr ""
+
+#: parted/parted.c:1624
+#, c-format
+msgid ""
+"A %s %s partition was found at %s -> %s.  Do you want to add it to the "
+"partition table?"
+msgstr ""
+
+#: parted/parted.c:1663
+msgid "searching for file systems"
+msgstr ""
+
+#: parted/parted.c:1877
+#, fuzzy
+msgid "New device?"
+msgstr "Nenhum dispositivo encontrado"
+
+#: parted/parted.c:1902
+msgid "Flag to Invert?"
+msgstr ""
+
+#: parted/parted.c:1907
+msgid "New state?"
+msgstr ""
+
+#: parted/parted.c:1944
+msgid "Unit?"
+msgstr ""
+
+#: parted/parted.c:2093
+msgid "check"
+msgstr "check"
+
+#: parted/parted.c:2096
+#, fuzzy
+msgid ""
+"check NUMBER                             do a simple check on the file system"
+msgstr ""
+"check MINOR                   faz um teste simples no sistema de ficheiros"
+
+#: parted/parted.c:2102
+msgid "cp"
+msgstr "cp"
+
+#: parted/parted.c:2105
+#, fuzzy
+msgid ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+"partition"
+msgstr ""
+"cp [FROM-DEVICE] FROM-MINOR TO-MINOR      copia o sistema de ficheiros para "
+"outra partição"
+
+#: parted/parted.c:2111
+msgid "help"
+msgstr "help"
+
+#: parted/parted.c:2114
+#, fuzzy
+msgid ""
+"help [COMMAND]                           print general help, or help on "
+"COMMAND"
+msgstr "help [COMANDO]                mostra ajuda geral, ou ajuda a COMANDO"
+
+#: parted/parted.c:2120
+msgid "mklabel"
+msgstr "mklabel"
+
+#: parted/parted.c:2120
+#, fuzzy
+msgid "mktable"
+msgstr "mklabel"
+
+#: parted/parted.c:2123
+#, fuzzy
+msgid ""
+"mklabel,mktable LABEL-TYPE               create a new disklabel (partition "
+"table)"
+msgstr ""
+"mklabel TIPO-ROTULO           cria um novo rótulo (na tabela de partição)"
+
+#: parted/parted.c:2129
+msgid "mkfs"
+msgstr "mkfs"
+
+#: parted/parted.c:2132
+#, fuzzy
+msgid ""
+"mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on "
+"partititon NUMBER"
+msgstr ""
+"mkfs MINOR TIPO-FS            cria um sistema TIPO-FS na partição MINOR"
+
+#: parted/parted.c:2138
+msgid "mkpart"
+msgstr "mkpart"
+
+#: parted/parted.c:2141
+#, fuzzy
+msgid "mkpart PART-TYPE [FS-TYPE] START END     make a partition"
+msgstr "mkpart TIPO-PART [FS-TYPE] INICIO FIM     cria uma partição"
+
+#: parted/parted.c:2147
+#, fuzzy
+msgid ""
+"'mkpart' makes a partition without creating a new file system on the "
+"partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"
+msgstr ""
+"mkpart cria uma partição sem criar um novo sistema de ficheiros na partição. "
+"TIPO-FS deve ser especificado para partições de dados (ao oposto de uma "
+"partição extendida). Este comando é útil se apagou acidentalmente uma "
+"partição.\n"
+
+#: parted/parted.c:2152
+msgid "mkpartfs"
+msgstr "mkpartfs"
+
+#: parted/parted.c:2155
+#, fuzzy
+msgid ""
+"mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system"
+msgstr "mkpartfs TIPO-PART TIPO-FS INICIO FIM     cria uma partição TIPO-FS"
+
+#: parted/parted.c:2161
+msgid "move"
+msgstr "move"
+
+#: parted/parted.c:2164
+#, fuzzy
+msgid "move NUMBER START END                    move partition NUMBER"
+msgstr "move MINOR INICIO [FIM]       redimensiona a partição MINOR"
+
+#: parted/parted.c:2169
+msgid "name"
+msgstr "name"
+
+#: parted/parted.c:2172
+#, fuzzy
+msgid "name NUMBER NAME                         name partition NUMBER as NAME"
+msgstr "name MINOR NAME               renomeia a partição MINOR para NAME"
+
+#: parted/parted.c:2177
+msgid "print"
+msgstr "print"
+
+#: parted/parted.c:2180
+msgid ""
+"print [devices|free|list,all|NUMBER]     display the partition table, "
+"available devices, free space, all found partitions, or a particular "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2185
+msgid ""
+"Without arguments, 'print' displays the entire partition table. However with "
+"the following arguments it performs various other actions.\n"
+msgstr ""
+
+#: parted/parted.c:2187
+msgid "  devices   : display all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2188
+msgid ""
+"  free      : display information about free unpartitioned space on the "
+"current block device\n"
+msgstr ""
+
+#: parted/parted.c:2190
+#, fuzzy
+msgid ""
+"  list, all : display the partition tables of all active block devices\n"
+msgstr "print                         mostra a tabela de partições"
+
+#: parted/parted.c:2191
+msgid ""
+"  NUMBER    : display more detailed information about this particular "
+"partition\n"
+msgstr ""
+
+#: parted/parted.c:2196
+msgid "quit"
+msgstr "quit"
+
+#: parted/parted.c:2199
+#, fuzzy
+msgid "quit                                     exit program"
+msgstr "quit                          sair do programa"
+
+#: parted/parted.c:2204
+#, fuzzy
+msgid "rescue"
+msgstr "resize"
+
+#: parted/parted.c:2207
+#, fuzzy
+msgid ""
+"rescue START END                         rescue a lost partition near START "
+"and END"
+msgstr "print                         mostra a tabela de partições"
+
+#: parted/parted.c:2213
+msgid "resize"
+msgstr "resize"
+
+#: parted/parted.c:2216
+#, fuzzy
+msgid ""
+"resize NUMBER START END                  resize partition NUMBER and its "
+"file system"
+msgstr "resize MINOR INICIO FIM       redimensiona a partição MINOR"
+
+#: parted/parted.c:2224
+msgid "rm"
+msgstr "rm"
+
+#: parted/parted.c:2227
+#, fuzzy
+msgid "rm NUMBER                                delete partition NUMBER"
+msgstr "rm MINOR                      apaga a partição MINOR"
+
+#: parted/parted.c:2232
+msgid "select"
+msgstr "select"
+
+#: parted/parted.c:2235
+#, fuzzy
+msgid "select DEVICE                            choose the device to edit"
+msgstr "select DEVICE                 selecciona o dispositivo a editar"
+
+#: parted/parted.c:2240
+msgid "set"
+msgstr "set"
+
+#: parted/parted.c:2243
+#, fuzzy
+msgid ""
+"set NUMBER FLAG STATE                    change the FLAG on partition NUMBER"
+msgstr "set MINOR FLAG ESTADO         muda o sinalizador na partição MINOR"
+
+#: parted/parted.c:2249
+msgid "toggle"
+msgstr ""
+
+#: parted/parted.c:2252
+msgid ""
+"toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+"partition NUMBER"
+msgstr ""
+
+#: parted/parted.c:2258
+#, fuzzy
+msgid "unit"
+msgstr "quit"
+
+#: parted/parted.c:2261
+#, fuzzy
+msgid "unit UNIT                                set the default unit to UNIT"
+msgstr "print                         mostra a tabela de partições"
+
+#: parted/parted.c:2266
+msgid "version"
+msgstr ""
+
+#: parted/parted.c:2269
+msgid ""
+"version                                  display the version number and "
+"copyright information of GNU Parted"
+msgstr ""
+
+#: parted/parted.c:2273
+msgid ""
+"'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"
+msgstr ""
+
+#: parted/parted.c:2335
+#, c-format
+msgid "Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"
+msgstr ""
+
+#: parted/parted.c:2379
+msgid "No device found"
+msgstr "Nenhum dispositivo encontrado"
+
+#: parted/parted.c:2412
+msgid "WARNING: You are not superuser.  Watch out for permissions."
+msgstr ""
+
+#: parted/parted.c:2450
+msgid "You may need to update /etc/fstab.\n"
+msgstr ""
+
+#: parted/ui.c:160
+msgid "Welcome to GNU Parted! Type 'help' to view a list of commands.\n"
+msgstr ""
+
+#: parted/ui.c:163
+#, fuzzy
+msgid ""
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run "
+"in\n"
+"interactive mode.\n"
+msgstr ""
+"Uso: parted [OPCOES]... [DISPOSITIVO [COMANDO [PARAMETROS]...]...]\n"
+"Aplica COMANDO com os PARAMETROS no DISPOSITIVO. Se não for dado nenhum\n"
+"COMANDO, executa em modo interactivo.\n"
+
+#: parted/ui.c:168
+#, c-format
+msgid ""
+"\n"
+"\n"
+"You found a bug in GNU Parted! Here's what you have to do:\n"
+"\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n"
+"\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Please check this version prior to bug reporting.\n"
+"\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"for further information.\n"
+"\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n"
+msgstr ""
+
+#: parted/ui.c:284
+msgid ""
+"\n"
+"Command History:\n"
+msgstr ""
+
+#: parted/ui.c:366
+msgid ""
+"\n"
+"Error: SEGV_MAPERR (Address not mapped to object)\n"
+msgstr ""
+
+#: parted/ui.c:372
+msgid ""
+"\n"
+"Error: SEGV_ACCERR (Invalid permissions for mapped object)\n"
+msgstr ""
+
+#: parted/ui.c:377
+msgid ""
+"\n"
+"Error: A general SIGSEGV signal was encountered.\n"
+msgstr ""
+
+#: parted/ui.c:410
+msgid ""
+"\n"
+"Error: FPE_INTDIV (Integer: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:415
+msgid ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+msgstr ""
+
+#: parted/ui.c:420
+msgid ""
+"\n"
+"Error: FPE_FLTDIV (Float: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:425
+msgid ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+msgstr ""
+
+#: parted/ui.c:430
+msgid ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+msgstr ""
+
+#: parted/ui.c:435
+msgid ""
+"\n"
+"Error: FPE_FLTRES (Float: inexact result)"
+msgstr ""
+
+#: parted/ui.c:440
+msgid ""
+"\n"
+"Error: FPE_FLTINV (Float: invalid operation)"
+msgstr ""
+
+#: parted/ui.c:445
+msgid ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript out of range)"
+msgstr ""
+
+#: parted/ui.c:450
+msgid ""
+"\n"
+"Error: A general SIGFPE signal was encountered."
+msgstr ""
+
+#: parted/ui.c:483
+msgid ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+msgstr ""
+
+#: parted/ui.c:488
+msgid ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+msgstr ""
+
+#: parted/ui.c:493
+msgid ""
+"\n"
+"Error: ILL_ILLADR (Illegal addressing mode)"
+msgstr ""
+
+#: parted/ui.c:498
+msgid ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+msgstr ""
+
+#: parted/ui.c:503
+msgid ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+msgstr ""
+
+#: parted/ui.c:508
+msgid ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+msgstr ""
+
+#: parted/ui.c:513
+msgid ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+msgstr ""
+
+#: parted/ui.c:518
+msgid ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+msgstr ""
+
+#: parted/ui.c:523
+msgid ""
+"\n"
+"Error: A general SIGILL signal was encountered."
+msgstr ""
+
+#: parted/ui.c:1024
+#, fuzzy
+msgid "Expecting a partition number."
+msgstr "A partição destino está a ser utilizada."
+
+#: parted/ui.c:1033
+msgid "Partition doesn't exist."
+msgstr "A partição não existe."
+
+#: parted/ui.c:1053
+#, fuzzy
+msgid "Expecting a file system type."
+msgstr "Tipo de sistema de ficheiros desconhecido."
+
+#: parted/ui.c:1060
+#, fuzzy, c-format
+msgid "Unknown file system type \"%s\"."
+msgstr "Tipo de sistema de ficheiros desconhecido."
+
+#: parted/ui.c:1080
+msgid "Expecting a disk label type."
+msgstr ""
+
+#: parted/ui.c:1178
+#, fuzzy
+msgid "Can't create any more partitions."
+msgstr "Não posso adicionar outra partição."
+
+#: parted/ui.c:1188
+#, fuzzy
+msgid "Expecting a partition type."
+msgstr "A partição destino não existe."
+
+#: parted/ui.c:1315
+msgid "on"
+msgstr "on"
+
+#: parted/ui.c:1316
+msgid "off"
+msgstr ""
+
+#: parted/ui.c:1431
+msgid "OPTIONs:"
+msgstr "OPÇÕES:"
+
+#: parted/ui.c:1436
+msgid "COMMANDs:"
+msgstr "COMANDOs:"
+
+#: parted/ui.c:1445
+#, fuzzy, c-format
+msgid "Using %s\n"
+msgstr ""
+"\n"
+"Usando %s\n"
+
+#: parted/ui.c:1519
+msgid "This command does not make sense in non-interactive mode.\n"
+msgstr ""
+
+#~ msgid "where necessary, prompts for user intervention"
+#~ msgstr "quando necessário, pede intervenção do utilizador"
+
+#~ msgid ""
+#~ "The sector size on %s is %d bytes.  Parted is known not to work properly "
+#~ "with drives with sector sizes other than 512 bytes"
+#~ msgstr ""
+#~ "O tamanho do sector em %s é %d bytes. O Parted é conhecido por não "
+#~ "funcionar perfeitamente com discos com sectores diferentes de 512 bytes"
+
+#~ msgid "Could not read geometry of %s - %s."
+#~ msgstr "Não foi possível ler a geometria de %s - %s"
+
+#~ msgid "Device %s has dodgey geometry."
+#~ msgstr "Dispositivo %s tem geometria estranha."
+
+#~ msgid "unknown"
+#~ msgstr "desconhecido"
+
+#~ msgid "Unknown SCSI"
+#~ msgstr "SCSI desconhecido"
+
+#~ msgid "Device %s is neither a SCSI nor IDE drive."
+#~ msgstr "O dispositivo %s não é um drive SCSI ou IDE."
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  However, the most likely reason is that Linux "
+#~ "detected the BIOS geometry for %s incorrectly.  GNU Parted suspects the "
+#~ "real geometry should be %d/%d/%d (not %d/%d/%d).  You should check with "
+#~ "your BIOS first, as this may not be correct.  You can inform Linux by "
+#~ "adding the parameter %s=%d,%d,%d to the command line.  See the LILO or "
+#~ "GRUB documentation for more information.  If you think Parted's suggested "
+#~ "geometry is correct, you may select Ignore to continue (and fix Linux "
+#~ "later).  Otherwise, select Cancel (and fix Linux and/or the BIOS now)."
+#~ msgstr ""
+#~ "A tabela de partições em %s é inconsistente. Há várias razões para isto "
+#~ "ocorrer. A mais certa seria o Linux detectar a geometria da BIOS para %s "
+#~ "incorretamente. O GNU Parted suspeita que a geometria real deveria ser %d/"
+#~ "%d/%d (e não %d/%d/%d). Deverá vefificar a BIOS primeiro, pois isto pode "
+#~ "não estar correcto. Poderá informar o Linux adicionando o parâmetro %s=%d,"
+#~ "%d,%d na linha de comando. Veja a documentação do LILO ou GRUB para "
+#~ "maiores informações. Se acha que a geometria sugeria pelo Parted é a "
+#~ "correcta, pode selecionar Ignorar para continuar (e corrigir o Linux "
+#~ "depois). De outra maneira, seleccione Cancelar (e corrigir o Linux e/ou a "
+#~ "BIOS agora)."
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  Often, the reason is that Linux detected the "
+#~ "BIOS geometry incorrectly.  However, this does not appear to be the case "
+#~ "here.  It is safe to ignore,but ignoring may cause (fixable) problems "
+#~ "with some boot loaders, and may cause problems with FAT file systems.  "
+#~ "Using LBA is recommended."
+#~ msgstr ""
+#~ "A tabela de partições em %s é inconsistente. Há várias razões para isto "
+#~ "ocorrer. Muitas vezes, o Linux detecta a geometria da BIOS "
+#~ "incorretamente. Porém, isso não parece ser o caso aqui. É seguro ignorar, "
+#~ "mas isso pode causar problemas (solucionáveis) com alguns gestores de "
+#~ "boot."
+
+#~ msgid ""
+#~ "Unable to align partition properly.  This probably means that another "
+#~ "partitioning tool generated an incorrect partition table, because it "
+#~ "didn't have the correct BIOS geometry.  It is safe to ignore,but ignoring "
+#~ "may cause (fixable) problems with some boot loaders."
+#~ msgstr ""
+#~ "Impossível alinhar a partição propriamente. Isso provavelmente significa "
+#~ "que outra ferramenta de particionamento gerou uma tabela de partições "
+#~ "incorreta porque não tinha a geometria na BIOS correta. É seguro ignorar, "
+#~ "mas isto pode causar problemas (solucionáveis) com alguns gestores de "
+#~ "boot."
+
+#~ msgid "GUID Partition Table Header Signature is wrong: "
+#~ msgstr "A GUID no cabeçalho da tabela de partição está incorrecta: "
+
+#~ msgid " should be "
+#~ msgstr " Deveria ser"
+
+#~ msgid "The new partition overlaps with another partition."
+#~ msgstr "A nova partição sobrepõe alguma outra partição"
+
+#~ msgid "Can't set non-Linux partitions as a root device."
+#~ msgstr "Não posso configurar partições não Linux como uma partição root."
+
+#~ msgid "Can't set non-Linux partitions as a swap device."
+#~ msgstr ""
+#~ "Não posso configurar partições não nao sejam Linux como uma partição swap."
+
+#~ msgid "No get_resize_constraint for %s!"
+#~ msgstr "Não há get_resize_constraint para %s!"
+
+#~ msgid "The %s file system code doesn't support %s disk labels."
+#~ msgstr ""
+#~ "O código do sistema de ficheiros %s não suporta rótulos de disco %s."
+
+#~ msgid "Creating new %s disklabels is not implemented yet."
+#~ msgstr "Criação de novos rótulos %s não está implementado ainda."
+
+#~ msgid "The code to write the partition table hasn't been written for %s yet"
+#~ msgstr ""
+#~ "O código para escrever a tabela de partições ainda não foi escrito para %"
+#~ "s."
+
+#~ msgid "Error reading %s (%s) to determine if partition is mounted."
+#~ msgstr "Erro lendo %s (%s) para determinar se a partição está montada."
+
+#~ msgid "Can't grow a partition onto used space."
+#~ msgstr "Não posso aumentar a partição acima de espaço já utilizado."
+
+#~ msgid "Attempt to read sectors %ld-%ld outside of partition on %s"
+#~ msgstr "Tentativa de ler sectores %ld-%ld fora da partição em %s"
+
+#~ msgid ""
+#~ "This ext2 filesystem has a rather strange layout!  Please use dumpe2fs on "
+#~ "this filesystem and send it to <buytenh@gnu.org>. I won't resize it, "
+#~ "sorry."
+#~ msgstr ""
+#~ "Este sistema de ficheiros ext2 tem uma aparência muito estranha! Por "
+#~ "favor use o dumpe2fs neste sistema e envie-o para <buytenh@dsv.nl>. Eu "
+#~ "não vou redimensioná-lo, desculpe."
+
+#~ msgid "Insane!  %d clusters!"
+#~ msgstr "Estranho! %d clusters!"
+
+#~ msgid ""
+#~ "The filesystem is going to be too big for FAT16, so FAT32 will be used.  "
+#~ "This is not compatible with MS-DOS, early versions of MS-Windows 95 and "
+#~ "Windows NT.  If you use these operating systems, then select cancel, and "
+#~ "create a smaller partition.  If you only use Linux, BSD, MS Windows 98 "
+#~ "and/or MS Windows 95 B, then select OK."
+#~ msgstr ""
+#~ "O sistema de ficheiros será muito grande para FAT16, o melhor será usar "
+#~ "FAT32. Isto não é compatível com o MS-DOS, versões antigas do MS-Windows "
+#~ "95 e Windows NT. Se utiliza estes sistemas operativos, selecione "
+#~ "cancelar, e crie uma partição menor. Se utiliza somente Linux, BSD, MS-"
+#~ "Windows 98 e/ou MS-Windows 95 B, então selecione OK."
+
+#~ msgid "Weird: fat_calc_sizes() failed for FAT32!"
+#~ msgstr "Estranho: fat_calc_sizes() falhou para a FAT32!"
+
+#~ msgid ""
+#~ "Would you like to use FAT32 for this filesystem?  It is much more "
+#~ "efficient with your disk space, but is not compatible with early versions "
+#~ "of Windows 95 and Windows NT.  Only select yes if you only use Linux, "
+#~ "BSD, MS Windows 98 and/or MS Windows 95 B."
+#~ msgstr ""
+#~ "Você gostaria de usar a FAT32 para este sistema de ficheiros? É muito "
+#~ "mais eficiente com o espaço em disco, mas não é compatível com versões "
+#~ "antigas do Windows 95 e Windows NT. Seleccione SIM se você só utilizar "
+#~ "Linux, BSD, MS-Windows 98 e/ou MS-Windows 95 B."
+
+#~ msgid ""
+#~ "File system doesn't have expected sizes for Windows to like it.  Number "
+#~ "of clusters is %d (%d expected); size of FATs is %d sectors (%d expected)."
+#~ msgstr ""
+#~ "O sistema de ficheiros não tem o tamanho esperado para que o Windows o "
+#~ "utilize. O tamanho do cluster é %dk (%dk esperado); tamanho da FAT é %d "
+#~ "sectores (%d esperado)."
+
+#~ msgid "File system has an invalid signature for a FAT file systems."
+#~ msgstr "Sistema de ficheiros tem uma assinatura inválida para um FAT."
+
+#~ msgid ""
+#~ "Partition size (%ld sectors) and filesystem size (%ld sectors) do not "
+#~ "match."
+#~ msgstr ""
+#~ "Tamanho da partição (%ld sectores) e tamanho do sistema de ficheiros (%ld "
+#~ "sectores) não coincidem."
+
+#~ msgid ""
+#~ "The FATs aren't big enough to describe all clusters!  Each FAT is %d "
+#~ "sectors.  There are %d clusters, which would require each FAT to be %d "
+#~ "sectors.  This is REALLY weird.  You might want to write us an email: bug-"
+#~ "parted@gnu.org"
+#~ msgstr ""
+#~ "As FATs não são grandes o suficiente para descrever todos os clusters! "
+#~ "Cada FAT tem %d sectores. Existem %d clusters, os quais requerem que cada "
+#~ "FAT tenha %d setores. Isto é REALMENTE estranho. Você pode querer "
+#~ "escrever um email: bug-parted@gnu.org"
+
+#~ msgid ""
+#~ "This swap partition is not compatible with Linux version 2.1.117 or "
+#~ "earlier.  Use a smaller partition (maximum size 128mb) if you want to use "
+#~ "old versions of Linux."
+#~ msgstr ""
+#~ "Esta partição swap não é compatível com o Linux versão 2.1.117 ou "
+#~ "anterior. Utilize uma partição menor (máximo de 128mb) se quiser utilizar "
+#~ "versões antigas do Linux."
+
+#~ msgid "Linux-swap partitions can not be hidden on msdos disk labels."
+#~ msgstr ""
+#~ "Partições Linux-swap não podem ser escondidas em rótulos de disco msdos."
+
+#~ msgid "Linux-swap partitions can not be bootable on pc98 disk labels."
+#~ msgstr ""
+#~ "Partições Linux-swap não podem ser inicializáveis em rótulos de disco "
+#~ "pc98."
+
+#~ msgid "HFS partitions can't be hidden on msdos disk labels."
+#~ msgstr "Partições HFS não podem ser escondidas em rótulos de disco msdos."
+
+#~ msgid "JFS partitions can't be hidden on msdos disk labels."
+#~ msgstr "Partições JHS não podem ser escondidas em rótulos de disco msdos."
+
+#~ msgid "Reiserfs partitions can't be hidden on msdos disk labels."
+#~ msgstr ""
+#~ "Partições Reiserfs não podem ser escondidas em rótulos de disco msdos."
+
+#~ msgid "Reiserfs partitions must be bootable on pc98 disk labels."
+#~ msgstr ""
+#~ "Partições Reiserfs não podem ser inicializáveis em rótulos de disco pc98."
+
+#~ msgid "XFS partitions can't be hidden on msdos disk labels."
+#~ msgstr "Partições XFS não podem ser escondidas em rótulos de disco msdos."
+
+#~ msgid "START and END are in megabytes\n"
+#~ msgstr "INICIO e FIM são em megabytes\n"
+
+#~ msgid ""
+#~ "You requested to create a partition at %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Pretende criar uma partiçao em %.3f-%.3fMb. O mais perto que se consegue "
+#~ "será %3f-%.3fMb."
+
+#~ msgid ""
+#~ "You requested to move the partition to %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Pretende mover a partiçao para %.3f-%.3fMb. O mais perto que se consegue "
+#~ "será %3f-%.3fMb"
+
+#~ msgid "Disk geometry for %s: 0.000-%.3f megabytes\n"
+#~ msgstr "Geometria de disco para %s: 0.000-%.3f megabytes\n"
+
+#~ msgid "Minor    Start       End     "
+#~ msgstr "Minor    Início      Fim     "
+
+#~ msgid "Type      "
+#~ msgstr "Tipo      "
+
+#~ msgid "Name                  "
+#~ msgstr "Nome                  "
+
+#~ msgid ""
+#~ "You requested to resize the partition to %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Pretende redimensionar a partiçao para %.3f-%.3fMb. O mais perto que se "
+#~ "consegue será %3f-%.3fMb"
+
+#~ msgid ""
+#~ "You found a bug in GNU Parted.  Please email a bug report to bug-"
+#~ "parted@gnu.org containing the version (%s), and the following message:\n"
+#~ msgstr ""
+#~ "Você encontrou um bug no GNU parted. Por favor envie um relatório para "
+#~ "bug-parted@gnu.org\n"
+#~ "contendo a versão (%s), e a mensagem abaixo:\n"
+
+#~ msgid ""
+#~ "  You have Windows FAT partition(s) that are not using LBA.  If your BIOS "
+#~ "supports LBA, then you should switch to LBA by setting the LBA flag on "
+#~ "all FAT partitions.  Otherwise, make sure the operating system and the "
+#~ "BIOS have the same geometry before resizing any FAT partitions."
+#~ msgstr ""
+#~ "Você tem partiçoes FAT e nao esta a usar LBA. Se a sua BIOS suporta LBA "
+#~ "entao deverá mudar todas as partiçoes FAT para essa opçao. Caso "
+#~ "contrário, certifique-se que o sistema operativo e a BIOS têm a mesma "
+#~ "geometria antes de fazer o redimensionamento de qualquer partiçao FAT"
+
+#~ msgid ""
+#~ "The operating system thinks the geometry on %s is %d/%d/%d.  Therefore, "
+#~ "cylinder 1024 ends at %.3fM.%s"
+#~ msgstr ""
+#~ "O sistema Operativo acha que a geometria de %s é %d/%d/%d. Porém, o "
+#~ "cilindro 1024 termina em %.3fM%s. Você devia verificar se isto está "
+#~ "correto com sua \"\"BIOS, antes de usar este programa."
+
+#~ msgid "The operating system thinks the geometry on %s is %d/%d/%d.%s"
+#~ msgstr "O Sistema Operativo detectou que a gemotria em %s é %d/%d/%d.%s"
diff --git a/parted-1.8.7/po/pt_BR.gmo b/parted-1.8.7/po/pt_BR.gmo
new file mode 100644
index 0000000..c7f2afd
--- /dev/null
+++ b/parted-1.8.7/po/pt_BR.gmo
Binary files differ
diff --git a/parted-1.8.7/po/pt_BR.po b/parted-1.8.7/po/pt_BR.po
new file mode 100644
index 0000000..28595d2
--- /dev/null
+++ b/parted-1.8.7/po/pt_BR.po
@@ -0,0 +1,3478 @@
+# Brazilian portuguese messages for GNU parted.
+# Copyright (C) 1999 Free Software Foundation, Inc.
+# Eliphas Levy Theodoro <eliphas@conectiva.com>, 1999.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU parted 1.4.21\n"
+"Report-Msgid-Bugs-To: bug-parted@gnu.org\n"
+"POT-Creation-Date: 2007-05-09 17:02-0400\n"
+"PO-Revision-Date: 2001-11-21 09:10-0300\n"
+"Last-Translator: Eliphas Levy Theodoro <eliphas@f2s.com>\n"
+"Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: lib/closeout.c:74
+msgid "write error"
+msgstr ""
+
+#: lib/error.c:125
+#, fuzzy
+msgid "Unknown system error"
+msgstr "Tipo de sistema de arquivos desconhecido."
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK).  A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#.
+#. If you don't know what to put here, please see
+#. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr ""
+
+#: lib/regcomp.c:131
+msgid "Success"
+msgstr ""
+
+#: lib/regcomp.c:134
+msgid "No match"
+msgstr ""
+
+#: lib/regcomp.c:137
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regcomp.c:140
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regcomp.c:143
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regcomp.c:146
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regcomp.c:149
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regcomp.c:152
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regcomp.c:155
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regcomp.c:158
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regcomp.c:161
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regcomp.c:164
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regcomp.c:170
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regcomp.c:173
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regcomp.c:176
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regcomp.c:179
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regcomp.c:680
+msgid "No previous regular expression"
+msgstr ""
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr ""
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:66
+msgid "(C)"
+msgstr ""
+
+#: lib/version-etc.c:68
+msgid ""
+"\n"
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:84
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:88
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:92
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:98
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:104
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:110
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:132
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+
+#: lib/xalloc-die.c:35
+msgid "memory exhausted"
+msgstr ""
+
+#: libparted/arch/beos.c:237
+msgid "Disk Image"
+msgstr ""
+
+#: libparted/arch/beos.c:338 libparted/arch/gnu.c:261
+#: libparted/arch/linux.c:1272
+#, c-format
+msgid "Error opening %s: %s"
+msgstr "Erro abrindo %s: %s"
+
+#: libparted/arch/beos.c:349 libparted/arch/gnu.c:271
+#: libparted/arch/linux.c:1283
+#, c-format
+msgid "Unable to open %s read-write (%s).  %s has been opened read-only."
+msgstr ""
+"Não posso abrir %s para leitura-gravação (%s). %s foi aberto somente-leitura."
+
+#: libparted/arch/beos.c:411 libparted/arch/linux.c:1431
+#, c-format
+msgid "%s during seek for read on %s"
+msgstr "%s durante procura para leitura em %s"
+
+#: libparted/arch/beos.c:444 libparted/arch/gnu.c:449 libparted/arch/gnu.c:548
+#: libparted/arch/gnu.c:676 libparted/arch/linux.c:1391
+#: libparted/arch/linux.c:1469
+#, c-format
+msgid "%s during read on %s"
+msgstr "%s durante leitura em %s"
+
+#: libparted/arch/beos.c:480 libparted/arch/gnu.c:509
+#: libparted/arch/linux.c:1546
+#, c-format
+msgid "Can't write to %s, because it is opened read-only."
+msgstr "Não posso gravar em %s, pois ela foi aberta como somente-leitura."
+
+#: libparted/arch/beos.c:496 libparted/arch/linux.c:1570
+#, c-format
+msgid "%s during seek for write on %s"
+msgstr "%s durante procura para escrita em %s"
+
+#: libparted/arch/beos.c:533 libparted/arch/gnu.c:585 libparted/arch/gnu.c:630
+#: libparted/arch/gnu.c:707 libparted/arch/linux.c:1517
+#: libparted/arch/linux.c:1612 libparted/arch/linux.c:1684
+#, c-format
+msgid "%s during write on %s"
+msgstr "%s durante escrita em %s"
+
+#: debug/clearfat/clearfat.c:63 partprobe/partprobe.c:137
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:67
+#, c-format
+msgid ""
+"Usage: %s [OPTION]\n"
+"  or:  %s DEVICE MINOR\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:70
+msgid ""
+"Clear unused space on a FAT partition (a GNU Parted testing tool).\n"
+"\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:74
+msgid "      --help     display this help and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:75
+msgid "      --version  output version information and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:77 partprobe/partprobe.c:154
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:285
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:290
+#, fuzzy, c-format
+msgid "too many arguments"
+msgstr "Muitas páginas inválidas."
+
+#: partprobe/partprobe.c:141
+#, c-format
+msgid "Usage: %s [OPTION] [DEVICE]...\n"
+msgstr ""
+
+#: partprobe/partprobe.c:142
+msgid ""
+"Inform the OS of partition table changes.\n"
+"\n"
+"  -d, --no-update  don't update the kernel\n"
+"  -s, --summary    print a summary of contents\n"
+"  -h, --help       display this help and exit\n"
+"  -v, --version    output version information and exit\n"
+msgstr ""
+
+#: partprobe/partprobe.c:150
+msgid ""
+"\n"
+"With no DEVICE, probe all partitions.\n"
+msgstr ""
+
+#: libparted/arch/gnu.c:94
+#, c-format
+msgid "Unable to open %s."
+msgstr ""
+
+#: libparted/arch/gnu.c:114
+#, fuzzy
+msgid "Unable to probe store."
+msgstr "Impossível alinhar a partição."
+
+#: libparted/arch/gnu.c:352
+#, fuzzy
+msgid ""
+"The partition table cannot be re-read.  This means you need to reboot before "
+"mounting any modified partitions.  You also need to reinstall your boot "
+"loader before you reboot (which may require mounting modified partitions).  "
+"It is impossible do both things!  So you'll need to boot off a rescue disk, "
+"and reinstall your boot loader from the rescue disk.  Read section 4 of the "
+"Parted User documentation for more information."
+msgstr ""
+"O kernel não pôde reler sua tabela de partições, então você precisa "
+"reiniciar antes de montar qualquer partição modificada. Voce pode também "
+"precisar reinstalar seu gerenciador de boot antes de reinicializar (o que "
+"pode requerer a montagem das partições modificadas). É impossível fazer as "
+"duas coisas! Então você irá precisar inicializar por um disco de resgate, e "
+"reinstalar seu gerenciador de boot desde este disco. Leia a seção 4 da "
+"documentação do usuário do Parted para mais informações."
+
+#: libparted/arch/gnu.c:369
+#, fuzzy, c-format
+msgid ""
+"The partition table on %s cannot be re-read (%s).  This means the Hurd knows "
+"nothing about any modifications you made.  You should reboot your computer "
+"before doing anything with %s."
+msgstr ""
+"O kernel não conseguiu reler a tabela de partições de %s (%s). Isto "
+"significa que o Linux não sabe nada sobre as modificações que você fez. Você "
+"deve reinicializar seu computador antes de fazer qualquer uso de %s."
+
+#: libparted/arch/gnu.c:380 parted/parted.c:2443
+msgid ""
+"You should reinstall your boot loader before rebooting.  Read section 4 of "
+"the Parted User documentation for more information."
+msgstr ""
+"Você deve reinstalar seu gerenciador de boot antes de reinicializar. Leia a "
+"seção 4 da documentação do usuário do Parted para mais informações."
+
+#: libparted/arch/gnu.c:772
+#, c-format
+msgid "%s trying to sync %s to disk"
+msgstr ""
+
+#: libparted/arch/linux.c:408
+#, c-format
+msgid "Could not stat device %s - %s."
+msgstr "Não foi possível obter status do dispositivo %s - %s."
+
+#: libparted/arch/linux.c:523
+#, c-format
+msgid ""
+"Could not determine sector size for %s: %s.\n"
+"Using the default sector size (%lld)."
+msgstr ""
+
+#: libparted/arch/linux.c:539
+#, c-format
+msgid ""
+"Device %s has a logical sector size of %lld.  Not all parts of GNU Parted "
+"support this at the moment, and the working code is HIGHLY EXPERIMENTAL.\n"
+msgstr ""
+
+#: libparted/arch/linux.c:579
+#, fuzzy, c-format
+msgid "Unable to determine the size of %s (%s)."
+msgstr "Impossível determinar tamanho de %s (%s)"
+
+#: libparted/arch/linux.c:668
+#, c-format
+msgid "Could not get identity of device %s - %s"
+msgstr "Não foi possível obter a identificação do dispositivo %s - %s"
+
+#: libparted/arch/linux.c:677
+msgid "Generic IDE"
+msgstr ""
+
+#: libparted/arch/linux.c:698
+#, c-format
+msgid ""
+"Device %s has multiple (%d) logical sectors per physical sector.\n"
+"GNU Parted supports this EXPERIMENTALLY for some special disk label/file "
+"system combinations, e.g. GPT and ext2/3.\n"
+"Please consult the web site for up-to-date information."
+msgstr ""
+
+#: libparted/arch/linux.c:873
+#, c-format
+msgid "Error initialising SCSI device %s - %s"
+msgstr "Erro inicializando dispositivo SCSI %s - %s"
+
+#: libparted/arch/linux.c:928
+#, c-format
+msgid ""
+"The device %s has zero length, and can't possibly store a file system or "
+"partition table.  Perhaps you selected the wrong device?"
+msgstr ""
+
+#: libparted/arch/linux.c:1032
+#, fuzzy, c-format
+msgid ""
+"Unable to determine geometry of file/device %s.  You should not use Parted "
+"unless you REALLY know what you're doing!"
+msgstr ""
+"Impossível determinar a geometria do arquivo/dispositivo. Você não deveria "
+"utilizar o Parted a não ser que você REALMENTE saiba o que está fazendo!"
+
+#: libparted/arch/linux.c:1110
+msgid "DAC960 RAID controller"
+msgstr "Controlador RAID DAC960"
+
+#: libparted/arch/linux.c:1115
+msgid "Promise SX8 SATA Device"
+msgstr ""
+
+#: libparted/arch/linux.c:1120
+msgid "IBM S390 DASD drive"
+msgstr ""
+
+#: libparted/arch/linux.c:1125
+msgid "IBM iSeries Virtual DASD"
+msgstr ""
+
+#: libparted/arch/linux.c:1130
+msgid "Compaq Smart Array"
+msgstr "Compaq Smart Array"
+
+#: libparted/arch/linux.c:1135
+msgid "ATARAID Controller"
+msgstr "Controlador ATARAID"
+
+#: libparted/arch/linux.c:1140
+msgid "I2O Controller"
+msgstr "Controlador I2O"
+
+#: libparted/arch/linux.c:1145
+msgid "User-Mode Linux UBD"
+msgstr ""
+
+#: libparted/arch/linux.c:1156
+msgid "Linux device-mapper"
+msgstr ""
+
+#: libparted/arch/linux.c:1162
+msgid "Unknown"
+msgstr "Desconhecido"
+
+#: libparted/arch/linux.c:1169
+msgid "ped_device_new()  Unsupported device type"
+msgstr "ped_device_new()  Tipo de dispositivo não suportado"
+
+#: libparted/arch/linux.c:2083
+#, c-format
+msgid ""
+"Error informing the kernel about modifications to partition %s -- %s.  This "
+"means Linux won't know about any changes you made to %s until you reboot -- "
+"so you shouldn't mount it or use it in any way before rebooting."
+msgstr ""
+
+#: libparted/arch/linux.c:2262
+#, fuzzy, c-format
+msgid ""
+"parted was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made. "
+msgstr ""
+"O kernel não conseguiu reler a tabela de partições de %s (%s). Isto "
+"significa que o Linux não sabe nada sobre as modificações que você fez. Você "
+"deve reinicializar seu computador antes de fazer qualquer uso de %s."
+
+#: libparted/arch/linux.c:2368
+#, fuzzy, c-format
+msgid ""
+"The kernel was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made until you "
+"reboot.  You should reboot your computer before doing anything with %s."
+msgstr ""
+"O kernel não conseguiu reler a tabela de partições de %s (%s). Isto "
+"significa que o Linux não sabe nada sobre as modificações que você fez. Você "
+"deve reinicializar seu computador antes de fazer qualquer uso de %s."
+
+#: libparted/cs/geom.c:162
+msgid "Can't have the end before the start!"
+msgstr "Não pode ter fim da partição antes do início."
+
+#: libparted/cs/geom.c:169
+msgid "Can't have a partition outside the disk!"
+msgstr "Não pode ter uma partição para fora do disco!."
+
+#: libparted/cs/geom.c:366
+#, fuzzy, c-format
+msgid "Attempt to write sectors %ld-%ld outside of partition on %s."
+msgstr "Tentativa de escrever setores %ld-%ld fora da partição em %s"
+
+#: libparted/cs/geom.c:406 libparted/fs/linux_swap/linux_swap.c:475
+msgid "checking for bad blocks"
+msgstr ""
+
+#: libparted/debug.c:102
+#, c-format
+msgid "Backtrace has %d calls on stack:\n"
+msgstr ""
+
+#: libparted/debug.c:114
+#, c-format
+msgid "Assertion (%s) at %s:%d in function %s() failed."
+msgstr ""
+
+#: libparted/disk.c:203
+#, c-format
+msgid "Unable to open %s - unrecognised disk label."
+msgstr "Impossível abrir %s - rótulo de disco desconhecido."
+
+#: libparted/disk.c:471
+#, fuzzy, c-format
+msgid ""
+"This libparted doesn't have write support for %s.  Perhaps it was compiled "
+"read-only."
+msgstr "Não posso gravar em %s, pois ela foi aberta como somente-leitura."
+
+#: libparted/disk.c:598
+#, fuzzy, c-format
+msgid "Partition %d is %s, but the file system is %s."
+msgstr "A partição é muito pequena para um sistema de arquivos FAT"
+
+#: libparted/disk.c:1075
+#, c-format
+msgid "%s disk labels do not support extended partitions."
+msgstr "Rótulos de disco %s não suportam partições extendidas."
+
+#: libparted/disk.c:1634
+#, c-format
+msgid "%s disk labels don't support logical or extended partitions."
+msgstr "Rótulos de disco %s não suportam partições lógicas ou extendidas."
+
+#: libparted/disk.c:1647
+#, fuzzy
+msgid "Too many primary partitions."
+msgstr "Muitas páginas inválidas."
+
+#: libparted/disk.c:1656
+#, c-format
+msgid ""
+"Can't add a logical partition to %s, because there is no extended partition."
+msgstr ""
+"Não posso adicionar uma partição lógica em %s, pois não há uma partição "
+"extendida."
+
+#: libparted/disk.c:1680
+#, fuzzy, c-format
+msgid "Can't have more than one extended partition on %s."
+msgstr "Não se pode haver mais de uma partição extendida em %s"
+
+#: libparted/disk.c:1690
+#, fuzzy
+msgid "Can't have logical partitions outside of the extended partition."
+msgstr ""
+"Não posso adicionar uma partição lógica fora da partição extendida em %s."
+
+#: libparted/disk.c:1715
+#, fuzzy, c-format
+msgid "Can't have a logical partition outside of the extended partition on %s."
+msgstr ""
+"Não posso adicionar uma partição lógica fora da partição extendida em %s."
+
+#: libparted/disk.c:1725 libparted/disk.c:1779 libparted/disk.c:1945
+#, fuzzy
+msgid "Can't have overlapping partitions."
+msgstr "Não posso copiar em uma partição sobreposta."
+
+#: libparted/disk.c:1733
+#, fuzzy
+msgid "Can't have a primary partition inside an extended partition."
+msgstr "Não posso adicionar uma partição primária dentro de uma extendida."
+
+#: libparted/disk.c:2140
+msgid "metadata"
+msgstr "metadado"
+
+#: libparted/disk.c:2142
+msgid "free"
+msgstr "livre"
+
+#: libparted/disk.c:2144 parted/ui.c:1169 parted/ui.c:1197
+msgid "extended"
+msgstr "extendida"
+
+#: libparted/disk.c:2146 parted/ui.c:1173 parted/ui.c:1201
+msgid "logical"
+msgstr "lógica"
+
+#: libparted/disk.c:2148 parted/ui.c:1165 parted/ui.c:1193
+msgid "primary"
+msgstr "primária"
+
+#: libparted/disk.c:2164
+msgid "boot"
+msgstr "boot"
+
+#: libparted/disk.c:2166
+msgid "root"
+msgstr "root"
+
+#: libparted/disk.c:2168
+msgid "swap"
+msgstr "swap"
+
+#: libparted/disk.c:2170
+msgid "hidden"
+msgstr "escondida"
+
+#: libparted/disk.c:2172
+msgid "raid"
+msgstr "raid"
+
+#: libparted/disk.c:2174
+msgid "lvm"
+msgstr "lvm"
+
+#: libparted/disk.c:2176
+msgid "lba"
+msgstr "lba"
+
+#: libparted/disk.c:2178
+msgid "hp-service"
+msgstr ""
+
+#: libparted/disk.c:2180
+msgid "palo"
+msgstr ""
+
+#: libparted/disk.c:2182
+msgid "prep"
+msgstr ""
+
+#: libparted/disk.c:2184
+msgid "msftres"
+msgstr ""
+
+#: libparted/disk.c:2190
+#, fuzzy, c-format
+msgid "Unknown partition flag, %d."
+msgstr "Sinalizador de partição desconhecido, %d."
+
+#: libparted/exception.c:78
+msgid "Information"
+msgstr "Informação"
+
+#: libparted/exception.c:79
+msgid "Warning"
+msgstr "Aviso"
+
+#: libparted/exception.c:80
+msgid "Error"
+msgstr "Erro"
+
+#: libparted/exception.c:81
+msgid "Fatal"
+msgstr "Fatal"
+
+#: libparted/exception.c:82
+msgid "Bug"
+msgstr "Bug"
+
+#: libparted/exception.c:83
+msgid "No Implementation"
+msgstr "Sem Implementação"
+
+#: libparted/exception.c:87
+msgid "Fix"
+msgstr "Arrumar"
+
+#: libparted/exception.c:88
+msgid "Yes"
+msgstr "Sim"
+
+#: libparted/exception.c:89
+msgid "No"
+msgstr "Não"
+
+#: libparted/exception.c:90
+msgid "OK"
+msgstr "OK"
+
+#: libparted/exception.c:91
+msgid "Retry"
+msgstr "Repetir"
+
+#: libparted/exception.c:92
+msgid "Ignore"
+msgstr "Ignorar"
+
+#: libparted/exception.c:93
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: libparted/exception.c:133
+#, fuzzy, c-format
+msgid ""
+"A bug has been detected in GNU Parted.  Refer to the web site of parted "
+"http://www.gnu.org/software/parted/parted.html for more informations of what "
+"could be useful for bug submitting!  Please email a bug report to bug-"
+"parted@gnu.org containing at least the version (%s) and the following "
+"message:  "
+msgstr ""
+"Um bug foi detectado no GNU parted. Por favor, envie um relatório de bugpara "
+"bug-parted@gnu.org contendo a versão (%s) e a mensagem abaixo:"
+
+#: libparted/filesys.c:384
+msgid "Could not detect file system."
+msgstr "Não foi possível detectar o sistema de arquivos."
+
+#: libparted/filesys.c:395
+#, fuzzy
+msgid "The file system is bigger than its volume!"
+msgstr "O rótulo de disco descreve um disco maior que %s."
+
+#: libparted/filesys.c:403
+#, c-format
+msgid "Support for opening %s file systems is not implemented yet."
+msgstr ""
+"O suporte para abrir sistema de arquivos %s não foi implementado ainda."
+
+#: libparted/filesys.c:445
+#, c-format
+msgid "Support for creating %s file systems is not implemented yet."
+msgstr ""
+"O suporte para criar sistema de arquivos %s não foi implementado ainda."
+
+#: libparted/filesys.c:505
+#, c-format
+msgid "Support for checking %s file systems is not implemented yet."
+msgstr "Suporte para checar sistema de arquivos não implementado para %s."
+
+#: libparted/filesys.c:571
+msgid "raw block copying"
+msgstr ""
+
+#: libparted/filesys.c:582
+#, fuzzy
+msgid "growing file system"
+msgstr "Tipo de sistema de arquivos desconhecido."
+
+#: libparted/filesys.c:622
+msgid "Can't copy onto an overlapping partition."
+msgstr "Não posso copiar em uma partição sobreposta."
+
+#: libparted/filesys.c:644
+#, fuzzy, c-format
+msgid ""
+"Direct support for copying file systems is not yet implemented for %s.  "
+"However, support for resizing is implemented.  Therefore, the file system "
+"can be copied if the new partition is at least as big as the old one.  So, "
+"either shrink the partition you are trying to copy, or copy to a bigger "
+"partition."
+msgstr ""
+"O suporte direto para cópia de sistemas de arquivos não está implementado "
+"para %s. Entretanto, o suporte para redimensionamento está. Portanto, o "
+"sistema de arquivos pode ser copiado se a nova partição for pelo menos tão "
+"grande quanto a antiga. Então, diminua a partição que você está tentando "
+"copiar, ou copie para uma partição maior."
+
+#: libparted/filesys.c:658
+#, c-format
+msgid "Support for copying %s file systems is not implemented yet."
+msgstr "Suporte para copiar sistema de arquivos não implementado para %s."
+
+#: libparted/filesys.c:696
+#, c-format
+msgid "Support for resizing %s file systems is not implemented yet."
+msgstr ""
+"Suporte para redimensionar sistema de arquivos não implementado para %s."
+
+#: libparted/fs/reiserfs/reiserfs.c:315
+msgid "creating"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:402
+#, fuzzy
+msgid "The file system is in an invalid state.  Perhaps it is mounted?"
+msgstr "O rótulo de disco descreve um disco maior que %s."
+
+#: libparted/fs/reiserfs/reiserfs.c:410
+msgid "The file system is in old (unresizeable) format."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:416
+msgid "Invalid free blocks count.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:431
+#, fuzzy
+msgid "checking"
+msgstr "check"
+
+#: libparted/fs/reiserfs/reiserfs.c:437
+msgid "Reiserfs tree seems to be corrupted.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:449
+#, fuzzy
+msgid ""
+"The reiserfs file system passed a basic check.  For a more comprehensive "
+"check, run reiserfsck --check."
+msgstr ""
+"O sistema de arquivos ext2 passou pelo teste básico. Para um teste mais "
+"compreensivo, utilize o programa e2fsck."
+
+#: libparted/fs/reiserfs/reiserfs.c:474
+#, fuzzy
+msgid "Sorry, can't move the start of reiserfs partitions yet."
+msgstr "Desculpe, não posso mover o início de partições ext2 ainda!"
+
+#: libparted/fs/reiserfs/reiserfs.c:490
+msgid "Couldn't reopen device abstraction layer for read/write."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:508 libparted/fs/ext2/ext2_resize.c:552
+#: libparted/fs/hfs/hfs.c:250 libparted/fs/hfs/hfs.c:629
+#, fuzzy
+msgid "shrinking"
+msgstr "Aviso"
+
+#: libparted/fs/reiserfs/reiserfs.c:520
+#, fuzzy
+msgid "expanding"
+msgstr "Aviso"
+
+#: libparted/fs/reiserfs/reiserfs.c:592
+msgid "Couldn't create reiserfs device abstraction handler."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:606
+#, c-format
+msgid "Device is too small for %lu blocks."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:615
+msgid "copying"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:682
+#, c-format
+msgid "Couldn't resolve symbol %s.  Error: %s."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:704
+msgid "GNU Parted found an invalid libreiserfs library."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:715
+#, c-format
+msgid ""
+"GNU Parted has detected libreiserfs interface version mismatch.  Found %d-%"
+"d, required %d. ReiserFS support will be disabled."
+msgstr ""
+
+#: libparted/labels/aix.c:137
+#, fuzzy
+msgid "Support for reading AIX disk labels is is not implemented yet."
+msgstr ""
+"O suporte para criar sistema de arquivos %s não foi implementado ainda."
+
+#: libparted/labels/aix.c:148
+#, fuzzy
+msgid "Support for writing AIX disk labels is is not implemented yet."
+msgstr ""
+"O suporte para criar sistema de arquivos %s não foi implementado ainda."
+
+#: libparted/labels/aix.c:161
+#, fuzzy
+msgid ""
+"Support for adding partitions to AIX disk labels is not implemented yet."
+msgstr ""
+"O suporte para criar sistema de arquivos %s não foi implementado ainda."
+
+#: libparted/labels/aix.c:171
+#, fuzzy
+msgid ""
+"Support for duplicating partitions in AIX disk labels is not implemented yet."
+msgstr ""
+"O suporte para criar sistema de arquivos %s não foi implementado ainda."
+
+#: libparted/labels/aix.c:189
+#, fuzzy
+msgid ""
+"Support for setting system type of partitions in AIX disk labels is not "
+"implemented yet."
+msgstr ""
+"O suporte para criar sistema de arquivos %s não foi implementado ainda."
+
+#: libparted/labels/aix.c:199
+#, fuzzy
+msgid "Support for setting flags in AIX disk labels is not implemented yet."
+msgstr ""
+"O suporte para criar sistema de arquivos %s não foi implementado ainda."
+
+#: libparted/labels/bsd.c:501 libparted/labels/dasd.c:755
+#: libparted/labels/dos.c:1974 libparted/labels/dvh.c:770
+#: libparted/labels/gpt.c:1448 libparted/labels/loop.c:248
+#: libparted/labels/mac.c:1408 libparted/labels/pc98.c:759
+#: libparted/labels/rdb.c:1041 libparted/labels/sun.c:705
+#, fuzzy
+msgid "Unable to satisfy all constraints on the partition."
+msgstr "Impossível alinhar a partição."
+
+#: libparted/labels/bsd.c:526
+#, fuzzy
+msgid "Unable to allocate a bsd disklabel slot."
+msgstr "Impossível alocar um slot de rótulo de disco bsd"
+
+#: libparted/labels/dasd.c:166
+#, fuzzy
+msgid "Unable to determine the block size of this dasd"
+msgstr "Impossível determinar tamanho de %s (%s)"
+
+#: libparted/labels/dasd.c:781
+#, fuzzy
+msgid "Unable to allocate a dasd disklabel slot"
+msgstr "Impossível alocar um slot de rótulo de disco bsd"
+
+#: libparted/labels/dos.c:827
+#, fuzzy, c-format
+msgid "Invalid partition table on %s -- wrong signature %x."
+msgstr "Tabela de partições inválida em %s - assinatura errada %x"
+
+#: libparted/labels/dos.c:855
+#, c-format
+msgid "Invalid partition table - recursive partition on %s."
+msgstr "Tabela de partições inválida - partição recursiva em %s."
+
+#: libparted/labels/dos.c:1318
+#, fuzzy
+msgid "Extended partitions cannot be hidden on msdos disk labels."
+msgstr "Partições ext2 não podem ser escondidas em rótulos de disco msdos."
+
+#: libparted/labels/dos.c:1958
+msgid "Parted can't resize partitions managed by Windows Dynamic Disk."
+msgstr ""
+
+#: libparted/labels/dvh.c:190
+#, fuzzy, c-format
+msgid "%s has no extended partition (volume header partition)."
+msgstr ""
+"Não posso redimensionar uma partição extendida, sem excluir uma partição "
+"lógica."
+
+#: libparted/labels/dvh.c:313
+msgid "Checksum is wrong, indicating the partition table is corrupt."
+msgstr ""
+
+#: libparted/labels/dvh.c:616
+#, fuzzy
+msgid "Only primary partitions can be root partitions."
+msgstr "Não posso adicionar uma partição primária dentro de uma extendida."
+
+#: libparted/labels/dvh.c:630
+#, fuzzy
+msgid "Only primary partitions can be swap partitions."
+msgstr "Não posso adicionar uma partição primária dentro de uma extendida."
+
+#: libparted/labels/dvh.c:644
+msgid "Only logical partitions can be a boot file."
+msgstr ""
+
+#: libparted/labels/dvh.c:721
+msgid "Only logical partitions (boot files) have a name."
+msgstr ""
+
+#: libparted/labels/dvh.c:812
+#, fuzzy
+msgid "Too many primary partitions"
+msgstr "Muitas páginas inválidas."
+
+#: libparted/labels/fdasd.c:103
+#, c-format
+msgid ""
+"%s open error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:107
+#, c-format
+msgid ""
+"%s seek error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:110
+#, c-format
+msgid ""
+"%s read error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:113
+#, fuzzy, c-format
+msgid ""
+"%s write error\n"
+"%s\n"
+msgstr "%s durante escrita em %s"
+
+#: libparted/labels/fdasd.c:116
+#, c-format
+msgid ""
+"%s IOCTL error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:119
+#, c-format
+msgid ""
+"%s API version mismatch\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:122
+#, c-format
+msgid ""
+"%s Unsupported disk type\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:126
+#, c-format
+msgid ""
+"%s Unsupported disk format\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:130
+#, fuzzy, c-format
+msgid ""
+"%s Disk in use\n"
+"%s\n"
+msgstr "%s  %s  %s"
+
+#: libparted/labels/fdasd.c:133
+#, c-format
+msgid ""
+"%s Config file syntax error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:137
+#, c-format
+msgid ""
+"%s Volume label is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:141
+#, c-format
+msgid ""
+"%s a data set name is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:145
+#, c-format
+msgid ""
+"%s space allocation\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:149
+#, c-format
+msgid ""
+"%s device verification failed\n"
+"The specified device is not a valid DASD device\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:154
+#, c-format
+msgid ""
+"%s Fatal error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/gpt.c:454
+#, c-format
+msgid ""
+"%s contains GPT signatures, indicating that it has a GPT table.  However, it "
+"does not have a valid fake msdos partition table, as it should.  Perhaps it "
+"was corrupted -- possibly by a program that doesn't understand GPT partition "
+"tables.  Or perhaps you deleted the GPT table, and are now using an msdos "
+"partition table.  Is this a GPT partition table?"
+msgstr ""
+
+#: libparted/labels/gpt.c:648
+#, c-format
+msgid ""
+"The format of the GPT partition table is version %x, which is newer than "
+"what Parted can recognise.  Please tell us!  bug-parted@gnu.org"
+msgstr ""
+
+#: libparted/labels/gpt.c:698
+#, c-format
+msgid ""
+"Not all of the space available to %s appears to be used, you can fix the GPT "
+"to use all of the space (an extra %llu blocks) or continue with the current "
+"setting? "
+msgstr ""
+
+#: libparted/labels/gpt.c:827
+msgid ""
+"The backup GPT table is not at the end of the disk, as it should be.  This "
+"might mean that another operating system believes the disk is smaller.  Fix, "
+"by moving the backup to the end (and removing the old backup)?"
+msgstr ""
+
+#: libparted/labels/gpt.c:862
+msgid ""
+"The primary GPT table is corrupt, but the backup appears OK, so that will be "
+"used."
+msgstr ""
+
+#: libparted/labels/gpt.c:870
+msgid ""
+"Both the primary and backup GPT tables are corrupt.  Try making a fresh "
+"table, and using Parted's rescue feature to recover partitions."
+msgstr ""
+
+#: libparted/labels/mac.c:181
+#, c-format
+msgid "Invalid signature %x for Mac disk labels."
+msgstr "Assinatura inválida %x para rótulos de disco Mac."
+
+#: libparted/labels/mac.c:226
+msgid "Partition map has no partition map entry!"
+msgstr "Mapa de partições não tem nenhuma entrada!"
+
+#: libparted/labels/mac.c:273
+#, c-format
+msgid "%s is too small for a Mac disk label!"
+msgstr "%s é muito pequeno para um rótulo de disco Mac!"
+
+#: libparted/labels/mac.c:532
+#, c-format
+msgid "Partition %d has an invalid signature %x."
+msgstr "A partição %d tem uma assinatura inválida %x."
+
+#: libparted/labels/mac.c:550
+#, c-format
+msgid "Partition %d has an invalid length of 0 bytes!"
+msgstr "A partição %d tem um tamanho inválido de 0 bytes!"
+
+#: libparted/labels/mac.c:580
+#, fuzzy
+msgid "The data region doesn't start at the start of the partition."
+msgstr "A região de dados não começa no início da partição"
+
+#: libparted/labels/mac.c:597
+#, fuzzy
+msgid "The boot region doesn't start at the start of the partition."
+msgstr "A região de inicialização não começa no início da partição"
+
+#: libparted/labels/mac.c:611
+msgid "The partition's boot region doesn't occupy the entire partition."
+msgstr "A região de inicialização da partição não a ocupa inteiramente."
+
+#: libparted/labels/mac.c:622
+msgid "The partition's data region doesn't occupy the entire partition."
+msgstr "A região de dados da partição não a ocupa inteiramente."
+
+#: libparted/labels/mac.c:675
+#, c-format
+msgid ""
+"Weird block size on device descriptor: %d bytes is not divisible by 512."
+msgstr ""
+"tamanho de bloco estranho no descritor de dispositivo: %d bytes não "
+"sãodivisíveis por 512."
+
+#: libparted/labels/mac.c:688
+#, c-format
+msgid ""
+"The driver descriptor says the physical block size is %d bytes, but Linux "
+"says it is %d bytes."
+msgstr ""
+"O descritor do driver informa que o tamanho físico de bloco é %d bytes, mas "
+"o Linux informa que é %d bytes."
+
+#: libparted/labels/mac.c:736
+msgid "No valid partition map found."
+msgstr "Nenhum mapa de partições válido foi encontrado."
+
+#: libparted/labels/mac.c:795
+#, fuzzy, c-format
+msgid ""
+"Conflicting partition map entry sizes!  Entry 1 says it is %d, but entry %d "
+"says it is %d!"
+msgstr ""
+"Tamanhos de mapa de partição conflitantes! Entrada 1 informa que é %d, mas "
+"entrada %d informa que é %d!"
+
+#: libparted/labels/mac.c:822
+#, fuzzy
+msgid "Weird!  There are 2 partitions map entries!"
+msgstr "Estranho - 2 entradas no mapa de partição"
+
+#: libparted/labels/mac.c:1347
+msgid ""
+"Changing the name of a root or swap partition will prevent Linux from "
+"recognising it as such."
+msgstr ""
+"Mudar o nome de uma partição root ou swap irá impedir o Linux de reconhecê-"
+"la como tal."
+
+#: libparted/labels/mac.c:1443
+#, fuzzy
+msgid "Can't add another partition -- the partition map is too small!"
+msgstr ""
+"Não posso adicionar outra partição - o mapa de partições é muito pequeno!"
+
+#: libparted/labels/pc98.c:354
+#, fuzzy, c-format
+msgid "Invalid partition table on %s."
+msgstr "Tabela de partições inválida em %s"
+
+#: libparted/labels/pc98.c:406 libparted/labels/pc98.c:484
+#, fuzzy, c-format
+msgid ""
+"Partition %d isn't aligned to cylinder boundaries.  This is still "
+"unsupported."
+msgstr ""
+"A partição %d não está alinhada ao limite do cilindro. Preciso adicionar "
+"suporte para isso."
+
+#: libparted/labels/pc98.c:791
+msgid "Can't add another partition."
+msgstr "Não posso adicionar outra partição."
+
+#: libparted/labels/rdb.c:162
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:497
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen."
+msgstr ""
+
+#: libparted/labels/rdb.c:581
+#, c-format
+msgid "%s : Loop detected at block %d."
+msgstr ""
+
+#: libparted/labels/rdb.c:600
+#, c-format
+msgid "%s : The %s list seems bad at block %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:689
+#, c-format
+msgid "%s : Failed to list bad blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:697
+#, fuzzy, c-format
+msgid "%s : Failed to list partition blocks."
+msgstr "Impossível alinhar a partição."
+
+#: libparted/labels/rdb.c:705
+#, c-format
+msgid "%s : Failed to list file system blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:713
+#, c-format
+msgid "%s : Failed to list boot blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:740
+#, fuzzy, c-format
+msgid "Failed to write partition block at %d."
+msgstr "Impossível determinar se a partição está montada."
+
+#: libparted/labels/rdb.c:1069
+#, fuzzy
+msgid "Unable to allocate a partition number."
+msgstr "Impossível alinhar a partição."
+
+#: libparted/labels/sun.c:145
+msgid "Corrupted Sun disk label detected."
+msgstr "Um rótulo de disco Sun corrompido foi detectado."
+
+#: libparted/labels/sun.c:266
+#, fuzzy, c-format
+msgid ""
+"The disk CHS geometry (%d,%d,%d) reported by the operating system does not "
+"match the geometry stored on the disk label (%d,%d,%d)."
+msgstr ""
+"A geometria CHS do disco (%d,%d,%d) não confere com a geometria gravada no "
+"rótulo de disco (%d,%d,%d)."
+
+#: libparted/labels/sun.c:288
+#, c-format
+msgid "The disk label describes a disk bigger than %s."
+msgstr "O rótulo de disco descreve um disco maior que %s."
+
+#: libparted/labels/sun.c:442
+#, c-format
+msgid "The disk has %d cylinders, which is greater than the maximum of 65536."
+msgstr ""
+
+#: libparted/labels/sun.c:737
+msgid ""
+"The Whole Disk partition is the only available one left.  Generally, it is "
+"not a good idea to overwrite this partition with a real one.  Solaris may "
+"not be able to boot without it, and SILO (the sparc boot loader) appreciates "
+"it as well."
+msgstr ""
+
+#: libparted/labels/sun.c:752
+msgid "Sun disk label is full."
+msgstr "O rótulo de disco Sun está cheio."
+
+#: libparted/labels/vtoc.c:163
+#, c-format
+msgid ""
+"%s opening device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:167
+#, c-format
+msgid ""
+"%s seeking device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:171
+#, c-format
+msgid ""
+"%s writing to device '%s' failed,\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:175
+#, c-format
+msgid ""
+"%s reading from device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:179
+#, c-format
+msgid "Fatal error\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:418
+msgid "Could not read VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:424
+msgid "Could not read VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:431
+msgid "Could not read VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:438
+msgid "Could not read VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:445
+msgid "Could not read VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:462
+msgid "Could not write VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:468
+msgid "Could not write VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:475
+msgid "Could not write VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:482
+msgid "Could not write VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:489
+msgid "Could not write VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/libparted.c:296 libparted/libparted.c:316
+msgid "Out of memory."
+msgstr "Não há memória."
+
+#: libparted/unit.c:139
+msgid "Cannot get unit size for special unit 'COMPACT'."
+msgstr ""
+
+#: libparted/unit.c:386
+#, c-format
+msgid "\"%s\" has invalid syntax for locations."
+msgstr ""
+
+#: libparted/unit.c:394
+#, c-format
+msgid "The maximum head value is %d."
+msgstr ""
+
+#: libparted/unit.c:401
+#, c-format
+msgid "The maximum sector value is %d."
+msgstr ""
+
+#: libparted/unit.c:413 libparted/unit.c:545
+#, fuzzy, c-format
+msgid "The location %s is outside of the device %s."
+msgstr "Impossível criar partição para fora do dispositivo."
+
+#: libparted/unit.c:527
+msgid "Invalid number."
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:63 libparted/fs/amiga/apfs.c:56
+#: libparted/fs/amiga/asfs.c:70
+#, fuzzy, c-format
+msgid "%s : Failed to allocate partition block\n"
+msgstr "Impossível alinhar a partição."
+
+#: libparted/fs/amiga/affs.c:78 libparted/fs/amiga/apfs.c:70
+#: libparted/fs/amiga/asfs.c:86
+#, fuzzy, c-format
+msgid "%s : Failed to allocate block\n"
+msgstr "Impossível alinhar a partição."
+
+#: libparted/fs/amiga/affs.c:83 libparted/fs/amiga/apfs.c:75
+#, c-format
+msgid "%s : Couldn't read boot block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:99 libparted/fs/amiga/apfs.c:86
+#: libparted/fs/amiga/asfs.c:92 libparted/fs/amiga/asfs.c:106
+#, c-format
+msgid "%s : Couldn't read root block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:72
+#, c-format
+msgid "%s : Failed to allocate id list element\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:189
+#, c-format
+msgid "%s : Couldn't read block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:202
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:212
+#, fuzzy, c-format
+msgid "%s : Couldn't write block %d\n"
+msgstr "%s durante escrita em %s"
+
+#: libparted/fs/amiga/amiga.c:278
+#, fuzzy, c-format
+msgid "%s : Failed to allocate disk_specific rdb block\n"
+msgstr "Impossível alinhar a partição."
+
+#: libparted/fs/amiga/amiga.c:289
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:318
+#, fuzzy, c-format
+msgid "%s : Failed to read partition block %llu\n"
+msgstr "Impossível alinhar a partição."
+
+#: libparted/fs/ext2/ext2.c:87 libparted/fs/ext2/ext2.c:112
+msgid "Inconsistent group descriptors!"
+msgstr "Descritores de grupo inconsistentes!"
+
+#: libparted/fs/ext2/ext2.c:91 libparted/fs/ext2/ext2.c:116
+#, fuzzy
+msgid "File system full!"
+msgstr "Sistema de arquivos cheio!"
+
+#: libparted/fs/ext2/ext2.c:686
+#, fuzzy
+msgid "Invalid superblock.  Are you sure this is an ext2 file system?"
+msgstr "Superbloco inválido. Você tem certeza que isto é um sistema ext2?"
+
+#: libparted/fs/ext2/ext2.c:700 libparted/fs/ext2/ext2_resize.c:658
+#, fuzzy
+msgid "File system has errors!  You should run e2fsck."
+msgstr "Sistema de arquivos tem erros! Execute e2fsck primeiro."
+
+#: libparted/fs/ext2/ext2.c:711
+#, fuzzy
+msgid ""
+"File system was not cleanly unmounted!  You should run e2fsck.  Modifying an "
+"unclean file system could cause severe corruption."
+msgstr ""
+"Sistema de arquivos não foi desmontado corretamente! Execute e2fsck primeiro."
+
+#: libparted/fs/ext2/ext2.c:731
+#, fuzzy
+msgid "File system has an incompatible feature enabled."
+msgstr "Sistema de arquivos tem uma característica incompatível habilitada"
+
+#: libparted/fs/ext2/ext2.c:742
+msgid "Error allocating buffer cache."
+msgstr "Erro determinando o cache temporário."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:114
+#, fuzzy
+msgid ""
+"Found an inode with a incorrect link count.  Better go run e2fsck first!"
+msgstr ""
+"Encontrado um inode com uma contagem incorreta de ligações. Melhor executar "
+"o e2fsck primeiro."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:487
+msgid "Not enough free inodes!"
+msgstr "Não há inodes livres suficientes!"
+
+#: libparted/fs/ext2/ext2_resize.c:223
+#, fuzzy
+msgid "File system is too full to remove a group!"
+msgstr "Sistema de arquivos muito ocupado para remover um grupo!"
+
+#: libparted/fs/ext2/ext2_resize.c:232
+#, fuzzy
+msgid "File system has too many allocated inodes to remove a group!"
+msgstr ""
+"Sistema de arquivos tem muitos inodes utilizados para remover um grupo!"
+
+#: libparted/fs/ext2/ext2_resize.c:491
+msgid "adding groups"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:528
+#, fuzzy, c-format
+msgid "Your file system is too full to resize it to %i blocks.  Sorry."
+msgstr ""
+"Seu sistema de arquivos está muito ocupado para redimensioná-lo para %i "
+"blocos. Desculpe."
+
+#: libparted/fs/ext2/ext2_resize.c:538
+#, fuzzy, c-format
+msgid ""
+"Your file system has too many occupied inodes to resize it to %i blocks.  "
+"Sorry."
+msgstr ""
+"Seu sistema de arquivos está com muitos inodes ocupados para redimensioná-lo "
+"para %i blocos. Desculpe."
+
+#: libparted/fs/ext2/ext2_resize.c:666
+#, fuzzy
+msgid "File system was not cleanly unmounted!  You should run e2fsck."
+msgstr ""
+"Sistema de arquivos não foi desmontado corretamente! Execute e2fsck primeiro."
+
+#: libparted/fs/ext2/ext2_resize.c:675
+msgid ""
+"The file system has the 'dir_index' feature enabled.  Parted can only resize "
+"the file system if it disables this feature.  You can enable it later by "
+"running 'tune2fs -O dir_index DEVICE' and then 'e2fsck -fD DEVICE'."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:691
+msgid ""
+"A resize operation on this file system will use EXPERIMENTAL code\n"
+"that MAY CORRUPT it (although no one has reported any such damage yet).\n"
+"You should at least backup your data first, and run 'e2fsck -f' afterwards."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_block_relocator.c:198
+#, fuzzy
+msgid "Cross-linked blocks found!  Better go run e2fsck first!"
+msgstr ""
+"Encontrados blocos com referência cruzada! Melhor executar e2fsck primeiro."
+
+#: libparted/fs/ext2/ext2_block_relocator.c:537
+#, fuzzy, c-format
+msgid "Block %i has no reference?  Weird."
+msgstr "Bloco %i não tem referência? Estranho"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:737
+#, fuzzy, c-format
+msgid "Block %i shouldn't have been marked (%d, %d)!"
+msgstr "Bloco %i não deveria ter sido marcado!"
+
+#: libparted/fs/ext2/interface.c:186
+#, fuzzy
+msgid ""
+"The ext2 file system passed a basic check.  For a more comprehensive check, "
+"use the e2fsck program."
+msgstr ""
+"O sistema de arquivos ext2 passou pelo teste básico. Para um teste mais "
+"compreensivo, utilize o programa e2fsck."
+
+#: libparted/fs/ext2/interface.c:203
+msgid "Sorry, can't move the start of ext2 partitions yet!"
+msgstr "Desculpe, não posso mover o início de partições ext2 ainda!"
+
+#: libparted/fs/ext2/ext2_buffer.c:82
+msgid "Couldn't flush buffer cache!"
+msgstr "Não foi possível esvaziar cache temporário!"
+
+#: libparted/fs/ext2/ext2_mkfs.c:162
+msgid "writing per-group metadata"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_mkfs.c:564
+msgid "File system too small for ext2."
+msgstr ""
+
+#: libparted/fs/fat/calc.c:135
+#, fuzzy, c-format
+msgid ""
+"You need %s of free disk space to shrink this partition to this size.  "
+"Currently, only %s is free."
+msgstr ""
+"Você precisa de %dM de espaço livre para diminuir esta partição para este "
+"tamanho (você tem somente %dM livres)"
+
+#: libparted/fs/fat/context.c:56
+#, c-format
+msgid ""
+"Cluster start delta = %d, which is not a multiple of the cluster size %d."
+msgstr ""
+"O cluster inicia em delta = %d, que não é um múltiplo do tamanho de cluster %"
+"d."
+
+#: libparted/fs/fat/fat.c:308
+#, fuzzy, c-format
+msgid "Partition too big/small for a %s file system."
+msgstr "A partição é muito pequena para um sistema de arquivos FAT"
+
+#: libparted/fs/fat/fat.c:474
+msgid ""
+"The FATs don't match.  If you don't know what this means, then select "
+"cancel, run scandisk on the file system, and then come back."
+msgstr ""
+"As FATs não estão iguais. Se você não sabe o que isto significa, selecione "
+"cancelar, execute o scandisk no sistema de arquivos, depois volte."
+
+#: libparted/fs/fat/fat.c:514
+msgid "There are no possible configurations for this FAT type."
+msgstr "Não há configurações possíveis para este tipo de FAT."
+
+#: libparted/fs/fat/fat.c:526
+#, c-format
+msgid ""
+"File system doesn't have expected sizes for Windows to like it.  Cluster "
+"size is %dk (%dk expected); number of clusters is %d (%d expected); size of "
+"FATs is %d sectors (%d expected)."
+msgstr ""
+"O sistema de arquivos não tem o tamanho esperado para que o Windows utilize. "
+"O tamanho do cluster é %dk (%dk esperado); número de clusters é %d (%d "
+"esperado); tamanho da FAT é %d setores (%d esperado)."
+
+#: libparted/fs/fat/fat.c:549
+#, c-format
+msgid ""
+"File system is reporting the free space as %d clusters, not %d clusters."
+msgstr ""
+"O sistema de arquivos está reportando que o espaço livre é %d clusters, não %"
+"d clusters."
+
+#: libparted/fs/fat/fat.c:874
+#, fuzzy
+msgid ""
+"GNU Parted was miscompiled: the FAT boot sector should be 512 bytes.  FAT "
+"support will be disabled."
+msgstr ""
+"O GNU parted foi compilado erradamente: o setor de boot FAT deveria ser de "
+"512 bytes. O suporte a FAT será desabilitado."
+
+#: libparted/fs/fat/resize.c:159
+#, fuzzy
+msgid ""
+"There's not enough room in the root directory for all of the files.  Either "
+"cancel, or ignore to lose the files."
+msgstr ""
+"Não há espaço suficiente no diretório raiz, para todos os arquivos. Cancele, "
+"ou ignore para perder os arquivos."
+
+#: libparted/fs/fat/resize.c:300
+msgid "Error writing to the root directory."
+msgstr "Erro escrevendo no diretório raiz."
+
+#: libparted/fs/fat/resize.c:489
+#, fuzzy
+msgid "If you leave your file system as FAT16, then you will have no problems."
+msgstr "Se deixar seu sistema de arquivos como FAT16, não haverá problemas."
+
+#: libparted/fs/fat/resize.c:492
+msgid ""
+"If you convert to FAT16, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual)."
+msgstr ""
+"Se você converter para FAT16, e o MS Windows está instalado nesta partição, "
+"você deverá reinstalar o gerenciador de boot do MS Windows. Se quiser fazer "
+"isso, consulte o manual do Parted (ou o manual de sua distribuição)."
+
+#: libparted/fs/fat/resize.c:500
+msgid ""
+"If you leave your file system as FAT32, then you will not introduce any new "
+"problems."
+msgstr ""
+"Se deixar seu sistema de arquivos como FAT32, você não criará mais nenhum "
+"problema novo."
+
+#: libparted/fs/fat/resize.c:504
+msgid ""
+"If you convert to FAT32, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual).  Also, "
+"converting to FAT32 will make the file system unreadable by MS DOS, MS "
+"Windows 95a, and MS Windows NT."
+msgstr ""
+"Se você converter para FAT32, e o MS Windows está instalado nesta partição, "
+"você deverá reinstalar o gerenciador de boot do MS Windows. Se quiser fazer "
+"isso, consulte o manual do Parted (ou o manual de sua distribuição). Também, "
+"convertendo para FAT32 fará com que o sistema de arquivos não seja mais "
+"reconhecido pelo MS DOS, Windows 95a, e MS Windows NT."
+
+#: libparted/fs/fat/resize.c:518
+#, c-format
+msgid "%s  %s  %s"
+msgstr "%s  %s  %s"
+
+#: libparted/fs/fat/resize.c:519
+msgid "Would you like to use FAT32?"
+msgstr "Você gostaria de usar FAT32?"
+
+#: libparted/fs/fat/resize.c:550 libparted/fs/fat/resize.c:566
+#, c-format
+msgid "%s  %s"
+msgstr "%s  %s"
+
+#: libparted/fs/fat/resize.c:551
+msgid ""
+"The file system can only be resized to this size by converting to FAT16."
+msgstr ""
+"O sistema de arquivos só pode ser redimensionado para este tamanho sendo "
+"convertido para FAT16."
+
+#: libparted/fs/fat/resize.c:567
+msgid ""
+"The file system can only be resized to this size by converting to FAT32."
+msgstr ""
+"O sistema de arquivos só pode ser redimensionado para este tamanho sendo "
+"convertido para FAT32."
+
+#: libparted/fs/fat/resize.c:580
+#, fuzzy
+msgid ""
+"GNU Parted cannot resize this partition to this size.  We're working on it!"
+msgstr ""
+"O GNU Parted não pode redimensionar esta partição a este tamanho. Estamos "
+"trabalhando nisto!"
+
+#: libparted/fs/fat/bootsector.c:49 libparted/fs/fat/bootsector.c:56
+msgid "File system has an invalid signature for a FAT file system."
+msgstr "Sistema de arquivos tem uma assinatura inválida para um FAT."
+
+#: libparted/fs/fat/bootsector.c:64
+msgid "File system has an invalid sector size for a FAT file system."
+msgstr "Sistema de arquivos tem um tamanho de setor inválido para um FAT."
+
+#: libparted/fs/fat/bootsector.c:71
+#, fuzzy
+msgid "File system has an invalid cluster size for a FAT file system."
+msgstr "Sistema de arquivos tem um tamanho de setor inválido para um FAT."
+
+#: libparted/fs/fat/bootsector.c:78
+#, fuzzy
+msgid ""
+"File system has an invalid number of reserved sectors for a FAT file system."
+msgstr ""
+"Sistema de arquivos tem um número de setores reservados inválido para um FAT."
+
+#: libparted/fs/fat/bootsector.c:85
+#, fuzzy
+msgid "File system has an invalid number of FATs."
+msgstr "Sistema de arquivos tem um número inválido de FATS."
+
+#: libparted/fs/fat/bootsector.c:139
+#, c-format
+msgid ""
+"This file system has a logical sector size of %d.  GNU Parted is known not "
+"to work properly with sector sizes other than 512 bytes."
+msgstr ""
+"Este sistema de arquivos tem um tamanho de setor lógico de %d. O GNU Parted "
+"é conhecido por não funcionar corretamente com setores diferentes de 512 "
+"bytes."
+
+#: libparted/fs/fat/bootsector.c:164
+#, c-format
+msgid ""
+"The file system's CHS geometry is (%d, %d, %d), which is invalid.  The "
+"partition table's CHS geometry is (%d, %d, %d).  If you select Ignore, the "
+"file system's CHS geometry will be left unchanged.  If you select Fix, the "
+"file system's CHS geometry will be set to match the partition table's CHS "
+"geometry."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:213
+msgid "FAT boot sector says logical sector size is 0.  This is weird. "
+msgstr "Setor de boot FAT diz que o tamanho lógico do setor é 0. Estranho. "
+
+#: libparted/fs/fat/bootsector.c:219
+msgid "FAT boot sector says there are no FAT tables.  This is weird. "
+msgstr "Setor de boot FAT diz que não há tabelas FAT. Estranho. "
+
+#: libparted/fs/fat/bootsector.c:225
+msgid "FAT boot sector says clusters are 0 sectors.  This is weird. "
+msgstr "Setor de boot FAT diz que os clusters têm 0 setores. Estranho. "
+
+#: libparted/fs/fat/bootsector.c:235
+#, fuzzy
+msgid "File system is FAT12, which is unsupported."
+msgstr "O sistema de arquivos é FAT12, que não é suportado."
+
+#: libparted/fs/fat/bootsector.c:411
+#, c-format
+msgid ""
+"The information sector has the wrong signature (%x).  Select cancel for now, "
+"and send in a bug report.  If you're desperate, it's probably safe to ignore."
+msgstr ""
+"O setor de informações tem uma assinatura inválida (%x). Selecione cancelar "
+"agora, e mande um relatório de bug. Se você está desesperado, é provável que "
+"seja seguro ignorar."
+
+#: libparted/fs/fat/count.c:152
+#, c-format
+msgid "Bad directory entry for %s: first cluster is the end of file marker."
+msgstr ""
+"Entrada de diretório inválida para %s: o primeiro cluster é o fim do "
+"marcador de arquivo."
+
+#: libparted/fs/fat/count.c:165
+#, c-format
+msgid ""
+"Bad FAT: unterminated chain for %s.  You should run dosfsck or scandisk."
+msgstr ""
+"FAT ruim: cadeia não terminada para %s. Você deveria rodar o dosfsck ou o "
+"scandisk."
+
+#: libparted/fs/fat/count.c:174
+#, fuzzy, c-format
+msgid ""
+"Bad FAT: cluster %d outside file system in chain for %s.  You should run "
+"dosfsck or scandisk."
+msgstr ""
+"FAT ruim: cluster %d fora do sistema de arquivos na cadeia para %s. Você "
+"deveria rodar o dosfsck ou o scandisk."
+
+#: libparted/fs/fat/count.c:184
+#, c-format
+msgid ""
+"Bad FAT: cluster %d is cross-linked for %s.  You should run dosfsck or "
+"scandisk."
+msgstr ""
+"FAT ruim: o cluster %d tem uma referência cruzada para %s. Você deveria "
+"rodar o dosfsck ou o scandisk."
+
+#: libparted/fs/fat/count.c:203
+#, fuzzy, c-format
+msgid "%s is %dk, but it has %d clusters (%dk)."
+msgstr "%s é %dk, mas tem %d clusters (%dk)."
+
+#: libparted/fs/fat/count.c:266
+#, c-format
+msgid ""
+"The file %s is marked as a system file.  This means moving it could cause "
+"some programs to stop working."
+msgstr ""
+
+#: libparted/fs/fat/table.c:137
+#, c-format
+msgid ""
+"FAT %d media %x doesn't match the boot sector's media %x.  You should "
+"probably run scandisk."
+msgstr ""
+"FAT %d mídia %x não bate com o setor de boot mídia %x. Você deveria executar "
+"o scandisk."
+
+#: libparted/fs/fat/table.c:269
+#, fuzzy, c-format
+msgid "fat_table_set: cluster %ld outside file system"
+msgstr "fat_table_set: cluster %ld fora do sistema de arquivos"
+
+#: libparted/fs/fat/table.c:301
+#, fuzzy, c-format
+msgid "fat_table_get: cluster %ld outside file system"
+msgstr "fat_table_get: cluster %ld fora do sistema de arquivos"
+
+#: libparted/fs/fat/table.c:343
+msgid "fat_table_alloc_cluster: no free clusters"
+msgstr "fat_table_alloc_cluster: não há clusters livres"
+
+#: libparted/fs/linux_swap/linux_swap.c:275
+#, fuzzy, c-format
+msgid "Unrecognised old style linux swap signature '%10s'."
+msgstr "Assinatura linux swap não reconhecida '%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:318
+#, fuzzy, c-format
+msgid "Unrecognised new style linux swap signature '%10s'."
+msgstr "Assinatura linux swap não reconhecida '%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:358
+#, fuzzy, c-format
+msgid "Unrecognised swsusp linux swap signature '%9s'."
+msgstr "Assinatura linux swap não reconhecida '%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:434
+msgid "Too many bad pages."
+msgstr "Muitas páginas inválidas."
+
+#: libparted/fs/hfs/advfs.c:121 libparted/fs/hfs/advfs_plus.c:122
+#: libparted/fs/hfs/reloc.c:414 libparted/fs/hfs/reloc.c:508
+#: libparted/fs/hfs/reloc_plus.c:539 libparted/fs/hfs/reloc_plus.c:658
+#: libparted/fs/hfs/reloc_plus.c:772
+msgid "The file system contains errors."
+msgstr ""
+
+#: libparted/fs/hfs/advfs_plus.c:287
+msgid "Bad blocks could not be read."
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:137
+#, c-format
+msgid ""
+"Trying to register an extent starting at block 0x%X, but another one already "
+"exists at this position.  You should check the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:214
+#, c-format
+msgid ""
+"Trying to move an extent from block Ox%X to block Ox%X, but another one "
+"already exists at this position.  This should not happen!"
+msgstr ""
+
+#: libparted/fs/hfs/file.c:143
+#, c-format
+msgid "Could not update the extent cache for HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:180
+#, c-format
+msgid "Trying to read HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:190 libparted/fs/hfs/file.c:220
+#, c-format
+msgid "Could not find sector %lli of HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:210
+#, c-format
+msgid "Trying to write HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:157
+#, c-format
+msgid "Could not update the extent cache for HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:202
+#, c-format
+msgid "Trying to read HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:213 libparted/fs/hfs/file_plus.c:256
+#, c-format
+msgid "Could not find sector %lli of HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:245
+#, c-format
+msgid "Trying to write HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:232
+msgid "Sorry, HFS cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:262 libparted/fs/hfs/hfs.c:641
+msgid "Data relocation has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:281
+msgid "Data relocation left some data in the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:320
+#, fuzzy
+msgid "writing HFS Master Directory Block"
+msgstr "Erro escrevendo no diretório raiz."
+
+#: libparted/fs/hfs/hfs.c:468
+msgid "No valid HFS[+X] signature has been found while opening."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:478
+#, c-format
+msgid "Version %d of HFS+ isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:489
+#, c-format
+msgid "Version %d of HFSX isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:672
+msgid "Data relocation left some data at the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:720
+#, fuzzy
+msgid "Error while writing the allocation file."
+msgstr "Erro escrevendo no diretório raiz."
+
+#: libparted/fs/hfs/hfs.c:735
+msgid "Error while writing the compatibility part of the allocation file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:750
+msgid "writing HFS+ Volume Header"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:850
+msgid "An error occurred while looking for the mandatory bad blocks file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:904
+msgid ""
+"It seems there is an error in the HFS wrapper: the bad blocks file doesn't "
+"contain the embedded HFS+ volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:940
+msgid "Sorry, HFS+ cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:975
+msgid "shrinking embedded HFS+ volume"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:991
+msgid "Resizing the HFS+ volume has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:998
+msgid "shrinking HFS wrapper"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:1007
+msgid "Updating the HFS wrapper has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:1109 libparted/fs/hfs/hfs.c:1194
+#, c-format
+msgid ""
+"This is not a real %s check.  This is going to extract special low level "
+"files for debugging purposes."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:155
+msgid "Bad block list header checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:168
+#, c-format
+msgid ""
+"Invalid size of a transaction block while replaying the journal (%i bytes)."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:260
+msgid ""
+"Journal stored outside of the volume are not supported.  Try to desactivate "
+"the journal and run Parted again."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:271
+#, fuzzy
+msgid "Journal offset or size is not multiple of the sector size."
+msgstr ""
+"O cluster inicia em delta = %d, que não é um múltiplo do tamanho de cluster %"
+"d."
+
+#: libparted/fs/hfs/journal.c:292
+msgid "Incorrect magic values in the journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:302
+msgid "Journal size mismatch between journal info block and journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:314
+#, fuzzy
+msgid "Some header fields are not multiple of the sector size."
+msgstr ""
+"O cluster inicia em delta = %d, que não é um múltiplo do tamanho de cluster %"
+"d."
+
+#: libparted/fs/hfs/journal.c:323
+msgid ""
+"The sector size stored in the journal is not 512 bytes.  Parted only "
+"supports 512 bytes length sectors."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:335
+msgid "Bad journal checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:353
+msgid ""
+"The journal is not empty.  Parted must replay the transactions before "
+"opening the file system.  This will modify the file system."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:381
+msgid ""
+"The volume header or the master directory block has changed while replaying "
+"the journal.  You should restart Parted."
+msgstr ""
+
+#: libparted/fs/hfs/probe.c:51
+#, c-format
+msgid ""
+"Parted can't use HFS file systems on disks with a sector size not equal to %"
+"d bytes."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:151 libparted/fs/hfs/reloc_plus.c:155
+msgid "An extent has not been relocated."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:251 libparted/fs/hfs/reloc_plus.c:307
+msgid ""
+"A reference to an extent comes from a place it should not.  You should check "
+"the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:381
+msgid "This HFS volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:475
+msgid "This HFS volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:517 libparted/fs/hfs/reloc_plus.c:668
+msgid ""
+"The extents overflow file should not contain its own extents!  You should "
+"check the file system."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:574 libparted/fs/hfs/reloc_plus.c:847
+#, fuzzy
+msgid "Could not cache the file system in memory."
+msgstr "Não foi possível detectar o sistema de arquivos."
+
+#: libparted/fs/hfs/reloc.c:635 libparted/fs/hfs/reloc_plus.c:908
+msgid "Bad blocks list could not be loaded."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:649 libparted/fs/hfs/reloc_plus.c:924
+msgid "An error occurred during extent relocation."
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:495
+msgid "This HFS+ volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:619
+msgid "This HFS+ volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: parted/parted.c:94
+msgid "displays this help message"
+msgstr "mostra esta mensagem de ajuda"
+
+#: parted/parted.c:95
+msgid "lists partition layout on all block devices"
+msgstr ""
+
+#: parted/parted.c:96
+msgid "displays machine parseable output"
+msgstr ""
+
+#: parted/parted.c:97
+msgid "never prompts for user intervention"
+msgstr "nunca pede intervenção do usuário"
+
+#: parted/parted.c:98
+msgid "displays the version"
+msgstr "mostra a versão"
+
+#: parted/parted.c:111
+#, fuzzy
+msgid ""
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"
+msgstr ""
+"MINOR é o número da partição usado pelo linux. Em rótulos de disco msdos, as "
+"partições primárias são de 1-4, e partições lógicas de 5 adiante.\n"
+
+#: parted/parted.c:114
+msgid "LABEL-TYPE is one of: "
+msgstr "TIPO_ROTULO é um de:"
+
+#: parted/parted.c:115
+msgid "FLAG is one of: "
+msgstr "FLAG é um de: "
+
+#: parted/parted.c:116
+#, fuzzy
+msgid "UNIT is one of: "
+msgstr "FLAG é um de: "
+
+#: parted/parted.c:117
+msgid "PART-TYPE is one of: primary, logical, extended\n"
+msgstr "TIPO-PART é um de: primary, logical, extended\n"
+
+#: parted/parted.c:119
+msgid "FS-TYPE is one of: "
+msgstr "TIPO-FS é um de: "
+
+#: parted/parted.c:120
+msgid ""
+"START and END are disk locations, such as 4GB or 10%.  Negative values count "
+"from the end of the disk.  For example, -1s specifies exactly the last "
+"sector.\n"
+msgstr ""
+
+#: parted/parted.c:123
+msgid "STATE is one of: on, off\n"
+msgstr "ESTADO é um de: on, off\n"
+
+#: parted/parted.c:124
+msgid "DEVICE is usually /dev/hda or /dev/sda\n"
+msgstr "DISPOSITIVO é usualmente /dev/hda ou /dev/sda\n"
+
+#: parted/parted.c:125
+msgid "NAME is any word you want\n"
+msgstr "NAME é qualquer palavra que desejar\n"
+
+#: parted/parted.c:126
+msgid "The partition must have one of the following FS-TYPEs: "
+msgstr ""
+
+#: parted/parted.c:130
+msgid ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+msgstr ""
+
+#: parted/parted.c:176
+#, c-format
+msgid "%0.f%%\t(time left %.2d:%.2d)"
+msgstr ""
+
+#: parted/parted.c:195
+#, c-format
+msgid ""
+"Partition %s is being used. You must unmount it before you modify it with "
+"Parted."
+msgstr ""
+
+#: parted/parted.c:211
+#, c-format
+msgid "Partition(s) on %s are being used."
+msgstr "Partição(ões) em %s está(ão) sendo utilizada(s)."
+
+#: parted/parted.c:223
+msgid ""
+"The existing file system will be destroyed and all data on the partition "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:235
+#, c-format
+msgid ""
+"The existing disk label on %s will be destroyed and all data on this disk "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:458 parted/parted.c:652 parted/parted.c:1044
+#: parted/parted.c:1128 parted/parted.c:1771 parted/parted.c:1852
+#: parted/parted.c:1900
+#, fuzzy
+msgid "Partition number?"
+msgstr "A partição está sendo utilizada."
+
+#: parted/parted.c:500
+msgid "Source device?"
+msgstr ""
+
+#: parted/parted.c:504
+#, fuzzy
+msgid "Source partition number?"
+msgstr "A partição origem não existe."
+
+#: parted/parted.c:509
+#, fuzzy
+msgid "Can't copy an extended partition."
+msgstr "Não posso copiar partições extendidas."
+
+#: parted/parted.c:515
+#, fuzzy
+msgid "Destination partition number?"
+msgstr "A partição destino está sendo utilizada."
+
+#: parted/parted.c:615
+#, fuzzy
+msgid "New disk label type?"
+msgstr "Tipo de rótulo de disco: %s\n"
+
+#: parted/parted.c:656
+#, fuzzy
+msgid "File system?"
+msgstr "Sistema de arquivos  "
+
+#: parted/parted.c:707 parted/parted.c:878
+#, fuzzy
+msgid "Partition type?"
+msgstr "A partição não existe."
+
+#: parted/parted.c:714 parted/parted.c:885 parted/parted.c:1131
+#, fuzzy
+msgid "Partition name?"
+msgstr "A partição não existe."
+
+#: parted/parted.c:722 parted/parted.c:895
+#, fuzzy
+msgid "File system type?"
+msgstr "Sistema de arquivos  "
+
+#: parted/parted.c:729 parted/parted.c:897 parted/parted.c:1059
+#: parted/parted.c:1725 parted/parted.c:1780
+msgid "Start?"
+msgstr ""
+
+#: parted/parted.c:731 parted/parted.c:900 parted/parted.c:1062
+#: parted/parted.c:1727 parted/parted.c:1782
+msgid "End?"
+msgstr ""
+
+#: parted/parted.c:769 parted/parted.c:938
+#, c-format
+msgid ""
+"You requested a partition from %s to %s.\n"
+"The closest location we can manage is %s to %s.  Is this still acceptable to "
+"you?"
+msgstr ""
+
+#: parted/parted.c:890
+msgid "An extended partition cannot hold a file system.  Did you want mkpart?"
+msgstr ""
+
+#: parted/parted.c:1050
+#, fuzzy
+msgid "Can't move an extended partition."
+msgstr "Não posso mover partições extendidas."
+
+#: parted/parted.c:1079
+msgid "Can't move a partition onto itself.  Try using resize, perhaps?"
+msgstr ""
+"Não posso mover a partição sobre ela mesma. Talvez queira redimensionar?"
+
+#: parted/parted.c:1227
+#, c-format
+msgid "Minor: %d\n"
+msgstr ""
+
+#: parted/parted.c:1228
+#, fuzzy, c-format
+msgid "Flags: %s\n"
+msgstr "Sinalizador"
+
+#: parted/parted.c:1229
+#, fuzzy, c-format
+msgid "File System: %s\n"
+msgstr "Sistema de arquivos  "
+
+#: parted/parted.c:1230
+msgid "Size:         "
+msgstr ""
+
+#: parted/parted.c:1235
+msgid "Minimum size: "
+msgstr ""
+
+#: parted/parted.c:1238
+msgid "Maximum size: "
+msgstr ""
+
+#: parted/parted.c:1362
+#, c-format
+msgid "Model: %s (%s)\n"
+msgstr ""
+
+#: parted/parted.c:1364
+#, fuzzy, c-format
+msgid "Disk %s: %s\n"
+msgstr "%s  %s  %s"
+
+#: parted/parted.c:1365
+#, c-format
+msgid "Sector size (logical/physical): %lldB/%lldB\n"
+msgstr ""
+
+#: parted/parted.c:1383
+#, c-format
+msgid "BIOS cylinder,head,sector geometry: %d,%d,%d.  Each cylinder is %s.\n"
+msgstr ""
+
+#: parted/parted.c:1392
+#, fuzzy, c-format
+msgid "Partition Table: %s\n"
+msgstr "Tabela de partições inválida em %s"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Number"
+msgstr ""
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Start"
+msgstr ""
+
+#: parted/parted.c:1407 parted/parted.c:1410
+msgid "End"
+msgstr ""
+
+#: parted/parted.c:1410
+#, fuzzy
+msgid "Size"
+msgstr "resize"
+
+#: parted/parted.c:1414
+msgid "Type"
+msgstr ""
+
+#: parted/parted.c:1416
+#, fuzzy
+msgid "File system"
+msgstr "Sistema de arquivos  "
+
+#: parted/parted.c:1419
+#, fuzzy
+msgid "Name"
+msgstr "name"
+
+#: parted/parted.c:1421
+msgid "Flags"
+msgstr "Sinalizador"
+
+#: parted/parted.c:1477
+msgid "Free Space"
+msgstr ""
+
+#: parted/parted.c:1624
+#, c-format
+msgid ""
+"A %s %s partition was found at %s -> %s.  Do you want to add it to the "
+"partition table?"
+msgstr ""
+
+#: parted/parted.c:1663
+msgid "searching for file systems"
+msgstr ""
+
+#: parted/parted.c:1877
+#, fuzzy
+msgid "New device?"
+msgstr "Nenhum dispositivo encontrado"
+
+#: parted/parted.c:1902
+msgid "Flag to Invert?"
+msgstr ""
+
+#: parted/parted.c:1907
+msgid "New state?"
+msgstr ""
+
+#: parted/parted.c:1944
+msgid "Unit?"
+msgstr ""
+
+#: parted/parted.c:2093
+msgid "check"
+msgstr "check"
+
+#: parted/parted.c:2096
+#, fuzzy
+msgid ""
+"check NUMBER                             do a simple check on the file system"
+msgstr ""
+"check MINOR                   faz um teste simples no sistema de arquivos"
+
+#: parted/parted.c:2102
+msgid "cp"
+msgstr "cp"
+
+#: parted/parted.c:2105
+#, fuzzy
+msgid ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+"partition"
+msgstr ""
+"cp [FROM-DEVICE] FROM-MINOR TO-MINOR      copia o sistema de arquivos para "
+"outra partição"
+
+#: parted/parted.c:2111
+msgid "help"
+msgstr "help"
+
+#: parted/parted.c:2114
+#, fuzzy
+msgid ""
+"help [COMMAND]                           print general help, or help on "
+"COMMAND"
+msgstr "help [COMANDO]                mostra ajuda geral, ou ajuda a COMANDO"
+
+#: parted/parted.c:2120
+msgid "mklabel"
+msgstr "mklabel"
+
+#: parted/parted.c:2120
+#, fuzzy
+msgid "mktable"
+msgstr "mklabel"
+
+#: parted/parted.c:2123
+#, fuzzy
+msgid ""
+"mklabel,mktable LABEL-TYPE               create a new disklabel (partition "
+"table)"
+msgstr ""
+"mklabel TIPO-ROTULO           cria um novo rótulo (na tabela de partição)"
+
+#: parted/parted.c:2129
+msgid "mkfs"
+msgstr "mkfs"
+
+#: parted/parted.c:2132
+#, fuzzy
+msgid ""
+"mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on "
+"partititon NUMBER"
+msgstr ""
+"mkfs MINOR TIPO-FS            cria um sistema TIPO-FS na partição MINOR"
+
+#: parted/parted.c:2138
+msgid "mkpart"
+msgstr "mkpart"
+
+#: parted/parted.c:2141
+#, fuzzy
+msgid "mkpart PART-TYPE [FS-TYPE] START END     make a partition"
+msgstr "mkpart TIPO-PART [FS-TYPE] INICIO FIM     cria uma partição"
+
+#: parted/parted.c:2147
+#, fuzzy
+msgid ""
+"'mkpart' makes a partition without creating a new file system on the "
+"partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"
+msgstr ""
+"mkpart cria uma partição sem criar um novo sistema de arquivos na partição. "
+"TIPO-FS deve ser especificado para partições de dados (ao oposto de uma "
+"partição extendida). Este comando é útil se você apagou acidentalmente uma "
+"partição.\n"
+
+#: parted/parted.c:2152
+msgid "mkpartfs"
+msgstr "mkpartfs"
+
+#: parted/parted.c:2155
+#, fuzzy
+msgid ""
+"mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system"
+msgstr "mkpartfs TIPO-PART TIPO-FS INICIO FIM     cria uma partição TIPO-FS"
+
+#: parted/parted.c:2161
+msgid "move"
+msgstr "move"
+
+#: parted/parted.c:2164
+#, fuzzy
+msgid "move NUMBER START END                    move partition NUMBER"
+msgstr "move MINOR INICIO [FIM]         move a partição MINOR"
+
+#: parted/parted.c:2169
+msgid "name"
+msgstr "name"
+
+#: parted/parted.c:2172
+#, fuzzy
+msgid "name NUMBER NAME                         name partition NUMBER as NAME"
+msgstr "name MINOR NAME               renomeia a partição MINOR para NAME"
+
+#: parted/parted.c:2177
+msgid "print"
+msgstr "print"
+
+#: parted/parted.c:2180
+msgid ""
+"print [devices|free|list,all|NUMBER]     display the partition table, "
+"available devices, free space, all found partitions, or a particular "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2185
+msgid ""
+"Without arguments, 'print' displays the entire partition table. However with "
+"the following arguments it performs various other actions.\n"
+msgstr ""
+
+#: parted/parted.c:2187
+msgid "  devices   : display all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2188
+msgid ""
+"  free      : display information about free unpartitioned space on the "
+"current block device\n"
+msgstr ""
+
+#: parted/parted.c:2190
+#, fuzzy
+msgid ""
+"  list, all : display the partition tables of all active block devices\n"
+msgstr "print                         mostra a tabela de partições"
+
+#: parted/parted.c:2191
+msgid ""
+"  NUMBER    : display more detailed information about this particular "
+"partition\n"
+msgstr ""
+
+#: parted/parted.c:2196
+msgid "quit"
+msgstr "quit"
+
+#: parted/parted.c:2199
+#, fuzzy
+msgid "quit                                     exit program"
+msgstr "quit                          sair do programa"
+
+#: parted/parted.c:2204
+#, fuzzy
+msgid "rescue"
+msgstr "resize"
+
+#: parted/parted.c:2207
+#, fuzzy
+msgid ""
+"rescue START END                         rescue a lost partition near START "
+"and END"
+msgstr "print                         mostra a tabela de partições"
+
+#: parted/parted.c:2213
+msgid "resize"
+msgstr "resize"
+
+#: parted/parted.c:2216
+#, fuzzy
+msgid ""
+"resize NUMBER START END                  resize partition NUMBER and its "
+"file system"
+msgstr "resize MINOR INICIO FIM       redimensiona a partição MINOR"
+
+#: parted/parted.c:2224
+msgid "rm"
+msgstr "rm"
+
+#: parted/parted.c:2227
+#, fuzzy
+msgid "rm NUMBER                                delete partition NUMBER"
+msgstr "rm MINOR                      apaga a partição MINOR"
+
+#: parted/parted.c:2232
+msgid "select"
+msgstr "select"
+
+#: parted/parted.c:2235
+#, fuzzy
+msgid "select DEVICE                            choose the device to edit"
+msgstr "select DEVICE                 seleciona o dispositivo a editar"
+
+#: parted/parted.c:2240
+msgid "set"
+msgstr "set"
+
+#: parted/parted.c:2243
+#, fuzzy
+msgid ""
+"set NUMBER FLAG STATE                    change the FLAG on partition NUMBER"
+msgstr "set MINOR FLAG ESTADO         muda o sinalizador na partição MINOR"
+
+#: parted/parted.c:2249
+msgid "toggle"
+msgstr ""
+
+#: parted/parted.c:2252
+msgid ""
+"toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+"partition NUMBER"
+msgstr ""
+
+#: parted/parted.c:2258
+#, fuzzy
+msgid "unit"
+msgstr "quit"
+
+#: parted/parted.c:2261
+#, fuzzy
+msgid "unit UNIT                                set the default unit to UNIT"
+msgstr "print                         mostra a tabela de partições"
+
+#: parted/parted.c:2266
+msgid "version"
+msgstr ""
+
+#: parted/parted.c:2269
+msgid ""
+"version                                  display the version number and "
+"copyright information of GNU Parted"
+msgstr ""
+
+#: parted/parted.c:2273
+msgid ""
+"'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"
+msgstr ""
+
+#: parted/parted.c:2335
+#, c-format
+msgid "Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"
+msgstr ""
+
+#: parted/parted.c:2379
+msgid "No device found"
+msgstr "Nenhum dispositivo encontrado"
+
+#: parted/parted.c:2412
+msgid "WARNING: You are not superuser.  Watch out for permissions."
+msgstr ""
+
+#: parted/parted.c:2450
+msgid "You may need to update /etc/fstab.\n"
+msgstr ""
+
+#: parted/ui.c:160
+msgid "Welcome to GNU Parted! Type 'help' to view a list of commands.\n"
+msgstr ""
+
+#: parted/ui.c:163
+#, fuzzy
+msgid ""
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run "
+"in\n"
+"interactive mode.\n"
+msgstr ""
+"Uso: parted [OPCOES]... [DISPOSITIVO [COMANDO [PARAMETROS]...]...]\n"
+"Aplica COMANDO com PARAMETROS em DISPOSITIVO. Se não for dado nenhum\n"
+"COMANDO, executa em modo interativo.\n"
+
+#: parted/ui.c:168
+#, c-format
+msgid ""
+"\n"
+"\n"
+"You found a bug in GNU Parted! Here's what you have to do:\n"
+"\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n"
+"\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Please check this version prior to bug reporting.\n"
+"\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"for further information.\n"
+"\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n"
+msgstr ""
+
+#: parted/ui.c:284
+msgid ""
+"\n"
+"Command History:\n"
+msgstr ""
+
+#: parted/ui.c:366
+msgid ""
+"\n"
+"Error: SEGV_MAPERR (Address not mapped to object)\n"
+msgstr ""
+
+#: parted/ui.c:372
+msgid ""
+"\n"
+"Error: SEGV_ACCERR (Invalid permissions for mapped object)\n"
+msgstr ""
+
+#: parted/ui.c:377
+msgid ""
+"\n"
+"Error: A general SIGSEGV signal was encountered.\n"
+msgstr ""
+
+#: parted/ui.c:410
+msgid ""
+"\n"
+"Error: FPE_INTDIV (Integer: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:415
+msgid ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+msgstr ""
+
+#: parted/ui.c:420
+msgid ""
+"\n"
+"Error: FPE_FLTDIV (Float: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:425
+msgid ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+msgstr ""
+
+#: parted/ui.c:430
+msgid ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+msgstr ""
+
+#: parted/ui.c:435
+msgid ""
+"\n"
+"Error: FPE_FLTRES (Float: inexact result)"
+msgstr ""
+
+#: parted/ui.c:440
+msgid ""
+"\n"
+"Error: FPE_FLTINV (Float: invalid operation)"
+msgstr ""
+
+#: parted/ui.c:445
+msgid ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript out of range)"
+msgstr ""
+
+#: parted/ui.c:450
+msgid ""
+"\n"
+"Error: A general SIGFPE signal was encountered."
+msgstr ""
+
+#: parted/ui.c:483
+msgid ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+msgstr ""
+
+#: parted/ui.c:488
+msgid ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+msgstr ""
+
+#: parted/ui.c:493
+msgid ""
+"\n"
+"Error: ILL_ILLADR (Illegal addressing mode)"
+msgstr ""
+
+#: parted/ui.c:498
+msgid ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+msgstr ""
+
+#: parted/ui.c:503
+msgid ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+msgstr ""
+
+#: parted/ui.c:508
+msgid ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+msgstr ""
+
+#: parted/ui.c:513
+msgid ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+msgstr ""
+
+#: parted/ui.c:518
+msgid ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+msgstr ""
+
+#: parted/ui.c:523
+msgid ""
+"\n"
+"Error: A general SIGILL signal was encountered."
+msgstr ""
+
+#: parted/ui.c:1024
+#, fuzzy
+msgid "Expecting a partition number."
+msgstr "A partição destino está sendo utilizada."
+
+#: parted/ui.c:1033
+msgid "Partition doesn't exist."
+msgstr "A partição não existe."
+
+#: parted/ui.c:1053
+#, fuzzy
+msgid "Expecting a file system type."
+msgstr "Tipo de sistema de arquivos desconhecido."
+
+#: parted/ui.c:1060
+#, fuzzy, c-format
+msgid "Unknown file system type \"%s\"."
+msgstr "Tipo de sistema de arquivos desconhecido."
+
+#: parted/ui.c:1080
+msgid "Expecting a disk label type."
+msgstr ""
+
+#: parted/ui.c:1178
+#, fuzzy
+msgid "Can't create any more partitions."
+msgstr "Não posso adicionar outra partição."
+
+#: parted/ui.c:1188
+#, fuzzy
+msgid "Expecting a partition type."
+msgstr "A partição destino não existe."
+
+#: parted/ui.c:1315
+msgid "on"
+msgstr "on"
+
+#: parted/ui.c:1316
+msgid "off"
+msgstr ""
+
+#: parted/ui.c:1431
+msgid "OPTIONs:"
+msgstr "OPÇÕESs:"
+
+#: parted/ui.c:1436
+msgid "COMMANDs:"
+msgstr "COMANDOs:"
+
+#: parted/ui.c:1445
+#, fuzzy, c-format
+msgid "Using %s\n"
+msgstr ""
+"\n"
+"Usando %s\n"
+
+#: parted/ui.c:1519
+msgid "This command does not make sense in non-interactive mode.\n"
+msgstr ""
+
+#~ msgid "where necessary, prompts for user intervention"
+#~ msgstr "quando necessário, pede intervenção do usuário"
+
+#~ msgid ""
+#~ "The sector size on %s is %d bytes.  Parted is known not to work properly "
+#~ "with drives with sector sizes other than 512 bytes"
+#~ msgstr ""
+#~ "O tamanho do setor em %s é %d bytes. O Parted é conhecido por não "
+#~ "funcionar perfeitamente com discos com setores diferentes de 512 bytes"
+
+#~ msgid "Could not read geometry of %s - %s."
+#~ msgstr "Não foi possível ler a geometria de %s - %s"
+
+#~ msgid "Device %s has dodgey geometry."
+#~ msgstr "Dispositivo %s tem uma geometria estranha."
+
+#~ msgid "unknown"
+#~ msgstr "desconhecido"
+
+#~ msgid "Unknown SCSI"
+#~ msgstr "SCSI desconhecido"
+
+#~ msgid "Device %s is neither a SCSI nor IDE drive."
+#~ msgstr "O dispositivo %s não é um drive SCSI ou IDE."
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  However, the most likely reason is that Linux "
+#~ "detected the BIOS geometry for %s incorrectly.  GNU Parted suspects the "
+#~ "real geometry should be %d/%d/%d (not %d/%d/%d).  You should check with "
+#~ "your BIOS first, as this may not be correct.  You can inform Linux by "
+#~ "adding the parameter %s=%d,%d,%d to the command line.  See the LILO or "
+#~ "GRUB documentation for more information.  If you think Parted's suggested "
+#~ "geometry is correct, you may select Ignore to continue (and fix Linux "
+#~ "later).  Otherwise, select Cancel (and fix Linux and/or the BIOS now)."
+#~ msgstr ""
+#~ "A tabela de partições em %s é inconsistente. Há várias razões para isto "
+#~ "ocorrer. A mais certa seria o Linux detectar a geometria do BIOS para %s "
+#~ "incorretamente. O GNU Parted suspeita que a geometria real deveria ser %d/"
+#~ "%d/%d (e não %d/%d/%d). Você deve checar com seu BIOS primeiro, pois isto "
+#~ "pode não ser correto. Você pode informar o Linux adicionando o parâmetro %"
+#~ "s=%d,%d,%d na linha de comando. Veja a documentação do LILO ou GRUB para "
+#~ "maiores informações. Se você acha que a geometria sugeria pelo Parted é a "
+#~ "correta, pode selecionar Ignorar para continuar (e arrumar o Linux "
+#~ "depois). De outra maneira, selecione Cancelar (e arrume o Linux e/ou o "
+#~ "BIOS agora)."
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  Often, the reason is that Linux detected the "
+#~ "BIOS geometry incorrectly.  However, this does not appear to be the case "
+#~ "here.  It is safe to ignore,but ignoring may cause (fixable) problems "
+#~ "with some boot loaders, and may cause problems with FAT file systems.  "
+#~ "Using LBA is recommended."
+#~ msgstr ""
+#~ "A tabela de partições em %s está inconsistente. Há várias razões para "
+#~ "isto ocorrer. Muitas vezes, o Linux detecta a geometria do BIOS "
+#~ "incorretamente. Porém, isso não parece ser o caso aqui. É seguro ignorar, "
+#~ "mas isso pode causar problemas (solucionáveis) com alguns gerenciadores "
+#~ "de boot. É recomendável usar LBA."
+
+#~ msgid ""
+#~ "Unable to align partition properly.  This probably means that another "
+#~ "partitioning tool generated an incorrect partition table, because it "
+#~ "didn't have the correct BIOS geometry.  It is safe to ignore,but ignoring "
+#~ "may cause (fixable) problems with some boot loaders."
+#~ msgstr ""
+#~ "Impossível alinhar a partição propriamente. Isso provavelmente significa "
+#~ "que outra ferramenta de particionamento gerou uma tabela de partições "
+#~ "incorreta porque não tinha a geometria na BIOS correta. É seguro ignorar, "
+#~ "mas isto pode causar problemas (solucionáveis) com alguns gerenciadores "
+#~ "de boot."
+
+#~ msgid "GUID Partition Table Header Signature is wrong: "
+#~ msgstr "A Assinatura do Cabeçalho da Tabela de Partições GUID está errada: "
+
+#~ msgid " should be "
+#~ msgstr " deveria ser "
+
+#~ msgid "GPT Header CRC check failed, %x should be %x."
+#~ msgstr "Checagem de CRC no cabeçalho GPT falhou, %x deveria ser %x."
+
+#~ msgid "GPT Partition Entry Array CRC check failed, %x should be %x."
+#~ msgstr ""
+#~ "Checagem de CRC na Matriz de Entradas de Partição GPT falhou, %x deveria "
+#~ "ser %x."
+
+#~ msgid ""
+#~ "This disk contains a valid Primary and Alternate GUID Partition Table but "
+#~ "the Protective MBR is invalid.  This generally means that the disk had "
+#~ "GPT partitions on it, but then a legacy partition editing tool was used "
+#~ "to change the partition table stored in the MBR.\n"
+#~ "Which data is valid,  GPT or MBR?\n"
+#~ "Yes will assume that the GPT information is correct, and rewrite the "
+#~ "PMBR.\n"
+#~ "No will assume that the MBR is correct, and erase the GPT information.\n"
+#~ "Ignore will assume that the MBR is correct, but not change the disk."
+#~ msgstr ""
+#~ "Esse disco contém as Tabelas de Partições GUID primária e alternativa "
+#~ "corretas, mas a Protective MBR é inválida. Isso geralmente significa que "
+#~ "o disco tinha partições GPT, mas um programa padrão de particionamento "
+#~ "foi usado para mudar a tabela de partições gravada na MBR.\n"
+#~ "Quais dados são válidos, GPT ou MBR?\n"
+#~ "Sim: assume que a informação na GPT é a correta, e reescreve a PMBR.\n"
+#~ "Não: assume que a MBR é a correta, e apaga as informações na GPT.\n"
+#~ "Ignorar: assume que a MBR é correta, mas não altera o disco."
+
+#~ msgid ""
+#~ "This disk contains a valid Alternate GUID Partition Table but the Primary "
+#~ "GPT and Protective MBR are invalid.  This generally means that the disk "
+#~ "had GPT partitions on it, but then a legacy partition editing tool was "
+#~ "used to change the partition table stored in the MBR.\n"
+#~ "Which data is valid,  GPT or MBR?\n"
+#~ "Yes will assume that the GPT information is correct, and will rewrite the "
+#~ "PMBR and Primary GPT.\n"
+#~ "No will assume that the MBR is correct, and erase the GPT information.\n"
+#~ "Ignore will assume that the MBR is correct, but not change the disk."
+#~ msgstr ""
+#~ "Esse disco contém uma Tabela de Partição GUID alternativa correta, mas a "
+#~ "GPT primária e a Protective MBR são inválidas. Isso geralmente significa "
+#~ "que o disco tinha partições GPT, mas um programa padrão de "
+#~ "particionamento foi usado para mudar a tabela de partições gravada na "
+#~ "MBR.\n"
+#~ "Quais dados são válidos, GPT ou MBR?\n"
+#~ "Sim: assume que a informação na GPT é a correta, e reescreve a PMBR e a "
+#~ "GPT primária.\n"
+#~ "Não: assume que a MBR é a correta, e apaga as informações na GPT.\n"
+#~ "Ignorar: assume que a MBR é correta, mas não altera o disco."
+
+#~ msgid ""
+#~ "This disk contains a valid Primary GUID Partition Table but the Alternate "
+#~ "GPT and Protective MBR are invalid.  This generally means that the disk "
+#~ "had GPT partitions on it, but then a legacy partition editing tool was "
+#~ "used to change the partition table stored in the MBR.\n"
+#~ "Which data is valid,  GPT or MBR?\n"
+#~ "Yes will assume that the GPT information is correct, and will rewrite the "
+#~ "PMBR and Alternate GPT.\n"
+#~ "No will assume that the MBR is correct, and erase the GPT information.\n"
+#~ "Ignore will assume that the MBR is correct, but not change the disk.\n"
+#~ msgstr ""
+#~ "Esse disco contém uma Tabela de Partição GUID primária correta, mas a GPT "
+#~ "alternativa e a Protective MBR são inválidas. Isso geralmente significa "
+#~ "que o disco tinha partições GPT, mas um programa padrão de "
+#~ "particionamento foi usado para mudar a tabela de partições gravada na "
+#~ "MBR.\n"
+#~ "Quais dados são válidos, GPT ou MBR?\n"
+#~ "Sim: assume que a informação na GPT é a correta, e reescreve a PMBR e a "
+#~ "GPT alternativa.\n"
+#~ "Não: assume que a MBR é a correta, e apaga as informações na GPT.\n"
+#~ "Ignorar: assume que a MBR é correta, mas não altera o disco.\n"
+
+#~ msgid "The new partition overlaps with another partition."
+#~ msgstr "A nova partição sobrepõe alguma outra partição"
+
+#~ msgid "Can't set non-Linux partitions as a root device."
+#~ msgstr "Não posso configurar partições não Linux como uma partição root."
+
+#~ msgid "Can't set non-Linux partitions as a swap device."
+#~ msgstr "Não posso configurar partições não Linux como uma partição swap."
+
+#~ msgid "No get_resize_constraint for %s!"
+#~ msgstr "Não há get_resize_constraint para %s!"
+
+#~ msgid "The %s file system code doesn't support %s disk labels."
+#~ msgstr "O código do sistema de arquivos %s não suporta rótulos de disco %s."
+
+#~ msgid "Creating new %s disklabels is not implemented yet."
+#~ msgstr "Criação de novos rótulos %s não está implementado ainda."
+
+#~ msgid "The code to write the partition table hasn't been written for %s yet"
+#~ msgstr ""
+#~ "O código para escrever a tabela de partições ainda não foi escrito para %"
+#~ "s."
+
+#~ msgid "Error reading %s (%s) to determine if partition is mounted."
+#~ msgstr "Erro lendo %s (%s) para determinar se a partição está montada."
+
+#~ msgid "Can't grow a partition onto used space."
+#~ msgstr "Não posso aumentar a partição acima de algum espaço utilizado."
+
+#~ msgid "Attempt to read sectors %ld-%ld outside of partition on %s"
+#~ msgstr "Tentativa de ler setores %ld-%ld fora da partição em %s"
+
+#~ msgid ""
+#~ "This ext2 filesystem has a rather strange layout!  Parted can't resize "
+#~ "this (yet)."
+#~ msgstr ""
+#~ "Este sistema de arquivos ext2 tem uma aparência muito estranha! O Parted "
+#~ "não pode redimensioná-lo (ainda)."
+
+#~ msgid "Insane!  %d clusters!"
+#~ msgstr "Insano! %d clusters!"
+
+#~ msgid ""
+#~ "The filesystem is going to be too big for FAT16, so FAT32 will be used.  "
+#~ "This is not compatible with MS-DOS, early versions of MS-Windows 95 and "
+#~ "Windows NT.  If you use these operating systems, then select cancel, and "
+#~ "create a smaller partition.  If you only use Linux, BSD, MS Windows 98 "
+#~ "and/or MS Windows 95 B, then select OK."
+#~ msgstr ""
+#~ "O sistema de arquivos será muito grande para FAT16, então será usado "
+#~ "FAT32. Isto não é compatível com o MS-DOS, versões antigas do MS-Windows "
+#~ "95 e Windows NT. Se você utiliza estes sistemas operacionais, selecione "
+#~ "cancelar, e crie uma partição menor. Se você utiliza somente Linux, BSD, "
+#~ "MS-Windows 98 e/ou MS-Windows 95 B, então selecione OK."
+
+#~ msgid "Weird: fat_calc_sizes() failed for FAT32!"
+#~ msgstr "Estranho: fat_calc_sizes() falhou para a FAT32!"
+
+#~ msgid ""
+#~ "Would you like to use FAT32 for this filesystem?  It is much more "
+#~ "efficient with your disk space, but is not compatible with early versions "
+#~ "of Windows 95 and Windows NT.  Only select yes if you only use Linux, "
+#~ "BSD, MS Windows 98 and/or MS Windows 95 B."
+#~ msgstr ""
+#~ "Você gostaria de usar a FAT32 para este sistema de arquivos? É muito mais "
+#~ "eficiente com o espaço em disco, mas não é compatível com versões antigas "
+#~ "do Windows 95 e Windows NT. Somente selecione sim se você só utilizar "
+#~ "Linux, BSD, MS-Windows 98 e/ou MS-Windows 95 B."
+
+#~ msgid ""
+#~ "File system doesn't have expected sizes for Windows to like it.  Number "
+#~ "of clusters is %d (%d expected); size of FATs is %d sectors (%d expected)."
+#~ msgstr ""
+#~ "O sistema de arquivos não tem o tamanho esperado para que o Windows "
+#~ "utilize. O tamanho do cluster é %dk (%dk esperado); tamanho da FAT é %d "
+#~ "setores (%d esperado)."
+
+#~ msgid "File system has an invalid signature for a FAT file systems."
+#~ msgstr "Sistema de arquivos tem uma assinatura inválida para um FAT."
+
+#~ msgid ""
+#~ "Partition size (%ld sectors) and filesystem size (%ld sectors) do not "
+#~ "match."
+#~ msgstr ""
+#~ "Tamanho de partição (%ld setores) e tamanho do sistema de arquivos (%ld "
+#~ "setores) não batem."
+
+#~ msgid ""
+#~ "The FATs aren't big enough to describe all clusters!  Each FAT is %d "
+#~ "sectors.  There are %d clusters, which would require each FAT to be %d "
+#~ "sectors.  This is REALLY weird.  You might want to write us an email: bug-"
+#~ "parted@gnu.org"
+#~ msgstr ""
+#~ "As FATs não são grandes o suficiente para descrever todos os clusters! "
+#~ "Cada FAT tem %d setores. Existem %d clusters, os quais requerem que cada "
+#~ "FAT tenha %d setores. Isto é REALMENTE estranho. Você pode querer nos "
+#~ "escrever um email: bug-parted@gnu.org"
+
+#~ msgid ""
+#~ "This swap partition is not compatible with Linux version 2.1.117 or "
+#~ "earlier.  Use a smaller partition (maximum size 128mb) if you want to use "
+#~ "old versions of Linux."
+#~ msgstr ""
+#~ "Esta partição swap não é compatível com o Linux versão 2.1.117 ou "
+#~ "anterior. Utilize uma partição menor (máximo de 128mb) se você quiser "
+#~ "utilizar versões antigas do Linux."
+
+#~ msgid "Linux-swap partitions can not be hidden on msdos disk labels."
+#~ msgstr ""
+#~ "Partições Linux-swap não podem ser escondidas em rótulos de disco msdos."
+
+#~ msgid "Linux-swap partitions can not be bootable on pc98 disk labels."
+#~ msgstr ""
+#~ "Partições Linux-swap não podem ser inicializáveis em rótulos de disco "
+#~ "pc98."
+
+#~ msgid "HFS partitions can't be hidden on msdos disk labels."
+#~ msgstr "Partições HFS não podem ser escondidas em rótulos de disco msdos."
+
+#~ msgid "JFS partitions can't be hidden on msdos disk labels."
+#~ msgstr "Partições JFS não podem ser escondidas em rótulos de disco msdos."
+
+#~ msgid "Reiserfs partitions can't be hidden on msdos disk labels."
+#~ msgstr ""
+#~ "Partições ReiserFS não podem ser escondidas em rótulos de disco msdos."
+
+#~ msgid "Reiserfs partitions must be bootable on pc98 disk labels."
+#~ msgstr ""
+#~ "Partições ReiserFS devem ser inicializáveis em rótulos de disco pc98."
+
+#~ msgid "XFS partitions can't be hidden on msdos disk labels."
+#~ msgstr "Partições XFS não podem ser escondidas em rótulos de disco msdos."
+
+#~ msgid "START and END are in megabytes\n"
+#~ msgstr "INICIO e FIM são em megabytes\n"
+
+#~ msgid ""
+#~ "You requested to create a partition at %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Você comandou a criação de uma partição em %.3f-%.3fMb. O mais perto que "
+#~ "o Parted pode chegar é %.3f-%.3fMb."
+
+#~ msgid ""
+#~ "You requested to move the partition to %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Você comandou a movimentação da partição para %.3f-%.3fMb. O mais perto "
+#~ "que o Parted pode chegar é %.3f-%.3fMb."
+
+#~ msgid "Disk geometry for %s: 0.000-%.3f megabytes\n"
+#~ msgstr "Geometria de disco para %s: 0.000-%.3f megabytes\n"
+
+#~ msgid "Minor    Start       End     "
+#~ msgstr "Minor    Início      Fim     "
+
+#~ msgid "Type      "
+#~ msgstr "Tipo      "
+
+#~ msgid "Name                  "
+#~ msgstr "Nome                  "
+
+#~ msgid ""
+#~ "You requested to resize the partition to %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Você comandou o redimensionamento da partição para %.3f-%.3fMb. O mais "
+#~ "perto que o Parted pode chegar é %.3f-%.3fMb."
+
+#~ msgid ""
+#~ "You found a bug in GNU Parted.  Please email a bug report to bug-"
+#~ "parted@gnu.org containing the version (%s), and the following message:\n"
+#~ msgstr ""
+#~ "Você encontrou um bug no GNU parted. Por favor envie um relatório para "
+#~ "bug-parted@gnu.org\n"
+#~ "contendo a versão (%s), e a mensagem abaixo:\n"
+
+#~ msgid ""
+#~ "  You have Windows FAT partition(s) that are not using LBA.  If your BIOS "
+#~ "supports LBA, then you should switch to LBA by setting the LBA flag on "
+#~ "all FAT partitions.  Otherwise, make sure the operating system and the "
+#~ "BIOS have the same geometry before resizing any FAT partitions."
+#~ msgstr ""
+#~ "  Você tem partições FAT Windows que não estão usando LBA. Se seu BIOS "
+#~ "suporta LBA, você deveria mudar para LBA ligando o sinalizador LBA em "
+#~ "todas as partições FAT. De outro modo, tenha certeza que o sistema "
+#~ "operacional e o BIOS têm a mesma geometria antes de redimensionar "
+#~ "quaisquer partições FAT."
+
+#~ msgid ""
+#~ "The operating system thinks the geometry on %s is %d/%d/%d.  Therefore, "
+#~ "cylinder 1024 ends at %.3fM.%s"
+#~ msgstr ""
+#~ "O sistema operacional acha que a geometria de %s é %d/%d/%d. Porém, o "
+#~ "cilindro 1024 termina em %.3fM.%s"
+
+#~ msgid "The operating system thinks the geometry on %s is %d/%d/%d.%s"
+#~ msgstr "O sistema operacional acha que a geometria de %s é %d/%d/%d.%s"
diff --git a/parted-1.8.7/po/quot.sed b/parted-1.8.7/po/quot.sed
new file mode 100644
index 0000000..0122c46
--- /dev/null
+++ b/parted-1.8.7/po/quot.sed
@@ -0,0 +1,6 @@
+s/"\([^"]*\)"/“\1”/g
+s/`\([^`']*\)'/‘\1’/g
+s/ '\([^`']*\)' / ‘\1’ /g
+s/ '\([^`']*\)'$/ ‘\1’/g
+s/^'\([^`']*\)' /‘\1’ /g
+s/“”/""/g
diff --git a/parted-1.8.7/po/remove-potcdate.sin b/parted-1.8.7/po/remove-potcdate.sin
new file mode 100644
index 0000000..2436c49
--- /dev/null
+++ b/parted-1.8.7/po/remove-potcdate.sin
@@ -0,0 +1,19 @@
+# Sed script that remove the POT-Creation-Date line in the header entry
+# from a POT file.
+#
+# The distinction between the first and the following occurrences of the
+# pattern is achieved by looking at the hold space.
+/^"POT-Creation-Date: .*"$/{
+x
+# Test if the hold space is empty.
+s/P/P/
+ta
+# Yes it was empty. First occurrence. Remove the line.
+g
+d
+bb
+:a
+# The hold space was nonempty. Following occurrences. Do nothing.
+x
+:b
+}
diff --git a/parted-1.8.7/po/ro.gmo b/parted-1.8.7/po/ro.gmo
new file mode 100644
index 0000000..80ee8df
--- /dev/null
+++ b/parted-1.8.7/po/ro.gmo
Binary files differ
diff --git a/parted-1.8.7/po/ro.po b/parted-1.8.7/po/ro.po
new file mode 100644
index 0000000..25169f0
--- /dev/null
+++ b/parted-1.8.7/po/ro.po
@@ -0,0 +1,3030 @@
+# Mesajele în limba românã pentru GNU Parted
+# Copyright (C) 2005 Free Software Foundation, Inc.
+# Laurentiu Buzdugan <lbuz@rolix.org>, 2005
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: parted 1.6.23\n"
+"Report-Msgid-Bugs-To: bug-parted@gnu.org\n"
+"POT-Creation-Date: 2007-05-09 17:02-0400\n"
+"PO-Revision-Date: 2005-08-08 12:00-05\n"
+"Last-Translator: Laurentiu Buzdugan <lbuz@rolix.org>\n"
+"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/closeout.c:74
+msgid "write error"
+msgstr ""
+
+#: lib/error.c:125
+#, fuzzy
+msgid "Unknown system error"
+msgstr "Tip de sistem de fiºiere necunoscut \"%s\"."
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK).  A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#.
+#. If you don't know what to put here, please see
+#. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr ""
+
+#: lib/regcomp.c:131
+msgid "Success"
+msgstr ""
+
+#: lib/regcomp.c:134
+msgid "No match"
+msgstr ""
+
+#: lib/regcomp.c:137
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regcomp.c:140
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regcomp.c:143
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regcomp.c:146
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regcomp.c:149
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regcomp.c:152
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regcomp.c:155
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regcomp.c:158
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regcomp.c:161
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regcomp.c:164
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regcomp.c:170
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regcomp.c:173
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regcomp.c:176
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regcomp.c:179
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regcomp.c:680
+msgid "No previous regular expression"
+msgstr ""
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr ""
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:66
+msgid "(C)"
+msgstr ""
+
+#: lib/version-etc.c:68
+msgid ""
+"\n"
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:84
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:88
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:92
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:98
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:104
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:110
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:132
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+
+#: lib/xalloc-die.c:35
+msgid "memory exhausted"
+msgstr ""
+
+#: libparted/arch/beos.c:237
+msgid "Disk Image"
+msgstr ""
+
+#: libparted/arch/beos.c:338 libparted/arch/gnu.c:261
+#: libparted/arch/linux.c:1272
+#, c-format
+msgid "Error opening %s: %s"
+msgstr "Eroare la deschiderea %s: %s"
+
+#: libparted/arch/beos.c:349 libparted/arch/gnu.c:271
+#: libparted/arch/linux.c:1283
+#, c-format
+msgid "Unable to open %s read-write (%s).  %s has been opened read-only."
+msgstr ""
+"Nu pot deschide %s citire-scriere (%s). %s a fost deschis numai-citire."
+
+#: libparted/arch/beos.c:411 libparted/arch/linux.c:1431
+#, c-format
+msgid "%s during seek for read on %s"
+msgstr "%s în timpul cãutãrii pentru citire pe %s"
+
+#: libparted/arch/beos.c:444 libparted/arch/gnu.c:449 libparted/arch/gnu.c:548
+#: libparted/arch/gnu.c:676 libparted/arch/linux.c:1391
+#: libparted/arch/linux.c:1469
+#, c-format
+msgid "%s during read on %s"
+msgstr "%s în timpul citirii pe %s"
+
+#: libparted/arch/beos.c:480 libparted/arch/gnu.c:509
+#: libparted/arch/linux.c:1546
+#, c-format
+msgid "Can't write to %s, because it is opened read-only."
+msgstr "Nu pot scrie pe %s, pentru cã este deschis numai-citire."
+
+#: libparted/arch/beos.c:496 libparted/arch/linux.c:1570
+#, c-format
+msgid "%s during seek for write on %s"
+msgstr "%s în timpul cãutãrii pentru scriere pe %s"
+
+#: libparted/arch/beos.c:533 libparted/arch/gnu.c:585 libparted/arch/gnu.c:630
+#: libparted/arch/gnu.c:707 libparted/arch/linux.c:1517
+#: libparted/arch/linux.c:1612 libparted/arch/linux.c:1684
+#, c-format
+msgid "%s during write on %s"
+msgstr "%s în timpul scrierii pe %s"
+
+#: debug/clearfat/clearfat.c:63 partprobe/partprobe.c:137
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:67
+#, c-format
+msgid ""
+"Usage: %s [OPTION]\n"
+"  or:  %s DEVICE MINOR\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:70
+msgid ""
+"Clear unused space on a FAT partition (a GNU Parted testing tool).\n"
+"\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:74
+msgid "      --help     display this help and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:75
+msgid "      --version  output version information and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:77 partprobe/partprobe.c:154
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:285
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:290
+#, c-format
+msgid "too many arguments"
+msgstr ""
+
+#: partprobe/partprobe.c:141
+#, c-format
+msgid "Usage: %s [OPTION] [DEVICE]...\n"
+msgstr ""
+
+#: partprobe/partprobe.c:142
+msgid ""
+"Inform the OS of partition table changes.\n"
+"\n"
+"  -d, --no-update  don't update the kernel\n"
+"  -s, --summary    print a summary of contents\n"
+"  -h, --help       display this help and exit\n"
+"  -v, --version    output version information and exit\n"
+msgstr ""
+
+#: partprobe/partprobe.c:150
+msgid ""
+"\n"
+"With no DEVICE, probe all partitions.\n"
+msgstr ""
+
+#: libparted/arch/gnu.c:94
+#, c-format
+msgid "Unable to open %s."
+msgstr "Nu pot deschide %s."
+
+#: libparted/arch/gnu.c:114
+msgid "Unable to probe store."
+msgstr "Nu pot proba `store'."
+
+#: libparted/arch/gnu.c:352
+msgid ""
+"The partition table cannot be re-read.  This means you need to reboot before "
+"mounting any modified partitions.  You also need to reinstall your boot "
+"loader before you reboot (which may require mounting modified partitions).  "
+"It is impossible do both things!  So you'll need to boot off a rescue disk, "
+"and reinstall your boot loader from the rescue disk.  Read section 4 of the "
+"Parted User documentation for more information."
+msgstr ""
+"Tabela de partiþii nu poate fi recititã.  Aceasta înseamnã cã trebuie sã "
+"reboot-aþi înainte  de a monta orice partiþii modificate.  Deasemenea, ar "
+"trebui sã reinstalaþi boot loader-ul înainte de a reboot-a (ceea ce ar putea "
+"sã necesite montarea partiþiilor modificate).  Este imposibil sã faceþi "
+"ambele lucruri!  Aºa cã trebuie sã boot-aþi de pe un disc de salvare ºi "
+"reinstalaþi boot loader-ul d-voastrã de pe discul de salvare.  Citiþi "
+"secþiunea 4 din documentaþia utilizatorului de Parted pentru informaþii "
+"suplimentare."
+
+#: libparted/arch/gnu.c:369
+#, c-format
+msgid ""
+"The partition table on %s cannot be re-read (%s).  This means the Hurd knows "
+"nothing about any modifications you made.  You should reboot your computer "
+"before doing anything with %s."
+msgstr ""
+"Tabela de partiþii pe %s nu poate fi re-cititã (%s).  Aceasta înseamnã cã "
+"Hurd nu ºtie nimic despre nici o modificare pe care aþi fãcut-o.  Ar trebui "
+"sã reboot-aþi computerul înainte de a face ceva cu %s."
+
+#: libparted/arch/gnu.c:380 parted/parted.c:2443
+msgid ""
+"You should reinstall your boot loader before rebooting.  Read section 4 of "
+"the Parted User documentation for more information."
+msgstr ""
+"Ar trebui sã reinstalaþi boot loader-ul d-voastrã înainte de reboot-are.  "
+"Citiþi secþiunea 4 din documentaþia utilizatorului Parted pentru informaþii "
+"suplimentare."
+
+#: libparted/arch/gnu.c:772
+#, c-format
+msgid "%s trying to sync %s to disk"
+msgstr "%s încearcã sã sincronizeze %s pe disc"
+
+#: libparted/arch/linux.c:408
+#, c-format
+msgid "Could not stat device %s - %s."
+msgstr "Nu am putut afla date despre dispozitivul %s - %s."
+
+#: libparted/arch/linux.c:523
+#, c-format
+msgid ""
+"Could not determine sector size for %s: %s.\n"
+"Using the default sector size (%lld)."
+msgstr ""
+
+#: libparted/arch/linux.c:539
+#, c-format
+msgid ""
+"Device %s has a logical sector size of %lld.  Not all parts of GNU Parted "
+"support this at the moment, and the working code is HIGHLY EXPERIMENTAL.\n"
+msgstr ""
+
+#: libparted/arch/linux.c:579
+#, c-format
+msgid "Unable to determine the size of %s (%s)."
+msgstr "Nu pot determina dimensiunea lui %s (%s)."
+
+#: libparted/arch/linux.c:668
+#, c-format
+msgid "Could not get identity of device %s - %s"
+msgstr "Nu am putut identifica dispozitivul %s - %s"
+
+#: libparted/arch/linux.c:677
+msgid "Generic IDE"
+msgstr ""
+
+#: libparted/arch/linux.c:698
+#, c-format
+msgid ""
+"Device %s has multiple (%d) logical sectors per physical sector.\n"
+"GNU Parted supports this EXPERIMENTALLY for some special disk label/file "
+"system combinations, e.g. GPT and ext2/3.\n"
+"Please consult the web site for up-to-date information."
+msgstr ""
+
+#: libparted/arch/linux.c:873
+#, c-format
+msgid "Error initialising SCSI device %s - %s"
+msgstr "Eroare la iniþializarea dispozitivului SCSI %s - %s"
+
+#: libparted/arch/linux.c:928
+#, fuzzy, c-format
+msgid ""
+"The device %s has zero length, and can't possibly store a file system or "
+"partition table.  Perhaps you selected the wrong device?"
+msgstr ""
+"Dispozitivul %s are lungime-zero ºi nu poate fizic stoca un sistem de "
+"fiºiere sau o tabelã de partiþii. Aþi selectat din greºealã un alt "
+"dispozitiv?"
+
+#: libparted/arch/linux.c:1032
+#, fuzzy, c-format
+msgid ""
+"Unable to determine geometry of file/device %s.  You should not use Parted "
+"unless you REALLY know what you're doing!"
+msgstr ""
+"Nu pot determina geometria fiºierului/dispozitivului. N-ar trebui sã "
+"folosiþi Parted decât dacã ºtiþi cu ADEVÃRAT ce faceþi!"
+
+#: libparted/arch/linux.c:1110
+msgid "DAC960 RAID controller"
+msgstr "Controller RAID DAC960"
+
+#: libparted/arch/linux.c:1115
+msgid "Promise SX8 SATA Device"
+msgstr ""
+
+#: libparted/arch/linux.c:1120
+msgid "IBM S390 DASD drive"
+msgstr ""
+
+#: libparted/arch/linux.c:1125
+msgid "IBM iSeries Virtual DASD"
+msgstr ""
+
+#: libparted/arch/linux.c:1130
+msgid "Compaq Smart Array"
+msgstr "Compaq Smart Array"
+
+#: libparted/arch/linux.c:1135
+msgid "ATARAID Controller"
+msgstr "Controller ATARAID"
+
+#: libparted/arch/linux.c:1140
+msgid "I2O Controller"
+msgstr "Controller I2O"
+
+#: libparted/arch/linux.c:1145
+msgid "User-Mode Linux UBD"
+msgstr ""
+
+#: libparted/arch/linux.c:1156
+msgid "Linux device-mapper"
+msgstr ""
+
+#: libparted/arch/linux.c:1162
+msgid "Unknown"
+msgstr "Necunoscut"
+
+#: libparted/arch/linux.c:1169
+msgid "ped_device_new()  Unsupported device type"
+msgstr "ped_device_new() Tip de dispozitiv nesuportat"
+
+#: libparted/arch/linux.c:2083
+#, c-format
+msgid ""
+"Error informing the kernel about modifications to partition %s -- %s.  This "
+"means Linux won't know about any changes you made to %s until you reboot -- "
+"so you shouldn't mount it or use it in any way before rebooting."
+msgstr ""
+"Eroare la informarea kernel-ului despre modificãrile fãcute partiþiei %s -- %"
+"s.  Aceasta înseamnã cã Linux nu va ºti nimic despre schimbãrile pe care le-"
+"aþi fãcut lui %s pânã când nu reboot-aþi -- aºa cã n-ar trebui sã îl montaþi "
+"sau folosiþi în vreun fel înainte de a reboot-a."
+
+#: libparted/arch/linux.c:2262
+#, fuzzy, c-format
+msgid ""
+"parted was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made. "
+msgstr ""
+"Kernel-ul nu a putut re-citi tabela de partiþii pe %s (%s).  Aceasta "
+"înseamnã cã Linux nu va ºti nimic despre schimbãrile pe care le-aþi fãcut "
+"pânã când nu reboot-aþi.  Ar trebui sã reboot-aþi computerul înainte de a "
+"face ceva cu %s."
+
+#: libparted/arch/linux.c:2368
+#, c-format
+msgid ""
+"The kernel was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made until you "
+"reboot.  You should reboot your computer before doing anything with %s."
+msgstr ""
+"Kernel-ul nu a putut re-citi tabela de partiþii pe %s (%s).  Aceasta "
+"înseamnã cã Linux nu va ºti nimic despre schimbãrile pe care le-aþi fãcut "
+"pânã când nu reboot-aþi.  Ar trebui sã reboot-aþi computerul înainte de a "
+"face ceva cu %s."
+
+#: libparted/cs/geom.c:162
+msgid "Can't have the end before the start!"
+msgstr ""
+
+#: libparted/cs/geom.c:169
+msgid "Can't have a partition outside the disk!"
+msgstr ""
+
+#: libparted/cs/geom.c:366
+#, c-format
+msgid "Attempt to write sectors %ld-%ld outside of partition on %s."
+msgstr ""
+
+#: libparted/cs/geom.c:406 libparted/fs/linux_swap/linux_swap.c:475
+msgid "checking for bad blocks"
+msgstr ""
+
+#: libparted/debug.c:102
+#, c-format
+msgid "Backtrace has %d calls on stack:\n"
+msgstr ""
+
+#: libparted/debug.c:114
+#, c-format
+msgid "Assertion (%s) at %s:%d in function %s() failed."
+msgstr ""
+
+#: libparted/disk.c:203
+#, c-format
+msgid "Unable to open %s - unrecognised disk label."
+msgstr "Nu pot deschide %s - etichetã de disc nerecunoscutã."
+
+#: libparted/disk.c:471
+#, c-format
+msgid ""
+"This libparted doesn't have write support for %s.  Perhaps it was compiled "
+"read-only."
+msgstr ""
+"Aceast libparted nu are suport pentru %s. Probabil cã a fost compilat numai-"
+"citire."
+
+#: libparted/disk.c:598
+#, c-format
+msgid "Partition %d is %s, but the file system is %s."
+msgstr "Partiþia %d este %s, dar sistemul de fiºiere este %s."
+
+#: libparted/disk.c:1075
+#, c-format
+msgid "%s disk labels do not support extended partitions."
+msgstr "Etichetele de disc %s nu suportã partiþii extinse."
+
+#: libparted/disk.c:1634
+#, c-format
+msgid "%s disk labels don't support logical or extended partitions."
+msgstr "Etichetele de disc %s nu suportã partiþii logice sau extinse."
+
+#: libparted/disk.c:1647
+msgid "Too many primary partitions."
+msgstr "Prea multe partiþii primare."
+
+#: libparted/disk.c:1656
+#, c-format
+msgid ""
+"Can't add a logical partition to %s, because there is no extended partition."
+msgstr ""
+"Nu pot adãuga o partiþie logicã lui %s pentru cã aceasta nu este o partiþie "
+"extinsã."
+
+#: libparted/disk.c:1680
+#, c-format
+msgid "Can't have more than one extended partition on %s."
+msgstr "Nu puteþi avea mai mult de o partiþie extinsã pe %s."
+
+#: libparted/disk.c:1690
+msgid "Can't have logical partitions outside of the extended partition."
+msgstr "Nu puteþi avea partiþii logice în afara partiþiei extinse."
+
+#: libparted/disk.c:1715
+#, c-format
+msgid "Can't have a logical partition outside of the extended partition on %s."
+msgstr "Nu puteþi avea o partiþie logicã în afara partiþiei extinse pe %s."
+
+#: libparted/disk.c:1725 libparted/disk.c:1779 libparted/disk.c:1945
+msgid "Can't have overlapping partitions."
+msgstr "Nu puteþi avea partiþii care se suprapun."
+
+#: libparted/disk.c:1733
+msgid "Can't have a primary partition inside an extended partition."
+msgstr "Nu puteþi avea o partiþie primarã într-o partiþie extinsã."
+
+#: libparted/disk.c:2140
+msgid "metadata"
+msgstr "metadata"
+
+#: libparted/disk.c:2142
+msgid "free"
+msgstr "liber"
+
+#: libparted/disk.c:2144 parted/ui.c:1169 parted/ui.c:1197
+msgid "extended"
+msgstr "extinsã"
+
+#: libparted/disk.c:2146 parted/ui.c:1173 parted/ui.c:1201
+msgid "logical"
+msgstr "logicã"
+
+#: libparted/disk.c:2148 parted/ui.c:1165 parted/ui.c:1193
+msgid "primary"
+msgstr "primarã"
+
+#: libparted/disk.c:2164
+msgid "boot"
+msgstr "boot"
+
+#: libparted/disk.c:2166
+msgid "root"
+msgstr "root"
+
+#: libparted/disk.c:2168
+msgid "swap"
+msgstr "swap"
+
+#: libparted/disk.c:2170
+msgid "hidden"
+msgstr "ascunsã"
+
+#: libparted/disk.c:2172
+msgid "raid"
+msgstr "raid"
+
+#: libparted/disk.c:2174
+msgid "lvm"
+msgstr "lvm"
+
+#: libparted/disk.c:2176
+msgid "lba"
+msgstr "lba"
+
+#: libparted/disk.c:2178
+msgid "hp-service"
+msgstr "hp-service"
+
+#: libparted/disk.c:2180
+msgid "palo"
+msgstr ""
+
+#: libparted/disk.c:2182
+msgid "prep"
+msgstr ""
+
+#: libparted/disk.c:2184
+msgid "msftres"
+msgstr ""
+
+#: libparted/disk.c:2190
+#, c-format
+msgid "Unknown partition flag, %d."
+msgstr "Flag de partiþie necunoscut, %d."
+
+#: libparted/exception.c:78
+msgid "Information"
+msgstr "Informaþii"
+
+#: libparted/exception.c:79
+msgid "Warning"
+msgstr "Avertisment"
+
+#: libparted/exception.c:80
+msgid "Error"
+msgstr "Eroare"
+
+#: libparted/exception.c:81
+msgid "Fatal"
+msgstr "Fatalã"
+
+#: libparted/exception.c:82
+msgid "Bug"
+msgstr "Bug"
+
+#: libparted/exception.c:83
+msgid "No Implementation"
+msgstr ""
+
+#: libparted/exception.c:87
+msgid "Fix"
+msgstr ""
+
+#: libparted/exception.c:88
+msgid "Yes"
+msgstr ""
+
+#: libparted/exception.c:89
+msgid "No"
+msgstr ""
+
+#: libparted/exception.c:90
+msgid "OK"
+msgstr ""
+
+#: libparted/exception.c:91
+msgid "Retry"
+msgstr ""
+
+#: libparted/exception.c:92
+msgid "Ignore"
+msgstr ""
+
+#: libparted/exception.c:93
+msgid "Cancel"
+msgstr ""
+
+#: libparted/exception.c:133
+#, c-format
+msgid ""
+"A bug has been detected in GNU Parted.  Refer to the web site of parted "
+"http://www.gnu.org/software/parted/parted.html for more informations of what "
+"could be useful for bug submitting!  Please email a bug report to bug-"
+"parted@gnu.org containing at least the version (%s) and the following "
+"message:  "
+msgstr ""
+
+#: libparted/filesys.c:384
+msgid "Could not detect file system."
+msgstr ""
+
+#: libparted/filesys.c:395
+msgid "The file system is bigger than its volume!"
+msgstr ""
+
+#: libparted/filesys.c:403
+#, c-format
+msgid "Support for opening %s file systems is not implemented yet."
+msgstr ""
+
+#: libparted/filesys.c:445
+#, c-format
+msgid "Support for creating %s file systems is not implemented yet."
+msgstr ""
+
+#: libparted/filesys.c:505
+#, c-format
+msgid "Support for checking %s file systems is not implemented yet."
+msgstr ""
+
+#: libparted/filesys.c:571
+msgid "raw block copying"
+msgstr ""
+
+#: libparted/filesys.c:582
+msgid "growing file system"
+msgstr ""
+
+#: libparted/filesys.c:622
+msgid "Can't copy onto an overlapping partition."
+msgstr ""
+
+#: libparted/filesys.c:644
+#, c-format
+msgid ""
+"Direct support for copying file systems is not yet implemented for %s.  "
+"However, support for resizing is implemented.  Therefore, the file system "
+"can be copied if the new partition is at least as big as the old one.  So, "
+"either shrink the partition you are trying to copy, or copy to a bigger "
+"partition."
+msgstr ""
+
+#: libparted/filesys.c:658
+#, c-format
+msgid "Support for copying %s file systems is not implemented yet."
+msgstr ""
+
+#: libparted/filesys.c:696
+#, c-format
+msgid "Support for resizing %s file systems is not implemented yet."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:315
+msgid "creating"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:402
+msgid "The file system is in an invalid state.  Perhaps it is mounted?"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:410
+msgid "The file system is in old (unresizeable) format."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:416
+msgid "Invalid free blocks count.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:431
+msgid "checking"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:437
+msgid "Reiserfs tree seems to be corrupted.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:449
+msgid ""
+"The reiserfs file system passed a basic check.  For a more comprehensive "
+"check, run reiserfsck --check."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:474
+msgid "Sorry, can't move the start of reiserfs partitions yet."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:490
+msgid "Couldn't reopen device abstraction layer for read/write."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:508 libparted/fs/ext2/ext2_resize.c:552
+#: libparted/fs/hfs/hfs.c:250 libparted/fs/hfs/hfs.c:629
+msgid "shrinking"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:520
+#, fuzzy
+msgid "expanding"
+msgstr "Avertisment"
+
+#: libparted/fs/reiserfs/reiserfs.c:592
+msgid "Couldn't create reiserfs device abstraction handler."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:606
+#, c-format
+msgid "Device is too small for %lu blocks."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:615
+msgid "copying"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:682
+#, c-format
+msgid "Couldn't resolve symbol %s.  Error: %s."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:704
+msgid "GNU Parted found an invalid libreiserfs library."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:715
+#, c-format
+msgid ""
+"GNU Parted has detected libreiserfs interface version mismatch.  Found %d-%"
+"d, required %d. ReiserFS support will be disabled."
+msgstr ""
+
+#: libparted/labels/aix.c:137
+msgid "Support for reading AIX disk labels is is not implemented yet."
+msgstr ""
+
+#: libparted/labels/aix.c:148
+msgid "Support for writing AIX disk labels is is not implemented yet."
+msgstr ""
+
+#: libparted/labels/aix.c:161
+msgid ""
+"Support for adding partitions to AIX disk labels is not implemented yet."
+msgstr ""
+
+#: libparted/labels/aix.c:171
+msgid ""
+"Support for duplicating partitions in AIX disk labels is not implemented yet."
+msgstr ""
+
+#: libparted/labels/aix.c:189
+msgid ""
+"Support for setting system type of partitions in AIX disk labels is not "
+"implemented yet."
+msgstr ""
+
+#: libparted/labels/aix.c:199
+msgid "Support for setting flags in AIX disk labels is not implemented yet."
+msgstr ""
+
+#: libparted/labels/bsd.c:501 libparted/labels/dasd.c:755
+#: libparted/labels/dos.c:1974 libparted/labels/dvh.c:770
+#: libparted/labels/gpt.c:1448 libparted/labels/loop.c:248
+#: libparted/labels/mac.c:1408 libparted/labels/pc98.c:759
+#: libparted/labels/rdb.c:1041 libparted/labels/sun.c:705
+msgid "Unable to satisfy all constraints on the partition."
+msgstr "Nu pot satisface toate constrângerile pe partiþie."
+
+#: libparted/labels/bsd.c:526
+msgid "Unable to allocate a bsd disklabel slot."
+msgstr "Nu pot aloca loc pentru eticheta de disc bsd."
+
+#: libparted/labels/dasd.c:166
+#, fuzzy
+msgid "Unable to determine the block size of this dasd"
+msgstr "Nu pot determina dimensiunea lui %s (%s)."
+
+#: libparted/labels/dasd.c:781
+#, fuzzy
+msgid "Unable to allocate a dasd disklabel slot"
+msgstr "Nu pot aloca loc pentru eticheta de disc bsd."
+
+#: libparted/labels/dos.c:827
+#, c-format
+msgid "Invalid partition table on %s -- wrong signature %x."
+msgstr "Tabela de partiþii invalidã pe %s -- semnãturã greºitã %x."
+
+#: libparted/labels/dos.c:855
+#, c-format
+msgid "Invalid partition table - recursive partition on %s."
+msgstr "Tabela de partiþii invalidã - partiþie recursivã pe %s."
+
+#: libparted/labels/dos.c:1318
+msgid "Extended partitions cannot be hidden on msdos disk labels."
+msgstr ""
+
+#: libparted/labels/dos.c:1958
+msgid "Parted can't resize partitions managed by Windows Dynamic Disk."
+msgstr ""
+
+#: libparted/labels/dvh.c:190
+#, c-format
+msgid "%s has no extended partition (volume header partition)."
+msgstr ""
+
+#: libparted/labels/dvh.c:313
+msgid "Checksum is wrong, indicating the partition table is corrupt."
+msgstr ""
+
+#: libparted/labels/dvh.c:616
+msgid "Only primary partitions can be root partitions."
+msgstr ""
+
+#: libparted/labels/dvh.c:630
+msgid "Only primary partitions can be swap partitions."
+msgstr ""
+
+#: libparted/labels/dvh.c:644
+msgid "Only logical partitions can be a boot file."
+msgstr ""
+
+#: libparted/labels/dvh.c:721
+msgid "Only logical partitions (boot files) have a name."
+msgstr ""
+
+#: libparted/labels/dvh.c:812
+msgid "Too many primary partitions"
+msgstr ""
+
+#: libparted/labels/fdasd.c:103
+#, c-format
+msgid ""
+"%s open error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:107
+#, c-format
+msgid ""
+"%s seek error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:110
+#, c-format
+msgid ""
+"%s read error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:113
+#, fuzzy, c-format
+msgid ""
+"%s write error\n"
+"%s\n"
+msgstr "%s în timpul scrierii pe %s"
+
+#: libparted/labels/fdasd.c:116
+#, c-format
+msgid ""
+"%s IOCTL error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:119
+#, c-format
+msgid ""
+"%s API version mismatch\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:122
+#, c-format
+msgid ""
+"%s Unsupported disk type\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:126
+#, c-format
+msgid ""
+"%s Unsupported disk format\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:130
+#, c-format
+msgid ""
+"%s Disk in use\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:133
+#, c-format
+msgid ""
+"%s Config file syntax error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:137
+#, c-format
+msgid ""
+"%s Volume label is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:141
+#, c-format
+msgid ""
+"%s a data set name is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:145
+#, c-format
+msgid ""
+"%s space allocation\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:149
+#, c-format
+msgid ""
+"%s device verification failed\n"
+"The specified device is not a valid DASD device\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:154
+#, c-format
+msgid ""
+"%s Fatal error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/gpt.c:454
+#, c-format
+msgid ""
+"%s contains GPT signatures, indicating that it has a GPT table.  However, it "
+"does not have a valid fake msdos partition table, as it should.  Perhaps it "
+"was corrupted -- possibly by a program that doesn't understand GPT partition "
+"tables.  Or perhaps you deleted the GPT table, and are now using an msdos "
+"partition table.  Is this a GPT partition table?"
+msgstr ""
+"%s conþine semnãturi GPT, indicând cã are o tabelã GPT.  Totuºi, aceasta nu "
+"are o tabelã de partiþii msdos falsã, aºa cum ar trebui.  Probabil cã a fost "
+"coruptã -- posibil de un program ce nu înþelege tabelele de partiþii GPT.  "
+"Sau probabil cã aþi ºters tabela GPT ºi folosiþi acum o tabelã de partiþii "
+"msdos.  Este aceasta o tabelã de partiþii GPT?"
+
+#: libparted/labels/gpt.c:648
+#, c-format
+msgid ""
+"The format of the GPT partition table is version %x, which is newer than "
+"what Parted can recognise.  Please tell us!  bug-parted@gnu.org"
+msgstr ""
+"Formatul tabelei de partiþii GPT este versiunea %x, care este mai nou decât "
+"ceea ce Parted poate recunoaºte.  Vã rugãm spuneþi-ne!  bug-parted@gnu.org"
+
+#: libparted/labels/gpt.c:698
+#, c-format
+msgid ""
+"Not all of the space available to %s appears to be used, you can fix the GPT "
+"to use all of the space (an extra %llu blocks) or continue with the current "
+"setting? "
+msgstr ""
+
+#: libparted/labels/gpt.c:827
+msgid ""
+"The backup GPT table is not at the end of the disk, as it should be.  This "
+"might mean that another operating system believes the disk is smaller.  Fix, "
+"by moving the backup to the end (and removing the old backup)?"
+msgstr ""
+"Tabela GPT de rezervã nu este la sfârºitul discului, cum ar trbui sã fie.  "
+"Aceasta ar putea însemna cã un alt sistem de operare crede cã diacul este "
+"mai mic.  Reparã, mutând rezerva (backup) la sfârºit (ºi ºterge vechea "
+"rezervã?"
+
+#: libparted/labels/gpt.c:862
+msgid ""
+"The primary GPT table is corrupt, but the backup appears OK, so that will be "
+"used."
+msgstr ""
+"Tabela primarã GPT este coruptã, dar rezerva pare OK, aºa cã va fi folositã "
+"rezerva."
+
+#: libparted/labels/gpt.c:870
+msgid ""
+"Both the primary and backup GPT tables are corrupt.  Try making a fresh "
+"table, and using Parted's rescue feature to recover partitions."
+msgstr ""
+"Atât tabela primarã cât ºi cea de rezervã sunt corupte.  Încercaþi sã creaþi "
+"o tabelã nouã ºi sã folosiþi capabilitatea de salvare lui Parted pentru a "
+"recupera partiþiile."
+
+#: libparted/labels/mac.c:181
+#, c-format
+msgid "Invalid signature %x for Mac disk labels."
+msgstr "Semnãturã invalidã %x pentru etichetele de disc pentru Mac."
+
+#: libparted/labels/mac.c:226
+msgid "Partition map has no partition map entry!"
+msgstr "Harta de partiþii nu are nici o intrare!"
+
+#: libparted/labels/mac.c:273
+#, c-format
+msgid "%s is too small for a Mac disk label!"
+msgstr "%s este prea mic pentr o etichetã de disc pentru Mac."
+
+#: libparted/labels/mac.c:532
+#, c-format
+msgid "Partition %d has an invalid signature %x."
+msgstr "Partiþia %d are o semnãturã invalidã %x."
+
+#: libparted/labels/mac.c:550
+#, c-format
+msgid "Partition %d has an invalid length of 0 bytes!"
+msgstr "Partiþia %d are o lungime invalidã de 0 octeþi!"
+
+#: libparted/labels/mac.c:580
+msgid "The data region doesn't start at the start of the partition."
+msgstr "Regiunea de date nu începe la începutul partiþiei."
+
+#: libparted/labels/mac.c:597
+msgid "The boot region doesn't start at the start of the partition."
+msgstr "Regiunea de boot nu începe la începutul partiþiei."
+
+#: libparted/labels/mac.c:611
+msgid "The partition's boot region doesn't occupy the entire partition."
+msgstr "Regiunea de boot a partiþiei nu ocupã întreaga partiþie."
+
+#: libparted/labels/mac.c:622
+msgid "The partition's data region doesn't occupy the entire partition."
+msgstr "Regiunea de date a partiþiei nu ocupã întreaga partiþie."
+
+#: libparted/labels/mac.c:675
+#, c-format
+msgid ""
+"Weird block size on device descriptor: %d bytes is not divisible by 512."
+msgstr ""
+"Dimensiune de bloc ciudatã pe descriptorul dispozitivului: %d octeþi nu este "
+"divizibil cu 512."
+
+#: libparted/labels/mac.c:688
+#, c-format
+msgid ""
+"The driver descriptor says the physical block size is %d bytes, but Linux "
+"says it is %d bytes."
+msgstr ""
+"Descriptorul de driver spune cã dimensiunea fizicã a blocului este %d octeþi "
+"dar Linux spune cã este %d octeþi."
+
+#: libparted/labels/mac.c:736
+msgid "No valid partition map found."
+msgstr "Nu a fost gãsitã nici o hartã de partiþie validã."
+
+#: libparted/labels/mac.c:795
+#, c-format
+msgid ""
+"Conflicting partition map entry sizes!  Entry 1 says it is %d, but entry %d "
+"says it is %d!"
+msgstr ""
+
+#: libparted/labels/mac.c:822
+msgid "Weird!  There are 2 partitions map entries!"
+msgstr "Ciudat!  Existã 2 intrãri în harta partiþiei"
+
+#: libparted/labels/mac.c:1347
+msgid ""
+"Changing the name of a root or swap partition will prevent Linux from "
+"recognising it as such."
+msgstr ""
+
+#: libparted/labels/mac.c:1443
+msgid "Can't add another partition -- the partition map is too small!"
+msgstr ""
+
+#: libparted/labels/pc98.c:354
+#, c-format
+msgid "Invalid partition table on %s."
+msgstr "Tabela de partiþii invalidã pe %s."
+
+#: libparted/labels/pc98.c:406 libparted/labels/pc98.c:484
+#, c-format
+msgid ""
+"Partition %d isn't aligned to cylinder boundaries.  This is still "
+"unsupported."
+msgstr ""
+
+#: libparted/labels/pc98.c:791
+msgid "Can't add another partition."
+msgstr ""
+
+#: libparted/labels/rdb.c:162
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:497
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen."
+msgstr ""
+
+#: libparted/labels/rdb.c:581
+#, c-format
+msgid "%s : Loop detected at block %d."
+msgstr ""
+
+#: libparted/labels/rdb.c:600
+#, c-format
+msgid "%s : The %s list seems bad at block %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:689
+#, c-format
+msgid "%s : Failed to list bad blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:697
+#, c-format
+msgid "%s : Failed to list partition blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:705
+#, c-format
+msgid "%s : Failed to list file system blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:713
+#, c-format
+msgid "%s : Failed to list boot blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:740
+#, c-format
+msgid "Failed to write partition block at %d."
+msgstr ""
+
+#: libparted/labels/rdb.c:1069
+msgid "Unable to allocate a partition number."
+msgstr "Nu pot aloca un numãr de partiþie."
+
+#: libparted/labels/sun.c:145
+msgid "Corrupted Sun disk label detected."
+msgstr ""
+
+#: libparted/labels/sun.c:266
+#, c-format
+msgid ""
+"The disk CHS geometry (%d,%d,%d) reported by the operating system does not "
+"match the geometry stored on the disk label (%d,%d,%d)."
+msgstr ""
+
+#: libparted/labels/sun.c:288
+#, c-format
+msgid "The disk label describes a disk bigger than %s."
+msgstr ""
+
+#: libparted/labels/sun.c:442
+#, c-format
+msgid "The disk has %d cylinders, which is greater than the maximum of 65536."
+msgstr ""
+
+#: libparted/labels/sun.c:737
+msgid ""
+"The Whole Disk partition is the only available one left.  Generally, it is "
+"not a good idea to overwrite this partition with a real one.  Solaris may "
+"not be able to boot without it, and SILO (the sparc boot loader) appreciates "
+"it as well."
+msgstr ""
+
+#: libparted/labels/sun.c:752
+msgid "Sun disk label is full."
+msgstr ""
+
+#: libparted/labels/vtoc.c:163
+#, c-format
+msgid ""
+"%s opening device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:167
+#, c-format
+msgid ""
+"%s seeking device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:171
+#, c-format
+msgid ""
+"%s writing to device '%s' failed,\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:175
+#, c-format
+msgid ""
+"%s reading from device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:179
+#, c-format
+msgid "Fatal error\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:418
+msgid "Could not read VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:424
+msgid "Could not read VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:431
+msgid "Could not read VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:438
+msgid "Could not read VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:445
+msgid "Could not read VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:462
+msgid "Could not write VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:468
+msgid "Could not write VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:475
+msgid "Could not write VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:482
+msgid "Could not write VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:489
+msgid "Could not write VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/libparted.c:296 libparted/libparted.c:316
+msgid "Out of memory."
+msgstr ""
+
+#: libparted/unit.c:139
+msgid "Cannot get unit size for special unit 'COMPACT'."
+msgstr ""
+
+#: libparted/unit.c:386
+#, c-format
+msgid "\"%s\" has invalid syntax for locations."
+msgstr ""
+
+#: libparted/unit.c:394
+#, c-format
+msgid "The maximum head value is %d."
+msgstr ""
+
+#: libparted/unit.c:401
+#, c-format
+msgid "The maximum sector value is %d."
+msgstr ""
+
+#: libparted/unit.c:413 libparted/unit.c:545
+#, c-format
+msgid "The location %s is outside of the device %s."
+msgstr ""
+
+#: libparted/unit.c:527
+msgid "Invalid number."
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:63 libparted/fs/amiga/apfs.c:56
+#: libparted/fs/amiga/asfs.c:70
+#, fuzzy, c-format
+msgid "%s : Failed to allocate partition block\n"
+msgstr "Nu pot aloca un numãr de partiþie."
+
+#: libparted/fs/amiga/affs.c:78 libparted/fs/amiga/apfs.c:70
+#: libparted/fs/amiga/asfs.c:86
+#, c-format
+msgid "%s : Failed to allocate block\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:83 libparted/fs/amiga/apfs.c:75
+#, c-format
+msgid "%s : Couldn't read boot block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:99 libparted/fs/amiga/apfs.c:86
+#: libparted/fs/amiga/asfs.c:92 libparted/fs/amiga/asfs.c:106
+#, c-format
+msgid "%s : Couldn't read root block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:72
+#, c-format
+msgid "%s : Failed to allocate id list element\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:189
+#, c-format
+msgid "%s : Couldn't read block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:202
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:212
+#, fuzzy, c-format
+msgid "%s : Couldn't write block %d\n"
+msgstr "%s în timpul scrierii pe %s"
+
+#: libparted/fs/amiga/amiga.c:278
+#, c-format
+msgid "%s : Failed to allocate disk_specific rdb block\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:289
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:318
+#, c-format
+msgid "%s : Failed to read partition block %llu\n"
+msgstr ""
+
+#: libparted/fs/ext2/ext2.c:87 libparted/fs/ext2/ext2.c:112
+msgid "Inconsistent group descriptors!"
+msgstr ""
+
+#: libparted/fs/ext2/ext2.c:91 libparted/fs/ext2/ext2.c:116
+msgid "File system full!"
+msgstr ""
+
+#: libparted/fs/ext2/ext2.c:686
+msgid "Invalid superblock.  Are you sure this is an ext2 file system?"
+msgstr ""
+
+#: libparted/fs/ext2/ext2.c:700 libparted/fs/ext2/ext2_resize.c:658
+msgid "File system has errors!  You should run e2fsck."
+msgstr ""
+
+#: libparted/fs/ext2/ext2.c:711
+msgid ""
+"File system was not cleanly unmounted!  You should run e2fsck.  Modifying an "
+"unclean file system could cause severe corruption."
+msgstr ""
+
+#: libparted/fs/ext2/ext2.c:731
+msgid "File system has an incompatible feature enabled."
+msgstr ""
+
+#: libparted/fs/ext2/ext2.c:742
+msgid "Error allocating buffer cache."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:114
+msgid ""
+"Found an inode with a incorrect link count.  Better go run e2fsck first!"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:487
+msgid "Not enough free inodes!"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:223
+msgid "File system is too full to remove a group!"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:232
+msgid "File system has too many allocated inodes to remove a group!"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:491
+msgid "adding groups"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:528
+#, c-format
+msgid "Your file system is too full to resize it to %i blocks.  Sorry."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:538
+#, c-format
+msgid ""
+"Your file system has too many occupied inodes to resize it to %i blocks.  "
+"Sorry."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:666
+msgid "File system was not cleanly unmounted!  You should run e2fsck."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:675
+msgid ""
+"The file system has the 'dir_index' feature enabled.  Parted can only resize "
+"the file system if it disables this feature.  You can enable it later by "
+"running 'tune2fs -O dir_index DEVICE' and then 'e2fsck -fD DEVICE'."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:691
+msgid ""
+"A resize operation on this file system will use EXPERIMENTAL code\n"
+"that MAY CORRUPT it (although no one has reported any such damage yet).\n"
+"You should at least backup your data first, and run 'e2fsck -f' afterwards."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_block_relocator.c:198
+msgid "Cross-linked blocks found!  Better go run e2fsck first!"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_block_relocator.c:537
+#, c-format
+msgid "Block %i has no reference?  Weird."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_block_relocator.c:737
+#, c-format
+msgid "Block %i shouldn't have been marked (%d, %d)!"
+msgstr ""
+
+#: libparted/fs/ext2/interface.c:186
+msgid ""
+"The ext2 file system passed a basic check.  For a more comprehensive check, "
+"use the e2fsck program."
+msgstr ""
+
+#: libparted/fs/ext2/interface.c:203
+msgid "Sorry, can't move the start of ext2 partitions yet!"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_buffer.c:82
+msgid "Couldn't flush buffer cache!"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_mkfs.c:162
+msgid "writing per-group metadata"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_mkfs.c:564
+msgid "File system too small for ext2."
+msgstr ""
+
+#: libparted/fs/fat/calc.c:135
+#, c-format
+msgid ""
+"You need %s of free disk space to shrink this partition to this size.  "
+"Currently, only %s is free."
+msgstr ""
+
+#: libparted/fs/fat/context.c:56
+#, c-format
+msgid ""
+"Cluster start delta = %d, which is not a multiple of the cluster size %d."
+msgstr ""
+
+#: libparted/fs/fat/fat.c:308
+#, c-format
+msgid "Partition too big/small for a %s file system."
+msgstr "Partiþie prea mare/micã pentru un sistem de fiºiere %s."
+
+#: libparted/fs/fat/fat.c:474
+msgid ""
+"The FATs don't match.  If you don't know what this means, then select "
+"cancel, run scandisk on the file system, and then come back."
+msgstr ""
+
+#: libparted/fs/fat/fat.c:514
+msgid "There are no possible configurations for this FAT type."
+msgstr ""
+
+#: libparted/fs/fat/fat.c:526
+#, c-format
+msgid ""
+"File system doesn't have expected sizes for Windows to like it.  Cluster "
+"size is %dk (%dk expected); number of clusters is %d (%d expected); size of "
+"FATs is %d sectors (%d expected)."
+msgstr ""
+
+#: libparted/fs/fat/fat.c:549
+#, c-format
+msgid ""
+"File system is reporting the free space as %d clusters, not %d clusters."
+msgstr ""
+
+#: libparted/fs/fat/fat.c:874
+msgid ""
+"GNU Parted was miscompiled: the FAT boot sector should be 512 bytes.  FAT "
+"support will be disabled."
+msgstr ""
+
+#: libparted/fs/fat/resize.c:159
+msgid ""
+"There's not enough room in the root directory for all of the files.  Either "
+"cancel, or ignore to lose the files."
+msgstr ""
+
+#: libparted/fs/fat/resize.c:300
+msgid "Error writing to the root directory."
+msgstr ""
+
+#: libparted/fs/fat/resize.c:489
+msgid "If you leave your file system as FAT16, then you will have no problems."
+msgstr ""
+
+#: libparted/fs/fat/resize.c:492
+msgid ""
+"If you convert to FAT16, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual)."
+msgstr ""
+
+#: libparted/fs/fat/resize.c:500
+msgid ""
+"If you leave your file system as FAT32, then you will not introduce any new "
+"problems."
+msgstr ""
+
+#: libparted/fs/fat/resize.c:504
+msgid ""
+"If you convert to FAT32, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual).  Also, "
+"converting to FAT32 will make the file system unreadable by MS DOS, MS "
+"Windows 95a, and MS Windows NT."
+msgstr ""
+
+#: libparted/fs/fat/resize.c:518
+#, c-format
+msgid "%s  %s  %s"
+msgstr ""
+
+#: libparted/fs/fat/resize.c:519
+msgid "Would you like to use FAT32?"
+msgstr ""
+
+#: libparted/fs/fat/resize.c:550 libparted/fs/fat/resize.c:566
+#, c-format
+msgid "%s  %s"
+msgstr ""
+
+#: libparted/fs/fat/resize.c:551
+msgid ""
+"The file system can only be resized to this size by converting to FAT16."
+msgstr ""
+
+#: libparted/fs/fat/resize.c:567
+msgid ""
+"The file system can only be resized to this size by converting to FAT32."
+msgstr ""
+
+#: libparted/fs/fat/resize.c:580
+msgid ""
+"GNU Parted cannot resize this partition to this size.  We're working on it!"
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:49 libparted/fs/fat/bootsector.c:56
+msgid "File system has an invalid signature for a FAT file system."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:64
+msgid "File system has an invalid sector size for a FAT file system."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:71
+msgid "File system has an invalid cluster size for a FAT file system."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:78
+msgid ""
+"File system has an invalid number of reserved sectors for a FAT file system."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:85
+msgid "File system has an invalid number of FATs."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:139
+#, c-format
+msgid ""
+"This file system has a logical sector size of %d.  GNU Parted is known not "
+"to work properly with sector sizes other than 512 bytes."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:164
+#, c-format
+msgid ""
+"The file system's CHS geometry is (%d, %d, %d), which is invalid.  The "
+"partition table's CHS geometry is (%d, %d, %d).  If you select Ignore, the "
+"file system's CHS geometry will be left unchanged.  If you select Fix, the "
+"file system's CHS geometry will be set to match the partition table's CHS "
+"geometry."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:213
+msgid "FAT boot sector says logical sector size is 0.  This is weird. "
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:219
+msgid "FAT boot sector says there are no FAT tables.  This is weird. "
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:225
+msgid "FAT boot sector says clusters are 0 sectors.  This is weird. "
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:235
+msgid "File system is FAT12, which is unsupported."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:411
+#, c-format
+msgid ""
+"The information sector has the wrong signature (%x).  Select cancel for now, "
+"and send in a bug report.  If you're desperate, it's probably safe to ignore."
+msgstr ""
+
+#: libparted/fs/fat/count.c:152
+#, c-format
+msgid "Bad directory entry for %s: first cluster is the end of file marker."
+msgstr ""
+
+#: libparted/fs/fat/count.c:165
+#, c-format
+msgid ""
+"Bad FAT: unterminated chain for %s.  You should run dosfsck or scandisk."
+msgstr ""
+
+#: libparted/fs/fat/count.c:174
+#, c-format
+msgid ""
+"Bad FAT: cluster %d outside file system in chain for %s.  You should run "
+"dosfsck or scandisk."
+msgstr ""
+
+#: libparted/fs/fat/count.c:184
+#, c-format
+msgid ""
+"Bad FAT: cluster %d is cross-linked for %s.  You should run dosfsck or "
+"scandisk."
+msgstr ""
+
+#: libparted/fs/fat/count.c:203
+#, c-format
+msgid "%s is %dk, but it has %d clusters (%dk)."
+msgstr ""
+
+#: libparted/fs/fat/count.c:266
+#, c-format
+msgid ""
+"The file %s is marked as a system file.  This means moving it could cause "
+"some programs to stop working."
+msgstr ""
+
+#: libparted/fs/fat/table.c:137
+#, c-format
+msgid ""
+"FAT %d media %x doesn't match the boot sector's media %x.  You should "
+"probably run scandisk."
+msgstr ""
+
+#: libparted/fs/fat/table.c:269
+#, c-format
+msgid "fat_table_set: cluster %ld outside file system"
+msgstr ""
+
+#: libparted/fs/fat/table.c:301
+#, c-format
+msgid "fat_table_get: cluster %ld outside file system"
+msgstr ""
+
+#: libparted/fs/fat/table.c:343
+msgid "fat_table_alloc_cluster: no free clusters"
+msgstr ""
+
+#: libparted/fs/linux_swap/linux_swap.c:275
+#, c-format
+msgid "Unrecognised old style linux swap signature '%10s'."
+msgstr ""
+
+#: libparted/fs/linux_swap/linux_swap.c:318
+#, c-format
+msgid "Unrecognised new style linux swap signature '%10s'."
+msgstr ""
+
+#: libparted/fs/linux_swap/linux_swap.c:358
+#, c-format
+msgid "Unrecognised swsusp linux swap signature '%9s'."
+msgstr ""
+
+#: libparted/fs/linux_swap/linux_swap.c:434
+msgid "Too many bad pages."
+msgstr ""
+
+#: libparted/fs/hfs/advfs.c:121 libparted/fs/hfs/advfs_plus.c:122
+#: libparted/fs/hfs/reloc.c:414 libparted/fs/hfs/reloc.c:508
+#: libparted/fs/hfs/reloc_plus.c:539 libparted/fs/hfs/reloc_plus.c:658
+#: libparted/fs/hfs/reloc_plus.c:772
+msgid "The file system contains errors."
+msgstr ""
+
+#: libparted/fs/hfs/advfs_plus.c:287
+msgid "Bad blocks could not be read."
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:137
+#, c-format
+msgid ""
+"Trying to register an extent starting at block 0x%X, but another one already "
+"exists at this position.  You should check the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:214
+#, c-format
+msgid ""
+"Trying to move an extent from block Ox%X to block Ox%X, but another one "
+"already exists at this position.  This should not happen!"
+msgstr ""
+
+#: libparted/fs/hfs/file.c:143
+#, c-format
+msgid "Could not update the extent cache for HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:180
+#, c-format
+msgid "Trying to read HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:190 libparted/fs/hfs/file.c:220
+#, c-format
+msgid "Could not find sector %lli of HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:210
+#, c-format
+msgid "Trying to write HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:157
+#, c-format
+msgid "Could not update the extent cache for HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:202
+#, c-format
+msgid "Trying to read HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:213 libparted/fs/hfs/file_plus.c:256
+#, c-format
+msgid "Could not find sector %lli of HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:245
+#, c-format
+msgid "Trying to write HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:232
+msgid "Sorry, HFS cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:262 libparted/fs/hfs/hfs.c:641
+msgid "Data relocation has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:281
+msgid "Data relocation left some data in the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:320
+msgid "writing HFS Master Directory Block"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:468
+msgid "No valid HFS[+X] signature has been found while opening."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:478
+#, c-format
+msgid "Version %d of HFS+ isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:489
+#, c-format
+msgid "Version %d of HFSX isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:672
+msgid "Data relocation left some data at the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:720
+msgid "Error while writing the allocation file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:735
+msgid "Error while writing the compatibility part of the allocation file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:750
+msgid "writing HFS+ Volume Header"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:850
+msgid "An error occurred while looking for the mandatory bad blocks file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:904
+msgid ""
+"It seems there is an error in the HFS wrapper: the bad blocks file doesn't "
+"contain the embedded HFS+ volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:940
+msgid "Sorry, HFS+ cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:975
+msgid "shrinking embedded HFS+ volume"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:991
+msgid "Resizing the HFS+ volume has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:998
+msgid "shrinking HFS wrapper"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:1007
+msgid "Updating the HFS wrapper has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:1109 libparted/fs/hfs/hfs.c:1194
+#, c-format
+msgid ""
+"This is not a real %s check.  This is going to extract special low level "
+"files for debugging purposes."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:155
+msgid "Bad block list header checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:168
+#, c-format
+msgid ""
+"Invalid size of a transaction block while replaying the journal (%i bytes)."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:260
+msgid ""
+"Journal stored outside of the volume are not supported.  Try to desactivate "
+"the journal and run Parted again."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:271
+msgid "Journal offset or size is not multiple of the sector size."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:292
+msgid "Incorrect magic values in the journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:302
+msgid "Journal size mismatch between journal info block and journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:314
+msgid "Some header fields are not multiple of the sector size."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:323
+msgid ""
+"The sector size stored in the journal is not 512 bytes.  Parted only "
+"supports 512 bytes length sectors."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:335
+msgid "Bad journal checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:353
+msgid ""
+"The journal is not empty.  Parted must replay the transactions before "
+"opening the file system.  This will modify the file system."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:381
+msgid ""
+"The volume header or the master directory block has changed while replaying "
+"the journal.  You should restart Parted."
+msgstr ""
+
+#: libparted/fs/hfs/probe.c:51
+#, c-format
+msgid ""
+"Parted can't use HFS file systems on disks with a sector size not equal to %"
+"d bytes."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:151 libparted/fs/hfs/reloc_plus.c:155
+msgid "An extent has not been relocated."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:251 libparted/fs/hfs/reloc_plus.c:307
+msgid ""
+"A reference to an extent comes from a place it should not.  You should check "
+"the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:381
+msgid "This HFS volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:475
+msgid "This HFS volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:517 libparted/fs/hfs/reloc_plus.c:668
+msgid ""
+"The extents overflow file should not contain its own extents!  You should "
+"check the file system."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:574 libparted/fs/hfs/reloc_plus.c:847
+msgid "Could not cache the file system in memory."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:635 libparted/fs/hfs/reloc_plus.c:908
+msgid "Bad blocks list could not be loaded."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:649 libparted/fs/hfs/reloc_plus.c:924
+msgid "An error occurred during extent relocation."
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:495
+msgid "This HFS+ volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:619
+msgid "This HFS+ volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: parted/parted.c:94
+msgid "displays this help message"
+msgstr ""
+
+#: parted/parted.c:95
+msgid "lists partition layout on all block devices"
+msgstr ""
+
+#: parted/parted.c:96
+msgid "displays machine parseable output"
+msgstr ""
+
+#: parted/parted.c:97
+msgid "never prompts for user intervention"
+msgstr ""
+
+#: parted/parted.c:98
+msgid "displays the version"
+msgstr ""
+
+#: parted/parted.c:111
+msgid ""
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"
+msgstr ""
+
+#: parted/parted.c:114
+msgid "LABEL-TYPE is one of: "
+msgstr ""
+
+#: parted/parted.c:115
+msgid "FLAG is one of: "
+msgstr ""
+
+#: parted/parted.c:116
+msgid "UNIT is one of: "
+msgstr ""
+
+#: parted/parted.c:117
+msgid "PART-TYPE is one of: primary, logical, extended\n"
+msgstr ""
+
+#: parted/parted.c:119
+msgid "FS-TYPE is one of: "
+msgstr ""
+
+#: parted/parted.c:120
+msgid ""
+"START and END are disk locations, such as 4GB or 10%.  Negative values count "
+"from the end of the disk.  For example, -1s specifies exactly the last "
+"sector.\n"
+msgstr ""
+
+#: parted/parted.c:123
+msgid "STATE is one of: on, off\n"
+msgstr ""
+
+#: parted/parted.c:124
+msgid "DEVICE is usually /dev/hda or /dev/sda\n"
+msgstr ""
+
+#: parted/parted.c:125
+msgid "NAME is any word you want\n"
+msgstr ""
+
+#: parted/parted.c:126
+msgid "The partition must have one of the following FS-TYPEs: "
+msgstr ""
+
+#: parted/parted.c:130
+#, fuzzy
+msgid ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+msgstr ""
+"Copyright (C) 1998 - 2005 Free Software Foundation, Inc.\n"
+"Acest program e software liber, distribuit sub GNU General Public License.\n"
+"\n"
+"Acest program este distribui în speranþa cã va fi folositor, dar FÃRÃ NICI\n"
+"O GARANÞIE; chiar ºi fãrã garanþia implicitã de VANDABILITATE sau POTRIVIRE\n"
+"PENTRU UN SCOP ANUME.  Vedeþi Licenþa Publicã Generalã GNU (GNU GPL) pentru\n"
+"detalii suplimentare.\n"
+
+#: parted/parted.c:176
+#, c-format
+msgid "%0.f%%\t(time left %.2d:%.2d)"
+msgstr ""
+
+#: parted/parted.c:195
+#, c-format
+msgid ""
+"Partition %s is being used. You must unmount it before you modify it with "
+"Parted."
+msgstr ""
+
+#: parted/parted.c:211
+#, c-format
+msgid "Partition(s) on %s are being used."
+msgstr ""
+
+#: parted/parted.c:223
+msgid ""
+"The existing file system will be destroyed and all data on the partition "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:235
+#, c-format
+msgid ""
+"The existing disk label on %s will be destroyed and all data on this disk "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:458 parted/parted.c:652 parted/parted.c:1044
+#: parted/parted.c:1128 parted/parted.c:1771 parted/parted.c:1852
+#: parted/parted.c:1900
+msgid "Partition number?"
+msgstr ""
+
+#: parted/parted.c:500
+msgid "Source device?"
+msgstr ""
+
+#: parted/parted.c:504
+msgid "Source partition number?"
+msgstr ""
+
+#: parted/parted.c:509
+msgid "Can't copy an extended partition."
+msgstr "Nu puteþi copia o partiþie extinsã."
+
+#: parted/parted.c:515
+msgid "Destination partition number?"
+msgstr "Numãrul partiþiei destinaþie?"
+
+#: parted/parted.c:615
+msgid "New disk label type?"
+msgstr "Tip de etichetã pentru discul nou?"
+
+#: parted/parted.c:656
+msgid "File system?"
+msgstr "Sistem de fiºiere?"
+
+#: parted/parted.c:707 parted/parted.c:878
+msgid "Partition type?"
+msgstr ""
+
+#: parted/parted.c:714 parted/parted.c:885 parted/parted.c:1131
+msgid "Partition name?"
+msgstr ""
+
+#: parted/parted.c:722 parted/parted.c:895
+msgid "File system type?"
+msgstr ""
+
+#: parted/parted.c:729 parted/parted.c:897 parted/parted.c:1059
+#: parted/parted.c:1725 parted/parted.c:1780
+msgid "Start?"
+msgstr ""
+
+#: parted/parted.c:731 parted/parted.c:900 parted/parted.c:1062
+#: parted/parted.c:1727 parted/parted.c:1782
+msgid "End?"
+msgstr ""
+
+#: parted/parted.c:769 parted/parted.c:938
+#, c-format
+msgid ""
+"You requested a partition from %s to %s.\n"
+"The closest location we can manage is %s to %s.  Is this still acceptable to "
+"you?"
+msgstr ""
+
+#: parted/parted.c:890
+msgid "An extended partition cannot hold a file system.  Did you want mkpart?"
+msgstr ""
+
+#: parted/parted.c:1050
+msgid "Can't move an extended partition."
+msgstr "Nu puteþi muta o partiþie extinsã."
+
+#: parted/parted.c:1079
+msgid "Can't move a partition onto itself.  Try using resize, perhaps?"
+msgstr ""
+"Nu puteþi muta o partiþie peste ea însãºi.  încercaþi poate sã folosiþi "
+"redimensionare?"
+
+#: parted/parted.c:1227
+#, c-format
+msgid "Minor: %d\n"
+msgstr ""
+
+#: parted/parted.c:1228
+#, c-format
+msgid "Flags: %s\n"
+msgstr ""
+
+#: parted/parted.c:1229
+#, c-format
+msgid "File System: %s\n"
+msgstr ""
+
+#: parted/parted.c:1230
+msgid "Size:         "
+msgstr ""
+
+#: parted/parted.c:1235
+msgid "Minimum size: "
+msgstr ""
+
+#: parted/parted.c:1238
+msgid "Maximum size: "
+msgstr ""
+
+#: parted/parted.c:1362
+#, c-format
+msgid "Model: %s (%s)\n"
+msgstr ""
+
+#: parted/parted.c:1364
+#, c-format
+msgid "Disk %s: %s\n"
+msgstr ""
+
+#: parted/parted.c:1365
+#, c-format
+msgid "Sector size (logical/physical): %lldB/%lldB\n"
+msgstr ""
+
+#: parted/parted.c:1383
+#, c-format
+msgid "BIOS cylinder,head,sector geometry: %d,%d,%d.  Each cylinder is %s.\n"
+msgstr ""
+
+#: parted/parted.c:1392
+#, fuzzy, c-format
+msgid "Partition Table: %s\n"
+msgstr "Tabela de partiþii invalidã pe %s."
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Number"
+msgstr "Numãr"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Start"
+msgstr "Start"
+
+#: parted/parted.c:1407 parted/parted.c:1410
+msgid "End"
+msgstr "Sfârºit"
+
+#: parted/parted.c:1410
+msgid "Size"
+msgstr "Dimensiune"
+
+#: parted/parted.c:1414
+msgid "Type"
+msgstr "Tip"
+
+#: parted/parted.c:1416
+msgid "File system"
+msgstr "Sistem de fiºiere"
+
+#: parted/parted.c:1419
+msgid "Name"
+msgstr "Nume"
+
+#: parted/parted.c:1421
+msgid "Flags"
+msgstr ""
+
+#: parted/parted.c:1477
+msgid "Free Space"
+msgstr ""
+
+#: parted/parted.c:1624
+#, c-format
+msgid ""
+"A %s %s partition was found at %s -> %s.  Do you want to add it to the "
+"partition table?"
+msgstr ""
+
+#: parted/parted.c:1663
+msgid "searching for file systems"
+msgstr ""
+
+#: parted/parted.c:1877
+msgid "New device?"
+msgstr ""
+
+#: parted/parted.c:1902
+msgid "Flag to Invert?"
+msgstr ""
+
+#: parted/parted.c:1907
+msgid "New state?"
+msgstr ""
+
+#: parted/parted.c:1944
+msgid "Unit?"
+msgstr ""
+
+#: parted/parted.c:2093
+msgid "check"
+msgstr ""
+
+#: parted/parted.c:2096
+msgid ""
+"check NUMBER                             do a simple check on the file system"
+msgstr ""
+
+#: parted/parted.c:2102
+msgid "cp"
+msgstr "cp"
+
+#: parted/parted.c:2105
+msgid ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2111
+msgid "help"
+msgstr "help"
+
+#: parted/parted.c:2114
+#, fuzzy
+msgid ""
+"help [COMMAND]                           print general help, or help on "
+"COMMAND"
+msgstr ""
+"help [COMANDA]                afiºeazã informaþii generale, sau\n"
+"                                depre COMANDA"
+
+#: parted/parted.c:2120
+msgid "mklabel"
+msgstr "mklabel"
+
+#: parted/parted.c:2120
+#, fuzzy
+msgid "mktable"
+msgstr "mklabel"
+
+#: parted/parted.c:2123
+#, fuzzy
+msgid ""
+"mklabel,mktable LABEL-TYPE               create a new disklabel (partition "
+"table)"
+msgstr ""
+"mklabel TIP_ETICHETA          creazã o nouã etichetã de disc\n"
+"                                       (tabela de partiþii)"
+
+#: parted/parted.c:2129
+msgid "mkfs"
+msgstr "mkfs"
+
+#: parted/parted.c:2132
+#, fuzzy
+msgid ""
+"mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on "
+"partititon NUMBER"
+msgstr ""
+"mkfs NUMÃR TIP-SF        creazã un sistem de fiºiere TIP-SF pe partiþia NUMÃR"
+
+#: parted/parted.c:2138
+msgid "mkpart"
+msgstr "mkpart"
+
+#: parted/parted.c:2141
+msgid "mkpart PART-TYPE [FS-TYPE] START END     make a partition"
+msgstr "mkpart TIP-PART [TIP-SF] START SFÂRªIT    creazã o partiþie"
+
+#: parted/parted.c:2147
+#, fuzzy
+msgid ""
+"'mkpart' makes a partition without creating a new file system on the "
+"partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"
+msgstr ""
+"mkpart creazã o partiþie fãrã a crea un nou sistem de fiºiere pe acea "
+"partiþie. TIP-SF poate fi specificat pentru a seta un anumit ID de "
+"partiþie.\n"
+
+#: parted/parted.c:2152
+msgid "mkpartfs"
+msgstr "mkpartfs"
+
+#: parted/parted.c:2155
+msgid ""
+"mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system"
+msgstr ""
+"mkpartfs TIP-PART TIP-SF START SFÂRªIT     creazã o partiþie cu un sistem de "
+"fiºiere"
+
+#: parted/parted.c:2161
+msgid "move"
+msgstr "move"
+
+#: parted/parted.c:2164
+#, fuzzy
+msgid "move NUMBER START END                    move partition NUMBER"
+msgstr "move NUMÃR START SFÂRªIT      mutã partiþia NUMÃR"
+
+#: parted/parted.c:2169
+msgid "name"
+msgstr "name"
+
+#: parted/parted.c:2172
+#, fuzzy
+msgid "name NUMBER NAME                         name partition NUMBER as NAME"
+msgstr "name NUMÃR NUME               numeºte patiþia NUMÃR ca NUME"
+
+#: parted/parted.c:2177
+msgid "print"
+msgstr "print"
+
+#: parted/parted.c:2180
+msgid ""
+"print [devices|free|list,all|NUMBER]     display the partition table, "
+"available devices, free space, all found partitions, or a particular "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2185
+msgid ""
+"Without arguments, 'print' displays the entire partition table. However with "
+"the following arguments it performs various other actions.\n"
+msgstr ""
+
+#: parted/parted.c:2187
+msgid "  devices   : display all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2188
+msgid ""
+"  free      : display information about free unpartitioned space on the "
+"current block device\n"
+msgstr ""
+
+#: parted/parted.c:2190
+#, fuzzy
+msgid ""
+"  list, all : display the partition tables of all active block devices\n"
+msgstr ""
+"print [NUMÃR]                 afiºeazã tabela de partiþii, sau o partiþie"
+
+#: parted/parted.c:2191
+msgid ""
+"  NUMBER    : display more detailed information about this particular "
+"partition\n"
+msgstr ""
+
+#: parted/parted.c:2196
+msgid "quit"
+msgstr "quit"
+
+#: parted/parted.c:2199
+#, fuzzy
+msgid "quit                                     exit program"
+msgstr "quit                          ieºire din program"
+
+#: parted/parted.c:2204
+msgid "rescue"
+msgstr "rescue"
+
+#: parted/parted.c:2207
+#, fuzzy
+msgid ""
+"rescue START END                         rescue a lost partition near START "
+"and END"
+msgstr ""
+"rescue START SFARSIT           salveazã o partiþie pierdutã lingã START ºi\n"
+"                                 SFARSIT"
+
+#: parted/parted.c:2213
+msgid "resize"
+msgstr "resize"
+
+#: parted/parted.c:2216
+#, fuzzy
+msgid ""
+"resize NUMBER START END                  resize partition NUMBER and its "
+"file system"
+msgstr ""
+"resize NUMÃR START SFÂRªIT    redimensioneazã partiþia NUMÃR ºi sistemul sãu "
+"de fiºiere"
+
+#: parted/parted.c:2224
+msgid "rm"
+msgstr "rm"
+
+#: parted/parted.c:2227
+#, fuzzy
+msgid "rm NUMBER                                delete partition NUMBER"
+msgstr "rm NUMÃR                      ºterge partiþia NUMÃR"
+
+#: parted/parted.c:2232
+msgid "select"
+msgstr "select"
+
+#: parted/parted.c:2235
+#, fuzzy
+msgid "select DEVICE                            choose the device to edit"
+msgstr "select UNITATE                 alege unitatea de editat"
+
+#: parted/parted.c:2240
+msgid "set"
+msgstr "set"
+
+#: parted/parted.c:2243
+#, fuzzy
+msgid ""
+"set NUMBER FLAG STATE                    change the FLAG on partition NUMBER"
+msgstr "set NUMÃR FLAG STARE          schimbã un flag pe partiþia NUMÃR"
+
+#: parted/parted.c:2249
+msgid "toggle"
+msgstr ""
+
+#: parted/parted.c:2252
+#, fuzzy
+msgid ""
+"toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+"partition NUMBER"
+msgstr "rm NUMÃR                      ºterge partiþia NUMÃR"
+
+#: parted/parted.c:2258
+msgid "unit"
+msgstr "unitate"
+
+#: parted/parted.c:2261
+#, fuzzy
+msgid "unit UNIT                                set the default unit to UNIT"
+msgstr "quit UNITATE                  seteazã unitatea implicitã ca UNITATE"
+
+#: parted/parted.c:2266
+msgid "version"
+msgstr ""
+
+#: parted/parted.c:2269
+msgid ""
+"version                                  display the version number and "
+"copyright information of GNU Parted"
+msgstr ""
+
+#: parted/parted.c:2273
+msgid ""
+"'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"
+msgstr ""
+
+#: parted/parted.c:2335
+#, c-format
+msgid "Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"
+msgstr ""
+
+#: parted/parted.c:2379
+msgid "No device found"
+msgstr "Nu a fost gãsitã nici o unitate"
+
+#: parted/parted.c:2412
+msgid "WARNING: You are not superuser.  Watch out for permissions."
+msgstr ""
+
+#: parted/parted.c:2450
+#, fuzzy
+msgid "You may need to update /etc/fstab.\n"
+msgstr "Nu uitaþi sã actualizaþi /etc/fstab, dacã e necesar.\n"
+
+#: parted/ui.c:160
+msgid "Welcome to GNU Parted! Type 'help' to view a list of commands.\n"
+msgstr ""
+
+#: parted/ui.c:163
+#, fuzzy
+msgid ""
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run "
+"in\n"
+"interactive mode.\n"
+msgstr ""
+"Folosire: parted [OPÞIUNE]... {UNITATE [COMANDÃ [PARAMETRII]...]...]\n"
+"Aplicã COMANDA cu PARAMETII la UNITATE.  Dacã nu este datã nici o COMANDÃ,\n"
+"ruleazã în mod interactiv.\n"
+
+#: parted/ui.c:168
+#, c-format
+msgid ""
+"\n"
+"\n"
+"You found a bug in GNU Parted! Here's what you have to do:\n"
+"\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n"
+"\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Please check this version prior to bug reporting.\n"
+"\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"for further information.\n"
+"\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n"
+msgstr ""
+
+#: parted/ui.c:284
+msgid ""
+"\n"
+"Command History:\n"
+msgstr ""
+
+#: parted/ui.c:366
+msgid ""
+"\n"
+"Error: SEGV_MAPERR (Address not mapped to object)\n"
+msgstr ""
+
+#: parted/ui.c:372
+msgid ""
+"\n"
+"Error: SEGV_ACCERR (Invalid permissions for mapped object)\n"
+msgstr ""
+
+#: parted/ui.c:377
+msgid ""
+"\n"
+"Error: A general SIGSEGV signal was encountered.\n"
+msgstr ""
+
+#: parted/ui.c:410
+msgid ""
+"\n"
+"Error: FPE_INTDIV (Integer: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:415
+msgid ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+msgstr ""
+
+#: parted/ui.c:420
+msgid ""
+"\n"
+"Error: FPE_FLTDIV (Float: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:425
+msgid ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+msgstr ""
+
+#: parted/ui.c:430
+msgid ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+msgstr ""
+
+#: parted/ui.c:435
+msgid ""
+"\n"
+"Error: FPE_FLTRES (Float: inexact result)"
+msgstr ""
+
+#: parted/ui.c:440
+msgid ""
+"\n"
+"Error: FPE_FLTINV (Float: invalid operation)"
+msgstr ""
+
+#: parted/ui.c:445
+msgid ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript out of range)"
+msgstr ""
+
+#: parted/ui.c:450
+msgid ""
+"\n"
+"Error: A general SIGFPE signal was encountered."
+msgstr ""
+
+#: parted/ui.c:483
+msgid ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+msgstr ""
+
+#: parted/ui.c:488
+msgid ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+msgstr ""
+
+#: parted/ui.c:493
+msgid ""
+"\n"
+"Error: ILL_ILLADR (Illegal addressing mode)"
+msgstr ""
+
+#: parted/ui.c:498
+msgid ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+msgstr ""
+
+#: parted/ui.c:503
+msgid ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+msgstr ""
+
+#: parted/ui.c:508
+msgid ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+msgstr ""
+
+#: parted/ui.c:513
+msgid ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+msgstr ""
+
+#: parted/ui.c:518
+msgid ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+msgstr ""
+
+#: parted/ui.c:523
+msgid ""
+"\n"
+"Error: A general SIGILL signal was encountered."
+msgstr ""
+
+#: parted/ui.c:1024
+msgid "Expecting a partition number."
+msgstr "Aºtept un numãr de partiþie."
+
+#: parted/ui.c:1033
+msgid "Partition doesn't exist."
+msgstr "Partiþia nu existã."
+
+#: parted/ui.c:1053
+msgid "Expecting a file system type."
+msgstr "Aºtept un tip de sistem de fiºiere."
+
+#: parted/ui.c:1060
+#, c-format
+msgid "Unknown file system type \"%s\"."
+msgstr "Tip de sistem de fiºiere necunoscut \"%s\"."
+
+#: parted/ui.c:1080
+msgid "Expecting a disk label type."
+msgstr "Aºtept un tip de etichetã de disc."
+
+#: parted/ui.c:1178
+msgid "Can't create any more partitions."
+msgstr "Nu mai pot crea nici o partiþie"
+
+#: parted/ui.c:1188
+msgid "Expecting a partition type."
+msgstr "Aºtept un tip de partiþie."
+
+#: parted/ui.c:1315
+msgid "on"
+msgstr "pornit"
+
+#: parted/ui.c:1316
+msgid "off"
+msgstr "oprit"
+
+#: parted/ui.c:1431
+msgid "OPTIONs:"
+msgstr "OPÞIUNI:"
+
+#: parted/ui.c:1436
+msgid "COMMANDs:"
+msgstr "COMMENZI:"
+
+#: parted/ui.c:1445
+#, c-format
+msgid "Using %s\n"
+msgstr "Folosesc %s\n"
+
+#: parted/ui.c:1519
+msgid "This command does not make sense in non-interactive mode.\n"
+msgstr ""
+
+#, fuzzy
+#~ msgid ""
+#~ "Without arguments, print displays the entire partition table. With "
+#~ "'free'\n"
+#~ "argument, information about free space will be displayed otherwise if a\n"
+#~ "partition number is given, then more detailed information is displayed\n"
+#~ "about that partition. If the 'all' argument is passed instead, partition\n"
+#~ "information for all devices will be displayed.\n"
+#~ msgstr ""
+#~ "Fãrã argumente, print afiºeazã întreaga tabelã de partiþii.  Dacã este "
+#~ "dat\n"
+#~ "un numãr de partiþie, atunci este afiºatã informaþii detaliate despre "
+#~ "acea\n"
+#~ "partiþie.\n"
+
+#~ msgid ""
+#~ "The sector size on %s is %d bytes.  Parted is known not to work properly "
+#~ "with drives with sector sizes other than %d bytes."
+#~ msgstr ""
+#~ "Dimensiunea sectorului pe %s este %d octeþi. Este ºtiut cã parted nu "
+#~ "funcþioneazã corespunzãtor cu discuri cu dimensiunea sectorului diferitã "
+#~ "de %d octeþi."
+
+#~ msgid "IDE"
+#~ msgstr "IDE"
+
+#~ msgid ""
+#~ "You found a bug in GNU Parted.  Please email a bug report to bug-"
+#~ "parted@gnu.org containing the version (%s), and the following message:\n"
+#~ msgstr ""
+#~ "Aþi gãsit un bug în GNU Parted.  Vã rugãm sã trimiteþi un email raportând "
+#~ "acest bug (în limba englezã) la bug-parted@gnu.org conþinând versiunea (%"
+#~ "s) ºi urmãtorul mesaj:\n"
diff --git a/parted-1.8.7/po/ru.gmo b/parted-1.8.7/po/ru.gmo
new file mode 100644
index 0000000..feb49a3
--- /dev/null
+++ b/parted-1.8.7/po/ru.gmo
Binary files differ
diff --git a/parted-1.8.7/po/ru.po b/parted-1.8.7/po/ru.po
new file mode 100644
index 0000000..b15d5d2
--- /dev/null
+++ b/parted-1.8.7/po/ru.po
@@ -0,0 +1,3330 @@
+# ðÅÒÅ×ÏÄ ÓÏÏÂÝÅÎÉÊ parted.
+# Copyright (C) 1999 Free Software Foundation, Inc.
+# Dmitry S. Sivachenko <dima@Chg.RU>, 1999.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: parted 1.2.1\n"
+"Report-Msgid-Bugs-To: bug-parted@gnu.org\n"
+"POT-Creation-Date: 2007-05-09 17:02-0400\n"
+"PO-Revision-Date: 2000-06-16 22:52+04:00\n"
+"Last-Translator: Dmitry S. Sivachenko <dima@Chg.RU>\n"
+"Language-Team: Russian <ru@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=koi8-r\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: lib/closeout.c:74
+msgid "write error"
+msgstr ""
+
+#: lib/error.c:125
+#, fuzzy
+msgid "Unknown system error"
+msgstr "îÅÉÚ×ÅÓÔÎÙÊ ÔÉÐ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ."
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK).  A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#.
+#. If you don't know what to put here, please see
+#. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr ""
+
+#: lib/regcomp.c:131
+msgid "Success"
+msgstr ""
+
+#: lib/regcomp.c:134
+msgid "No match"
+msgstr ""
+
+#: lib/regcomp.c:137
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regcomp.c:140
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regcomp.c:143
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regcomp.c:146
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regcomp.c:149
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regcomp.c:152
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regcomp.c:155
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regcomp.c:158
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regcomp.c:161
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regcomp.c:164
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regcomp.c:170
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regcomp.c:173
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regcomp.c:176
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regcomp.c:179
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regcomp.c:680
+msgid "No previous regular expression"
+msgstr ""
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr ""
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:66
+msgid "(C)"
+msgstr ""
+
+#: lib/version-etc.c:68
+msgid ""
+"\n"
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:84
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:88
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:92
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:98
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:104
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:110
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:132
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+
+#: lib/xalloc-die.c:35
+msgid "memory exhausted"
+msgstr ""
+
+#: libparted/arch/beos.c:237
+msgid "Disk Image"
+msgstr ""
+
+#: libparted/arch/beos.c:338 libparted/arch/gnu.c:261
+#: libparted/arch/linux.c:1272
+#, c-format
+msgid "Error opening %s: %s"
+msgstr ""
+
+#: libparted/arch/beos.c:349 libparted/arch/gnu.c:271
+#: libparted/arch/linux.c:1283
+#, c-format
+msgid "Unable to open %s read-write (%s).  %s has been opened read-only."
+msgstr ""
+
+#: libparted/arch/beos.c:411 libparted/arch/linux.c:1431
+#, c-format
+msgid "%s during seek for read on %s"
+msgstr "%s ×Ï ×ÒÅÍÑ ÐÏÚÉÃÉÏÎÉÒÏ×ÁÎÉÑ ÄÌÑ ÞÔÅÎÉÑ ÎÁ %s"
+
+#: libparted/arch/beos.c:444 libparted/arch/gnu.c:449 libparted/arch/gnu.c:548
+#: libparted/arch/gnu.c:676 libparted/arch/linux.c:1391
+#: libparted/arch/linux.c:1469
+#, c-format
+msgid "%s during read on %s"
+msgstr "%s ×Ï ×ÒÅÍÑ ÞÔÅÎÉÑ ÎÁ %s"
+
+#: libparted/arch/beos.c:480 libparted/arch/gnu.c:509
+#: libparted/arch/linux.c:1546
+#, fuzzy, c-format
+msgid "Can't write to %s, because it is opened read-only."
+msgstr ""
+"îÅ×ÏÚÍÏÖÎÏ ÄÏÂÁ×ÉÔØ ÌÏÇÉÞÅÓËÉÊ ÒÁÚÄÅÌ ÎÁ %s, ÐÏÔÏÍÕ ÞÔÏ ÎÅÔ ÒÁÓÛÉÒÅÎÎÏÇÏ "
+"ÒÁÚÄÅÌÁ."
+
+#: libparted/arch/beos.c:496 libparted/arch/linux.c:1570
+#, c-format
+msgid "%s during seek for write on %s"
+msgstr "%s ×Ï ×ÒÅÍÑ ÐÏÚÉÃÉÏÎÉÒÏ×ÁÎÉÑ ÄÌÑ ÚÁÐÉÓÉ ÎÁ %s"
+
+#: libparted/arch/beos.c:533 libparted/arch/gnu.c:585 libparted/arch/gnu.c:630
+#: libparted/arch/gnu.c:707 libparted/arch/linux.c:1517
+#: libparted/arch/linux.c:1612 libparted/arch/linux.c:1684
+#, c-format
+msgid "%s during write on %s"
+msgstr "%s ×Ï ×ÒÅÍÑ ÚÁÐÉÓÉ ÎÁ %s"
+
+#: debug/clearfat/clearfat.c:63 partprobe/partprobe.c:137
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:67
+#, c-format
+msgid ""
+"Usage: %s [OPTION]\n"
+"  or:  %s DEVICE MINOR\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:70
+msgid ""
+"Clear unused space on a FAT partition (a GNU Parted testing tool).\n"
+"\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:74
+msgid "      --help     display this help and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:75
+msgid "      --version  output version information and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:77 partprobe/partprobe.c:154
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:285
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:290
+#, fuzzy, c-format
+msgid "too many arguments"
+msgstr "óÌÉÛËÏÍ ÍÎÏÇÏ ÐÌÏÈÉÈ ÓÔÒÁÎÉÃ."
+
+#: partprobe/partprobe.c:141
+#, c-format
+msgid "Usage: %s [OPTION] [DEVICE]...\n"
+msgstr ""
+
+#: partprobe/partprobe.c:142
+msgid ""
+"Inform the OS of partition table changes.\n"
+"\n"
+"  -d, --no-update  don't update the kernel\n"
+"  -s, --summary    print a summary of contents\n"
+"  -h, --help       display this help and exit\n"
+"  -v, --version    output version information and exit\n"
+msgstr ""
+
+#: partprobe/partprobe.c:150
+msgid ""
+"\n"
+"With no DEVICE, probe all partitions.\n"
+msgstr ""
+
+#: libparted/arch/gnu.c:94
+#, c-format
+msgid "Unable to open %s."
+msgstr ""
+
+#: libparted/arch/gnu.c:114
+msgid "Unable to probe store."
+msgstr ""
+
+#: libparted/arch/gnu.c:352
+msgid ""
+"The partition table cannot be re-read.  This means you need to reboot before "
+"mounting any modified partitions.  You also need to reinstall your boot "
+"loader before you reboot (which may require mounting modified partitions).  "
+"It is impossible do both things!  So you'll need to boot off a rescue disk, "
+"and reinstall your boot loader from the rescue disk.  Read section 4 of the "
+"Parted User documentation for more information."
+msgstr ""
+
+#: libparted/arch/gnu.c:369
+#, fuzzy, c-format
+msgid ""
+"The partition table on %s cannot be re-read (%s).  This means the Hurd knows "
+"nothing about any modifications you made.  You should reboot your computer "
+"before doing anything with %s."
+msgstr ""
+"ñÄÒÏ ÎÅ ÓÍÏÇÌÏ ÓÞÉÔÁÔØ ÔÁÂÌÉÃÕ ÒÁÚÄÅÌÏ× ÎÁ %s (%s).  üÔÏ ÚÎÁÞÉÔ, ÞÔÏ "
+"ÓÄÅÌÁÎÎÙÅ ×ÁÍÉ ÉÚÍÅÎÅÎÉÑ ÎÅÄÏÓÔÕÐÎÙ ÄÌÑ Linux.  ÷Ù ÄÏÌÖÎÙ ÐÅÒÅÚÁÇÒÕÚÉÔØ ×ÁÛ "
+"ËÏÍÐØÀÔÅÒ ÄÏ ÔÏÇÏ, ËÁË ÞÔÏ-ÌÉÂÏ ÄÅÌÁÔØ Ó %s."
+
+#: libparted/arch/gnu.c:380 parted/parted.c:2443
+msgid ""
+"You should reinstall your boot loader before rebooting.  Read section 4 of "
+"the Parted User documentation for more information."
+msgstr ""
+
+#: libparted/arch/gnu.c:772
+#, c-format
+msgid "%s trying to sync %s to disk"
+msgstr ""
+
+#: libparted/arch/linux.c:408
+#, c-format
+msgid "Could not stat device %s - %s."
+msgstr "îÅ ÕÄÁÅÔÓÑ ÐÏÌÕÞÉÔØ ÓÔÁÔÕÓ ÕÓÔÒÏÊÓÔ×Á %s - %s."
+
+#: libparted/arch/linux.c:523
+#, c-format
+msgid ""
+"Could not determine sector size for %s: %s.\n"
+"Using the default sector size (%lld)."
+msgstr ""
+
+#: libparted/arch/linux.c:539
+#, c-format
+msgid ""
+"Device %s has a logical sector size of %lld.  Not all parts of GNU Parted "
+"support this at the moment, and the working code is HIGHLY EXPERIMENTAL.\n"
+msgstr ""
+
+#: libparted/arch/linux.c:579
+#, fuzzy, c-format
+msgid "Unable to determine the size of %s (%s)."
+msgstr "îÅ ÕÄÁÅÔÓÑ ÏÐÒÅÄÅÌÉÔØ ÒÁÚÍÅÒ %s (%s)"
+
+#: libparted/arch/linux.c:668
+#, c-format
+msgid "Could not get identity of device %s - %s"
+msgstr "îÅ ÕÄÁÅÔÓÑ ÐÏÌÕÞÉÔØ ÉÄÅÎÔÉÆÉËÁÔÏÒ ÕÓÔÒÏÊÓÔ×Á %s - %s"
+
+#: libparted/arch/linux.c:677
+msgid "Generic IDE"
+msgstr ""
+
+#: libparted/arch/linux.c:698
+#, c-format
+msgid ""
+"Device %s has multiple (%d) logical sectors per physical sector.\n"
+"GNU Parted supports this EXPERIMENTALLY for some special disk label/file "
+"system combinations, e.g. GPT and ext2/3.\n"
+"Please consult the web site for up-to-date information."
+msgstr ""
+
+#: libparted/arch/linux.c:873
+#, c-format
+msgid "Error initialising SCSI device %s - %s"
+msgstr "ïÛÉÂËÁ ÉÎÉÃÉÁÌÉÚÁÃÉÉ SCSI-ÕÓÔÒÏÊÓÔ×Á %s - %s"
+
+#: libparted/arch/linux.c:928
+#, c-format
+msgid ""
+"The device %s has zero length, and can't possibly store a file system or "
+"partition table.  Perhaps you selected the wrong device?"
+msgstr ""
+
+#: libparted/arch/linux.c:1032
+#, fuzzy, c-format
+msgid ""
+"Unable to determine geometry of file/device %s.  You should not use Parted "
+"unless you REALLY know what you're doing!"
+msgstr ""
+"îÅ ÕÄÁÅÔÓÑ ÏÐÒÅÄÅÌÉÔØ ÇÅÏÍÅÔÒÉÀ ÆÁÊÌÁ/ÕÓÔÒÏÊÓÔ×Á.  ÷Ù ÎÅ ÄÏÌÖÎÙ ÉÓÐÏÌØÚÏ×ÁÔØ "
+"Parted, ÅÓÌÉ ×Ù ÎÅ ÚÎÁÅÔÅ îá÷åòîñëá, ÞÔÏ ÄÅÌÁÅÔÅ!"
+
+#: libparted/arch/linux.c:1110
+msgid "DAC960 RAID controller"
+msgstr ""
+
+#: libparted/arch/linux.c:1115
+msgid "Promise SX8 SATA Device"
+msgstr ""
+
+#: libparted/arch/linux.c:1120
+msgid "IBM S390 DASD drive"
+msgstr ""
+
+#: libparted/arch/linux.c:1125
+msgid "IBM iSeries Virtual DASD"
+msgstr ""
+
+#: libparted/arch/linux.c:1130
+msgid "Compaq Smart Array"
+msgstr ""
+
+#: libparted/arch/linux.c:1135
+msgid "ATARAID Controller"
+msgstr ""
+
+#: libparted/arch/linux.c:1140
+msgid "I2O Controller"
+msgstr ""
+
+#: libparted/arch/linux.c:1145
+msgid "User-Mode Linux UBD"
+msgstr ""
+
+#: libparted/arch/linux.c:1156
+msgid "Linux device-mapper"
+msgstr ""
+
+#: libparted/arch/linux.c:1162
+#, fuzzy
+msgid "Unknown"
+msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ"
+
+#: libparted/arch/linux.c:1169
+msgid "ped_device_new()  Unsupported device type"
+msgstr "ped_device_new()  îÅÐÏÄÄÅÒÖÉ×ÁÅÍÙÊ ÔÉÐ ÕÓÔÒÏÊÓÔ×Á"
+
+#: libparted/arch/linux.c:2083
+#, c-format
+msgid ""
+"Error informing the kernel about modifications to partition %s -- %s.  This "
+"means Linux won't know about any changes you made to %s until you reboot -- "
+"so you shouldn't mount it or use it in any way before rebooting."
+msgstr ""
+
+#: libparted/arch/linux.c:2262
+#, fuzzy, c-format
+msgid ""
+"parted was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made. "
+msgstr ""
+"ñÄÒÏ ÎÅ ÓÍÏÇÌÏ ÓÞÉÔÁÔØ ÔÁÂÌÉÃÕ ÒÁÚÄÅÌÏ× ÎÁ %s (%s).  üÔÏ ÚÎÁÞÉÔ, ÞÔÏ "
+"ÓÄÅÌÁÎÎÙÅ ×ÁÍÉ ÉÚÍÅÎÅÎÉÑ ÎÅÄÏÓÔÕÐÎÙ ÄÌÑ Linux.  ÷Ù ÄÏÌÖÎÙ ÐÅÒÅÚÁÇÒÕÚÉÔØ ×ÁÛ "
+"ËÏÍÐØÀÔÅÒ ÄÏ ÔÏÇÏ, ËÁË ÞÔÏ-ÌÉÂÏ ÄÅÌÁÔØ Ó %s."
+
+#: libparted/arch/linux.c:2368
+#, fuzzy, c-format
+msgid ""
+"The kernel was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made until you "
+"reboot.  You should reboot your computer before doing anything with %s."
+msgstr ""
+"ñÄÒÏ ÎÅ ÓÍÏÇÌÏ ÓÞÉÔÁÔØ ÔÁÂÌÉÃÕ ÒÁÚÄÅÌÏ× ÎÁ %s (%s).  üÔÏ ÚÎÁÞÉÔ, ÞÔÏ "
+"ÓÄÅÌÁÎÎÙÅ ×ÁÍÉ ÉÚÍÅÎÅÎÉÑ ÎÅÄÏÓÔÕÐÎÙ ÄÌÑ Linux.  ÷Ù ÄÏÌÖÎÙ ÐÅÒÅÚÁÇÒÕÚÉÔØ ×ÁÛ "
+"ËÏÍÐØÀÔÅÒ ÄÏ ÔÏÇÏ, ËÁË ÞÔÏ-ÌÉÂÏ ÄÅÌÁÔØ Ó %s."
+
+#: libparted/cs/geom.c:162
+#, fuzzy
+msgid "Can't have the end before the start!"
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÐÅÒÅÍÅÓÔÉÔØ ËÏÎÅà ÒÁÚÄÅÌÁ ÚÁ ÎÁÞÁÌÏ."
+
+#: libparted/cs/geom.c:169
+#, fuzzy
+msgid "Can't have a partition outside the disk!"
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ÒÁÚÄÅÌ ×ÎÅ ÕÓÔÒÏÊÓÔ×Á."
+
+#: libparted/cs/geom.c:366
+#, fuzzy, c-format
+msgid "Attempt to write sectors %ld-%ld outside of partition on %s."
+msgstr "ðÏÐÙÔËÁ ÚÁÐÉÓÉ ÓÏËÔÏÒÏ× %ld-%ld ÚÁ ÐÒÅÄÅÌÙ ÒÁÚÄÅÌÁ ÎÁ %s"
+
+#: libparted/cs/geom.c:406 libparted/fs/linux_swap/linux_swap.c:475
+msgid "checking for bad blocks"
+msgstr ""
+
+#: libparted/debug.c:102
+#, c-format
+msgid "Backtrace has %d calls on stack:\n"
+msgstr ""
+
+#: libparted/debug.c:114
+#, c-format
+msgid "Assertion (%s) at %s:%d in function %s() failed."
+msgstr ""
+
+#: libparted/disk.c:203
+#, c-format
+msgid "Unable to open %s - unrecognised disk label."
+msgstr "îÅ ÕÄÁÅÔÓÑ ÏÔËÒÙÔØ %s - ÎÅÒÁÓÐÏÚÎÁÎÎÁÑ ÍÅÔËÁ ÄÉÓËÁ."
+
+#: libparted/disk.c:471
+#, c-format
+msgid ""
+"This libparted doesn't have write support for %s.  Perhaps it was compiled "
+"read-only."
+msgstr ""
+
+#: libparted/disk.c:598
+#, fuzzy, c-format
+msgid "Partition %d is %s, but the file system is %s."
+msgstr "òÁÚÄÅÌ ÓÌÉÛËÏÍ ÍÁÌ ÄÌÑ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ FAT"
+
+#: libparted/disk.c:1075
+#, fuzzy, c-format
+msgid "%s disk labels do not support extended partitions."
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÓËÏÐÉÒÏ×ÁÔØ ÒÁÓÛÉÒÅÎÎÙÊ ÒÁÚÄÅÌ."
+
+#: libparted/disk.c:1634
+#, fuzzy, c-format
+msgid "%s disk labels don't support logical or extended partitions."
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÓËÏÐÉÒÏ×ÁÔØ ÒÁÓÛÉÒÅÎÎÙÊ ÒÁÚÄÅÌ."
+
+#: libparted/disk.c:1647
+#, fuzzy
+msgid "Too many primary partitions."
+msgstr "óÌÉÛËÏÍ ÍÎÏÇÏ ÐÌÏÈÉÈ ÓÔÒÁÎÉÃ."
+
+#: libparted/disk.c:1656
+#, c-format
+msgid ""
+"Can't add a logical partition to %s, because there is no extended partition."
+msgstr ""
+"îÅ×ÏÚÍÏÖÎÏ ÄÏÂÁ×ÉÔØ ÌÏÇÉÞÅÓËÉÊ ÒÁÚÄÅÌ ÎÁ %s, ÐÏÔÏÍÕ ÞÔÏ ÎÅÔ ÒÁÓÛÉÒÅÎÎÏÇÏ "
+"ÒÁÚÄÅÌÁ."
+
+#: libparted/disk.c:1680
+#, fuzzy, c-format
+msgid "Can't have more than one extended partition on %s."
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÉÍÅÔØ ÂÏÌØÛÅ ÏÄÎÏÇÏ ÒÁÓÛÉÒÅÎÎÏÇÏ ÒÁÚÄÅÌÁ ÎÁ %s"
+
+#: libparted/disk.c:1690
+#, fuzzy
+msgid "Can't have logical partitions outside of the extended partition."
+msgstr "îÅ×ÏÚÍÏÖÎÏ Õ×ÅÌÉÞÉÔØ ÌÏÇÉÞÅÓËÉÊ ÒÁÚÄÅÌ ×ÎÅ ÒÁÓÛÉÒÅÎÎÏÇÏ ÒÁÚÄÅÌÁ."
+
+#: libparted/disk.c:1715
+#, fuzzy, c-format
+msgid "Can't have a logical partition outside of the extended partition on %s."
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÄÏÂÁ×ÉÔØ ÌÏÇÉÞÅÓËÉÊ ÒÁÚÄÅÌ ×ÎÅ ÒÁÓÛÉÒÅÎÎÏÇÏ ÒÁÚÄÅÌÁ ÎÁ %s."
+
+#: libparted/disk.c:1725 libparted/disk.c:1779 libparted/disk.c:1945
+#, fuzzy
+msgid "Can't have overlapping partitions."
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÓËÏÐÉÒÏ×ÁÔØ ÒÁÓÛÉÒÅÎÎÙÊ ÒÁÚÄÅÌ."
+
+#: libparted/disk.c:1733
+#, fuzzy
+msgid "Can't have a primary partition inside an extended partition."
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÄÏÂÁ×ÉÔØ ÏÓÎÏ×ÎÏÊ ÒÁÚÄÅÌ ×ÎÕÔÒØ ÒÁÓÛÉÒÅÎÎÏÇÏ."
+
+#: libparted/disk.c:2140
+msgid "metadata"
+msgstr "ÍÅÔÁÄÁÎÎÙÅ"
+
+#: libparted/disk.c:2142
+msgid "free"
+msgstr "Ó×ÏÂÏÄÎÏ"
+
+#: libparted/disk.c:2144 parted/ui.c:1169 parted/ui.c:1197
+msgid "extended"
+msgstr "ÒÁÓÛÉÒÅÎÎÙÊ"
+
+#: libparted/disk.c:2146 parted/ui.c:1173 parted/ui.c:1201
+msgid "logical"
+msgstr "ÌÏÇÉÞÅÓËÉÊ"
+
+#: libparted/disk.c:2148 parted/ui.c:1165 parted/ui.c:1193
+msgid "primary"
+msgstr "ÏÓÎÏ×ÎÏÊ"
+
+#: libparted/disk.c:2164
+msgid "boot"
+msgstr "boot"
+
+#: libparted/disk.c:2166
+#, fuzzy
+msgid "root"
+msgstr "boot"
+
+#: libparted/disk.c:2168
+msgid "swap"
+msgstr ""
+
+#: libparted/disk.c:2170
+msgid "hidden"
+msgstr "ÓËÒÙÔÙÊ"
+
+#: libparted/disk.c:2172
+msgid "raid"
+msgstr ""
+
+#: libparted/disk.c:2174
+msgid "lvm"
+msgstr ""
+
+#: libparted/disk.c:2176
+msgid "lba"
+msgstr ""
+
+#: libparted/disk.c:2178
+msgid "hp-service"
+msgstr ""
+
+#: libparted/disk.c:2180
+msgid "palo"
+msgstr ""
+
+#: libparted/disk.c:2182
+msgid "prep"
+msgstr ""
+
+#: libparted/disk.c:2184
+msgid "msftres"
+msgstr ""
+
+#: libparted/disk.c:2190
+#, c-format
+msgid "Unknown partition flag, %d."
+msgstr ""
+
+#: libparted/exception.c:78
+msgid "Information"
+msgstr "éÎÆÏÒÍÁÃÉÑ"
+
+#: libparted/exception.c:79
+msgid "Warning"
+msgstr "ðÒÅÄÕÐÒÅÖÄÅÎÉÅ"
+
+#: libparted/exception.c:80
+msgid "Error"
+msgstr "ïÛÉÂËÁ"
+
+#: libparted/exception.c:81
+msgid "Fatal"
+msgstr "æÁÔÁÌØÎÁÑ ÏÛÉÂËÁ"
+
+#: libparted/exception.c:82
+msgid "Bug"
+msgstr "ïÛÉÂËÁ"
+
+#: libparted/exception.c:83
+msgid "No Implementation"
+msgstr "îÅÔ ÒÅÁÌÉÚÁÃÉÉ"
+
+#: libparted/exception.c:87
+msgid "Fix"
+msgstr "éÓÐÒÁ×ÉÔØ"
+
+#: libparted/exception.c:88
+msgid "Yes"
+msgstr "äÁ"
+
+#: libparted/exception.c:89
+msgid "No"
+msgstr "îÅÔ"
+
+#: libparted/exception.c:90
+msgid "OK"
+msgstr "OK"
+
+#: libparted/exception.c:91
+msgid "Retry"
+msgstr "ðÏ×ÔÏÒÉÔØ"
+
+#: libparted/exception.c:92
+msgid "Ignore"
+msgstr "éÇÎÏÒÉÒÏ×ÁÔØ"
+
+#: libparted/exception.c:93
+msgid "Cancel"
+msgstr "ïÔÍÅÎÉÔØ"
+
+#: libparted/exception.c:133
+#, fuzzy, c-format
+msgid ""
+"A bug has been detected in GNU Parted.  Refer to the web site of parted "
+"http://www.gnu.org/software/parted/parted.html for more informations of what "
+"could be useful for bug submitting!  Please email a bug report to bug-"
+"parted@gnu.org containing at least the version (%s) and the following "
+"message:  "
+msgstr ""
+"÷ GNU parted ÂÙÌÁ ÏÂÎÁÒÕÖÅÎÁ ÏÛÉÂËÁ.  ðÏÖÁÌÕÊÓÔÁ, ÐÏÛÌÉÔÅ ÐÏ ÁÄÒÅÓÕ bug-"
+"parted@gnu.org ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ, ÓÏÄÅÒÖÁÝÅÅ ×ÅÒÓÉÀ (%s) É ÓÌÅÄÕÀÝÅÅ "
+"ÓÏÏÂÝÅÎÉÅ:"
+
+#: libparted/filesys.c:384
+msgid "Could not detect file system."
+msgstr "îÅ ÕÄÁÅÔÓÑ ÏÐÒÅÄÅÌÉÔØ ÆÁÊÌÏ×ÕÀ ÓÉÓÔÅÍÕ."
+
+#: libparted/filesys.c:395
+msgid "The file system is bigger than its volume!"
+msgstr ""
+
+#: libparted/filesys.c:403
+#, fuzzy, c-format
+msgid "Support for opening %s file systems is not implemented yet."
+msgstr "ðÏÄÄÅÒÖËÁ ÄÌÑ ËÏÐÉÒÏ×ÁÎÉÑ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ ÄÌÑ %s ÐÏËÁ ÎÅ ÒÅÁÌÉÚÏ×ÁÎÁ."
+
+#: libparted/filesys.c:445
+#, fuzzy, c-format
+msgid "Support for creating %s file systems is not implemented yet."
+msgstr "ðÏÄÄÅÒÖËÁ ÆÏÒÍÁÔÉÒÏ×ÁÎÉÑ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ ÄÌÑ %s ÐÏËÁ ÎÅ ÒÅÁÌÉÚÏ×ÁÎÁ."
+
+#: libparted/filesys.c:505
+#, fuzzy, c-format
+msgid "Support for checking %s file systems is not implemented yet."
+msgstr "ðÏÄÄÅÒÖËÁ ÄÌÑ ÐÒÏ×ÅÒËÉ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ ÄÌÑ %s ÐÏËÁ ÎÅ ÒÅÁÌÉÚÏ×ÁÎÁ."
+
+#: libparted/filesys.c:571
+msgid "raw block copying"
+msgstr ""
+
+#: libparted/filesys.c:582
+#, fuzzy
+msgid "growing file system"
+msgstr "îÅÉÚ×ÅÓÔÎÙÊ ÔÉÐ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ."
+
+#: libparted/filesys.c:622
+#, fuzzy
+msgid "Can't copy onto an overlapping partition."
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÓËÏÐÉÒÏ×ÁÔØ ÒÁÓÛÉÒÅÎÎÙÊ ÒÁÚÄÅÌ."
+
+#: libparted/filesys.c:644
+#, c-format
+msgid ""
+"Direct support for copying file systems is not yet implemented for %s.  "
+"However, support for resizing is implemented.  Therefore, the file system "
+"can be copied if the new partition is at least as big as the old one.  So, "
+"either shrink the partition you are trying to copy, or copy to a bigger "
+"partition."
+msgstr ""
+
+#: libparted/filesys.c:658
+#, fuzzy, c-format
+msgid "Support for copying %s file systems is not implemented yet."
+msgstr "ðÏÄÄÅÒÖËÁ ÄÌÑ ËÏÐÉÒÏ×ÁÎÉÑ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ ÄÌÑ %s ÐÏËÁ ÎÅ ÒÅÁÌÉÚÏ×ÁÎÁ."
+
+#: libparted/filesys.c:696
+#, fuzzy, c-format
+msgid "Support for resizing %s file systems is not implemented yet."
+msgstr ""
+"ðÏÄÄÅÒÖËÁ ÄÌÑ ÉÚÍÅÎÅÎÉÑ ÒÁÚÍÅÒÁ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ ÄÌÑ %s ÐÏËÁ ÎÅ ÒÅÁÌÉÚÏ×ÁÎÁ."
+
+#: libparted/fs/reiserfs/reiserfs.c:315
+msgid "creating"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:402
+#, fuzzy
+msgid "The file system is in an invalid state.  Perhaps it is mounted?"
+msgstr "æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÉÍÅÅÔ ÎÅ×ÅÒÎÕÀ ÄÌÑ FAT ÓÉÇÎÁÔÕÒÕ."
+
+#: libparted/fs/reiserfs/reiserfs.c:410
+msgid "The file system is in old (unresizeable) format."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:416
+msgid "Invalid free blocks count.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:431
+#, fuzzy
+msgid "checking"
+msgstr "check"
+
+#: libparted/fs/reiserfs/reiserfs.c:437
+msgid "Reiserfs tree seems to be corrupted.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:449
+#, fuzzy
+msgid ""
+"The reiserfs file system passed a basic check.  For a more comprehensive "
+"check, run reiserfsck --check."
+msgstr ""
+"æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ext2 ÐÒÏÛÌÁ ÏÓÎÏ×ÎÕÀ ÐÒÏ×ÅÒËÕ.  äÌÑ ÂÏÌÅÅ ÏÂÓÔÏÑÔÅÌØÎÏÊ "
+"ÐÒÏ×ÅÒËÉ, ÉÓÐÏÌØÚÕÊÔÅ ÐÒÏÇÒÁÍÍÕ e2fsck."
+
+#: libparted/fs/reiserfs/reiserfs.c:474
+#, fuzzy
+msgid "Sorry, can't move the start of reiserfs partitions yet."
+msgstr "ë ÓÏÖÁÌÅÎÉÀ, ÐÅÒÅÍÅÝÅÎÉÅ ÎÁÞÁÌÁ ÒÁÚÄÅÌÏ× ext2 ÐÏËÁ ÎÅ×ÏÚÍÏÖÎÏ!"
+
+#: libparted/fs/reiserfs/reiserfs.c:490
+msgid "Couldn't reopen device abstraction layer for read/write."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:508 libparted/fs/ext2/ext2_resize.c:552
+#: libparted/fs/hfs/hfs.c:250 libparted/fs/hfs/hfs.c:629
+#, fuzzy
+msgid "shrinking"
+msgstr "ðÒÅÄÕÐÒÅÖÄÅÎÉÅ"
+
+#: libparted/fs/reiserfs/reiserfs.c:520
+#, fuzzy
+msgid "expanding"
+msgstr "ðÒÅÄÕÐÒÅÖÄÅÎÉÅ"
+
+#: libparted/fs/reiserfs/reiserfs.c:592
+msgid "Couldn't create reiserfs device abstraction handler."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:606
+#, c-format
+msgid "Device is too small for %lu blocks."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:615
+msgid "copying"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:682
+#, c-format
+msgid "Couldn't resolve symbol %s.  Error: %s."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:704
+msgid "GNU Parted found an invalid libreiserfs library."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:715
+#, c-format
+msgid ""
+"GNU Parted has detected libreiserfs interface version mismatch.  Found %d-%"
+"d, required %d. ReiserFS support will be disabled."
+msgstr ""
+
+#: libparted/labels/aix.c:137
+#, fuzzy
+msgid "Support for reading AIX disk labels is is not implemented yet."
+msgstr "ðÏÄÄÅÒÖËÁ ÆÏÒÍÁÔÉÒÏ×ÁÎÉÑ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ ÄÌÑ %s ÐÏËÁ ÎÅ ÒÅÁÌÉÚÏ×ÁÎÁ."
+
+#: libparted/labels/aix.c:148
+#, fuzzy
+msgid "Support for writing AIX disk labels is is not implemented yet."
+msgstr "ðÏÄÄÅÒÖËÁ ÆÏÒÍÁÔÉÒÏ×ÁÎÉÑ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ ÄÌÑ %s ÐÏËÁ ÎÅ ÒÅÁÌÉÚÏ×ÁÎÁ."
+
+#: libparted/labels/aix.c:161
+#, fuzzy
+msgid ""
+"Support for adding partitions to AIX disk labels is not implemented yet."
+msgstr "ðÏÄÄÅÒÖËÁ ÆÏÒÍÁÔÉÒÏ×ÁÎÉÑ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ ÄÌÑ %s ÐÏËÁ ÎÅ ÒÅÁÌÉÚÏ×ÁÎÁ."
+
+#: libparted/labels/aix.c:171
+#, fuzzy
+msgid ""
+"Support for duplicating partitions in AIX disk labels is not implemented yet."
+msgstr "ðÏÄÄÅÒÖËÁ ÆÏÒÍÁÔÉÒÏ×ÁÎÉÑ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ ÄÌÑ %s ÐÏËÁ ÎÅ ÒÅÁÌÉÚÏ×ÁÎÁ."
+
+#: libparted/labels/aix.c:189
+#, fuzzy
+msgid ""
+"Support for setting system type of partitions in AIX disk labels is not "
+"implemented yet."
+msgstr "ðÏÄÄÅÒÖËÁ ÆÏÒÍÁÔÉÒÏ×ÁÎÉÑ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ ÄÌÑ %s ÐÏËÁ ÎÅ ÒÅÁÌÉÚÏ×ÁÎÁ."
+
+#: libparted/labels/aix.c:199
+#, fuzzy
+msgid "Support for setting flags in AIX disk labels is not implemented yet."
+msgstr "ðÏÄÄÅÒÖËÁ ÆÏÒÍÁÔÉÒÏ×ÁÎÉÑ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ ÄÌÑ %s ÐÏËÁ ÎÅ ÒÅÁÌÉÚÏ×ÁÎÁ."
+
+#: libparted/labels/bsd.c:501 libparted/labels/dasd.c:755
+#: libparted/labels/dos.c:1974 libparted/labels/dvh.c:770
+#: libparted/labels/gpt.c:1448 libparted/labels/loop.c:248
+#: libparted/labels/mac.c:1408 libparted/labels/pc98.c:759
+#: libparted/labels/rdb.c:1041 libparted/labels/sun.c:705
+msgid "Unable to satisfy all constraints on the partition."
+msgstr ""
+
+#: libparted/labels/bsd.c:526
+#, fuzzy
+msgid "Unable to allocate a bsd disklabel slot."
+msgstr "îÅ ÕÄÁÅÔÓÑ ÏÔËÒÙÔØ %s - ÎÅÒÁÓÐÏÚÎÁÎÎÁÑ ÍÅÔËÁ ÄÉÓËÁ."
+
+#: libparted/labels/dasd.c:166
+#, fuzzy
+msgid "Unable to determine the block size of this dasd"
+msgstr "îÅ ÕÄÁÅÔÓÑ ÏÐÒÅÄÅÌÉÔØ ÒÁÚÍÅÒ %s (%s)"
+
+#: libparted/labels/dasd.c:781
+#, fuzzy
+msgid "Unable to allocate a dasd disklabel slot"
+msgstr "îÅ ÕÄÁÅÔÓÑ ÏÔËÒÙÔØ %s - ÎÅÒÁÓÐÏÚÎÁÎÎÁÑ ÍÅÔËÁ ÄÉÓËÁ."
+
+#: libparted/labels/dos.c:827
+#, fuzzy, c-format
+msgid "Invalid partition table on %s -- wrong signature %x."
+msgstr "îÅ×ÅÒÎÁÑ ÔÁÂÌÉÃÁ ÒÁÚÄÅÌÏ× ÎÁ %s - ÎÅÐÒÁ×ÉÌØÎÁÑ ÓÉÇÎÁÔÕÒÁ %x"
+
+#: libparted/labels/dos.c:855
+#, c-format
+msgid "Invalid partition table - recursive partition on %s."
+msgstr "îÅ×ÅÒÎÁÑ ÔÁÂÌÉÃÁ ÒÁÚÄÅÌÏ× - ÒÅËÕÒÓÉ×ÎÙÊ ÒÁÚÄÅÌ ÎÁ %s."
+
+#: libparted/labels/dos.c:1318
+#, fuzzy
+msgid "Extended partitions cannot be hidden on msdos disk labels."
+msgstr "òÁÚÄÅÌ ext2 ÎÅ ÍÏÖÅÔ ÂÙÔØ ÓËÒÙÔ."
+
+#: libparted/labels/dos.c:1958
+msgid "Parted can't resize partitions managed by Windows Dynamic Disk."
+msgstr ""
+
+#: libparted/labels/dvh.c:190
+#, fuzzy, c-format
+msgid "%s has no extended partition (volume header partition)."
+msgstr ""
+"îÅ×ÏÚÍÏÖÎÏ ÉÚÍÅÎÉÔØ ÒÁÚÍÅÒ ÒÁÓÛÉÒÅÎÎÏÇÏ ÒÁÚÄÅÌÁ ÔÁË, ÞÔÏÂÙ ÉÓËÌÀÞÉÔØ "
+"ÌÏÇÉÞÅÓËÉÊ ÒÁÚÄÅÌ."
+
+#: libparted/labels/dvh.c:313
+msgid "Checksum is wrong, indicating the partition table is corrupt."
+msgstr ""
+
+#: libparted/labels/dvh.c:616
+#, fuzzy
+msgid "Only primary partitions can be root partitions."
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÄÏÂÁ×ÉÔØ ÏÓÎÏ×ÎÏÊ ÒÁÚÄÅÌ ×ÎÕÔÒØ ÒÁÓÛÉÒÅÎÎÏÇÏ."
+
+#: libparted/labels/dvh.c:630
+#, fuzzy
+msgid "Only primary partitions can be swap partitions."
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÄÏÂÁ×ÉÔØ ÏÓÎÏ×ÎÏÊ ÒÁÚÄÅÌ ×ÎÕÔÒØ ÒÁÓÛÉÒÅÎÎÏÇÏ."
+
+#: libparted/labels/dvh.c:644
+msgid "Only logical partitions can be a boot file."
+msgstr ""
+
+#: libparted/labels/dvh.c:721
+msgid "Only logical partitions (boot files) have a name."
+msgstr ""
+
+#: libparted/labels/dvh.c:812
+#, fuzzy
+msgid "Too many primary partitions"
+msgstr "óÌÉÛËÏÍ ÍÎÏÇÏ ÐÌÏÈÉÈ ÓÔÒÁÎÉÃ."
+
+#: libparted/labels/fdasd.c:103
+#, c-format
+msgid ""
+"%s open error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:107
+#, c-format
+msgid ""
+"%s seek error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:110
+#, c-format
+msgid ""
+"%s read error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:113
+#, fuzzy, c-format
+msgid ""
+"%s write error\n"
+"%s\n"
+msgstr "%s ×Ï ×ÒÅÍÑ ÚÁÐÉÓÉ ÎÁ %s"
+
+#: libparted/labels/fdasd.c:116
+#, c-format
+msgid ""
+"%s IOCTL error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:119
+#, c-format
+msgid ""
+"%s API version mismatch\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:122
+#, c-format
+msgid ""
+"%s Unsupported disk type\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:126
+#, c-format
+msgid ""
+"%s Unsupported disk format\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:130
+#, c-format
+msgid ""
+"%s Disk in use\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:133
+#, c-format
+msgid ""
+"%s Config file syntax error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:137
+#, c-format
+msgid ""
+"%s Volume label is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:141
+#, c-format
+msgid ""
+"%s a data set name is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:145
+#, c-format
+msgid ""
+"%s space allocation\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:149
+#, c-format
+msgid ""
+"%s device verification failed\n"
+"The specified device is not a valid DASD device\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:154
+#, c-format
+msgid ""
+"%s Fatal error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/gpt.c:454
+#, c-format
+msgid ""
+"%s contains GPT signatures, indicating that it has a GPT table.  However, it "
+"does not have a valid fake msdos partition table, as it should.  Perhaps it "
+"was corrupted -- possibly by a program that doesn't understand GPT partition "
+"tables.  Or perhaps you deleted the GPT table, and are now using an msdos "
+"partition table.  Is this a GPT partition table?"
+msgstr ""
+
+#: libparted/labels/gpt.c:648
+#, c-format
+msgid ""
+"The format of the GPT partition table is version %x, which is newer than "
+"what Parted can recognise.  Please tell us!  bug-parted@gnu.org"
+msgstr ""
+
+#: libparted/labels/gpt.c:698
+#, c-format
+msgid ""
+"Not all of the space available to %s appears to be used, you can fix the GPT "
+"to use all of the space (an extra %llu blocks) or continue with the current "
+"setting? "
+msgstr ""
+
+#: libparted/labels/gpt.c:827
+msgid ""
+"The backup GPT table is not at the end of the disk, as it should be.  This "
+"might mean that another operating system believes the disk is smaller.  Fix, "
+"by moving the backup to the end (and removing the old backup)?"
+msgstr ""
+
+#: libparted/labels/gpt.c:862
+msgid ""
+"The primary GPT table is corrupt, but the backup appears OK, so that will be "
+"used."
+msgstr ""
+
+#: libparted/labels/gpt.c:870
+msgid ""
+"Both the primary and backup GPT tables are corrupt.  Try making a fresh "
+"table, and using Parted's rescue feature to recover partitions."
+msgstr ""
+
+#: libparted/labels/mac.c:181
+#, c-format
+msgid "Invalid signature %x for Mac disk labels."
+msgstr ""
+
+#: libparted/labels/mac.c:226
+msgid "Partition map has no partition map entry!"
+msgstr ""
+
+#: libparted/labels/mac.c:273
+#, c-format
+msgid "%s is too small for a Mac disk label!"
+msgstr ""
+
+#: libparted/labels/mac.c:532
+#, c-format
+msgid "Partition %d has an invalid signature %x."
+msgstr ""
+
+#: libparted/labels/mac.c:550
+#, c-format
+msgid "Partition %d has an invalid length of 0 bytes!"
+msgstr ""
+
+#: libparted/labels/mac.c:580
+#, fuzzy
+msgid "The data region doesn't start at the start of the partition."
+msgstr "îÏ×ÙÊ ÒÁÚÄÅÌ ÐÅÒÅËÒÙ×ÁÅÔÓÑ Ó ÄÒÕÇÉÍ ÒÁÚÄÅÌÏÍ."
+
+#: libparted/labels/mac.c:597
+#, fuzzy
+msgid "The boot region doesn't start at the start of the partition."
+msgstr "îÏ×ÙÊ ÒÁÚÄÅÌ ÐÅÒÅËÒÙ×ÁÅÔÓÑ Ó ÄÒÕÇÉÍ ÒÁÚÄÅÌÏÍ."
+
+#: libparted/labels/mac.c:611
+#, fuzzy
+msgid "The partition's boot region doesn't occupy the entire partition."
+msgstr "îÏ×ÙÊ ÒÁÚÄÅÌ ÐÅÒÅËÒÙ×ÁÅÔÓÑ Ó ÄÒÕÇÉÍ ÒÁÚÄÅÌÏÍ."
+
+#: libparted/labels/mac.c:622
+#, fuzzy
+msgid "The partition's data region doesn't occupy the entire partition."
+msgstr "îÏ×ÙÊ ÒÁÚÄÅÌ ÐÅÒÅËÒÙ×ÁÅÔÓÑ Ó ÄÒÕÇÉÍ ÒÁÚÄÅÌÏÍ."
+
+#: libparted/labels/mac.c:675
+#, c-format
+msgid ""
+"Weird block size on device descriptor: %d bytes is not divisible by 512."
+msgstr ""
+
+#: libparted/labels/mac.c:688
+#, c-format
+msgid ""
+"The driver descriptor says the physical block size is %d bytes, but Linux "
+"says it is %d bytes."
+msgstr ""
+
+#: libparted/labels/mac.c:736
+msgid "No valid partition map found."
+msgstr ""
+
+#: libparted/labels/mac.c:795
+#, c-format
+msgid ""
+"Conflicting partition map entry sizes!  Entry 1 says it is %d, but entry %d "
+"says it is %d!"
+msgstr ""
+
+#: libparted/labels/mac.c:822
+msgid "Weird!  There are 2 partitions map entries!"
+msgstr ""
+
+#: libparted/labels/mac.c:1347
+msgid ""
+"Changing the name of a root or swap partition will prevent Linux from "
+"recognising it as such."
+msgstr ""
+
+#: libparted/labels/mac.c:1443
+#, fuzzy
+msgid "Can't add another partition -- the partition map is too small!"
+msgstr ""
+"îÅ ÕÄÁÅÔÓÑ ÄÏÂÁ×ÉÔØ ÅÝÅ ÏÄÉÎ ÏÓÎÏ×ÎÏÊ ÒÁÚÄÅÌ, ÓÕÝÅÓÔ×ÕÅÔ ÐÒÅÄÅÌ × 4 ÏÓÎÏ×ÎÙÈ "
+"ÒÁÚÄÅÌÁ."
+
+#: libparted/labels/pc98.c:354
+#, fuzzy, c-format
+msgid "Invalid partition table on %s."
+msgstr "îÅ×ÅÒÎÁÑ ÔÁÂÌÉÃÁ ÒÁÚÄÅÌÏ× - ÒÅËÕÒÓÉ×ÎÙÊ ÒÁÚÄÅÌ ÎÁ %s."
+
+#: libparted/labels/pc98.c:406 libparted/labels/pc98.c:484
+#, c-format
+msgid ""
+"Partition %d isn't aligned to cylinder boundaries.  This is still "
+"unsupported."
+msgstr ""
+
+#: libparted/labels/pc98.c:791
+#, fuzzy
+msgid "Can't add another partition."
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÓËÏÐÉÒÏ×ÁÔØ ÒÁÓÛÉÒÅÎÎÙÊ ÒÁÚÄÅÌ."
+
+#: libparted/labels/rdb.c:162
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:497
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen."
+msgstr ""
+
+#: libparted/labels/rdb.c:581
+#, fuzzy, c-format
+msgid "%s : Loop detected at block %d."
+msgstr "%s ÎÅ Ñ×ÌÑÅÔÓÑ ÂÌÏÞÎÙÍ ÕÓÔÒÏÊÓÔ×ÏÍ."
+
+#: libparted/labels/rdb.c:600
+#, c-format
+msgid "%s : The %s list seems bad at block %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:689
+#, c-format
+msgid "%s : Failed to list bad blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:697
+#, c-format
+msgid "%s : Failed to list partition blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:705
+#, c-format
+msgid "%s : Failed to list file system blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:713
+#, c-format
+msgid "%s : Failed to list boot blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:740
+#, fuzzy, c-format
+msgid "Failed to write partition block at %d."
+msgstr "îÅ ÕÄÁÅÔÓÑ ÏÐÒÅÄÅÌÉÔØ, Ñ×ÌÑÅÔÓÑ ÌÉ ÒÁÚÄÅÌ ÚÁÍÏÎÔÉÒÏ×ÁÎÎÙÍ."
+
+#: libparted/labels/rdb.c:1069
+#, fuzzy
+msgid "Unable to allocate a partition number."
+msgstr "îÅ ÕÄÁÅÔÓÑ ÏÐÒÅÄÅÌÉÔØ, Ñ×ÌÑÅÔÓÑ ÌÉ ÒÁÚÄÅÌ ÚÁÍÏÎÔÉÒÏ×ÁÎÎÙÍ."
+
+#: libparted/labels/sun.c:145
+msgid "Corrupted Sun disk label detected."
+msgstr ""
+
+#: libparted/labels/sun.c:266
+#, c-format
+msgid ""
+"The disk CHS geometry (%d,%d,%d) reported by the operating system does not "
+"match the geometry stored on the disk label (%d,%d,%d)."
+msgstr ""
+
+#: libparted/labels/sun.c:288
+#, c-format
+msgid "The disk label describes a disk bigger than %s."
+msgstr ""
+
+#: libparted/labels/sun.c:442
+#, c-format
+msgid "The disk has %d cylinders, which is greater than the maximum of 65536."
+msgstr ""
+
+#: libparted/labels/sun.c:737
+msgid ""
+"The Whole Disk partition is the only available one left.  Generally, it is "
+"not a good idea to overwrite this partition with a real one.  Solaris may "
+"not be able to boot without it, and SILO (the sparc boot loader) appreciates "
+"it as well."
+msgstr ""
+
+#: libparted/labels/sun.c:752
+msgid "Sun disk label is full."
+msgstr ""
+
+#: libparted/labels/vtoc.c:163
+#, c-format
+msgid ""
+"%s opening device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:167
+#, c-format
+msgid ""
+"%s seeking device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:171
+#, c-format
+msgid ""
+"%s writing to device '%s' failed,\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:175
+#, c-format
+msgid ""
+"%s reading from device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:179
+#, c-format
+msgid "Fatal error\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:418
+msgid "Could not read VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:424
+msgid "Could not read VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:431
+msgid "Could not read VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:438
+msgid "Could not read VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:445
+msgid "Could not read VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:462
+msgid "Could not write VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:468
+msgid "Could not write VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:475
+msgid "Could not write VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:482
+msgid "Could not write VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:489
+msgid "Could not write VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/libparted.c:296 libparted/libparted.c:316
+msgid "Out of memory."
+msgstr "îÅ È×ÁÔÁÅÔ ÐÁÍÑÔÉ."
+
+#: libparted/unit.c:139
+msgid "Cannot get unit size for special unit 'COMPACT'."
+msgstr ""
+
+#: libparted/unit.c:386
+#, c-format
+msgid "\"%s\" has invalid syntax for locations."
+msgstr ""
+
+#: libparted/unit.c:394
+#, c-format
+msgid "The maximum head value is %d."
+msgstr ""
+
+#: libparted/unit.c:401
+#, c-format
+msgid "The maximum sector value is %d."
+msgstr ""
+
+#: libparted/unit.c:413 libparted/unit.c:545
+#, fuzzy, c-format
+msgid "The location %s is outside of the device %s."
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ÒÁÚÄÅÌ ×ÎÅ ÕÓÔÒÏÊÓÔ×Á."
+
+#: libparted/unit.c:527
+msgid "Invalid number."
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:63 libparted/fs/amiga/apfs.c:56
+#: libparted/fs/amiga/asfs.c:70
+#, fuzzy, c-format
+msgid "%s : Failed to allocate partition block\n"
+msgstr "îÅ ÕÄÁÅÔÓÑ ÏÐÒÅÄÅÌÉÔØ, Ñ×ÌÑÅÔÓÑ ÌÉ ÒÁÚÄÅÌ ÚÁÍÏÎÔÉÒÏ×ÁÎÎÙÍ."
+
+#: libparted/fs/amiga/affs.c:78 libparted/fs/amiga/apfs.c:70
+#: libparted/fs/amiga/asfs.c:86
+#, c-format
+msgid "%s : Failed to allocate block\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:83 libparted/fs/amiga/apfs.c:75
+#, fuzzy, c-format
+msgid "%s : Couldn't read boot block %llu\n"
+msgstr "%s ÎÅ Ñ×ÌÑÅÔÓÑ ÂÌÏÞÎÙÍ ÕÓÔÒÏÊÓÔ×ÏÍ."
+
+#: libparted/fs/amiga/affs.c:99 libparted/fs/amiga/apfs.c:86
+#: libparted/fs/amiga/asfs.c:92 libparted/fs/amiga/asfs.c:106
+#, fuzzy, c-format
+msgid "%s : Couldn't read root block %llu\n"
+msgstr "%s ÎÅ Ñ×ÌÑÅÔÓÑ ÂÌÏÞÎÙÍ ÕÓÔÒÏÊÓÔ×ÏÍ."
+
+#: libparted/fs/amiga/amiga.c:72
+#, c-format
+msgid "%s : Failed to allocate id list element\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:189
+#, c-format
+msgid "%s : Couldn't read block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:202
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:212
+#, fuzzy, c-format
+msgid "%s : Couldn't write block %d\n"
+msgstr "%s ÎÅ Ñ×ÌÑÅÔÓÑ ÂÌÏÞÎÙÍ ÕÓÔÒÏÊÓÔ×ÏÍ."
+
+#: libparted/fs/amiga/amiga.c:278
+#, c-format
+msgid "%s : Failed to allocate disk_specific rdb block\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:289
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:318
+#, fuzzy, c-format
+msgid "%s : Failed to read partition block %llu\n"
+msgstr "îÅ ÕÄÁÅÔÓÑ ÏÐÒÅÄÅÌÉÔØ, Ñ×ÌÑÅÔÓÑ ÌÉ ÒÁÚÄÅÌ ÚÁÍÏÎÔÉÒÏ×ÁÎÎÙÍ."
+
+#: libparted/fs/ext2/ext2.c:87 libparted/fs/ext2/ext2.c:112
+msgid "Inconsistent group descriptors!"
+msgstr "ðÒÏÔÉ×ÏÒÅÞÉ×ÁÑ ÇÒÕÐÐÁ ÄÅÓËÒÉÐÔÏÒÏ×!"
+
+#: libparted/fs/ext2/ext2.c:91 libparted/fs/ext2/ext2.c:116
+#, fuzzy
+msgid "File system full!"
+msgstr "æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÐÏÌÎÁ!"
+
+#: libparted/fs/ext2/ext2.c:686
+#, fuzzy
+msgid "Invalid superblock.  Are you sure this is an ext2 file system?"
+msgstr "îÅ×ÅÒÎÙÊ ÓÕÐÅÒÂÌÏË.  ÷Ù Õ×ÅÒÅÎÙ, ÞÔÏ ÜÔÏ ÆÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ext2?"
+
+#: libparted/fs/ext2/ext2.c:700 libparted/fs/ext2/ext2_resize.c:658
+#, fuzzy
+msgid "File system has errors!  You should run e2fsck."
+msgstr "æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÓÏÄÅÒÖÉÔ ÏÛÉÂËÉ!  úÁÐÕÓÔÉÔÅ ÓÎÁÞÁÌÁ e2fsck!"
+
+#: libparted/fs/ext2/ext2.c:711
+msgid ""
+"File system was not cleanly unmounted!  You should run e2fsck.  Modifying an "
+"unclean file system could cause severe corruption."
+msgstr ""
+
+#: libparted/fs/ext2/ext2.c:731
+#, fuzzy
+msgid "File system has an incompatible feature enabled."
+msgstr "æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÉÍÅÅÔ ×ËÌÀÞÅÎÎÏÅ ÎÅÓÏ×ÍÅÓÔÉÍÏÅ Ó×ÏÊÓÔ×Ï"
+
+#: libparted/fs/ext2/ext2.c:742
+msgid "Error allocating buffer cache."
+msgstr "ïÛÉÂËÁ ÒÁÚÍÅÝÅÎÉÑ ÂÕÆÅÒÁ ËÜÛÁ."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:114
+#, fuzzy
+msgid ""
+"Found an inode with a incorrect link count.  Better go run e2fsck first!"
+msgstr ""
+"îÁÊÄÅÎÁ inode Ó ÎÅÐÒÁ×ÉÌØÎÙÍ ÞÉÓÌÏÍ ÓÓÙÌÏË.  ìÕÞÛÅ ÚÁÐÕÓÔÉÔÅ ÓÎÁÞÁÌÁ e2fsck."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:487
+msgid "Not enough free inodes!"
+msgstr "îÅÄÏÓÔÁÔÏÞÎÏ Ó×ÏÂÏÄÎÙÈ inode!"
+
+#: libparted/fs/ext2/ext2_resize.c:223
+#, fuzzy
+msgid "File system is too full to remove a group!"
+msgstr "æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÓÌÉÛËÏÍ ÚÁÐÏÌÎÅÎÁ, ÞÔÏÂÙ ÕÄÁÌÉÔØ ÇÒÕÐÐÕ!"
+
+#: libparted/fs/ext2/ext2_resize.c:232
+#, fuzzy
+msgid "File system has too many allocated inodes to remove a group!"
+msgstr ""
+"æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÉÍÅÅÔ ÓÌÉÛËÏÍ ÍÎÏÇÏ ×ÙÄÅÌÅÎÎÙÈ inode, ÞÔÏÂÙ ÕÄÁÌÉÔØ ÇÒÕÐÐÕ!"
+
+#: libparted/fs/ext2/ext2_resize.c:491
+msgid "adding groups"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:528
+#, fuzzy, c-format
+msgid "Your file system is too full to resize it to %i blocks.  Sorry."
+msgstr ""
+"ë ÓÏÖÁÌÅÎÉÀ, ÆÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÓÌÉÛËÏÍ ÚÁÐÏÌÎÅÎÁ, ÞÔÏÂÙ ÉÚÍÅÎÉÔØ ÅÅ ÒÁÚÍÅÒ ÄÏ "
+"%i ÂÌÏËÏ×."
+
+#: libparted/fs/ext2/ext2_resize.c:538
+#, fuzzy, c-format
+msgid ""
+"Your file system has too many occupied inodes to resize it to %i blocks.  "
+"Sorry."
+msgstr ""
+"ë ÓÏÖÁÌÅÎÉÀ, ×ÁÛÁ ÆÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÉÍÅÅÔ ÓÌÉÛËÏÍ ÍÎÏÇÏ ÚÁÎÑÔÙÈ inode, ÞÔÏÂÙ "
+"ÉÚÍÅÎÉÔØ ÅÅ ÒÁÚÍÅÒ ÄÏ %i ÂÌÏËÏ×."
+
+#: libparted/fs/ext2/ext2_resize.c:666
+#, fuzzy
+msgid "File system was not cleanly unmounted!  You should run e2fsck."
+msgstr ""
+"æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÎÅ ÂÙÌÁ ÐÒÁ×ÉÌØÎÏ ÒÁÚÍÏÎÔÉÒÏ×ÁÎÁ!  úÁÐÕÓÔÉÔÅ ÓÎÁÞÁÌÁ e2fsck!"
+
+#: libparted/fs/ext2/ext2_resize.c:675
+msgid ""
+"The file system has the 'dir_index' feature enabled.  Parted can only resize "
+"the file system if it disables this feature.  You can enable it later by "
+"running 'tune2fs -O dir_index DEVICE' and then 'e2fsck -fD DEVICE'."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:691
+msgid ""
+"A resize operation on this file system will use EXPERIMENTAL code\n"
+"that MAY CORRUPT it (although no one has reported any such damage yet).\n"
+"You should at least backup your data first, and run 'e2fsck -f' afterwards."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_block_relocator.c:198
+#, fuzzy
+msgid "Cross-linked blocks found!  Better go run e2fsck first!"
+msgstr ""
+"îÁÊÄÅÎÙ ÂÌÏËÉ Ó ÐÅÒÅËÒÅÓÔÎÙÍÉ ÓÓÙÌËÁÍÉ! ÌÕÞÛÅ ÓÎÁÞÁÌÁ ÚÁÐÕÓÔÉÔÅ e2fsck!"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:537
+#, fuzzy, c-format
+msgid "Block %i has no reference?  Weird."
+msgstr "âÌÏË %i ÎÅ ÉÍÅÅÔ ÓÓÙÌËÉ?  óÔÒÁÎÎÏ"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:737
+#, fuzzy, c-format
+msgid "Block %i shouldn't have been marked (%d, %d)!"
+msgstr "âÌÏË %i ÎÅ ÄÏÌÖÅÎ ÂÙÔØ ÐÏÍÅÞÅÎÎÙÍ!"
+
+#: libparted/fs/ext2/interface.c:186
+#, fuzzy
+msgid ""
+"The ext2 file system passed a basic check.  For a more comprehensive check, "
+"use the e2fsck program."
+msgstr ""
+"æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ext2 ÐÒÏÛÌÁ ÏÓÎÏ×ÎÕÀ ÐÒÏ×ÅÒËÕ.  äÌÑ ÂÏÌÅÅ ÏÂÓÔÏÑÔÅÌØÎÏÊ "
+"ÐÒÏ×ÅÒËÉ, ÉÓÐÏÌØÚÕÊÔÅ ÐÒÏÇÒÁÍÍÕ e2fsck."
+
+#: libparted/fs/ext2/interface.c:203
+msgid "Sorry, can't move the start of ext2 partitions yet!"
+msgstr "ë ÓÏÖÁÌÅÎÉÀ, ÐÅÒÅÍÅÝÅÎÉÅ ÎÁÞÁÌÁ ÒÁÚÄÅÌÏ× ext2 ÐÏËÁ ÎÅ×ÏÚÍÏÖÎÏ!"
+
+#: libparted/fs/ext2/ext2_buffer.c:82
+msgid "Couldn't flush buffer cache!"
+msgstr "îÅ ÕÄÁÅÔÓÑ ÏÞÉÓÔÉÔØ ÂÕÆÅÒ ËÜÛÁ!"
+
+#: libparted/fs/ext2/ext2_mkfs.c:162
+msgid "writing per-group metadata"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_mkfs.c:564
+msgid "File system too small for ext2."
+msgstr ""
+
+#: libparted/fs/fat/calc.c:135
+#, fuzzy, c-format
+msgid ""
+"You need %s of free disk space to shrink this partition to this size.  "
+"Currently, only %s is free."
+msgstr ""
+"÷ÁÍ ÔÒÅÂÕÅÔÓÑ %díâ Ó×ÏÂÏÄÎÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á, ÞÔÏÂÙ ÕÍÅÎØÛÉÔØ ÄÁÎÎÙÊ ÒÁÚÄÅÌ ÄÏ "
+"ÔÁËÏÇÏ ÒÁÚÍÅÒÁ (Õ ×ÁÓ ÓÅÊÞÁÓ Ó×ÏÂÏÄÎÏ ÔÏÌØËÏ %díâ)"
+
+#: libparted/fs/fat/context.c:56
+#, c-format
+msgid ""
+"Cluster start delta = %d, which is not a multiple of the cluster size %d."
+msgstr ""
+"ëÌÁÓÔÅÒ ÎÁÞÉÎÁÅÔÓÑ ÓÏ ÓÍÅÝÅÎÉÅÍ %d, ÞÔÏ ÎÅ Ñ×ÌÑÅÔÓÑ ÃÅÌÙÍ ÞÉÓÌÏÍ ËÌÁÓÔÅÒÏ× "
+"ÒÁÚÍÅÒÁ %d."
+
+#: libparted/fs/fat/fat.c:308
+#, fuzzy, c-format
+msgid "Partition too big/small for a %s file system."
+msgstr "òÁÚÄÅÌ ÓÌÉÛËÏÍ ÍÁÌ ÄÌÑ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ FAT"
+
+#: libparted/fs/fat/fat.c:474
+msgid ""
+"The FATs don't match.  If you don't know what this means, then select "
+"cancel, run scandisk on the file system, and then come back."
+msgstr ""
+"æÁÊÌÏ×ÙÅ ÓÉÓÔÅÍÙ FAT ÎÅ ÓÏ×ÐÁÄÁÀÔ.  åÓÌÉ ×Ù ÎÅ ÚÎÁÅÔÅ, ÞÔÏ ÜÔÏ ÏÚÎÁÞÁÅÔ, "
+"×ÙÂÅÒÉÔÅ ÏÔÍÅÎÕ, ÚÁÐÕÓÔÉÔÅ scandisk ÄÌÑ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ, É ÚÁÔÅÍ "
+"×ÏÚ×ÒÁÝÁÊÔÅÓØ."
+
+#: libparted/fs/fat/fat.c:514
+msgid "There are no possible configurations for this FAT type."
+msgstr "äÌÑ ÜÔÏÇÏ ÔÉÐÁ FAT ÄÏÐÕÓÔÉÍÙÈ ËÏÎÆÉÇÕÒÁÃÉÊ ÎÅÔ."
+
+#: libparted/fs/fat/fat.c:526
+#, c-format
+msgid ""
+"File system doesn't have expected sizes for Windows to like it.  Cluster "
+"size is %dk (%dk expected); number of clusters is %d (%d expected); size of "
+"FATs is %d sectors (%d expected)."
+msgstr ""
+"Windows ÎÅ ÍÏÖÅÔ ÒÁÂÏÔÁÔØ Ó ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÏÊ, ÉÍÅÀÝÅÊ ÔÁËÉÅ ÒÁÚÍÅÒÙ.  "
+"òÁÚÍÅÒ ËÌÁÓÔÅÒÁ %dk (ÏÖÉÄÁÅÍÙÊ %dk); ÞÉÓÌÏ ËÌÁÓÔÅÒÏ× %d (ÏÖÉÄÁÅÍÏÅ %d); "
+"ÒÁÚÍÅÒ FAT %d ÓÅËÔÏÒÏ× (ÏÖÉÄÁÅÍÙÊ %d)."
+
+#: libparted/fs/fat/fat.c:549
+#, c-format
+msgid ""
+"File system is reporting the free space as %d clusters, not %d clusters."
+msgstr ""
+"æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÓÏÏÂÝÁÅÔ Ï Ó×ÏÂÏÄÎÏÍ ÐÒÏÓÔÒÁÎÓÔ×Å × %d ËÌÁÓÔÅÒÏ×, Á ÎÅ × %d "
+"ËÌÁÓÔÅÒÏ×."
+
+#: libparted/fs/fat/fat.c:874
+#, fuzzy
+msgid ""
+"GNU Parted was miscompiled: the FAT boot sector should be 512 bytes.  FAT "
+"support will be disabled."
+msgstr ""
+"GNU parted ÂÙÌ ÎÅÐÒÁ×ÉÌØÎÏ ÓËÏÍÐÉÌÉÒÏ×ÁÎ: ÚÁÇÒÕÚÏÞÎÙÊ ÓÅËÔÏÒ FAT ÄÏÌÖÅÎ "
+"ÚÁÎÉÍÁÔØ 512 ÂÁÊÔ.  ðÏÄÄÅÒÖËÁ FAT ÂÕÄÅÔ ÏÔËÌÀÞÅÎÁ."
+
+#: libparted/fs/fat/resize.c:159
+#, fuzzy
+msgid ""
+"There's not enough room in the root directory for all of the files.  Either "
+"cancel, or ignore to lose the files."
+msgstr ""
+"äÌÑ ×ÓÅÈ ÆÁÊÌÏ× ÎÅ È×ÁÔÁÅÔ ÍÅÓÔÁ × ËÏÒÎÅ×ÏÍ ËÁÔÁÌÏÇÅ.  ìÉÂÏ ÏÔÍÅÎÉÔÅ, ÌÉÂÏ "
+"ÉÇÎÏÒÉÒÕÊÔÅ ÄÌÑ ÐÏÔÅÒÉ ÆÁÊÌÏ×."
+
+#: libparted/fs/fat/resize.c:300
+msgid "Error writing to the root directory."
+msgstr "ïÛÉÂËÁ ÚÁÐÉÓÉ × ËÏÒÎÅ×ÏÊ ËÁÔÁÌÏÇ."
+
+#: libparted/fs/fat/resize.c:489
+msgid "If you leave your file system as FAT16, then you will have no problems."
+msgstr ""
+
+#: libparted/fs/fat/resize.c:492
+msgid ""
+"If you convert to FAT16, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual)."
+msgstr ""
+
+#: libparted/fs/fat/resize.c:500
+msgid ""
+"If you leave your file system as FAT32, then you will not introduce any new "
+"problems."
+msgstr ""
+
+#: libparted/fs/fat/resize.c:504
+msgid ""
+"If you convert to FAT32, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual).  Also, "
+"converting to FAT32 will make the file system unreadable by MS DOS, MS "
+"Windows 95a, and MS Windows NT."
+msgstr ""
+
+#: libparted/fs/fat/resize.c:518
+#, c-format
+msgid "%s  %s  %s"
+msgstr ""
+
+#: libparted/fs/fat/resize.c:519
+msgid "Would you like to use FAT32?"
+msgstr ""
+
+#: libparted/fs/fat/resize.c:550 libparted/fs/fat/resize.c:566
+#, c-format
+msgid "%s  %s"
+msgstr ""
+
+#: libparted/fs/fat/resize.c:551
+msgid ""
+"The file system can only be resized to this size by converting to FAT16."
+msgstr ""
+
+#: libparted/fs/fat/resize.c:567
+msgid ""
+"The file system can only be resized to this size by converting to FAT32."
+msgstr ""
+
+#: libparted/fs/fat/resize.c:580
+#, fuzzy
+msgid ""
+"GNU Parted cannot resize this partition to this size.  We're working on it!"
+msgstr ""
+"GNU Parted ÎÅ ÍÏÖÅÔ ÉÚÍÅÎÉÔØ ÒÁÚÍÅÒ ÒÁÚÄÅÌÁ ÄÏ ÜÔÏÊ ×ÅÌÉÞÉÎÙ.  íÙ ÒÁÂÏÔÁÅÍ "
+"ÎÁÄ ÜÔÉÍ!"
+
+#: libparted/fs/fat/bootsector.c:49 libparted/fs/fat/bootsector.c:56
+#, fuzzy
+msgid "File system has an invalid signature for a FAT file system."
+msgstr "æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÉÍÅÅÔ ÎÅ×ÅÒÎÕÀ ÄÌÑ FAT ÓÉÇÎÁÔÕÒÕ."
+
+#: libparted/fs/fat/bootsector.c:64
+#, fuzzy
+msgid "File system has an invalid sector size for a FAT file system."
+msgstr "æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÉÍÅÅÔ ÎÅ×ÅÒÎÙÊ ÄÌÑ FAT ÒÁÚÍÅÒ ÓÅËÔÏÒÁ."
+
+#: libparted/fs/fat/bootsector.c:71
+#, fuzzy
+msgid "File system has an invalid cluster size for a FAT file system."
+msgstr "æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÉÍÅÅÔ ÎÅ×ÅÒÎÙÊ ÄÌÑ FAT ÒÁÚÍÅÒ ÓÅËÔÏÒÁ."
+
+#: libparted/fs/fat/bootsector.c:78
+#, fuzzy
+msgid ""
+"File system has an invalid number of reserved sectors for a FAT file system."
+msgstr ""
+"æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÉÍÅÅÔ ÎÅ×ÅÒÎÏÅ ÄÌÑ FAT ÞÉÓÌÏ ÚÁÒÅÚÅÒ×ÉÒÏ×ÁÎÎÙÈ ÓÅËÔÏÒÏ×."
+
+#: libparted/fs/fat/bootsector.c:85
+#, fuzzy
+msgid "File system has an invalid number of FATs."
+msgstr "æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÉÍÅÅÔ ÎÅ×ÅÒÎÕÀ ÄÌÑ FAT ÓÉÇÎÁÔÕÒÕ."
+
+#: libparted/fs/fat/bootsector.c:139
+#, c-format
+msgid ""
+"This file system has a logical sector size of %d.  GNU Parted is known not "
+"to work properly with sector sizes other than 512 bytes."
+msgstr ""
+"üÔÁ ÆÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÉÍÅÅÔ ÒÁÚÍÅÒ ÌÏÇÉÞÅÓËÏÇÏ ÓÅËÔÏÒÁ %d.  óÞÉÔÁÅÔÓÑ, ÞÔÏ "
+"GNU Parted ÒÁÂÏÔÁÅÔ ÎÅÐÒÁ×ÉÌØÎÏ Ó ÓÅËÔÏÒÁÍÉ, ÒÁÚÍÅÒ ËÏÔÏÒÙÈ ÏÔÌÉÞÅÎ ÏÔ 512 "
+"ÂÁÊÔ."
+
+#: libparted/fs/fat/bootsector.c:164
+#, c-format
+msgid ""
+"The file system's CHS geometry is (%d, %d, %d), which is invalid.  The "
+"partition table's CHS geometry is (%d, %d, %d).  If you select Ignore, the "
+"file system's CHS geometry will be left unchanged.  If you select Fix, the "
+"file system's CHS geometry will be set to match the partition table's CHS "
+"geometry."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:213
+msgid "FAT boot sector says logical sector size is 0.  This is weird. "
+msgstr ""
+"úÁÇÒÕÚÏÞÎÙÊ ÓÅËÔÏÒ FAT ÓÏÄÅÒÖÉÔ ÒÁÚÍÅÒ ÌÏÇÉÞÅÓËÏÇÏ ÓÅËÔÏÒÁ, ÒÁ×ÎÙÊ 0.  üÔÏ "
+"ÓÔÒÁÎÎÏ. "
+
+#: libparted/fs/fat/bootsector.c:219
+msgid "FAT boot sector says there are no FAT tables.  This is weird. "
+msgstr ""
+"÷ ÚÁÇÒÕÚÏÞÎÏÍ ÓÅËÔÏÒÅ FAT ÎÅ ÓÏÄÅÒÖÉÔÓÑ ÉÎÆÏÒÍÁÃÉÉ Ï ÔÁÂÌÉÃÁÈ FAT.  üÔÏ "
+"ÓÔÒÁÎÎÏ. "
+
+#: libparted/fs/fat/bootsector.c:225
+msgid "FAT boot sector says clusters are 0 sectors.  This is weird. "
+msgstr ""
+"÷ ÓÏÏÔ×ÅÔÓÔ×ÉÉ Ó ÚÁÇÒÕÚÏÞÎÙÍ ÓÅËÔÏÒÏÍ FAT, ËÌÁÓÔÅÒ ÓÏÄÅÒÖÉÔ 0 ÓÅËÔÏÒÏ×.  üÔÏ "
+"ÓÔÒÁÎÎÏ. "
+
+#: libparted/fs/fat/bootsector.c:235
+#, fuzzy
+msgid "File system is FAT12, which is unsupported."
+msgstr "æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ FAT12.  ïÎÁ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ."
+
+#: libparted/fs/fat/bootsector.c:411
+#, c-format
+msgid ""
+"The information sector has the wrong signature (%x).  Select cancel for now, "
+"and send in a bug report.  If you're desperate, it's probably safe to ignore."
+msgstr ""
+"éÎÆÏÒÍÁÃÉÏÎÎÙÊ ÓÅËÔÏÒ ÉÍÅÅÔ ÎÅ×ÅÒÎÕÀ ÓÉÇÎÁÔÕÒÕ (%x).  ÷ÙÂÅÒÉÔÅ ÏÔÍÅÎÕ, É "
+"ÐÏÛÌÉÔÅ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ.  åÓÌÉ ×Ù ÕÖÅ ÏÔÞÁÑÌÉÓØ, ÔÏ, ×ÅÒÏÑÔÎÏ, ÍÏÖÎÏ "
+"ÐÒÏÉÇÎÏÒÉÒÏ×ÁÔØ."
+
+#: libparted/fs/fat/count.c:152
+#, c-format
+msgid "Bad directory entry for %s: first cluster is the end of file marker."
+msgstr ""
+"ðÌÏÈÏÊ ÜÌÅÍÅÎÔ ËÁÔÁÌÏÇÁ ÄÌÑ %s: ÐÅÒ×ÙÊ ËÌÁÓÔÅÒ Ñ×ÌÑÅÔÓÑ ËÏÎÃÏÍ ÍÁÒËÅÒÁ ÆÁÊÌÁ."
+
+#: libparted/fs/fat/count.c:165
+#, fuzzy, c-format
+msgid ""
+"Bad FAT: unterminated chain for %s.  You should run dosfsck or scandisk."
+msgstr "ïÛÉÂËÁ × FAT: ÎÅÚÁ×ÅÒÛÅÎÎÁÑ ÃÅÐÏÞËÁ ÄÌÑ %s"
+
+#: libparted/fs/fat/count.c:174
+#, fuzzy, c-format
+msgid ""
+"Bad FAT: cluster %d outside file system in chain for %s.  You should run "
+"dosfsck or scandisk."
+msgstr ""
+"ïÛÉÂËÁ × FAT: ËÌÁÓÔÅÒ %d ÎÁÈÏÄÉÔÓÑ ×ÎÅ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ × ÃÅÐÏÞËÅ ÄÌÑ %s"
+
+#: libparted/fs/fat/count.c:184
+#, fuzzy, c-format
+msgid ""
+"Bad FAT: cluster %d is cross-linked for %s.  You should run dosfsck or "
+"scandisk."
+msgstr "ïÛÉÂËÁ × FAT: ËÌÁÓÔÅÒ %d ÉÍÅÅÔ ÓÓÙÌËÕ ÄÌÑ %s"
+
+#: libparted/fs/fat/count.c:203
+#, c-format
+msgid "%s is %dk, but it has %d clusters (%dk)."
+msgstr ""
+
+#: libparted/fs/fat/count.c:266
+#, c-format
+msgid ""
+"The file %s is marked as a system file.  This means moving it could cause "
+"some programs to stop working."
+msgstr ""
+"æÁÊÌ %s ÐÏÍÅÞÅÎ ËÁË ÓÉÓÔÅÍÎÙÊ.  üÔÏ ÚÎÁÞÉÔ, ÞÔÏ ÅÇÏ ÐÅÒÅÍÅÝÅÎÉÅ ÍÏÖÅÔ "
+"ÐÒÉ×ÅÓÔÉ Ë ÐÒÅËÒÁÝÅÎÉÀ ÒÁÂÏÔÙ ÎÅËÏÔÏÒÙÈ ÐÒÏÇÒÁÍÍ."
+
+#: libparted/fs/fat/table.c:137
+#, c-format
+msgid ""
+"FAT %d media %x doesn't match the boot sector's media %x.  You should "
+"probably run scandisk."
+msgstr ""
+"FAT %d ÎÏÓÉÔÅÌØ %x ÎÅ ÓÏ×ÐÁÄÁÅÔ Ó ÎÏÓÉÔÅÌÅÍ ÚÁÇÒÕÚÏÞÎÏÇÏ ÓÅËÔÏÒÁ %x.  "
+"÷ÏÚÍÏÖÎÏ, ×ÁÍ ÓÌÅÄÕÅÔ ÚÁÐÕÓÔÉÔØ scandisk."
+
+#: libparted/fs/fat/table.c:269
+#, fuzzy, c-format
+msgid "fat_table_set: cluster %ld outside file system"
+msgstr "fat_table_set: ËÌÁÓÔÅÒ %ld ÎÁÈÏÄÉÔÓÑ ×ÎÅ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ"
+
+#: libparted/fs/fat/table.c:301
+#, fuzzy, c-format
+msgid "fat_table_get: cluster %ld outside file system"
+msgstr "fat_table_get: ËÌÁÓÔÅÒ %ld ÎÁÈÏÄÉÔÓÑ ×ÎÅ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ"
+
+#: libparted/fs/fat/table.c:343
+msgid "fat_table_alloc_cluster: no free clusters"
+msgstr "fat_table_alloc_cluster: ÎÅÔ Ó×ÏÂÏÄÎÙÈ ËÌÁÓÔÅÒÏ×"
+
+#: libparted/fs/linux_swap/linux_swap.c:275
+#, fuzzy, c-format
+msgid "Unrecognised old style linux swap signature '%10s'."
+msgstr "îÅÒÁÓÐÏÚÎÁÎÎÁÑ ÓÉÇÎÁÔÕÒÁ linux swap %10s."
+
+#: libparted/fs/linux_swap/linux_swap.c:318
+#, fuzzy, c-format
+msgid "Unrecognised new style linux swap signature '%10s'."
+msgstr "îÅÒÁÓÐÏÚÎÁÎÎÁÑ ÓÉÇÎÁÔÕÒÁ linux swap %10s."
+
+#: libparted/fs/linux_swap/linux_swap.c:358
+#, fuzzy, c-format
+msgid "Unrecognised swsusp linux swap signature '%9s'."
+msgstr "îÅÒÁÓÐÏÚÎÁÎÎÁÑ ÓÉÇÎÁÔÕÒÁ linux swap %10s."
+
+#: libparted/fs/linux_swap/linux_swap.c:434
+msgid "Too many bad pages."
+msgstr "óÌÉÛËÏÍ ÍÎÏÇÏ ÐÌÏÈÉÈ ÓÔÒÁÎÉÃ."
+
+#: libparted/fs/hfs/advfs.c:121 libparted/fs/hfs/advfs_plus.c:122
+#: libparted/fs/hfs/reloc.c:414 libparted/fs/hfs/reloc.c:508
+#: libparted/fs/hfs/reloc_plus.c:539 libparted/fs/hfs/reloc_plus.c:658
+#: libparted/fs/hfs/reloc_plus.c:772
+msgid "The file system contains errors."
+msgstr ""
+
+#: libparted/fs/hfs/advfs_plus.c:287
+msgid "Bad blocks could not be read."
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:137
+#, c-format
+msgid ""
+"Trying to register an extent starting at block 0x%X, but another one already "
+"exists at this position.  You should check the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:214
+#, c-format
+msgid ""
+"Trying to move an extent from block Ox%X to block Ox%X, but another one "
+"already exists at this position.  This should not happen!"
+msgstr ""
+
+#: libparted/fs/hfs/file.c:143
+#, c-format
+msgid "Could not update the extent cache for HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:180
+#, c-format
+msgid "Trying to read HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:190 libparted/fs/hfs/file.c:220
+#, c-format
+msgid "Could not find sector %lli of HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:210
+#, c-format
+msgid "Trying to write HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:157
+#, c-format
+msgid "Could not update the extent cache for HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:202
+#, c-format
+msgid "Trying to read HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:213 libparted/fs/hfs/file_plus.c:256
+#, c-format
+msgid "Could not find sector %lli of HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:245
+#, c-format
+msgid "Trying to write HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:232
+msgid "Sorry, HFS cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:262 libparted/fs/hfs/hfs.c:641
+msgid "Data relocation has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:281
+msgid "Data relocation left some data in the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:320
+#, fuzzy
+msgid "writing HFS Master Directory Block"
+msgstr "ïÛÉÂËÁ ÚÁÐÉÓÉ × ËÏÒÎÅ×ÏÊ ËÁÔÁÌÏÇ."
+
+#: libparted/fs/hfs/hfs.c:468
+msgid "No valid HFS[+X] signature has been found while opening."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:478
+#, c-format
+msgid "Version %d of HFS+ isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:489
+#, c-format
+msgid "Version %d of HFSX isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:672
+msgid "Data relocation left some data at the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:720
+#, fuzzy
+msgid "Error while writing the allocation file."
+msgstr "ïÛÉÂËÁ ÚÁÐÉÓÉ × ËÏÒÎÅ×ÏÊ ËÁÔÁÌÏÇ."
+
+#: libparted/fs/hfs/hfs.c:735
+msgid "Error while writing the compatibility part of the allocation file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:750
+msgid "writing HFS+ Volume Header"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:850
+msgid "An error occurred while looking for the mandatory bad blocks file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:904
+msgid ""
+"It seems there is an error in the HFS wrapper: the bad blocks file doesn't "
+"contain the embedded HFS+ volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:940
+msgid "Sorry, HFS+ cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:975
+msgid "shrinking embedded HFS+ volume"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:991
+msgid "Resizing the HFS+ volume has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:998
+msgid "shrinking HFS wrapper"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:1007
+msgid "Updating the HFS wrapper has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:1109 libparted/fs/hfs/hfs.c:1194
+#, c-format
+msgid ""
+"This is not a real %s check.  This is going to extract special low level "
+"files for debugging purposes."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:155
+msgid "Bad block list header checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:168
+#, c-format
+msgid ""
+"Invalid size of a transaction block while replaying the journal (%i bytes)."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:260
+msgid ""
+"Journal stored outside of the volume are not supported.  Try to desactivate "
+"the journal and run Parted again."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:271
+#, fuzzy
+msgid "Journal offset or size is not multiple of the sector size."
+msgstr ""
+"ëÌÁÓÔÅÒ ÎÁÞÉÎÁÅÔÓÑ ÓÏ ÓÍÅÝÅÎÉÅÍ %d, ÞÔÏ ÎÅ Ñ×ÌÑÅÔÓÑ ÃÅÌÙÍ ÞÉÓÌÏÍ ËÌÁÓÔÅÒÏ× "
+"ÒÁÚÍÅÒÁ %d."
+
+#: libparted/fs/hfs/journal.c:292
+msgid "Incorrect magic values in the journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:302
+msgid "Journal size mismatch between journal info block and journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:314
+#, fuzzy
+msgid "Some header fields are not multiple of the sector size."
+msgstr ""
+"ëÌÁÓÔÅÒ ÎÁÞÉÎÁÅÔÓÑ ÓÏ ÓÍÅÝÅÎÉÅÍ %d, ÞÔÏ ÎÅ Ñ×ÌÑÅÔÓÑ ÃÅÌÙÍ ÞÉÓÌÏÍ ËÌÁÓÔÅÒÏ× "
+"ÒÁÚÍÅÒÁ %d."
+
+#: libparted/fs/hfs/journal.c:323
+msgid ""
+"The sector size stored in the journal is not 512 bytes.  Parted only "
+"supports 512 bytes length sectors."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:335
+msgid "Bad journal checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:353
+msgid ""
+"The journal is not empty.  Parted must replay the transactions before "
+"opening the file system.  This will modify the file system."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:381
+msgid ""
+"The volume header or the master directory block has changed while replaying "
+"the journal.  You should restart Parted."
+msgstr ""
+
+#: libparted/fs/hfs/probe.c:51
+#, c-format
+msgid ""
+"Parted can't use HFS file systems on disks with a sector size not equal to %"
+"d bytes."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:151 libparted/fs/hfs/reloc_plus.c:155
+msgid "An extent has not been relocated."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:251 libparted/fs/hfs/reloc_plus.c:307
+msgid ""
+"A reference to an extent comes from a place it should not.  You should check "
+"the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:381
+msgid "This HFS volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:475
+msgid "This HFS volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:517 libparted/fs/hfs/reloc_plus.c:668
+msgid ""
+"The extents overflow file should not contain its own extents!  You should "
+"check the file system."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:574 libparted/fs/hfs/reloc_plus.c:847
+#, fuzzy
+msgid "Could not cache the file system in memory."
+msgstr "îÅ ÕÄÁÅÔÓÑ ÏÐÒÅÄÅÌÉÔØ ÆÁÊÌÏ×ÕÀ ÓÉÓÔÅÍÕ."
+
+#: libparted/fs/hfs/reloc.c:635 libparted/fs/hfs/reloc_plus.c:908
+msgid "Bad blocks list could not be loaded."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:649 libparted/fs/hfs/reloc_plus.c:924
+msgid "An error occurred during extent relocation."
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:495
+msgid "This HFS+ volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:619
+msgid "This HFS+ volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: parted/parted.c:94
+msgid "displays this help message"
+msgstr "ÏÔÏÂÒÁÖÁÅÔ ÜÔÏ ÓÐÒÁ×ÏÞÎÏÅ ÓÏÏÂÝÅÎÉÅ"
+
+#: parted/parted.c:95
+msgid "lists partition layout on all block devices"
+msgstr ""
+
+#: parted/parted.c:96
+msgid "displays machine parseable output"
+msgstr ""
+
+#: parted/parted.c:97
+msgid "never prompts for user intervention"
+msgstr "ÎÉËÏÇÄÁ ÎÅ ÚÁÐÒÁÛÉ×ÁÅÔ ×ÍÅÛÁÔÅÌØÓÔ×Ï ÐÏÌØÚÏ×ÁÔÅÌÑ"
+
+#: parted/parted.c:98
+msgid "displays the version"
+msgstr "ÏÔÏÂÒÁÖÁÅÔ ×ÅÒÓÉÀ"
+
+#: parted/parted.c:111
+#, fuzzy
+msgid ""
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"
+msgstr ""
+"MINOR - ÜÔÏ ÎÏÍÅÒ ÒÁÚÄÅÌÁ, ÉÓÐÏÌØÚÕÅÍÙÊ Linux.  ïÓÎÏ×ÎÙÅ ÒÁÚÄÅÌÙ ÉÍÅÀÔ "
+"ÎÏÍÅÒÁ 1-4, Á ÌÏÇÉÞÅÓËÉÅ - 5 É ÄÁÌÅÅ.\n"
+
+#: parted/parted.c:114
+msgid "LABEL-TYPE is one of: "
+msgstr "ôéð-íåôëé ÏÄÉÎ ÉÚ: "
+
+#: parted/parted.c:115
+#, fuzzy
+msgid "FLAG is one of: "
+msgstr "ôéð_æó ÏÄÉÎ ÉÚ: "
+
+#: parted/parted.c:116
+#, fuzzy
+msgid "UNIT is one of: "
+msgstr "ôéð_æó ÏÄÉÎ ÉÚ: "
+
+#: parted/parted.c:117
+msgid "PART-TYPE is one of: primary, logical, extended\n"
+msgstr "ôéð_òáúä ÏÄÉÎ ÉÚ: ÏÓÎÏ×ÎÏÊ, ÌÏÇÉÞÅÓËÉÊ, ÒÁÓÛÉÒÅÎÎÙÊ\n"
+
+#: parted/parted.c:119
+msgid "FS-TYPE is one of: "
+msgstr "ôéð_æó ÏÄÉÎ ÉÚ: "
+
+#: parted/parted.c:120
+msgid ""
+"START and END are disk locations, such as 4GB or 10%.  Negative values count "
+"from the end of the disk.  For example, -1s specifies exactly the last "
+"sector.\n"
+msgstr ""
+
+#: parted/parted.c:123
+#, fuzzy
+msgid "STATE is one of: on, off\n"
+msgstr "ôéð_æó ÏÄÉÎ ÉÚ: "
+
+#: parted/parted.c:124
+msgid "DEVICE is usually /dev/hda or /dev/sda\n"
+msgstr "õóôòïêóô÷ïí ÏÂÙÞÎÏ Ñ×ÌÑÅÔÓÑ /dev/hda ÉÌÉ /dev/sda\n"
+
+#: parted/parted.c:125
+msgid "NAME is any word you want\n"
+msgstr ""
+
+#: parted/parted.c:126
+msgid "The partition must have one of the following FS-TYPEs: "
+msgstr ""
+
+#: parted/parted.c:130
+#, fuzzy
+msgid ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+msgstr ""
+"Copyright (C) 1999-2000 Andrew Clausen, Lennert Buytenhek É Red Hat Inc.\n"
+"ðÅÒÅ×ÏÄÙ: Copyright (C) 1999-2000 Free Software Foundation, Inc\n"
+"üÔÏ Ó×ÏÂÏÄÎÁÑ ÐÒÏÇÒÁÍÍÁ, ÎÁ ÎÅÅ ÒÁÓÐÒÏÓÔÒÁÎÑÅÔÓÑ õÎÉ×ÅÒÓÁÌØÎÁÑ ïÂÝÅÓÔ×ÅÎÎÁÑ\n"
+"ìÉÃÅÎÚÉÑ GNU.\n"
+"\n"
+"üÔÁ ÐÒÏÇÒÁÍÍÁ ÒÁÓÐÒÏÓÔÒÁÎÑÅÔÓÑ × ÎÁÄÅÖÄÅ, ÞÔÏ ÏÎÁ ÂÕÄÅÔ ÐÏÌÅÚÎÏÊ, ÎÏ âåú\n"
+"ëáëéè-ìéâï çáòáîôéê; ÄÁÖÅ ÂÅÚ ÐÏÄÒÁÚÕÍÅ×ÁÅÍÙÈ ÇÁÒÁÎÔÉÊ ëïííåòþåóëïê ãåîîïóôé "
+"ÉÌÉ ðòéçïäîïóôé äìñ ëïîëòåôîïê ãåìé.  äÌÑ ÐÏÌÕÞÅÎÉÑ ÂÏÌÅÅ ÐÏÄÒÏÂÎÏÊ "
+"ÉÎÆÏÒÍÁÃÉÉ ÓÍÏÔÒÉÔÅ õÎÉ×ÅÒÓÁÌØÎÕÀ ïÂÝÅÓÔ×ÅÎÎÕÀ ìÉÃÅÎÚÉÀ GNU.\n"
+
+#: parted/parted.c:176
+#, c-format
+msgid "%0.f%%\t(time left %.2d:%.2d)"
+msgstr ""
+
+#: parted/parted.c:195
+#, c-format
+msgid ""
+"Partition %s is being used. You must unmount it before you modify it with "
+"Parted."
+msgstr ""
+
+#: parted/parted.c:211
+#, c-format
+msgid "Partition(s) on %s are being used."
+msgstr "òÁÚÄÅÌÙ ÎÁ %s ÉÓÐÏÌØÚÕÀÔÓÑ."
+
+#: parted/parted.c:223
+msgid ""
+"The existing file system will be destroyed and all data on the partition "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:235
+#, c-format
+msgid ""
+"The existing disk label on %s will be destroyed and all data on this disk "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:458 parted/parted.c:652 parted/parted.c:1044
+#: parted/parted.c:1128 parted/parted.c:1771 parted/parted.c:1852
+#: parted/parted.c:1900
+#, fuzzy
+msgid "Partition number?"
+msgstr "òÁÚÄÅÌ ÉÓÐÏÌØÚÕÅÔÓÑ."
+
+#: parted/parted.c:500
+msgid "Source device?"
+msgstr ""
+
+#: parted/parted.c:504
+#, fuzzy
+msgid "Source partition number?"
+msgstr "éÓÈÏÄÎÙÊ ÒÁÚÄÅÌ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ."
+
+#: parted/parted.c:509
+#, fuzzy
+msgid "Can't copy an extended partition."
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÓËÏÐÉÒÏ×ÁÔØ ÒÁÓÛÉÒÅÎÎÙÊ ÒÁÚÄÅÌ."
+
+#: parted/parted.c:515
+#, fuzzy
+msgid "Destination partition number?"
+msgstr "òÁÚÄÅÌ ÎÁÚÎÁÞÅÎÉÑ ÉÓÐÏÌØÚÕÅÔÓÑ."
+
+#: parted/parted.c:615
+msgid "New disk label type?"
+msgstr ""
+
+#: parted/parted.c:656
+#, fuzzy
+msgid "File system?"
+msgstr "æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÐÏÌÎÁ!"
+
+#: parted/parted.c:707 parted/parted.c:878
+#, fuzzy
+msgid "Partition type?"
+msgstr "òÁÚÄÅÌ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ."
+
+#: parted/parted.c:714 parted/parted.c:885 parted/parted.c:1131
+#, fuzzy
+msgid "Partition name?"
+msgstr "òÁÚÄÅÌ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ."
+
+#: parted/parted.c:722 parted/parted.c:895
+#, fuzzy
+msgid "File system type?"
+msgstr "îÅÉÚ×ÅÓÔÎÙÊ ÔÉÐ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ."
+
+#: parted/parted.c:729 parted/parted.c:897 parted/parted.c:1059
+#: parted/parted.c:1725 parted/parted.c:1780
+msgid "Start?"
+msgstr ""
+
+#: parted/parted.c:731 parted/parted.c:900 parted/parted.c:1062
+#: parted/parted.c:1727 parted/parted.c:1782
+msgid "End?"
+msgstr ""
+
+#: parted/parted.c:769 parted/parted.c:938
+#, c-format
+msgid ""
+"You requested a partition from %s to %s.\n"
+"The closest location we can manage is %s to %s.  Is this still acceptable to "
+"you?"
+msgstr ""
+
+#: parted/parted.c:890
+msgid "An extended partition cannot hold a file system.  Did you want mkpart?"
+msgstr ""
+
+#: parted/parted.c:1050
+#, fuzzy
+msgid "Can't move an extended partition."
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÓËÏÐÉÒÏ×ÁÔØ ÒÁÓÛÉÒÅÎÎÙÊ ÒÁÚÄÅÌ."
+
+#: parted/parted.c:1079
+msgid "Can't move a partition onto itself.  Try using resize, perhaps?"
+msgstr ""
+
+#: parted/parted.c:1227
+#, c-format
+msgid "Minor: %d\n"
+msgstr ""
+
+#: parted/parted.c:1228
+#, c-format
+msgid "Flags: %s\n"
+msgstr ""
+
+#: parted/parted.c:1229
+#, fuzzy, c-format
+msgid "File System: %s\n"
+msgstr "æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÐÏÌÎÁ!"
+
+#: parted/parted.c:1230
+msgid "Size:         "
+msgstr ""
+
+#: parted/parted.c:1235
+msgid "Minimum size: "
+msgstr ""
+
+#: parted/parted.c:1238
+msgid "Maximum size: "
+msgstr ""
+
+#: parted/parted.c:1362
+#, c-format
+msgid "Model: %s (%s)\n"
+msgstr ""
+
+#: parted/parted.c:1364
+#, c-format
+msgid "Disk %s: %s\n"
+msgstr ""
+
+#: parted/parted.c:1365
+#, c-format
+msgid "Sector size (logical/physical): %lldB/%lldB\n"
+msgstr ""
+
+#: parted/parted.c:1383
+#, c-format
+msgid "BIOS cylinder,head,sector geometry: %d,%d,%d.  Each cylinder is %s.\n"
+msgstr ""
+
+#: parted/parted.c:1392
+#, fuzzy, c-format
+msgid "Partition Table: %s\n"
+msgstr "òÁÚÄÅÌ ÉÓÐÏÌØÚÕÅÔÓÑ."
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Number"
+msgstr ""
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Start"
+msgstr ""
+
+#: parted/parted.c:1407 parted/parted.c:1410
+msgid "End"
+msgstr ""
+
+#: parted/parted.c:1410
+#, fuzzy
+msgid "Size"
+msgstr "resize"
+
+#: parted/parted.c:1414
+msgid "Type"
+msgstr ""
+
+#: parted/parted.c:1416
+#, fuzzy
+msgid "File system"
+msgstr "æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÐÏÌÎÁ!"
+
+#: parted/parted.c:1419
+msgid "Name"
+msgstr ""
+
+#: parted/parted.c:1421
+msgid "Flags"
+msgstr ""
+
+#: parted/parted.c:1477
+msgid "Free Space"
+msgstr ""
+
+#: parted/parted.c:1624
+#, c-format
+msgid ""
+"A %s %s partition was found at %s -> %s.  Do you want to add it to the "
+"partition table?"
+msgstr ""
+
+#: parted/parted.c:1663
+msgid "searching for file systems"
+msgstr ""
+
+#: parted/parted.c:1877
+#, fuzzy
+msgid "New device?"
+msgstr "îÅ ÎÁÊÄÅÎÏ ÎÉ ÏÄÎÏÇÏ ÕÓÔÒÏÊÓÔ×Á"
+
+#: parted/parted.c:1902
+msgid "Flag to Invert?"
+msgstr ""
+
+#: parted/parted.c:1907
+msgid "New state?"
+msgstr ""
+
+#: parted/parted.c:1944
+msgid "Unit?"
+msgstr ""
+
+#: parted/parted.c:2093
+msgid "check"
+msgstr "check"
+
+#: parted/parted.c:2096
+#, fuzzy
+msgid ""
+"check NUMBER                             do a simple check on the file system"
+msgstr ""
+"check MINOR                   ÐÒÏÉÚ×ÏÄÉÔ ÐÒÏÓÔÕÀ ÐÒÏ×ÅÒËÕ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ"
+
+#: parted/parted.c:2102
+msgid "cp"
+msgstr "cp"
+
+#: parted/parted.c:2105
+#, fuzzy
+msgid ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+"partition"
+msgstr ""
+"cp MINOR [õóôòïêóô÷ï] MINOR   ÓËÏÐÉÒÏ×ÁÔØ ÆÁÊÌÏ×ÕÀ ÓÉÓÔÅÍÕ ÎÁ ÄÒÕÇÏÊ ÒÁÚÄÅÌ"
+
+#: parted/parted.c:2111
+msgid "help"
+msgstr "help"
+
+#: parted/parted.c:2114
+#, fuzzy
+msgid ""
+"help [COMMAND]                           print general help, or help on "
+"COMMAND"
+msgstr ""
+"help [ëïíáîäá]                ÒÁÓÐÅÞÁÔÁÔØ ÏÂÝÕÀ ÓÐÒÁ×ËÕ, ÉÌÉ ÓÐÒÁ×ËÕ ÐÏ "
+"ëïíáîäå"
+
+#: parted/parted.c:2120
+msgid "mklabel"
+msgstr "mklabel"
+
+#: parted/parted.c:2120
+#, fuzzy
+msgid "mktable"
+msgstr "mklabel"
+
+#: parted/parted.c:2123
+#, fuzzy
+msgid ""
+"mklabel,mktable LABEL-TYPE               create a new disklabel (partition "
+"table)"
+msgstr ""
+"mklabel ôéð-íåôëé             ÓÏÚÄÁÔØ ÎÏ×ÕÀ ÍÅÔËÕ ÄÉÓËÁ (ÔÁÂÌÉÃÕ ÒÁÚÄÅÌÁ)"
+
+#: parted/parted.c:2129
+msgid "mkfs"
+msgstr "mkfs"
+
+#: parted/parted.c:2132
+#, fuzzy
+msgid ""
+"mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on "
+"partititon NUMBER"
+msgstr ""
+"mkfs MINOR ôéð-æó             ÓÏÚÄÁÔØ ÆÁÊÌÏ×ÕÀ ÓÉÓÔÅÍÕ ôéð-æó ÎÁ ÒÁÚÄÅÌÅ "
+"MINOR"
+
+#: parted/parted.c:2138
+msgid "mkpart"
+msgstr "mkpart"
+
+#: parted/parted.c:2141
+#, fuzzy
+msgid "mkpart PART-TYPE [FS-TYPE] START END     make a partition"
+msgstr "mkpart ôéð-òáúä [ôéð-æó] îáþ ëïî          ÓÏÚÄÁÔØ ÒÁÚÄÅÌ"
+
+#: parted/parted.c:2147
+#, fuzzy
+msgid ""
+"'mkpart' makes a partition without creating a new file system on the "
+"partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"
+msgstr ""
+"mkpart ÄÅÌÁÅÔ ÒÁÚÄÅÌ ÂÅÚ ÓÏÚÄÁÎÉÑ ÎÁ ÎÅÍ ÎÏ×ÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ.  ôéð-æó "
+"ÄÏÌÖÅÎ ÂÙÔØ ÕËÁÚÁÎ ÄÌÑ ÒÁÚÄÅÌÏ× Ó ÄÁÎÎÙÍÉ (× ÏÔÌÉÞÉÅ ÏÔ ÒÁÓÛÉÒÅÎÎÙÈ "
+"ÒÁÚÄÅÌÏ×).  üÔÁ ËÏÍÁÎÄÁ ÐÏÌÅÚÎÁ, ÅÓÌÉ ×Ù ÕÄÁÌÉÌÉ ÒÁÚÄÅÌ ÓÌÕÞÁÊÎÏ.\n"
+
+#: parted/parted.c:2152
+msgid "mkpartfs"
+msgstr "mkpartfs"
+
+#: parted/parted.c:2155
+#, fuzzy
+msgid ""
+"mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system"
+msgstr ""
+"mkpartfs ôéð-òáúä ôéð-æó îáþ ëïî          ÓÏÚÄÁÔØ ÒÁÚÄÅÌ Ó ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÏÊ"
+
+#: parted/parted.c:2161
+msgid "move"
+msgstr ""
+
+#: parted/parted.c:2164
+#, fuzzy
+msgid "move NUMBER START END                    move partition NUMBER"
+msgstr "rm MINOR                      ÕÄÁÌÉÔØ ÒÁÚÄÅÌ MINOR"
+
+#: parted/parted.c:2169
+msgid "name"
+msgstr ""
+
+#: parted/parted.c:2172
+#, fuzzy
+msgid "name NUMBER NAME                         name partition NUMBER as NAME"
+msgstr "rm MINOR                      ÕÄÁÌÉÔØ ÒÁÚÄÅÌ MINOR"
+
+#: parted/parted.c:2177
+msgid "print"
+msgstr "print"
+
+#: parted/parted.c:2180
+msgid ""
+"print [devices|free|list,all|NUMBER]     display the partition table, "
+"available devices, free space, all found partitions, or a particular "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2185
+msgid ""
+"Without arguments, 'print' displays the entire partition table. However with "
+"the following arguments it performs various other actions.\n"
+msgstr ""
+
+#: parted/parted.c:2187
+msgid "  devices   : display all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2188
+msgid ""
+"  free      : display information about free unpartitioned space on the "
+"current block device\n"
+msgstr ""
+
+#: parted/parted.c:2190
+#, fuzzy
+msgid ""
+"  list, all : display the partition tables of all active block devices\n"
+msgstr "print                         ×Ù×ÅÓÔÉ ÔÁÂÌÉÃÕ ÒÁÚÄÅÌÏ×"
+
+#: parted/parted.c:2191
+msgid ""
+"  NUMBER    : display more detailed information about this particular "
+"partition\n"
+msgstr ""
+
+#: parted/parted.c:2196
+msgid "quit"
+msgstr "quit"
+
+#: parted/parted.c:2199
+#, fuzzy
+msgid "quit                                     exit program"
+msgstr "quit                          ×ÙÊÔÉ ÉÚ ÐÒÏÇÒÁÍÍÙ"
+
+#: parted/parted.c:2204
+#, fuzzy
+msgid "rescue"
+msgstr "resize"
+
+#: parted/parted.c:2207
+#, fuzzy
+msgid ""
+"rescue START END                         rescue a lost partition near START "
+"and END"
+msgstr "print                         ×Ù×ÅÓÔÉ ÔÁÂÌÉÃÕ ÒÁÚÄÅÌÏ×"
+
+#: parted/parted.c:2213
+msgid "resize"
+msgstr "resize"
+
+#: parted/parted.c:2216
+#, fuzzy
+msgid ""
+"resize NUMBER START END                  resize partition NUMBER and its "
+"file system"
+msgstr ""
+"resize MINOR îáþ ëïî          ÉÚÍÅÎÉÔØ ÒÁÚÍÅÒ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ ÎÁ ÒÁÚÄÅÌÅ "
+"MINOR"
+
+#: parted/parted.c:2224
+msgid "rm"
+msgstr "rm"
+
+#: parted/parted.c:2227
+#, fuzzy
+msgid "rm NUMBER                                delete partition NUMBER"
+msgstr "rm MINOR                      ÕÄÁÌÉÔØ ÒÁÚÄÅÌ MINOR"
+
+#: parted/parted.c:2232
+msgid "select"
+msgstr ""
+
+#: parted/parted.c:2235
+#, fuzzy
+msgid "select DEVICE                            choose the device to edit"
+msgstr "print                         ×Ù×ÅÓÔÉ ÔÁÂÌÉÃÕ ÒÁÚÄÅÌÏ×"
+
+#: parted/parted.c:2240
+msgid "set"
+msgstr ""
+
+#: parted/parted.c:2243
+#, fuzzy
+msgid ""
+"set NUMBER FLAG STATE                    change the FLAG on partition NUMBER"
+msgstr "rm MINOR                      ÕÄÁÌÉÔØ ÒÁÚÄÅÌ MINOR"
+
+#: parted/parted.c:2249
+msgid "toggle"
+msgstr ""
+
+#: parted/parted.c:2252
+#, fuzzy
+msgid ""
+"toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+"partition NUMBER"
+msgstr "boot MINOR                    ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ÚÁÇÒÕÚÏÞÎÙÊ ÒÁÚÄÅÌ × MINOR"
+
+#: parted/parted.c:2258
+#, fuzzy
+msgid "unit"
+msgstr "quit"
+
+#: parted/parted.c:2261
+#, fuzzy
+msgid "unit UNIT                                set the default unit to UNIT"
+msgstr "print                         ×Ù×ÅÓÔÉ ÔÁÂÌÉÃÕ ÒÁÚÄÅÌÏ×"
+
+#: parted/parted.c:2266
+msgid "version"
+msgstr ""
+
+#: parted/parted.c:2269
+msgid ""
+"version                                  display the version number and "
+"copyright information of GNU Parted"
+msgstr ""
+
+#: parted/parted.c:2273
+msgid ""
+"'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"
+msgstr ""
+
+#: parted/parted.c:2335
+#, c-format
+msgid "Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"
+msgstr ""
+
+#: parted/parted.c:2379
+msgid "No device found"
+msgstr "îÅ ÎÁÊÄÅÎÏ ÎÉ ÏÄÎÏÇÏ ÕÓÔÒÏÊÓÔ×Á"
+
+#: parted/parted.c:2412
+msgid "WARNING: You are not superuser.  Watch out for permissions."
+msgstr ""
+
+#: parted/parted.c:2450
+msgid "You may need to update /etc/fstab.\n"
+msgstr ""
+
+#: parted/ui.c:160
+msgid "Welcome to GNU Parted! Type 'help' to view a list of commands.\n"
+msgstr ""
+
+#: parted/ui.c:163
+#, fuzzy
+msgid ""
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run "
+"in\n"
+"interactive mode.\n"
+msgstr ""
+"éÓÐÏÌØÚÏ×ÁÎÉÅ: parted [ëìàþ] [õóôòïêóô÷ï [ëïíáîäá [ðáòáíåôòù]...]...]\n"
+"ðÒÉÍÅÎÑÅÔ ëïíáîäõ Ó ðáòáíåôòáíé Ë õóôòïêóô÷õ.  åÓÌÉ ÎÉ ÏÄÎÏÊ ëïíáîäù ÎÅ "
+"ÚÁÄÁÎÏ,\n"
+"×ÙÐÏÌÎÑÅÔÓÑ × ÉÎÔÅÒÁËÔÉ×ÎÏÍ ÒÅÖÉÍÅ.\n"
+
+#: parted/ui.c:168
+#, c-format
+msgid ""
+"\n"
+"\n"
+"You found a bug in GNU Parted! Here's what you have to do:\n"
+"\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n"
+"\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Please check this version prior to bug reporting.\n"
+"\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"for further information.\n"
+"\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n"
+msgstr ""
+
+#: parted/ui.c:284
+msgid ""
+"\n"
+"Command History:\n"
+msgstr ""
+
+#: parted/ui.c:366
+msgid ""
+"\n"
+"Error: SEGV_MAPERR (Address not mapped to object)\n"
+msgstr ""
+
+#: parted/ui.c:372
+msgid ""
+"\n"
+"Error: SEGV_ACCERR (Invalid permissions for mapped object)\n"
+msgstr ""
+
+#: parted/ui.c:377
+msgid ""
+"\n"
+"Error: A general SIGSEGV signal was encountered.\n"
+msgstr ""
+
+#: parted/ui.c:410
+msgid ""
+"\n"
+"Error: FPE_INTDIV (Integer: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:415
+msgid ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+msgstr ""
+
+#: parted/ui.c:420
+msgid ""
+"\n"
+"Error: FPE_FLTDIV (Float: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:425
+msgid ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+msgstr ""
+
+#: parted/ui.c:430
+msgid ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+msgstr ""
+
+#: parted/ui.c:435
+msgid ""
+"\n"
+"Error: FPE_FLTRES (Float: inexact result)"
+msgstr ""
+
+#: parted/ui.c:440
+msgid ""
+"\n"
+"Error: FPE_FLTINV (Float: invalid operation)"
+msgstr ""
+
+#: parted/ui.c:445
+msgid ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript out of range)"
+msgstr ""
+
+#: parted/ui.c:450
+msgid ""
+"\n"
+"Error: A general SIGFPE signal was encountered."
+msgstr ""
+
+#: parted/ui.c:483
+msgid ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+msgstr ""
+
+#: parted/ui.c:488
+msgid ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+msgstr ""
+
+#: parted/ui.c:493
+msgid ""
+"\n"
+"Error: ILL_ILLADR (Illegal addressing mode)"
+msgstr ""
+
+#: parted/ui.c:498
+msgid ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+msgstr ""
+
+#: parted/ui.c:503
+msgid ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+msgstr ""
+
+#: parted/ui.c:508
+msgid ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+msgstr ""
+
+#: parted/ui.c:513
+msgid ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+msgstr ""
+
+#: parted/ui.c:518
+msgid ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+msgstr ""
+
+#: parted/ui.c:523
+msgid ""
+"\n"
+"Error: A general SIGILL signal was encountered."
+msgstr ""
+
+#: parted/ui.c:1024
+#, fuzzy
+msgid "Expecting a partition number."
+msgstr "òÁÚÄÅÌ ÎÁÚÎÁÞÅÎÉÑ ÉÓÐÏÌØÚÕÅÔÓÑ."
+
+#: parted/ui.c:1033
+msgid "Partition doesn't exist."
+msgstr "òÁÚÄÅÌ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ."
+
+#: parted/ui.c:1053
+#, fuzzy
+msgid "Expecting a file system type."
+msgstr "îÅÉÚ×ÅÓÔÎÙÊ ÔÉÐ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ."
+
+#: parted/ui.c:1060
+#, fuzzy, c-format
+msgid "Unknown file system type \"%s\"."
+msgstr "îÅÉÚ×ÅÓÔÎÙÊ ÔÉÐ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ."
+
+#: parted/ui.c:1080
+msgid "Expecting a disk label type."
+msgstr ""
+
+#: parted/ui.c:1178
+#, fuzzy
+msgid "Can't create any more partitions."
+msgstr "îÅ×ÏÚÍÏÖÎÏ ÓËÏÐÉÒÏ×ÁÔØ ÒÁÓÛÉÒÅÎÎÙÊ ÒÁÚÄÅÌ."
+
+#: parted/ui.c:1188
+#, fuzzy
+msgid "Expecting a partition type."
+msgstr "òÁÚÄÅÌ ÎÁÚÎÁÞÅÎÉÑ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ."
+
+#: parted/ui.c:1315
+msgid "on"
+msgstr ""
+
+#: parted/ui.c:1316
+msgid "off"
+msgstr ""
+
+#: parted/ui.c:1431
+msgid "OPTIONs:"
+msgstr "ëìàþé:"
+
+#: parted/ui.c:1436
+msgid "COMMANDs:"
+msgstr "ëïíáîäù:"
+
+#: parted/ui.c:1445
+#, fuzzy, c-format
+msgid "Using %s\n"
+msgstr ""
+"\n"
+"éÓÐÏÌØÚÕÅÔÓÑ %s\n"
+
+#: parted/ui.c:1519
+msgid "This command does not make sense in non-interactive mode.\n"
+msgstr ""
+
+#~ msgid "where necessary, prompts for user intervention"
+#~ msgstr "ËÏÇÄÁ ÎÅÏÂÈÏÄÉÍÏ, ÚÁÐÒÁÛÉ×ÁÅÔ ×ÍÅÛÁÔÅÌØÓÔ×Ï ÐÏÌØÚÏ×ÁÔÅÌÑ"
+
+#~ msgid "Device %s is neither a SCSI nor IDE drive."
+#~ msgstr "õÓÔÒÏÊÓÔ×Ï %s ÎÅ Ñ×ÌÑÅÔÓÑ ÎÉ SCSI, ÎÉ IDE ÄÉÓËÏÍ."
+
+#~ msgid ""
+#~ "The sector size on %s is %d bytes.  Parted is known not to work properly "
+#~ "with drives with sector sizes other than 512 bytes"
+#~ msgstr ""
+#~ "óÅËÔÏÒÙ ÎÁ %s ÉÍÅÀÔ ÒÁÚÍÅÒ %d ÂÁÊÔ.  óÞÉÔÁÅÔÓÑ, ÞÔÏ Parted ÒÁÂÏÔÁÅÔ "
+#~ "ÎÅÐÒÁ×ÉÌØÎÏ Ó ÕÓÔÒÏÊÓÔ×ÁÍÉ, ÒÁÚÍÅÒ ÓÅËÔÏÒÏ× ËÏÔÏÒÙÈ ÏÔÌÉÞÁÅÔÓÑ ÏÔ 512 ÂÁÊÔ"
+
+#~ msgid "Could not read geometry of %s - %s."
+#~ msgstr "îÅ ÕÄÁÅÔÓÑ ÐÒÏÞÉÔÁÔØ ÇÅÏÍÅÔÒÉÀ %s - %s."
+
+#~ msgid "Device %s has dodgey geometry."
+#~ msgstr "õÓÔÒÏÊÓÔ×Ï %s ÉÍÅÅÔ ÓÔÒÁÎÎÕÀ ÇÅÏÍÅÔÒÉÀ."
+
+#~ msgid "Unknown SCSI"
+#~ msgstr "îÅÉÚ×ÅÓÔÎÙÊ SCSI"
+
+#~ msgid ""
+#~ "There is no boot code on this disk.  Would you like to use GNU parted's "
+#~ "boot loader?"
+#~ msgstr ""
+#~ "îÁ ÜÔÏÍ ÄÉÓËÅ ÎÅÔ ËÏÄÁ ÚÁÇÒÕÚËÉ.  ÷Ù ÈÏÔÉÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÚÁÇÒÕÚÞÉË GNU "
+#~ "parted?"
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  However, the most likely reason is that Linux "
+#~ "detected the BIOS geometry for %s incorrectly.  GNU Parted suspects the "
+#~ "real geometry should be %d/%d/%d (not %d/%d/%d).  You should check with "
+#~ "your BIOS first, as this may not be correct.  You can inform Linux by "
+#~ "adding the parameter %s=%d,%d,%d to the command line.  See the LILO "
+#~ "documentation for more information.  If you think Parted's suggested "
+#~ "geometry is correct, you may select Ignore to continue (and fix Linux "
+#~ "later).  Otherwise, select Cancel (and fix Linux and/or the BIOS now)."
+#~ msgstr ""
+#~ "ôÁÂÌÉÃÁ ÒÁÚÄÅÌÏ× ÎÁ %s Ñ×ÌÑÅÔÓÑ ÐÒÏÔÉ×ÏÒÅÞÉ×ÏÊ.  óÕÝÅÓÔ×ÕÅÔ ÍÎÏÇÏ ÐÒÉÞÉÎ, "
+#~ "× ÓÉÌÕ ËÏÔÏÒÙÈ ÜÔÏ ÍÏÖÅÔ ÉÍÅÔØ ÍÅÓÔÏ.  ïÄÎÁËÏ, ×ÅÒÏÑÔÎÅÅ ×ÓÅÇÏ, Linux "
+#~ "ÎÅÐÒÁ×ÉÌØÎÏ ÏÐÒÅÄÅÌÉÌ ÇÅÏÍÅÔÒÉÀ BIOS ÄÌÑ %s.  GNU Parted ÐÏÄÏÚÒÅ×ÁÅÔ, ÞÔÏ "
+#~ "ÒÅÁÌØÎÁÑ ÇÅÏÍÅÔÒÉÑ ÄÏÌÖÎÁ ÂÙÔØ %d/%d/%d (Á ÎÅ %d/%d/%d).  óÎÁÞÁÌÁ ×Ù "
+#~ "ÄÏÌÖÎÙ ÐÒÏ×ÅÒÉÔØ BIOS, ÔÁË ËÁË ÜÔÏ ÍÏÖÅÔ ÂÙÔØ ÎÅ×ÅÒÎÏ.  ÷Ù ÍÏÖÅÔÅ Ñ×ÎÏ "
+#~ "ÕËÁÚÁÔØ ÅÅ Linux, ÄÏÂÁ×É× × ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ ÐÁÒÁÍÅÔÒ %s=%d,%d,%d.  äÌÑ "
+#~ "ÄÏÐÏÌÎÉÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ, ÓÍ. ÄÏËÕÍÅÎÔÁÃÉÀ ÎÁ LILO.  åÓÌÉ ×Ù ÓÞÉÔÁÅÔÅ, "
+#~ "ÞÔÏ ÐÒÅÄÌÏÖÅÎÎÁÑ Parted ÇÅÏÍÅÔÒÉÑ ×ÅÒÎÁ, ×ÙÂÅÒÉÔÅ éÇÎÏÒÉÒÏ×ÁÔØ ÄÌÑ "
+#~ "ÐÒÏÄÏÌÖÅÎÉÑ (É ÓËÏÒÒÅËÔÉÒÕÊÔÅ Linux ÐÏÚÖÅ).  éÎÁÞÅ, ×ÙÂÅÒÉÔÅ ïÔÍÅÎÕ (É "
+#~ "ÓËÏÒÒÅËÔÉÒÕÊÔÅ Linux É/ÉÌÉ BIOS ÓÅÊÞÁÓ)."
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  Often, the reason is that Linux detected the "
+#~ "BIOS geometry incorrectly.  However, this does not appear to be the case "
+#~ "here."
+#~ msgstr ""
+#~ "ðÒÏÔÉ×ÏÒÅÞÉ×ÁÑ ÔÁÂÌÉÃÁ ÒÁÚÄÅÌÏ× ÎÁ %s.  üÔÏ ÍÏÖÅÔ ÉÍÅÔØ ÍÅÓÔÏ × ÓÉÌÕ "
+#~ "ÍÎÏÇÉÈ ÐÒÉÞÉÎ.  þÁÓÔÏ ÜÔÏ ÐÒÏÉÓÈÏÄÉÔ ÐÏÔÏÍÕ, ÞÔÏ Linux ÎÅÐÒÁ×ÉÌØÎÏ "
+#~ "ÏÐÒÅÄÅÌÑÅÔ ÇÅÏÍÅÔÒÉÀ BIOS.  ïÄÎÁËÏ, × ÄÁÎÎÏÍ ÓÌÕÞÁÅ ÐÒÉÞÉÎÁ, ×ÉÄÉÍÏ, ÉÎÁÑ."
+
+#~ msgid "No get_min_size() for %s!"
+#~ msgstr "îÅÔ get_min_size() ÄÌÑ %s!"
+
+#~ msgid "No get_system() for %s!"
+#~ msgstr "îÅÔ get_system() ÄÌÑ %s!"
+
+#~ msgid "Creating new %s disklabels is not implemented yet."
+#~ msgstr "óÏÚÄÁÎÉÅ ÎÏ×ÙÈ %s ÍÅÔÏË ÄÉÓËÁ ÐÏËÁ ÎÅ ÒÅÁÌÉÚÏ×ÁÎÏ."
+
+#~ msgid "The code to write the partition table hasn't been written for %s yet"
+#~ msgstr "ðÒÏÇÒÁÍÍÁ ÄÌÑ ÚÁÐÉÓÉ ÔÁÂÌÉÃÙ ÒÁÚÄÅÌÏ× ÄÌÑ %s ÐÏËÁ ÎÅ ÎÁÐÉÓÁÎÁ"
+
+#~ msgid "Can't create a partition with the start after the end."
+#~ msgstr ""
+#~ "îÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ÒÁÚÄÅÌ, Õ ËÏÔÏÒÏÇÏ ÎÁÞÁÌÏ ÒÁÓÐÏÌÏÖÅÎÏ ÐÏÓÌÅ ËÏÎÃÁ."
+
+#~ msgid ""
+#~ "No filesystem found on partition.  Can't determine what partition system "
+#~ "to use."
+#~ msgstr ""
+#~ "îÁ ÒÁÚÄÅÌÅ ÎÅ ÎÁÊÄÅÎÏ ÎÉ ÏÄÎÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ.  îÅ×ÏÚÍÏÖÎÏ ÏÐÒÅÄÅÌÉÔØ, "
+#~ "ËÁËÕÀ ÓÉÓÔÅÍÕ ÒÁÚÄÅÌÏ× ÉÓÐÏÌØÚÏ×ÁÔØ."
+
+#~ msgid "Error reading %s (%s) to determine if partition is mounted."
+#~ msgstr ""
+#~ "ïÛÉÂËÁ ÐÒÉ ÞÔÅÎÉÉ %s (%s) ÄÌÑ ÏÐÒÅÄÅÌÅÎÉÑ, Ñ×ÌÑÅÔÓÑ ÌÉ ÒÁÚÄÅÌ "
+#~ "ÚÁÍÏÎÔÉÒÏ×ÁÎÎÙÍ."
+
+#~ msgid "Can't grow partition onto used space, or outside the disk."
+#~ msgstr ""
+#~ "îÅ×ÏÚÍÏÖÎÏ Õ×ÅÌÉÞÉÔØ ÒÁÚÄÅÌ ÚÁ ÓÞÅÔ ÉÓÐÏÌØÚÕÅÍÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á, ÉÌÉ ÚÁ "
+#~ "ÐÒÅÄÅÌÙ ÄÉÓËÁ."
+
+#~ msgid "Attempt to read sectors %ld-%ld outside of partition on %s"
+#~ msgstr "ðÏÐÙÔËÁ ÐÒÏÞÉÔÁÔØ ÓÅËÔÏÒÁ %ld-%ld ×ÎÅ ÒÁÚÄÅÌÁ ÎÁ %s"
+
+#~ msgid ""
+#~ "This ext2 filesystem has a rather strange layout!  Please use dumpe2fs on "
+#~ "this filesystem and send it to <buytenh@gnu.org>. I won't resize it, "
+#~ "sorry."
+#~ msgstr ""
+#~ "üÔÁ ÆÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ext2 ÉÍÅÅÔ ÄÏ×ÏÌØÎÏ ÓÔÒÁÎÎÕÀ ÓÈÅÍÕ!  ðÏÖÁÌÕÊÓÔÁ, "
+#~ "ÉÓÐÏÌØÚÕÊÔÅ dumpe2fs ÄÌÑ ÜÔÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ É ÐÏÛÌÉÔÅ ÒÅÚÕÌØÔÁÔ "
+#~ "<buytenh@gnu.org>. òÁÚÍÅÒ ÎÅ ÂÕÄÅÔ ÉÚÍÅÎÅÎ, ÉÚ×ÉÎÉÔÅ."
+
+#~ msgid "Insane!  %d clusters!"
+#~ msgstr "óÔÒÁÎÎÏ!  %d ËÌÁÓÔÅÒÏ×!"
+
+#~ msgid ""
+#~ "The filesystem is going to be too big for FAT16, so FAT32 will be used.  "
+#~ "This is not compatible with MS-DOS, early versions of MS-Windows 95 and "
+#~ "Windows NT.  If you use these operating systems, then select cancel, and "
+#~ "create a smaller partition.  If you only use Linux, BSD, MS Windows 98 "
+#~ "and/or MS Windows 95 B, then select OK."
+#~ msgstr ""
+#~ "æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÓÔÁÎÏ×ÉÔÓÑ ÓÌÉÛËÏÍ ÂÏÌØÛÏÊ ÄÌÑ FAT16, ÔÁË ÞÔÏ ÂÕÄÅÔ "
+#~ "ÉÓÐÏÌØÚÏ×ÁÎÁ FAT32.  üÔÏ ÎÅ ÓÏ×ÍÅÓÔÉÍÏ Ó MS-DOS, ÒÁÎÎÉÍÉ ×ÅÒÓÉÑÍÉ MS-"
+#~ "Windows 95 É Windows NT.  åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ÜÔÉ ÏÐÅÒÁÃÉÏÎÎÙÅ ÓÉÓÔÅÍÙ, "
+#~ "×ÙÂÅÒÉÔÅ ÏÔÍÅÎÕ É ÓÏÚÄÁÊÔÅ ÍÅÎØÛÉÊ ÒÁÚÄÅÌ.  åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ÔÏÌØËÏ "
+#~ "Linux, BSD, MS Windows 98 É/ÉÌÉ MS Widnows 95 B, ×ÙÂÅÒÉÔÅ OK."
+
+#~ msgid "Weird: fat_calc_sizes() failed for FAT32!"
+#~ msgstr "óÔÒÁÎÎÏ: ÏÛÉÂËÁ × fat_calc_sizes() ÄÌÑ FAT32!"
+
+#~ msgid ""
+#~ "Would you like to use FAT32 for this filesystem?  It is much more "
+#~ "efficient with your disk space, but is not compatible with early versions "
+#~ "of Windows 95 and Windows NT.  Only select yes if you only use Linux, "
+#~ "BSD, MS Windows 98 and/or MS Windows 95 B."
+#~ msgstr ""
+#~ "èÏÔÉÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ FAT32 ÄÌÑ ÜÔÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ?  ïÎÁ ÎÁÍÎÏÇÏ "
+#~ "ÜÆÆÅËÔÉ×ÎÅÅ ÉÓÐÏÌØÚÕÅÔ ÄÉÓËÏ×ÏÅ ÐÒÏÓÔÒÁÎÓÔ×Ï, ÎÏ ÎÅÓÏ×ÍÅÓÔÉÍÁ Ó ÒÁÎÎÉÍÉ "
+#~ "×ÅÒÓÉÑÍÉ Windows 95 É Windows NT.  ÷ÙÂÅÒÉÔÅ `ÄÁ' ÌÉÛØ × ÓÌÕÞÁÅ, ÅÓÌÉ "
+#~ "ÉÓÐÏÌØÚÕÅÔÅ ÔÏÌØËÏ Linux, BSD, MS Windows 98 É/ÉÌÉ MS Windows 95 B."
+
+#~ msgid ""
+#~ "File system doesn't have expected sizes for Windows to like it.  Number "
+#~ "of clusters is %d (%d expected); size of FATs is %d sectors (%d expected)."
+#~ msgstr ""
+#~ "Windows ÎÅ ÍÏÖÅÔ ÒÁÂÏÔÁÔØ Ó ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÏÊ, ÉÍÅÀÝÅÊ ÔÁËÉÅ ÒÁÚÍÅÒÙ.  "
+#~ "þÉÓÌÏ ËÌÁÓÔÅÒÏ× %d (ÏÖÉÄÁÅÍÏÅ %d); ÒÁÚÍÅÒ FAT %d ÓÅËÔÏÒÏ× (ÏÖÉÄÁÅÍÙÊ %d)."
+
+#~ msgid "FAT filesystems don't have an id for non-msdos partition tables"
+#~ msgstr ""
+#~ "æÁÊÌÏ×ÙÅ ÓÉÓÔÅÍÙ FAT ÎÅ ÉÍÅÀÔ ÉÄÅÎÔÉÆÉËÁÔÏÒÁ ÄÌÑ ÎÅ-msdos ÔÁÂÌÉà ÒÁÚÄÅÌÏ×"
+
+#~ msgid ""
+#~ "Would you like to use FAT32?  It is more efficient, but it is not "
+#~ "compatible with MS-DOS, early versions of MS-Windows 95 and Windows NT.  "
+#~ "If you use these operating systems, then select No.  If you only use "
+#~ "Linux, BSD, MS Windows 98 and/or MS Windows 95 B, then you may select Yes."
+#~ msgstr ""
+#~ "÷Ù ÈÏÔÉÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ FAT32?  ïÎÁ ÂÏÌÅÅ ÜÆÆÅËÔÉ×ÎÁ, ÎÏ ÎÅ ÓÏ×ÍÅÓÔÉÍÁ Ó "
+#~ "MS-DOS, ÒÁÎÎÉÍÉ ×ÅÒÓÉÑÍÉ MS-Windows 95 É Windows NT.  åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ "
+#~ "ÜÔÉ ÏÐÅÒÁÃÉÏÎÎÙÅ ÓÉÓÔÅÍÙ, ×ÙÂÅÒÉÔÅ îÅÔ.  åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ÔÏÌØËÏ "
+#~ "Linux, BSD, MS Windows 98 É/ÉÌÉ MS Widnows 95 B, ÔÏÇÄÁ ÍÏÖÅÔÅ ×ÙÂÒÁÔØ äÁ."
+
+#~ msgid ""
+#~ "The filesystem is going to be too big for FAT16, so FAT32 must be used.  "
+#~ "This is not compatible with MS-DOS, early versions of MS-Windows 95 and "
+#~ "Windows NT.  If you use these operating systems, then select Cancel, and "
+#~ "create a smaller partition.  If you only use Linux, BSD, MS Windows 98 "
+#~ "and/or MS Windows 95 B, then select OK."
+#~ msgstr ""
+#~ "æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÓÔÁÎÏ×ÉÔÓÑ ÓÌÉÛËÏÍ ÂÏÌØÛÏÊ ÄÌÑ FAT16, ÔÁË ÞÔÏ ÂÕÄÅÔ "
+#~ "ÉÓÐÏÌØÚÏ×ÁÎÁ FAT32.  üÔÏ ÎÅ ÓÏ×ÍÅÓÔÉÍÏ Ó MS-DOS, ÒÁÎÎÉÍÉ ×ÅÒÓÉÑÍÉ MS-"
+#~ "Windows 95 É Windows NT.  åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ÜÔÉ ÏÐÅÒÁÃÉÏÎÎÙÅ ÓÉÓÔÅÍÙ, "
+#~ "×ÙÂÅÒÉÔÅ ïÔÍÅÎÉÔØ É ÓÏÚÄÁÊÔÅ ÍÅÎØÛÉÊ ÒÁÚÄÅÌ.  åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ÔÏÌØËÏ "
+#~ "Linux, BSD, MS Windows 98 É/ÉÌÉ MS Widnows 95 B, ×ÙÂÅÒÉÔÅ OK."
+
+#~ msgid "Filesystem has an invalid signature for a FAT filesystems."
+#~ msgstr "æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÉÍÅÅÔ ÎÅ×ÅÒÎÕÀ ÄÌÑ FAT ÓÉÇÎÁÔÕÒÕ."
+
+#~ msgid ""
+#~ "Partition size (%ld sectors) and filesystem size (%d sectors) do not "
+#~ "match."
+#~ msgstr ""
+#~ "òÁÚÍÅÒÙ ÒÁÚÄÅÌÁ (%ld ÓÅËÔÏÒÏ×) É ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ (%d ÓÅËÔÏÒÏ×) ÎÅ "
+#~ "ÓÏ×ÐÁÄÁÀÔ."
+
+#~ msgid ""
+#~ "This swap partition is not compatible with Linux version 2.1.117 or "
+#~ "earlier.  Use a smaller partition (maximum size 128mb) if you want to use "
+#~ "old versions of Linux."
+#~ msgstr ""
+#~ "üÔÏÔ swap-ÒÁÚÄÅÌ ÎÅ ÓÏ×ÍÅÓÔÉÍ Ó Linux ×ÅÒÓÉÉ 2.1.117 ÉÌÉ ÂÏÌÅÅ ÒÁÎÎÅÊ.  "
+#~ "éÓÐÏÌØÚÕÊÔÅ ÍÅÎØÛÉÊ ÒÁÚÄÅÌ (ÍÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ 128íâ), ÅÓÌÉ ×Ù ÈÏÔÉÔÅ "
+#~ "ÉÓÐÏÌØÚÏ×ÁÔØ ÓÔÁÒÙÅ ×ÅÒÓÉÉ Linux."
+
+#~ msgid "Linux-swap partitions can not be hidden."
+#~ msgstr "swap-ÒÁÚÄÅÌ Linux ÎÅ ÍÏÖÅÔ ÂÙÔØ ÓËÒÙÔ."
+
+#~ msgid "START and END are in cylinders\n"
+#~ msgstr "START É END ÎÁÈÏÄÑÔÓÑ × ÃÉÌÉÎÄÒÁÈ\n"
+
+#~ msgid "hide"
+#~ msgstr "hide"
+
+#~ msgid "Disk geometry: 1-%d, %dk cylinders\n"
+#~ msgstr "çÅÏÍÅÔÒÉÑ ÄÉÓËÁ: 1-%d, %dk ÃÉÌÉÎÄÒÏ×\n"
+
+#~ msgid "Minor    Start    End      Type            Filesystem     Flags\n"
+#~ msgstr "îÏÍÅÒ    îÁÞÁÌÏ   ëÏÎÅà    ôÉÐ       æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ     æÌÁÇÉ\n"
+
+#~ msgid "unhide"
+#~ msgstr "unhide"
+
+#~ msgid "hide MINOR                    hides partition MINOR"
+#~ msgstr "hide MINOR                    ÓËÒÙÔØ ÒÁÚÄÅÌ MINOR"
+
+#~ msgid "unhide MINOR                  unhides partition MINOR"
+#~ msgstr "unhide MINOR                  ÄÅÌÁÅÔ ×ÉÄÉÍÙÍ ÒÁÚÄÅÌ MINOR"
+
+#~ msgid ""
+#~ "You found a bug in GNU Parted.  Please email a bug report to bug-"
+#~ "parted@gnu.org containing the version (%s), and the following message:\n"
+#~ msgstr ""
+#~ "÷Ù ÏÂÎÁÒÕÖÉÌÉ ÏÛÉÂËÕ × GNU parted.  ðÏÖÁÌÕÊÓÔÁ, ÐÏÛÌÉÔÅ ÏÔÞÅÔ Ï ÏÛÉÂËÅ\n"
+#~ "ÐÏ ÁÄÒÅÓÕ bug-parted@gnu.org, ÓÏÄÅÒÖÁÝÉÊ ×ÅÒÓÉÀ (%s) É\n"
+#~ "ÓÌÅÄÕÀÝÅÅ ÓÏÏÂÝÅÎÉÅ:\n"
+
+#~ msgid ""
+#~ "The operating system thinks the geometry on %s is %d/%d/%d.  You should "
+#~ "check that this matches the BIOS geometry before using this program."
+#~ msgstr ""
+#~ "ïÐÅÒÁÃÉÏÎÎÁÑ ÓÉÓÔÅÍÁ ÏÐÒÅÄÅÌÉÌÁ ÇÅÏÍÅÔÒÉÀ ÎÁ %s ËÁË %d/%d/%d.  ðÅÒÅÄ "
+#~ "ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÐÒÏÇÒÁÍÍÙ, ×Ù ÄÏÌÖÎÙ ÐÒÏ×ÅÒÉÔØ, ÞÔÏ ÜÔÏ ÓÏÏÔ×ÅÔÓÔ×ÕÅÔ "
+#~ "ÇÅÏÍÅÔÒÉÉ, ÕËÁÚÁÎÎÏÊ × BIOS."
diff --git a/parted-1.8.7/po/rw.gmo b/parted-1.8.7/po/rw.gmo
new file mode 100644
index 0000000..267bd2d
--- /dev/null
+++ b/parted-1.8.7/po/rw.gmo
Binary files differ
diff --git a/parted-1.8.7/po/rw.po b/parted-1.8.7/po/rw.po
new file mode 100644
index 0000000..6a23a0a
--- /dev/null
+++ b/parted-1.8.7/po/rw.po
@@ -0,0 +1,3354 @@
+# Kinyarwanda translations for parted package.
+# Copyright (C) 2005 Free Software Foundation, Inc.
+# Steve Murphy <murf@e-tools.com>, 2005.
+# Steve performed initial rough translation from compendium built from translations provided by the following translators:
+# Philibert Ndandali  <ndandali@yahoo.fr>, 2005.
+# Viateur MUGENZI <muvia1@yahoo.fr>, 2005.
+# Noëlla Mupole <s24211045@tuks.co.za>, 2005.
+# Carole Karema <karemacarole@hotmail.com>, 2005.
+# JEAN BAPTISTE NGENDAHAYO <ngenda_denis@yahoo.co.uk>, 2005.
+# Augustin KIBERWA  <akiberwa@yahoo.co.uk>, 2005.
+# Donatien NSENGIYUMVA <ndonatienuk@yahoo.co.uk>, 2005.
+# Antoine Bigirimana <antoine@e-tools.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: parted 1.6.6\n"
+"Report-Msgid-Bugs-To: bug-parted@gnu.org\n"
+"POT-Creation-Date: 2007-05-09 17:02-0400\n"
+"PO-Revision-Date: 2005-04-04 10:55-0700\n"
+"Last-Translator: Steven Michael Murphy <murf@e-tools.com>\n"
+"Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/closeout.c:74
+msgid "write error"
+msgstr ""
+
+#: lib/error.c:125
+#, fuzzy
+msgid "Unknown system error"
+msgstr "IDOSIYE Sisitemu Ubwoko"
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK).  A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#.
+#. If you don't know what to put here, please see
+#. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr ""
+
+#: lib/regcomp.c:131
+msgid "Success"
+msgstr ""
+
+#: lib/regcomp.c:134
+msgid "No match"
+msgstr ""
+
+#: lib/regcomp.c:137
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regcomp.c:140
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regcomp.c:143
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regcomp.c:146
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regcomp.c:149
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regcomp.c:152
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regcomp.c:155
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regcomp.c:158
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regcomp.c:161
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regcomp.c:164
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regcomp.c:170
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regcomp.c:173
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regcomp.c:176
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regcomp.c:179
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regcomp.c:680
+msgid "No previous regular expression"
+msgstr ""
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr ""
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:66
+msgid "(C)"
+msgstr ""
+
+#: lib/version-etc.c:68
+msgid ""
+"\n"
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:84
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:88
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:92
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:98
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:104
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:110
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:132
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+
+#: lib/xalloc-die.c:35
+msgid "memory exhausted"
+msgstr ""
+
+#: libparted/arch/beos.c:237
+msgid "Disk Image"
+msgstr ""
+
+#: libparted/arch/beos.c:338 libparted/arch/gnu.c:261
+#: libparted/arch/linux.c:1272
+#, fuzzy, c-format
+msgid "Error opening %s: %s"
+msgstr "Hari ikibazo mu gufungura %s%S"
+
+#: libparted/arch/beos.c:349 libparted/arch/gnu.c:271
+#: libparted/arch/linux.c:1283
+#, fuzzy, c-format
+msgid "Unable to open %s read-write (%s).  %s has been opened read-only."
+msgstr "Kuri Gufungura Gusoma Kwandika Gusoma"
+
+#: libparted/arch/beos.c:411 libparted/arch/linux.c:1431
+#, fuzzy, c-format
+msgid "%s during seek for read on %s"
+msgstr "%skugirango Gusoma ku"
+
+#: libparted/arch/beos.c:444 libparted/arch/gnu.c:449 libparted/arch/gnu.c:548
+#: libparted/arch/gnu.c:676 libparted/arch/linux.c:1391
+#: libparted/arch/linux.c:1469
+#, fuzzy, c-format
+msgid "%s during read on %s"
+msgstr "%sGusoma ku"
+
+#: libparted/arch/beos.c:480 libparted/arch/gnu.c:509
+#: libparted/arch/linux.c:1546
+#, fuzzy, c-format
+msgid "Can't write to %s, because it is opened read-only."
+msgstr "Kwandika Kuri ni Gusoma"
+
+#: libparted/arch/beos.c:496 libparted/arch/linux.c:1570
+#, fuzzy, c-format
+msgid "%s during seek for write on %s"
+msgstr "%skugirango Kwandika ku"
+
+#: libparted/arch/beos.c:533 libparted/arch/gnu.c:585 libparted/arch/gnu.c:630
+#: libparted/arch/gnu.c:707 libparted/arch/linux.c:1517
+#: libparted/arch/linux.c:1612 libparted/arch/linux.c:1684
+#, fuzzy, c-format
+msgid "%s during write on %s"
+msgstr "%sKwandika ku"
+
+#: debug/clearfat/clearfat.c:63 partprobe/partprobe.c:137
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:67
+#, c-format
+msgid ""
+"Usage: %s [OPTION]\n"
+"  or:  %s DEVICE MINOR\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:70
+msgid ""
+"Clear unused space on a FAT partition (a GNU Parted testing tool).\n"
+"\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:74
+msgid "      --help     display this help and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:75
+msgid "      --version  output version information and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:77 partprobe/partprobe.c:154
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:285
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:290
+#, fuzzy, c-format
+msgid "too many arguments"
+msgstr "Amapaji"
+
+#: partprobe/partprobe.c:141
+#, c-format
+msgid "Usage: %s [OPTION] [DEVICE]...\n"
+msgstr ""
+
+#: partprobe/partprobe.c:142
+msgid ""
+"Inform the OS of partition table changes.\n"
+"\n"
+"  -d, --no-update  don't update the kernel\n"
+"  -s, --summary    print a summary of contents\n"
+"  -h, --help       display this help and exit\n"
+"  -v, --version    output version information and exit\n"
+msgstr ""
+
+#: partprobe/partprobe.c:150
+msgid ""
+"\n"
+"With no DEVICE, probe all partitions.\n"
+msgstr ""
+
+#: libparted/arch/gnu.c:94
+#, fuzzy, c-format
+msgid "Unable to open %s."
+msgstr "Kuri Gufungura"
+
+#: libparted/arch/gnu.c:114
+#, fuzzy
+msgid "Unable to probe store."
+msgstr "Kuri"
+
+#: libparted/arch/gnu.c:352
+#, fuzzy
+msgid ""
+"The partition table cannot be re-read.  This means you need to reboot before "
+"mounting any modified partitions.  You also need to reinstall your boot "
+"loader before you reboot (which may require mounting modified partitions).  "
+"It is impossible do both things!  So you'll need to boot off a rescue disk, "
+"and reinstall your boot loader from the rescue disk.  Read section 4 of the "
+"Parted User documentation for more information."
+msgstr ""
+"imbonerahamwe# Kuri Nka Kuri Mbere Byahinduwe Kuri Mbere Gicurasi Byahinduwe "
+"ni Byombi Kuri Bidakora a Na Bivuye i Icyiciro 4. Bya i kugirango Birenzeho "
+"Ibisobanuro"
+
+#: libparted/arch/gnu.c:369
+#, fuzzy, c-format
+msgid ""
+"The partition table on %s cannot be re-read (%s).  This means the Hurd knows "
+"nothing about any modifications you made.  You should reboot your computer "
+"before doing anything with %s."
+msgstr "imbonerahamwe# ku i Ibyerekeye Mbere Na:"
+
+#: libparted/arch/gnu.c:380 parted/parted.c:2443
+#, fuzzy
+msgid ""
+"You should reinstall your boot loader before rebooting.  Read section 4 of "
+"the Parted User documentation for more information."
+msgstr "Mbere Icyiciro 4. Bya i kugirango Birenzeho Ibisobanuro"
+
+#: libparted/arch/gnu.c:772
+#, fuzzy, c-format
+msgid "%s trying to sync %s to disk"
+msgstr "%sKuri Kuri"
+
+#: libparted/arch/linux.c:408
+#, fuzzy, c-format
+msgid "Could not stat device %s - %s."
+msgstr "OYA APAREYE"
+
+#: libparted/arch/linux.c:523
+#, c-format
+msgid ""
+"Could not determine sector size for %s: %s.\n"
+"Using the default sector size (%lld)."
+msgstr ""
+
+#: libparted/arch/linux.c:539
+#, c-format
+msgid ""
+"Device %s has a logical sector size of %lld.  Not all parts of GNU Parted "
+"support this at the moment, and the working code is HIGHLY EXPERIMENTAL.\n"
+msgstr ""
+
+#: libparted/arch/linux.c:579
+#, fuzzy, c-format
+msgid "Unable to determine the size of %s (%s)."
+msgstr "Kuri i Ingano Bya"
+
+#: libparted/arch/linux.c:668
+#, fuzzy, c-format
+msgid "Could not get identity of device %s - %s"
+msgstr "OYA Kubona Ikiranga Bya APAREYE"
+
+#: libparted/arch/linux.c:677
+msgid "Generic IDE"
+msgstr ""
+
+#: libparted/arch/linux.c:698
+#, c-format
+msgid ""
+"Device %s has multiple (%d) logical sectors per physical sector.\n"
+"GNU Parted supports this EXPERIMENTALLY for some special disk label/file "
+"system combinations, e.g. GPT and ext2/3.\n"
+"Please consult the web site for up-to-date information."
+msgstr ""
+
+#: libparted/arch/linux.c:873
+#, fuzzy, c-format
+msgid "Error initialising SCSI device %s - %s"
+msgstr "APAREYE"
+
+#: libparted/arch/linux.c:928
+#, fuzzy, c-format
+msgid ""
+"The device %s has zero length, and can't possibly store a file system or "
+"partition table.  Perhaps you selected the wrong device?"
+msgstr ""
+"APAREYE ni Zeru Uburebure Na a IDOSIYE Sisitemu Cyangwa imbonerahamwe# "
+"Byahiswemo i APAREYE"
+
+#: libparted/arch/linux.c:1032
+#, fuzzy, c-format
+msgid ""
+"Unable to determine geometry of file/device %s.  You should not use Parted "
+"unless you REALLY know what you're doing!"
+msgstr "Kuri Iyigamashusho Bya IDOSIYE APAREYE OYA Gukoresha"
+
+#: libparted/arch/linux.c:1110
+msgid "DAC960 RAID controller"
+msgstr ""
+
+#: libparted/arch/linux.c:1115
+msgid "Promise SX8 SATA Device"
+msgstr ""
+
+#: libparted/arch/linux.c:1120
+msgid "IBM S390 DASD drive"
+msgstr ""
+
+#: libparted/arch/linux.c:1125
+msgid "IBM iSeries Virtual DASD"
+msgstr ""
+
+#: libparted/arch/linux.c:1130
+msgid "Compaq Smart Array"
+msgstr ""
+
+#: libparted/arch/linux.c:1135
+msgid "ATARAID Controller"
+msgstr ""
+
+#: libparted/arch/linux.c:1140
+msgid "I2O Controller"
+msgstr ""
+
+#: libparted/arch/linux.c:1145
+msgid "User-Mode Linux UBD"
+msgstr ""
+
+#: libparted/arch/linux.c:1156
+msgid "Linux device-mapper"
+msgstr ""
+
+# filter/source\xsltdialog\xmlfilterdialogstrings.src:STR_UNKNOWN_APPLICATION.text
+#: libparted/arch/linux.c:1162
+msgid "Unknown"
+msgstr "Kitazwi"
+
+#: libparted/arch/linux.c:1169
+#, fuzzy
+msgid "ped_device_new()  Unsupported device type"
+msgstr "APAREYE Ubwoko"
+
+#: libparted/arch/linux.c:2083
+#, fuzzy, c-format
+msgid ""
+"Error informing the kernel about modifications to partition %s -- %s.  This "
+"means Linux won't know about any changes you made to %s until you reboot -- "
+"so you shouldn't mount it or use it in any way before rebooting."
+msgstr ""
+"i Ibyerekeye Kuri Ibyerekeye Amahinduka Kuri Cyangwa Gukoresha in Mbere"
+
+#: libparted/arch/linux.c:2262
+#, fuzzy, c-format
+msgid ""
+"parted was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made. "
+msgstr "Kuri Gusoma i imbonerahamwe# ku Ibyerekeye i Mbere Na:"
+
+#: libparted/arch/linux.c:2368
+#, fuzzy, c-format
+msgid ""
+"The kernel was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made until you "
+"reboot.  You should reboot your computer before doing anything with %s."
+msgstr "Kuri Gusoma i imbonerahamwe# ku Ibyerekeye i Mbere Na:"
+
+#: libparted/cs/geom.c:162
+#, fuzzy
+msgid "Can't have the end before the start!"
+msgstr "i Impera Mbere i Gutangira"
+
+#: libparted/cs/geom.c:169
+#, fuzzy
+msgid "Can't have a partition outside the disk!"
+msgstr "a Hanze i"
+
+#: libparted/cs/geom.c:366
+#, fuzzy, c-format
+msgid "Attempt to write sectors %ld-%ld outside of partition on %s."
+msgstr "Kuri Kwandika Hanze Bya ku"
+
+#: libparted/cs/geom.c:406 libparted/fs/linux_swap/linux_swap.c:475
+#, fuzzy
+msgid "checking for bad blocks"
+msgstr "kugirango"
+
+#: libparted/debug.c:102
+#, c-format
+msgid "Backtrace has %d calls on stack:\n"
+msgstr ""
+
+#: libparted/debug.c:114
+#, c-format
+msgid "Assertion (%s) at %s:%d in function %s() failed."
+msgstr ""
+
+#: libparted/disk.c:203
+#, fuzzy, c-format
+msgid "Unable to open %s - unrecognised disk label."
+msgstr "Kuri Gufungura Akarango"
+
+#: libparted/disk.c:471
+#, fuzzy, c-format
+msgid ""
+"This libparted doesn't have write support for %s.  Perhaps it was compiled "
+"read-only."
+msgstr "Kwandika Gushigikira kugirango Gusoma"
+
+#: libparted/disk.c:598
+#, fuzzy, c-format
+msgid "Partition %d is %s, but the file system is %s."
+msgstr "ni i IDOSIYE Sisitemu ni"
+
+#: libparted/disk.c:1075
+#, fuzzy, c-format
+msgid "%s disk labels do not support extended partitions."
+msgstr "%sUturango... OYA Gushigikira Byongerewe..."
+
+#: libparted/disk.c:1634
+#, fuzzy, c-format
+msgid "%s disk labels don't support logical or extended partitions."
+msgstr ""
+"%sUturango... Gushigikira Bijyanye n'inyurabwenge Cyangwa Byongerewe..."
+
+#: libparted/disk.c:1647
+#, fuzzy
+msgid "Too many primary partitions."
+msgstr "Amapaji"
+
+#: libparted/disk.c:1656
+#, fuzzy, c-format
+msgid ""
+"Can't add a logical partition to %s, because there is no extended partition."
+msgstr "Kongeramo a Bijyanye n'inyurabwenge Kuri ni Oya Byongerewe..."
+
+#: libparted/disk.c:1680
+#, fuzzy, c-format
+msgid "Can't have more than one extended partition on %s."
+msgstr "Birenzeho Byongerewe... ku"
+
+#: libparted/disk.c:1690
+#, fuzzy
+msgid "Can't have logical partitions outside of the extended partition."
+msgstr "Bijyanye n'inyurabwenge Hanze Bya i Byongerewe..."
+
+#: libparted/disk.c:1715
+#, fuzzy, c-format
+msgid "Can't have a logical partition outside of the extended partition on %s."
+msgstr "a Bijyanye n'inyurabwenge Hanze Bya i Byongerewe... ku"
+
+#: libparted/disk.c:1725 libparted/disk.c:1779 libparted/disk.c:1945
+#, fuzzy
+msgid "Can't have overlapping partitions."
+msgstr "iyorosa"
+
+#: libparted/disk.c:1733
+#, fuzzy
+msgid "Can't have a primary partition inside an extended partition."
+msgstr "a Mo Imbere Byongerewe..."
+
+#: libparted/disk.c:2140
+msgid "metadata"
+msgstr ""
+
+# svx/source\dialog\labdlg.src:RID_SVXPAGE_CAPTION.LB_WINKEL.1.text
+#: libparted/disk.c:2142
+#, fuzzy
+msgid "free"
+msgstr "Kigenga"
+
+# 2175
+#: libparted/disk.c:2144 parted/ui.c:1169 parted/ui.c:1197
+#, fuzzy
+msgid "extended"
+msgstr "cya/ byagutse"
+
+# #-#-#-#-#  sc.pot (PACKAGE VERSION)  #-#-#-#-#
+# sc/source\ui\formdlg\dwfunctr.src:FID_FUNCTION_BOX.CB_CAT.7.text
+# #-#-#-#-#  sc.pot (PACKAGE VERSION)  #-#-#-#-#
+# sc/source\ui\formdlg\formdlgs.src:RID_SCTAB_FUNCTION.LB_CATEGORY.7.text
+#: libparted/disk.c:2146 parted/ui.c:1173 parted/ui.c:1201
+#, fuzzy
+msgid "logical"
+msgstr "Bijyanye n'inyurabwenge"
+
+#: libparted/disk.c:2148 parted/ui.c:1165 parted/ui.c:1193
+msgid "primary"
+msgstr ""
+
+#: libparted/disk.c:2164
+msgid "boot"
+msgstr ""
+
+# 5214
+#: libparted/disk.c:2166
+#, fuzzy
+msgid "root"
+msgstr "Imizi"
+
+#: libparted/disk.c:2168
+msgid "swap"
+msgstr ""
+
+# sc/source\ui\navipi\navipi.src:RID_SCDLG_NAVIGATOR.STR_HIDDEN.text
+#: libparted/disk.c:2170
+msgid "hidden"
+msgstr "gihishwe"
+
+#: libparted/disk.c:2172
+msgid "raid"
+msgstr ""
+
+#: libparted/disk.c:2174
+msgid "lvm"
+msgstr ""
+
+#: libparted/disk.c:2176
+msgid "lba"
+msgstr ""
+
+#: libparted/disk.c:2178
+#, fuzzy
+msgid "hp-service"
+msgstr "Serivisi"
+
+#: libparted/disk.c:2180
+msgid "palo"
+msgstr ""
+
+#: libparted/disk.c:2182
+msgid "prep"
+msgstr ""
+
+#: libparted/disk.c:2184
+msgid "msftres"
+msgstr ""
+
+#: libparted/disk.c:2190
+#, fuzzy, c-format
+msgid "Unknown partition flag, %d."
+msgstr "Ibendera Ibendera"
+
+#: libparted/exception.c:78
+msgid "Information"
+msgstr "Ibisobanuro"
+
+#: libparted/exception.c:79
+msgid "Warning"
+msgstr "Iburira"
+
+#: libparted/exception.c:80
+msgid "Error"
+msgstr "Ikosa"
+
+#: libparted/exception.c:81
+msgid "Fatal"
+msgstr ""
+
+#: libparted/exception.c:82
+msgid "Bug"
+msgstr ""
+
+#: libparted/exception.c:83
+msgid "No Implementation"
+msgstr ""
+
+#: libparted/exception.c:87
+msgid "Fix"
+msgstr ""
+
+#: libparted/exception.c:88
+msgid "Yes"
+msgstr "Yego"
+
+#: libparted/exception.c:89
+msgid "No"
+msgstr "Oya"
+
+#: libparted/exception.c:90
+msgid "OK"
+msgstr "OKE"
+
+#: libparted/exception.c:91
+msgid "Retry"
+msgstr "Ongera ugerageze"
+
+#: libparted/exception.c:92
+msgid "Ignore"
+msgstr "Kureka"
+
+#: libparted/exception.c:93
+msgid "Cancel"
+msgstr "Kureka"
+
+#: libparted/exception.c:133
+#, fuzzy, c-format
+msgid ""
+"A bug has been detected in GNU Parted.  Refer to the web site of parted "
+"http://www.gnu.org/software/parted/parted.html for more informations of what "
+"could be useful for bug submitting!  Please email a bug report to bug-"
+"parted@gnu.org containing at least the version (%s) and the following "
+"message:  "
+msgstr "A in imeli a Icyegeranyo Kuri org i Verisiyo Na i Ubutumwa"
+
+#: libparted/filesys.c:384
+#, fuzzy
+msgid "Could not detect file system."
+msgstr "OYA IDOSIYE Sisitemu"
+
+#: libparted/filesys.c:395
+#, fuzzy
+msgid "The file system is bigger than its volume!"
+msgstr "IDOSIYE Sisitemu ni Igice"
+
+#: libparted/filesys.c:403
+#, fuzzy, c-format
+msgid "Support for opening %s file systems is not implemented yet."
+msgstr "kugirango Gufungura %s%S IDOSIYE ni OYA"
+
+#: libparted/filesys.c:445
+#, fuzzy, c-format
+msgid "Support for creating %s file systems is not implemented yet."
+msgstr "kugirango IDOSIYE ni OYA"
+
+#: libparted/filesys.c:505
+#, fuzzy, c-format
+msgid "Support for checking %s file systems is not implemented yet."
+msgstr "kugirango IDOSIYE ni OYA"
+
+#: libparted/filesys.c:571
+#, fuzzy
+msgid "raw block copying"
+msgstr "Funga"
+
+#: libparted/filesys.c:582
+#, fuzzy
+msgid "growing file system"
+msgstr "IDOSIYE Sisitemu"
+
+#: libparted/filesys.c:622
+#, fuzzy
+msgid "Can't copy onto an overlapping partition."
+msgstr "Gukoporora iyorosa"
+
+#: libparted/filesys.c:644
+#, fuzzy, c-format
+msgid ""
+"Direct support for copying file systems is not yet implemented for %s.  "
+"However, support for resizing is implemented.  Therefore, the file system "
+"can be copied if the new partition is at least as big as the old one.  So, "
+"either shrink the partition you are trying to copy, or copy to a bigger "
+"partition."
+msgstr ""
+"Gushigikira kugirango IDOSIYE ni OYA kugirango Gushigikira kugirango i "
+"IDOSIYE Sisitemu NIBA i Gishya ni ku Nka Nka i ki/ bishaje Kugabanuka i Kuri "
+"Gukoporora Cyangwa Gukoporora Kuri a"
+
+#: libparted/filesys.c:658
+#, fuzzy, c-format
+msgid "Support for copying %s file systems is not implemented yet."
+msgstr "kugirango IDOSIYE ni OYA"
+
+#: libparted/filesys.c:696
+#, fuzzy, c-format
+msgid "Support for resizing %s file systems is not implemented yet."
+msgstr "kugirango IDOSIYE ni OYA"
+
+#: libparted/fs/reiserfs/reiserfs.c:315
+msgid "creating"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:402
+#, fuzzy
+msgid "The file system is in an invalid state.  Perhaps it is mounted?"
+msgstr "IDOSIYE Sisitemu ni Igice"
+
+#: libparted/fs/reiserfs/reiserfs.c:410
+msgid "The file system is in old (unresizeable) format."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:416
+msgid "Invalid free blocks count.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:431
+#, fuzzy
+msgid "checking"
+msgstr "genzura"
+
+#: libparted/fs/reiserfs/reiserfs.c:437
+msgid "Reiserfs tree seems to be corrupted.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:449
+#, fuzzy
+msgid ""
+"The reiserfs file system passed a basic check.  For a more comprehensive "
+"check, run reiserfsck --check."
+msgstr "a BASIC Kugenzura... a Birenzeho Kugenzura... Gukoresha i Porogaramu"
+
+#: libparted/fs/reiserfs/reiserfs.c:474
+#, fuzzy
+msgid "Sorry, can't move the start of reiserfs partitions yet."
+msgstr "Kwimura i Gutangira Bya"
+
+#: libparted/fs/reiserfs/reiserfs.c:490
+msgid "Couldn't reopen device abstraction layer for read/write."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:508 libparted/fs/ext2/ext2_resize.c:552
+#: libparted/fs/hfs/hfs.c:250 libparted/fs/hfs/hfs.c:629
+msgid "shrinking"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:520
+#, fuzzy
+msgid "expanding"
+msgstr "Iburira"
+
+#: libparted/fs/reiserfs/reiserfs.c:592
+msgid "Couldn't create reiserfs device abstraction handler."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:606
+#, fuzzy, c-format
+msgid "Device is too small for %lu blocks."
+msgstr "Idosiye Sisitemu Gitoya kugirango"
+
+#: libparted/fs/reiserfs/reiserfs.c:615
+msgid "copying"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:682
+#, c-format
+msgid "Couldn't resolve symbol %s.  Error: %s."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:704
+msgid "GNU Parted found an invalid libreiserfs library."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:715
+#, c-format
+msgid ""
+"GNU Parted has detected libreiserfs interface version mismatch.  Found %d-%"
+"d, required %d. ReiserFS support will be disabled."
+msgstr ""
+
+#: libparted/labels/aix.c:137
+#, fuzzy
+msgid "Support for reading AIX disk labels is is not implemented yet."
+msgstr "kugirango IDOSIYE ni OYA"
+
+#: libparted/labels/aix.c:148
+#, fuzzy
+msgid "Support for writing AIX disk labels is is not implemented yet."
+msgstr "kugirango IDOSIYE ni OYA"
+
+#: libparted/labels/aix.c:161
+#, fuzzy
+msgid ""
+"Support for adding partitions to AIX disk labels is not implemented yet."
+msgstr "kugirango IDOSIYE ni OYA"
+
+#: libparted/labels/aix.c:171
+#, fuzzy
+msgid ""
+"Support for duplicating partitions in AIX disk labels is not implemented yet."
+msgstr "kugirango IDOSIYE ni OYA"
+
+#: libparted/labels/aix.c:189
+#, fuzzy
+msgid ""
+"Support for setting system type of partitions in AIX disk labels is not "
+"implemented yet."
+msgstr "kugirango IDOSIYE ni OYA"
+
+#: libparted/labels/aix.c:199
+#, fuzzy
+msgid "Support for setting flags in AIX disk labels is not implemented yet."
+msgstr "kugirango IDOSIYE ni OYA"
+
+#: libparted/labels/bsd.c:501 libparted/labels/dasd.c:755
+#: libparted/labels/dos.c:1974 libparted/labels/dvh.c:770
+#: libparted/labels/gpt.c:1448 libparted/labels/loop.c:248
+#: libparted/labels/mac.c:1408 libparted/labels/pc98.c:759
+#: libparted/labels/rdb.c:1041 libparted/labels/sun.c:705
+#, fuzzy
+msgid "Unable to satisfy all constraints on the partition."
+msgstr "Kuri Byose ku i"
+
+#: libparted/labels/bsd.c:526
+#, fuzzy
+msgid "Unable to allocate a bsd disklabel slot."
+msgstr "Kuri a"
+
+#: libparted/labels/dasd.c:166
+#, fuzzy
+msgid "Unable to determine the block size of this dasd"
+msgstr "Kuri i Ingano Bya"
+
+#: libparted/labels/dasd.c:781
+#, fuzzy
+msgid "Unable to allocate a dasd disklabel slot"
+msgstr "Kuri a"
+
+#: libparted/labels/dos.c:827
+#, fuzzy, c-format
+msgid "Invalid partition table on %s -- wrong signature %x."
+msgstr "imbonerahamwe# ku Isinya"
+
+#: libparted/labels/dos.c:855
+#, fuzzy, c-format
+msgid "Invalid partition table - recursive partition on %s."
+msgstr "imbonerahamwe# ku"
+
+#: libparted/labels/dos.c:1318
+msgid "Extended partitions cannot be hidden on msdos disk labels."
+msgstr ""
+
+#: libparted/labels/dos.c:1958
+msgid "Parted can't resize partitions managed by Windows Dynamic Disk."
+msgstr ""
+
+#: libparted/labels/dvh.c:190
+#, fuzzy, c-format
+msgid "%s has no extended partition (volume header partition)."
+msgstr "%sOya Byongerewe... Igice Umutwempangano Kwirengagiza Hanyuma Cyasibwe"
+
+#: libparted/labels/dvh.c:313
+#, fuzzy
+msgid "Checksum is wrong, indicating the partition table is corrupt."
+msgstr "ni i imbonerahamwe# ni"
+
+#: libparted/labels/dvh.c:616
+#, fuzzy
+msgid "Only primary partitions can be root partitions."
+msgstr "Imizi"
+
+#: libparted/labels/dvh.c:630
+msgid "Only primary partitions can be swap partitions."
+msgstr ""
+
+#: libparted/labels/dvh.c:644
+#, fuzzy
+msgid "Only logical partitions can be a boot file."
+msgstr "Bijyanye n'inyurabwenge a IDOSIYE"
+
+#: libparted/labels/dvh.c:721
+#, fuzzy
+msgid "Only logical partitions (boot files) have a name."
+msgstr "Bijyanye n'inyurabwenge Idosiye a Izina:"
+
+#: libparted/labels/dvh.c:812
+msgid "Too many primary partitions"
+msgstr ""
+
+#: libparted/labels/fdasd.c:103
+#, c-format
+msgid ""
+"%s open error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:107
+#, c-format
+msgid ""
+"%s seek error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:110
+#, c-format
+msgid ""
+"%s read error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:113
+#, fuzzy, c-format
+msgid ""
+"%s write error\n"
+"%s\n"
+msgstr "%sKwandika ku"
+
+#: libparted/labels/fdasd.c:116
+#, c-format
+msgid ""
+"%s IOCTL error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:119
+#, c-format
+msgid ""
+"%s API version mismatch\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:122
+#, c-format
+msgid ""
+"%s Unsupported disk type\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:126
+#, c-format
+msgid ""
+"%s Unsupported disk format\n"
+"%s\n"
+msgstr ""
+
+# desktop/source\app\ssodlg.src:DLG_SSOLOGIN.text
+#: libparted/labels/fdasd.c:130
+#, fuzzy, c-format
+msgid ""
+"%s Disk in use\n"
+"%s\n"
+msgstr "%s%s%s"
+
+#: libparted/labels/fdasd.c:133
+#, c-format
+msgid ""
+"%s Config file syntax error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:137
+#, c-format
+msgid ""
+"%s Volume label is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:141
+#, c-format
+msgid ""
+"%s a data set name is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:145
+#, c-format
+msgid ""
+"%s space allocation\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:149
+#, c-format
+msgid ""
+"%s device verification failed\n"
+"The specified device is not a valid DASD device\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:154
+#, c-format
+msgid ""
+"%s Fatal error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/gpt.c:454
+#, fuzzy, c-format
+msgid ""
+"%s contains GPT signatures, indicating that it has a GPT table.  However, it "
+"does not have a valid fake msdos partition table, as it should.  Perhaps it "
+"was corrupted -- possibly by a program that doesn't understand GPT partition "
+"tables.  Or perhaps you deleted the GPT table, and are now using an msdos "
+"partition table.  Is this a GPT partition table?"
+msgstr ""
+"%sKirimo a imbonerahamwe# OYA a Byemewe imbonerahamwe# Nka ku a Porogaramu "
+"Imbonerahamwe Cyasibwe i imbonerahamwe# Na NONEAHA ikoresha imbonerahamwe# "
+"iyi a imbonerahamwe#"
+
+#: libparted/labels/gpt.c:648
+#, fuzzy, c-format
+msgid ""
+"The format of the GPT partition table is version %x, which is newer than "
+"what Parted can recognise.  Please tell us!  bug-parted@gnu.org"
+msgstr "Imiterere Bya i imbonerahamwe# ni Verisiyo ni RW org"
+
+#: libparted/labels/gpt.c:698
+#, c-format
+msgid ""
+"Not all of the space available to %s appears to be used, you can fix the GPT "
+"to use all of the space (an extra %llu blocks) or continue with the current "
+"setting? "
+msgstr ""
+
+#: libparted/labels/gpt.c:827
+#, fuzzy
+msgid ""
+"The backup GPT table is not at the end of the disk, as it should be.  This "
+"might mean that another operating system believes the disk is smaller.  Fix, "
+"by moving the backup to the end (and removing the old backup)?"
+msgstr ""
+"Inyibutsa imbonerahamwe# ni OYA ku i Impera Bya i Nka Impuzandengo- Sisitemu "
+"i ni Gitoya ku i Inyibutsa Kuri i Impera Na i ki/ bishaje Inyibutsa"
+
+#: libparted/labels/gpt.c:862
+#, fuzzy
+msgid ""
+"The primary GPT table is corrupt, but the backup appears OK, so that will be "
+"used."
+msgstr "imbonerahamwe# ni i Inyibutsa YEGO"
+
+#: libparted/labels/gpt.c:870
+#, fuzzy
+msgid ""
+"Both the primary and backup GPT tables are corrupt.  Try making a fresh "
+"table, and using Parted's rescue feature to recover partitions."
+msgstr "i Na Inyibutsa Imbonerahamwe a imbonerahamwe# Na ikoresha Kuri"
+
+#: libparted/labels/mac.c:181
+#, fuzzy, c-format
+msgid "Invalid signature %x for Mac disk labels."
+msgstr "Isinya kugirango Uturango..."
+
+#: libparted/labels/mac.c:226
+#, fuzzy
+msgid "Partition map has no partition map entry!"
+msgstr "Oya Icyinjijwe"
+
+#: libparted/labels/mac.c:273
+#, fuzzy, c-format
+msgid "%s is too small for a Mac disk label!"
+msgstr "%sni Gitoya kugirango a Akarango"
+
+#: libparted/labels/mac.c:532
+#, fuzzy, c-format
+msgid "Partition %d has an invalid signature %x."
+msgstr "Sibyo Isinya"
+
+#: libparted/labels/mac.c:550
+#, fuzzy, c-format
+msgid "Partition %d has an invalid length of 0 bytes!"
+msgstr "Sibyo Uburebure Bya 0 Bayite"
+
+#: libparted/labels/mac.c:580
+#, fuzzy
+msgid "The data region doesn't start at the start of the partition."
+msgstr "Ibyatanzwe Gutangira ku i Gutangira Bya i"
+
+#: libparted/labels/mac.c:597
+#, fuzzy
+msgid "The boot region doesn't start at the start of the partition."
+msgstr "Gutangira ku i Gutangira Bya i"
+
+#: libparted/labels/mac.c:611
+#, fuzzy
+msgid "The partition's boot region doesn't occupy the entire partition."
+msgstr "i"
+
+#: libparted/labels/mac.c:622
+#, fuzzy
+msgid "The partition's data region doesn't occupy the entire partition."
+msgstr "Ibyatanzwe i"
+
+#: libparted/labels/mac.c:675
+#, fuzzy, c-format
+msgid ""
+"Weird block size on device descriptor: %d bytes is not divisible by 512."
+msgstr "Funga Ingano ku APAREYE Bayite ni OYA ku"
+
+#: libparted/labels/mac.c:688
+#, fuzzy, c-format
+msgid ""
+"The driver descriptor says the physical block size is %d bytes, but Linux "
+"says it is %d bytes."
+msgstr "Musomyi: i Ifatika Funga Ingano ni Bayite ni Bayite"
+
+#: libparted/labels/mac.c:736
+#, fuzzy
+msgid "No valid partition map found."
+msgstr "Byemewe Byabonetse"
+
+#: libparted/labels/mac.c:795
+#, fuzzy, c-format
+msgid ""
+"Conflicting partition map entry sizes!  Entry 1 says it is %d, but entry %d "
+"says it is %d!"
+msgstr "Icyinjijwe 1. Icyinjijwe"
+
+#: libparted/labels/mac.c:822
+#, fuzzy
+msgid "Weird!  There are 2 partitions map entries!"
+msgstr "2. Ibyinjijwe"
+
+#: libparted/labels/mac.c:1347
+#, fuzzy
+msgid ""
+"Changing the name of a root or swap partition will prevent Linux from "
+"recognising it as such."
+msgstr "i Izina: Bya a Imizi Cyangwa Bivuye Nka"
+
+#: libparted/labels/mac.c:1443
+#, fuzzy
+msgid "Can't add another partition -- the partition map is too small!"
+msgstr "Kongeramo ni Gitoya"
+
+#: libparted/labels/pc98.c:354
+#, fuzzy, c-format
+msgid "Invalid partition table on %s."
+msgstr "imbonerahamwe# ku"
+
+#: libparted/labels/pc98.c:406 libparted/labels/pc98.c:484
+#, fuzzy, c-format
+msgid ""
+"Partition %d isn't aligned to cylinder boundaries.  This is still "
+"unsupported."
+msgstr "si Kuri Umwiburungushure Kuri Kongeramo Gushigikira kugirango iyi"
+
+#: libparted/labels/pc98.c:791
+#, fuzzy
+msgid "Can't add another partition."
+msgstr "Kongeramo"
+
+#: libparted/labels/rdb.c:162
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:497
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen."
+msgstr ""
+
+#: libparted/labels/rdb.c:581
+#, c-format
+msgid "%s : Loop detected at block %d."
+msgstr ""
+
+#: libparted/labels/rdb.c:600
+#, c-format
+msgid "%s : The %s list seems bad at block %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:689
+#, c-format
+msgid "%s : Failed to list bad blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:697
+#, c-format
+msgid "%s : Failed to list partition blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:705
+#, c-format
+msgid "%s : Failed to list file system blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:713
+#, c-format
+msgid "%s : Failed to list boot blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:740
+#, c-format
+msgid "Failed to write partition block at %d."
+msgstr ""
+
+#: libparted/labels/rdb.c:1069
+#, fuzzy
+msgid "Unable to allocate a partition number."
+msgstr "a Umubare"
+
+#: libparted/labels/sun.c:145
+#, fuzzy
+msgid "Corrupted Sun disk label detected."
+msgstr "Akarango"
+
+#: libparted/labels/sun.c:266
+#, fuzzy, c-format
+msgid ""
+"The disk CHS geometry (%d,%d,%d) reported by the operating system does not "
+"match the geometry stored on the disk label (%d,%d,%d)."
+msgstr "Iyigamashusho OYA BIHUYE i Iyigamashusho ku i Akarango"
+
+#: libparted/labels/sun.c:288
+#, fuzzy, c-format
+msgid "The disk label describes a disk bigger than %s."
+msgstr "Akarango a"
+
+#: libparted/labels/sun.c:442
+#, c-format
+msgid "The disk has %d cylinders, which is greater than the maximum of 65536."
+msgstr ""
+
+#: libparted/labels/sun.c:737
+#, fuzzy
+msgid ""
+"The Whole Disk partition is the only available one left.  Generally, it is "
+"not a good idea to overwrite this partition with a real one.  Solaris may "
+"not be able to boot without it, and SILO (the sparc boot loader) appreciates "
+"it as well."
+msgstr ""
+"ni i Bihari Ibumoso: ni OYA a Kuri Guhindura iyi Na: a Gicurasi OYA Kuri Na "
+"i Nka"
+
+#: libparted/labels/sun.c:752
+#, fuzzy
+msgid "Sun disk label is full."
+msgstr "Akarango ni"
+
+#: libparted/labels/vtoc.c:163
+#, c-format
+msgid ""
+"%s opening device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:167
+#, c-format
+msgid ""
+"%s seeking device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:171
+#, c-format
+msgid ""
+"%s writing to device '%s' failed,\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:175
+#, c-format
+msgid ""
+"%s reading from device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:179
+#, c-format
+msgid "Fatal error\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:418
+msgid "Could not read VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:424
+msgid "Could not read VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:431
+msgid "Could not read VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:438
+msgid "Could not read VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:445
+msgid "Could not read VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:462
+msgid "Could not write VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:468
+msgid "Could not write VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:475
+msgid "Could not write VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:482
+msgid "Could not write VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:489
+msgid "Could not write VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/libparted.c:296 libparted/libparted.c:316
+#, fuzzy
+msgid "Out of memory."
+msgstr "Ububiko bwarenzwe"
+
+#: libparted/unit.c:139
+msgid "Cannot get unit size for special unit 'COMPACT'."
+msgstr ""
+
+#: libparted/unit.c:386
+#, c-format
+msgid "\"%s\" has invalid syntax for locations."
+msgstr ""
+
+#: libparted/unit.c:394
+#, c-format
+msgid "The maximum head value is %d."
+msgstr ""
+
+#: libparted/unit.c:401
+#, c-format
+msgid "The maximum sector value is %d."
+msgstr ""
+
+#: libparted/unit.c:413 libparted/unit.c:545
+#, c-format
+msgid "The location %s is outside of the device %s."
+msgstr ""
+
+#: libparted/unit.c:527
+msgid "Invalid number."
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:63 libparted/fs/amiga/apfs.c:56
+#: libparted/fs/amiga/asfs.c:70
+#, fuzzy, c-format
+msgid "%s : Failed to allocate partition block\n"
+msgstr "a Umubare"
+
+#: libparted/fs/amiga/affs.c:78 libparted/fs/amiga/apfs.c:70
+#: libparted/fs/amiga/asfs.c:86
+#, c-format
+msgid "%s : Failed to allocate block\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:83 libparted/fs/amiga/apfs.c:75
+#, c-format
+msgid "%s : Couldn't read boot block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:99 libparted/fs/amiga/apfs.c:86
+#: libparted/fs/amiga/asfs.c:92 libparted/fs/amiga/asfs.c:106
+#, c-format
+msgid "%s : Couldn't read root block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:72
+#, c-format
+msgid "%s : Failed to allocate id list element\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:189
+#, c-format
+msgid "%s : Couldn't read block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:202
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:212
+#, fuzzy, c-format
+msgid "%s : Couldn't write block %d\n"
+msgstr "%sKwandika ku"
+
+#: libparted/fs/amiga/amiga.c:278
+#, c-format
+msgid "%s : Failed to allocate disk_specific rdb block\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:289
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:318
+#, c-format
+msgid "%s : Failed to read partition block %llu\n"
+msgstr ""
+
+#: libparted/fs/ext2/ext2.c:87 libparted/fs/ext2/ext2.c:112
+#, fuzzy
+msgid "Inconsistent group descriptors!"
+msgstr "Itsinda"
+
+# officecfg/registry\schema\org\openoffice\Office\Common.xcs:....Save.URL.FileSystem.text
+#: libparted/fs/ext2/ext2.c:91 libparted/fs/ext2/ext2.c:116
+#, fuzzy
+msgid "File system full!"
+msgstr "Idosiye ya sisitemu"
+
+#: libparted/fs/ext2/ext2.c:686
+#, fuzzy
+msgid "Invalid superblock.  Are you sure this is an ext2 file system?"
+msgstr "iyi ni"
+
+#: libparted/fs/ext2/ext2.c:700 libparted/fs/ext2/ext2_resize.c:658
+#, fuzzy
+msgid "File system has errors!  You should run e2fsck."
+msgstr "Amakosa Gukoresha"
+
+#: libparted/fs/ext2/ext2.c:711
+#, fuzzy
+msgid ""
+"File system was not cleanly unmounted!  You should run e2fsck.  Modifying an "
+"unclean file system could cause severe corruption."
+msgstr "OYA"
+
+#: libparted/fs/ext2/ext2.c:731
+#, fuzzy
+msgid "File system has an incompatible feature enabled."
+msgstr "Bikora"
+
+#: libparted/fs/ext2/ext2.c:742
+#, fuzzy
+msgid "Error allocating buffer cache."
+msgstr "Ubwihisho"
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:114
+#, fuzzy
+msgid ""
+"Found an inode with a incorrect link count.  Better go run e2fsck first!"
+msgstr "Na: a Ihuza IBARA Gyayo Gukoresha Itangira"
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:487
+#, fuzzy
+msgid "Not enough free inodes!"
+msgstr "Kigenga"
+
+#: libparted/fs/ext2/ext2_resize.c:223
+#, fuzzy
+msgid "File system is too full to remove a group!"
+msgstr "ni Kuri Gukuraho... a Itsinda"
+
+#: libparted/fs/ext2/ext2_resize.c:232
+#, fuzzy
+msgid "File system has too many allocated inodes to remove a group!"
+msgstr "Kuri Gukuraho... a Itsinda"
+
+#: libparted/fs/ext2/ext2_resize.c:491
+#, fuzzy
+msgid "adding groups"
+msgstr "Wongera Amatsinda"
+
+#: libparted/fs/ext2/ext2_resize.c:528
+#, fuzzy, c-format
+msgid "Your file system is too full to resize it to %i blocks.  Sorry."
+msgstr "ni Kuri Ihindurangero Kuri"
+
+#: libparted/fs/ext2/ext2_resize.c:538
+#, fuzzy, c-format
+msgid ""
+"Your file system has too many occupied inodes to resize it to %i blocks.  "
+"Sorry."
+msgstr "Kuri Ihindurangero Kuri"
+
+#: libparted/fs/ext2/ext2_resize.c:666
+#, fuzzy
+msgid "File system was not cleanly unmounted!  You should run e2fsck."
+msgstr "OYA"
+
+#: libparted/fs/ext2/ext2_resize.c:675
+#, fuzzy
+msgid ""
+"The file system has the 'dir_index' feature enabled.  Parted can only resize "
+"the file system if it disables this feature.  You can enable it later by "
+"running 'tune2fs -O dir_index DEVICE' and then 'e2fsck -fD DEVICE'."
+msgstr ""
+"IDOSIYE Sisitemu i Bikora Ihindurangero i IDOSIYE Sisitemu NIBA iyi "
+"Gushoboza ku Na Hanyuma"
+
+#: libparted/fs/ext2/ext2_resize.c:691
+msgid ""
+"A resize operation on this file system will use EXPERIMENTAL code\n"
+"that MAY CORRUPT it (although no one has reported any such damage yet).\n"
+"You should at least backup your data first, and run 'e2fsck -f' afterwards."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_block_relocator.c:198
+#, fuzzy
+msgid "Cross-linked blocks found!  Better go run e2fsck first!"
+msgstr "Byabonetse Gyayo Gukoresha Itangira"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:537
+#, fuzzy, c-format
+msgid "Block %i has no reference?  Weird."
+msgstr "Oya Indango"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:737
+#, fuzzy, c-format
+msgid "Block %i shouldn't have been marked (%d, %d)!"
+msgstr "cy/ byagarajwe"
+
+#: libparted/fs/ext2/interface.c:186
+#, fuzzy
+msgid ""
+"The ext2 file system passed a basic check.  For a more comprehensive check, "
+"use the e2fsck program."
+msgstr "a BASIC Kugenzura... a Birenzeho Kugenzura... Gukoresha i Porogaramu"
+
+#: libparted/fs/ext2/interface.c:203
+#, fuzzy
+msgid "Sorry, can't move the start of ext2 partitions yet!"
+msgstr "Kwimura i Gutangira Bya"
+
+#: libparted/fs/ext2/ext2_buffer.c:82
+#, fuzzy
+msgid "Couldn't flush buffer cache!"
+msgstr "Ubwihisho"
+
+#: libparted/fs/ext2/ext2_mkfs.c:162
+#, fuzzy
+msgid "writing per-group metadata"
+msgstr "Itsinda"
+
+#: libparted/fs/ext2/ext2_mkfs.c:564
+#, fuzzy
+msgid "File system too small for ext2."
+msgstr "Idosiye Sisitemu Gitoya kugirango"
+
+#: libparted/fs/fat/calc.c:135
+#, fuzzy, c-format
+msgid ""
+"You need %s of free disk space to shrink this partition to this size.  "
+"Currently, only %s is free."
+msgstr "Bya Kigenga Umwanya Kuri Kugabanuka iyi Kuri iyi Ingano Kigenga"
+
+#: libparted/fs/fat/context.c:56
+#, fuzzy, c-format
+msgid ""
+"Cluster start delta = %d, which is not a multiple of the cluster size %d."
+msgstr "Gutangira DELTA ni OYA a Igikubo Bya i Ingano"
+
+#: libparted/fs/fat/fat.c:308
+#, fuzzy, c-format
+msgid "Partition too big/small for a %s file system."
+msgstr "Gitoya kugirango a IDOSIYE Sisitemu"
+
+#: libparted/fs/fat/fat.c:474
+#, fuzzy
+msgid ""
+"The FATs don't match.  If you don't know what this means, then select "
+"cancel, run scandisk on the file system, and then come back."
+msgstr ""
+"BIHUYE iyi Hanyuma Guhitamo Kureka Gukoresha ku i IDOSIYE Sisitemu Na "
+"Hanyuma Inyuma"
+
+#: libparted/fs/fat/fat.c:514
+#, fuzzy
+msgid "There are no possible configurations for this FAT type."
+msgstr "Oya Amaboneza kugirango iyi Ubwoko"
+
+#: libparted/fs/fat/fat.c:526
+#, fuzzy, c-format
+msgid ""
+"File system doesn't have expected sizes for Windows to like it.  Cluster "
+"size is %dk (%dk expected); number of clusters is %d (%d expected); size of "
+"FATs is %d sectors (%d expected)."
+msgstr ""
+"Idosiye Sisitemu Ikitezwe: kugirango Kuri nka Ingano ni Ikitezwe: Umubare "
+"Bya ni Ikitezwe: Ingano Bya ni Ikitezwe:"
+
+#: libparted/fs/fat/fat.c:549
+#, fuzzy, c-format
+msgid ""
+"File system is reporting the free space as %d clusters, not %d clusters."
+msgstr "Idosiye Sisitemu ni i Kigenga Umwanya Nka OYA"
+
+#: libparted/fs/fat/fat.c:874
+#, fuzzy
+msgid ""
+"GNU Parted was miscompiled: the FAT boot sector should be 512 bytes.  FAT "
+"support will be disabled."
+msgstr "i Bayite Gushigikira Yahagaritswe"
+
+#: libparted/fs/fat/resize.c:159
+#, fuzzy
+msgid ""
+"There's not enough room in the root directory for all of the files.  Either "
+"cancel, or ignore to lose the files."
+msgstr ""
+"OYA in i Imizi bushyinguro kugirango Byose Bya i Idosiye Kureka Cyangwa "
+"Kwirengagiza Kuri i Idosiye"
+
+#: libparted/fs/fat/resize.c:300
+#, fuzzy
+msgid "Error writing to the root directory."
+msgstr "Kuri i Imizi bushyinguro"
+
+#: libparted/fs/fat/resize.c:489
+#, fuzzy
+msgid "If you leave your file system as FAT16, then you will have no problems."
+msgstr "IDOSIYE Sisitemu Nka Hanyuma Oya"
+
+#: libparted/fs/fat/resize.c:492
+#, fuzzy
+msgid ""
+"If you convert to FAT16, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual)."
+msgstr ""
+"GUHINDURA Kuri Na ni ku iyi Hanyuma Kwinjiza porogaramu i Kuri iyi i Bikorwa "
+"Cyangwa Bikorwa"
+
+#: libparted/fs/fat/resize.c:500
+#, fuzzy
+msgid ""
+"If you leave your file system as FAT32, then you will not introduce any new "
+"problems."
+msgstr "IDOSIYE Sisitemu Nka Hanyuma OYA Gishya"
+
+#: libparted/fs/fat/resize.c:504
+#, fuzzy
+msgid ""
+"If you convert to FAT32, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual).  Also, "
+"converting to FAT32 will make the file system unreadable by MS DOS, MS "
+"Windows 95a, and MS Windows NT."
+msgstr ""
+"GUHINDURA Kuri Na ni ku iyi Hanyuma Kwinjiza porogaramu i Kuri iyi i Bikorwa "
+"Cyangwa Bikorwa Guhindura.... Kuri Ubwoko i IDOSIYE Sisitemu ku Na"
+
+# desktop/source\app\ssodlg.src:DLG_SSOLOGIN.text
+#: libparted/fs/fat/resize.c:518
+#, fuzzy, c-format
+msgid "%s  %s  %s"
+msgstr "%s%s%s"
+
+#: libparted/fs/fat/resize.c:519
+#, fuzzy
+msgid "Would you like to use FAT32?"
+msgstr "nka Kuri Gukoresha"
+
+# #-#-#-#-#  dbaccess.pot (PACKAGE VERSION)  #-#-#-#-#
+# #-#-#-#-#  dbaccess.pot (PACKAGE VERSION)  #-#-#-#-#
+# #-#-#-#-#  dbaccess.pot (PACKAGE VERSION)  #-#-#-#-#
+#: libparted/fs/fat/resize.c:550 libparted/fs/fat/resize.c:566
+#, fuzzy, c-format
+msgid "%s  %s"
+msgstr "%s%s"
+
+#: libparted/fs/fat/resize.c:551
+#, fuzzy
+msgid ""
+"The file system can only be resized to this size by converting to FAT16."
+msgstr "IDOSIYE Sisitemu Kuri iyi Ingano ku Guhindura.... Kuri"
+
+#: libparted/fs/fat/resize.c:567
+#, fuzzy
+msgid ""
+"The file system can only be resized to this size by converting to FAT32."
+msgstr "IDOSIYE Sisitemu Kuri iyi Ingano ku Guhindura.... Kuri"
+
+#: libparted/fs/fat/resize.c:580
+#, fuzzy
+msgid ""
+"GNU Parted cannot resize this partition to this size.  We're working on it!"
+msgstr "OYA Ihindurangero iyi Kuri iyi Ingano ku"
+
+#: libparted/fs/fat/bootsector.c:49 libparted/fs/fat/bootsector.c:56
+#, fuzzy
+msgid "File system has an invalid signature for a FAT file system."
+msgstr "Idosiye Sisitemu Sibyo Isinya kugirango a IDOSIYE Sisitemu"
+
+#: libparted/fs/fat/bootsector.c:64
+#, fuzzy
+msgid "File system has an invalid sector size for a FAT file system."
+msgstr "Idosiye Sisitemu Sibyo Ingano kugirango a IDOSIYE Sisitemu"
+
+#: libparted/fs/fat/bootsector.c:71
+#, fuzzy
+msgid "File system has an invalid cluster size for a FAT file system."
+msgstr "Idosiye Sisitemu Sibyo Ingano kugirango a IDOSIYE Sisitemu"
+
+#: libparted/fs/fat/bootsector.c:78
+#, fuzzy
+msgid ""
+"File system has an invalid number of reserved sectors for a FAT file system."
+msgstr "Idosiye Sisitemu Sibyo Umubare Bya kugirango a"
+
+#: libparted/fs/fat/bootsector.c:85
+#, fuzzy
+msgid "File system has an invalid number of FATs."
+msgstr "Idosiye Sisitemu Sibyo Umubare Bya"
+
+#: libparted/fs/fat/bootsector.c:139
+#, fuzzy, c-format
+msgid ""
+"This file system has a logical sector size of %d.  GNU Parted is known not "
+"to work properly with sector sizes other than 512 bytes."
+msgstr ""
+"IDOSIYE Sisitemu a Bijyanye n'inyurabwenge Ingano Bya ni OYA Kuri Akazi Na: "
+"Ikindi Bayite"
+
+#: libparted/fs/fat/bootsector.c:164
+#, c-format
+msgid ""
+"The file system's CHS geometry is (%d, %d, %d), which is invalid.  The "
+"partition table's CHS geometry is (%d, %d, %d).  If you select Ignore, the "
+"file system's CHS geometry will be left unchanged.  If you select Fix, the "
+"file system's CHS geometry will be set to match the partition table's CHS "
+"geometry."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:213
+#, fuzzy
+msgid "FAT boot sector says logical sector size is 0.  This is weird. "
+msgstr "Bijyanye n'inyurabwenge Ingano ni 0 ni"
+
+#: libparted/fs/fat/bootsector.c:219
+#, fuzzy
+msgid "FAT boot sector says there are no FAT tables.  This is weird. "
+msgstr "Oya Imbonerahamwe ni"
+
+#: libparted/fs/fat/bootsector.c:225
+#, fuzzy
+msgid "FAT boot sector says clusters are 0 sectors.  This is weird. "
+msgstr "0 ni"
+
+#: libparted/fs/fat/bootsector.c:235
+#, fuzzy
+msgid "File system is FAT12, which is unsupported."
+msgstr "ni ni"
+
+#: libparted/fs/fat/bootsector.c:411
+#, fuzzy, c-format
+msgid ""
+"The information sector has the wrong signature (%x).  Select cancel for now, "
+"and send in a bug report.  If you're desperate, it's probably safe to ignore."
+msgstr ""
+"Ibisobanuro i Isinya Kureka kugirango NONEAHA Na Kohereza in a Icyegeranyo "
+"Kuri Kwirengagiza"
+
+#: libparted/fs/fat/count.c:152
+#, fuzzy, c-format
+msgid "Bad directory entry for %s: first cluster is the end of file marker."
+msgstr "bushyinguro Icyinjijwe kugirango Itangira ni i Impera Bya IDOSIYE"
+
+#: libparted/fs/fat/count.c:165
+#, fuzzy, c-format
+msgid ""
+"Bad FAT: unterminated chain for %s.  You should run dosfsck or scandisk."
+msgstr "kugirango Gukoresha Cyangwa"
+
+#: libparted/fs/fat/count.c:174
+#, fuzzy, c-format
+msgid ""
+"Bad FAT: cluster %d outside file system in chain for %s.  You should run "
+"dosfsck or scandisk."
+msgstr "Hanze in kugirango Gukoresha Cyangwa"
+
+#: libparted/fs/fat/count.c:184
+#, fuzzy, c-format
+msgid ""
+"Bad FAT: cluster %d is cross-linked for %s.  You should run dosfsck or "
+"scandisk."
+msgstr "ni Kwambukiranya kugirango Gukoresha Cyangwa"
+
+#: libparted/fs/fat/count.c:203
+#, fuzzy, c-format
+msgid "%s is %dk, but it has %d clusters (%dk)."
+msgstr "%sni"
+
+#: libparted/fs/fat/count.c:266
+#, fuzzy, c-format
+msgid ""
+"The file %s is marked as a system file.  This means moving it could cause "
+"some programs to stop working."
+msgstr ""
+"IDOSIYE ni cy/ byagarajwe Nka a Sisitemu IDOSIYE Porogaramu Kuri Guhagarara"
+
+#: libparted/fs/fat/table.c:137
+#, fuzzy, c-format
+msgid ""
+"FAT %d media %x doesn't match the boot sector's media %x.  You should "
+"probably run scandisk."
+msgstr "Ibitangazamakuru BIHUYE i Ibitangazamakuru Gukoresha"
+
+#: libparted/fs/fat/table.c:269
+#, fuzzy, c-format
+msgid "fat_table_set: cluster %ld outside file system"
+msgstr "Hanze"
+
+#: libparted/fs/fat/table.c:301
+#, fuzzy, c-format
+msgid "fat_table_get: cluster %ld outside file system"
+msgstr "Hanze"
+
+#: libparted/fs/fat/table.c:343
+#, fuzzy
+msgid "fat_table_alloc_cluster: no free clusters"
+msgstr "Oya Kigenga"
+
+#: libparted/fs/linux_swap/linux_swap.c:275
+#, fuzzy, c-format
+msgid "Unrecognised old style linux swap signature '%10s'."
+msgstr "Isinya"
+
+#: libparted/fs/linux_swap/linux_swap.c:318
+#, fuzzy, c-format
+msgid "Unrecognised new style linux swap signature '%10s'."
+msgstr "Isinya"
+
+#: libparted/fs/linux_swap/linux_swap.c:358
+#, fuzzy, c-format
+msgid "Unrecognised swsusp linux swap signature '%9s'."
+msgstr "Isinya"
+
+#: libparted/fs/linux_swap/linux_swap.c:434
+#, fuzzy
+msgid "Too many bad pages."
+msgstr "Amapaji"
+
+#: libparted/fs/hfs/advfs.c:121 libparted/fs/hfs/advfs_plus.c:122
+#: libparted/fs/hfs/reloc.c:414 libparted/fs/hfs/reloc.c:508
+#: libparted/fs/hfs/reloc_plus.c:539 libparted/fs/hfs/reloc_plus.c:658
+#: libparted/fs/hfs/reloc_plus.c:772
+msgid "The file system contains errors."
+msgstr ""
+
+#: libparted/fs/hfs/advfs_plus.c:287
+msgid "Bad blocks could not be read."
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:137
+#, c-format
+msgid ""
+"Trying to register an extent starting at block 0x%X, but another one already "
+"exists at this position.  You should check the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:214
+#, c-format
+msgid ""
+"Trying to move an extent from block Ox%X to block Ox%X, but another one "
+"already exists at this position.  This should not happen!"
+msgstr ""
+
+#: libparted/fs/hfs/file.c:143
+#, c-format
+msgid "Could not update the extent cache for HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:180
+#, c-format
+msgid "Trying to read HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:190 libparted/fs/hfs/file.c:220
+#, c-format
+msgid "Could not find sector %lli of HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:210
+#, c-format
+msgid "Trying to write HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:157
+#, c-format
+msgid "Could not update the extent cache for HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:202
+#, c-format
+msgid "Trying to read HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:213 libparted/fs/hfs/file_plus.c:256
+#, c-format
+msgid "Could not find sector %lli of HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:245
+#, c-format
+msgid "Trying to write HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:232
+msgid "Sorry, HFS cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:262 libparted/fs/hfs/hfs.c:641
+msgid "Data relocation has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:281
+msgid "Data relocation left some data in the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:320
+#, fuzzy
+msgid "writing HFS Master Directory Block"
+msgstr "Kuri i Imizi bushyinguro"
+
+#: libparted/fs/hfs/hfs.c:468
+msgid "No valid HFS[+X] signature has been found while opening."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:478
+#, c-format
+msgid "Version %d of HFS+ isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:489
+#, c-format
+msgid "Version %d of HFSX isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:672
+msgid "Data relocation left some data at the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:720
+#, fuzzy
+msgid "Error while writing the allocation file."
+msgstr "Kuri i Imizi bushyinguro"
+
+#: libparted/fs/hfs/hfs.c:735
+msgid "Error while writing the compatibility part of the allocation file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:750
+msgid "writing HFS+ Volume Header"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:850
+msgid "An error occurred while looking for the mandatory bad blocks file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:904
+msgid ""
+"It seems there is an error in the HFS wrapper: the bad blocks file doesn't "
+"contain the embedded HFS+ volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:940
+msgid "Sorry, HFS+ cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:975
+msgid "shrinking embedded HFS+ volume"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:991
+msgid "Resizing the HFS+ volume has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:998
+msgid "shrinking HFS wrapper"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:1007
+msgid "Updating the HFS wrapper has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:1109 libparted/fs/hfs/hfs.c:1194
+#, c-format
+msgid ""
+"This is not a real %s check.  This is going to extract special low level "
+"files for debugging purposes."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:155
+msgid "Bad block list header checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:168
+#, c-format
+msgid ""
+"Invalid size of a transaction block while replaying the journal (%i bytes)."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:260
+msgid ""
+"Journal stored outside of the volume are not supported.  Try to desactivate "
+"the journal and run Parted again."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:271
+#, fuzzy
+msgid "Journal offset or size is not multiple of the sector size."
+msgstr "Gutangira DELTA ni OYA a Igikubo Bya i Ingano"
+
+#: libparted/fs/hfs/journal.c:292
+msgid "Incorrect magic values in the journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:302
+msgid "Journal size mismatch between journal info block and journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:314
+#, fuzzy
+msgid "Some header fields are not multiple of the sector size."
+msgstr "Gutangira DELTA ni OYA a Igikubo Bya i Ingano"
+
+#: libparted/fs/hfs/journal.c:323
+msgid ""
+"The sector size stored in the journal is not 512 bytes.  Parted only "
+"supports 512 bytes length sectors."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:335
+msgid "Bad journal checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:353
+msgid ""
+"The journal is not empty.  Parted must replay the transactions before "
+"opening the file system.  This will modify the file system."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:381
+msgid ""
+"The volume header or the master directory block has changed while replaying "
+"the journal.  You should restart Parted."
+msgstr ""
+
+#: libparted/fs/hfs/probe.c:51
+#, c-format
+msgid ""
+"Parted can't use HFS file systems on disks with a sector size not equal to %"
+"d bytes."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:151 libparted/fs/hfs/reloc_plus.c:155
+msgid "An extent has not been relocated."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:251 libparted/fs/hfs/reloc_plus.c:307
+msgid ""
+"A reference to an extent comes from a place it should not.  You should check "
+"the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:381
+msgid "This HFS volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:475
+msgid "This HFS volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:517 libparted/fs/hfs/reloc_plus.c:668
+msgid ""
+"The extents overflow file should not contain its own extents!  You should "
+"check the file system."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:574 libparted/fs/hfs/reloc_plus.c:847
+#, fuzzy
+msgid "Could not cache the file system in memory."
+msgstr "OYA IDOSIYE Sisitemu"
+
+#: libparted/fs/hfs/reloc.c:635 libparted/fs/hfs/reloc_plus.c:908
+msgid "Bad blocks list could not be loaded."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:649 libparted/fs/hfs/reloc_plus.c:924
+msgid "An error occurred during extent relocation."
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:495
+msgid "This HFS+ volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:619
+msgid "This HFS+ volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: parted/parted.c:94
+#, fuzzy
+msgid "displays this help message"
+msgstr "iyi Ifashayobora Ubutumwa"
+
+#: parted/parted.c:95
+msgid "lists partition layout on all block devices"
+msgstr ""
+
+#: parted/parted.c:96
+msgid "displays machine parseable output"
+msgstr ""
+
+#: parted/parted.c:97
+#, fuzzy
+msgid "never prompts for user intervention"
+msgstr "Nta narimwe kugirango Ukoresha:"
+
+#: parted/parted.c:98
+#, fuzzy
+msgid "displays the version"
+msgstr "i Verisiyo"
+
+#: parted/parted.c:111
+#, fuzzy
+msgid ""
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"
+msgstr ""
+"ni i Umubare ku Uturango... i Umubare Bivuye 1. 4. Na Bijyanye "
+"n'inyurabwenge 5"
+
+#: parted/parted.c:114
+#, fuzzy
+msgid "LABEL-TYPE is one of: "
+msgstr "ni Bya"
+
+#: parted/parted.c:115
+#, fuzzy
+msgid "FLAG is one of: "
+msgstr "ni Bya"
+
+#: parted/parted.c:116
+#, fuzzy
+msgid "UNIT is one of: "
+msgstr "ni Bya"
+
+#: parted/parted.c:117
+#, fuzzy
+msgid "PART-TYPE is one of: primary, logical, extended\n"
+msgstr "ni Bya Bijyanye n'inyurabwenge"
+
+#: parted/parted.c:119
+#, fuzzy
+msgid "FS-TYPE is one of: "
+msgstr "ni Bya"
+
+#: parted/parted.c:120
+#, fuzzy
+msgid ""
+"START and END are disk locations, such as 4GB or 10%.  Negative values count "
+"from the end of the disk.  For example, -1s specifies exactly the last "
+"sector.\n"
+msgstr "Na in Uduciro IBARA Bivuye i Impera Bya i"
+
+#: parted/parted.c:123
+#, fuzzy
+msgid "STATE is one of: on, off\n"
+msgstr "ni Bya ku"
+
+#: parted/parted.c:124
+#, fuzzy
+msgid "DEVICE is usually /dev/hda or /dev/sda\n"
+msgstr "ni Cyangwa"
+
+#: parted/parted.c:125
+#, fuzzy
+msgid "NAME is any word you want\n"
+msgstr "ni ijambo"
+
+#: parted/parted.c:126
+msgid "The partition must have one of the following FS-TYPEs: "
+msgstr ""
+
+#: parted/parted.c:130
+#, fuzzy
+msgid ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+msgstr ""
+"C Porogaramu ni Kigenga ku i Porogaramu ni in i ATARIIGIHARWE i Bya Cyangwa "
+"A i kugirango Birenzeho Birambuye"
+
+#: parted/parted.c:176
+#, fuzzy, c-format
+msgid "%0.f%%\t(time left %.2d:%.2d)"
+msgstr ""
+"%0.Project- Id- Version: basctl\n"
+"POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n"
+"PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n"
+"Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n"
+"Content- Type: text/ plain; charset= UTF- 8\n"
+"Content- Transfer- Encoding: 8bit\n"
+"X- Generator: KBabel 1. 0\n"
+". 2D."
+
+#: parted/parted.c:195
+#, c-format
+msgid ""
+"Partition %s is being used. You must unmount it before you modify it with "
+"Parted."
+msgstr ""
+
+#: parted/parted.c:211
+#, fuzzy, c-format
+msgid "Partition(s) on %s are being used."
+msgstr "S ku"
+
+#: parted/parted.c:223
+msgid ""
+"The existing file system will be destroyed and all data on the partition "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:235
+#, c-format
+msgid ""
+"The existing disk label on %s will be destroyed and all data on this disk "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:458 parted/parted.c:652 parted/parted.c:1044
+#: parted/parted.c:1128 parted/parted.c:1771 parted/parted.c:1852
+#: parted/parted.c:1900
+#, fuzzy
+msgid "Partition number?"
+msgstr "Umubare"
+
+#: parted/parted.c:500
+#, fuzzy
+msgid "Source device?"
+msgstr "APAREYE"
+
+#: parted/parted.c:504
+#, fuzzy
+msgid "Source partition number?"
+msgstr "Umubare"
+
+#: parted/parted.c:509
+#, fuzzy
+msgid "Can't copy an extended partition."
+msgstr "Gukoporora Byongerewe..."
+
+#: parted/parted.c:515
+#, fuzzy
+msgid "Destination partition number?"
+msgstr "Umubare"
+
+#: parted/parted.c:615
+#, fuzzy
+msgid "New disk label type?"
+msgstr "Akarango Ubwoko"
+
+# officecfg/registry\schema\org\openoffice\Office\Common.xcs:....Save.URL.FileSystem.text
+#: parted/parted.c:656
+#, fuzzy
+msgid "File system?"
+msgstr "Idosiye ya sisitemu"
+
+#: parted/parted.c:707 parted/parted.c:878
+#, fuzzy
+msgid "Partition type?"
+msgstr "Ubwoko"
+
+#: parted/parted.c:714 parted/parted.c:885 parted/parted.c:1131
+#, fuzzy
+msgid "Partition name?"
+msgstr "Izina:"
+
+#: parted/parted.c:722 parted/parted.c:895
+#, fuzzy
+msgid "File system type?"
+msgstr "Idosiye Sisitemu Ubwoko"
+
+# #-#-#-#-#  sc.pot (PACKAGE VERSION)  #-#-#-#-#
+# sc/source\ui\navipi\navipi.src:RID_SCDLG_NAVIGATOR.TBX_CMD.IID_UP.text
+# #-#-#-#-#  sc.pot (PACKAGE VERSION)  #-#-#-#-#
+# sc/source\ui\src\scfuncs.src:RID_SC_FUNCTION_DESCRIPTIONS2.SC_OPCODE_PROB.6.text
+# #-#-#-#-#  sc.pot (PACKAGE VERSION)  #-#-#-#-#
+# sc/source\ui\src\scfuncs.src:RID_SC_FUNCTION_DESCRIPTIONS2.SC_OPCODE_BETA_DIST.8.text
+# #-#-#-#-#  sc.pot (PACKAGE VERSION)  #-#-#-#-#
+# sc/source\ui\src\scfuncs.src:RID_SC_FUNCTION_DESCRIPTIONS2.SC_OPCODE_BETA_INV.8.text
+#: parted/parted.c:729 parted/parted.c:897 parted/parted.c:1059
+#: parted/parted.c:1725 parted/parted.c:1780
+#, fuzzy
+msgid "Start?"
+msgstr "Gutangira"
+
+# officecfg/registry\schema\org\openoffice\Office\DataAccess.xcs:....FormSearchOptions.SearchPosition..end-of-field.text
+#: parted/parted.c:731 parted/parted.c:900 parted/parted.c:1062
+#: parted/parted.c:1727 parted/parted.c:1782
+#, fuzzy
+msgid "End?"
+msgstr "Impera"
+
+#: parted/parted.c:769 parted/parted.c:938
+#, c-format
+msgid ""
+"You requested a partition from %s to %s.\n"
+"The closest location we can manage is %s to %s.  Is this still acceptable to "
+"you?"
+msgstr ""
+
+#: parted/parted.c:890
+#, fuzzy
+msgid "An extended partition cannot hold a file system.  Did you want mkpart?"
+msgstr "IDOSIYE"
+
+#: parted/parted.c:1050
+#, fuzzy
+msgid "Can't move an extended partition."
+msgstr "Kwimura Byongerewe..."
+
+#: parted/parted.c:1079
+#, fuzzy
+msgid "Can't move a partition onto itself.  Try using resize, perhaps?"
+msgstr "Kwimura a ikoresha Ihindurangero"
+
+#: parted/parted.c:1227
+#, c-format
+msgid "Minor: %d\n"
+msgstr ""
+
+# svx/source\gallery2\galtheme.src:RID_GALLERYSTR_THEME_FLAGS.text
+#: parted/parted.c:1228
+#, fuzzy, c-format
+msgid "Flags: %s\n"
+msgstr "Amabendera"
+
+# officecfg/registry\schema\org\openoffice\Office\Common.xcs:....Save.URL.FileSystem.text
+#: parted/parted.c:1229
+#, fuzzy, c-format
+msgid "File System: %s\n"
+msgstr "Idosiye ya sisitemu"
+
+#: parted/parted.c:1230
+msgid "Size:         "
+msgstr ""
+
+#: parted/parted.c:1235
+#, fuzzy
+msgid "Minimum size: "
+msgstr "Ingano"
+
+#: parted/parted.c:1238
+#, fuzzy
+msgid "Maximum size: "
+msgstr "Ingano"
+
+#: parted/parted.c:1362
+#, c-format
+msgid "Model: %s (%s)\n"
+msgstr ""
+
+# desktop/source\app\ssodlg.src:DLG_SSOLOGIN.text
+#: parted/parted.c:1364
+#, fuzzy, c-format
+msgid "Disk %s: %s\n"
+msgstr "%s%s%s"
+
+#: parted/parted.c:1365
+#, c-format
+msgid "Sector size (logical/physical): %lldB/%lldB\n"
+msgstr ""
+
+#: parted/parted.c:1383
+#, c-format
+msgid "BIOS cylinder,head,sector geometry: %d,%d,%d.  Each cylinder is %s.\n"
+msgstr ""
+
+#: parted/parted.c:1392
+#, fuzzy, c-format
+msgid "Partition Table: %s\n"
+msgstr "Izina:"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Number"
+msgstr ""
+
+# #-#-#-#-#  sc.pot (PACKAGE VERSION)  #-#-#-#-#
+# sc/source\ui\navipi\navipi.src:RID_SCDLG_NAVIGATOR.TBX_CMD.IID_UP.text
+# #-#-#-#-#  sc.pot (PACKAGE VERSION)  #-#-#-#-#
+# sc/source\ui\src\scfuncs.src:RID_SC_FUNCTION_DESCRIPTIONS2.SC_OPCODE_PROB.6.text
+# #-#-#-#-#  sc.pot (PACKAGE VERSION)  #-#-#-#-#
+# sc/source\ui\src\scfuncs.src:RID_SC_FUNCTION_DESCRIPTIONS2.SC_OPCODE_BETA_DIST.8.text
+# #-#-#-#-#  sc.pot (PACKAGE VERSION)  #-#-#-#-#
+# sc/source\ui\src\scfuncs.src:RID_SC_FUNCTION_DESCRIPTIONS2.SC_OPCODE_BETA_INV.8.text
+#: parted/parted.c:1406 parted/parted.c:1409
+#, fuzzy
+msgid "Start"
+msgstr "Gutangira"
+
+# officecfg/registry\schema\org\openoffice\Office\DataAccess.xcs:....FormSearchOptions.SearchPosition..end-of-field.text
+#: parted/parted.c:1407 parted/parted.c:1410
+#, fuzzy
+msgid "End"
+msgstr "Impera"
+
+# starmath/source\smres.src:RID_TOOLBOXWINDOW.6.RID_SIZEXY.text
+#: parted/parted.c:1410
+#, fuzzy
+msgid "Size"
+msgstr "Kuringaniza"
+
+#: parted/parted.c:1414
+msgid "Type"
+msgstr ""
+
+# officecfg/registry\schema\org\openoffice\Office\Common.xcs:....Save.URL.FileSystem.text
+#: parted/parted.c:1416
+#, fuzzy
+msgid "File system"
+msgstr "Idosiye ya sisitemu"
+
+#: parted/parted.c:1419
+#, fuzzy
+msgid "Name"
+msgstr "izina"
+
+#: parted/parted.c:1421
+msgid "Flags"
+msgstr "Amabendera"
+
+#: parted/parted.c:1477
+msgid "Free Space"
+msgstr ""
+
+#: parted/parted.c:1624
+#, fuzzy, c-format
+msgid ""
+"A %s %s partition was found at %s -> %s.  Do you want to add it to the "
+"partition table?"
+msgstr "A Byabonetse ku Kuri Kongeramo Kuri i imbonerahamwe#"
+
+#: parted/parted.c:1663
+#, fuzzy
+msgid "searching for file systems"
+msgstr "Ishakisha kugirango IDOSIYE"
+
+#: parted/parted.c:1877
+#, fuzzy
+msgid "New device?"
+msgstr "APAREYE"
+
+#: parted/parted.c:1902
+#, fuzzy
+msgid "Flag to Invert?"
+msgstr "Kuri Guhindura>>"
+
+#: parted/parted.c:1907
+#, fuzzy
+msgid "New state?"
+msgstr "Leta"
+
+#: parted/parted.c:1944
+msgid "Unit?"
+msgstr ""
+
+#: parted/parted.c:2093
+msgid "check"
+msgstr "genzura"
+
+#: parted/parted.c:2096
+#, fuzzy
+msgid ""
+"check NUMBER                             do a simple check on the file system"
+msgstr "Kugenzura... a Byoroheje Kugenzura... ku i"
+
+#: parted/parted.c:2102
+msgid "cp"
+msgstr ""
+
+#: parted/parted.c:2105
+#, fuzzy
+msgid ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+"partition"
+msgstr "Gukoporora Kuri"
+
+#: parted/parted.c:2111
+#, fuzzy
+msgid "help"
+msgstr "Ifashayobora"
+
+#: parted/parted.c:2114
+#, fuzzy
+msgid ""
+"help [COMMAND]                           print general help, or help on "
+"COMMAND"
+msgstr "Ifashayobora Rusange Ifashayobora Cyangwa Ifashayobora ku"
+
+#: parted/parted.c:2120
+msgid "mklabel"
+msgstr ""
+
+#: parted/parted.c:2120
+msgid "mktable"
+msgstr ""
+
+#: parted/parted.c:2123
+#, fuzzy
+msgid ""
+"mklabel,mktable LABEL-TYPE               create a new disklabel (partition "
+"table)"
+msgstr "Kurema a Gishya imbonerahamwe#"
+
+#: parted/parted.c:2129
+msgid "mkfs"
+msgstr ""
+
+#: parted/parted.c:2132
+#, fuzzy
+msgid ""
+"mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on "
+"partititon NUMBER"
+msgstr "Ubwoko a ku"
+
+#: parted/parted.c:2138
+msgid "mkpart"
+msgstr ""
+
+#: parted/parted.c:2141
+#, fuzzy
+msgid "mkpart PART-TYPE [FS-TYPE] START END     make a partition"
+msgstr "Ubwoko a"
+
+#: parted/parted.c:2147
+#, fuzzy
+msgid ""
+"'mkpart' makes a partition without creating a new file system on the "
+"partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"
+msgstr "a a Gishya IDOSIYE Sisitemu ku i Gicurasi Kuri Gushyiraho"
+
+#: parted/parted.c:2152
+msgid "mkpartfs"
+msgstr ""
+
+#: parted/parted.c:2155
+#, fuzzy
+msgid ""
+"mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system"
+msgstr "Ubwoko a Na: a"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_UNDO_MOVE.text
+#: parted/parted.c:2161
+#, fuzzy
+msgid "move"
+msgstr "Kwimura"
+
+#: parted/parted.c:2164
+#, fuzzy
+msgid "move NUMBER START END                    move partition NUMBER"
+msgstr "Kwimura Kwimura"
+
+#: parted/parted.c:2169
+msgid "name"
+msgstr "izina"
+
+#: parted/parted.c:2172
+#, fuzzy
+msgid "name NUMBER NAME                         name partition NUMBER as NAME"
+msgstr "Izina: Izina:"
+
+# #-#-#-#-#  dbaccess.pot (PACKAGE VERSION)  #-#-#-#-#
+# #-#-#-#-#  dbaccess.pot (PACKAGE VERSION)  #-#-#-#-#
+#: parted/parted.c:2177
+#, fuzzy
+msgid "print"
+msgstr "Gucapa"
+
+#: parted/parted.c:2180
+msgid ""
+"print [devices|free|list,all|NUMBER]     display the partition table, "
+"available devices, free space, all found partitions, or a particular "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2185
+msgid ""
+"Without arguments, 'print' displays the entire partition table. However with "
+"the following arguments it performs various other actions.\n"
+msgstr ""
+
+#: parted/parted.c:2187
+msgid "  devices   : display all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2188
+msgid ""
+"  free      : display information about free unpartitioned space on the "
+"current block device\n"
+msgstr ""
+
+#: parted/parted.c:2190
+#, fuzzy
+msgid ""
+"  list, all : display the partition tables of all active block devices\n"
+msgstr "Gucapa Kugaragaza i imbonerahamwe# Cyangwa a"
+
+#: parted/parted.c:2191
+msgid ""
+"  NUMBER    : display more detailed information about this particular "
+"partition\n"
+msgstr ""
+
+#: parted/parted.c:2196
+#, fuzzy
+msgid "quit"
+msgstr "Kuvamo"
+
+#: parted/parted.c:2199
+#, fuzzy
+msgid "quit                                     exit program"
+msgstr "Kuvamo Gusohoka Porogaramu"
+
+#: parted/parted.c:2204
+msgid "rescue"
+msgstr ""
+
+#: parted/parted.c:2207
+#, fuzzy
+msgid ""
+"rescue START END                         rescue a lost partition near START "
+"and END"
+msgstr "a Na"
+
+# starmath/source\smres.src:RID_TOOLBOXWINDOW.6.RID_SIZEXY.text
+#: parted/parted.c:2213
+#, fuzzy
+msgid "resize"
+msgstr "Kuringaniza"
+
+#: parted/parted.c:2216
+#, fuzzy
+msgid ""
+"resize NUMBER START END                  resize partition NUMBER and its "
+"file system"
+msgstr "a Na"
+
+#: parted/parted.c:2224
+msgid "rm"
+msgstr ""
+
+#: parted/parted.c:2227
+#, fuzzy
+msgid "rm NUMBER                                delete partition NUMBER"
+msgstr "Gusiba"
+
+#: parted/parted.c:2232
+msgid "select"
+msgstr "guhitamo"
+
+#: parted/parted.c:2235
+#, fuzzy
+msgid "select DEVICE                            choose the device to edit"
+msgstr "Guhitamo Guhitamo i APAREYE Kuri Guhindura"
+
+#: parted/parted.c:2240
+#, fuzzy
+msgid "set"
+msgstr "Gushyiraho"
+
+#: parted/parted.c:2243
+#, fuzzy
+msgid ""
+"set NUMBER FLAG STATE                    change the FLAG on partition NUMBER"
+msgstr "Gushyiraho Guhindura>> a Ibendera ku"
+
+#: parted/parted.c:2249
+msgid "toggle"
+msgstr ""
+
+#: parted/parted.c:2252
+msgid ""
+"toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+"partition NUMBER"
+msgstr ""
+
+#: parted/parted.c:2258
+#, fuzzy
+msgid "unit"
+msgstr "Kuvamo"
+
+#: parted/parted.c:2261
+#, fuzzy
+msgid "unit UNIT                                set the default unit to UNIT"
+msgstr "Kuvamo Gusohoka Porogaramu"
+
+#: parted/parted.c:2266
+msgid "version"
+msgstr ""
+
+#: parted/parted.c:2269
+msgid ""
+"version                                  display the version number and "
+"copyright information of GNU Parted"
+msgstr ""
+
+#: parted/parted.c:2273
+msgid ""
+"'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"
+msgstr ""
+
+#: parted/parted.c:2335
+#, c-format
+msgid "Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"
+msgstr ""
+
+#: parted/parted.c:2379
+#, fuzzy
+msgid "No device found"
+msgstr "APAREYE Byabonetse"
+
+#: parted/parted.c:2412
+msgid "WARNING: You are not superuser.  Watch out for permissions."
+msgstr ""
+
+#: parted/parted.c:2450
+#, fuzzy
+msgid "You may need to update /etc/fstab.\n"
+msgstr "Kuri Kuvugurura NIBA"
+
+#: parted/ui.c:160
+msgid "Welcome to GNU Parted! Type 'help' to view a list of commands.\n"
+msgstr ""
+
+#: parted/ui.c:163
+#, fuzzy
+msgid ""
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run "
+"in\n"
+"interactive mode.\n"
+msgstr "Na: Kuri Oya S Ubwoko"
+
+#: parted/ui.c:168
+#, c-format
+msgid ""
+"\n"
+"\n"
+"You found a bug in GNU Parted! Here's what you have to do:\n"
+"\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n"
+"\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Please check this version prior to bug reporting.\n"
+"\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"for further information.\n"
+"\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n"
+msgstr ""
+
+#: parted/ui.c:284
+msgid ""
+"\n"
+"Command History:\n"
+msgstr ""
+
+#: parted/ui.c:366
+msgid ""
+"\n"
+"Error: SEGV_MAPERR (Address not mapped to object)\n"
+msgstr ""
+
+#: parted/ui.c:372
+msgid ""
+"\n"
+"Error: SEGV_ACCERR (Invalid permissions for mapped object)\n"
+msgstr ""
+
+#: parted/ui.c:377
+msgid ""
+"\n"
+"Error: A general SIGSEGV signal was encountered.\n"
+msgstr ""
+
+#: parted/ui.c:410
+msgid ""
+"\n"
+"Error: FPE_INTDIV (Integer: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:415
+msgid ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+msgstr ""
+
+#: parted/ui.c:420
+msgid ""
+"\n"
+"Error: FPE_FLTDIV (Float: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:425
+msgid ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+msgstr ""
+
+#: parted/ui.c:430
+msgid ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+msgstr ""
+
+#: parted/ui.c:435
+msgid ""
+"\n"
+"Error: FPE_FLTRES (Float: inexact result)"
+msgstr ""
+
+#: parted/ui.c:440
+msgid ""
+"\n"
+"Error: FPE_FLTINV (Float: invalid operation)"
+msgstr ""
+
+#: parted/ui.c:445
+msgid ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript out of range)"
+msgstr ""
+
+#: parted/ui.c:450
+msgid ""
+"\n"
+"Error: A general SIGFPE signal was encountered."
+msgstr ""
+
+#: parted/ui.c:483
+msgid ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+msgstr ""
+
+#: parted/ui.c:488
+msgid ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+msgstr ""
+
+#: parted/ui.c:493
+msgid ""
+"\n"
+"Error: ILL_ILLADR (Illegal addressing mode)"
+msgstr ""
+
+#: parted/ui.c:498
+msgid ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+msgstr ""
+
+#: parted/ui.c:503
+msgid ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+msgstr ""
+
+#: parted/ui.c:508
+msgid ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+msgstr ""
+
+#: parted/ui.c:513
+msgid ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+msgstr ""
+
+#: parted/ui.c:518
+msgid ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+msgstr ""
+
+#: parted/ui.c:523
+msgid ""
+"\n"
+"Error: A general SIGILL signal was encountered."
+msgstr ""
+
+#: parted/ui.c:1024
+#, fuzzy
+msgid "Expecting a partition number."
+msgstr "a Umubare"
+
+#: parted/ui.c:1033
+msgid "Partition doesn't exist."
+msgstr ""
+
+#: parted/ui.c:1053
+#, fuzzy
+msgid "Expecting a file system type."
+msgstr "a IDOSIYE Sisitemu Ubwoko"
+
+#: parted/ui.c:1060
+#, fuzzy, c-format
+msgid "Unknown file system type \"%s\"."
+msgstr "IDOSIYE Sisitemu Ubwoko"
+
+#: parted/ui.c:1080
+#, fuzzy
+msgid "Expecting a disk label type."
+msgstr "a Akarango Ubwoko"
+
+#: parted/ui.c:1178
+#, fuzzy
+msgid "Can't create any more partitions."
+msgstr "Kurema Birenzeho"
+
+#: parted/ui.c:1188
+#, fuzzy
+msgid "Expecting a partition type."
+msgstr "a Ubwoko"
+
+#: parted/ui.c:1315
+msgid "on"
+msgstr "kuri"
+
+# #-#-#-#-#  svx.pot (PACKAGE VERSION)  #-#-#-#-#
+# svx/source\svdraw\svdstr.src:STR_ItemValOFF.text
+# #-#-#-#-#  svx.pot (PACKAGE VERSION)  #-#-#-#-#
+# svx/source\svdraw\svdstr.src:STR_ItemValTEXTANI_NONE.text
+#: parted/ui.c:1316
+msgid "off"
+msgstr "bidakora"
+
+# crashrep/source\all\crashrep.lng:%OPTIONS_BUTTON%.text
+#: parted/ui.c:1431
+#, fuzzy
+msgid "OPTIONs:"
+msgstr "Amahitamo..."
+
+# sfx2/source\doc\docvor.src:DLG_ORGANIZE.BTN_EDIT.text
+#: parted/ui.c:1436
+#, fuzzy
+msgid "COMMANDs:"
+msgstr "Amabwiriza"
+
+#: parted/ui.c:1445
+#, fuzzy, c-format
+msgid "Using %s\n"
+msgstr "ikoresha"
+
+#: parted/ui.c:1519
+msgid "This command does not make sense in non-interactive mode.\n"
+msgstr ""
+
+#, fuzzy
+#~ msgid "where necessary, prompts for user intervention"
+#~ msgstr "kugirango Ukoresha:"
+
+#, fuzzy
+#~ msgid ""
+#~ "Without arguments, print displays the entire partition table. With "
+#~ "'free'\n"
+#~ "argument, information about free space will be displayed otherwise if a\n"
+#~ "partition number is given, then more detailed information is displayed\n"
+#~ "about that partition. If the 'all' argument is passed instead, partition\n"
+#~ "information for all devices will be displayed.\n"
+#~ msgstr ""
+#~ "ingingo Gucapa i imbonerahamwe# Umubare ni Hanyuma Birenzeho Ibisobanuro "
+#~ "ni"
+
+#, fuzzy
+#~ msgid ""
+#~ "The sector size on %s is %d bytes.  Parted is known not to work properly "
+#~ "with drives with sector sizes other than %d bytes"
+#~ msgstr "Ingano ku ni Bayite ni OYA Kuri Akazi Na: Na: Ikindi Bayite"
+
+#, fuzzy
+#~ msgid "Could not read geometry of %s - %s."
+#~ msgstr "OYA Gusoma Iyigamashusho Bya"
+
+#, fuzzy
+#~ msgid "Device %s has dodgey geometry."
+#~ msgstr "Iyigamashusho"
+
+#, fuzzy
+#~ msgid "Device %s is neither a SCSI nor IDE drive."
+#~ msgstr "ni a Porogaramu- shoboza"
+
+#, fuzzy
+#~ msgid "Error reading %s (%s) to determine if partition is mounted."
+#~ msgstr "Kuri NIBA ni"
+
+#, fuzzy
+#~ msgid ""
+#~ "Unable to determine if partitions are mounted via /proc/mounts or /etc/"
+#~ "mtab.  Make sure you don't attempt to resize or modify mounted file "
+#~ "systems.  (Even read-only mounted)"
+#~ msgstr ""
+#~ "Kuri NIBA Biturutse Cyangwa Kuri Ihindurangero Cyangwa Guhindura IDOSIYE "
+#~ "Gusoma"
+
+#, fuzzy
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  However, the most likely reason is that Linux "
+#~ "detected the BIOS geometry for %s incorrectly.  GNU Parted suspects the "
+#~ "real geometry should be %d/%d/%d (not %d/%d/%d).  You should check with "
+#~ "your BIOS first, as this may not be correct.  You can inform Linux by "
+#~ "adding the parameter %s=%d,%d,%d to the command line.  See the LILO or "
+#~ "GRUB documentation for more information.  If you think Parted's suggested "
+#~ "geometry is correct, you may select Ignore to continue (and fix Linux "
+#~ "later).  Otherwise, select Cancel (and fix Linux and/or the BIOS now)."
+#~ msgstr ""
+#~ "imbonerahamwe# ku ni iyi i i ni i Iyigamashusho kugirango i Iyigamashusho "
+#~ "OYA Kugenzura... Na: Itangira Nka iyi Gicurasi OYA ku Wongera i Kuri i "
+#~ "Komandi: Umurongo i Cyangwa kugirango Birenzeho Ibisobanuro Iyigamashusho "
+#~ "ni Gicurasi Guhitamo Kuri urifuzagukomeza Na Guhitamo Na Na Cyangwa i "
+#~ "NONEAHA"
+
+#, fuzzy
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  Often, the reason is that Linux detected the "
+#~ "BIOS geometry incorrectly.  However, this does not appear to be the case "
+#~ "here.  It is safe to ignore,but ignoring may cause (fixable) problems "
+#~ "with some boot loaders, and may cause problems with FAT file systems.  "
+#~ "Using LBA is recommended."
+#~ msgstr ""
+#~ "imbonerahamwe# ku ni iyi i i ni i Iyigamashusho iyi OYA Kugaragara Kuri i "
+#~ "ni Kuri Kwirengagiza Gicurasi Na: Na Gicurasi Na: IDOSIYE ni"
+
+#, fuzzy
+#~ msgid ""
+#~ "Unable to align partition properly.  This probably means that another "
+#~ "partitioning tool generated an incorrect partition table, because it "
+#~ "didn't have the correct BIOS geometry.  It is safe to ignore,but ignoring "
+#~ "may cause (fixable) problems with some boot loaders."
+#~ msgstr ""
+#~ "Kuri Gutondeka imbonerahamwe# i Iyigamashusho ni Kuri Kwirengagiza "
+#~ "Gicurasi Na:"
+
+#, fuzzy
+#~ msgid "Attempt to read sectors %ld-%ld outside of partition on %s"
+#~ msgstr "Kuri Gusoma Hanze Bya ku"
+
+#, fuzzy
+#~ msgid ""
+#~ "This ext2 filesystem has a rather strange layout!  Parted can't resize "
+#~ "this (yet)."
+#~ msgstr "a Imigaragarire Ihindurangero iyi"
+
+#, fuzzy
+#~ msgid "File system has an invalid signature for a FAT file systems."
+#~ msgstr "Idosiye Sisitemu Sibyo Isinya kugirango a IDOSIYE"
+
+#, fuzzy
+#~ msgid ""
+#~ "Partition %s is being used.  Modifying it while it is in use could cause "
+#~ "severe corruption."
+#~ msgstr "ni ni in Gukoresha"
+
+#, fuzzy
+#~ msgid ""
+#~ "You requested to create a partition at %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr "Kuri Kurema a ku kuyobora ni"
+
+#, fuzzy
+#~ msgid ""
+#~ "You requested to move the partition to %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr "Kuri Kwimura i Kuri kuyobora ni"
+
+#, fuzzy
+#~ msgid "Disk geometry for %s: 0.000-%.3f megabytes\n"
+#~ msgstr "000."
+
+#, fuzzy
+#~ msgid "Disk label type: %s\n"
+#~ msgstr "Akarango Ubwoko"
+
+#, fuzzy
+#~ msgid "Minor    Start       End     "
+#~ msgstr "Gutangira Impera"
+
+# #-#-#-#-#  dbaccess.pot (PACKAGE VERSION)  #-#-#-#-#
+# #-#-#-#-#  dbaccess.pot (PACKAGE VERSION)  #-#-#-#-#
+#, fuzzy
+#~ msgid "Type      "
+#~ msgstr "Ubwoko"
+
+#, fuzzy
+#~ msgid "Name                  "
+#~ msgstr "Izina"
+
+#, fuzzy
+#~ msgid ""
+#~ "You requested to resize the partition to %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr "Kuri Ihindurangero i Kuri kuyobora ni"
+
+#, fuzzy
+#~ msgid "resize MINOR START END        resize filesystem on partition MINOR"
+#~ msgstr "Ihindurangero Ihindurangero ku"
+
+#, fuzzy
+#~ msgid ""
+#~ "You found a bug in GNU Parted.  Please email a bug report to bug-"
+#~ "parted@gnu.org containing the version (%s), and the following message:\n"
+#~ msgstr ""
+#~ "Byabonetse a in imeli a Icyegeranyo Kuri org i Verisiyo Na i Ubutumwa"
+
+#, fuzzy
+#~ msgid ""
+#~ "  You have Windows FAT partition(s) that are not using LBA.  If your BIOS "
+#~ "supports LBA, then you should switch to LBA by setting the LBA flag on "
+#~ "all FAT partitions.  Otherwise, make sure the operating system and the "
+#~ "BIOS have the same geometry before resizing any FAT partitions."
+#~ msgstr ""
+#~ "S OYA ikoresha Hanyuma Hindura Kuri ku Igenamiterere i Ibendera ku Byose "
+#~ "Ubwoko i Sisitemu Na i i Iyigamashusho Mbere"
+
+#, fuzzy
+#~ msgid ""
+#~ "The operating system thinks the geometry on %s is %d/%d/%d.  Therefore, "
+#~ "cylinder 1024 ends at %.3fM.%s"
+#~ msgstr "Sisitemu i Iyigamashusho ku ni Umwiburungushure ku"
+
+#, fuzzy
+#~ msgid "The operating system thinks the geometry on %s is %d/%d/%d.%s"
+#~ msgstr "Sisitemu i Iyigamashusho ku ni"
diff --git a/parted-1.8.7/po/stamp-po b/parted-1.8.7/po/stamp-po
new file mode 100644
index 0000000..9788f70
--- /dev/null
+++ b/parted-1.8.7/po/stamp-po
@@ -0,0 +1 @@
+timestamp
diff --git a/parted-1.8.7/po/sv.gmo b/parted-1.8.7/po/sv.gmo
new file mode 100644
index 0000000..b9ce1a3
--- /dev/null
+++ b/parted-1.8.7/po/sv.gmo
Binary files differ
diff --git a/parted-1.8.7/po/sv.po b/parted-1.8.7/po/sv.po
new file mode 100644
index 0000000..2f55684
--- /dev/null
+++ b/parted-1.8.7/po/sv.po
@@ -0,0 +1,3378 @@
+# Swedish messages for parted
+# Copyright © 2001 Jörgen Tegnér.
+# Jörgen Tegnér <jorgen.tegner@telia.com>, 2001.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: parted 1.4.18\n"
+"Report-Msgid-Bugs-To: bug-parted@gnu.org\n"
+"POT-Creation-Date: 2007-05-09 17:02-0400\n"
+"PO-Revision-Date: 2001-08-26 23:09+0200\n"
+"Last-Translator: Jörgen Tegnér <jorgen.tegner@telia.com>\n"
+"Language-Team: Swedish <sv@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/closeout.c:74
+msgid "write error"
+msgstr ""
+
+#: lib/error.c:125
+#, fuzzy
+msgid "Unknown system error"
+msgstr "Okänd filsystemstyp."
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK).  A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#.
+#. If you don't know what to put here, please see
+#. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr ""
+
+#: lib/regcomp.c:131
+msgid "Success"
+msgstr ""
+
+#: lib/regcomp.c:134
+msgid "No match"
+msgstr ""
+
+#: lib/regcomp.c:137
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regcomp.c:140
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regcomp.c:143
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regcomp.c:146
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regcomp.c:149
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regcomp.c:152
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regcomp.c:155
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regcomp.c:158
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regcomp.c:161
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regcomp.c:164
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regcomp.c:170
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regcomp.c:173
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regcomp.c:176
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regcomp.c:179
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regcomp.c:680
+msgid "No previous regular expression"
+msgstr ""
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr ""
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:66
+msgid "(C)"
+msgstr ""
+
+#: lib/version-etc.c:68
+msgid ""
+"\n"
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:84
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:88
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:92
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:98
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:104
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:110
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:132
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+
+#: lib/xalloc-die.c:35
+msgid "memory exhausted"
+msgstr ""
+
+#: libparted/arch/beos.c:237
+msgid "Disk Image"
+msgstr ""
+
+#: libparted/arch/beos.c:338 libparted/arch/gnu.c:261
+#: libparted/arch/linux.c:1272
+#, c-format
+msgid "Error opening %s: %s"
+msgstr "Ett fel uppstod när %s öppnades: %s"
+
+#: libparted/arch/beos.c:349 libparted/arch/gnu.c:271
+#: libparted/arch/linux.c:1283
+#, c-format
+msgid "Unable to open %s read-write (%s).  %s has been opened read-only."
+msgstr ""
+"Kunde inte öppna %s för både läsning och skrivning (%s). %s öppnades i "
+"läsläge."
+
+#: libparted/arch/beos.c:411 libparted/arch/linux.c:1431
+#, c-format
+msgid "%s during seek for read on %s"
+msgstr "%s under positionering för att läsa på %s"
+
+#: libparted/arch/beos.c:444 libparted/arch/gnu.c:449 libparted/arch/gnu.c:548
+#: libparted/arch/gnu.c:676 libparted/arch/linux.c:1391
+#: libparted/arch/linux.c:1469
+#, c-format
+msgid "%s during read on %s"
+msgstr "%s under läsning på %s"
+
+#: libparted/arch/beos.c:480 libparted/arch/gnu.c:509
+#: libparted/arch/linux.c:1546
+#, c-format
+msgid "Can't write to %s, because it is opened read-only."
+msgstr "Kan inte skriva till %s eftersom den endast är öppnad i läsläge."
+
+#: libparted/arch/beos.c:496 libparted/arch/linux.c:1570
+#, c-format
+msgid "%s during seek for write on %s"
+msgstr "%s under positionering för att skriva på %s"
+
+#: libparted/arch/beos.c:533 libparted/arch/gnu.c:585 libparted/arch/gnu.c:630
+#: libparted/arch/gnu.c:707 libparted/arch/linux.c:1517
+#: libparted/arch/linux.c:1612 libparted/arch/linux.c:1684
+#, c-format
+msgid "%s during write on %s"
+msgstr "%s under skrivning på %s"
+
+#: debug/clearfat/clearfat.c:63 partprobe/partprobe.c:137
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:67
+#, c-format
+msgid ""
+"Usage: %s [OPTION]\n"
+"  or:  %s DEVICE MINOR\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:70
+msgid ""
+"Clear unused space on a FAT partition (a GNU Parted testing tool).\n"
+"\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:74
+msgid "      --help     display this help and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:75
+msgid "      --version  output version information and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:77 partprobe/partprobe.c:154
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:285
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:290
+#, fuzzy, c-format
+msgid "too many arguments"
+msgstr "För många dåliga sidor."
+
+#: partprobe/partprobe.c:141
+#, c-format
+msgid "Usage: %s [OPTION] [DEVICE]...\n"
+msgstr ""
+
+#: partprobe/partprobe.c:142
+msgid ""
+"Inform the OS of partition table changes.\n"
+"\n"
+"  -d, --no-update  don't update the kernel\n"
+"  -s, --summary    print a summary of contents\n"
+"  -h, --help       display this help and exit\n"
+"  -v, --version    output version information and exit\n"
+msgstr ""
+
+#: partprobe/partprobe.c:150
+msgid ""
+"\n"
+"With no DEVICE, probe all partitions.\n"
+msgstr ""
+
+#: libparted/arch/gnu.c:94
+#, c-format
+msgid "Unable to open %s."
+msgstr ""
+
+#: libparted/arch/gnu.c:114
+#, fuzzy
+msgid "Unable to probe store."
+msgstr "Kunde inte placera partitionen på jämn cylindergräns."
+
+#: libparted/arch/gnu.c:352
+#, fuzzy
+msgid ""
+"The partition table cannot be re-read.  This means you need to reboot before "
+"mounting any modified partitions.  You also need to reinstall your boot "
+"loader before you reboot (which may require mounting modified partitions).  "
+"It is impossible do both things!  So you'll need to boot off a rescue disk, "
+"and reinstall your boot loader from the rescue disk.  Read section 4 of the "
+"Parted User documentation for more information."
+msgstr ""
+"Kärnan kunde inte läsa om partitionstabellen, så du måste starta om datorn "
+"innan du kan montera någon ändrad partition. Du måste också installera om "
+"startprogrammet innan du startar om (vilket kan innebära montering av "
+"ändrade partitioner). Det är omöjligt att göra båda! Du måste starta från en "
+"räddningsskiva och installera om startprogrammet från den. Läs kapitel fyra "
+"i Parteds användarmanual för mer information."
+
+#: libparted/arch/gnu.c:369
+#, fuzzy, c-format
+msgid ""
+"The partition table on %s cannot be re-read (%s).  This means the Hurd knows "
+"nothing about any modifications you made.  You should reboot your computer "
+"before doing anything with %s."
+msgstr ""
+"Kärnan kunde inte läsa om partitionstabellen på %s (%s). Det betyder att "
+"Linux inte vet nånting om de ändringar du gjort. Du bör starta om datorn "
+"innan du gör nånting med %s."
+
+#: libparted/arch/gnu.c:380 parted/parted.c:2443
+msgid ""
+"You should reinstall your boot loader before rebooting.  Read section 4 of "
+"the Parted User documentation for more information."
+msgstr ""
+"Du bör installera om startprogrammet innan du startar om. Läs sektion fyra i "
+"Parteds användarmanual för mer information."
+
+#: libparted/arch/gnu.c:772
+#, c-format
+msgid "%s trying to sync %s to disk"
+msgstr ""
+
+#: libparted/arch/linux.c:408
+#, c-format
+msgid "Could not stat device %s - %s."
+msgstr "Kunde inte ta status på enheten %s - %s."
+
+#: libparted/arch/linux.c:523
+#, c-format
+msgid ""
+"Could not determine sector size for %s: %s.\n"
+"Using the default sector size (%lld)."
+msgstr ""
+
+#: libparted/arch/linux.c:539
+#, c-format
+msgid ""
+"Device %s has a logical sector size of %lld.  Not all parts of GNU Parted "
+"support this at the moment, and the working code is HIGHLY EXPERIMENTAL.\n"
+msgstr ""
+
+#: libparted/arch/linux.c:579
+#, fuzzy, c-format
+msgid "Unable to determine the size of %s (%s)."
+msgstr "Kunde inte avgöra storleken på %s (%s)"
+
+#: libparted/arch/linux.c:668
+#, c-format
+msgid "Could not get identity of device %s - %s"
+msgstr "Kunde inte hitta identitet för enhet %s - %s"
+
+#: libparted/arch/linux.c:677
+msgid "Generic IDE"
+msgstr ""
+
+#: libparted/arch/linux.c:698
+#, c-format
+msgid ""
+"Device %s has multiple (%d) logical sectors per physical sector.\n"
+"GNU Parted supports this EXPERIMENTALLY for some special disk label/file "
+"system combinations, e.g. GPT and ext2/3.\n"
+"Please consult the web site for up-to-date information."
+msgstr ""
+
+#: libparted/arch/linux.c:873
+#, c-format
+msgid "Error initialising SCSI device %s - %s"
+msgstr "Ett fel uppstod vid initiering av SCSI-enheten %s - %s"
+
+#: libparted/arch/linux.c:928
+#, c-format
+msgid ""
+"The device %s has zero length, and can't possibly store a file system or "
+"partition table.  Perhaps you selected the wrong device?"
+msgstr ""
+
+#: libparted/arch/linux.c:1032
+#, fuzzy, c-format
+msgid ""
+"Unable to determine geometry of file/device %s.  You should not use Parted "
+"unless you REALLY know what you're doing!"
+msgstr ""
+"Kunde inte avgöra geometrin på filen/enheten. Du bör inte använda Parted om "
+"du inte är RIKTIGT säker på vad du gör!"
+
+#: libparted/arch/linux.c:1110
+msgid "DAC960 RAID controller"
+msgstr "Styrkort för DAC960 RAID"
+
+#: libparted/arch/linux.c:1115
+msgid "Promise SX8 SATA Device"
+msgstr ""
+
+#: libparted/arch/linux.c:1120
+msgid "IBM S390 DASD drive"
+msgstr ""
+
+#: libparted/arch/linux.c:1125
+msgid "IBM iSeries Virtual DASD"
+msgstr ""
+
+#: libparted/arch/linux.c:1130
+msgid "Compaq Smart Array"
+msgstr "Compaq Smart Array"
+
+#: libparted/arch/linux.c:1135
+msgid "ATARAID Controller"
+msgstr "Styrkort för ATARAID"
+
+#: libparted/arch/linux.c:1140
+#, fuzzy
+msgid "I2O Controller"
+msgstr "Styrkort för ATARAID"
+
+#: libparted/arch/linux.c:1145
+msgid "User-Mode Linux UBD"
+msgstr ""
+
+#: libparted/arch/linux.c:1156
+msgid "Linux device-mapper"
+msgstr ""
+
+#: libparted/arch/linux.c:1162
+msgid "Unknown"
+msgstr "Okänd"
+
+#: libparted/arch/linux.c:1169
+msgid "ped_device_new()  Unsupported device type"
+msgstr "ped_device_new() Stöd saknas för den här enhetstypen"
+
+#: libparted/arch/linux.c:2083
+#, c-format
+msgid ""
+"Error informing the kernel about modifications to partition %s -- %s.  This "
+"means Linux won't know about any changes you made to %s until you reboot -- "
+"so you shouldn't mount it or use it in any way before rebooting."
+msgstr ""
+
+#: libparted/arch/linux.c:2262
+#, fuzzy, c-format
+msgid ""
+"parted was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made. "
+msgstr ""
+"Kärnan kunde inte läsa om partitionstabellen på %s (%s). Det betyder att "
+"Linux inte vet nånting om de ändringar du gjort. Du bör starta om datorn "
+"innan du gör nånting med %s."
+
+#: libparted/arch/linux.c:2368
+#, fuzzy, c-format
+msgid ""
+"The kernel was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made until you "
+"reboot.  You should reboot your computer before doing anything with %s."
+msgstr ""
+"Kärnan kunde inte läsa om partitionstabellen på %s (%s). Det betyder att "
+"Linux inte vet nånting om de ändringar du gjort. Du bör starta om datorn "
+"innan du gör nånting med %s."
+
+#: libparted/cs/geom.c:162
+msgid "Can't have the end before the start!"
+msgstr "Kan inte ha slutet före början!"
+
+#: libparted/cs/geom.c:169
+msgid "Can't have a partition outside the disk!"
+msgstr "Kan inte ha en partition utanför hårddisken!"
+
+#: libparted/cs/geom.c:366
+#, fuzzy, c-format
+msgid "Attempt to write sectors %ld-%ld outside of partition on %s."
+msgstr "Försökte skriva sektorerna %ld-%ld utanför partitionen på %s"
+
+#: libparted/cs/geom.c:406 libparted/fs/linux_swap/linux_swap.c:475
+msgid "checking for bad blocks"
+msgstr ""
+
+#: libparted/debug.c:102
+#, c-format
+msgid "Backtrace has %d calls on stack:\n"
+msgstr ""
+
+#: libparted/debug.c:114
+#, c-format
+msgid "Assertion (%s) at %s:%d in function %s() failed."
+msgstr ""
+
+#: libparted/disk.c:203
+#, c-format
+msgid "Unable to open %s - unrecognised disk label."
+msgstr "Kan inte öppna %s - okänd filallokeringstabell."
+
+#: libparted/disk.c:471
+#, fuzzy, c-format
+msgid ""
+"This libparted doesn't have write support for %s.  Perhaps it was compiled "
+"read-only."
+msgstr "Kan inte skriva till %s eftersom den endast är öppnad i läsläge."
+
+#: libparted/disk.c:598
+#, fuzzy, c-format
+msgid "Partition %d is %s, but the file system is %s."
+msgstr "Partitionen för liten för att hålla ett filsystem av typen FAT"
+
+#: libparted/disk.c:1075
+#, c-format
+msgid "%s disk labels do not support extended partitions."
+msgstr "Filallokeringstabeller för %s stödjer inte utökade partitioner."
+
+#: libparted/disk.c:1634
+#, c-format
+msgid "%s disk labels don't support logical or extended partitions."
+msgstr ""
+"Filallokeringstalbeller för %s stödjer inte logiska eller utökade "
+"partitioner."
+
+#: libparted/disk.c:1647
+#, fuzzy
+msgid "Too many primary partitions."
+msgstr "För många dåliga sidor."
+
+#: libparted/disk.c:1656
+#, c-format
+msgid ""
+"Can't add a logical partition to %s, because there is no extended partition."
+msgstr ""
+"Kan inte lägga till en logisk partition till %s, eftersom det saknas en "
+"utökad partition."
+
+#: libparted/disk.c:1680
+#, fuzzy, c-format
+msgid "Can't have more than one extended partition on %s."
+msgstr "Kan inte ha fler än en utökad partition på %s"
+
+#: libparted/disk.c:1690
+#, fuzzy
+msgid "Can't have logical partitions outside of the extended partition."
+msgstr ""
+"Kan inte låta en logisk partition växa ut utanför den utökade partitionen."
+
+#: libparted/disk.c:1715
+#, fuzzy, c-format
+msgid "Can't have a logical partition outside of the extended partition on %s."
+msgstr ""
+"Kan inte lägga till en logisk partition utanför en utökad partition på %s."
+
+#: libparted/disk.c:1725 libparted/disk.c:1779 libparted/disk.c:1945
+#, fuzzy
+msgid "Can't have overlapping partitions."
+msgstr "Kan inte kopiera till en överlappande partition."
+
+#: libparted/disk.c:1733
+#, fuzzy
+msgid "Can't have a primary partition inside an extended partition."
+msgstr "Kan inte lägga till en primär partition inuti en utökad."
+
+#: libparted/disk.c:2140
+msgid "metadata"
+msgstr "metadata"
+
+#: libparted/disk.c:2142
+msgid "free"
+msgstr "ledigt"
+
+#: libparted/disk.c:2144 parted/ui.c:1169 parted/ui.c:1197
+msgid "extended"
+msgstr "utökat"
+
+#: libparted/disk.c:2146 parted/ui.c:1173 parted/ui.c:1201
+msgid "logical"
+msgstr "logiskt"
+
+#: libparted/disk.c:2148 parted/ui.c:1165 parted/ui.c:1193
+msgid "primary"
+msgstr "primär"
+
+#: libparted/disk.c:2164
+msgid "boot"
+msgstr "start"
+
+#: libparted/disk.c:2166
+msgid "root"
+msgstr "rot"
+
+#: libparted/disk.c:2168
+msgid "swap"
+msgstr "växlingsutrymme"
+
+#: libparted/disk.c:2170
+msgid "hidden"
+msgstr "dold"
+
+#: libparted/disk.c:2172
+msgid "raid"
+msgstr "raid"
+
+#: libparted/disk.c:2174
+msgid "lvm"
+msgstr "lvm"
+
+#: libparted/disk.c:2176
+msgid "lba"
+msgstr "lba"
+
+#: libparted/disk.c:2178
+msgid "hp-service"
+msgstr ""
+
+#: libparted/disk.c:2180
+msgid "palo"
+msgstr ""
+
+#: libparted/disk.c:2182
+msgid "prep"
+msgstr ""
+
+#: libparted/disk.c:2184
+msgid "msftres"
+msgstr ""
+
+#: libparted/disk.c:2190
+#, fuzzy, c-format
+msgid "Unknown partition flag, %d."
+msgstr "Okänd partitionsflagga, %d."
+
+#: libparted/exception.c:78
+msgid "Information"
+msgstr "Information"
+
+#: libparted/exception.c:79
+msgid "Warning"
+msgstr "Varning"
+
+#: libparted/exception.c:80
+msgid "Error"
+msgstr "Fel"
+
+#: libparted/exception.c:81
+msgid "Fatal"
+msgstr "Ödesdiger"
+
+#: libparted/exception.c:82
+msgid "Bug"
+msgstr "Programfel"
+
+#: libparted/exception.c:83
+msgid "No Implementation"
+msgstr "Inte implementerat"
+
+#: libparted/exception.c:87
+msgid "Fix"
+msgstr "Reparera"
+
+#: libparted/exception.c:88
+msgid "Yes"
+msgstr "Ja"
+
+#: libparted/exception.c:89
+msgid "No"
+msgstr "Nej"
+
+#: libparted/exception.c:90
+msgid "OK"
+msgstr "OK"
+
+#: libparted/exception.c:91
+msgid "Retry"
+msgstr "Försök igen"
+
+#: libparted/exception.c:92
+msgid "Ignore"
+msgstr "Ignorera"
+
+#: libparted/exception.c:93
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: libparted/exception.c:133
+#, fuzzy, c-format
+msgid ""
+"A bug has been detected in GNU Parted.  Refer to the web site of parted "
+"http://www.gnu.org/software/parted/parted.html for more informations of what "
+"could be useful for bug submitting!  Please email a bug report to bug-"
+"parted@gnu.org containing at least the version (%s) and the following "
+"message:  "
+msgstr ""
+"Skicka en felrapport med e-post till bug-parted@gnu.org, där du tar med "
+"versionsnumret (%s) och följande meddelande:"
+
+#: libparted/filesys.c:384
+msgid "Could not detect file system."
+msgstr "Kunde inte hitta något filsystem."
+
+#: libparted/filesys.c:395
+msgid "The file system is bigger than its volume!"
+msgstr ""
+
+#: libparted/filesys.c:403
+#, c-format
+msgid "Support for opening %s file systems is not implemented yet."
+msgstr "Stöd för att öppna filsystem av typ %s är inte implementerat än."
+
+#: libparted/filesys.c:445
+#, c-format
+msgid "Support for creating %s file systems is not implemented yet."
+msgstr "Stöd för att skapa filsystem av typ %s är inte implementerat än."
+
+#: libparted/filesys.c:505
+#, c-format
+msgid "Support for checking %s file systems is not implemented yet."
+msgstr "Stöd för att kontrollera filsystem av typ %s är inte implementerat än."
+
+#: libparted/filesys.c:571
+msgid "raw block copying"
+msgstr ""
+
+#: libparted/filesys.c:582
+#, fuzzy
+msgid "growing file system"
+msgstr "Okänd filsystemstyp."
+
+#: libparted/filesys.c:622
+msgid "Can't copy onto an overlapping partition."
+msgstr "Kan inte kopiera till en överlappande partition."
+
+#: libparted/filesys.c:644
+#, fuzzy, c-format
+msgid ""
+"Direct support for copying file systems is not yet implemented for %s.  "
+"However, support for resizing is implemented.  Therefore, the file system "
+"can be copied if the new partition is at least as big as the old one.  So, "
+"either shrink the partition you are trying to copy, or copy to a bigger "
+"partition."
+msgstr ""
+"Direkt stöd för att kopiera filsystem av typen %s är inte implementerat än. "
+"Stöd för att ändra storlek finns dock. Därför kan filsystemet kopieras om "
+"den nya partitionen är minst lika stor som den gamla. Så antingen får du "
+"minska partitionen som du försöker kopiera, eller så kopierar du till en "
+"större partition."
+
+#: libparted/filesys.c:658
+#, c-format
+msgid "Support for copying %s file systems is not implemented yet."
+msgstr "Stöd för att kopiera filsystem av typ %s är inte implementerat än."
+
+#: libparted/filesys.c:696
+#, c-format
+msgid "Support for resizing %s file systems is not implemented yet."
+msgstr ""
+"Stöd för att ändra storlek på filsystem av typ %s är inte implementerat än."
+
+#: libparted/fs/reiserfs/reiserfs.c:315
+msgid "creating"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:402
+#, fuzzy
+msgid "The file system is in an invalid state.  Perhaps it is mounted?"
+msgstr "Filsystemet har en ogiltig signatur för filsystem av typen FAT."
+
+#: libparted/fs/reiserfs/reiserfs.c:410
+msgid "The file system is in old (unresizeable) format."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:416
+msgid "Invalid free blocks count.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:431
+#, fuzzy
+msgid "checking"
+msgstr "testa"
+
+#: libparted/fs/reiserfs/reiserfs.c:437
+msgid "Reiserfs tree seems to be corrupted.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:449
+#, fuzzy
+msgid ""
+"The reiserfs file system passed a basic check.  For a more comprehensive "
+"check, run reiserfsck --check."
+msgstr ""
+"Filsystemet (e2fs) klarade ett grundläggande test. För ett mer genomgående "
+"test, använd programmet e2fsck."
+
+#: libparted/fs/reiserfs/reiserfs.c:474
+#, fuzzy
+msgid "Sorry, can't move the start of reiserfs partitions yet."
+msgstr "Kan inte flytta en ext2-partitions början ännu!"
+
+#: libparted/fs/reiserfs/reiserfs.c:490
+msgid "Couldn't reopen device abstraction layer for read/write."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:508 libparted/fs/ext2/ext2_resize.c:552
+#: libparted/fs/hfs/hfs.c:250 libparted/fs/hfs/hfs.c:629
+#, fuzzy
+msgid "shrinking"
+msgstr "Varning"
+
+#: libparted/fs/reiserfs/reiserfs.c:520
+#, fuzzy
+msgid "expanding"
+msgstr "Varning"
+
+#: libparted/fs/reiserfs/reiserfs.c:592
+msgid "Couldn't create reiserfs device abstraction handler."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:606
+#, c-format
+msgid "Device is too small for %lu blocks."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:615
+msgid "copying"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:682
+#, c-format
+msgid "Couldn't resolve symbol %s.  Error: %s."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:704
+msgid "GNU Parted found an invalid libreiserfs library."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:715
+#, c-format
+msgid ""
+"GNU Parted has detected libreiserfs interface version mismatch.  Found %d-%"
+"d, required %d. ReiserFS support will be disabled."
+msgstr ""
+
+#: libparted/labels/aix.c:137
+#, fuzzy
+msgid "Support for reading AIX disk labels is is not implemented yet."
+msgstr "Stöd för att skapa filsystem av typ %s är inte implementerat än."
+
+#: libparted/labels/aix.c:148
+#, fuzzy
+msgid "Support for writing AIX disk labels is is not implemented yet."
+msgstr "Stöd för att skapa filsystem av typ %s är inte implementerat än."
+
+#: libparted/labels/aix.c:161
+#, fuzzy
+msgid ""
+"Support for adding partitions to AIX disk labels is not implemented yet."
+msgstr "Stöd för att skapa filsystem av typ %s är inte implementerat än."
+
+#: libparted/labels/aix.c:171
+#, fuzzy
+msgid ""
+"Support for duplicating partitions in AIX disk labels is not implemented yet."
+msgstr "Stöd för att skapa filsystem av typ %s är inte implementerat än."
+
+#: libparted/labels/aix.c:189
+#, fuzzy
+msgid ""
+"Support for setting system type of partitions in AIX disk labels is not "
+"implemented yet."
+msgstr "Stöd för att skapa filsystem av typ %s är inte implementerat än."
+
+#: libparted/labels/aix.c:199
+#, fuzzy
+msgid "Support for setting flags in AIX disk labels is not implemented yet."
+msgstr "Stöd för att skapa filsystem av typ %s är inte implementerat än."
+
+#: libparted/labels/bsd.c:501 libparted/labels/dasd.c:755
+#: libparted/labels/dos.c:1974 libparted/labels/dvh.c:770
+#: libparted/labels/gpt.c:1448 libparted/labels/loop.c:248
+#: libparted/labels/mac.c:1408 libparted/labels/pc98.c:759
+#: libparted/labels/rdb.c:1041 libparted/labels/sun.c:705
+#, fuzzy
+msgid "Unable to satisfy all constraints on the partition."
+msgstr "Kunde inte placera partitionen på jämn cylindergräns."
+
+#: libparted/labels/bsd.c:526
+#, fuzzy
+msgid "Unable to allocate a bsd disklabel slot."
+msgstr "Kan inte öppna %s - okänd filallokeringstabell."
+
+#: libparted/labels/dasd.c:166
+#, fuzzy
+msgid "Unable to determine the block size of this dasd"
+msgstr "Kunde inte avgöra storleken på %s (%s)"
+
+#: libparted/labels/dasd.c:781
+#, fuzzy
+msgid "Unable to allocate a dasd disklabel slot"
+msgstr "Kan inte öppna %s - okänd filallokeringstabell."
+
+#: libparted/labels/dos.c:827
+#, fuzzy, c-format
+msgid "Invalid partition table on %s -- wrong signature %x."
+msgstr "Ogiltig partitionstabell på %s - felaktig signatur %x"
+
+#: libparted/labels/dos.c:855
+#, c-format
+msgid "Invalid partition table - recursive partition on %s."
+msgstr "Ogiltig partitionstabell - rekursiv partition på %s."
+
+#: libparted/labels/dos.c:1318
+#, fuzzy
+msgid "Extended partitions cannot be hidden on msdos disk labels."
+msgstr "Ext2-partitioner kan inte gömmas i filsystem av typen msdos."
+
+#: libparted/labels/dos.c:1958
+msgid "Parted can't resize partitions managed by Windows Dynamic Disk."
+msgstr ""
+
+#: libparted/labels/dvh.c:190
+#, fuzzy, c-format
+msgid "%s has no extended partition (volume header partition)."
+msgstr ""
+"Kan inte ändra storlek på en utökad partition för att exkludera en logisk "
+"partition."
+
+#: libparted/labels/dvh.c:313
+msgid "Checksum is wrong, indicating the partition table is corrupt."
+msgstr ""
+
+#: libparted/labels/dvh.c:616
+#, fuzzy
+msgid "Only primary partitions can be root partitions."
+msgstr "Kan inte lägga till en primär partition inuti en utökad."
+
+#: libparted/labels/dvh.c:630
+#, fuzzy
+msgid "Only primary partitions can be swap partitions."
+msgstr "Kan inte lägga till en primär partition inuti en utökad."
+
+#: libparted/labels/dvh.c:644
+msgid "Only logical partitions can be a boot file."
+msgstr ""
+
+#: libparted/labels/dvh.c:721
+msgid "Only logical partitions (boot files) have a name."
+msgstr ""
+
+#: libparted/labels/dvh.c:812
+#, fuzzy
+msgid "Too many primary partitions"
+msgstr "För många dåliga sidor."
+
+#: libparted/labels/fdasd.c:103
+#, c-format
+msgid ""
+"%s open error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:107
+#, c-format
+msgid ""
+"%s seek error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:110
+#, c-format
+msgid ""
+"%s read error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:113
+#, fuzzy, c-format
+msgid ""
+"%s write error\n"
+"%s\n"
+msgstr "%s under skrivning på %s"
+
+#: libparted/labels/fdasd.c:116
+#, c-format
+msgid ""
+"%s IOCTL error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:119
+#, c-format
+msgid ""
+"%s API version mismatch\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:122
+#, c-format
+msgid ""
+"%s Unsupported disk type\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:126
+#, c-format
+msgid ""
+"%s Unsupported disk format\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:130
+#, fuzzy, c-format
+msgid ""
+"%s Disk in use\n"
+"%s\n"
+msgstr "%s  %s  %s"
+
+#: libparted/labels/fdasd.c:133
+#, c-format
+msgid ""
+"%s Config file syntax error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:137
+#, c-format
+msgid ""
+"%s Volume label is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:141
+#, c-format
+msgid ""
+"%s a data set name is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:145
+#, c-format
+msgid ""
+"%s space allocation\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:149
+#, c-format
+msgid ""
+"%s device verification failed\n"
+"The specified device is not a valid DASD device\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:154
+#, c-format
+msgid ""
+"%s Fatal error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/gpt.c:454
+#, c-format
+msgid ""
+"%s contains GPT signatures, indicating that it has a GPT table.  However, it "
+"does not have a valid fake msdos partition table, as it should.  Perhaps it "
+"was corrupted -- possibly by a program that doesn't understand GPT partition "
+"tables.  Or perhaps you deleted the GPT table, and are now using an msdos "
+"partition table.  Is this a GPT partition table?"
+msgstr ""
+
+#: libparted/labels/gpt.c:648
+#, c-format
+msgid ""
+"The format of the GPT partition table is version %x, which is newer than "
+"what Parted can recognise.  Please tell us!  bug-parted@gnu.org"
+msgstr ""
+
+#: libparted/labels/gpt.c:698
+#, c-format
+msgid ""
+"Not all of the space available to %s appears to be used, you can fix the GPT "
+"to use all of the space (an extra %llu blocks) or continue with the current "
+"setting? "
+msgstr ""
+
+#: libparted/labels/gpt.c:827
+msgid ""
+"The backup GPT table is not at the end of the disk, as it should be.  This "
+"might mean that another operating system believes the disk is smaller.  Fix, "
+"by moving the backup to the end (and removing the old backup)?"
+msgstr ""
+
+#: libparted/labels/gpt.c:862
+msgid ""
+"The primary GPT table is corrupt, but the backup appears OK, so that will be "
+"used."
+msgstr ""
+
+#: libparted/labels/gpt.c:870
+msgid ""
+"Both the primary and backup GPT tables are corrupt.  Try making a fresh "
+"table, and using Parted's rescue feature to recover partitions."
+msgstr ""
+
+#: libparted/labels/mac.c:181
+#, c-format
+msgid "Invalid signature %x for Mac disk labels."
+msgstr "Ogiltig signatur %x för en filallokeringstabell för Mac."
+
+#: libparted/labels/mac.c:226
+msgid "Partition map has no partition map entry!"
+msgstr "Partitionstabellen saknar uppgift om sig själv!"
+
+#: libparted/labels/mac.c:273
+#, c-format
+msgid "%s is too small for a Mac disk label!"
+msgstr "%s är för liten för en filallokeringstabell för Mac!"
+
+#: libparted/labels/mac.c:532
+#, c-format
+msgid "Partition %d has an invalid signature %x."
+msgstr "Partition %d har en ogiltig signatur %x."
+
+#: libparted/labels/mac.c:550
+#, c-format
+msgid "Partition %d has an invalid length of 0 bytes!"
+msgstr "Partition %d har en ogiltig längd, 0 byte!"
+
+#: libparted/labels/mac.c:580
+#, fuzzy
+msgid "The data region doesn't start at the start of the partition."
+msgstr "Dataområdet börjar inte vid partitionens början"
+
+#: libparted/labels/mac.c:597
+#, fuzzy
+msgid "The boot region doesn't start at the start of the partition."
+msgstr "Startområdet börjar inte vid partitionens början"
+
+#: libparted/labels/mac.c:611
+msgid "The partition's boot region doesn't occupy the entire partition."
+msgstr "Partitionens startområde tar inte upp hela partitionens utrymme."
+
+#: libparted/labels/mac.c:622
+msgid "The partition's data region doesn't occupy the entire partition."
+msgstr "Partitionens dataområde tar inte upp hela partitionens utrymme."
+
+#: libparted/labels/mac.c:675
+#, c-format
+msgid ""
+"Weird block size on device descriptor: %d bytes is not divisible by 512."
+msgstr ""
+"Konstig blockstorlek på enhetens handtag: %d byte är inte jämnt delbart med "
+"512."
+
+#: libparted/labels/mac.c:688
+#, c-format
+msgid ""
+"The driver descriptor says the physical block size is %d bytes, but Linux "
+"says it is %d bytes."
+msgstr ""
+"Enhetens handtag påstår att den fysiska blockstorleken är %d byte, men Linux "
+"påstår att den är %d byte."
+
+#: libparted/labels/mac.c:736
+msgid "No valid partition map found."
+msgstr "Ingen giltig partitionstabell kunde hittas."
+
+#: libparted/labels/mac.c:795
+#, fuzzy, c-format
+msgid ""
+"Conflicting partition map entry sizes!  Entry 1 says it is %d, but entry %d "
+"says it is %d!"
+msgstr ""
+"Motsägelsefulla storleksdata i partitionstabellen! Post ett påstår sig vara %"
+"d medan post %d påstår sig vara %d!"
+
+#: libparted/labels/mac.c:822
+#, fuzzy
+msgid "Weird!  There are 2 partitions map entries!"
+msgstr "Konstigt - två poster i partitionstabellen!"
+
+#: libparted/labels/mac.c:1347
+msgid ""
+"Changing the name of a root or swap partition will prevent Linux from "
+"recognising it as such."
+msgstr ""
+"Att ändra namnet på en rot- eller växlingspartition gör att Linux inte kan "
+"känna igen dem."
+
+#: libparted/labels/mac.c:1443
+#, fuzzy
+msgid "Can't add another partition -- the partition map is too small!"
+msgstr ""
+"Kan inte lägga till en till primär partition - partitionstabellen är för "
+"liten."
+
+#: libparted/labels/pc98.c:354
+#, fuzzy, c-format
+msgid "Invalid partition table on %s."
+msgstr "Ogiltig partitionstabell på %s"
+
+#: libparted/labels/pc98.c:406 libparted/labels/pc98.c:484
+#, fuzzy, c-format
+msgid ""
+"Partition %d isn't aligned to cylinder boundaries.  This is still "
+"unsupported."
+msgstr ""
+"Partitionen %d ligger inte på jämna cylindergränser. Måste lägga till stöd "
+"för detta."
+
+#: libparted/labels/pc98.c:791
+msgid "Can't add another partition."
+msgstr "Kan inte lägga till ännu en partition."
+
+#: libparted/labels/rdb.c:162
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:497
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen."
+msgstr ""
+
+#: libparted/labels/rdb.c:581
+#, c-format
+msgid "%s : Loop detected at block %d."
+msgstr ""
+
+#: libparted/labels/rdb.c:600
+#, c-format
+msgid "%s : The %s list seems bad at block %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:689
+#, c-format
+msgid "%s : Failed to list bad blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:697
+#, fuzzy, c-format
+msgid "%s : Failed to list partition blocks."
+msgstr "Kunde inte placera partitionen på jämn cylindergräns."
+
+#: libparted/labels/rdb.c:705
+#, c-format
+msgid "%s : Failed to list file system blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:713
+#, c-format
+msgid "%s : Failed to list boot blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:740
+#, fuzzy, c-format
+msgid "Failed to write partition block at %d."
+msgstr "Kan inte avgöra om partitionen är monterad."
+
+#: libparted/labels/rdb.c:1069
+#, fuzzy
+msgid "Unable to allocate a partition number."
+msgstr "Kunde inte placera partitionen på jämn cylindergräns."
+
+#: libparted/labels/sun.c:145
+msgid "Corrupted Sun disk label detected."
+msgstr ""
+
+#: libparted/labels/sun.c:266
+#, c-format
+msgid ""
+"The disk CHS geometry (%d,%d,%d) reported by the operating system does not "
+"match the geometry stored on the disk label (%d,%d,%d)."
+msgstr ""
+
+#: libparted/labels/sun.c:288
+#, c-format
+msgid "The disk label describes a disk bigger than %s."
+msgstr ""
+
+#: libparted/labels/sun.c:442
+#, c-format
+msgid "The disk has %d cylinders, which is greater than the maximum of 65536."
+msgstr ""
+
+#: libparted/labels/sun.c:737
+msgid ""
+"The Whole Disk partition is the only available one left.  Generally, it is "
+"not a good idea to overwrite this partition with a real one.  Solaris may "
+"not be able to boot without it, and SILO (the sparc boot loader) appreciates "
+"it as well."
+msgstr ""
+
+#: libparted/labels/sun.c:752
+msgid "Sun disk label is full."
+msgstr ""
+
+#: libparted/labels/vtoc.c:163
+#, c-format
+msgid ""
+"%s opening device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:167
+#, c-format
+msgid ""
+"%s seeking device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:171
+#, c-format
+msgid ""
+"%s writing to device '%s' failed,\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:175
+#, c-format
+msgid ""
+"%s reading from device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:179
+#, c-format
+msgid "Fatal error\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:418
+msgid "Could not read VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:424
+msgid "Could not read VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:431
+msgid "Could not read VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:438
+msgid "Could not read VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:445
+msgid "Could not read VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:462
+msgid "Could not write VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:468
+msgid "Could not write VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:475
+msgid "Could not write VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:482
+msgid "Could not write VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:489
+msgid "Could not write VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/libparted.c:296 libparted/libparted.c:316
+msgid "Out of memory."
+msgstr "Slut på minne."
+
+#: libparted/unit.c:139
+msgid "Cannot get unit size for special unit 'COMPACT'."
+msgstr ""
+
+#: libparted/unit.c:386
+#, c-format
+msgid "\"%s\" has invalid syntax for locations."
+msgstr ""
+
+#: libparted/unit.c:394
+#, c-format
+msgid "The maximum head value is %d."
+msgstr ""
+
+#: libparted/unit.c:401
+#, c-format
+msgid "The maximum sector value is %d."
+msgstr ""
+
+#: libparted/unit.c:413 libparted/unit.c:545
+#, fuzzy, c-format
+msgid "The location %s is outside of the device %s."
+msgstr "Kan inte skapa en partition utanför enheten."
+
+#: libparted/unit.c:527
+msgid "Invalid number."
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:63 libparted/fs/amiga/apfs.c:56
+#: libparted/fs/amiga/asfs.c:70
+#, fuzzy, c-format
+msgid "%s : Failed to allocate partition block\n"
+msgstr "Kunde inte placera partitionen på jämn cylindergräns."
+
+#: libparted/fs/amiga/affs.c:78 libparted/fs/amiga/apfs.c:70
+#: libparted/fs/amiga/asfs.c:86
+#, fuzzy, c-format
+msgid "%s : Failed to allocate block\n"
+msgstr "Kunde inte placera partitionen på jämn cylindergräns."
+
+#: libparted/fs/amiga/affs.c:83 libparted/fs/amiga/apfs.c:75
+#, c-format
+msgid "%s : Couldn't read boot block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:99 libparted/fs/amiga/apfs.c:86
+#: libparted/fs/amiga/asfs.c:92 libparted/fs/amiga/asfs.c:106
+#, c-format
+msgid "%s : Couldn't read root block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:72
+#, c-format
+msgid "%s : Failed to allocate id list element\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:189
+#, c-format
+msgid "%s : Couldn't read block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:202
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:212
+#, fuzzy, c-format
+msgid "%s : Couldn't write block %d\n"
+msgstr "%s under skrivning på %s"
+
+#: libparted/fs/amiga/amiga.c:278
+#, fuzzy, c-format
+msgid "%s : Failed to allocate disk_specific rdb block\n"
+msgstr "Kunde inte placera partitionen på jämn cylindergräns."
+
+#: libparted/fs/amiga/amiga.c:289
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:318
+#, fuzzy, c-format
+msgid "%s : Failed to read partition block %llu\n"
+msgstr "Kunde inte placera partitionen på jämn cylindergräns."
+
+#: libparted/fs/ext2/ext2.c:87 libparted/fs/ext2/ext2.c:112
+msgid "Inconsistent group descriptors!"
+msgstr "Inkonsistenta grupphandtag!"
+
+#: libparted/fs/ext2/ext2.c:91 libparted/fs/ext2/ext2.c:116
+#, fuzzy
+msgid "File system full!"
+msgstr "Filsystemet är fullt!"
+
+#: libparted/fs/ext2/ext2.c:686
+#, fuzzy
+msgid "Invalid superblock.  Are you sure this is an ext2 file system?"
+msgstr "Ogiltigt superblock. Är du säker på att det här är ett ext2-filsystem?"
+
+#: libparted/fs/ext2/ext2.c:700 libparted/fs/ext2/ext2_resize.c:658
+#, fuzzy
+msgid "File system has errors!  You should run e2fsck."
+msgstr "Filsystemet innehåller fel! Kör e2fsck först."
+
+#: libparted/fs/ext2/ext2.c:711
+#, fuzzy
+msgid ""
+"File system was not cleanly unmounted!  You should run e2fsck.  Modifying an "
+"unclean file system could cause severe corruption."
+msgstr "Filsystemet har inte avmonterats på rätt sätt! Använd e2fsck."
+
+#: libparted/fs/ext2/ext2.c:731
+#, fuzzy
+msgid "File system has an incompatible feature enabled."
+msgstr "Filsystemet har en inkompatibel finess aktiverad"
+
+#: libparted/fs/ext2/ext2.c:742
+msgid "Error allocating buffer cache."
+msgstr "Kunde inte reservera buffercache"
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:114
+#, fuzzy
+msgid ""
+"Found an inode with a incorrect link count.  Better go run e2fsck first!"
+msgstr "Hittade en inode med felaktiga antal länkar. Kör e2fsck först."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:487
+msgid "Not enough free inodes!"
+msgstr "Det finns inte tillräckligt många fria inoder!"
+
+#: libparted/fs/ext2/ext2_resize.c:223
+#, fuzzy
+msgid "File system is too full to remove a group!"
+msgstr "Filsystemet är för upptaget för att ta bort en grupp!"
+
+#: libparted/fs/ext2/ext2_resize.c:232
+#, fuzzy
+msgid "File system has too many allocated inodes to remove a group!"
+msgstr "Filsystemet har för många reserverade inoder för att ta bort en grupp!"
+
+#: libparted/fs/ext2/ext2_resize.c:491
+msgid "adding groups"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:528
+#, fuzzy, c-format
+msgid "Your file system is too full to resize it to %i blocks.  Sorry."
+msgstr "Filsystemet är för upptaget för att ändra dess storlek till %i block."
+
+#: libparted/fs/ext2/ext2_resize.c:538
+#, fuzzy, c-format
+msgid ""
+"Your file system has too many occupied inodes to resize it to %i blocks.  "
+"Sorry."
+msgstr ""
+"Filsystemet har för många upptagna inoder för att ändra dess storlek till %i "
+"block."
+
+#: libparted/fs/ext2/ext2_resize.c:666
+#, fuzzy
+msgid "File system was not cleanly unmounted!  You should run e2fsck."
+msgstr "Filsystemet har inte avmonterats på rätt sätt! Använd e2fsck."
+
+#: libparted/fs/ext2/ext2_resize.c:675
+msgid ""
+"The file system has the 'dir_index' feature enabled.  Parted can only resize "
+"the file system if it disables this feature.  You can enable it later by "
+"running 'tune2fs -O dir_index DEVICE' and then 'e2fsck -fD DEVICE'."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:691
+msgid ""
+"A resize operation on this file system will use EXPERIMENTAL code\n"
+"that MAY CORRUPT it (although no one has reported any such damage yet).\n"
+"You should at least backup your data first, and run 'e2fsck -f' afterwards."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_block_relocator.c:198
+#, fuzzy
+msgid "Cross-linked blocks found!  Better go run e2fsck first!"
+msgstr "Korslänkade block hittades! Kör e2fsck först!"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:537
+#, fuzzy, c-format
+msgid "Block %i has no reference?  Weird."
+msgstr "Block %i har ingen referens? Konstigt"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:737
+#, fuzzy, c-format
+msgid "Block %i shouldn't have been marked (%d, %d)!"
+msgstr "Block %i borde ha markerats!"
+
+#: libparted/fs/ext2/interface.c:186
+#, fuzzy
+msgid ""
+"The ext2 file system passed a basic check.  For a more comprehensive check, "
+"use the e2fsck program."
+msgstr ""
+"Filsystemet (e2fs) klarade ett grundläggande test. För ett mer genomgående "
+"test, använd programmet e2fsck."
+
+#: libparted/fs/ext2/interface.c:203
+msgid "Sorry, can't move the start of ext2 partitions yet!"
+msgstr "Kan inte flytta en ext2-partitions början ännu!"
+
+#: libparted/fs/ext2/ext2_buffer.c:82
+msgid "Couldn't flush buffer cache!"
+msgstr "Kunde inte rensa buffercachen!"
+
+#: libparted/fs/ext2/ext2_mkfs.c:162
+msgid "writing per-group metadata"
+msgstr ""
+
+#: libparted/fs/ext2/ext2_mkfs.c:564
+msgid "File system too small for ext2."
+msgstr ""
+
+#: libparted/fs/fat/calc.c:135
+#, fuzzy, c-format
+msgid ""
+"You need %s of free disk space to shrink this partition to this size.  "
+"Currently, only %s is free."
+msgstr ""
+"Du behöver %dM ledigt utrymme för att minska storleken på den här "
+"partitionen till angiven storlek. (det finns endast %dM ledigt)"
+
+#: libparted/fs/fat/context.c:56
+#, c-format
+msgid ""
+"Cluster start delta = %d, which is not a multiple of the cluster size %d."
+msgstr ""
+"Klustrets startdifferens är %d, vilket inte är en multipel av "
+"klusterstorleken %d"
+
+#: libparted/fs/fat/fat.c:308
+#, fuzzy, c-format
+msgid "Partition too big/small for a %s file system."
+msgstr "Partitionen för liten för att hålla ett filsystem av typen FAT"
+
+#: libparted/fs/fat/fat.c:474
+msgid ""
+"The FATs don't match.  If you don't know what this means, then select "
+"cancel, run scandisk on the file system, and then come back."
+msgstr ""
+"Filallokeringstabellerna stämmer inte överens. Om du inte vet vad detta "
+"betyder, välj avbryt, kör scandisk på filsystemet och försök igen."
+
+#: libparted/fs/fat/fat.c:514
+msgid "There are no possible configurations for this FAT type."
+msgstr "Det finns inga möjliga kombinationer för den här sortens FAT."
+
+#: libparted/fs/fat/fat.c:526
+#, c-format
+msgid ""
+"File system doesn't have expected sizes for Windows to like it.  Cluster "
+"size is %dk (%dk expected); number of clusters is %d (%d expected); size of "
+"FATs is %d sectors (%d expected)."
+msgstr ""
+"Filsystemet har inte en storlek som Windows gillar. Klusterstorleken är %dk "
+"(%dk förväntas); antalet kluster är %d (%d förväntas); storleken på FAT:arna "
+"är %d sektorer (%d förväntas)."
+
+#: libparted/fs/fat/fat.c:549
+#, c-format
+msgid ""
+"File system is reporting the free space as %d clusters, not %d clusters."
+msgstr "Filsystemet menar att det fria utrymmet är %d kluster, inte %d."
+
+#: libparted/fs/fat/fat.c:874
+#, fuzzy
+msgid ""
+"GNU Parted was miscompiled: the FAT boot sector should be 512 bytes.  FAT "
+"support will be disabled."
+msgstr ""
+"GNU Parted kompilerades felaktigt: FAT's startsektor skall vara 512 byte. "
+"Stödet för FAT kommer att blockeras."
+
+#: libparted/fs/fat/resize.c:159
+#, fuzzy
+msgid ""
+"There's not enough room in the root directory for all of the files.  Either "
+"cancel, or ignore to lose the files."
+msgstr ""
+"Det finns inte tillräckligt med utrymme för alla filer i rotkatalogen. Välj "
+"antingen att avbryta, eller ignorera och förlora filerna."
+
+#: libparted/fs/fat/resize.c:300
+msgid "Error writing to the root directory."
+msgstr "Ett fel uppstod vid skrivning till rotkatalogen."
+
+#: libparted/fs/fat/resize.c:489
+#, fuzzy
+msgid "If you leave your file system as FAT16, then you will have no problems."
+msgstr ""
+"Om du låter filsystemet fortsätta vara FAT16 kommer du inte att få några "
+"bekymmer."
+
+#: libparted/fs/fat/resize.c:492
+msgid ""
+"If you convert to FAT16, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual)."
+msgstr ""
+"Om du konverterar till FAT16 och MS Windows är installerad på den här "
+"partitionen så måste du installera om MS Windows startprogram. Om du gör det "
+"bör du studera Parteds manual (eller din distributions manual)."
+
+#: libparted/fs/fat/resize.c:500
+msgid ""
+"If you leave your file system as FAT32, then you will not introduce any new "
+"problems."
+msgstr ""
+"Om du låter filsystemet fortsätta vara FAT32 kommer du inte att introducera "
+"några nya problem."
+
+#: libparted/fs/fat/resize.c:504
+msgid ""
+"If you convert to FAT32, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual).  Also, "
+"converting to FAT32 will make the file system unreadable by MS DOS, MS "
+"Windows 95a, and MS Windows NT."
+msgstr ""
+"Om du konverterar till FAT32 och MS Windows är installerad på den här "
+"partitionen måste du installera om MS Windows startprogram. Om du gör det "
+"bör du studera Parteds manual (eller din distributions manual). Märk att "
+"genom att konvertera filsystemet till FAT32 kommer det inte att kunna läsas "
+"av MS DOS, MS Windows 95a och MS Windows NT."
+
+#: libparted/fs/fat/resize.c:518
+#, c-format
+msgid "%s  %s  %s"
+msgstr "%s  %s  %s"
+
+#: libparted/fs/fat/resize.c:519
+msgid "Would you like to use FAT32?"
+msgstr "Vill du använda FAT32?"
+
+#: libparted/fs/fat/resize.c:550 libparted/fs/fat/resize.c:566
+#, c-format
+msgid "%s  %s"
+msgstr "%s  %s"
+
+#: libparted/fs/fat/resize.c:551
+msgid ""
+"The file system can only be resized to this size by converting to FAT16."
+msgstr ""
+"Filsystemet kan bara ändras till den här storleken genom att konvertera till "
+"FAT16."
+
+#: libparted/fs/fat/resize.c:567
+msgid ""
+"The file system can only be resized to this size by converting to FAT32."
+msgstr ""
+"Filsystemet kan bara ändras till den här storleken genom att konvertera till "
+"FAT32."
+
+#: libparted/fs/fat/resize.c:580
+#, fuzzy
+msgid ""
+"GNU Parted cannot resize this partition to this size.  We're working on it!"
+msgstr ""
+"GNU Parted kan inte ändra partitionen till den här storleken. Vi arbetar på "
+"en lösning!"
+
+#: libparted/fs/fat/bootsector.c:49 libparted/fs/fat/bootsector.c:56
+msgid "File system has an invalid signature for a FAT file system."
+msgstr "Filsystemet har en ogiltig signatur för filsystem av typen FAT."
+
+#: libparted/fs/fat/bootsector.c:64
+msgid "File system has an invalid sector size for a FAT file system."
+msgstr ""
+"Filsystemet har en ogiltig sektorstorlek för ett filsystem av typen FAT."
+
+#: libparted/fs/fat/bootsector.c:71
+#, fuzzy
+msgid "File system has an invalid cluster size for a FAT file system."
+msgstr ""
+"Filsystemet har en ogiltig sektorstorlek för ett filsystem av typen FAT."
+
+#: libparted/fs/fat/bootsector.c:78
+#, fuzzy
+msgid ""
+"File system has an invalid number of reserved sectors for a FAT file system."
+msgstr ""
+"Filsystemet har ett ogiltigt antal reserverade sektorer för ett filsystem av "
+"typen FAT."
+
+#: libparted/fs/fat/bootsector.c:85
+#, fuzzy
+msgid "File system has an invalid number of FATs."
+msgstr "Filsystemet har ett felaktigt antal filallokeringstabeller."
+
+#: libparted/fs/fat/bootsector.c:139
+#, c-format
+msgid ""
+"This file system has a logical sector size of %d.  GNU Parted is known not "
+"to work properly with sector sizes other than 512 bytes."
+msgstr ""
+"Filsystemet har en logisk sektorstorlek på %d. Det är känt att GNU Parted "
+"inte fungerar bra med andra sektorstorlekar 512 byte."
+
+#: libparted/fs/fat/bootsector.c:164
+#, c-format
+msgid ""
+"The file system's CHS geometry is (%d, %d, %d), which is invalid.  The "
+"partition table's CHS geometry is (%d, %d, %d).  If you select Ignore, the "
+"file system's CHS geometry will be left unchanged.  If you select Fix, the "
+"file system's CHS geometry will be set to match the partition table's CHS "
+"geometry."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:213
+msgid "FAT boot sector says logical sector size is 0.  This is weird. "
+msgstr ""
+"FAT:s startsektor menar att den logiska sektorstorleken är 0. Märkligt."
+
+#: libparted/fs/fat/bootsector.c:219
+msgid "FAT boot sector says there are no FAT tables.  This is weird. "
+msgstr "FAT:s startsektor menar att det saknas FAT-tabeller. Märkligt."
+
+#: libparted/fs/fat/bootsector.c:225
+msgid "FAT boot sector says clusters are 0 sectors.  This is weird. "
+msgstr ""
+"FAT:s startsektor menar att ett kluster består av 0 sektorer. Märkligt."
+
+#: libparted/fs/fat/bootsector.c:235
+#, fuzzy
+msgid "File system is FAT12, which is unsupported."
+msgstr "Filsystemet är FAT12, som inte stöds."
+
+#: libparted/fs/fat/bootsector.c:411
+#, c-format
+msgid ""
+"The information sector has the wrong signature (%x).  Select cancel for now, "
+"and send in a bug report.  If you're desperate, it's probably safe to ignore."
+msgstr ""
+"Informationssektorn har fel signatur (%x). Välj avbryt och skicka in en "
+"felrapport. Om du är desperat så är det troligen säkert att strunta i felet."
+
+#: libparted/fs/fat/count.c:152
+#, c-format
+msgid "Bad directory entry for %s: first cluster is the end of file marker."
+msgstr "Felaktig katalogpost för %s: första klustret är en filslutsmarkering."
+
+#: libparted/fs/fat/count.c:165
+#, c-format
+msgid ""
+"Bad FAT: unterminated chain for %s.  You should run dosfsck or scandisk."
+msgstr ""
+"Trasig filallokeringstabell: ej avslutad kedja för %s. Du bör köra dosfsck "
+"eller scandisk."
+
+#: libparted/fs/fat/count.c:174
+#, fuzzy, c-format
+msgid ""
+"Bad FAT: cluster %d outside file system in chain for %s.  You should run "
+"dosfsck or scandisk."
+msgstr ""
+"Trasig filallokeringstabell: kluster %d ligger utanför filsystemet för %s. "
+"Du bör köra dosfsck eller scandisk."
+
+#: libparted/fs/fat/count.c:184
+#, c-format
+msgid ""
+"Bad FAT: cluster %d is cross-linked for %s.  You should run dosfsck or "
+"scandisk."
+msgstr ""
+"Trasig filallokeringstabell: kluster %d är korslänkad för %s. Du bör köra "
+"dosfsck eller scandisk."
+
+#: libparted/fs/fat/count.c:203
+#, fuzzy, c-format
+msgid "%s is %dk, but it has %d clusters (%dk)."
+msgstr "%s är %dk, men den har %d kluster (%dk)."
+
+#: libparted/fs/fat/count.c:266
+#, c-format
+msgid ""
+"The file %s is marked as a system file.  This means moving it could cause "
+"some programs to stop working."
+msgstr ""
+
+#: libparted/fs/fat/table.c:137
+#, c-format
+msgid ""
+"FAT %d media %x doesn't match the boot sector's media %x.  You should "
+"probably run scandisk."
+msgstr ""
+"FAT %d media %x passar inte med startsektorns media %x. Du bör antagligen "
+"köra scandisk."
+
+#: libparted/fs/fat/table.c:269
+#, fuzzy, c-format
+msgid "fat_table_set: cluster %ld outside file system"
+msgstr "fat_table_set: kluster %ld ligger utanför filsystemet"
+
+#: libparted/fs/fat/table.c:301
+#, fuzzy, c-format
+msgid "fat_table_get: cluster %ld outside file system"
+msgstr "fat_table_get: kluster %ld ligger utanför filsystemet"
+
+#: libparted/fs/fat/table.c:343
+msgid "fat_table_alloc_cluster: no free clusters"
+msgstr "fat_table_alloc_cluster: inga lediga kluster"
+
+#: libparted/fs/linux_swap/linux_swap.c:275
+#, fuzzy, c-format
+msgid "Unrecognised old style linux swap signature '%10s'."
+msgstr "Okänd signatur för Linux växlingsutrymme \\\"%10s\\\"."
+
+#: libparted/fs/linux_swap/linux_swap.c:318
+#, fuzzy, c-format
+msgid "Unrecognised new style linux swap signature '%10s'."
+msgstr "Okänd signatur för Linux växlingsutrymme \\\"%10s\\\"."
+
+#: libparted/fs/linux_swap/linux_swap.c:358
+#, fuzzy, c-format
+msgid "Unrecognised swsusp linux swap signature '%9s'."
+msgstr "Okänd signatur för Linux växlingsutrymme \\\"%10s\\\"."
+
+#: libparted/fs/linux_swap/linux_swap.c:434
+msgid "Too many bad pages."
+msgstr "För många dåliga sidor."
+
+#: libparted/fs/hfs/advfs.c:121 libparted/fs/hfs/advfs_plus.c:122
+#: libparted/fs/hfs/reloc.c:414 libparted/fs/hfs/reloc.c:508
+#: libparted/fs/hfs/reloc_plus.c:539 libparted/fs/hfs/reloc_plus.c:658
+#: libparted/fs/hfs/reloc_plus.c:772
+msgid "The file system contains errors."
+msgstr ""
+
+#: libparted/fs/hfs/advfs_plus.c:287
+msgid "Bad blocks could not be read."
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:137
+#, c-format
+msgid ""
+"Trying to register an extent starting at block 0x%X, but another one already "
+"exists at this position.  You should check the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:214
+#, c-format
+msgid ""
+"Trying to move an extent from block Ox%X to block Ox%X, but another one "
+"already exists at this position.  This should not happen!"
+msgstr ""
+
+#: libparted/fs/hfs/file.c:143
+#, c-format
+msgid "Could not update the extent cache for HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:180
+#, c-format
+msgid "Trying to read HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:190 libparted/fs/hfs/file.c:220
+#, c-format
+msgid "Could not find sector %lli of HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:210
+#, c-format
+msgid "Trying to write HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:157
+#, c-format
+msgid "Could not update the extent cache for HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:202
+#, c-format
+msgid "Trying to read HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:213 libparted/fs/hfs/file_plus.c:256
+#, c-format
+msgid "Could not find sector %lli of HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:245
+#, c-format
+msgid "Trying to write HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:232
+msgid "Sorry, HFS cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:262 libparted/fs/hfs/hfs.c:641
+msgid "Data relocation has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:281
+msgid "Data relocation left some data in the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:320
+#, fuzzy
+msgid "writing HFS Master Directory Block"
+msgstr "Ett fel uppstod vid skrivning till rotkatalogen."
+
+#: libparted/fs/hfs/hfs.c:468
+msgid "No valid HFS[+X] signature has been found while opening."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:478
+#, c-format
+msgid "Version %d of HFS+ isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:489
+#, c-format
+msgid "Version %d of HFSX isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:672
+msgid "Data relocation left some data at the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:720
+#, fuzzy
+msgid "Error while writing the allocation file."
+msgstr "Ett fel uppstod vid skrivning till rotkatalogen."
+
+#: libparted/fs/hfs/hfs.c:735
+msgid "Error while writing the compatibility part of the allocation file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:750
+msgid "writing HFS+ Volume Header"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:850
+msgid "An error occurred while looking for the mandatory bad blocks file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:904
+msgid ""
+"It seems there is an error in the HFS wrapper: the bad blocks file doesn't "
+"contain the embedded HFS+ volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:940
+msgid "Sorry, HFS+ cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:975
+msgid "shrinking embedded HFS+ volume"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:991
+msgid "Resizing the HFS+ volume has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:998
+msgid "shrinking HFS wrapper"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:1007
+msgid "Updating the HFS wrapper has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:1109 libparted/fs/hfs/hfs.c:1194
+#, c-format
+msgid ""
+"This is not a real %s check.  This is going to extract special low level "
+"files for debugging purposes."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:155
+msgid "Bad block list header checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:168
+#, c-format
+msgid ""
+"Invalid size of a transaction block while replaying the journal (%i bytes)."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:260
+msgid ""
+"Journal stored outside of the volume are not supported.  Try to desactivate "
+"the journal and run Parted again."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:271
+#, fuzzy
+msgid "Journal offset or size is not multiple of the sector size."
+msgstr ""
+"Klustrets startdifferens är %d, vilket inte är en multipel av "
+"klusterstorleken %d"
+
+#: libparted/fs/hfs/journal.c:292
+msgid "Incorrect magic values in the journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:302
+msgid "Journal size mismatch between journal info block and journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:314
+#, fuzzy
+msgid "Some header fields are not multiple of the sector size."
+msgstr ""
+"Klustrets startdifferens är %d, vilket inte är en multipel av "
+"klusterstorleken %d"
+
+#: libparted/fs/hfs/journal.c:323
+msgid ""
+"The sector size stored in the journal is not 512 bytes.  Parted only "
+"supports 512 bytes length sectors."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:335
+msgid "Bad journal checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:353
+msgid ""
+"The journal is not empty.  Parted must replay the transactions before "
+"opening the file system.  This will modify the file system."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:381
+msgid ""
+"The volume header or the master directory block has changed while replaying "
+"the journal.  You should restart Parted."
+msgstr ""
+
+#: libparted/fs/hfs/probe.c:51
+#, c-format
+msgid ""
+"Parted can't use HFS file systems on disks with a sector size not equal to %"
+"d bytes."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:151 libparted/fs/hfs/reloc_plus.c:155
+msgid "An extent has not been relocated."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:251 libparted/fs/hfs/reloc_plus.c:307
+msgid ""
+"A reference to an extent comes from a place it should not.  You should check "
+"the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:381
+msgid "This HFS volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:475
+msgid "This HFS volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:517 libparted/fs/hfs/reloc_plus.c:668
+msgid ""
+"The extents overflow file should not contain its own extents!  You should "
+"check the file system."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:574 libparted/fs/hfs/reloc_plus.c:847
+#, fuzzy
+msgid "Could not cache the file system in memory."
+msgstr "Kunde inte hitta något filsystem."
+
+#: libparted/fs/hfs/reloc.c:635 libparted/fs/hfs/reloc_plus.c:908
+msgid "Bad blocks list could not be loaded."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:649 libparted/fs/hfs/reloc_plus.c:924
+msgid "An error occurred during extent relocation."
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:495
+msgid "This HFS+ volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:619
+msgid "This HFS+ volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: parted/parted.c:94
+msgid "displays this help message"
+msgstr "visa den här hjälptexten"
+
+#: parted/parted.c:95
+msgid "lists partition layout on all block devices"
+msgstr ""
+
+#: parted/parted.c:96
+msgid "displays machine parseable output"
+msgstr ""
+
+#: parted/parted.c:97
+msgid "never prompts for user intervention"
+msgstr "frågar aldrig användaren om alternativ"
+
+#: parted/parted.c:98
+msgid "displays the version"
+msgstr "visar versionen"
+
+#: parted/parted.c:111
+#, fuzzy
+msgid ""
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"
+msgstr ""
+"UNDRE är partitionsnumret som Linux använder. På filsystem av typ MSDOS är "
+"de primära partitionerna numrerade från ett till fyra, och de logiska "
+"partitionerna från fem och uppåt.\n"
+
+#: parted/parted.c:114
+msgid "LABEL-TYPE is one of: "
+msgstr "PART-TYP är en av:"
+
+#: parted/parted.c:115
+msgid "FLAG is one of: "
+msgstr "FLAGGA är en av: "
+
+#: parted/parted.c:116
+#, fuzzy
+msgid "UNIT is one of: "
+msgstr "FLAGGA är en av: "
+
+#: parted/parted.c:117
+#, fuzzy
+msgid "PART-TYPE is one of: primary, logical, extended\n"
+msgstr "PART-TYP är en av: primär, logisk, utökad\n"
+
+#: parted/parted.c:119
+msgid "FS-TYPE is one of: "
+msgstr "FS-TYP är en av: "
+
+#: parted/parted.c:120
+msgid ""
+"START and END are disk locations, such as 4GB or 10%.  Negative values count "
+"from the end of the disk.  For example, -1s specifies exactly the last "
+"sector.\n"
+msgstr ""
+
+#: parted/parted.c:123
+msgid "STATE is one of: on, off\n"
+msgstr "TILLSTÅND är ett av: på, av\n"
+
+#: parted/parted.c:124
+msgid "DEVICE is usually /dev/hda or /dev/sda\n"
+msgstr "ENHET är vanligen /dev/hda eller /dev/sda\n"
+
+#: parted/parted.c:125
+msgid "NAME is any word you want\n"
+msgstr "NAMN är vilket ord du vill\n"
+
+#: parted/parted.c:126
+msgid "The partition must have one of the following FS-TYPEs: "
+msgstr ""
+
+#: parted/parted.c:130
+#, fuzzy
+msgid ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+msgstr ""
+"Upphovsrätt © 1998, 1999, 2000, 2001 Free Software Foundation, Inc.\n"
+"\n"
+"Följande text är en informell översättning som enbart tillhandahålls i\n"
+"informativt syfte. För alla juridiska tolkningar gäller den engelska "
+"original-\n"
+"texten.\n"
+"\n"
+"Detta program är fri programvara. Du kan distribuera det och/eller "
+"modifiera\n"
+"det under villkoren i GNU General Public License, publicerad av Free "
+"Software\n"
+"Foundation, antingen version 2 eller (om du så vill) någon senare version.\n"
+"\n"
+"Detta program distribueras i hopp om att det ska vara användbart, men UTAN\n"
+"NÅGON SOM HELST GARANTI, även utan underförstådd garanti om SÄLJBARHET "
+"eller\n"
+"LÄMPLIGHET FÖR NÅGOT SPECIELLT ÄNDAMÅL. Se GNU General Public License för\n"
+"ytterligare information.\n"
+"\n"
+"Du bör ha fått en kopia av GNU General Public License tillsammans med detta\n"
+"program. Om inte, skriv till \n"
+"Free Software Foundation, Inc., 59 Temple Place- Suite 330,\n"
+"Boston, MA 02111-1307, USA.\n"
+
+#: parted/parted.c:176
+#, c-format
+msgid "%0.f%%\t(time left %.2d:%.2d)"
+msgstr ""
+
+#: parted/parted.c:195
+#, c-format
+msgid ""
+"Partition %s is being used. You must unmount it before you modify it with "
+"Parted."
+msgstr ""
+
+#: parted/parted.c:211
+#, c-format
+msgid "Partition(s) on %s are being used."
+msgstr "Partitionen på %s är i bruk."
+
+#: parted/parted.c:223
+msgid ""
+"The existing file system will be destroyed and all data on the partition "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:235
+#, c-format
+msgid ""
+"The existing disk label on %s will be destroyed and all data on this disk "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:458 parted/parted.c:652 parted/parted.c:1044
+#: parted/parted.c:1128 parted/parted.c:1771 parted/parted.c:1852
+#: parted/parted.c:1900
+#, fuzzy
+msgid "Partition number?"
+msgstr "Partitionen är i bruk."
+
+#: parted/parted.c:500
+msgid "Source device?"
+msgstr ""
+
+#: parted/parted.c:504
+#, fuzzy
+msgid "Source partition number?"
+msgstr "Källpartitionen finns inte."
+
+#: parted/parted.c:509
+#, fuzzy
+msgid "Can't copy an extended partition."
+msgstr "Kan inte kopiera utökade partitioner."
+
+#: parted/parted.c:515
+#, fuzzy
+msgid "Destination partition number?"
+msgstr "Målpartitionen är i bruk."
+
+#: parted/parted.c:615
+#, fuzzy
+msgid "New disk label type?"
+msgstr "Typ av filsystem: %s\n"
+
+#: parted/parted.c:656
+#, fuzzy
+msgid "File system?"
+msgstr "Filsystem   "
+
+#: parted/parted.c:707 parted/parted.c:878
+#, fuzzy
+msgid "Partition type?"
+msgstr "Partitionen finns inte."
+
+#: parted/parted.c:714 parted/parted.c:885 parted/parted.c:1131
+#, fuzzy
+msgid "Partition name?"
+msgstr "Partitionen finns inte."
+
+#: parted/parted.c:722 parted/parted.c:895
+#, fuzzy
+msgid "File system type?"
+msgstr "Filsystem   "
+
+#: parted/parted.c:729 parted/parted.c:897 parted/parted.c:1059
+#: parted/parted.c:1725 parted/parted.c:1780
+msgid "Start?"
+msgstr ""
+
+#: parted/parted.c:731 parted/parted.c:900 parted/parted.c:1062
+#: parted/parted.c:1727 parted/parted.c:1782
+msgid "End?"
+msgstr ""
+
+#: parted/parted.c:769 parted/parted.c:938
+#, c-format
+msgid ""
+"You requested a partition from %s to %s.\n"
+"The closest location we can manage is %s to %s.  Is this still acceptable to "
+"you?"
+msgstr ""
+
+#: parted/parted.c:890
+msgid "An extended partition cannot hold a file system.  Did you want mkpart?"
+msgstr ""
+
+#: parted/parted.c:1050
+#, fuzzy
+msgid "Can't move an extended partition."
+msgstr "Kan inte flytta utökade partitioner."
+
+#: parted/parted.c:1079
+msgid "Can't move a partition onto itself.  Try using resize, perhaps?"
+msgstr ""
+"Kan inte flytta en partition till sig själv. Prova att ändra storleken "
+"istället."
+
+#: parted/parted.c:1227
+#, c-format
+msgid "Minor: %d\n"
+msgstr ""
+
+#: parted/parted.c:1228
+#, fuzzy, c-format
+msgid "Flags: %s\n"
+msgstr "Flaggor"
+
+#: parted/parted.c:1229
+#, fuzzy, c-format
+msgid "File System: %s\n"
+msgstr "Filsystem   "
+
+#: parted/parted.c:1230
+msgid "Size:         "
+msgstr ""
+
+#: parted/parted.c:1235
+msgid "Minimum size: "
+msgstr ""
+
+#: parted/parted.c:1238
+msgid "Maximum size: "
+msgstr ""
+
+#: parted/parted.c:1362
+#, c-format
+msgid "Model: %s (%s)\n"
+msgstr ""
+
+#: parted/parted.c:1364
+#, fuzzy, c-format
+msgid "Disk %s: %s\n"
+msgstr "%s  %s  %s"
+
+#: parted/parted.c:1365
+#, c-format
+msgid "Sector size (logical/physical): %lldB/%lldB\n"
+msgstr ""
+
+#: parted/parted.c:1383
+#, c-format
+msgid "BIOS cylinder,head,sector geometry: %d,%d,%d.  Each cylinder is %s.\n"
+msgstr ""
+
+#: parted/parted.c:1392
+#, fuzzy, c-format
+msgid "Partition Table: %s\n"
+msgstr "Ogiltig partitionstabell på %s"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Number"
+msgstr ""
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Start"
+msgstr ""
+
+#: parted/parted.c:1407 parted/parted.c:1410
+msgid "End"
+msgstr ""
+
+#: parted/parted.c:1410
+#, fuzzy
+msgid "Size"
+msgstr "ändra_storlek"
+
+#: parted/parted.c:1414
+msgid "Type"
+msgstr ""
+
+#: parted/parted.c:1416
+#, fuzzy
+msgid "File system"
+msgstr "Filsystem   "
+
+#: parted/parted.c:1419
+#, fuzzy
+msgid "Name"
+msgstr "namn"
+
+#: parted/parted.c:1421
+msgid "Flags"
+msgstr "Flaggor"
+
+#: parted/parted.c:1477
+msgid "Free Space"
+msgstr ""
+
+#: parted/parted.c:1624
+#, c-format
+msgid ""
+"A %s %s partition was found at %s -> %s.  Do you want to add it to the "
+"partition table?"
+msgstr ""
+
+#: parted/parted.c:1663
+msgid "searching for file systems"
+msgstr ""
+
+#: parted/parted.c:1877
+#, fuzzy
+msgid "New device?"
+msgstr "Ingen enhet hittades"
+
+#: parted/parted.c:1902
+msgid "Flag to Invert?"
+msgstr ""
+
+#: parted/parted.c:1907
+msgid "New state?"
+msgstr ""
+
+#: parted/parted.c:1944
+msgid "Unit?"
+msgstr ""
+
+#: parted/parted.c:2093
+msgid "check"
+msgstr "testa"
+
+#: parted/parted.c:2096
+#, fuzzy
+msgid ""
+"check NUMBER                             do a simple check on the file system"
+msgstr "testa UNDRE                    gör en enkel test av filsystemet"
+
+#: parted/parted.c:2102
+msgid "cp"
+msgstr "kopiera"
+
+#: parted/parted.c:2105
+#, fuzzy
+msgid ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+"partition"
+msgstr ""
+"kopiera [FRÅN ENHET] FRÅN-UNDRE TILL-UNDRE     kopiera ett filsystem till "
+"ett annat"
+
+#: parted/parted.c:2111
+msgid "help"
+msgstr "hjälp"
+
+#: parted/parted.c:2114
+#, fuzzy
+msgid ""
+"help [COMMAND]                           print general help, or help on "
+"COMMAND"
+msgstr ""
+"hjälp [KOMMANDO]             skriver generell hjälp, eller speciell hjälp "
+"för KOMMANDO"
+
+#: parted/parted.c:2120
+msgid "mklabel"
+msgstr "mklabel"
+
+#: parted/parted.c:2120
+#, fuzzy
+msgid "mktable"
+msgstr "mklabel"
+
+#: parted/parted.c:2123
+#, fuzzy
+msgid ""
+"mklabel,mktable LABEL-TYPE               create a new disklabel (partition "
+"table)"
+msgstr "mklabel PART-TYP  skapa en ny partitionstabell"
+
+#: parted/parted.c:2129
+msgid "mkfs"
+msgstr "mkfs"
+
+#: parted/parted.c:2132
+#, fuzzy
+msgid ""
+"mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on "
+"partititon NUMBER"
+msgstr ""
+"mkfs UNDRE TYP       skapa ett filsystem av typen TYP på partition UNDRE"
+
+#: parted/parted.c:2138
+msgid "mkpart"
+msgstr "mkpart"
+
+#: parted/parted.c:2141
+#, fuzzy
+msgid "mkpart PART-TYPE [FS-TYPE] START END     make a partition"
+msgstr "mkpart PARTITIONSTYP [TYP] BÖRJAN SLUT    skapa en partition"
+
+#: parted/parted.c:2147
+#, fuzzy
+msgid ""
+"'mkpart' makes a partition without creating a new file system on the "
+"partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"
+msgstr ""
+"mkpart skapar en partition utan att skapa ett nytt filsystem på den. TYP "
+"måste vara angiven för datapartitioner (till skillnad mot utökade "
+"partitioner). Det här kommandot är användbart om du tar bort en partition av "
+"misstag.\n"
+
+#: parted/parted.c:2152
+msgid "mkpartfs"
+msgstr "mkpartfs"
+
+#: parted/parted.c:2155
+#, fuzzy
+msgid ""
+"mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system"
+msgstr ""
+"mkpartfs PARTITIONSTYP FILSYSTEMSTYP BÖRJAN SLUT   gör en partition med ett "
+"filsystem"
+
+#: parted/parted.c:2161
+msgid "move"
+msgstr "flytta"
+
+#: parted/parted.c:2164
+#, fuzzy
+msgid "move NUMBER START END                    move partition NUMBER"
+msgstr "flytta UNDRE START [SLUT]         flytta partition UNDRE"
+
+#: parted/parted.c:2169
+msgid "name"
+msgstr "namn"
+
+#: parted/parted.c:2172
+#, fuzzy
+msgid "name NUMBER NAME                         name partition NUMBER as NAME"
+msgstr "namn UNDRE NAMN                benämn partition UNDRE NAMN"
+
+#: parted/parted.c:2177
+msgid "print"
+msgstr "skriv"
+
+#: parted/parted.c:2180
+msgid ""
+"print [devices|free|list,all|NUMBER]     display the partition table, "
+"available devices, free space, all found partitions, or a particular "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2185
+msgid ""
+"Without arguments, 'print' displays the entire partition table. However with "
+"the following arguments it performs various other actions.\n"
+msgstr ""
+
+#: parted/parted.c:2187
+msgid "  devices   : display all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2188
+msgid ""
+"  free      : display information about free unpartitioned space on the "
+"current block device\n"
+msgstr ""
+
+#: parted/parted.c:2190
+#, fuzzy
+msgid ""
+"  list, all : display the partition tables of all active block devices\n"
+msgstr "skriv                           visa partitionstabellen"
+
+#: parted/parted.c:2191
+msgid ""
+"  NUMBER    : display more detailed information about this particular "
+"partition\n"
+msgstr ""
+
+#: parted/parted.c:2196
+msgid "quit"
+msgstr "avsluta"
+
+#: parted/parted.c:2199
+#, fuzzy
+msgid "quit                                     exit program"
+msgstr "avsluta                    avsluta programmet"
+
+#: parted/parted.c:2204
+#, fuzzy
+msgid "rescue"
+msgstr "ändra_storlek"
+
+#: parted/parted.c:2207
+#, fuzzy
+msgid ""
+"rescue START END                         rescue a lost partition near START "
+"and END"
+msgstr "skriv                           visa partitionstabellen"
+
+#: parted/parted.c:2213
+msgid "resize"
+msgstr "ändra_storlek"
+
+#: parted/parted.c:2216
+#, fuzzy
+msgid ""
+"resize NUMBER START END                  resize partition NUMBER and its "
+"file system"
+msgstr ""
+"ändra_storlek UNDRE START SLUT  ändra storlek på filsystemet på partition "
+"UNDRE"
+
+#: parted/parted.c:2224
+msgid "rm"
+msgstr "ta_bort"
+
+#: parted/parted.c:2227
+#, fuzzy
+msgid "rm NUMBER                                delete partition NUMBER"
+msgstr "ta_bort UNDRE               ta bort partition UNDRE"
+
+#: parted/parted.c:2232
+msgid "select"
+msgstr "välj"
+
+#: parted/parted.c:2235
+#, fuzzy
+msgid "select DEVICE                            choose the device to edit"
+msgstr "välj ENHET                     välj enhet att förändra"
+
+#: parted/parted.c:2240
+msgid "set"
+msgstr "sätt"
+
+#: parted/parted.c:2243
+#, fuzzy
+msgid ""
+"set NUMBER FLAG STATE                    change the FLAG on partition NUMBER"
+msgstr "sätt UNDRE FLAGGA TILLSTÅND        ändra en flagga på partition UNDRE"
+
+#: parted/parted.c:2249
+msgid "toggle"
+msgstr ""
+
+#: parted/parted.c:2252
+msgid ""
+"toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+"partition NUMBER"
+msgstr ""
+
+#: parted/parted.c:2258
+#, fuzzy
+msgid "unit"
+msgstr "avsluta"
+
+#: parted/parted.c:2261
+#, fuzzy
+msgid "unit UNIT                                set the default unit to UNIT"
+msgstr "skriv                           visa partitionstabellen"
+
+#: parted/parted.c:2266
+msgid "version"
+msgstr ""
+
+#: parted/parted.c:2269
+msgid ""
+"version                                  display the version number and "
+"copyright information of GNU Parted"
+msgstr ""
+
+#: parted/parted.c:2273
+msgid ""
+"'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"
+msgstr ""
+
+#: parted/parted.c:2335
+#, c-format
+msgid "Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"
+msgstr ""
+
+#: parted/parted.c:2379
+msgid "No device found"
+msgstr "Ingen enhet hittades"
+
+#: parted/parted.c:2412
+msgid "WARNING: You are not superuser.  Watch out for permissions."
+msgstr ""
+
+#: parted/parted.c:2450
+msgid "You may need to update /etc/fstab.\n"
+msgstr ""
+
+#: parted/ui.c:160
+msgid "Welcome to GNU Parted! Type 'help' to view a list of commands.\n"
+msgstr ""
+
+#: parted/ui.c:163
+#, fuzzy
+msgid ""
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run "
+"in\n"
+"interactive mode.\n"
+msgstr ""
+"Användning: parted [FLAGGA]... [ENHET [KOMMANDO [PARAMETRAR]...]...]\n"
+"Kör KOMMANDO med PARAMETRARNA på ENHET. Om inga KOMMANDON anges körs\n"
+"programmet i interaktivt läge.\n"
+
+#: parted/ui.c:168
+#, c-format
+msgid ""
+"\n"
+"\n"
+"You found a bug in GNU Parted! Here's what you have to do:\n"
+"\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n"
+"\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Please check this version prior to bug reporting.\n"
+"\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"for further information.\n"
+"\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n"
+msgstr ""
+
+#: parted/ui.c:284
+msgid ""
+"\n"
+"Command History:\n"
+msgstr ""
+
+#: parted/ui.c:366
+msgid ""
+"\n"
+"Error: SEGV_MAPERR (Address not mapped to object)\n"
+msgstr ""
+
+#: parted/ui.c:372
+msgid ""
+"\n"
+"Error: SEGV_ACCERR (Invalid permissions for mapped object)\n"
+msgstr ""
+
+#: parted/ui.c:377
+msgid ""
+"\n"
+"Error: A general SIGSEGV signal was encountered.\n"
+msgstr ""
+
+#: parted/ui.c:410
+msgid ""
+"\n"
+"Error: FPE_INTDIV (Integer: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:415
+msgid ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+msgstr ""
+
+#: parted/ui.c:420
+msgid ""
+"\n"
+"Error: FPE_FLTDIV (Float: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:425
+msgid ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+msgstr ""
+
+#: parted/ui.c:430
+msgid ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+msgstr ""
+
+#: parted/ui.c:435
+msgid ""
+"\n"
+"Error: FPE_FLTRES (Float: inexact result)"
+msgstr ""
+
+#: parted/ui.c:440
+msgid ""
+"\n"
+"Error: FPE_FLTINV (Float: invalid operation)"
+msgstr ""
+
+#: parted/ui.c:445
+msgid ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript out of range)"
+msgstr ""
+
+#: parted/ui.c:450
+msgid ""
+"\n"
+"Error: A general SIGFPE signal was encountered."
+msgstr ""
+
+#: parted/ui.c:483
+msgid ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+msgstr ""
+
+#: parted/ui.c:488
+msgid ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+msgstr ""
+
+#: parted/ui.c:493
+msgid ""
+"\n"
+"Error: ILL_ILLADR (Illegal addressing mode)"
+msgstr ""
+
+#: parted/ui.c:498
+msgid ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+msgstr ""
+
+#: parted/ui.c:503
+msgid ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+msgstr ""
+
+#: parted/ui.c:508
+msgid ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+msgstr ""
+
+#: parted/ui.c:513
+msgid ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+msgstr ""
+
+#: parted/ui.c:518
+msgid ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+msgstr ""
+
+#: parted/ui.c:523
+msgid ""
+"\n"
+"Error: A general SIGILL signal was encountered."
+msgstr ""
+
+#: parted/ui.c:1024
+#, fuzzy
+msgid "Expecting a partition number."
+msgstr "Målpartitionen är i bruk."
+
+#: parted/ui.c:1033
+msgid "Partition doesn't exist."
+msgstr "Partitionen finns inte."
+
+#: parted/ui.c:1053
+#, fuzzy
+msgid "Expecting a file system type."
+msgstr "Okänd filsystemstyp."
+
+#: parted/ui.c:1060
+#, fuzzy, c-format
+msgid "Unknown file system type \"%s\"."
+msgstr "Okänd filsystemstyp."
+
+#: parted/ui.c:1080
+msgid "Expecting a disk label type."
+msgstr ""
+
+#: parted/ui.c:1178
+#, fuzzy
+msgid "Can't create any more partitions."
+msgstr "Kan inte lägga till ännu en partition."
+
+#: parted/ui.c:1188
+#, fuzzy
+msgid "Expecting a partition type."
+msgstr "Målpartitionen finns inte."
+
+#: parted/ui.c:1315
+msgid "on"
+msgstr "på"
+
+#: parted/ui.c:1316
+msgid "off"
+msgstr ""
+
+#: parted/ui.c:1431
+msgid "OPTIONs:"
+msgstr "FLAGGOR:"
+
+#: parted/ui.c:1436
+msgid "COMMANDs:"
+msgstr "KOMMANDON:"
+
+#: parted/ui.c:1445
+#, fuzzy, c-format
+msgid "Using %s\n"
+msgstr ""
+"\n"
+"Använder %s\n"
+
+#: parted/ui.c:1519
+msgid "This command does not make sense in non-interactive mode.\n"
+msgstr ""
+
+#~ msgid "where necessary, prompts for user intervention"
+#~ msgstr "där så är nödvändigt, frågar användaren om alternativ"
+
+#~ msgid ""
+#~ "The sector size on %s is %d bytes.  Parted is known not to work properly "
+#~ "with drives with sector sizes other than 512 bytes"
+#~ msgstr ""
+#~ "Sektorstorleken på %s är %d byte. Parted fungerar inte bra på skivor med "
+#~ "annan sektorstorlek än 512 byte"
+
+#~ msgid "Could not read geometry of %s - %s."
+#~ msgstr "Kunde inte läsa geometrin på %s - %s."
+
+#~ msgid "Device %s has dodgey geometry."
+#~ msgstr "Enheten %s har märklig geometri."
+
+#~ msgid "unknown"
+#~ msgstr "okänd"
+
+# ??
+#~ msgid "Unknown SCSI"
+#~ msgstr "Okänd SCSI"
+
+#~ msgid "Device %s is neither a SCSI nor IDE drive."
+#~ msgstr "Enheten %s är varken en SCSI- eller IDE-enhet."
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  However, the most likely reason is that Linux "
+#~ "detected the BIOS geometry for %s incorrectly.  GNU Parted suspects the "
+#~ "real geometry should be %d/%d/%d (not %d/%d/%d).  You should check with "
+#~ "your BIOS first, as this may not be correct.  You can inform Linux by "
+#~ "adding the parameter %s=%d,%d,%d to the command line.  See the LILO or "
+#~ "GRUB documentation for more information.  If you think Parted's suggested "
+#~ "geometry is correct, you may select Ignore to continue (and fix Linux "
+#~ "later).  Otherwise, select Cancel (and fix Linux and/or the BIOS now)."
+#~ msgstr ""
+#~ "Partitionstabellen på %s är inte konsistent. Det kan finns många skäl "
+#~ "till detta. Det mest troliga skälet är att Linux läste fel "
+#~ "geometriinformation för %s i BIOS. GNU Parted misstänker att den riktiga "
+#~ "geometrin bör vara %d/%d/%d (inte %d/%d/%d). Du bör först kontrollera "
+#~ "ditt BIOS eftersom det kan vara fel. Du kan informera Linux genom att "
+#~ "lägga till parametern %s=%d,%d,%d på kommandoraden. Mer information finns "
+#~ "i manualerna för LILO eller GRUB. Om du tror att Parteds föreslagna "
+#~ "geometri är riktig kan du välja Ignorera för att fortsätta (och ordna "
+#~ "till Linux senare). Annars, välj Avbryt (och ordna till Linux och/eller "
+#~ "BIOS nu)."
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  Often, the reason is that Linux detected the "
+#~ "BIOS geometry incorrectly.  However, this does not appear to be the case "
+#~ "here.  It is safe to ignore,but ignoring may cause (fixable) problems "
+#~ "with some boot loaders."
+#~ msgstr ""
+#~ "Partitionstabellen på %s är inte konsistent. Det kan finnas flera "
+#~ "anledningar till det. Ofta är anledningen att Linux har läst "
+#~ "geometriinformationen i BIOS felaktigt. Det verkar dock inte vara "
+#~ "problemet här. Du kan ignorera felet, men det kan uppstå problem (som kan "
+#~ "åtgärdas) med vissa startprogram."
+
+#~ msgid ""
+#~ "Unable to align partition properly.  This probably means that another "
+#~ "partitioning tool generated an incorrect partition table, because it "
+#~ "didn't have the correct BIOS geometry.  It is safe to ignore,but ignoring "
+#~ "may cause (fixable) problems with some boot loaders."
+#~ msgstr ""
+#~ "Kunde inte lägga partitionen på jämn cylindergräns. Det betyder ofta att "
+#~ "ett annat partitionsverktyg skrev en ogiltig partitionstabell, beroende "
+#~ "på felaktig geomtriinformation från ditt BIOS. Du kan ignorera felet, men "
+#~ "det kan uppstå problem (som kan åtgärdas) med vissa startprogram."
+
+#~ msgid "Can't set non-Linux partitions as a root device."
+#~ msgstr "Kan inte sätta andra partitioner än Linux egna som rotenhet."
+
+#~ msgid "Can't set non-Linux partitions as a swap device."
+#~ msgstr ""
+#~ "Kan inte sätta partition som inte finns för Linux som växlingsenhet."
+
+#~ msgid "No get_resize_constraint for %s!"
+#~ msgstr "get_resize_constraint saknas för %s!"
+
+#~ msgid "The %s file system code doesn't support %s disk labels."
+#~ msgstr "Koden för filsystemet %s stöder inte filallokeringstabeller för %s."
+
+#~ msgid "Creating new %s disklabels is not implemented yet."
+#~ msgstr ""
+#~ "Stöd för att skapa nya partitionstabeller av typen %s är inte "
+#~ "implementerat än."
+
+#~ msgid "The code to write the partition table hasn't been written for %s yet"
+#~ msgstr ""
+#~ "Stöd för att skriva partitionstabell för %s är inte implementerat än."
+
+#~ msgid "Error reading %s (%s) to determine if partition is mounted."
+#~ msgstr ""
+#~ "Ett fel uppstod när %s (%s) skulle läsas för att avgöra om partitionen är "
+#~ "monterad."
+
+#~ msgid "The new partition overlaps with another partition."
+#~ msgstr "Den nya partitionen överlappar med en annan."
+
+#~ msgid "Can't grow a partition onto used space."
+#~ msgstr "Kan inte låta en partition växa ut på använt utrymme."
+
+#~ msgid "Attempt to read sectors %ld-%ld outside of partition on %s"
+#~ msgstr "Försökte läsa sektorerna %ld-%ld utanför partitionen på %s"
+
+#~ msgid ""
+#~ "This ext2 filesystem has a rather strange layout!  Please use dumpe2fs on "
+#~ "this filesystem and send it to <buytenh@gnu.org>. I won't resize it, "
+#~ "sorry."
+#~ msgstr ""
+#~ "Det här filsystemet (ext2) har en ganska konstig uppläggning! Använd "
+#~ "dumpe2fs på filsystemet och skicka resultatet till <buytenh@gnu.org>. "
+#~ "Storleken kommer inte att ändras."
+
+#~ msgid "Insane!  %d clusters!"
+#~ msgstr "Konstigt! %d clusters!"
+
+#~ msgid ""
+#~ "The filesystem is going to be too big for FAT16, so FAT32 will be used.  "
+#~ "This is not compatible with MS-DOS, early versions of MS-Windows 95 and "
+#~ "Windows NT.  If you use these operating systems, then select cancel, and "
+#~ "create a smaller partition.  If you only use Linux, BSD, MS Windows 98 "
+#~ "and/or MS Windows 95 B, then select OK."
+#~ msgstr ""
+#~ "Filsystem kommer att lbi för stort för FAT16, så FAT32 kommer att "
+#~ "användas. Det är inte kompatibelt med MS-DOS, tidiga versioner av MS-"
+#~ "Windows 95 eller Windows NT. Om du använder dessa operativsystem, välj "
+#~ "avbryt och skapa en mindre partition. Om du endast använder Linux, BSD, "
+#~ "MS Windows 98 och/eller MS Windows 95 B, välj OK."
+
+#~ msgid "Weird: fat_calc_sizes() failed for FAT32!"
+#~ msgstr "Konstigt: fat_calc_sizes() misslyckades för FAT32!"
+
+#~ msgid ""
+#~ "Would you like to use FAT32 for this filesystem?  It is much more "
+#~ "efficient with your disk space, but is not compatible with early versions "
+#~ "of Windows 95 and Windows NT.  Only select yes if you only use Linux, "
+#~ "BSD, MS Windows 98 and/or MS Windows 95 B."
+#~ msgstr ""
+#~ "Vill du använda FAT32 som filsystem? Det är mycket mer effektivt med "
+#~ "skivutrymmet, men det är inte kompatibelt med tidiga versioner av Windows "
+#~ "95 eller Windows NT. Välj bara JA om du endast använder Linux, BSD, MS "
+#~ "Windows 98 och/eller MS Windows 95 B."
+
+#~ msgid ""
+#~ "File system doesn't have expected sizes for Windows to like it.  Number "
+#~ "of clusters is %d (%d expected); size of FATs is %d sectors (%d expected)."
+#~ msgstr ""
+#~ "Filsystemet har inte en storlek som Windows gillar. Antalet kluster är %d "
+#~ "(%d förväntas); storleken på FAT:arna är %d sektorer (%d förväntas)."
+
+#~ msgid "File system has an invalid signature for a FAT file systems."
+#~ msgstr "Filsystemet har en ogiltig signatur för filsystem av typen FAT."
+
+#~ msgid ""
+#~ "Partition size (%ld sectors) and filesystem size (%ld sectors) do not "
+#~ "match."
+#~ msgstr ""
+#~ "Partitionens storlek (%ld sektorer) och filsystemets storlek (%ld "
+#~ "sektorer) stämmer inte överens."
+
+#~ msgid ""
+#~ "The FATs aren't big enough to describe all clusters!  Each FAT is %d "
+#~ "sectors.  There are %d clusters, which would require each FAT to be %d "
+#~ "sectors.  This is REALLY weird.  You might want to write us an email: bug-"
+#~ "parted@gnu.org"
+#~ msgstr ""
+#~ "Filallokeringstabellerna är inte stora nog för att beskriva alla kluster! "
+#~ "Varje tabell är %d sektorer. Det finns %d kluster, vilket innebär att "
+#~ "varje tabell borde vara %d sektorer. Detta är RIKTIGT konstigt. Skriv ett "
+#~ "brev till oss: bug-parted@gnu.org"
+
+#~ msgid ""
+#~ "This swap partition is not compatible with Linux version 2.1.117 or "
+#~ "earlier.  Use a smaller partition (maximum size 128mb) if you want to use "
+#~ "old versions of Linux."
+#~ msgstr ""
+#~ "Den här växlingspartitionen är inte kompatibel med Linux version 2.1.117 "
+#~ "och tidigare. Använd en mindre partition (maximal storlek 128 MB) om du "
+#~ "använder äldre versioner av Linux."
+
+#~ msgid "Linux-swap partitions can not be hidden on msdos disk labels."
+#~ msgstr ""
+#~ "Linux växlingsenhet kan inte döljas på ett filsystem av typen msdos."
+
+#~ msgid "Linux-swap partitions can not be bootable on pc98 disk labels."
+#~ msgstr "Linux växlingsenhet är inte startbar på pc98."
+
+#~ msgid "HFS partitions can't be hidden on msdos disk labels."
+#~ msgstr "Partitioner av typ HFS kan inte gömmas på filsystem av typen msdos."
+
+#~ msgid "START and END are in megabytes\n"
+#~ msgstr "BÖRJAN och SLUT anges i megabyte\n"
+
+#~ msgid "Disk geometry for %s: 0.000-%.3f megabytes\n"
+#~ msgstr "Geometri på %s: 0.000-%.3f megabyte\n"
+
+#~ msgid "Minor    Start       End     "
+#~ msgstr "Minor     Start       Slut   "
+
+#~ msgid "Type      "
+#~ msgstr "Typ       "
+
+#~ msgid "Name                  "
+#~ msgstr "Namn                  "
+
+#~ msgid ""
+#~ "You found a bug in GNU Parted.  Please email a bug report to bug-"
+#~ "parted@gnu.org containing the version (%s), and the following message:\n"
+#~ msgstr ""
+#~ "Du har hittat ett fel i GNU Parted. Skicka en felrapport till bug-"
+#~ "parted@gnu.org innehållande versionsnummer (%s) och följande meddelande:\n"
+
+#~ msgid ""
+#~ "The operating system thinks the geometry on %s is %d/%d/%d.  Therefore, "
+#~ "cylinder 1024 ends at %.3fM.  You should check that this matches the BIOS "
+#~ "geometry before using this program."
+#~ msgstr ""
+#~ "Operativsystemet tror att %s geometri är %d/%d/%d. Därför slutar cylinder "
+#~ "1024 på %.3fM. Du bör kontrollera att detta stämmer överens med "
+#~ "informationen i BIOS innan du använder programmet."
+
+#~ msgid ""
+#~ "The operating system thinks the geometry on %s is %d/%d/%d.  You should "
+#~ "check that this matches the BIOS geometry before using this program."
+#~ msgstr ""
+#~ "Operativsystemet tror att %s geomtri är %d/%d/%d. Du bör kontrollera att "
+#~ "detta stämmer överens med informationen i BIOS innan du använder "
+#~ "programmet."
diff --git a/parted-1.8.7/po/tr.gmo b/parted-1.8.7/po/tr.gmo
new file mode 100644
index 0000000..b6d9e78
--- /dev/null
+++ b/parted-1.8.7/po/tr.gmo
Binary files differ
diff --git a/parted-1.8.7/po/tr.po b/parted-1.8.7/po/tr.po
new file mode 100644
index 0000000..b298d9c
--- /dev/null
+++ b/parted-1.8.7/po/tr.po
@@ -0,0 +1,3256 @@
+# translation of parted-1.8.1.po to Turkish
+# Eyüp Hakan Duran <hakan_duran@hotmail.com>, 2002, 2006.
+# parted-1.8.1.po'nun Türkçe çevirisi
+# Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+msgid ""
+msgstr ""
+"Project-Id-Version: parted-1.8.1\n"
+"Report-Msgid-Bugs-To: bug-parted@gnu.org\n"
+"POT-Creation-Date: 2007-05-09 17:02-0400\n"
+"PO-Revision-Date: 2006-12-12 20:38-0500\n"
+"Last-Translator: Eyüp Hakan Duran <hakan_duran@hotmail.com>\n"
+"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-9\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: lib/closeout.c:74
+msgid "write error"
+msgstr ""
+
+#: lib/error.c:125
+#, fuzzy
+msgid "Unknown system error"
+msgstr "Bilinmeyen dosya sistemi türü \"%s\"."
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK).  A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#.
+#. If you don't know what to put here, please see
+#. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr ""
+
+#: lib/regcomp.c:131
+msgid "Success"
+msgstr ""
+
+#: lib/regcomp.c:134
+msgid "No match"
+msgstr ""
+
+#: lib/regcomp.c:137
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regcomp.c:140
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regcomp.c:143
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regcomp.c:146
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regcomp.c:149
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regcomp.c:152
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regcomp.c:155
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regcomp.c:158
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regcomp.c:161
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regcomp.c:164
+#, fuzzy
+msgid "Invalid range end"
+msgstr "Geçersiz numara."
+
+#: lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regcomp.c:170
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regcomp.c:173
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regcomp.c:176
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regcomp.c:179
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regcomp.c:680
+msgid "No previous regular expression"
+msgstr ""
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr ""
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:66
+msgid "(C)"
+msgstr ""
+
+#: lib/version-etc.c:68
+msgid ""
+"\n"
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:84
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:88
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:92
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:98
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:104
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:110
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:132
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+
+#: lib/xalloc-die.c:35
+msgid "memory exhausted"
+msgstr ""
+
+#: libparted/arch/beos.c:237
+msgid "Disk Image"
+msgstr ""
+
+#: libparted/arch/beos.c:338 libparted/arch/gnu.c:261
+#: libparted/arch/linux.c:1272
+#, c-format
+msgid "Error opening %s: %s"
+msgstr "%1$s açarken hata: %2$s"
+
+#: libparted/arch/beos.c:349 libparted/arch/gnu.c:271
+#: libparted/arch/linux.c:1283
+#, c-format
+msgid "Unable to open %s read-write (%s).  %s has been opened read-only."
+msgstr ""
+"%1$s oku-yaz þeklinde açýlamýyor (%2$s).  %3$s salt-okunur olarak açýldý."
+
+#: libparted/arch/beos.c:411 libparted/arch/linux.c:1431
+#, c-format
+msgid "%s during seek for read on %s"
+msgstr "%2$s'te okuma için arama sýrasýnda %1$s"
+
+#: libparted/arch/beos.c:444 libparted/arch/gnu.c:449 libparted/arch/gnu.c:548
+#: libparted/arch/gnu.c:676 libparted/arch/linux.c:1391
+#: libparted/arch/linux.c:1469
+#, c-format
+msgid "%s during read on %s"
+msgstr "%2$s'i okuma sýrasýnda %1$s"
+
+#: libparted/arch/beos.c:480 libparted/arch/gnu.c:509
+#: libparted/arch/linux.c:1546
+#, c-format
+msgid "Can't write to %s, because it is opened read-only."
+msgstr "%s'e yazýlamýyor, çünkü salt-okunur olarak açýlmýþ."
+
+#: libparted/arch/beos.c:496 libparted/arch/linux.c:1570
+#, c-format
+msgid "%s during seek for write on %s"
+msgstr "%2$s'e yazma için arama sýrasýnda %1$s"
+
+#: libparted/arch/beos.c:533 libparted/arch/gnu.c:585 libparted/arch/gnu.c:630
+#: libparted/arch/gnu.c:707 libparted/arch/linux.c:1517
+#: libparted/arch/linux.c:1612 libparted/arch/linux.c:1684
+#, c-format
+msgid "%s during write on %s"
+msgstr "%2$s'e yazma sýrasýnda %1$s"
+
+#: debug/clearfat/clearfat.c:63 partprobe/partprobe.c:137
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:67
+#, c-format
+msgid ""
+"Usage: %s [OPTION]\n"
+"  or:  %s DEVICE MINOR\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:70
+msgid ""
+"Clear unused space on a FAT partition (a GNU Parted testing tool).\n"
+"\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:74
+msgid "      --help     display this help and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:75
+msgid "      --version  output version information and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:77 partprobe/partprobe.c:154
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:285
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:290
+#, fuzzy, c-format
+msgid "too many arguments"
+msgstr "Çok sayýda bozuk sayfa."
+
+#: partprobe/partprobe.c:141
+#, c-format
+msgid "Usage: %s [OPTION] [DEVICE]...\n"
+msgstr ""
+
+#: partprobe/partprobe.c:142
+msgid ""
+"Inform the OS of partition table changes.\n"
+"\n"
+"  -d, --no-update  don't update the kernel\n"
+"  -s, --summary    print a summary of contents\n"
+"  -h, --help       display this help and exit\n"
+"  -v, --version    output version information and exit\n"
+msgstr ""
+
+#: partprobe/partprobe.c:150
+msgid ""
+"\n"
+"With no DEVICE, probe all partitions.\n"
+msgstr ""
+
+#: libparted/arch/gnu.c:94
+#, c-format
+msgid "Unable to open %s."
+msgstr "%s açýlamadý."
+
+#: libparted/arch/gnu.c:114
+msgid "Unable to probe store."
+msgstr "Depo sondalanamadý."
+
+#: libparted/arch/gnu.c:352
+msgid ""
+"The partition table cannot be re-read.  This means you need to reboot before "
+"mounting any modified partitions.  You also need to reinstall your boot "
+"loader before you reboot (which may require mounting modified partitions).  "
+"It is impossible do both things!  So you'll need to boot off a rescue disk, "
+"and reinstall your boot loader from the rescue disk.  Read section 4 of the "
+"Parted User documentation for more information."
+msgstr ""
+"Disk bölümleme tablosu yeniden okunamadý, bu nedenle deðiþtirilmiþ herhangi "
+"bir disk bölümünü baðlamadan (bilgisayarý) yeniden açmalýsýnýz.  Yeniden "
+"açmadan önce önyükleyicinizi de yeniden kurmalýsýnýz (ki bu deðiþtirilmiþ "
+"disk bölümlerini baðlamayý gerektirebilir).  Ýki þeyi birden yapmak "
+"olanaksýz!  Dolayýsýyla, bir kurtarma diskiyle açmanýz ve önyükleyicinizi bu "
+"diskten yeniden kurmanýz gerekecek.  Daha fazla bilgi için Parted Kullanýcý "
+"belgesinin 4. bölümünü okuyunuz."
+
+#: libparted/arch/gnu.c:369
+#, c-format
+msgid ""
+"The partition table on %s cannot be re-read (%s).  This means the Hurd knows "
+"nothing about any modifications you made.  You should reboot your computer "
+"before doing anything with %s."
+msgstr ""
+"%1$s (%2$s) üzerindeki disk bölümleme tablosu.  Bu, sizin yaptýðýnýz "
+"deðiþiklikleri Hurd bilmiyor anlamýna gelir.  %3$s ile ilgili hiçbir þey "
+"yapmadan önce bilgisayarýnýzý yeniden açmalýsýnýz."
+
+#: libparted/arch/gnu.c:380 parted/parted.c:2443
+msgid ""
+"You should reinstall your boot loader before rebooting.  Read section 4 of "
+"the Parted User documentation for more information."
+msgstr ""
+"Yeniden açmadan önce önyükleyicinizi yeniden kurmalýsýnýz.  Daha fazla bilgi "
+"için Parted Kullanýcý belgesinin 4. bölümünü okuyunuz."
+
+#: libparted/arch/gnu.c:772
+#, c-format
+msgid "%s trying to sync %s to disk"
+msgstr "%1$s %2$s diske eþzamanlanmaya çalýþýlýyor"
+
+#: libparted/arch/linux.c:408
+#, c-format
+msgid "Could not stat device %s - %s."
+msgstr "Dosya durum bilgisi alýnamayan aygýt %s - %s."
+
+#: libparted/arch/linux.c:523
+#, c-format
+msgid ""
+"Could not determine sector size for %s: %s.\n"
+"Using the default sector size (%lld)."
+msgstr ""
+"%1$s: %2$s için sektör boyutu belirlenemiyor.\n"
+"Öntanýmlý sektör boyutu (%3$lld) kullanýlacak."
+
+#: libparted/arch/linux.c:539
+#, c-format
+msgid ""
+"Device %s has a logical sector size of %lld.  Not all parts of GNU Parted "
+"support this at the moment, and the working code is HIGHLY EXPERIMENTAL.\n"
+msgstr ""
+"%s aygýtýnýn mantýksal sektör boyutu %lld'dir. GNU parted'in tüm bölümleri "
+"bunu henüz desteklememekte olup çalýþan kod OLDUKÇA DENEYSELDÝR.\n"
+
+#: libparted/arch/linux.c:579
+#, c-format
+msgid "Unable to determine the size of %s (%s)."
+msgstr "%1$s (%2$s)'in boyutu belirlenemedi"
+
+#: libparted/arch/linux.c:668
+#, c-format
+msgid "Could not get identity of device %s - %s"
+msgstr "%s - %s aygýtýnýn kimliði alýnamadý "
+
+#: libparted/arch/linux.c:677
+msgid "Generic IDE"
+msgstr "Genel IDE"
+
+#: libparted/arch/linux.c:698
+#, c-format
+msgid ""
+"Device %s has multiple (%d) logical sectors per physical sector.\n"
+"GNU Parted supports this EXPERIMENTALLY for some special disk label/file "
+"system combinations, e.g. GPT and ext2/3.\n"
+"Please consult the web site for up-to-date information."
+msgstr ""
+"Aygýt %s fiziksel sektör baþýna çok sayýda (%d) mantýksal sektör içeriyor.\n"
+"GNU Parted bunu DENEYSEL olarak bazý disk etiketi/dosya sistemi "
+"kombinasyonlarý için destekliyor, örneðin GPT ve ext2/3.\n"
+"Lütfen güncel bilgi için web sitesine baþvurun."
+
+#: libparted/arch/linux.c:873
+#, c-format
+msgid "Error initialising SCSI device %s - %s"
+msgstr "%s - %s SCSI aygýtýný ilklendirmede hata"
+
+#: libparted/arch/linux.c:928
+#, c-format
+msgid ""
+"The device %s has zero length, and can't possibly store a file system or "
+"partition table.  Perhaps you selected the wrong device?"
+msgstr ""
+"%s aygýtý sýfýr-uzunlukta ve muhtemelen bir dosya sistemi ya da bölümleme "
+"tablosu depolayamýyor.  Yanlýþ aygýtý seçmiþ olmayasýnýz?"
+
+#: libparted/arch/linux.c:1032
+#, c-format
+msgid ""
+"Unable to determine geometry of file/device %s.  You should not use Parted "
+"unless you REALLY know what you're doing!"
+msgstr ""
+"%s Dosya/aygýtýnýn geometrisi belirlenemedi.  CÝDDEN ne yaptýðýnýzý "
+"bilmiyorsanýz Parted kullanmamalýsýnýz!"
+
+#: libparted/arch/linux.c:1110
+msgid "DAC960 RAID controller"
+msgstr "DAC960 RAID denetleyici"
+
+#: libparted/arch/linux.c:1115
+msgid "Promise SX8 SATA Device"
+msgstr "Promise SX8 SATA Aygýtý"
+
+#: libparted/arch/linux.c:1120
+msgid "IBM S390 DASD drive"
+msgstr "IBM S390 DASD sürücüsü"
+
+#: libparted/arch/linux.c:1125
+msgid "IBM iSeries Virtual DASD"
+msgstr "IBM iSeries Virtual DASD"
+
+#: libparted/arch/linux.c:1130
+msgid "Compaq Smart Array"
+msgstr "Compaq Akýllý Dizi"
+
+#: libparted/arch/linux.c:1135
+msgid "ATARAID Controller"
+msgstr "ATARAID Denetleyici"
+
+#: libparted/arch/linux.c:1140
+msgid "I2O Controller"
+msgstr "I20 Denetleyici"
+
+#: libparted/arch/linux.c:1145
+msgid "User-Mode Linux UBD"
+msgstr "Kullanýcý Kipi Linux UBD"
+
+#: libparted/arch/linux.c:1156
+msgid "Linux device-mapper"
+msgstr "Linux aygýt-eþlemleyicisi"
+
+#: libparted/arch/linux.c:1162
+msgid "Unknown"
+msgstr "Bilinmeyen"
+
+#: libparted/arch/linux.c:1169
+msgid "ped_device_new()  Unsupported device type"
+msgstr "ped_device_new()  Desteklenmeyen aygýt türü"
+
+#: libparted/arch/linux.c:2083
+#, c-format
+msgid ""
+"Error informing the kernel about modifications to partition %s -- %s.  This "
+"means Linux won't know about any changes you made to %s until you reboot -- "
+"so you shouldn't mount it or use it in any way before rebooting."
+msgstr ""
+"%1$s - %2$s disk bölümündeki deðiþiklikler hakkýnda kerneli bilgilendirmede "
+"hata.  Bu, siz (bilgisayarý) yeniden açana dek %3$s'e yaptýðýnýz "
+"deðiþiklikleri Linux'un bilmemesi demek - dolayýsýyla yeniden açmadan "
+"herhangi bir þekilde baðlamamalý ya da kullanmamalýsýnýz."
+
+#: libparted/arch/linux.c:2262
+#, c-format
+msgid ""
+"parted was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made. "
+msgstr ""
+"parted, %1$s (%2$s) üzerindeki disk bölümleme tablosunu yeniden okuyamadý.  "
+"Bu, siz (bilgisayarý) yeniden açana dek yaptýðýnýz deðiþiklikleri Linux'un "
+"bilmemesi demek. "
+
+#: libparted/arch/linux.c:2368
+#, c-format
+msgid ""
+"The kernel was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made until you "
+"reboot.  You should reboot your computer before doing anything with %s."
+msgstr ""
+"Kernel, %1$s (%2$s) üzerindeki disk bölümleme tablosunu yeniden okuyamadý.  "
+"Bu, siz (bilgisayarý) yeniden açana dek yaptýðýnýz deðiþiklikleri Linux'un "
+"bilmemesi demek...  %3$s ile ilgili herhangi bir þey yapmadan "
+"bilgisayarýnýzý yeniden açmalýsýnýz."
+
+#: libparted/cs/geom.c:162
+msgid "Can't have the end before the start!"
+msgstr "Baþlangýçtan önce son gelemez!"
+
+#: libparted/cs/geom.c:169
+msgid "Can't have a partition outside the disk!"
+msgstr "Disk bölümü disk dýþýnda bulunamaz!"
+
+#: libparted/cs/geom.c:366
+#, c-format
+msgid "Attempt to write sectors %ld-%ld outside of partition on %s."
+msgstr ""
+"%3$s üzerindeki disk bölümünün dýþýnda yeralan %1$ld-%2$ld sektörlere "
+"yazmaya çalýþýlýyor."
+
+#: libparted/cs/geom.c:406 libparted/fs/linux_swap/linux_swap.c:475
+msgid "checking for bad blocks"
+msgstr "hatalý blok aranýyor"
+
+#: libparted/debug.c:102
+#, c-format
+msgid "Backtrace has %d calls on stack:\n"
+msgstr ""
+
+#: libparted/debug.c:114
+#, c-format
+msgid "Assertion (%s) at %s:%d in function %s() failed."
+msgstr ""
+
+#: libparted/disk.c:203
+#, c-format
+msgid "Unable to open %s - unrecognised disk label."
+msgstr "%s açýlamýyor - tanýnmayan disk etiketi."
+
+#: libparted/disk.c:471
+#, c-format
+msgid ""
+"This libparted doesn't have write support for %s.  Perhaps it was compiled "
+"read-only."
+msgstr ""
+"Bu libparted'in %s için yazma desteði yok.  Belki de salt-okunur olarak "
+"derlenmiþtir."
+
+#: libparted/disk.c:598
+#, c-format
+msgid "Partition %d is %s, but the file system is %s."
+msgstr "%1$d disk bölümü %2$s, fakat dosya sistemi %3$s'dir."
+
+#: libparted/disk.c:1075
+#, c-format
+msgid "%s disk labels do not support extended partitions."
+msgstr "%s disk etiketleri ek disk bölümlerini desteklemiyor."
+
+#: libparted/disk.c:1634
+#, c-format
+msgid "%s disk labels don't support logical or extended partitions."
+msgstr "%s disk etiketleri mantýksal ya da ek disk bölümlerini desteklemiyor."
+
+#: libparted/disk.c:1647
+msgid "Too many primary partitions."
+msgstr "Çok fazla birincil disk bölümü"
+
+#: libparted/disk.c:1656
+#, c-format
+msgid ""
+"Can't add a logical partition to %s, because there is no extended partition."
+msgstr "%s'e mantýksal disk bölümü eklenemez, çünkü ek disk bölümü yok."
+
+#: libparted/disk.c:1680
+#, c-format
+msgid "Can't have more than one extended partition on %s."
+msgstr "%s üzerinde birden fazla ek disk bölümü olamaz"
+
+#: libparted/disk.c:1690
+msgid "Can't have logical partitions outside of the extended partition."
+msgstr "Ek disk bölümü dýþýnda mantýksal disk bölümleri olamaz."
+
+#: libparted/disk.c:1715
+#, c-format
+msgid "Can't have a logical partition outside of the extended partition on %s."
+msgstr "%s üzerinde ek disk bölümü dýþýnda mantýksal disk bölümleri olamaz."
+
+#: libparted/disk.c:1725 libparted/disk.c:1779 libparted/disk.c:1945
+msgid "Can't have overlapping partitions."
+msgstr "Örtüþen disk bölümleri olamaz"
+
+#: libparted/disk.c:1733
+msgid "Can't have a primary partition inside an extended partition."
+msgstr "Bir ek disk bölümü içinde birincil disk bölümü bulunamaz."
+
+#: libparted/disk.c:2140
+msgid "metadata"
+msgstr "metaverisi"
+
+#: libparted/disk.c:2142
+msgid "free"
+msgstr "kullanýlmamýþ"
+
+#: libparted/disk.c:2144 parted/ui.c:1169 parted/ui.c:1197
+msgid "extended"
+msgstr "ek"
+
+#: libparted/disk.c:2146 parted/ui.c:1173 parted/ui.c:1201
+msgid "logical"
+msgstr "mantýksal"
+
+#: libparted/disk.c:2148 parted/ui.c:1165 parted/ui.c:1193
+msgid "primary"
+msgstr "birincil"
+
+#: libparted/disk.c:2164
+msgid "boot"
+msgstr "önyükleme"
+
+#: libparted/disk.c:2166
+msgid "root"
+msgstr "kök"
+
+#: libparted/disk.c:2168
+msgid "swap"
+msgstr "takas"
+
+#: libparted/disk.c:2170
+msgid "hidden"
+msgstr "gizli"
+
+#: libparted/disk.c:2172
+msgid "raid"
+msgstr "raid"
+
+#: libparted/disk.c:2174
+msgid "lvm"
+msgstr "lvm"
+
+#: libparted/disk.c:2176
+msgid "lba"
+msgstr "lba"
+
+#: libparted/disk.c:2178
+msgid "hp-service"
+msgstr "hp-servisi"
+
+#: libparted/disk.c:2180
+msgid "palo"
+msgstr "palo"
+
+#: libparted/disk.c:2182
+msgid "prep"
+msgstr "prep"
+
+#: libparted/disk.c:2184
+msgid "msftres"
+msgstr "msftres"
+
+#: libparted/disk.c:2190
+#, c-format
+msgid "Unknown partition flag, %d."
+msgstr "Bilinmeyen.disk bölümü bayraðý, %d."
+
+#: libparted/exception.c:78
+msgid "Information"
+msgstr "Bilgi"
+
+#: libparted/exception.c:79
+msgid "Warning"
+msgstr "Uyarý"
+
+#: libparted/exception.c:80
+msgid "Error"
+msgstr "Hata"
+
+#: libparted/exception.c:81
+msgid "Fatal"
+msgstr "Ölümcül"
+
+#: libparted/exception.c:82
+msgid "Bug"
+msgstr "Yazýlým hatasý"
+
+#: libparted/exception.c:83
+msgid "No Implementation"
+msgstr "Uyarlama yok"
+
+#: libparted/exception.c:87
+msgid "Fix"
+msgstr "Onar"
+
+#: libparted/exception.c:88
+msgid "Yes"
+msgstr "Evet"
+
+#: libparted/exception.c:89
+msgid "No"
+msgstr "Hayýr"
+
+#: libparted/exception.c:90
+msgid "OK"
+msgstr "Tamam"
+
+#: libparted/exception.c:91
+msgid "Retry"
+msgstr "Yeniden dene"
+
+#: libparted/exception.c:92
+msgid "Ignore"
+msgstr "Yoksay"
+
+#: libparted/exception.c:93
+msgid "Cancel"
+msgstr "Vazgeç"
+
+#: libparted/exception.c:133
+#, c-format
+msgid ""
+"A bug has been detected in GNU Parted.  Refer to the web site of parted "
+"http://www.gnu.org/software/parted/parted.html for more informations of what "
+"could be useful for bug submitting!  Please email a bug report to bug-"
+"parted@gnu.org containing at least the version (%s) and the following "
+"message:  "
+msgstr ""
+"GNU parted'da bir yazýlým hatasý saptandý.  Hata bildirmek için daha fazla "
+"bilgiye ulaþmak üzere parted'ýn web sitesine baþvurun: http://www.gnu.org/"
+"software/parted/parted.html!  Lütfen bug-parted@gnu.org'a sürüm (%s) ve "
+"aþaðýdaki mesajý içeren bir yazýlým hatasý raporu gönderin:  "
+
+#: libparted/filesys.c:384
+msgid "Could not detect file system."
+msgstr "Dosya sistemi saptanamýyor."
+
+#: libparted/filesys.c:395
+msgid "The file system is bigger than its volume!"
+msgstr "Dosya sistemi oylumundan daha büyük!"
+
+#: libparted/filesys.c:403
+#, c-format
+msgid "Support for opening %s file systems is not implemented yet."
+msgstr "%s dosya sistemlerini açmak için destek henüz saðlanmamýþtýr."
+
+#: libparted/filesys.c:445
+#, c-format
+msgid "Support for creating %s file systems is not implemented yet."
+msgstr "%s dosya sistemlerini oluþturmak için destek henüz saðlanmamýþtýr."
+
+#: libparted/filesys.c:505
+#, c-format
+msgid "Support for checking %s file systems is not implemented yet."
+msgstr "%s dosya sistemlerini kontrol etmek için destek henüz saðlanmamýþtýr."
+
+#: libparted/filesys.c:571
+msgid "raw block copying"
+msgstr "ham blok kopyalama"
+
+#: libparted/filesys.c:582
+msgid "growing file system"
+msgstr "büyüyen dosya sistemi"
+
+#: libparted/filesys.c:622
+msgid "Can't copy onto an overlapping partition."
+msgstr "Çakýþan disk bölümlerinin üzerine kopyalanamýyor."
+
+#: libparted/filesys.c:644
+#, c-format
+msgid ""
+"Direct support for copying file systems is not yet implemented for %s.  "
+"However, support for resizing is implemented.  Therefore, the file system "
+"can be copied if the new partition is at least as big as the old one.  So, "
+"either shrink the partition you are trying to copy, or copy to a bigger "
+"partition."
+msgstr ""
+"%s için dosya sistemlerini kopyalamaya direkt destek henüz saðlanmamýþtýr.  "
+"Ancak yeniden boyutlandýrma desteði mevcut.  Bu nedenle, eðer yeni disk "
+"bölümü en az eskisi kadar büyükse, dosya sistemi kopyalanabilir.  "
+"Dolayýsýyla, ya kopyalamaya çalýþtýðýnýz disk bölümünü küçültün, ya da daha "
+"büyük bir disk bölümüne kopyalayýn."
+
+#: libparted/filesys.c:658
+#, c-format
+msgid "Support for copying %s file systems is not implemented yet."
+msgstr "%s dosya sistemlerini kopyalamak için destek henüz saðlanmamýþtýr."
+
+#: libparted/filesys.c:696
+#, c-format
+msgid "Support for resizing %s file systems is not implemented yet."
+msgstr ""
+"%s dosya sistemlerini yeniden boyutlandýrmak için destek henüz "
+"saðlanmamýþtýr."
+
+#: libparted/fs/reiserfs/reiserfs.c:315
+msgid "creating"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:402
+#, fuzzy
+msgid "The file system is in an invalid state.  Perhaps it is mounted?"
+msgstr "Dosya sistemi oylumundan daha büyük!"
+
+#: libparted/fs/reiserfs/reiserfs.c:410
+msgid "The file system is in old (unresizeable) format."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:416
+msgid "Invalid free blocks count.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:431
+#, fuzzy
+msgid "checking"
+msgstr "check"
+
+#: libparted/fs/reiserfs/reiserfs.c:437
+msgid "Reiserfs tree seems to be corrupted.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:449
+#, fuzzy
+msgid ""
+"The reiserfs file system passed a basic check.  For a more comprehensive "
+"check, run reiserfsck --check."
+msgstr ""
+"ext2 dosya sistemi temel bir kontrolü geçti.  Daha kapsamlý bir kontrol için "
+"e2fsck programýný kullanýnýz."
+
+#: libparted/fs/reiserfs/reiserfs.c:474
+#, fuzzy
+msgid "Sorry, can't move the start of reiserfs partitions yet."
+msgstr "Üzgünüm, henüz ext2 disk bölümlerinin baþlangýcý taþýnamýyor!"
+
+#: libparted/fs/reiserfs/reiserfs.c:490
+msgid "Couldn't reopen device abstraction layer for read/write."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:508 libparted/fs/ext2/ext2_resize.c:552
+#: libparted/fs/hfs/hfs.c:250 libparted/fs/hfs/hfs.c:629
+msgid "shrinking"
+msgstr "küçültülüyor"
+
+#: libparted/fs/reiserfs/reiserfs.c:520
+#, fuzzy
+msgid "expanding"
+msgstr "Uyarý"
+
+#: libparted/fs/reiserfs/reiserfs.c:592
+msgid "Couldn't create reiserfs device abstraction handler."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:606
+#, fuzzy, c-format
+msgid "Device is too small for %lu blocks."
+msgstr "ext2 için dosya sistemi çok küçük."
+
+#: libparted/fs/reiserfs/reiserfs.c:615
+msgid "copying"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:682
+#, c-format
+msgid "Couldn't resolve symbol %s.  Error: %s."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:704
+msgid "GNU Parted found an invalid libreiserfs library."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:715
+#, c-format
+msgid ""
+"GNU Parted has detected libreiserfs interface version mismatch.  Found %d-%"
+"d, required %d. ReiserFS support will be disabled."
+msgstr ""
+
+#: libparted/labels/aix.c:137
+#, fuzzy
+msgid "Support for reading AIX disk labels is is not implemented yet."
+msgstr "%s dosya sistemlerini oluþturmak için destek henüz saðlanmamýþtýr."
+
+#: libparted/labels/aix.c:148
+#, fuzzy
+msgid "Support for writing AIX disk labels is is not implemented yet."
+msgstr "%s dosya sistemlerini oluþturmak için destek henüz saðlanmamýþtýr."
+
+#: libparted/labels/aix.c:161
+#, fuzzy
+msgid ""
+"Support for adding partitions to AIX disk labels is not implemented yet."
+msgstr "%s dosya sistemlerini oluþturmak için destek henüz saðlanmamýþtýr."
+
+#: libparted/labels/aix.c:171
+#, fuzzy
+msgid ""
+"Support for duplicating partitions in AIX disk labels is not implemented yet."
+msgstr "%s dosya sistemlerini oluþturmak için destek henüz saðlanmamýþtýr."
+
+#: libparted/labels/aix.c:189
+#, fuzzy
+msgid ""
+"Support for setting system type of partitions in AIX disk labels is not "
+"implemented yet."
+msgstr "%s dosya sistemlerini oluþturmak için destek henüz saðlanmamýþtýr."
+
+#: libparted/labels/aix.c:199
+#, fuzzy
+msgid "Support for setting flags in AIX disk labels is not implemented yet."
+msgstr "%s dosya sistemlerini oluþturmak için destek henüz saðlanmamýþtýr."
+
+#: libparted/labels/bsd.c:501 libparted/labels/dasd.c:755
+#: libparted/labels/dos.c:1974 libparted/labels/dvh.c:770
+#: libparted/labels/gpt.c:1448 libparted/labels/loop.c:248
+#: libparted/labels/mac.c:1408 libparted/labels/pc98.c:759
+#: libparted/labels/rdb.c:1041 libparted/labels/sun.c:705
+msgid "Unable to satisfy all constraints on the partition."
+msgstr "Disk bölümü üzerindeki tüm koþullar karþýlanamadý."
+
+#: libparted/labels/bsd.c:526
+msgid "Unable to allocate a bsd disklabel slot."
+msgstr "Bir bsd disk etiketi yuvasý tahsis edilemedi"
+
+#: libparted/labels/dasd.c:166
+#, fuzzy
+msgid "Unable to determine the block size of this dasd"
+msgstr "%1$s (%2$s)'in boyutu belirlenemedi"
+
+#: libparted/labels/dasd.c:781
+#, fuzzy
+msgid "Unable to allocate a dasd disklabel slot"
+msgstr "Bir bsd disk etiketi yuvasý tahsis edilemedi"
+
+#: libparted/labels/dos.c:827
+#, c-format
+msgid "Invalid partition table on %s -- wrong signature %x."
+msgstr "%1$s üzerinde geçersiz disk bölümleme tablosu - yanlýþ imza %2$x"
+
+#: libparted/labels/dos.c:855
+#, c-format
+msgid "Invalid partition table - recursive partition on %s."
+msgstr ""
+"Geçersiz disk bölümleme tablosu - %s üzerinde özyinelemeli disk bölümü."
+
+#: libparted/labels/dos.c:1318
+msgid "Extended partitions cannot be hidden on msdos disk labels."
+msgstr "Msdos disk etiketlerinde ek disk bölümleri gizli olamaz."
+
+#: libparted/labels/dos.c:1958
+msgid "Parted can't resize partitions managed by Windows Dynamic Disk."
+msgstr ""
+"Parted, Windows Dinamik Disk tarafýndan yönetilen bölümleri yeniden "
+"boyutlayamaz."
+
+#: libparted/labels/dvh.c:190
+#, c-format
+msgid "%s has no extended partition (volume header partition)."
+msgstr "%s'in ek disk bölümü (oylum baþlýðý disk bölümü) yok."
+
+#: libparted/labels/dvh.c:313
+msgid "Checksum is wrong, indicating the partition table is corrupt."
+msgstr ""
+"Saðlama toplamý, disk bölümleme tablosunun bozuk olduðunu belirtir þekilde "
+"yanlýþ."
+
+#: libparted/labels/dvh.c:616
+msgid "Only primary partitions can be root partitions."
+msgstr "Yalnýzca birincil disk bölümleri kök disk bölümü olabilir."
+
+#: libparted/labels/dvh.c:630
+msgid "Only primary partitions can be swap partitions."
+msgstr "Yalnýzca birincil disk bölümleri takas disk bölümleri olabilir."
+
+#: libparted/labels/dvh.c:644
+msgid "Only logical partitions can be a boot file."
+msgstr "Yalnýzca mantýksal disk bölümleri bir önyükleme dosyasý olabilir."
+
+#: libparted/labels/dvh.c:721
+msgid "Only logical partitions (boot files) have a name."
+msgstr ""
+"Yalnýzca mantýksal disk bölümlerinin (önyükleme dosyalarý) bir adý olabilir."
+
+#: libparted/labels/dvh.c:812
+msgid "Too many primary partitions"
+msgstr "Çok fazla birincil disk bölümü"
+
+#: libparted/labels/fdasd.c:103
+#, c-format
+msgid ""
+"%s open error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:107
+#, c-format
+msgid ""
+"%s seek error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:110
+#, c-format
+msgid ""
+"%s read error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:113
+#, fuzzy, c-format
+msgid ""
+"%s write error\n"
+"%s\n"
+msgstr "%2$s'e yazma sýrasýnda %1$s"
+
+#: libparted/labels/fdasd.c:116
+#, c-format
+msgid ""
+"%s IOCTL error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:119
+#, c-format
+msgid ""
+"%s API version mismatch\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:122
+#, c-format
+msgid ""
+"%s Unsupported disk type\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:126
+#, c-format
+msgid ""
+"%s Unsupported disk format\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:130
+#, fuzzy, c-format
+msgid ""
+"%s Disk in use\n"
+"%s\n"
+msgstr "Disk %1$s: %2$s\n"
+
+#: libparted/labels/fdasd.c:133
+#, c-format
+msgid ""
+"%s Config file syntax error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:137
+#, c-format
+msgid ""
+"%s Volume label is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:141
+#, c-format
+msgid ""
+"%s a data set name is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:145
+#, c-format
+msgid ""
+"%s space allocation\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:149
+#, c-format
+msgid ""
+"%s device verification failed\n"
+"The specified device is not a valid DASD device\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:154
+#, c-format
+msgid ""
+"%s Fatal error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/gpt.c:454
+#, c-format
+msgid ""
+"%s contains GPT signatures, indicating that it has a GPT table.  However, it "
+"does not have a valid fake msdos partition table, as it should.  Perhaps it "
+"was corrupted -- possibly by a program that doesn't understand GPT partition "
+"tables.  Or perhaps you deleted the GPT table, and are now using an msdos "
+"partition table.  Is this a GPT partition table?"
+msgstr ""
+"%s, GPT tablosu içerdiðini belirten GPT imzalarýna sahip.  Ayrýca, olmasý "
+"gerekenin aksine, geçerli sahte msdos disk bölümleme tablosu yok.  Belki GPT "
+"disk bölümleme tablolarýndan anlamayan bir program tarafýndan bozulmuþtur.  "
+"Ya da belki siz GPT tablosunu sildiniz ve þimdi bir msdos disk bölümleme "
+"tablosu kullanmaktasýnýz.  Bu bir GPT disk bölümleme tablosu mu?"
+
+#: libparted/labels/gpt.c:648
+#, c-format
+msgid ""
+"The format of the GPT partition table is version %x, which is newer than "
+"what Parted can recognise.  Please tell us!  bug-parted@gnu.org"
+msgstr ""
+"GPT disk bölümleme tablosu biçemi sürüm %x olup, Parted'ýn "
+"tanýyabileceðinden daha yenidir.  Lütfen bize bildirin!  bug-parted@gnu.org"
+
+#: libparted/labels/gpt.c:698
+#, c-format
+msgid ""
+"Not all of the space available to %s appears to be used, you can fix the GPT "
+"to use all of the space (an extra %llu blocks) or continue with the current "
+"setting? "
+msgstr ""
+"%s için kullanýlabilir boþluðun tamamý kullanýlmamýþ görünüyor, GPT'yi "
+"ayarlayýp tüm mevcut boþluðu (%llu ek blok) kullanabilir ya da mevcut ayarla "
+"devam edebilirsiniz?"
+
+#: libparted/labels/gpt.c:827
+msgid ""
+"The backup GPT table is not at the end of the disk, as it should be.  This "
+"might mean that another operating system believes the disk is smaller.  Fix, "
+"by moving the backup to the end (and removing the old backup)?"
+msgstr ""
+"GPT tablosunun yedeði, olmasý gerektiði gibi diskin sonunda deðil.  Bu, bir "
+"baþka iþletim sisteminin diski olduðundan küçük sanmasý anlamýna gelebilir.  "
+"Yedeði sona taþýyarak (ve eski yedeði silerek) onarýnýz?"
+
+#: libparted/labels/gpt.c:862
+msgid ""
+"The primary GPT table is corrupt, but the backup appears OK, so that will be "
+"used."
+msgstr ""
+"Birincil GPT tablosu bozuk, ama yedek tamam görünüyor, dolayýsýyla yedek "
+"kullanýlacak."
+
+#: libparted/labels/gpt.c:870
+msgid ""
+"Both the primary and backup GPT tables are corrupt.  Try making a fresh "
+"table, and using Parted's rescue feature to recover partitions."
+msgstr ""
+"Hem birincil, hem de yedek GPT tablosu bozuk.  Yeni bir tablo oluþturmayý ve "
+"Parted'ýn kurtarma özelliðini kullanarak disk bölümlerini kurtarmayý deneyin."
+
+#: libparted/labels/mac.c:181
+#, c-format
+msgid "Invalid signature %x for Mac disk labels."
+msgstr "Mac disk etiketleri için geçersiz imza %x."
+
+#: libparted/labels/mac.c:226
+msgid "Partition map has no partition map entry!"
+msgstr "Disk bölümü eþleminin disk bölümü eþlem girdisi yok!"
+
+#: libparted/labels/mac.c:273
+#, c-format
+msgid "%s is too small for a Mac disk label!"
+msgstr "%s, bir Mac disk etiketi için çok küçük!"
+
+#: libparted/labels/mac.c:532
+#, c-format
+msgid "Partition %d has an invalid signature %x."
+msgstr "%d disk bölümü geçersiz imzaya sahip %x."
+
+#: libparted/labels/mac.c:550
+#, c-format
+msgid "Partition %d has an invalid length of 0 bytes!"
+msgstr "%d disk bölümü 0 baytlýk geçersiz uzunluða sahip!"
+
+#: libparted/labels/mac.c:580
+msgid "The data region doesn't start at the start of the partition."
+msgstr "Veri bölgesi, disk bölümünün baþýndan baþlamýyor"
+
+#: libparted/labels/mac.c:597
+msgid "The boot region doesn't start at the start of the partition."
+msgstr "Önyükleme bölgesi, disk bölümünün baþýndan baþlamýyor"
+
+#: libparted/labels/mac.c:611
+msgid "The partition's boot region doesn't occupy the entire partition."
+msgstr "Disk bölümünün önyükleme bölgesi tüm disk bölümünü kaplamýyor."
+
+#: libparted/labels/mac.c:622
+msgid "The partition's data region doesn't occupy the entire partition."
+msgstr "Disk bölümünün veri bölgesi tüm disk bölümünü kaplamýyor."
+
+#: libparted/labels/mac.c:675
+#, c-format
+msgid ""
+"Weird block size on device descriptor: %d bytes is not divisible by 512."
+msgstr "Aygýt tanýmlayýcýsýnda tuhaf blok boyutu: %d bayt, 512'ye bölünemiyor."
+
+#: libparted/labels/mac.c:688
+#, c-format
+msgid ""
+"The driver descriptor says the physical block size is %d bytes, but Linux "
+"says it is %d bytes."
+msgstr ""
+"Sürücü tanýmlayýcýsý fiziksel blok boyutunun %d bayt olduðunu, Linux %d bayt "
+"olduðunu bildiriyor.."
+
+#: libparted/labels/mac.c:736
+msgid "No valid partition map found."
+msgstr "Geçerli disk bölümü eþlemi bulunamadý."
+
+#: libparted/labels/mac.c:795
+#, c-format
+msgid ""
+"Conflicting partition map entry sizes!  Entry 1 says it is %d, but entry %d "
+"says it is %d!"
+msgstr ""
+"Çeliþen disk bölümü eþlem girdi boyutlarý!  1. Girdi %1$d olduðunu, ancak %2"
+"$d. girdi %3$d olduðunu bildiriyor!"
+
+#: libparted/labels/mac.c:822
+msgid "Weird!  There are 2 partitions map entries!"
+msgstr "Tuhaf!-  2 disk bölümü eþlem girdisi mevcut!"
+
+#: libparted/labels/mac.c:1347
+msgid ""
+"Changing the name of a root or swap partition will prevent Linux from "
+"recognising it as such."
+msgstr ""
+"Bir kök ya da takas disk bölümünün adýný deðiþtirmek, Linux'un onu olduðu "
+"gibi tanýmasýný engelleyecek."
+
+#: libparted/labels/mac.c:1443
+msgid "Can't add another partition -- the partition map is too small!"
+msgstr "Bir baþka disk bölümü eklenemiyor -- disk bölüm eþlemi çok küçük!"
+
+#: libparted/labels/pc98.c:354
+#, c-format
+msgid "Invalid partition table on %s."
+msgstr "%s üzerinde geçersiz disk bölümleme tablosu."
+
+#: libparted/labels/pc98.c:406 libparted/labels/pc98.c:484
+#, c-format
+msgid ""
+"Partition %d isn't aligned to cylinder boundaries.  This is still "
+"unsupported."
+msgstr ""
+"%d disk bölümü silindir sýnýrlarýna hizalanmamýþ.  Bu hala desteklenmiyor."
+
+#: libparted/labels/pc98.c:791
+msgid "Can't add another partition."
+msgstr "Bir baþka disk bölümü eklenemiyor."
+
+#: libparted/labels/rdb.c:162
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s."
+msgstr "%1$s : %3$s türündeki %2$llu bloðunda bozuk saðlama toplamý"
+
+#: libparted/labels/rdb.c:497
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen."
+msgstr "%s : rdb bloðu bulunamadý, asla olmamalý(ydý)."
+
+#: libparted/labels/rdb.c:581
+#, c-format
+msgid "%s : Loop detected at block %d."
+msgstr "%1$s : Blok %2$d'de döngü saptandý."
+
+#: libparted/labels/rdb.c:600
+#, c-format
+msgid "%s : The %s list seems bad at block %s."
+msgstr "%1$s : %2$s listesi %3$s bloðunda bozuk görünüyor."
+
+#: libparted/labels/rdb.c:689
+#, c-format
+msgid "%s : Failed to list bad blocks."
+msgstr "%s : Hatalý bloklarý listeleme baþarýsýz."
+
+#: libparted/labels/rdb.c:697
+#, c-format
+msgid "%s : Failed to list partition blocks."
+msgstr "%s : Bölümleme bloklarýný listeleme baþarýsýz."
+
+#: libparted/labels/rdb.c:705
+#, c-format
+msgid "%s : Failed to list file system blocks."
+msgstr "%s : Dosya sistemi bloklarýný listeleme baþarýsýz"
+
+#: libparted/labels/rdb.c:713
+#, c-format
+msgid "%s : Failed to list boot blocks."
+msgstr "%s : Önyükleme bloklarýný listeleme baþarýsýz."
+
+#: libparted/labels/rdb.c:740
+#, c-format
+msgid "Failed to write partition block at %d."
+msgstr "%d'ye bölümleme bloðu yazýmý baþarýsýz."
+
+#: libparted/labels/rdb.c:1069
+msgid "Unable to allocate a partition number."
+msgstr "Bir disk bölümü numarasý atanamadý."
+
+#: libparted/labels/sun.c:145
+msgid "Corrupted Sun disk label detected."
+msgstr "Bozuk Sun disk etiketi saptandý."
+
+#: libparted/labels/sun.c:266
+#, c-format
+msgid ""
+"The disk CHS geometry (%d,%d,%d) reported by the operating system does not "
+"match the geometry stored on the disk label (%d,%d,%d)."
+msgstr ""
+"Disk CHS geometrisi (%d,%d,%d), disk etiketinde saklanan geometriye (%d,%d,%"
+"d).uymuyor."
+
+#: libparted/labels/sun.c:288
+#, c-format
+msgid "The disk label describes a disk bigger than %s."
+msgstr "Disk etiketi, %s'den daha büyük bir disk tanýmlýyor."
+
+#: libparted/labels/sun.c:442
+#, c-format
+msgid "The disk has %d cylinders, which is greater than the maximum of 65536."
+msgstr "Disk %d silindire sahip ki bu maksimum 65536'dan daha çok."
+
+#: libparted/labels/sun.c:737
+msgid ""
+"The Whole Disk partition is the only available one left.  Generally, it is "
+"not a good idea to overwrite this partition with a real one.  Solaris may "
+"not be able to boot without it, and SILO (the sparc boot loader) appreciates "
+"it as well."
+msgstr ""
+"Geride yalnýzca Tüm Disk disk bölümü kaldý.  Genellikle, bu disk bölümünün "
+"üzerine bir gerçeðini yazmak iyi bir fikir deðildir.  Solaris onsuz "
+"açýlmayabilir, ve SILO da (sparc önyükleyicisi) ona deðer verir."
+
+#: libparted/labels/sun.c:752
+msgid "Sun disk label is full."
+msgstr "Sun disk etiketi doldu."
+
+#: libparted/labels/vtoc.c:163
+#, c-format
+msgid ""
+"%s opening device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:167
+#, c-format
+msgid ""
+"%s seeking device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:171
+#, c-format
+msgid ""
+"%s writing to device '%s' failed,\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:175
+#, c-format
+msgid ""
+"%s reading from device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:179
+#, c-format
+msgid "Fatal error\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:418
+msgid "Could not read VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:424
+msgid "Could not read VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:431
+msgid "Could not read VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:438
+msgid "Could not read VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:445
+msgid "Could not read VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:462
+msgid "Could not write VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:468
+msgid "Could not write VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:475
+msgid "Could not write VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:482
+msgid "Could not write VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:489
+msgid "Could not write VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/libparted.c:296 libparted/libparted.c:316
+msgid "Out of memory."
+msgstr "Yetersiz bellek"
+
+#: libparted/unit.c:139
+msgid "Cannot get unit size for special unit 'COMPACT'."
+msgstr "Özel birim 'COMPACT' için birim boyutu alýnamýyor."
+
+#: libparted/unit.c:386
+#, c-format
+msgid "\"%s\" has invalid syntax for locations."
+msgstr "\"%s\" yerleþimler için geçersiz yazýma sahip."
+
+#: libparted/unit.c:394
+#, c-format
+msgid "The maximum head value is %d."
+msgstr "Maksimum kafa deðeri %d."
+
+#: libparted/unit.c:401
+#, c-format
+msgid "The maximum sector value is %d."
+msgstr "Maksimum sektör deðeri %d."
+
+#: libparted/unit.c:413 libparted/unit.c:545
+#, c-format
+msgid "The location %s is outside of the device %s."
+msgstr "%1$s yerleþimi %2$s aygýtýnýn dýþýnda."
+
+#: libparted/unit.c:527
+msgid "Invalid number."
+msgstr "Geçersiz numara."
+
+#: libparted/fs/amiga/affs.c:63 libparted/fs/amiga/apfs.c:56
+#: libparted/fs/amiga/asfs.c:70
+#, fuzzy, c-format
+msgid "%s : Failed to allocate partition block\n"
+msgstr "%s : Bölümleme bloklarýný listeleme baþarýsýz."
+
+#: libparted/fs/amiga/affs.c:78 libparted/fs/amiga/apfs.c:70
+#: libparted/fs/amiga/asfs.c:86
+#, fuzzy, c-format
+msgid "%s : Failed to allocate block\n"
+msgstr "%s : Önyükleme bloklarýný listeleme baþarýsýz."
+
+#: libparted/fs/amiga/affs.c:83 libparted/fs/amiga/apfs.c:75
+#, fuzzy, c-format
+msgid "%s : Couldn't read boot block %llu\n"
+msgstr "%1$s : Blok %2$d'de döngü saptandý."
+
+#: libparted/fs/amiga/affs.c:99 libparted/fs/amiga/apfs.c:86
+#: libparted/fs/amiga/asfs.c:92 libparted/fs/amiga/asfs.c:106
+#, fuzzy, c-format
+msgid "%s : Couldn't read root block %llu\n"
+msgstr "%1$s : Blok %2$d'de döngü saptandý."
+
+#: libparted/fs/amiga/amiga.c:72
+#, fuzzy, c-format
+msgid "%s : Failed to allocate id list element\n"
+msgstr "%s : Hatalý bloklarý listeleme baþarýsýz."
+
+#: libparted/fs/amiga/amiga.c:189
+#, c-format
+msgid "%s : Couldn't read block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:202
+#, fuzzy, c-format
+msgid "%s : Bad checksum on block %llu of type %s\n"
+msgstr "%1$s : %3$s türündeki %2$llu bloðunda bozuk saðlama toplamý"
+
+#: libparted/fs/amiga/amiga.c:212
+#, fuzzy, c-format
+msgid "%s : Couldn't write block %d\n"
+msgstr "%1$s : Blok %2$d'de döngü saptandý."
+
+#: libparted/fs/amiga/amiga.c:278
+#, fuzzy, c-format
+msgid "%s : Failed to allocate disk_specific rdb block\n"
+msgstr "%s : Hatalý bloklarý listeleme baþarýsýz."
+
+#: libparted/fs/amiga/amiga.c:289
+#, fuzzy, c-format
+msgid "%s : Didn't find rdb block, should never happen\n"
+msgstr "%s : rdb bloðu bulunamadý, asla olmamalý(ydý)."
+
+#: libparted/fs/amiga/amiga.c:318
+#, fuzzy, c-format
+msgid "%s : Failed to read partition block %llu\n"
+msgstr "%s : Bölümleme bloklarýný listeleme baþarýsýz."
+
+#: libparted/fs/ext2/ext2.c:87 libparted/fs/ext2/ext2.c:112
+msgid "Inconsistent group descriptors!"
+msgstr "Tutarsýz grup tanýmlayýcýlarý!"
+
+#: libparted/fs/ext2/ext2.c:91 libparted/fs/ext2/ext2.c:116
+msgid "File system full!"
+msgstr "Dosya sistemi dolu!"
+
+#: libparted/fs/ext2/ext2.c:686
+msgid "Invalid superblock.  Are you sure this is an ext2 file system?"
+msgstr ""
+"Geçersiz süperblok.  Bunun bir ext2 dosya sistemi olduðundan emin misiniz?"
+
+#: libparted/fs/ext2/ext2.c:700 libparted/fs/ext2/ext2_resize.c:658
+msgid "File system has errors!  You should run e2fsck."
+msgstr "Dosya sisteminde hatalar var!  e2fsck'yi yürütün."
+
+#: libparted/fs/ext2/ext2.c:711
+msgid ""
+"File system was not cleanly unmounted!  You should run e2fsck.  Modifying an "
+"unclean file system could cause severe corruption."
+msgstr ""
+"Dosya sistemi temizce ayrýlmadý!  e2fsck'lamalýsýnýz.  Temiz olmayan dosya "
+"sistemini deðiþtirmek ciddi sorunlara yol açabilir."
+
+#: libparted/fs/ext2/ext2.c:731
+msgid "File system has an incompatible feature enabled."
+msgstr "Dosya sisteminin uyumsuz bir niteliði etkinleþtirilmiþ"
+
+#: libparted/fs/ext2/ext2.c:742
+msgid "Error allocating buffer cache."
+msgstr "Tampon önbellek atamada hata."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:114
+msgid ""
+"Found an inode with a incorrect link count.  Better go run e2fsck first!"
+msgstr ""
+"Yanlýþ link sayýsýna sahip bir dosya indeksi bulundu.  Ýyisi mi önce bir "
+"e2fsck yürütün."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:487
+msgid "Not enough free inodes!"
+msgstr "Yeterli serbest dosya indeksi yok!"
+
+#: libparted/fs/ext2/ext2_resize.c:223
+msgid "File system is too full to remove a group!"
+msgstr "Dosya sistemi bir grubu silmek için çok dolu!"
+
+#: libparted/fs/ext2/ext2_resize.c:232
+msgid "File system has too many allocated inodes to remove a group!"
+msgstr "Dosya sistemi bir grubu silmek için çok sayýda dosya indeksine sahip!"
+
+#: libparted/fs/ext2/ext2_resize.c:491
+msgid "adding groups"
+msgstr "gruplar ekleniyor"
+
+#: libparted/fs/ext2/ext2_resize.c:528
+#, c-format
+msgid "Your file system is too full to resize it to %i blocks.  Sorry."
+msgstr ""
+"Dosya sisteminiz %i bloða yeniden boyutlandýrýlmak için çok dolul.  Üzgünüm."
+
+#: libparted/fs/ext2/ext2_resize.c:538
+#, c-format
+msgid ""
+"Your file system has too many occupied inodes to resize it to %i blocks.  "
+"Sorry."
+msgstr ""
+"Dosya sisteminiz %i bloða yeniden boyutlandýrmak için çok sayýda dolu dosya "
+"indeksine sahip.  Üzgünüm."
+
+#: libparted/fs/ext2/ext2_resize.c:666
+msgid "File system was not cleanly unmounted!  You should run e2fsck."
+msgstr "Dosya sistemi temizce ayrýlmadý!  e2fsck çalýþtýrmalýsýnýz."
+
+#: libparted/fs/ext2/ext2_resize.c:675
+msgid ""
+"The file system has the 'dir_index' feature enabled.  Parted can only resize "
+"the file system if it disables this feature.  You can enable it later by "
+"running 'tune2fs -O dir_index DEVICE' and then 'e2fsck -fD DEVICE'."
+msgstr ""
+"Dosya sisteminin 'dir_index' özelliði etkin halde...  Parted, dosya "
+"sistemini ancak bu özelliði devre dýþý býrakarak yeniden boyutlandýrabilir.  "
+"Daha sonra 'tune2fs -O dir_index' ve sonrasýnda 'e2fsck -fD AYGIT' "
+"komutlarýyla yeniden etkinleþtirebilirsiniz."
+
+#: libparted/fs/ext2/ext2_resize.c:691
+msgid ""
+"A resize operation on this file system will use EXPERIMENTAL code\n"
+"that MAY CORRUPT it (although no one has reported any such damage yet).\n"
+"You should at least backup your data first, and run 'e2fsck -f' afterwards."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_block_relocator.c:198
+msgid "Cross-linked blocks found!  Better go run e2fsck first!"
+msgstr "Çapraz baðlý bloklar bulundu! Ýiyisi mi önce gibip e2fsck yürütün!"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:537
+#, c-format
+msgid "Block %i has no reference?  Weird."
+msgstr "%i bloðunun baþvurusu yok?  Tuhaf"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:737
+#, c-format
+msgid "Block %i shouldn't have been marked (%d, %d)!"
+msgstr "%i bloðu iþaretlenmemiþ olmalýydý (%d, %d)!"
+
+#: libparted/fs/ext2/interface.c:186
+msgid ""
+"The ext2 file system passed a basic check.  For a more comprehensive check, "
+"use the e2fsck program."
+msgstr ""
+"ext2 dosya sistemi temel bir kontrolü geçti.  Daha kapsamlý bir kontrol için "
+"e2fsck programýný kullanýnýz."
+
+#: libparted/fs/ext2/interface.c:203
+msgid "Sorry, can't move the start of ext2 partitions yet!"
+msgstr "Üzgünüm, henüz ext2 disk bölümlerinin baþlangýcý taþýnamýyor!"
+
+#: libparted/fs/ext2/ext2_buffer.c:82
+msgid "Couldn't flush buffer cache!"
+msgstr "Tampon önbellek boþaltýlamadý!"
+
+#: libparted/fs/ext2/ext2_mkfs.c:162
+msgid "writing per-group metadata"
+msgstr "grup bazýnda metaverisi yazýlýyor"
+
+#: libparted/fs/ext2/ext2_mkfs.c:564
+msgid "File system too small for ext2."
+msgstr "ext2 için dosya sistemi çok küçük."
+
+#: libparted/fs/fat/calc.c:135
+#, c-format
+msgid ""
+"You need %s of free disk space to shrink this partition to this size.  "
+"Currently, only %s is free."
+msgstr ""
+"Bu disk bölümünü bu boyuta küçültmek için %1$s'lik boþ yere gereksiniminiz "
+"var.  Halen yalnýzca %2$s kadarý boþ."
+
+#: libparted/fs/fat/context.c:56
+#, c-format
+msgid ""
+"Cluster start delta = %d, which is not a multiple of the cluster size %d."
+msgstr "Küme baþlangýcý delta = %d, küme boyutu olan %d'nin katsayýsý deðil."
+
+#: libparted/fs/fat/fat.c:308
+#, c-format
+msgid "Partition too big/small for a %s file system."
+msgstr "Disk bölümü, bir %s dosya sistemi için çok büyük/küçük"
+
+#: libparted/fs/fat/fat.c:474
+msgid ""
+"The FATs don't match.  If you don't know what this means, then select "
+"cancel, run scandisk on the file system, and then come back."
+msgstr ""
+"FAT'lar uyuþmuyor.  Eðer bunun ne demek olduðunu bilmiyorsanýz, Vazgeç'i "
+"seçin, dosya sisteminde scandisk'i yürütün, ve buraya dönün."
+
+#: libparted/fs/fat/fat.c:514
+msgid "There are no possible configurations for this FAT type."
+msgstr "Bu FAT türü için olasý yapýlandýrma yok."
+
+#: libparted/fs/fat/fat.c:526
+#, c-format
+msgid ""
+"File system doesn't have expected sizes for Windows to like it.  Cluster "
+"size is %dk (%dk expected); number of clusters is %d (%d expected); size of "
+"FATs is %d sectors (%d expected)."
+msgstr ""
+"Dosya sistemi, Windows'un hoþlanmasý beklenen boyutlara sahip deðil.  Küme "
+"boyutu %dk (%dk beklenirdi); küme sayýsý %d (%d beklenirdi); FAT boyutlarý %"
+"d sektördür (%d beklenirdi)."
+
+#: libparted/fs/fat/fat.c:549
+#, c-format
+msgid ""
+"File system is reporting the free space as %d clusters, not %d clusters."
+msgstr "Dosya sistemi boþluðun %d küme olduðunu bildiriyor, %d küme deðil."
+
+#: libparted/fs/fat/fat.c:874
+msgid ""
+"GNU Parted was miscompiled: the FAT boot sector should be 512 bytes.  FAT "
+"support will be disabled."
+msgstr ""
+"GNU parted yanlýþ derlenmiþ: FAT önyükleme sektörü 512 bayt olmalý.  FAT "
+"desteði devre dýþý býrakýlacak."
+
+#: libparted/fs/fat/resize.c:159
+msgid ""
+"There's not enough room in the root directory for all of the files.  Either "
+"cancel, or ignore to lose the files."
+msgstr ""
+"Kök dizininde tüm dosyalara yetecek yer yok.  Ya iptal edin, ya da dosyalarý "
+"yitirmek için yoksayýn."
+
+#: libparted/fs/fat/resize.c:300
+msgid "Error writing to the root directory."
+msgstr "Kök dizinine yazmada hata."
+
+#: libparted/fs/fat/resize.c:489
+msgid "If you leave your file system as FAT16, then you will have no problems."
+msgstr "Eðer dosya sisteminizi FAT16 olarak býrakýrsanýz sorununuz olmaz."
+
+#: libparted/fs/fat/resize.c:492
+msgid ""
+"If you convert to FAT16, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual)."
+msgstr ""
+"Eðer FAT16'ya dönüþtürürseniz ve bu disk bölümüne MS Windows yüklenmiþse, MS "
+"Windows önyükleyicisini yeniden yüklemelisiniz.  Eðer bunu yapmak "
+"isterseniz, Parted el kitabýna (ya da daðýtýmýnýzýn el kitabýna) "
+"baþvurmalýsýnýz."
+
+#: libparted/fs/fat/resize.c:500
+msgid ""
+"If you leave your file system as FAT32, then you will not introduce any new "
+"problems."
+msgstr ""
+"Eðer dosya sisteminizi FAT32 olarak býrakýrsanýz yeni bir sorunla "
+"karþýlaþmayacaksýnýz."
+
+#: libparted/fs/fat/resize.c:504
+msgid ""
+"If you convert to FAT32, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual).  Also, "
+"converting to FAT32 will make the file system unreadable by MS DOS, MS "
+"Windows 95a, and MS Windows NT."
+msgstr ""
+"Eðer FAT32'ye dönüþtürürseniz ve bu disk bölümüne MS Windows yüklenmiþse, MS "
+"Windows önyükleyicisini yeniden yüklemelisiniz.  Eðer bunu yapmak "
+"isterseniz, Parted el kitabýna (ya da daðýtýmýnýzýn el kitabýna) "
+"baþvurmalýsýnýz.  Ayrýca FAT32'ye dönüþüm, dosya sisteminin MS DOS, MS "
+"Windows 95a ve MS Windows NT tarafýndan okunamaz olmasýna yol açacaktýr."
+
+#: libparted/fs/fat/resize.c:518
+#, c-format
+msgid "%s  %s  %s"
+msgstr "%s  %s  %s"
+
+#: libparted/fs/fat/resize.c:519
+msgid "Would you like to use FAT32?"
+msgstr "FAT32 kullanmak ister misiniz?"
+
+#: libparted/fs/fat/resize.c:550 libparted/fs/fat/resize.c:566
+#, c-format
+msgid "%s  %s"
+msgstr "%s  %s"
+
+#: libparted/fs/fat/resize.c:551
+msgid ""
+"The file system can only be resized to this size by converting to FAT16."
+msgstr ""
+"Dosya sistemi, yalnýzca FAT16'ya dönüþtürülerek bu boyuta yeniden "
+"boyutlandýrýlabilir."
+
+#: libparted/fs/fat/resize.c:567
+msgid ""
+"The file system can only be resized to this size by converting to FAT32."
+msgstr ""
+"Dosya sistemi, yalnýzca FAT32'ye dönüþtürülerek bu boyuta yeniden "
+"boyutlandýrýlabilir."
+
+#: libparted/fs/fat/resize.c:580
+msgid ""
+"GNU Parted cannot resize this partition to this size.  We're working on it!"
+msgstr ""
+"GNU Parted bu disk bölümünü bu boyuta yeniden boyutlandýramaz.  Üzerinde "
+"çalýþýyoruz!"
+
+#: libparted/fs/fat/bootsector.c:49 libparted/fs/fat/bootsector.c:56
+msgid "File system has an invalid signature for a FAT file system."
+msgstr "Dosya sistemi, FAT dosya sistemi için geçersiz bir imzaya sahip.."
+
+#: libparted/fs/fat/bootsector.c:64
+msgid "File system has an invalid sector size for a FAT file system."
+msgstr ""
+"Dosya sistemi, FAT dosya sistemi için geçersiz bir sektör boyutuna sahip."
+
+#: libparted/fs/fat/bootsector.c:71
+msgid "File system has an invalid cluster size for a FAT file system."
+msgstr ""
+"Dosya sistemi, FAT dosya sistemi için geçersiz bir küme boyutuna sahip."
+
+#: libparted/fs/fat/bootsector.c:78
+msgid ""
+"File system has an invalid number of reserved sectors for a FAT file system."
+msgstr ""
+"Dosya sistemi, FAT dosya sistemi için geçersiz bir ayrýlmýþ sektör sayýsýna "
+"sahip."
+
+#: libparted/fs/fat/bootsector.c:85
+msgid "File system has an invalid number of FATs."
+msgstr "Dosya sistemi, geçersiz FATS sayýsýna sahip."
+
+#: libparted/fs/fat/bootsector.c:139
+#, c-format
+msgid ""
+"This file system has a logical sector size of %d.  GNU Parted is known not "
+"to work properly with sector sizes other than 512 bytes."
+msgstr ""
+"Bu dosya sistemi %d mantýksal sektör boyutuna sahip.  GNU Parted'in 512 "
+"bayttan farklý sektör boyutlarýyla düzgün çalýþmadýðý bilinmektedir."
+
+#: libparted/fs/fat/bootsector.c:164
+#, c-format
+msgid ""
+"The file system's CHS geometry is (%d, %d, %d), which is invalid.  The "
+"partition table's CHS geometry is (%d, %d, %d).  If you select Ignore, the "
+"file system's CHS geometry will be left unchanged.  If you select Fix, the "
+"file system's CHS geometry will be set to match the partition table's CHS "
+"geometry."
+msgstr ""
+"Dosya sisteminin CHS geometrisi (%d, %d, %d), ki bu geçersiz.  Bölümleme "
+"tablosunun CHS geometrisi (%d ,%d ,%d).  Yoksay'ý seçerseniz dosya "
+"sisteminin CHS geometrisi deðiþtirilmeyecek.   Onar'ý seçerseniz dosya "
+"sisteminin CHS geometrisi, bölümleme tablosunun CHS geometrisiyle uyuþacak "
+"þekilde ayarlanacak."
+
+#: libparted/fs/fat/bootsector.c:213
+msgid "FAT boot sector says logical sector size is 0.  This is weird. "
+msgstr ""
+"FAT önyükleme sektörü mantýksal sektör boyutunun 0 olduðunu söylüyor.  Bu "
+"tuhaf. "
+
+#: libparted/fs/fat/bootsector.c:219
+msgid "FAT boot sector says there are no FAT tables.  This is weird. "
+msgstr "FAT önyükleme sektörü FAT tablosunun olmadýðýný söylüyor.  Bu tuhaf. "
+
+#: libparted/fs/fat/bootsector.c:225
+msgid "FAT boot sector says clusters are 0 sectors.  This is weird. "
+msgstr ""
+"FAT önyükleme sektörü kümelerin 0 sektör olduðunu söylüyor.  Bu tuhaf. "
+
+#: libparted/fs/fat/bootsector.c:235
+msgid "File system is FAT12, which is unsupported."
+msgstr "Dosya sistemi FAT12, ki desteklenmiyor."
+
+#: libparted/fs/fat/bootsector.c:411
+#, c-format
+msgid ""
+"The information sector has the wrong signature (%x).  Select cancel for now, "
+"and send in a bug report.  If you're desperate, it's probably safe to ignore."
+msgstr ""
+"Bilgi sektörü yanlýþ imzaya sahip. (%x).  Þimdilik vazgeçi seçin ve bir "
+"yazýlým hatasý raporu gönderin.  Çaresizseniz, yoksaymak muhtemelen güvenli."
+
+#: libparted/fs/fat/count.c:152
+#, c-format
+msgid "Bad directory entry for %s: first cluster is the end of file marker."
+msgstr "%s için bozuk dizin giriþi: ilk küme dosya belirtecinin sonunda."
+
+#: libparted/fs/fat/count.c:165
+#, c-format
+msgid ""
+"Bad FAT: unterminated chain for %s.  You should run dosfsck or scandisk."
+msgstr ""
+"Bozuk FAT: %s için sonlandýrýlmamýþ zincir.  dosfsck ya da scandisk "
+"yürütmelisiniz."
+
+#: libparted/fs/fat/count.c:174
+#, c-format
+msgid ""
+"Bad FAT: cluster %d outside file system in chain for %s.  You should run "
+"dosfsck or scandisk."
+msgstr ""
+"Bozuk FAT: %d kümesi %s için dosya sistemi zincirinin dýþýnda.  dosfsck ya "
+"da scandisk yürütmelisiniz."
+
+#: libparted/fs/fat/count.c:184
+#, c-format
+msgid ""
+"Bad FAT: cluster %d is cross-linked for %s.  You should run dosfsck or "
+"scandisk."
+msgstr ""
+"Bozuk FAT: %d kümesi %s için çapraz baðlý.  dosfsck ya da scandisk "
+"yürütmelisiniz."
+
+#: libparted/fs/fat/count.c:203
+#, c-format
+msgid "%s is %dk, but it has %d clusters (%dk)."
+msgstr "%s %dkdýr, fakat %d kümeye (%dk) sahip."
+
+#: libparted/fs/fat/count.c:266
+#, c-format
+msgid ""
+"The file %s is marked as a system file.  This means moving it could cause "
+"some programs to stop working."
+msgstr ""
+"%s dosyasý bir sistem dosyasý olarak iþaretlenmiþ.  Bu, onu taþýmanýn bazý "
+"programlarýn çalýþmasýný durdurmaya yolaçacaðý anlamýna gelir."
+
+#: libparted/fs/fat/table.c:137
+#, c-format
+msgid ""
+"FAT %d media %x doesn't match the boot sector's media %x.  You should "
+"probably run scandisk."
+msgstr ""
+"FAT %d ortam %x önyükleme sektörünün ortamý %x'le uyuþmamakta.  Muhtemelen "
+"scandisk yürütmelisiniz."
+
+#: libparted/fs/fat/table.c:269
+#, c-format
+msgid "fat_table_set: cluster %ld outside file system"
+msgstr "fat_table_set: %ld kümesi dosya sisteminin dýþýnda"
+
+#: libparted/fs/fat/table.c:301
+#, c-format
+msgid "fat_table_get: cluster %ld outside file system"
+msgstr "fat_table_get: %ld kümesi dosya sisteminin dýþýnda"
+
+#: libparted/fs/fat/table.c:343
+msgid "fat_table_alloc_cluster: no free clusters"
+msgstr "fat_table_alloc_cluster: boþ küme yok"
+
+#: libparted/fs/linux_swap/linux_swap.c:275
+#, fuzzy, c-format
+msgid "Unrecognised old style linux swap signature '%10s'."
+msgstr "Tanýnmayan linux takas imzasý '%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:318
+#, fuzzy, c-format
+msgid "Unrecognised new style linux swap signature '%10s'."
+msgstr "Tanýnmayan linux takas imzasý '%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:358
+#, fuzzy, c-format
+msgid "Unrecognised swsusp linux swap signature '%9s'."
+msgstr "Tanýnmayan linux takas imzasý '%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:434
+msgid "Too many bad pages."
+msgstr "Çok sayýda bozuk sayfa."
+
+#: libparted/fs/hfs/advfs.c:121 libparted/fs/hfs/advfs_plus.c:122
+#: libparted/fs/hfs/reloc.c:414 libparted/fs/hfs/reloc.c:508
+#: libparted/fs/hfs/reloc_plus.c:539 libparted/fs/hfs/reloc_plus.c:658
+#: libparted/fs/hfs/reloc_plus.c:772
+msgid "The file system contains errors."
+msgstr "Dosya sistemi hatalar içeriyor."
+
+#: libparted/fs/hfs/advfs_plus.c:287
+msgid "Bad blocks could not be read."
+msgstr "Hatalý bloklar okunamýyor."
+
+#: libparted/fs/hfs/cache.c:137
+#, c-format
+msgid ""
+"Trying to register an extent starting at block 0x%X, but another one already "
+"exists at this position.  You should check the file system!"
+msgstr ""
+"Blok 0x%X'den baþlayacak þekilde bir aralýk kaydedilmeye çalýþýlýyor, fakat "
+"bu konumda bir baþkasý zaten mevcut.  Dosya sistemini kontrol etmelisiniz!"
+
+#: libparted/fs/hfs/cache.c:214
+#, c-format
+msgid ""
+"Trying to move an extent from block Ox%X to block Ox%X, but another one "
+"already exists at this position.  This should not happen!"
+msgstr ""
+"Blok Ox%X'den Ox%X'e bir aralýk taþýnmaya çalýþýlýyor, fakat bu konumda bir "
+"baþkasý zaten mevcut.  Bu olmamalý!"
+
+#: libparted/fs/hfs/file.c:143
+#, c-format
+msgid "Could not update the extent cache for HFS file with CNID %X."
+msgstr "Aralýk önbelleði CNID %X'li HFS dosyasý için güncellenemedi."
+
+#: libparted/fs/hfs/file.c:180
+#, c-format
+msgid "Trying to read HFS file with CNID %X behind EOF."
+msgstr "EOF arkasýnda CNID %X'li HFS dosyasý okunmaya çalýþýlýyor."
+
+#: libparted/fs/hfs/file.c:190 libparted/fs/hfs/file.c:220
+#, c-format
+msgid "Could not find sector %lli of HFS file with CNID %X."
+msgstr "CNID %2$X li HFS dosyasýnýn %1$lli sektörü bulunamadý."
+
+#: libparted/fs/hfs/file.c:210
+#, c-format
+msgid "Trying to write HFS file with CNID %X behind EOF."
+msgstr "EOF arkasýnda CNID %X'li HFS dosyasý yazýlmaya çalýþýlýyor."
+
+#: libparted/fs/hfs/file_plus.c:157
+#, c-format
+msgid "Could not update the extent cache for HFS+ file with CNID %X."
+msgstr "Aralýk önbelleði CNID %X'li HFS+ dosyasý için güncellenemedi."
+
+#: libparted/fs/hfs/file_plus.c:202
+#, c-format
+msgid "Trying to read HFS+ file with CNID %X behind EOF."
+msgstr "EOF arkasýnda CNID %X'li HFS+ dosyasý okunmaya çalýþýlýyor."
+
+#: libparted/fs/hfs/file_plus.c:213 libparted/fs/hfs/file_plus.c:256
+#, c-format
+msgid "Could not find sector %lli of HFS+ file with CNID %X."
+msgstr "CNID %2$X li HFS+ dosyasýnýn %1$lli sektörü bulunamadý."
+
+#: libparted/fs/hfs/file_plus.c:245
+#, c-format
+msgid "Trying to write HFS+ file with CNID %X behind EOF."
+msgstr "EOF arkasýnda CNID %X'li HFS+ dosyasý yazýlmaya çalýþýlýyor."
+
+#: libparted/fs/hfs/hfs.c:232
+msgid "Sorry, HFS cannot be resized that way yet."
+msgstr "Üzgünüm, HFS henüz o þekilde yeniden boyutlandýrýlamýyor."
+
+#: libparted/fs/hfs/hfs.c:262 libparted/fs/hfs/hfs.c:641
+msgid "Data relocation has failed."
+msgstr "Veri yeniden konumlandýrýlmasý baþarýsýz."
+
+#: libparted/fs/hfs/hfs.c:281
+msgid "Data relocation left some data in the end of the volume."
+msgstr "Veri yeniden konumladýrýlmasý oylumun sonunda bazý verileri býraktý."
+
+#: libparted/fs/hfs/hfs.c:320
+msgid "writing HFS Master Directory Block"
+msgstr "HFS Ana Dizin Bloðu yazýlýyor"
+
+#: libparted/fs/hfs/hfs.c:468
+msgid "No valid HFS[+X] signature has been found while opening."
+msgstr "Açarken, geçerli HFS[+X] imzasý bulunamadý."
+
+#: libparted/fs/hfs/hfs.c:478
+#, c-format
+msgid "Version %d of HFS+ isn't supported."
+msgstr "HFS+'in %d sürümü desteklenmiyor."
+
+#: libparted/fs/hfs/hfs.c:489
+#, c-format
+msgid "Version %d of HFSX isn't supported."
+msgstr "HFSX'in %d sürümü desteklenmiyor."
+
+#: libparted/fs/hfs/hfs.c:672
+msgid "Data relocation left some data at the end of the volume."
+msgstr "Veri yeniden konumladýrýlmasý oylumun sonunda bazý verileri býraktý."
+
+#: libparted/fs/hfs/hfs.c:720
+msgid "Error while writing the allocation file."
+msgstr "Atama dosyasýna yazmada hata."
+
+#: libparted/fs/hfs/hfs.c:735
+msgid "Error while writing the compatibility part of the allocation file."
+msgstr "Atama dosyasýnýn uyumluluk bölümüne yazmada hata."
+
+#: libparted/fs/hfs/hfs.c:750
+msgid "writing HFS+ Volume Header"
+msgstr "HFS+ Oylum Baþlýðý yazýlýyor"
+
+#: libparted/fs/hfs/hfs.c:850
+msgid "An error occurred while looking for the mandatory bad blocks file."
+msgstr "Zorunlu hatalý bloklar dosyasý aranýrken bir hata oluþtu."
+
+#: libparted/fs/hfs/hfs.c:904
+msgid ""
+"It seems there is an error in the HFS wrapper: the bad blocks file doesn't "
+"contain the embedded HFS+ volume."
+msgstr ""
+"HFS sarmalayýcýsýnda hata var gibi görünüyor: hatalý blok dosyasý, gömülü HFS"
+"+ oylumunu içermiyor."
+
+#: libparted/fs/hfs/hfs.c:940
+msgid "Sorry, HFS+ cannot be resized that way yet."
+msgstr "Üzgünüm, HFS+ henüz o þekilde yeniden boyutlandýrýlamýyor."
+
+#: libparted/fs/hfs/hfs.c:975
+msgid "shrinking embedded HFS+ volume"
+msgstr "gömülü HFS+ oylumu küçültülüyor"
+
+#: libparted/fs/hfs/hfs.c:991
+msgid "Resizing the HFS+ volume has failed."
+msgstr "HFS+ oylumunun yeniden boyutlandýrýlmasý baþarýsýz."
+
+#: libparted/fs/hfs/hfs.c:998
+msgid "shrinking HFS wrapper"
+msgstr "HFS sarmalayýcýsý küçültülüyor"
+
+#: libparted/fs/hfs/hfs.c:1007
+msgid "Updating the HFS wrapper has failed."
+msgstr "HFS sarmalayýcýsýnýn göncellenmesi baþarýsýz."
+
+#: libparted/fs/hfs/hfs.c:1109 libparted/fs/hfs/hfs.c:1194
+#, c-format
+msgid ""
+"This is not a real %s check.  This is going to extract special low level "
+"files for debugging purposes."
+msgstr ""
+"Bu geçek bir %s kontrolü deðil.  Hata ayýklama amacýyla düþük düzey dosyalar "
+"özütlenecek."
+
+#: libparted/fs/hfs/journal.c:155
+msgid "Bad block list header checksum."
+msgstr "Hatalý blok liste baþlýðý saðlama toplamý"
+
+#: libparted/fs/hfs/journal.c:168
+#, c-format
+msgid ""
+"Invalid size of a transaction block while replaying the journal (%i bytes)."
+msgstr "Günlük tekrar okunurken geçersiz bir iþlem boyut bloðu (%i bayt)."
+
+#: libparted/fs/hfs/journal.c:260
+msgid ""
+"Journal stored outside of the volume are not supported.  Try to desactivate "
+"the journal and run Parted again."
+msgstr ""
+"Oylum dýþýnda depolanan günlükler desteklenmiyor.  Günlüðü etkisiz kýlmayý "
+"ve Parted'ý yeniden çalýþtýrmayý deneyin."
+
+#: libparted/fs/hfs/journal.c:271
+msgid "Journal offset or size is not multiple of the sector size."
+msgstr "Günlük baþlangýcý ya da boyutu sektör boyutunun katý deðil."
+
+#: libparted/fs/hfs/journal.c:292
+msgid "Incorrect magic values in the journal header."
+msgstr "Günlük baþlýðýnda geçersiz sihirli deðerler."
+
+#: libparted/fs/hfs/journal.c:302
+msgid "Journal size mismatch between journal info block and journal header."
+msgstr "Günlük bilgi bloðu ve baþlýðý arasýnda günlük boyutu örtüþmüyor."
+
+#: libparted/fs/hfs/journal.c:314
+msgid "Some header fields are not multiple of the sector size."
+msgstr "Bazý baþlýk alanlarý sektör boyutunun katý deðil."
+
+#: libparted/fs/hfs/journal.c:323
+msgid ""
+"The sector size stored in the journal is not 512 bytes.  Parted only "
+"supports 512 bytes length sectors."
+msgstr ""
+"Günlükte kayýtlý sektör boyutu 512 bayt deðil. Parted yalnýzca 512 bayt "
+"uzunluktaki sektörleri destekler."
+
+#: libparted/fs/hfs/journal.c:335
+msgid "Bad journal checksum."
+msgstr "Bozuk günlük saðlama toplamý."
+
+#: libparted/fs/hfs/journal.c:353
+msgid ""
+"The journal is not empty.  Parted must replay the transactions before "
+"opening the file system.  This will modify the file system."
+msgstr ""
+"Günlük boþ.  Parted, dosya sistemini açmadan iþlemleri yinelemeli.  Bu, "
+"dosya sistemini deðiþtirecek."
+
+#: libparted/fs/hfs/journal.c:381
+msgid ""
+"The volume header or the master directory block has changed while replaying "
+"the journal.  You should restart Parted."
+msgstr ""
+"Günlük yinelenirken ana dizin bloðunun oylum baþlýðý deðiþti.  Parted'ý "
+"yeniden baþlatmalýsýnýz."
+
+#: libparted/fs/hfs/probe.c:51
+#, c-format
+msgid ""
+"Parted can't use HFS file systems on disks with a sector size not equal to %"
+"d bytes."
+msgstr ""
+"Parted sektör boyutu %d bayta eþit olmayan disklerde HFS dosya sistemi "
+"kullanamaz."
+
+#: libparted/fs/hfs/reloc.c:151 libparted/fs/hfs/reloc_plus.c:155
+msgid "An extent has not been relocated."
+msgstr "Bir aralýk yeniden konumlanmadý."
+
+#: libparted/fs/hfs/reloc.c:251 libparted/fs/hfs/reloc_plus.c:307
+msgid ""
+"A reference to an extent comes from a place it should not.  You should check "
+"the file system!"
+msgstr ""
+"Bir aralýðýn baþvurusu gelmemesi gereken bir yerden geliyor.  Dosya "
+"sistemini kontrol etmelisiniz!"
+
+#: libparted/fs/hfs/reloc.c:381
+msgid "This HFS volume has no catalog file.  This is very unusual!"
+msgstr "Bu HFS oylumunun katalog dosyasý yok.  Bu çok sýradýþý!"
+
+#: libparted/fs/hfs/reloc.c:475
+msgid "This HFS volume has no extents overflow file.  This is quite unusual!"
+msgstr "Bu HFS oylumunun aralýk taþmasý dosyasý yok.  Bu oldukça sýradýþý!"
+
+#: libparted/fs/hfs/reloc.c:517 libparted/fs/hfs/reloc_plus.c:668
+msgid ""
+"The extents overflow file should not contain its own extents!  You should "
+"check the file system."
+msgstr ""
+"Aralýk taþmasý dosyasý, kendi aralýklarýný içermemeli!  Dosya sistemini "
+"kontrol etmelisiniz."
+
+#: libparted/fs/hfs/reloc.c:574 libparted/fs/hfs/reloc_plus.c:847
+msgid "Could not cache the file system in memory."
+msgstr "Dosya sistemi önbelleðe alýnamýyor."
+
+#: libparted/fs/hfs/reloc.c:635 libparted/fs/hfs/reloc_plus.c:908
+msgid "Bad blocks list could not be loaded."
+msgstr "Hatalý blok listesi yüklenemedi."
+
+#: libparted/fs/hfs/reloc.c:649 libparted/fs/hfs/reloc_plus.c:924
+msgid "An error occurred during extent relocation."
+msgstr "Aralýk yeniden konumlandýrýlmasý sýrasýnda bir hata oluþtu."
+
+#: libparted/fs/hfs/reloc_plus.c:495
+msgid "This HFS+ volume has no catalog file.  This is very unusual!"
+msgstr "Bu HFS+ oylumunun katalog dosyasý yok.  Bu çok sýradýþý!"
+
+#: libparted/fs/hfs/reloc_plus.c:619
+msgid "This HFS+ volume has no extents overflow file.  This is quite unusual!"
+msgstr "Bu HFS+ oylumunun aralýk taþmasý dosyasý yok.  Bu oldukça sýradýþý!"
+
+#: parted/parted.c:94
+msgid "displays this help message"
+msgstr "bu yardým mesajýný görüntüler"
+
+#: parted/parted.c:95
+#, fuzzy
+msgid "lists partition layout on all block devices"
+msgstr "algýlanan tüm aygýtlarýn bçlümleme tablolarýnýn listeler"
+
+#: parted/parted.c:96
+msgid "displays machine parseable output"
+msgstr ""
+
+#: parted/parted.c:97
+msgid "never prompts for user intervention"
+msgstr "kullanýcý müdahalesi için asla istemde bulunmaz"
+
+#: parted/parted.c:98
+msgid "displays the version"
+msgstr "sürümü görüntüler"
+
+#: parted/parted.c:111
+msgid ""
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"
+msgstr ""
+"NUMBER, Linux tarafýndan kullanýlan disk bölümü numarasýdýr.  Msdos disk "
+"etiketlerinde birincil disk bölümü numarasý 1-4 arasý, mantýksal disk "
+"bölümleri de 5 ve üstüdür.\n"
+
+#: parted/parted.c:114
+msgid "LABEL-TYPE is one of: "
+msgstr "LABEL-TYPE þunlardan biridir: "
+
+#: parted/parted.c:115
+msgid "FLAG is one of: "
+msgstr "FLAG þunlardan biridir: "
+
+#: parted/parted.c:116
+msgid "UNIT is one of: "
+msgstr "UNIT þunlardan biridir: "
+
+#: parted/parted.c:117
+msgid "PART-TYPE is one of: primary, logical, extended\n"
+msgstr "PART-TYPE þunlardan biridir: birincil, mantýksal, ek\n"
+
+#: parted/parted.c:119
+msgid "FS-TYPE is one of: "
+msgstr "FS-TYPE þunlardan biridir: "
+
+#: parted/parted.c:120
+msgid ""
+"START and END are disk locations, such as 4GB or 10%.  Negative values count "
+"from the end of the disk.  For example, -1s specifies exactly the last "
+"sector.\n"
+msgstr ""
+"START ve END disk konumlarýdýr, 4GB ya da %10 gibi.  Eksi deðerler, diskin "
+"sonuna uzaklýðý belirtir.  Örneðin -1s tam olarak son sektörü belirtir.\n"
+
+#: parted/parted.c:123
+msgid "STATE is one of: on, off\n"
+msgstr "STATE þunlardan biridir: açýk, kapalý\n"
+
+#: parted/parted.c:124
+msgid "DEVICE is usually /dev/hda or /dev/sda\n"
+msgstr "DEVICE sýklýkla /dev/hda ya da /dev/sda'dýr\n"
+
+#: parted/parted.c:125
+msgid "NAME is any word you want\n"
+msgstr "NAME istediðiniz herhangi bir sözcüktür\n"
+
+#: parted/parted.c:126
+msgid "The partition must have one of the following FS-TYPEs: "
+msgstr "Disk bölümü aþaðýdaki FS-TYPE'larýndan birine sahip olmalýdýr: "
+
+#: parted/parted.c:130
+#, fuzzy
+msgid ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+msgstr ""
+"Telifhakký (C) 1998 - 2005 Özgür Yazýlým Kuruluþu, A.Þ.\n"
+"Bu program, GNU Genel Kamu Lisansý'nca kapsanan bedava yazýlýmdýr.\n"
+"\n"
+"Bu program, yararlý olacaðý ümidiyle daðýtýlmýþ olup, SATILABÝLÝRLÝK ya da "
+"BELLÝ BÝR AMACA UYGUNLUK garantileri de dahil olmak üzere HERHANGÝ BÝR "
+"GARANTÝ içermez.  Daha fazla ayrýntý için GNU Genel Kamu Lisansý'na "
+"bakýnýz.\n"
+"\n"
+
+#: parted/parted.c:176
+#, c-format
+msgid "%0.f%%\t(time left %.2d:%.2d)"
+msgstr "%0.f%%\t(kalan süre %.2d:%.2d)"
+
+#: parted/parted.c:195
+#, c-format
+msgid ""
+"Partition %s is being used. You must unmount it before you modify it with "
+"Parted."
+msgstr ""
+"%s disk bölümü kullanýlýyor.  Parted'la deðiþtirmeden önce ayýrmalýsýnýz."
+
+#: parted/parted.c:211
+#, c-format
+msgid "Partition(s) on %s are being used."
+msgstr "%s üzerindeki disk bölümü(leri) kullanýlýyor."
+
+#: parted/parted.c:223
+msgid ""
+"The existing file system will be destroyed and all data on the partition "
+"will be lost. Do you want to continue?"
+msgstr ""
+"Mevcut dosya sistemi silinecek ve disk bölümündeki tüm veri kaybolacak. "
+"Devam etmek istiyor musunuz?"
+
+#: parted/parted.c:235
+#, c-format
+msgid ""
+"The existing disk label on %s will be destroyed and all data on this disk "
+"will be lost. Do you want to continue?"
+msgstr ""
+"%s üzerindeki mevcut disk etiketi silinecek ve bu disk üzerindeki tüm veri "
+"kaybolacak. Devam etmek istiyor musunuz?"
+
+#: parted/parted.c:458 parted/parted.c:652 parted/parted.c:1044
+#: parted/parted.c:1128 parted/parted.c:1771 parted/parted.c:1852
+#: parted/parted.c:1900
+msgid "Partition number?"
+msgstr "Disk bölümü numarasý?"
+
+#: parted/parted.c:500
+msgid "Source device?"
+msgstr "Kaynak aygýtý?"
+
+#: parted/parted.c:504
+msgid "Source partition number?"
+msgstr "Kaynak disk bölümü numarasý?"
+
+#: parted/parted.c:509
+msgid "Can't copy an extended partition."
+msgstr "Ek disk bölümleri kopyalanamýyor."
+
+#: parted/parted.c:515
+msgid "Destination partition number?"
+msgstr "Hedef disk bölümü numarasý?"
+
+#: parted/parted.c:615
+msgid "New disk label type?"
+msgstr "Yeni disk etiketi türü?"
+
+#: parted/parted.c:656
+msgid "File system?"
+msgstr "Dosya sistemi?"
+
+#: parted/parted.c:707 parted/parted.c:878
+msgid "Partition type?"
+msgstr "Disk bölümü türü?"
+
+#: parted/parted.c:714 parted/parted.c:885 parted/parted.c:1131
+msgid "Partition name?"
+msgstr "Disk bölümü adý?"
+
+#: parted/parted.c:722 parted/parted.c:895
+msgid "File system type?"
+msgstr "Dosya sistemi türü?"
+
+#: parted/parted.c:729 parted/parted.c:897 parted/parted.c:1059
+#: parted/parted.c:1725 parted/parted.c:1780
+msgid "Start?"
+msgstr "Baþlangýç?"
+
+#: parted/parted.c:731 parted/parted.c:900 parted/parted.c:1062
+#: parted/parted.c:1727 parted/parted.c:1782
+msgid "End?"
+msgstr "Bitiþ?"
+
+#: parted/parted.c:769 parted/parted.c:938
+#, c-format
+msgid ""
+"You requested a partition from %s to %s.\n"
+"The closest location we can manage is %s to %s.  Is this still acceptable to "
+"you?"
+msgstr ""
+"%1$s'den %2$s'e bir bölüm istediniz.\n"
+"Becerebildiðimiz buna en yakýn konum %3$s-%4$s.  Bu sizin için hala kabul "
+"edilebilir mi?"
+
+#: parted/parted.c:890
+msgid "An extended partition cannot hold a file system.  Did you want mkpart?"
+msgstr "Bir ek disk bölümünün dosya sistemi olamaz.  mkpart mý istediniz?"
+
+#: parted/parted.c:1050
+msgid "Can't move an extended partition."
+msgstr "Bir ek disk bölümü taþýnamaz."
+
+#: parted/parted.c:1079
+msgid "Can't move a partition onto itself.  Try using resize, perhaps?"
+msgstr ""
+"Bir disk bölümü kendi üzerine taþýnamaz.  Belki yeniden boyutlandýrmayý "
+"dener misiniz?"
+
+#: parted/parted.c:1227
+#, c-format
+msgid "Minor: %d\n"
+msgstr "Minor: %d\n"
+
+#: parted/parted.c:1228
+#, c-format
+msgid "Flags: %s\n"
+msgstr "Bayraklar: %s\n"
+
+#: parted/parted.c:1229
+#, c-format
+msgid "File System: %s\n"
+msgstr "Dosya Sistemi: %s\n"
+
+#: parted/parted.c:1230
+msgid "Size:         "
+msgstr "Boyut:         "
+
+#: parted/parted.c:1235
+msgid "Minimum size: "
+msgstr "Minimum boyut: "
+
+#: parted/parted.c:1238
+msgid "Maximum size: "
+msgstr "Maksimum boyut: "
+
+#: parted/parted.c:1362
+#, c-format
+msgid "Model: %s (%s)\n"
+msgstr "Model: %s (%s)\n"
+
+#: parted/parted.c:1364
+#, c-format
+msgid "Disk %s: %s\n"
+msgstr "Disk %1$s: %2$s\n"
+
+#: parted/parted.c:1365
+#, c-format
+msgid "Sector size (logical/physical): %lldB/%lldB\n"
+msgstr "Sektör boyutu (mantýksal/fiziksel): %lldB/%lldB\n"
+
+#: parted/parted.c:1383
+#, c-format
+msgid "BIOS cylinder,head,sector geometry: %d,%d,%d.  Each cylinder is %s.\n"
+msgstr ""
+"BIOS silindiri, kafa, sektör geometrisi: %d,%d,%d.  Herbir silindir %s'tir.\n"
+
+#: parted/parted.c:1392
+#, c-format
+msgid "Partition Table: %s\n"
+msgstr "Disk bölümü Tablosu: %s\n"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Number"
+msgstr "Numara"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Start"
+msgstr "Baþlangýç"
+
+#: parted/parted.c:1407 parted/parted.c:1410
+msgid "End"
+msgstr "Son"
+
+#: parted/parted.c:1410
+msgid "Size"
+msgstr "Boyut"
+
+#: parted/parted.c:1414
+msgid "Type"
+msgstr "Tür"
+
+#: parted/parted.c:1416
+msgid "File system"
+msgstr "Dosya sistemi"
+
+#: parted/parted.c:1419
+msgid "Name"
+msgstr "Ýsim"
+
+#: parted/parted.c:1421
+msgid "Flags"
+msgstr "Bayraklar"
+
+#: parted/parted.c:1477
+msgid "Free Space"
+msgstr "Boþ Alan"
+
+#: parted/parted.c:1624
+#, c-format
+msgid ""
+"A %s %s partition was found at %s -> %s.  Do you want to add it to the "
+"partition table?"
+msgstr ""
+"%3$s -> %4$s'de bir %1$s %2$s disk bölümü bulundu.  Bunu disk bölümü "
+"tablosuna eklemeyi ister misiniz?"
+
+#: parted/parted.c:1663
+msgid "searching for file systems"
+msgstr "dosya"
+
+#: parted/parted.c:1877
+msgid "New device?"
+msgstr "Yeni aygýt?"
+
+#: parted/parted.c:1902
+msgid "Flag to Invert?"
+msgstr "Tersine çevirmek üzere bayrakla?"
+
+#: parted/parted.c:1907
+msgid "New state?"
+msgstr "Yeni durum?"
+
+#: parted/parted.c:1944
+msgid "Unit?"
+msgstr "Birim?"
+
+#: parted/parted.c:2093
+msgid "check"
+msgstr "check"
+
+#: parted/parted.c:2096
+msgid ""
+"check NUMBER                             do a simple check on the file system"
+msgstr ""
+"check NUMBER                  dosya sistemi üzerinde basit bir kontrol yap"
+
+#: parted/parted.c:2102
+msgid "cp"
+msgstr "cp"
+
+#: parted/parted.c:2105
+msgid ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+"partition"
+msgstr ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   dosya sistemini bir baþka disk "
+"bölümüne kopyala"
+
+#: parted/parted.c:2111
+msgid "help"
+msgstr "help"
+
+#: parted/parted.c:2114
+#, fuzzy
+msgid ""
+"help [COMMAND]                           print general help, or help on "
+"COMMAND"
+msgstr ""
+"help [COMMAND]               genel yardýmý ya da KOMUT yardýmýný yazdýrýr"
+
+#: parted/parted.c:2120
+msgid "mklabel"
+msgstr "mklabel"
+
+#: parted/parted.c:2120
+msgid "mktable"
+msgstr "mktable"
+
+#: parted/parted.c:2123
+msgid ""
+"mklabel,mktable LABEL-TYPE               create a new disklabel (partition "
+"table)"
+msgstr ""
+"mklabel,mktable LABEL-TYPE             yeni bir disk etiketi (disk bölümü "
+"tablosu) oluþtur"
+
+#: parted/parted.c:2129
+msgid "mkfs"
+msgstr "mkfs"
+
+#: parted/parted.c:2132
+msgid ""
+"mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on "
+"partititon NUMBER"
+msgstr ""
+"mkfs NUMBER FS-TYPE             NUMBER disk bölümü üzerinde FS-TYPE dosya "
+"sistemini yap"
+
+#: parted/parted.c:2138
+msgid "mkpart"
+msgstr "mkpart"
+
+#: parted/parted.c:2141
+msgid "mkpart PART-TYPE [FS-TYPE] START END     make a partition"
+msgstr "mkpart PART-TYPE [FS-TYPE] START END          bir disk bölümü yap"
+
+#: parted/parted.c:2147
+#, fuzzy
+msgid ""
+"'mkpart' makes a partition without creating a new file system on the "
+"partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"
+msgstr ""
+"mkpart, disk bölümü üzerinde yeni bir dosya sistemi oluþturmadan bir disk "
+"bölümü yapar.  DS-TÜRÜ, uygun bir disk bölümü numarasý atamak için "
+"belirtilebilir.\n"
+"\n"
+
+#: parted/parted.c:2152
+msgid "mkpartfs"
+msgstr "mkpartfs"
+
+#: parted/parted.c:2155
+msgid ""
+"mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system"
+msgstr ""
+"mkpartfs PART-TYPE FS-TYPE START END      dosya sistemi olan bir disk bölümü "
+"yap"
+
+#: parted/parted.c:2161
+msgid "move"
+msgstr "move"
+
+#: parted/parted.c:2164
+msgid "move NUMBER START END                    move partition NUMBER"
+msgstr "move NUMBER START END           NUMBER. disk bölümünü taþý"
+
+#: parted/parted.c:2169
+msgid "name"
+msgstr "name"
+
+#: parted/parted.c:2172
+msgid "name NUMBER NAME                         name partition NUMBER as NAME"
+msgstr ""
+"name NUMBER NAME                     NUMBER. disk bölümünü NAME'le adlandýr"
+
+#: parted/parted.c:2177
+msgid "print"
+msgstr "print"
+
+#: parted/parted.c:2180
+msgid ""
+"print [devices|free|list,all|NUMBER]     display the partition table, "
+"available devices, free space, all found partitions, or a particular "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2185
+msgid ""
+"Without arguments, 'print' displays the entire partition table. However with "
+"the following arguments it performs various other actions.\n"
+msgstr ""
+
+#: parted/parted.c:2187
+msgid "  devices   : display all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2188
+msgid ""
+"  free      : display information about free unpartitioned space on the "
+"current block device\n"
+msgstr ""
+
+#: parted/parted.c:2190
+#, fuzzy
+msgid ""
+"  list, all : display the partition tables of all active block devices\n"
+msgstr "algýlanan tüm aygýtlarýn bçlümleme tablolarýnýn listeler"
+
+#: parted/parted.c:2191
+msgid ""
+"  NUMBER    : display more detailed information about this particular "
+"partition\n"
+msgstr ""
+
+#: parted/parted.c:2196
+msgid "quit"
+msgstr "quit"
+
+#: parted/parted.c:2199
+msgid "quit                                     exit program"
+msgstr "quit                                     programdan çýk"
+
+#: parted/parted.c:2204
+msgid "rescue"
+msgstr "rescue"
+
+#: parted/parted.c:2207
+msgid ""
+"rescue START END                         rescue a lost partition near START "
+"and END"
+msgstr ""
+"rescue START END                 START ve END arasýndaki kayýp disk "
+"bölümlerini kurtar"
+
+#: parted/parted.c:2213
+msgid "resize"
+msgstr "resize"
+
+#: parted/parted.c:2216
+msgid ""
+"resize NUMBER START END                  resize partition NUMBER and its "
+"file system"
+msgstr ""
+"resize NUMBER START END          NUMBER. disk bölümünü ve üzerindeki dosya "
+"sistemini yeniden boyutlandýr"
+
+#: parted/parted.c:2224
+msgid "rm"
+msgstr "rm"
+
+#: parted/parted.c:2227
+msgid "rm NUMBER                                delete partition NUMBER"
+msgstr "rm NUMBER                        NUMBER. disk bölümünü sil"
+
+#: parted/parted.c:2232
+msgid "select"
+msgstr "select"
+
+#: parted/parted.c:2235
+msgid "select DEVICE                            choose the device to edit"
+msgstr "select DEVICE                  düzenlenecek aygýtý seç"
+
+#: parted/parted.c:2240
+msgid "set"
+msgstr "set"
+
+#: parted/parted.c:2243
+msgid ""
+"set NUMBER FLAG STATE                    change the FLAG on partition NUMBER"
+msgstr ""
+"set NUMBER FLAG STATE             NUMBER. disk bölümü üzerindeki bayraðý "
+"deðiþtir"
+
+#: parted/parted.c:2249
+msgid "toggle"
+msgstr "seçmece / deðiþtir"
+
+#: parted/parted.c:2252
+msgid ""
+"toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+"partition NUMBER"
+msgstr ""
+"toggle [NUMBER [FLAG]                       NUMBER. disk bölümü üzerindeki "
+"BAYRAK durumunu deðiþtir"
+
+#: parted/parted.c:2258
+msgid "unit"
+msgstr "birim"
+
+#: parted/parted.c:2261
+msgid "unit UNIT                                set the default unit to UNIT"
+msgstr "birim UNIT                        öntanýmlý birimi UNIT'e ayarla"
+
+#: parted/parted.c:2266
+msgid "version"
+msgstr "sürüm"
+
+#: parted/parted.c:2269
+#, fuzzy
+msgid ""
+"version                                  display the version number and "
+"copyright information of GNU Parted"
+msgstr ""
+"version                               GNU Parted'in güncel sürümünü ve telif "
+"hakký bilgisini görüntüler"
+
+#: parted/parted.c:2273
+#, fuzzy
+msgid ""
+"'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"
+msgstr ""
+"sürüm, GNU Parted'in bu kopyasýnýn telif hakký ve sürüm bilgisini "
+"görüntüler\n"
+
+#: parted/parted.c:2335
+#, c-format
+msgid "Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"
+msgstr ""
+
+#: parted/parted.c:2379
+msgid "No device found"
+msgstr "Aygýt bulunamadý"
+
+#: parted/parted.c:2412
+#, fuzzy
+msgid "WARNING: You are not superuser.  Watch out for permissions."
+msgstr "UYARI: Süper kullanýcý deðilsiniz.  Ýzinlere dikkat edin.\n"
+
+#: parted/parted.c:2450
+#, fuzzy
+msgid "You may need to update /etc/fstab.\n"
+msgstr "Zorunluysa, /etc/fstab'i güncellemeyi unutmayýn.\n"
+
+#: parted/ui.c:160
+msgid "Welcome to GNU Parted! Type 'help' to view a list of commands.\n"
+msgstr ""
+"GNU Parted'a hoþgeldiniz! Komutlarýn bir listesini görmek için 'help' "
+"yazýnýz.\n"
+
+#: parted/ui.c:163
+msgid ""
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run "
+"in\n"
+"interactive mode.\n"
+msgstr ""
+"Kullaným: parted [SEÇENEK]... [AYGIT [KOMUT [PARAMETRELER]...]...]\n"
+"KOMUTLARI PARAMETRELERle AYGITa uygular.  Eðer KOMUT(lar) verilmezse,\n"
+"etkileþimli kipte çalýþýr.\n"
+
+#: parted/ui.c:168
+#, fuzzy, c-format
+msgid ""
+"\n"
+"\n"
+"You found a bug in GNU Parted! Here's what you have to do:\n"
+"\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n"
+"\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Please check this version prior to bug reporting.\n"
+"\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"for further information.\n"
+"\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n"
+msgstr ""
+"\n"
+"\n"
+"GNU Parted'da bir yazýlým hatasý buldunuz! Yapmanýz gereken þunlardýr:\n"
+"\n"
+"Paniðe kapýlmayýn! Yazýlým hatasý büyük olasýlýkla verinizi etkilemedi.\n"
+"Bu hatayý onarmak için bize þunlarý yaparak yardým edin:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"adresinde bulabileceðiniz GNU Parted'in son sürümünü kontrol\n"
+"ederek hatanýn zaten düzeltilmiþ olup olmadýðýný kontrol edin.\n"
+"Hatayý rapor etmeden önce lütfen bu sürümü kontrol edin.\n"
+"\n"
+"Eðer hata onarýlmamýþsa ya da nasýl kontrol edeceðinizi bilmiyorsanýz,\n"
+"lütfen GNU Parted web sitesini\n"
+"daha fazla bilgi için ziyaret edin:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"Raporunuz bu daðýtýmýn sürüm numarasýný (%s)\n"
+"aþaðýdaki hata mesajýný,\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"komutunun çýktýsýný ve kurulumunuz hakkýnda önemli olduðunu düþündüðünüz ek "
+"bilgileri\n"
+"içermelidir.\n"
+
+#: parted/ui.c:284
+msgid ""
+"\n"
+"Command History:\n"
+msgstr ""
+
+#: parted/ui.c:366
+#, fuzzy
+msgid ""
+"\n"
+"Error: SEGV_MAPERR (Address not mapped to object)\n"
+msgstr ""
+"\n"
+"Hata: SEGV_MAPERR (Adres nesneye eþlenmedi)"
+
+#: parted/ui.c:372
+#, fuzzy
+msgid ""
+"\n"
+"Error: SEGV_ACCERR (Invalid permissions for mapped object)\n"
+msgstr ""
+"\n"
+"Hata: SEGV_ACCERR (Eþlenmiþ nesne için geçersiz izinler)"
+
+#: parted/ui.c:377
+#, fuzzy
+msgid ""
+"\n"
+"Error: A general SIGSEGV signal was encountered.\n"
+msgstr ""
+"\n"
+"Hata: Genel bir SIGSEGV sinyaliyle karþýlaþýldý."
+
+#: parted/ui.c:410
+msgid ""
+"\n"
+"Error: FPE_INTDIV (Integer: divide by zero)"
+msgstr ""
+"\n"
+"Hata: FPE_INTDIV (Tamsayý: sýfýrla bölünme)"
+
+#: parted/ui.c:415
+msgid ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+msgstr ""
+"\n"
+"Hata: FPE_INTOVF (Tamsayý: taþma)"
+
+#: parted/ui.c:420
+msgid ""
+"\n"
+"Error: FPE_FLTDIV (Float: divide by zero)"
+msgstr ""
+"\n"
+"Hata: FPE_FLTDIV (Kayan: sýfýrla bölünme)"
+
+#: parted/ui.c:425
+msgid ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+msgstr ""
+"\n"
+"Hata: FPE_FLTOVF (Kayan: taþma)"
+
+#: parted/ui.c:430
+msgid ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+msgstr ""
+"\n"
+"Hata: FPE_FLTUND (Kayan: boþalma)"
+
+#: parted/ui.c:435
+msgid ""
+"\n"
+"Error: FPE_FLTRES (Float: inexact result)"
+msgstr ""
+"\n"
+"Hata: FPE_FLTRES (Kayan: kesin olmayan sonuç)"
+
+#: parted/ui.c:440
+msgid ""
+"\n"
+"Error: FPE_FLTINV (Float: invalid operation)"
+msgstr ""
+"\n"
+"Hata: FPE_FLTINV (Kayan: geçersiz iþlem)"
+
+#: parted/ui.c:445
+msgid ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript out of range)"
+msgstr ""
+"\n"
+"Hata: FPE_FLTSUB (Kayan: altsimge erim dýþý)"
+
+#: parted/ui.c:450
+msgid ""
+"\n"
+"Error: A general SIGFPE signal was encountered."
+msgstr ""
+"\n"
+"Hata: Genel bir SIGFPE sinyaliyle karþýlaþýldý."
+
+#: parted/ui.c:483
+msgid ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+msgstr ""
+"\n"
+"Hata: ILL_ILLOPC (Kuraldýþý Opcode)"
+
+#: parted/ui.c:488
+msgid ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+msgstr ""
+"\n"
+"Hata: ILL_ILLOPN (Kuraldýþý Ýþlenen)"
+
+#: parted/ui.c:493
+msgid ""
+"\n"
+"Error: ILL_ILLADR (Illegal addressing mode)"
+msgstr ""
+"\n"
+"Hata: ILL_ILLADR (Kuraldýþý adresleme kipi)"
+
+#: parted/ui.c:498
+msgid ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+msgstr ""
+"\n"
+"Hata: ILL_ILLTRP (Kuraldýþý Tuzak)"
+
+#: parted/ui.c:503
+msgid ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+msgstr ""
+"\n"
+"Hata: ILL_PRVOPC (Ayrýcalýklý Opcode)"
+
+#: parted/ui.c:508
+msgid ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+msgstr ""
+"\n"
+"Hata: ILL_PRVREG (Ayrýcalýklý Yazmaç)"
+
+#: parted/ui.c:513
+msgid ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+msgstr ""
+"\n"
+"Hata: ILL_COPROC (Eþiþlemci Hatasý)"
+
+#: parted/ui.c:518
+msgid ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+msgstr ""
+"\n"
+"Hata: ILL_BADSTK (Dahili Yýðýn Hatasý)"
+
+#: parted/ui.c:523
+msgid ""
+"\n"
+"Error: A general SIGILL signal was encountered."
+msgstr ""
+"\n"
+"Hata: Genel bir SIGILL sinyaliyle karþýlaþýldý."
+
+#: parted/ui.c:1024
+msgid "Expecting a partition number."
+msgstr "Bir disk bölümü numarasý bekleniyor."
+
+#: parted/ui.c:1033
+msgid "Partition doesn't exist."
+msgstr "Disk bölümü yok."
+
+#: parted/ui.c:1053
+msgid "Expecting a file system type."
+msgstr "Bir dosya sistemi türü bekleniyor."
+
+#: parted/ui.c:1060
+#, c-format
+msgid "Unknown file system type \"%s\"."
+msgstr "Bilinmeyen dosya sistemi türü \"%s\"."
+
+#: parted/ui.c:1080
+msgid "Expecting a disk label type."
+msgstr "Bir disk etiketi türü bekleniyor."
+
+#: parted/ui.c:1178
+msgid "Can't create any more partitions."
+msgstr "Baþka disk bölümü oluþturulamýyor."
+
+#: parted/ui.c:1188
+msgid "Expecting a partition type."
+msgstr "Bir disk bölümü türü bekleniyor."
+
+#: parted/ui.c:1315
+msgid "on"
+msgstr "açýk"
+
+#: parted/ui.c:1316
+msgid "off"
+msgstr "kapalý"
+
+#: parted/ui.c:1431
+msgid "OPTIONs:"
+msgstr "SEÇENEKler:"
+
+#: parted/ui.c:1436
+msgid "COMMANDs:"
+msgstr "KOMUTlar:"
+
+#: parted/ui.c:1445
+#, c-format
+msgid "Using %s\n"
+msgstr "%s kullanýlýyor\n"
+
+#: parted/ui.c:1519
+msgid "This command does not make sense in non-interactive mode.\n"
+msgstr ""
+
+#~ msgid "GNU Parted cannot resize this file system, please useresize2fs."
+#~ msgstr ""
+#~ "GNU Parted bu dosya sistemini yeniden boyutlandýramýyor, lütfen resize2fs "
+#~ "kullanýn."
+
+#~ msgid "where necessary, prompts for user intervention"
+#~ msgstr "zorunlu olduðunda, kullanýcý müdahalesi için istemde bulunur"
+
+#~ msgid "GNU Parted Version information:\n"
+#~ msgstr "GNU Parted Sürüm bilgisi:\n"
+
+#~ msgid ""
+#~ "print [free|NUMBER|all]                  display the partition table, a "
+#~ "partition, or all devices"
+#~ msgstr ""
+#~ "print [free|NUMBER|all]                    bir disk bölümü, tablosu ya da "
+#~ "tüm aygýtlarý görüntüle"
+
+#~ msgid ""
+#~ "Without arguments, print displays the entire partition table. With "
+#~ "'free'\n"
+#~ "argument, information about free space will be displayed otherwise if a\n"
+#~ "partition number is given, then more detailed information is displayed\n"
+#~ "about that partition. If the 'all' argument is passed instead, partition\n"
+#~ "information for all devices will be displayed.\n"
+#~ msgstr ""
+#~ "Argümansýz kullanýldýðýnda yazdýr, tüm disk bölümü tablosunu görüntüler. "
+#~ "'free' argümanýyla\n"
+#~ "boþ alan hakkýndaki bilgi görüntülenir, ya da eðer\n"
+#~ "bir disk bölümü numarasý verilirse, o disk bölümü hakkýnda daha ayrýntýlý "
+#~ "bilgi görüntülenir.\n"
+#~ "Eðer 'all' argümaný kullanýlýrsa tüm aygýtlarýn bölümleme bilgisi "
+#~ "görüntülenecektir.\n"
diff --git a/parted-1.8.7/po/uk.gmo b/parted-1.8.7/po/uk.gmo
new file mode 100644
index 0000000..76eb9ef
--- /dev/null
+++ b/parted-1.8.7/po/uk.gmo
Binary files differ
diff --git a/parted-1.8.7/po/uk.po b/parted-1.8.7/po/uk.po
new file mode 100644
index 0000000..789fbad
--- /dev/null
+++ b/parted-1.8.7/po/uk.po
@@ -0,0 +1,3249 @@
+# Ukrainian translation to parted.
+# Copyright (C) 2004 Free Software Foundation, Inc.
+# Maxim V. Dziumanenko <dziumanenko@gmail.com>, 2004-2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: parted 1.8.1\n"
+"Report-Msgid-Bugs-To: bug-parted@gnu.org\n"
+"POT-Creation-Date: 2007-05-09 17:02-0400\n"
+"PO-Revision-Date: 2006-12-27 10:07+0200\n"
+"Last-Translator: Maxim V. Dziumanenko <dziumanenko@gmail.com>\n"
+"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/closeout.c:74
+msgid "write error"
+msgstr ""
+
+#: lib/error.c:125
+#, fuzzy
+msgid "Unknown system error"
+msgstr "Невідомий тип файлової системи \"%s\"."
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK).  A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#.
+#. If you don't know what to put here, please see
+#. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr ""
+
+#: lib/regcomp.c:131
+msgid "Success"
+msgstr ""
+
+#: lib/regcomp.c:134
+msgid "No match"
+msgstr ""
+
+#: lib/regcomp.c:137
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regcomp.c:140
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regcomp.c:143
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regcomp.c:146
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regcomp.c:149
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regcomp.c:152
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regcomp.c:155
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regcomp.c:158
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regcomp.c:161
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regcomp.c:164
+#, fuzzy
+msgid "Invalid range end"
+msgstr "Неправильне число."
+
+#: lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regcomp.c:170
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regcomp.c:173
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regcomp.c:176
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regcomp.c:179
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regcomp.c:680
+msgid "No previous regular expression"
+msgstr ""
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr ""
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:66
+msgid "(C)"
+msgstr ""
+
+#: lib/version-etc.c:68
+msgid ""
+"\n"
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:84
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:88
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:92
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:98
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:104
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:110
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:132
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+
+#: lib/xalloc-die.c:35
+msgid "memory exhausted"
+msgstr ""
+
+#: libparted/arch/beos.c:237
+msgid "Disk Image"
+msgstr ""
+
+#: libparted/arch/beos.c:338 libparted/arch/gnu.c:261
+#: libparted/arch/linux.c:1272
+#, c-format
+msgid "Error opening %s: %s"
+msgstr "Помилка відкривання %s: %s"
+
+#: libparted/arch/beos.c:349 libparted/arch/gnu.c:271
+#: libparted/arch/linux.c:1283
+#, c-format
+msgid "Unable to open %s read-write (%s).  %s has been opened read-only."
+msgstr ""
+"Не вдається відкрити %s для читання-запису (%s). %s відкрито у режимі лише-"
+"читання."
+
+#: libparted/arch/beos.c:411 libparted/arch/linux.c:1431
+#, c-format
+msgid "%s during seek for read on %s"
+msgstr "%s при встановленні позиції для читання на %s"
+
+#: libparted/arch/beos.c:444 libparted/arch/gnu.c:449 libparted/arch/gnu.c:548
+#: libparted/arch/gnu.c:676 libparted/arch/linux.c:1391
+#: libparted/arch/linux.c:1469
+#, c-format
+msgid "%s during read on %s"
+msgstr "%s при читанні з %s"
+
+#: libparted/arch/beos.c:480 libparted/arch/gnu.c:509
+#: libparted/arch/linux.c:1546
+#, c-format
+msgid "Can't write to %s, because it is opened read-only."
+msgstr "Не вдається записати на %s, тому що він відкритий лише для читання."
+
+#: libparted/arch/beos.c:496 libparted/arch/linux.c:1570
+#, c-format
+msgid "%s during seek for write on %s"
+msgstr "%s при встановленні позиції для запису на %s"
+
+#: libparted/arch/beos.c:533 libparted/arch/gnu.c:585 libparted/arch/gnu.c:630
+#: libparted/arch/gnu.c:707 libparted/arch/linux.c:1517
+#: libparted/arch/linux.c:1612 libparted/arch/linux.c:1684
+#, c-format
+msgid "%s during write on %s"
+msgstr "%s при записі на %s"
+
+#: debug/clearfat/clearfat.c:63 partprobe/partprobe.c:137
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:67
+#, c-format
+msgid ""
+"Usage: %s [OPTION]\n"
+"  or:  %s DEVICE MINOR\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:70
+msgid ""
+"Clear unused space on a FAT partition (a GNU Parted testing tool).\n"
+"\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:74
+msgid "      --help     display this help and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:75
+msgid "      --version  output version information and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:77 partprobe/partprobe.c:154
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:285
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:290
+#, fuzzy, c-format
+msgid "too many arguments"
+msgstr "Надто багато пошкоджених сторінок."
+
+#: partprobe/partprobe.c:141
+#, c-format
+msgid "Usage: %s [OPTION] [DEVICE]...\n"
+msgstr ""
+
+#: partprobe/partprobe.c:142
+msgid ""
+"Inform the OS of partition table changes.\n"
+"\n"
+"  -d, --no-update  don't update the kernel\n"
+"  -s, --summary    print a summary of contents\n"
+"  -h, --help       display this help and exit\n"
+"  -v, --version    output version information and exit\n"
+msgstr ""
+
+#: partprobe/partprobe.c:150
+msgid ""
+"\n"
+"With no DEVICE, probe all partitions.\n"
+msgstr ""
+
+#: libparted/arch/gnu.c:94
+#, c-format
+msgid "Unable to open %s."
+msgstr "Не вдається відкрити %s."
+
+#: libparted/arch/gnu.c:114
+msgid "Unable to probe store."
+msgstr "Не вдається визначити сховище."
+
+#: libparted/arch/gnu.c:352
+msgid ""
+"The partition table cannot be re-read.  This means you need to reboot before "
+"mounting any modified partitions.  You also need to reinstall your boot "
+"loader before you reboot (which may require mounting modified partitions).  "
+"It is impossible do both things!  So you'll need to boot off a rescue disk, "
+"and reinstall your boot loader from the rescue disk.  Read section 4 of the "
+"Parted User documentation for more information."
+msgstr ""
+"Не вдається перечитати таблицю розділів, слід перезавантажитись перш ніж "
+"підключати змінені розділи. Також перед перезавантаженням необхідно "
+"перевстановити завантажувач (що вимагає підключення змінених розділів). "
+"Неможливо виконати одночасно обидві дії! Тому слід завантажитись з "
+"завантажувального диску, та перевстановити завантажувач. Додаткову "
+"інформацію знайдете у розділі 4 документації з Parted."
+
+#: libparted/arch/gnu.c:369
+#, c-format
+msgid ""
+"The partition table on %s cannot be re-read (%s).  This means the Hurd knows "
+"nothing about any modifications you made.  You should reboot your computer "
+"before doing anything with %s."
+msgstr ""
+"Таблицю розділів на %s не вдається перечитати (%s). Це означає, що Hurd "
+"нічого не знає про внесені вами зміни. Необхідно перезавантажити ваш "
+"комп'ютер перед виконанням будь-яких дій з %s."
+
+#: libparted/arch/gnu.c:380 parted/parted.c:2443
+msgid ""
+"You should reinstall your boot loader before rebooting.  Read section 4 of "
+"the Parted User documentation for more information."
+msgstr ""
+"Необхідно перевстановити ваш завантажувач перед перезавантаженням. Додаткову "
+"інформацію знайдете у розділі 4 документації з Parted."
+
+#: libparted/arch/gnu.c:772
+#, c-format
+msgid "%s trying to sync %s to disk"
+msgstr "%s при спробі синхронізації %s на диск"
+
+#: libparted/arch/linux.c:408
+#, c-format
+msgid "Could not stat device %s - %s."
+msgstr "Не вдається отримати статус пристрою %s - %s."
+
+#: libparted/arch/linux.c:523
+#, c-format
+msgid ""
+"Could not determine sector size for %s: %s.\n"
+"Using the default sector size (%lld)."
+msgstr ""
+"Не вдається визначити розмір сектору для %s: %s.\n"
+"Використовується типовий розмір сектору (%lld)."
+
+#: libparted/arch/linux.c:539
+#, c-format
+msgid ""
+"Device %s has a logical sector size of %lld.  Not all parts of GNU Parted "
+"support this at the moment, and the working code is HIGHLY EXPERIMENTAL.\n"
+msgstr ""
+"Розмір логічного сектору для %s складає %lld. Наразі не всі компоненти GNU "
+"Parted це підтримують.\n"
+
+#: libparted/arch/linux.c:579
+#, c-format
+msgid "Unable to determine the size of %s (%s)."
+msgstr "Не вдається визначити розмір %s (%s)."
+
+#: libparted/arch/linux.c:668
+#, c-format
+msgid "Could not get identity of device %s - %s"
+msgstr "Не вдається отримати ідентифікатор пристрою %s - %s"
+
+#: libparted/arch/linux.c:677
+msgid "Generic IDE"
+msgstr "Загальний IDE"
+
+#: libparted/arch/linux.c:698
+#, c-format
+msgid ""
+"Device %s has multiple (%d) logical sectors per physical sector.\n"
+"GNU Parted supports this EXPERIMENTALLY for some special disk label/file "
+"system combinations, e.g. GPT and ext2/3.\n"
+"Please consult the web site for up-to-date information."
+msgstr ""
+"Пристрій %s має декілька (%d) логічних серверів на фізичний сектор.\n"
+"Підтримка цього у GNU Parted є ЕКСПЕРИМЕНТАЛЬНОЮ для деяких спеціальних "
+"комбінацій  позначка диску/файлова система, наприклад. GPT та ext2/3.\n"
+"Додаткову інформацію шукайте на веб-сайті."
+
+#: libparted/arch/linux.c:873
+#, c-format
+msgid "Error initialising SCSI device %s - %s"
+msgstr "Помилка ініціалізації SCSI пристрою %s - %s"
+
+#: libparted/arch/linux.c:928
+#, c-format
+msgid ""
+"The device %s has zero length, and can't possibly store a file system or "
+"partition table.  Perhaps you selected the wrong device?"
+msgstr ""
+"Пристрій %s має нульову довжину, та непридатний для розміщення файлової "
+"системи чи таблиці розділів. Можливо ви вибрали неправильний пристрій?"
+
+#: libparted/arch/linux.c:1032
+#, c-format
+msgid ""
+"Unable to determine geometry of file/device %s.  You should not use Parted "
+"unless you REALLY know what you're doing!"
+msgstr ""
+"Не вдається визначити геометрію файлу/пристрою %s. Не слід використовувати "
+"Parted, хіба-що ви ДІЙСНО знаєте, що ви робите!"
+
+#: libparted/arch/linux.c:1110
+msgid "DAC960 RAID controller"
+msgstr "DAC960 RAID контролер"
+
+#: libparted/arch/linux.c:1115
+msgid "Promise SX8 SATA Device"
+msgstr "Пристрій Promise SX8 SATA"
+
+#: libparted/arch/linux.c:1120
+msgid "IBM S390 DASD drive"
+msgstr "Пристрій IBM S390 DASD"
+
+#: libparted/arch/linux.c:1125
+msgid "IBM iSeries Virtual DASD"
+msgstr "IBM iSeries Virtual DASD"
+
+#: libparted/arch/linux.c:1130
+msgid "Compaq Smart Array"
+msgstr "Compaq Smart Array"
+
+#: libparted/arch/linux.c:1135
+msgid "ATARAID Controller"
+msgstr "ATARAID контролер"
+
+#: libparted/arch/linux.c:1140
+msgid "I2O Controller"
+msgstr "I2O контролер"
+
+#: libparted/arch/linux.c:1145
+msgid "User-Mode Linux UBD"
+msgstr "User-Mode Linux UBD"
+
+#: libparted/arch/linux.c:1156
+msgid "Linux device-mapper"
+msgstr "Linux device-mapper"
+
+#: libparted/arch/linux.c:1162
+msgid "Unknown"
+msgstr "Невідомий"
+
+#: libparted/arch/linux.c:1169
+msgid "ped_device_new()  Unsupported device type"
+msgstr "ped_device_new() тип пристрою не підтримується"
+
+#: libparted/arch/linux.c:2083
+#, c-format
+msgid ""
+"Error informing the kernel about modifications to partition %s -- %s.  This "
+"means Linux won't know about any changes you made to %s until you reboot -- "
+"so you shouldn't mount it or use it in any way before rebooting."
+msgstr ""
+"Помилка сповіщення ядра про зміни у розділі %s -- %s. Це означає, що Linux "
+"не враховуватиме внесені у %s зміни до перезавантаження - тому до "
+"перезавантаження не слід підключати розділ чи використовувати будь-яким "
+"іншим чином."
+
+#: libparted/arch/linux.c:2262
+#, c-format
+msgid ""
+"parted was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made. "
+msgstr ""
+"parted не може перечитати таблицю розділів на %s (%s). Це означає, що Linux "
+"не враховуватиме внесені зміни."
+
+#: libparted/arch/linux.c:2368
+#, c-format
+msgid ""
+"The kernel was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made until you "
+"reboot.  You should reboot your computer before doing anything with %s."
+msgstr ""
+"Ядро не може перечитати таблицю розділів на %s (%s). Це означає, що Linux не "
+"враховуватиме внесені зміни до перезавантаження. Необхідно перезавантажити "
+"ваш комп'ютер перш ніж якось використовувати %s."
+
+#: libparted/cs/geom.c:162
+msgid "Can't have the end before the start!"
+msgstr "Неприпустимо, щоб кінець розділу був перед початком!"
+
+#: libparted/cs/geom.c:169
+msgid "Can't have a partition outside the disk!"
+msgstr "Неприпустимо, щоб розділ виходив за межі диску!"
+
+#: libparted/cs/geom.c:366
+#, c-format
+msgid "Attempt to write sectors %ld-%ld outside of partition on %s."
+msgstr "Спроба записати сектори %ld-%ld за межами розділу на %s."
+
+#: libparted/cs/geom.c:406 libparted/fs/linux_swap/linux_swap.c:475
+msgid "checking for bad blocks"
+msgstr "пошук пошкоджених блоків"
+
+#: libparted/debug.c:102
+#, c-format
+msgid "Backtrace has %d calls on stack:\n"
+msgstr ""
+
+#: libparted/debug.c:114
+#, c-format
+msgid "Assertion (%s) at %s:%d in function %s() failed."
+msgstr ""
+
+#: libparted/disk.c:203
+#, c-format
+msgid "Unable to open %s - unrecognised disk label."
+msgstr "Не вдається відкрити %s - нерозпізнана етикетка диска."
+
+#: libparted/disk.c:471
+#, c-format
+msgid ""
+"This libparted doesn't have write support for %s.  Perhaps it was compiled "
+"read-only."
+msgstr ""
+"Ця версія libparted не підтримує запис на %s. Можливо програму зібрано з "
+"підтримкою лише для читання."
+
+#: libparted/disk.c:598
+#, c-format
+msgid "Partition %d is %s, but the file system is %s."
+msgstr "Розмір %d %s, але файлова система %s."
+
+#: libparted/disk.c:1075
+#, c-format
+msgid "%s disk labels do not support extended partitions."
+msgstr "%s етикетки дисків для розширених розділів не підтримуються."
+
+#: libparted/disk.c:1634
+#, c-format
+msgid "%s disk labels don't support logical or extended partitions."
+msgstr ""
+"%s етикетки дисків для логічних або розширених розділів не підтримуються."
+
+#: libparted/disk.c:1647
+msgid "Too many primary partitions."
+msgstr "Занадто багато основних розділів."
+
+#: libparted/disk.c:1656
+#, c-format
+msgid ""
+"Can't add a logical partition to %s, because there is no extended partition."
+msgstr ""
+"Не вдається додати логічний розділ до %s, тому що немає розширеного розділу."
+
+#: libparted/disk.c:1680
+#, c-format
+msgid "Can't have more than one extended partition on %s."
+msgstr "Не можна мати більше одного розширеного розділу на %s."
+
+#: libparted/disk.c:1690
+msgid "Can't have logical partitions outside of the extended partition."
+msgstr "Не вдається розширити логічний розділ за межі розширеного розділу."
+
+#: libparted/disk.c:1715
+#, c-format
+msgid "Can't have a logical partition outside of the extended partition on %s."
+msgstr ""
+"Не вдається розширити логічний розділ за межі розширеного розділу на %s."
+
+#: libparted/disk.c:1725 libparted/disk.c:1779 libparted/disk.c:1945
+msgid "Can't have overlapping partitions."
+msgstr "Не можна мати розділи, які перекриваються."
+
+#: libparted/disk.c:1733
+msgid "Can't have a primary partition inside an extended partition."
+msgstr "Не можна додавати основний розділ у розширений розділ."
+
+#: libparted/disk.c:2140
+msgid "metadata"
+msgstr "метадані"
+
+#: libparted/disk.c:2142
+msgid "free"
+msgstr "вільно"
+
+#: libparted/disk.c:2144 parted/ui.c:1169 parted/ui.c:1197
+msgid "extended"
+msgstr "розширений"
+
+#: libparted/disk.c:2146 parted/ui.c:1173 parted/ui.c:1201
+msgid "logical"
+msgstr "логічний"
+
+#: libparted/disk.c:2148 parted/ui.c:1165 parted/ui.c:1193
+msgid "primary"
+msgstr "основний"
+
+#: libparted/disk.c:2164
+msgid "boot"
+msgstr "boot"
+
+#: libparted/disk.c:2166
+msgid "root"
+msgstr "кореневий"
+
+#: libparted/disk.c:2168
+msgid "swap"
+msgstr "swap"
+
+#: libparted/disk.c:2170
+msgid "hidden"
+msgstr "схований"
+
+#: libparted/disk.c:2172
+msgid "raid"
+msgstr "raid"
+
+#: libparted/disk.c:2174
+msgid "lvm"
+msgstr "lvm"
+
+#: libparted/disk.c:2176
+msgid "lba"
+msgstr "lba"
+
+#: libparted/disk.c:2178
+msgid "hp-service"
+msgstr "hp-сервіс"
+
+#: libparted/disk.c:2180
+msgid "palo"
+msgstr "palo"
+
+#: libparted/disk.c:2182
+msgid "prep"
+msgstr "prep"
+
+#: libparted/disk.c:2184
+msgid "msftres"
+msgstr "msftres"
+
+#: libparted/disk.c:2190
+#, c-format
+msgid "Unknown partition flag, %d."
+msgstr "Невідома ознака розділу, %d."
+
+#: libparted/exception.c:78
+msgid "Information"
+msgstr "Інформація"
+
+#: libparted/exception.c:79
+msgid "Warning"
+msgstr "Попередження"
+
+#: libparted/exception.c:80
+msgid "Error"
+msgstr "Помилка"
+
+#: libparted/exception.c:81
+msgid "Fatal"
+msgstr "Критична помилка"
+
+#: libparted/exception.c:82
+msgid "Bug"
+msgstr "Помилка"
+
+#: libparted/exception.c:83
+msgid "No Implementation"
+msgstr "Не реалізовано"
+
+#: libparted/exception.c:87
+msgid "Fix"
+msgstr "Виправити"
+
+#: libparted/exception.c:88
+msgid "Yes"
+msgstr "Так"
+
+#: libparted/exception.c:89
+msgid "No"
+msgstr "Ні"
+
+#: libparted/exception.c:90
+msgid "OK"
+msgstr "Гаразд"
+
+#: libparted/exception.c:91
+msgid "Retry"
+msgstr "Повторити"
+
+#: libparted/exception.c:92
+msgid "Ignore"
+msgstr "Ігнорувати"
+
+#: libparted/exception.c:93
+msgid "Cancel"
+msgstr "Скасувати"
+
+#: libparted/exception.c:133
+#, c-format
+msgid ""
+"A bug has been detected in GNU Parted.  Refer to the web site of parted "
+"http://www.gnu.org/software/parted/parted.html for more informations of what "
+"could be useful for bug submitting!  Please email a bug report to bug-"
+"parted@gnu.org containing at least the version (%s) and the following "
+"message:  "
+msgstr ""
+"У GNU parted виникла помилка. На веб-сайті http://www.gnu.org/software/"
+"parted/parted.html дивіться інформацію стосовно звітів про помилки. Будь "
+"ласка, відправте повідомлення про помилку за адресою bug-parted@gnu.org, не "
+"забудьте вказати версію (%s) та наступне повідомлення:"
+
+#: libparted/filesys.c:384
+msgid "Could not detect file system."
+msgstr "Не вдається виявити файлову систему."
+
+#: libparted/filesys.c:395
+msgid "The file system is bigger than its volume!"
+msgstr "Файлова система більша ніж том!"
+
+#: libparted/filesys.c:403
+#, c-format
+msgid "Support for opening %s file systems is not implemented yet."
+msgstr "Підтримка відкривання %s файлових систем ще не реалізована."
+
+#: libparted/filesys.c:445
+#, c-format
+msgid "Support for creating %s file systems is not implemented yet."
+msgstr "Підтримка створення %s файлових систем ще не реалізована."
+
+#: libparted/filesys.c:505
+#, c-format
+msgid "Support for checking %s file systems is not implemented yet."
+msgstr "Підтримка перевірки %s файлових систем ще не реалізована."
+
+#: libparted/filesys.c:571
+msgid "raw block copying"
+msgstr "копіювання блоків"
+
+#: libparted/filesys.c:582
+msgid "growing file system"
+msgstr "розширення файлової системи"
+
+#: libparted/filesys.c:622
+msgid "Can't copy onto an overlapping partition."
+msgstr "Не можна копіювати на розділи, що перекриваються."
+
+#: libparted/filesys.c:644
+#, c-format
+msgid ""
+"Direct support for copying file systems is not yet implemented for %s.  "
+"However, support for resizing is implemented.  Therefore, the file system "
+"can be copied if the new partition is at least as big as the old one.  So, "
+"either shrink the partition you are trying to copy, or copy to a bigger "
+"partition."
+msgstr ""
+"Безпосередня підтримка файлових систем ще не реалізована для %s. Але, "
+"реалізована підтримка зміни розміру. Таким чином файлову систему можна "
+"скопіювати на новий розділ більшого розміру ніж існуючий. Тому або зменшіть "
+"розділ, який ви намагаєтесь скопіювати, або копіюйте на більший розділ."
+
+#: libparted/filesys.c:658
+#, c-format
+msgid "Support for copying %s file systems is not implemented yet."
+msgstr "Підтримка копіювання файлових систем типу %s ще не підтримується."
+
+#: libparted/filesys.c:696
+#, c-format
+msgid "Support for resizing %s file systems is not implemented yet."
+msgstr "Підтримка зміни розміру файлових систем типу %s ще не підтримується."
+
+#: libparted/fs/reiserfs/reiserfs.c:315
+msgid "creating"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:402
+#, fuzzy
+msgid "The file system is in an invalid state.  Perhaps it is mounted?"
+msgstr "Файлова система більша ніж том!"
+
+#: libparted/fs/reiserfs/reiserfs.c:410
+msgid "The file system is in old (unresizeable) format."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:416
+msgid "Invalid free blocks count.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:431
+#, fuzzy
+msgid "checking"
+msgstr "check"
+
+#: libparted/fs/reiserfs/reiserfs.c:437
+msgid "Reiserfs tree seems to be corrupted.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:449
+#, fuzzy
+msgid ""
+"The reiserfs file system passed a basic check.  For a more comprehensive "
+"check, run reiserfsck --check."
+msgstr ""
+"Файлова система ext2 пройшла загальну перевірку. Для більш докладної "
+"перевірки користуйтесь програмою e2fsck."
+
+#: libparted/fs/reiserfs/reiserfs.c:474
+#, fuzzy
+msgid "Sorry, can't move the start of reiserfs partitions yet."
+msgstr "Нажаль, переміщення початку розділів типу ext2 ще не підтримується!"
+
+#: libparted/fs/reiserfs/reiserfs.c:490
+msgid "Couldn't reopen device abstraction layer for read/write."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:508 libparted/fs/ext2/ext2_resize.c:552
+#: libparted/fs/hfs/hfs.c:250 libparted/fs/hfs/hfs.c:629
+msgid "shrinking"
+msgstr "скорочення"
+
+#: libparted/fs/reiserfs/reiserfs.c:520
+#, fuzzy
+msgid "expanding"
+msgstr "Попередження"
+
+#: libparted/fs/reiserfs/reiserfs.c:592
+msgid "Couldn't create reiserfs device abstraction handler."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:606
+#, fuzzy, c-format
+msgid "Device is too small for %lu blocks."
+msgstr "Файлова система занадто маленька для ext2."
+
+#: libparted/fs/reiserfs/reiserfs.c:615
+msgid "copying"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:682
+#, c-format
+msgid "Couldn't resolve symbol %s.  Error: %s."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:704
+msgid "GNU Parted found an invalid libreiserfs library."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:715
+#, c-format
+msgid ""
+"GNU Parted has detected libreiserfs interface version mismatch.  Found %d-%"
+"d, required %d. ReiserFS support will be disabled."
+msgstr ""
+
+#: libparted/labels/aix.c:137
+#, fuzzy
+msgid "Support for reading AIX disk labels is is not implemented yet."
+msgstr "Підтримка створення %s файлових систем ще не реалізована."
+
+#: libparted/labels/aix.c:148
+#, fuzzy
+msgid "Support for writing AIX disk labels is is not implemented yet."
+msgstr "Підтримка створення %s файлових систем ще не реалізована."
+
+#: libparted/labels/aix.c:161
+#, fuzzy
+msgid ""
+"Support for adding partitions to AIX disk labels is not implemented yet."
+msgstr "Підтримка створення %s файлових систем ще не реалізована."
+
+#: libparted/labels/aix.c:171
+#, fuzzy
+msgid ""
+"Support for duplicating partitions in AIX disk labels is not implemented yet."
+msgstr "Підтримка створення %s файлових систем ще не реалізована."
+
+#: libparted/labels/aix.c:189
+#, fuzzy
+msgid ""
+"Support for setting system type of partitions in AIX disk labels is not "
+"implemented yet."
+msgstr "Підтримка створення %s файлових систем ще не реалізована."
+
+#: libparted/labels/aix.c:199
+#, fuzzy
+msgid "Support for setting flags in AIX disk labels is not implemented yet."
+msgstr "Підтримка створення %s файлових систем ще не реалізована."
+
+#: libparted/labels/bsd.c:501 libparted/labels/dasd.c:755
+#: libparted/labels/dos.c:1974 libparted/labels/dvh.c:770
+#: libparted/labels/gpt.c:1448 libparted/labels/loop.c:248
+#: libparted/labels/mac.c:1408 libparted/labels/pc98.c:759
+#: libparted/labels/rdb.c:1041 libparted/labels/sun.c:705
+msgid "Unable to satisfy all constraints on the partition."
+msgstr "Не вдається задовольнити всі обмеження на розділ."
+
+#: libparted/labels/bsd.c:526
+msgid "Unable to allocate a bsd disklabel slot."
+msgstr "Не вдається розподілити слот bsd етикетки диску."
+
+#: libparted/labels/dasd.c:166
+#, fuzzy
+msgid "Unable to determine the block size of this dasd"
+msgstr "Не вдається визначити розмір %s (%s)."
+
+#: libparted/labels/dasd.c:781
+#, fuzzy
+msgid "Unable to allocate a dasd disklabel slot"
+msgstr "Не вдається розподілити слот bsd етикетки диску."
+
+#: libparted/labels/dos.c:827
+#, c-format
+msgid "Invalid partition table on %s -- wrong signature %x."
+msgstr "Неправильна таблиця розділів на %s - неправильна сигнатура %x."
+
+#: libparted/labels/dos.c:855
+#, c-format
+msgid "Invalid partition table - recursive partition on %s."
+msgstr "Неправильна таблиця розділів - рекурсивні розділи на %s."
+
+#: libparted/labels/dos.c:1318
+msgid "Extended partitions cannot be hidden on msdos disk labels."
+msgstr "Розширені розділи не можуть бути на дискових етикетках msdos."
+
+#: libparted/labels/dos.c:1958
+msgid "Parted can't resize partitions managed by Windows Dynamic Disk."
+msgstr "Parted не може змінювати розділи, які створені Windows Dynamic Disk."
+
+#: libparted/labels/dvh.c:190
+#, c-format
+msgid "%s has no extended partition (volume header partition)."
+msgstr "%s не містить розширеного розділу (розділу заголовків томів)."
+
+#: libparted/labels/dvh.c:313
+msgid "Checksum is wrong, indicating the partition table is corrupt."
+msgstr ""
+"Неправильна контрольна сума, це означає, що таблиця розділів пошкоджена."
+
+#: libparted/labels/dvh.c:616
+msgid "Only primary partitions can be root partitions."
+msgstr "Лише основні розділи можуть бути завантажувальними."
+
+#: libparted/labels/dvh.c:630
+msgid "Only primary partitions can be swap partitions."
+msgstr "Лише основні розділи можуть бути розділами підкачки."
+
+#: libparted/labels/dvh.c:644
+msgid "Only logical partitions can be a boot file."
+msgstr "Лише логічні розділи можуть бути завантажувальним файлом."
+
+#: libparted/labels/dvh.c:721
+msgid "Only logical partitions (boot files) have a name."
+msgstr "Лише логічні розділи (завантажувальні файли) мають назву."
+
+#: libparted/labels/dvh.c:812
+msgid "Too many primary partitions"
+msgstr "Занадто багато основних розділів"
+
+#: libparted/labels/fdasd.c:103
+#, c-format
+msgid ""
+"%s open error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:107
+#, c-format
+msgid ""
+"%s seek error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:110
+#, c-format
+msgid ""
+"%s read error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:113
+#, fuzzy, c-format
+msgid ""
+"%s write error\n"
+"%s\n"
+msgstr "%s при записі на %s"
+
+#: libparted/labels/fdasd.c:116
+#, c-format
+msgid ""
+"%s IOCTL error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:119
+#, c-format
+msgid ""
+"%s API version mismatch\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:122
+#, c-format
+msgid ""
+"%s Unsupported disk type\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:126
+#, c-format
+msgid ""
+"%s Unsupported disk format\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:130
+#, fuzzy, c-format
+msgid ""
+"%s Disk in use\n"
+"%s\n"
+msgstr "Диск %s: %s\n"
+
+#: libparted/labels/fdasd.c:133
+#, c-format
+msgid ""
+"%s Config file syntax error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:137
+#, c-format
+msgid ""
+"%s Volume label is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:141
+#, c-format
+msgid ""
+"%s a data set name is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:145
+#, c-format
+msgid ""
+"%s space allocation\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:149
+#, c-format
+msgid ""
+"%s device verification failed\n"
+"The specified device is not a valid DASD device\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:154
+#, c-format
+msgid ""
+"%s Fatal error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/gpt.c:454
+#, c-format
+msgid ""
+"%s contains GPT signatures, indicating that it has a GPT table.  However, it "
+"does not have a valid fake msdos partition table, as it should.  Perhaps it "
+"was corrupted -- possibly by a program that doesn't understand GPT partition "
+"tables.  Or perhaps you deleted the GPT table, and are now using an msdos "
+"partition table.  Is this a GPT partition table?"
+msgstr ""
+"%s містить GPT сигнатуру, це означає, що він містить GPT таблицю. Але, він "
+"не містить правильної імітації msdos-сумісної таблиці розділів, хоча і "
+"повинен містити. Можливо він пошкоджений програмою яка не розуміє GPT "
+"таблиці розділів. Або, можливо, ви видалили GPT таблицю, а тепер "
+"використовуєте msdos-сумісну таблицю розділів. На цьому розділі є GPT "
+"таблиця?"
+
+#: libparted/labels/gpt.c:648
+#, c-format
+msgid ""
+"The format of the GPT partition table is version %x, which is newer than "
+"what Parted can recognise.  Please tell us!  bug-parted@gnu.org"
+msgstr ""
+"Знайдено GPT таблицю розділів версії %x, ця версія старша ніж версія, що "
+"підтримується програмою Parted. Будь ласка, повідомте нам! bug-parted@gnu.org"
+
+#: libparted/labels/gpt.c:698
+#, c-format
+msgid ""
+"Not all of the space available to %s appears to be used, you can fix the GPT "
+"to use all of the space (an extra %llu blocks) or continue with the current "
+"setting? "
+msgstr ""
+"На %s використовується не весь доступний простір, виправити GPT, щоб "
+"використовувався весь простір (додатково %llu блоків) або продовжити з "
+"вказаними параметрами?."
+
+#: libparted/labels/gpt.c:827
+msgid ""
+"The backup GPT table is not at the end of the disk, as it should be.  This "
+"might mean that another operating system believes the disk is smaller.  Fix, "
+"by moving the backup to the end (and removing the old backup)?"
+msgstr ""
+"Резервна GPT таблиця не знаходиться наприкінці диска, хоча повинна там "
+"знаходитись. Можливо, це означає, що інша операційна система вважає, що "
+"розмір диску менший. Виправити це шляхом переміщення копії таблиці у кінець "
+"(та видалити стару копію)?"
+
+#: libparted/labels/gpt.c:862
+msgid ""
+"The primary GPT table is corrupt, but the backup appears OK, so that will be "
+"used."
+msgstr ""
+"Основна GPT таблиця пошкоджена, але резервна виглядає правильною, тому буде "
+"використовуватись саме вона."
+
+#: libparted/labels/gpt.c:870
+msgid ""
+"Both the primary and backup GPT tables are corrupt.  Try making a fresh "
+"table, and using Parted's rescue feature to recover partitions."
+msgstr ""
+"Пошкоджено як головну так і резервну GPT таблиці. Спробуйте створити чисту "
+"таблицю, та використовуйте функцію відновлення програми Parted, щоб "
+"повернути розділи."
+
+#: libparted/labels/mac.c:181
+#, c-format
+msgid "Invalid signature %x for Mac disk labels."
+msgstr "Неправильна сигнатура %x для Macintosh етикетки диску."
+
+#: libparted/labels/mac.c:226
+msgid "Partition map has no partition map entry!"
+msgstr "Карта розділів не містить елементу карти розділів!"
+
+#: libparted/labels/mac.c:273
+#, c-format
+msgid "%s is too small for a Mac disk label!"
+msgstr "%s занадто мале для Macintosh етикетки диску!"
+
+#: libparted/labels/mac.c:532
+#, c-format
+msgid "Partition %d has an invalid signature %x."
+msgstr "Розділ %d має неправильну сигнатуру %x."
+
+#: libparted/labels/mac.c:550
+#, c-format
+msgid "Partition %d has an invalid length of 0 bytes!"
+msgstr "Розділ %d має неправильну довжину 0 байт!"
+
+#: libparted/labels/mac.c:580
+msgid "The data region doesn't start at the start of the partition."
+msgstr "Область даних не починається з початку розділу."
+
+#: libparted/labels/mac.c:597
+msgid "The boot region doesn't start at the start of the partition."
+msgstr "Область завантаження не починається з початку розділу."
+
+#: libparted/labels/mac.c:611
+msgid "The partition's boot region doesn't occupy the entire partition."
+msgstr "Область завантаження розділу не займає весь розділ."
+
+#: libparted/labels/mac.c:622
+msgid "The partition's data region doesn't occupy the entire partition."
+msgstr "Область даних розділу не займає весь розділ."
+
+#: libparted/labels/mac.c:675
+#, c-format
+msgid ""
+"Weird block size on device descriptor: %d bytes is not divisible by 512."
+msgstr ""
+"Дивний розмір блоку у дескрипторі пристрою: %d байт не ділиться на 512."
+
+#: libparted/labels/mac.c:688
+#, c-format
+msgid ""
+"The driver descriptor says the physical block size is %d bytes, but Linux "
+"says it is %d bytes."
+msgstr ""
+"У дескрипторі драйвера зазначено, що розмір фізичного блоку дорівнює %d "
+"байтів, але Linux вважає, що він %d байтів."
+
+#: libparted/labels/mac.c:736
+msgid "No valid partition map found."
+msgstr "Не знайдено правильної карти розділів."
+
+#: libparted/labels/mac.c:795
+#, c-format
+msgid ""
+"Conflicting partition map entry sizes!  Entry 1 says it is %d, but entry %d "
+"says it is %d!"
+msgstr ""
+"Конфліктуючі розміри у елементах карти розділів! У елементі 1 вказано %d, "
+"але у елементі %d вказано %d!"
+
+#: libparted/labels/mac.c:822
+msgid "Weird!  There are 2 partitions map entries!"
+msgstr "Фатально! Дивна помилка - 2 елементи карти розділів!"
+
+#: libparted/labels/mac.c:1347
+msgid ""
+"Changing the name of a root or swap partition will prevent Linux from "
+"recognising it as such."
+msgstr ""
+"Зміна назви кореневого розділу чи розділу підкачки заважатиме Linux "
+"розпізнати їх."
+
+#: libparted/labels/mac.c:1443
+msgid "Can't add another partition -- the partition map is too small!"
+msgstr "Не вдається додати інший розділ - карта розділів надто маленька!"
+
+#: libparted/labels/pc98.c:354
+#, c-format
+msgid "Invalid partition table on %s."
+msgstr "Неправильна таблиця розділів у %s."
+
+#: libparted/labels/pc98.c:406 libparted/labels/pc98.c:484
+#, c-format
+msgid ""
+"Partition %d isn't aligned to cylinder boundaries.  This is still "
+"unsupported."
+msgstr ""
+"Розділ %d не вирівняний на межі циліндру. Необхідно додати підтримку для "
+"цього випадку."
+
+#: libparted/labels/pc98.c:791
+msgid "Can't add another partition."
+msgstr "Не вдається додати інший розділ."
+
+#: libparted/labels/rdb.c:162
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s."
+msgstr "%s : Неправильна контрольна сума на блоці %llu типу %s."
+
+#: libparted/labels/rdb.c:497
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen."
+msgstr "%s : Не вдається знайти блок rdb, цього не повинно було статися."
+
+#: libparted/labels/rdb.c:581
+#, c-format
+msgid "%s : Loop detected at block %d."
+msgstr "%s : виявлено цикл у блоці %d."
+
+#: libparted/labels/rdb.c:600
+#, c-format
+msgid "%s : The %s list seems bad at block %s."
+msgstr "%s : Список %s має пошкоджений блок %s."
+
+#: libparted/labels/rdb.c:689
+#, c-format
+msgid "%s : Failed to list bad blocks."
+msgstr "%s : не вдається отримати список пошкоджених блоків."
+
+#: libparted/labels/rdb.c:697
+#, c-format
+msgid "%s : Failed to list partition blocks."
+msgstr "%s : не вдається отримати список блоків розділу."
+
+#: libparted/labels/rdb.c:705
+#, c-format
+msgid "%s : Failed to list file system blocks."
+msgstr "%s : не вдається отримати список блоків файлової системи."
+
+#: libparted/labels/rdb.c:713
+#, c-format
+msgid "%s : Failed to list boot blocks."
+msgstr "%s : не вдається отримати список завантажувальних блоків."
+
+#: libparted/labels/rdb.c:740
+#, c-format
+msgid "Failed to write partition block at %d."
+msgstr "Не вдається записати блок розділу у %d."
+
+#: libparted/labels/rdb.c:1069
+msgid "Unable to allocate a partition number."
+msgstr "Очікується номер розділу."
+
+#: libparted/labels/sun.c:145
+msgid "Corrupted Sun disk label detected."
+msgstr "Знайдено пошкоджену Sun етикетку диску."
+
+#: libparted/labels/sun.c:266
+#, c-format
+msgid ""
+"The disk CHS geometry (%d,%d,%d) reported by the operating system does not "
+"match the geometry stored on the disk label (%d,%d,%d)."
+msgstr ""
+"ЦГС(CHS) геометрія диску (%d,%d,%d) яку видає операційна система не "
+"відповідає геометрії, що зберігається у позначці диску (%d,%d,%d)."
+
+#: libparted/labels/sun.c:288
+#, c-format
+msgid "The disk label describes a disk bigger than %s."
+msgstr "Етикетка диску описує диск більшого розміру ніж %s."
+
+#: libparted/labels/sun.c:442
+#, c-format
+msgid "The disk has %d cylinders, which is greater than the maximum of 65536."
+msgstr "Диск має %d циліндрів, що більше ніж максимальне значення 65536."
+
+#: libparted/labels/sun.c:737
+msgid ""
+"The Whole Disk partition is the only available one left.  Generally, it is "
+"not a good idea to overwrite this partition with a real one.  Solaris may "
+"not be able to boot without it, and SILO (the sparc boot loader) appreciates "
+"it as well."
+msgstr ""
+"Розділ \"Весь диск\" - єдиний наявний. Зазвичай, небажано перезаписувати цей "
+"розділ реальним розділом. Solaris, можливо, не буде здатний завантажитись "
+"без нього, це також вплине на SILO (завантажувач sparc)."
+
+#: libparted/labels/sun.c:752
+msgid "Sun disk label is full."
+msgstr "Sun етикетка диску заповнена."
+
+#: libparted/labels/vtoc.c:163
+#, c-format
+msgid ""
+"%s opening device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:167
+#, c-format
+msgid ""
+"%s seeking device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:171
+#, c-format
+msgid ""
+"%s writing to device '%s' failed,\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:175
+#, c-format
+msgid ""
+"%s reading from device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:179
+#, c-format
+msgid "Fatal error\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:418
+msgid "Could not read VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:424
+msgid "Could not read VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:431
+msgid "Could not read VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:438
+msgid "Could not read VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:445
+msgid "Could not read VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:462
+msgid "Could not write VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:468
+msgid "Could not write VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:475
+msgid "Could not write VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:482
+msgid "Could not write VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:489
+msgid "Could not write VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/libparted.c:296 libparted/libparted.c:316
+msgid "Out of memory."
+msgstr "Недостатньо пам'яті."
+
+#: libparted/unit.c:139
+msgid "Cannot get unit size for special unit 'COMPACT'."
+msgstr "Не вдається отримати одиницю розміру для спеціального блоку 'COMPACT'."
+
+#: libparted/unit.c:386
+#, c-format
+msgid "\"%s\" has invalid syntax for locations."
+msgstr "\"%s\" має неправильний синтаксис адрес."
+
+#: libparted/unit.c:394
+#, c-format
+msgid "The maximum head value is %d."
+msgstr "Максимальний номер головки - %d."
+
+#: libparted/unit.c:401
+#, c-format
+msgid "The maximum sector value is %d."
+msgstr "Максимальний номер сектора - %d."
+
+#: libparted/unit.c:413 libparted/unit.c:545
+#, c-format
+msgid "The location %s is outside of the device %s."
+msgstr "Адреса %s поза межами пристрою %s."
+
+#: libparted/unit.c:527
+msgid "Invalid number."
+msgstr "Неправильне число."
+
+#: libparted/fs/amiga/affs.c:63 libparted/fs/amiga/apfs.c:56
+#: libparted/fs/amiga/asfs.c:70
+#, fuzzy, c-format
+msgid "%s : Failed to allocate partition block\n"
+msgstr "%s : не вдається отримати список блоків розділу."
+
+#: libparted/fs/amiga/affs.c:78 libparted/fs/amiga/apfs.c:70
+#: libparted/fs/amiga/asfs.c:86
+#, fuzzy, c-format
+msgid "%s : Failed to allocate block\n"
+msgstr "%s : не вдається отримати список завантажувальних блоків."
+
+#: libparted/fs/amiga/affs.c:83 libparted/fs/amiga/apfs.c:75
+#, fuzzy, c-format
+msgid "%s : Couldn't read boot block %llu\n"
+msgstr "%s : виявлено цикл у блоці %d."
+
+#: libparted/fs/amiga/affs.c:99 libparted/fs/amiga/apfs.c:86
+#: libparted/fs/amiga/asfs.c:92 libparted/fs/amiga/asfs.c:106
+#, fuzzy, c-format
+msgid "%s : Couldn't read root block %llu\n"
+msgstr "%s : виявлено цикл у блоці %d."
+
+#: libparted/fs/amiga/amiga.c:72
+#, fuzzy, c-format
+msgid "%s : Failed to allocate id list element\n"
+msgstr "%s : не вдається отримати список пошкоджених блоків."
+
+#: libparted/fs/amiga/amiga.c:189
+#, c-format
+msgid "%s : Couldn't read block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:202
+#, fuzzy, c-format
+msgid "%s : Bad checksum on block %llu of type %s\n"
+msgstr "%s : Неправильна контрольна сума на блоці %llu типу %s."
+
+#: libparted/fs/amiga/amiga.c:212
+#, fuzzy, c-format
+msgid "%s : Couldn't write block %d\n"
+msgstr "%s : виявлено цикл у блоці %d."
+
+#: libparted/fs/amiga/amiga.c:278
+#, fuzzy, c-format
+msgid "%s : Failed to allocate disk_specific rdb block\n"
+msgstr "%s : не вдається отримати список пошкоджених блоків."
+
+#: libparted/fs/amiga/amiga.c:289
+#, fuzzy, c-format
+msgid "%s : Didn't find rdb block, should never happen\n"
+msgstr "%s : Не вдається знайти блок rdb, цього не повинно було статися."
+
+#: libparted/fs/amiga/amiga.c:318
+#, fuzzy, c-format
+msgid "%s : Failed to read partition block %llu\n"
+msgstr "%s : не вдається отримати список блоків розділу."
+
+#: libparted/fs/ext2/ext2.c:87 libparted/fs/ext2/ext2.c:112
+msgid "Inconsistent group descriptors!"
+msgstr "Суперечлива група дескрипторів!"
+
+#: libparted/fs/ext2/ext2.c:91 libparted/fs/ext2/ext2.c:116
+msgid "File system full!"
+msgstr "Файлова система повна!"
+
+#: libparted/fs/ext2/ext2.c:686
+msgid "Invalid superblock.  Are you sure this is an ext2 file system?"
+msgstr "Неправильний суперблок. Ви впевнені, що це файлова система типу ext2?"
+
+#: libparted/fs/ext2/ext2.c:700 libparted/fs/ext2/ext2_resize.c:658
+msgid "File system has errors!  You should run e2fsck."
+msgstr "Файлова система містить помилки! Необхідно запустити e2fsck."
+
+#: libparted/fs/ext2/ext2.c:711
+msgid ""
+"File system was not cleanly unmounted!  You should run e2fsck.  Modifying an "
+"unclean file system could cause severe corruption."
+msgstr ""
+"Файлова система не була правильно відключена! Необхідно запустити e2fsck. "
+"Зміни до нецілісної файлової системи можуть призвести до серйозних "
+"пошкоджень."
+
+#: libparted/fs/ext2/ext2.c:731
+msgid "File system has an incompatible feature enabled."
+msgstr "У файловій системі ввімкнено несумісну властивість."
+
+#: libparted/fs/ext2/ext2.c:742
+msgid "Error allocating buffer cache."
+msgstr "Помилка розподілу буфера кеша."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:114
+msgid ""
+"Found an inode with a incorrect link count.  Better go run e2fsck first!"
+msgstr ""
+"Знайдено вузол (inode) з неправильною кількістю посилань. Рекомендується "
+"спочатку запустити e2fsck."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:487
+msgid "Not enough free inodes!"
+msgstr "Недостатньо вільних вузлів (inode)!"
+
+#: libparted/fs/ext2/ext2_resize.c:223
+msgid "File system is too full to remove a group!"
+msgstr "Файлова система надто заповнена, щоб видалити групу!"
+
+#: libparted/fs/ext2/ext2_resize.c:232
+msgid "File system has too many allocated inodes to remove a group!"
+msgstr ""
+"У файловій системі виділено надто багато вузлів (inode), щоб видалити групу!"
+
+#: libparted/fs/ext2/ext2_resize.c:491
+msgid "adding groups"
+msgstr "додавання груп"
+
+#: libparted/fs/ext2/ext2_resize.c:528
+#, c-format
+msgid "Your file system is too full to resize it to %i blocks.  Sorry."
+msgstr "Файлова система надто заповнена щоб змінити її розмір до %i блоків."
+
+#: libparted/fs/ext2/ext2_resize.c:538
+#, c-format
+msgid ""
+"Your file system has too many occupied inodes to resize it to %i blocks.  "
+"Sorry."
+msgstr ""
+"У файловій системі надто багато зайнятих i-вузлів, щоб змінити її розмір до %"
+"i блоків."
+
+#: libparted/fs/ext2/ext2_resize.c:666
+msgid "File system was not cleanly unmounted!  You should run e2fsck."
+msgstr ""
+"Файлова система була неправильно відключена! Необхідно запустити e2fsck."
+
+#: libparted/fs/ext2/ext2_resize.c:675
+msgid ""
+"The file system has the 'dir_index' feature enabled.  Parted can only resize "
+"the file system if it disables this feature.  You can enable it later by "
+"running 'tune2fs -O dir_index DEVICE' and then 'e2fsck -fD DEVICE'."
+msgstr ""
+"У файловій системі ввімкнено властивість 'dir_index'. Parted може змінювати "
+"розмір лише у файлових систем, у яких ця властивість вимкнена. Ви можете "
+"увімкнути її пізніше, командою 'tune2fs -O dir_index DEVICE', після чого "
+"слід запустити 'e2fsck -fD DEVICE'."
+
+#: libparted/fs/ext2/ext2_resize.c:691
+#, fuzzy
+msgid ""
+"A resize operation on this file system will use EXPERIMENTAL code\n"
+"that MAY CORRUPT it (although no one has reported any such damage yet).\n"
+"You should at least backup your data first, and run 'e2fsck -f' afterwards."
+msgstr ""
+"Операція зміни розміру на цій файловій системі використовує "
+"ЕКСПЕРИМЕНТАЛЬНИЙ код та МОЖЕ ПОШКОДИТИ її (хоча цього досі не було "
+"помічено). Принаймні, слід зробити резервну копію даних та запустити 'e2fsck "
+"-f' після завершення зміни розміру."
+
+#: libparted/fs/ext2/ext2_block_relocator.c:198
+msgid "Cross-linked blocks found!  Better go run e2fsck first!"
+msgstr ""
+"Виявлено блоки з перехресними посиланнями! Краще спочатку запустити e2fsck!"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:537
+#, c-format
+msgid "Block %i has no reference?  Weird."
+msgstr "Блок %i не має посилання? Дивно"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:737
+#, c-format
+msgid "Block %i shouldn't have been marked (%d, %d)!"
+msgstr "Блок %i не повинен бути відміченим (%d, %d)!"
+
+#: libparted/fs/ext2/interface.c:186
+msgid ""
+"The ext2 file system passed a basic check.  For a more comprehensive check, "
+"use the e2fsck program."
+msgstr ""
+"Файлова система ext2 пройшла загальну перевірку. Для більш докладної "
+"перевірки користуйтесь програмою e2fsck."
+
+#: libparted/fs/ext2/interface.c:203
+msgid "Sorry, can't move the start of ext2 partitions yet!"
+msgstr "Нажаль, переміщення початку розділів типу ext2 ще не підтримується!"
+
+#: libparted/fs/ext2/ext2_buffer.c:82
+msgid "Couldn't flush buffer cache!"
+msgstr "Не вдається очистити буфер кешу!"
+
+#: libparted/fs/ext2/ext2_mkfs.c:162
+msgid "writing per-group metadata"
+msgstr "записування метаданих груп"
+
+#: libparted/fs/ext2/ext2_mkfs.c:564
+msgid "File system too small for ext2."
+msgstr "Файлова система занадто маленька для ext2."
+
+#: libparted/fs/fat/calc.c:135
+#, c-format
+msgid ""
+"You need %s of free disk space to shrink this partition to this size.  "
+"Currently, only %s is free."
+msgstr ""
+"Необхідно %s вільного простору, щоб зменшити розділ до такого розміру (зараз "
+"у вас вільно лише %s)."
+
+#: libparted/fs/fat/context.c:56
+#, c-format
+msgid ""
+"Cluster start delta = %d, which is not a multiple of the cluster size %d."
+msgstr ""
+"Кластер починається зі зсувом %d, що не є цілим числом кластерів розміру %d."
+
+#: libparted/fs/fat/fat.c:308
+#, c-format
+msgid "Partition too big/small for a %s file system."
+msgstr "Розділ надто великий/малий для файлової системи типу %s."
+
+#: libparted/fs/fat/fat.c:474
+msgid ""
+"The FATs don't match.  If you don't know what this means, then select "
+"cancel, run scandisk on the file system, and then come back."
+msgstr ""
+"Копії FAT не співпадають. Якщо ви не знаєте, що це означає, виберіть "
+"\"Скасувати\", запустіть scandisk для файлової системи, а потім повторіть цю "
+"команду."
+
+#: libparted/fs/fat/fat.c:514
+msgid "There are no possible configurations for this FAT type."
+msgstr "Для цього типу FAT немає допустимих конфігурацій."
+
+#: libparted/fs/fat/fat.c:526
+#, c-format
+msgid ""
+"File system doesn't have expected sizes for Windows to like it.  Cluster "
+"size is %dk (%dk expected); number of clusters is %d (%d expected); size of "
+"FATs is %d sectors (%d expected)."
+msgstr ""
+"Windows не підтримує файлову систему, що має такі розміри. Розмір кластера %"
+"dk (очікувалось %dk); кількість кластерів %d (очікувалось %d); розмір FAT %d "
+"секторів (очікувалось %d)."
+
+#: libparted/fs/fat/fat.c:549
+#, c-format
+msgid ""
+"File system is reporting the free space as %d clusters, not %d clusters."
+msgstr ""
+"Файлова система повідомляє про вільний простір %d кластерів, а не %d "
+"кластерів."
+
+#: libparted/fs/fat/fat.c:874
+msgid ""
+"GNU Parted was miscompiled: the FAT boot sector should be 512 bytes.  FAT "
+"support will be disabled."
+msgstr ""
+"GNU parted зібрано неправильно: завантажувальний сектор FAT повинен мати "
+"розмір 512 байтів. Підтримка FAT вимкнена."
+
+#: libparted/fs/fat/resize.c:159
+msgid ""
+"There's not enough room in the root directory for all of the files.  Either "
+"cancel, or ignore to lose the files."
+msgstr ""
+"Не вистачає простору для всіх файлів в кореневому каталозі. Виберіть "
+"\"Скасувати\", якщо проігноруєте, це призведе до втрати  файлів."
+
+#: libparted/fs/fat/resize.c:300
+msgid "Error writing to the root directory."
+msgstr "Помилка записування у кореневий каталог."
+
+#: libparted/fs/fat/resize.c:489
+msgid "If you leave your file system as FAT16, then you will have no problems."
+msgstr ""
+"Якщо залишити файлову систему як FAT16, тоді у вас не виникатиме проблем."
+
+#: libparted/fs/fat/resize.c:492
+msgid ""
+"If you convert to FAT16, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual)."
+msgstr ""
+"Якщо ви перетворюєте файлову систему розділу з Windows у розділ FAT16, буде "
+"потрібно перевстановити завантажувач MS Windows. Для цього слід переглянути "
+"довідку з Parted (або посібник з вашого дистрибутиву)."
+
+#: libparted/fs/fat/resize.c:500
+msgid ""
+"If you leave your file system as FAT32, then you will not introduce any new "
+"problems."
+msgstr ""
+"Якщо ви залишаєте файлову систему як FAT32, тоді не виникне ніяких нових "
+"проблем."
+
+#: libparted/fs/fat/resize.c:504
+msgid ""
+"If you convert to FAT32, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual).  Also, "
+"converting to FAT32 will make the file system unreadable by MS DOS, MS "
+"Windows 95a, and MS Windows NT."
+msgstr ""
+"Якщо ви перетворите файлову систему розділу з MS Windows у розділ FAT32,буде "
+"потрібно перевстановити завантажувач MS Windows. Для цього слід переглянути "
+"довідку з Parted (або посібник з вашого дистрибутиву). Перетворення у FAT32 "
+"унеможливить читання файлової системи під MS DOS, MS Windows 95a, та MS "
+"Windows NT."
+
+#: libparted/fs/fat/resize.c:518
+#, c-format
+msgid "%s  %s  %s"
+msgstr "%s  %s  %s"
+
+#: libparted/fs/fat/resize.c:519
+msgid "Would you like to use FAT32?"
+msgstr "Бажаєте використовувати FAT32?"
+
+#: libparted/fs/fat/resize.c:550 libparted/fs/fat/resize.c:566
+#, c-format
+msgid "%s  %s"
+msgstr "%s  %s"
+
+#: libparted/fs/fat/resize.c:551
+msgid ""
+"The file system can only be resized to this size by converting to FAT16."
+msgstr ""
+"Змінити розмір файлової системи на вказаний розмір можна лише при "
+"перетворенні на FAT16."
+
+#: libparted/fs/fat/resize.c:567
+msgid ""
+"The file system can only be resized to this size by converting to FAT32."
+msgstr ""
+"Змінити розмір файлової системи на вказаний розмір можна лише при "
+"перетворенні на FAT32."
+
+#: libparted/fs/fat/resize.c:580
+msgid ""
+"GNU Parted cannot resize this partition to this size.  We're working on it!"
+msgstr ""
+"GNU Parted нездатен змінити розмір розділу на вказане значення. Ми над цим "
+"працюємо!"
+
+#: libparted/fs/fat/bootsector.c:49 libparted/fs/fat/bootsector.c:56
+msgid "File system has an invalid signature for a FAT file system."
+msgstr "Файлова система містить неправильну сигнатуру файлової системи FAT."
+
+#: libparted/fs/fat/bootsector.c:64
+msgid "File system has an invalid sector size for a FAT file system."
+msgstr "Файлова система має неправильний розмір сектора файлової системи FAT."
+
+#: libparted/fs/fat/bootsector.c:71
+msgid "File system has an invalid cluster size for a FAT file system."
+msgstr "Файлова система має неправильний розмір кластера файлової системи FAT."
+
+#: libparted/fs/fat/bootsector.c:78
+msgid ""
+"File system has an invalid number of reserved sectors for a FAT file system."
+msgstr "У файловій системі неправильна кількість резервних секторів FAT."
+
+#: libparted/fs/fat/bootsector.c:85
+msgid "File system has an invalid number of FATs."
+msgstr "У файловій системі неправильне число копій FAT."
+
+#: libparted/fs/fat/bootsector.c:139
+#, c-format
+msgid ""
+"This file system has a logical sector size of %d.  GNU Parted is known not "
+"to work properly with sector sizes other than 512 bytes."
+msgstr ""
+"Файлова система має логічний розмір сектора %d. Вважається, що GNU Parted "
+"працює неправильно з секторами, розмір яких не дорівнює 512 байт."
+
+#: libparted/fs/fat/bootsector.c:164
+#, c-format
+msgid ""
+"The file system's CHS geometry is (%d, %d, %d), which is invalid.  The "
+"partition table's CHS geometry is (%d, %d, %d).  If you select Ignore, the "
+"file system's CHS geometry will be left unchanged.  If you select Fix, the "
+"file system's CHS geometry will be set to match the partition table's CHS "
+"geometry."
+msgstr ""
+"Геометрія CHS файлової системи становить (%d, %d, %d), що є неправильним.  "
+"Геометрія CHS таблиці розділів становить (%d, %d, %d).  Якщо ви виберете "
+"Ігнорувати, геометрію CHS файлової системи буде залишено без змін.  Якщо ви "
+"оберете Виправити(Fix), геометрію CHS файлової системи буде приведено у "
+"відповідність до геометрії CHS таблиці розділів."
+
+#: libparted/fs/fat/bootsector.c:213
+msgid "FAT boot sector says logical sector size is 0.  This is weird. "
+msgstr ""
+"Завантажувальний сектор FAT містить розмір логічного сектора, що дорівнює 0. "
+"Це дивно."
+
+#: libparted/fs/fat/bootsector.c:219
+msgid "FAT boot sector says there are no FAT tables.  This is weird. "
+msgstr ""
+"У завантажувальному секторі FAT не міститься інформація про таблиці FAT. Це "
+"дивно."
+
+#: libparted/fs/fat/bootsector.c:225
+msgid "FAT boot sector says clusters are 0 sectors.  This is weird. "
+msgstr ""
+"У відповідності до завантажувального сектора FAT, кластер містить 0 "
+"секторів. Це дивно."
+
+#: libparted/fs/fat/bootsector.c:235
+msgid "File system is FAT12, which is unsupported."
+msgstr "Файлові системи типу FAT12 не підтримуються."
+
+#: libparted/fs/fat/bootsector.c:411
+#, c-format
+msgid ""
+"The information sector has the wrong signature (%x).  Select cancel for now, "
+"and send in a bug report.  If you're desperate, it's probably safe to ignore."
+msgstr ""
+"Інформаційний сектор містить неправильну сигнатуру (%x). Виберіть \"Скасувати"
+"\" та відправте повідомлення про помилку. Якщо ви втратили надію, тоді можна "
+"проігнорувати цю проблему."
+
+#: libparted/fs/fat/count.c:152
+#, c-format
+msgid "Bad directory entry for %s: first cluster is the end of file marker."
+msgstr ""
+"Неправильний елемент каталогу %s: перший кластер є кінцем маркера файла."
+
+#: libparted/fs/fat/count.c:165
+#, c-format
+msgid ""
+"Bad FAT: unterminated chain for %s.  You should run dosfsck or scandisk."
+msgstr ""
+"Помилка у FAT: незавершений ланцюг для %s. Потрібно запустити dosfsck або "
+"scandisk."
+
+#: libparted/fs/fat/count.c:174
+#, c-format
+msgid ""
+"Bad FAT: cluster %d outside file system in chain for %s.  You should run "
+"dosfsck or scandisk."
+msgstr ""
+"Помилка у FAT: кластер %d знаходиться поза межами файлової системи у ланцюгу "
+"для %s. Потрібно запустити dosfsck або scandisk."
+
+#: libparted/fs/fat/count.c:184
+#, c-format
+msgid ""
+"Bad FAT: cluster %d is cross-linked for %s.  You should run dosfsck or "
+"scandisk."
+msgstr ""
+"Помилка у FAT: перехресне посилання у кластері %d для %s. Потрібно запустити "
+"dosfsck або scandisk."
+
+#: libparted/fs/fat/count.c:203
+#, c-format
+msgid "%s is %dk, but it has %d clusters (%dk)."
+msgstr "%s дорівнює %dk, але має %d кластерів (%dk)."
+
+#: libparted/fs/fat/count.c:266
+#, c-format
+msgid ""
+"The file %s is marked as a system file.  This means moving it could cause "
+"some programs to stop working."
+msgstr ""
+"Файл %s позначений як системний файл. Це означає, що його переміщення може "
+"призвести до припинення роботи деяких програм."
+
+#: libparted/fs/fat/table.c:137
+#, c-format
+msgid ""
+"FAT %d media %x doesn't match the boot sector's media %x.  You should "
+"probably run scandisk."
+msgstr ""
+"FAT %d носій %x не відповідає завантажувальним секторам носія %x. Потрібно "
+"запустити dosfsck або scandisk."
+
+#: libparted/fs/fat/table.c:269
+#, c-format
+msgid "fat_table_set: cluster %ld outside file system"
+msgstr "fat_table_set: кластер %ld знаходиться поза межами файлової системи"
+
+#: libparted/fs/fat/table.c:301
+#, c-format
+msgid "fat_table_get: cluster %ld outside file system"
+msgstr "fat_table_get: кластер %ld знаходиться поза межами файлової системи"
+
+#: libparted/fs/fat/table.c:343
+msgid "fat_table_alloc_cluster: no free clusters"
+msgstr "fat_table_alloc_cluster: немає вільних кластерів"
+
+#: libparted/fs/linux_swap/linux_swap.c:275
+#, fuzzy, c-format
+msgid "Unrecognised old style linux swap signature '%10s'."
+msgstr "Невідома сигнатура '%10s' розділу підкачки linux."
+
+#: libparted/fs/linux_swap/linux_swap.c:318
+#, fuzzy, c-format
+msgid "Unrecognised new style linux swap signature '%10s'."
+msgstr "Невідома сигнатура '%10s' розділу підкачки linux."
+
+#: libparted/fs/linux_swap/linux_swap.c:358
+#, fuzzy, c-format
+msgid "Unrecognised swsusp linux swap signature '%9s'."
+msgstr "Невідома сигнатура '%10s' розділу підкачки linux."
+
+#: libparted/fs/linux_swap/linux_swap.c:434
+msgid "Too many bad pages."
+msgstr "Надто багато пошкоджених сторінок."
+
+#: libparted/fs/hfs/advfs.c:121 libparted/fs/hfs/advfs_plus.c:122
+#: libparted/fs/hfs/reloc.c:414 libparted/fs/hfs/reloc.c:508
+#: libparted/fs/hfs/reloc_plus.c:539 libparted/fs/hfs/reloc_plus.c:658
+#: libparted/fs/hfs/reloc_plus.c:772
+msgid "The file system contains errors."
+msgstr "Файлова система містить помилки."
+
+#: libparted/fs/hfs/advfs_plus.c:287
+msgid "Bad blocks could not be read."
+msgstr "Пошкоджені блоки не вдається прочитати."
+
+#: libparted/fs/hfs/cache.c:137
+#, c-format
+msgid ""
+"Trying to register an extent starting at block 0x%X, but another one already "
+"exists at this position.  You should check the file system!"
+msgstr ""
+"Спроба зареєструвати екстент, о починається з блоку 0x%X, але в цій позиції "
+"вже існує інший. Слід перевірити файлову систему!"
+
+#: libparted/fs/hfs/cache.c:214
+#, c-format
+msgid ""
+"Trying to move an extent from block Ox%X to block Ox%X, but another one "
+"already exists at this position.  This should not happen!"
+msgstr ""
+"Спроба перемістити екстент з блоку Ox%X у блок Ox%X, але в цій позиції вже "
+"існує інший.  Цього не повинно бути!"
+
+#: libparted/fs/hfs/file.c:143
+#, c-format
+msgid "Could not update the extent cache for HFS file with CNID %X."
+msgstr "Не вдається оновити кеш екстенту для файлу HFS з CNID %X."
+
+#: libparted/fs/hfs/file.c:180
+#, c-format
+msgid "Trying to read HFS file with CNID %X behind EOF."
+msgstr "Спроба прочитати файл HFS з CNID %X перед EOF."
+
+#: libparted/fs/hfs/file.c:190 libparted/fs/hfs/file.c:220
+#, c-format
+msgid "Could not find sector %lli of HFS file with CNID %X."
+msgstr "Не вдається знайти сектор %lli з файлу HFS з CNID %X."
+
+#: libparted/fs/hfs/file.c:210
+#, c-format
+msgid "Trying to write HFS file with CNID %X behind EOF."
+msgstr "Спроба записати файл HFS з CNID %X перед EOF."
+
+#: libparted/fs/hfs/file_plus.c:157
+#, c-format
+msgid "Could not update the extent cache for HFS+ file with CNID %X."
+msgstr "Не вдається оновити кеш екстенту для файлу HFS+ з CNID %X."
+
+#: libparted/fs/hfs/file_plus.c:202
+#, c-format
+msgid "Trying to read HFS+ file with CNID %X behind EOF."
+msgstr "Спроба прочитати файл HFS+ з CNID %X перед EOF."
+
+#: libparted/fs/hfs/file_plus.c:213 libparted/fs/hfs/file_plus.c:256
+#, c-format
+msgid "Could not find sector %lli of HFS+ file with CNID %X."
+msgstr "Не вдається знайти сектор %lli з файлу HFS+ з CNID %X."
+
+#: libparted/fs/hfs/file_plus.c:245
+#, c-format
+msgid "Trying to write HFS+ file with CNID %X behind EOF."
+msgstr "Спроба записати файл HFS+ з CNID %X перед EOF."
+
+#: libparted/fs/hfs/hfs.c:232
+msgid "Sorry, HFS cannot be resized that way yet."
+msgstr "Розмір HFS не можна змінювати таким способом."
+
+#: libparted/fs/hfs/hfs.c:262 libparted/fs/hfs/hfs.c:641
+msgid "Data relocation has failed."
+msgstr "Помилка переносу даних."
+
+#: libparted/fs/hfs/hfs.c:281
+msgid "Data relocation left some data in the end of the volume."
+msgstr "При переносі даних частина даних залишилась наприкінці тому."
+
+#: libparted/fs/hfs/hfs.c:320
+msgid "writing HFS Master Directory Block"
+msgstr "записується головний блок каталогу"
+
+#: libparted/fs/hfs/hfs.c:468
+msgid "No valid HFS[+X] signature has been found while opening."
+msgstr "При відкриванні не виявлено правильну сигнатуру HFS[+X]."
+
+#: libparted/fs/hfs/hfs.c:478
+#, c-format
+msgid "Version %d of HFS+ isn't supported."
+msgstr "Версія %d системи HFS+ не підтримується."
+
+#: libparted/fs/hfs/hfs.c:489
+#, c-format
+msgid "Version %d of HFSX isn't supported."
+msgstr "Версія %d системи HFSX не підтримується."
+
+#: libparted/fs/hfs/hfs.c:672
+msgid "Data relocation left some data at the end of the volume."
+msgstr "При переносі даних наприкінці розділу залишились деякі дані."
+
+#: libparted/fs/hfs/hfs.c:720
+msgid "Error while writing the allocation file."
+msgstr "Помилка запису виділеного файлу."
+
+#: libparted/fs/hfs/hfs.c:735
+msgid "Error while writing the compatibility part of the allocation file."
+msgstr "Помилка запису частини сумісності виділеного файлу."
+
+#: libparted/fs/hfs/hfs.c:750
+msgid "writing HFS+ Volume Header"
+msgstr "запис заголовку тому HFS+"
+
+#: libparted/fs/hfs/hfs.c:850
+msgid "An error occurred while looking for the mandatory bad blocks file."
+msgstr "Помилка пошуку файлу відомих пошкоджених блоків."
+
+#: libparted/fs/hfs/hfs.c:904
+msgid ""
+"It seems there is an error in the HFS wrapper: the bad blocks file doesn't "
+"contain the embedded HFS+ volume."
+msgstr ""
+"Помилка у обробнику HFS: файл пошкоджених блоків не містить вбудований том "
+"HFS+."
+
+#: libparted/fs/hfs/hfs.c:940
+msgid "Sorry, HFS+ cannot be resized that way yet."
+msgstr "Розмір HFS+ не можна змінювати таким способом."
+
+#: libparted/fs/hfs/hfs.c:975
+msgid "shrinking embedded HFS+ volume"
+msgstr "зменшення вбудованого тому HFS+"
+
+#: libparted/fs/hfs/hfs.c:991
+msgid "Resizing the HFS+ volume has failed."
+msgstr "Помилка зміни розміру тому HFS+."
+
+#: libparted/fs/hfs/hfs.c:998
+msgid "shrinking HFS wrapper"
+msgstr "оболонка скорочення HFS"
+
+#: libparted/fs/hfs/hfs.c:1007
+msgid "Updating the HFS wrapper has failed."
+msgstr "оновлення помилка оболонки HFS."
+
+#: libparted/fs/hfs/hfs.c:1109 libparted/fs/hfs/hfs.c:1194
+#, c-format
+msgid ""
+"This is not a real %s check.  This is going to extract special low level "
+"files for debugging purposes."
+msgstr ""
+"Це не справжня перевірка %s. Відбувається лише отримання спеціальних "
+"ньзькорівневих файлів для налагодження."
+
+#: libparted/fs/hfs/journal.c:155
+msgid "Bad block list header checksum."
+msgstr "Неправильна контрольна сума заголовка списку блоків."
+
+#: libparted/fs/hfs/journal.c:168
+#, c-format
+msgid ""
+"Invalid size of a transaction block while replaying the journal (%i bytes)."
+msgstr ""
+"Неправильний розмір блоку транзакції при повторному накладанні журналу (%i "
+"байтів)."
+
+#: libparted/fs/hfs/journal.c:260
+msgid ""
+"Journal stored outside of the volume are not supported.  Try to desactivate "
+"the journal and run Parted again."
+msgstr ""
+"Журнал розміщено поза межами тому не підтримується. Слід вимкнути журнал та "
+"перезапустити Parted."
+
+#: libparted/fs/hfs/journal.c:271
+msgid "Journal offset or size is not multiple of the sector size."
+msgstr "Початок чи розмір журналу не є цілим числом секторів."
+
+#: libparted/fs/hfs/journal.c:292
+msgid "Incorrect magic values in the journal header."
+msgstr "Неправильні сигнатури у заголовку журналу."
+
+#: libparted/fs/hfs/journal.c:302
+msgid "Journal size mismatch between journal info block and journal header."
+msgstr ""
+"Розмір журналу не відповідає значенню у інформаційному блоці журналу та "
+"заголовку журналу."
+
+#: libparted/fs/hfs/journal.c:314
+msgid "Some header fields are not multiple of the sector size."
+msgstr "Розмір деяких полів заголовку не складає ціле число секторів."
+
+#: libparted/fs/hfs/journal.c:323
+msgid ""
+"The sector size stored in the journal is not 512 bytes.  Parted only "
+"supports 512 bytes length sectors."
+msgstr ""
+"Розмір сектора, що зберігається у журналі, не дорівнює 512 байтам.  Parted "
+"підтримує лише сектори розміром 512 байтів."
+
+#: libparted/fs/hfs/journal.c:335
+msgid "Bad journal checksum."
+msgstr "Неправильна контрольна сума журналу."
+
+#: libparted/fs/hfs/journal.c:353
+msgid ""
+"The journal is not empty.  Parted must replay the transactions before "
+"opening the file system.  This will modify the file system."
+msgstr ""
+"Журнал не порожній. Parted маж накласти транзакції перед відкривання "
+"файлової системи. Це призведе до зміни файлової системи."
+
+#: libparted/fs/hfs/journal.c:381
+msgid ""
+"The volume header or the master directory block has changed while replaying "
+"the journal.  You should restart Parted."
+msgstr ""
+"При накладанні журналу змінився заголовок тому чи блок головного каталогу. "
+"Слід перезапустити Parted."
+
+#: libparted/fs/hfs/probe.c:51
+#, c-format
+msgid ""
+"Parted can't use HFS file systems on disks with a sector size not equal to %"
+"d bytes."
+msgstr ""
+"Parted не може використовувати файлові системи HFS на дисках з розміром "
+"сектору, що не кратний %d байтів."
+
+#: libparted/fs/hfs/reloc.c:151 libparted/fs/hfs/reloc_plus.c:155
+msgid "An extent has not been relocated."
+msgstr "Екстент не був переміщений."
+
+#: libparted/fs/hfs/reloc.c:251 libparted/fs/hfs/reloc_plus.c:307
+msgid ""
+"A reference to an extent comes from a place it should not.  You should check "
+"the file system!"
+msgstr ""
+"Посилання на екстент з місця, з якого не має бути посилання. Слід перевірити "
+"файлову систему!"
+
+#: libparted/fs/hfs/reloc.c:381
+msgid "This HFS volume has no catalog file.  This is very unusual!"
+msgstr "Цей том HFS не містить файл каталогу. Досить дивно!"
+
+#: libparted/fs/hfs/reloc.c:475
+msgid "This HFS volume has no extents overflow file.  This is quite unusual!"
+msgstr "Цей том HFS не містить файлу перекривання екстентів. Досить дивно!"
+
+#: libparted/fs/hfs/reloc.c:517 libparted/fs/hfs/reloc_plus.c:668
+msgid ""
+"The extents overflow file should not contain its own extents!  You should "
+"check the file system."
+msgstr ""
+"Файл перекривання екстентів не має містить власних екстентів! Слід "
+"перевірити файлову систему."
+
+#: libparted/fs/hfs/reloc.c:574 libparted/fs/hfs/reloc_plus.c:847
+msgid "Could not cache the file system in memory."
+msgstr "Не вдається занести у кеш файлову систему у пам'яті."
+
+#: libparted/fs/hfs/reloc.c:635 libparted/fs/hfs/reloc_plus.c:908
+msgid "Bad blocks list could not be loaded."
+msgstr "Список неправильних блоків не було завантажено."
+
+#: libparted/fs/hfs/reloc.c:649 libparted/fs/hfs/reloc_plus.c:924
+msgid "An error occurred during extent relocation."
+msgstr "Помилка при переміщенні екстенту."
+
+#: libparted/fs/hfs/reloc_plus.c:495
+msgid "This HFS+ volume has no catalog file.  This is very unusual!"
+msgstr "Цей том HFS+ не містить файлу каталогу.  Досить дивно!"
+
+#: libparted/fs/hfs/reloc_plus.c:619
+msgid "This HFS+ volume has no extents overflow file.  This is quite unusual!"
+msgstr "Цей том HFS+ не містить файлу перекривання екстентів. Досить дивно!"
+
+#: parted/parted.c:94
+msgid "displays this help message"
+msgstr "відображає це повідомлення"
+
+#: parted/parted.c:95
+#, fuzzy
+msgid "lists partition layout on all block devices"
+msgstr "вивести список таблиць розділів на усіх пристроях"
+
+#: parted/parted.c:96
+msgid "displays machine parseable output"
+msgstr ""
+
+#: parted/parted.c:97
+msgid "never prompts for user intervention"
+msgstr "ніколи не запитувати втручання користувача"
+
+#: parted/parted.c:98
+msgid "displays the version"
+msgstr "відображає версію"
+
+#: parted/parted.c:111
+msgid ""
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"
+msgstr ""
+"НОМЕР - це номер розділу, що використовується Linux.  У етикетках диску MS-"
+"DOS, основні розділи мають номери 1-4, а логічні - 5 та далі.\n"
+
+#: parted/parted.c:114
+msgid "LABEL-TYPE is one of: "
+msgstr "ТИП-ЕТИКЕТКИ один з: "
+
+#: parted/parted.c:115
+msgid "FLAG is one of: "
+msgstr "ОЗНАКА одне з: "
+
+#: parted/parted.c:116
+msgid "UNIT is one of: "
+msgstr "БЛОК одне з: "
+
+#: parted/parted.c:117
+msgid "PART-TYPE is one of: primary, logical, extended\n"
+msgstr "ТИП-РОЗДІЛУ один з: основний, логічний, розширений\n"
+
+#: parted/parted.c:119
+msgid "FS-TYPE is one of: "
+msgstr "ТИП-ФС один з: "
+
+#: parted/parted.c:120
+msgid ""
+"START and END are disk locations, such as 4GB or 10%.  Negative values count "
+"from the end of the disk.  For example, -1s specifies exactly the last "
+"sector.\n"
+msgstr ""
+"ПОЧАТОК та КІНЕЦЬ - це місця на диску, такі як 4GB чи 10%.  Від'ємні "
+"значення відраховуються від кінця диску. Наприклад, -1s вказує останній "
+"сектор диску.\n"
+
+#: parted/parted.c:123
+msgid "STATE is one of: on, off\n"
+msgstr "СТАН один з: on, off\n"
+
+#: parted/parted.c:124
+msgid "DEVICE is usually /dev/hda or /dev/sda\n"
+msgstr "ПРИСТРІЙ - зазвичай /dev/hda чи /dev/sda\n"
+
+#: parted/parted.c:125
+msgid "NAME is any word you want\n"
+msgstr "НАЗВА - будь-яке слово на ваш вибір\n"
+
+#: parted/parted.c:126
+msgid "The partition must have one of the following FS-TYPEs: "
+msgstr "Розділ повинен мати один з наступних типів FS-TYPE: "
+
+#: parted/parted.c:130
+#, fuzzy
+msgid ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+msgstr ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"Ця програма є вільним програмним забезпеченням, на неї поширюється "
+"Універсальна Публічна Ліцензія GNU.\n"
+"\n"
+"Ця програма розповсюджується зі сподіванням,що вона буде корисною, але БЕЗ "
+"БУДЬ-ЯКИХ ГАРАНТІЙ; навіть без неявної гарантії КОМЕРЦІЙНОЇ ЦІННОСТІ чи "
+"ПРИДАТНОСТІ ДЛЯ ПЕВНОЇ МЕТИ. Докладнішу інформацію про це дивіться у "
+"Універсальній Публічній Ліцензії GNU.\n"
+
+#: parted/parted.c:176
+#, c-format
+msgid "%0.f%%\t(time left %.2d:%.2d)"
+msgstr "%0.f%%\t(залишилось часу %.2d:%.2d)"
+
+#: parted/parted.c:195
+#, c-format
+msgid ""
+"Partition %s is being used. You must unmount it before you modify it with "
+"Parted."
+msgstr ""
+"Розділ %s наразі зайнятий. Слід відключити його, перш ніж змінювати його "
+"програмою Parted."
+
+#: parted/parted.c:211
+#, c-format
+msgid "Partition(s) on %s are being used."
+msgstr "Розділи на %s наразі зайняті."
+
+#: parted/parted.c:223
+msgid ""
+"The existing file system will be destroyed and all data on the partition "
+"will be lost. Do you want to continue?"
+msgstr ""
+"Існуюча файлова система буде знищена разом з усіма даними на ній. Продовжити?"
+
+#: parted/parted.c:235
+#, c-format
+msgid ""
+"The existing disk label on %s will be destroyed and all data on this disk "
+"will be lost. Do you want to continue?"
+msgstr ""
+"Існуюча позначка диску на %s буде знищена разом з усіма даними на ній. "
+"Продовжити?"
+
+#: parted/parted.c:458 parted/parted.c:652 parted/parted.c:1044
+#: parted/parted.c:1128 parted/parted.c:1771 parted/parted.c:1852
+#: parted/parted.c:1900
+msgid "Partition number?"
+msgstr "Номер розділу?"
+
+#: parted/parted.c:500
+msgid "Source device?"
+msgstr "Пристрій-джерело?"
+
+#: parted/parted.c:504
+msgid "Source partition number?"
+msgstr "Номер вихідного розділу?"
+
+#: parted/parted.c:509
+msgid "Can't copy an extended partition."
+msgstr "Не можна копіювати розширені розділи."
+
+#: parted/parted.c:515
+msgid "Destination partition number?"
+msgstr "Номер цільового розділу?"
+
+#: parted/parted.c:615
+msgid "New disk label type?"
+msgstr "Нова етикетка диску?"
+
+#: parted/parted.c:656
+msgid "File system?"
+msgstr "Файлова система?"
+
+#: parted/parted.c:707 parted/parted.c:878
+msgid "Partition type?"
+msgstr "Тип розділу?"
+
+#: parted/parted.c:714 parted/parted.c:885 parted/parted.c:1131
+msgid "Partition name?"
+msgstr "Назва розділу?"
+
+#: parted/parted.c:722 parted/parted.c:895
+msgid "File system type?"
+msgstr "Тип файлової системи?"
+
+#: parted/parted.c:729 parted/parted.c:897 parted/parted.c:1059
+#: parted/parted.c:1725 parted/parted.c:1780
+msgid "Start?"
+msgstr "Початок?"
+
+#: parted/parted.c:731 parted/parted.c:900 parted/parted.c:1062
+#: parted/parted.c:1727 parted/parted.c:1782
+msgid "End?"
+msgstr "Кінець?"
+
+#: parted/parted.c:769 parted/parted.c:938
+#, c-format
+msgid ""
+"You requested a partition from %s to %s.\n"
+"The closest location we can manage is %s to %s.  Is this still acceptable to "
+"you?"
+msgstr ""
+"Ви вказали розділ у межах %s - %s.\n"
+"Найближчий до нього діапазон %s - %s. Ви згодні з таким діапазоном?"
+
+#: parted/parted.c:890
+msgid "An extended partition cannot hold a file system.  Did you want mkpart?"
+msgstr "Розширений розділ не може мати файлову систему. Виконати mkpart?"
+
+#: parted/parted.c:1050
+msgid "Can't move an extended partition."
+msgstr "Переміщення розширених розділів не підтримується."
+
+#: parted/parted.c:1079
+msgid "Can't move a partition onto itself.  Try using resize, perhaps?"
+msgstr "Не можна переміщувати розділ сам у себе.  Може спробувати resize?"
+
+#: parted/parted.c:1227
+#, c-format
+msgid "Minor: %d\n"
+msgstr "Номер: %d\n"
+
+#: parted/parted.c:1228
+#, c-format
+msgid "Flags: %s\n"
+msgstr "Ознаки: %s\n"
+
+#: parted/parted.c:1229
+#, c-format
+msgid "File System: %s\n"
+msgstr "Файлова система: %s\n"
+
+#: parted/parted.c:1230
+msgid "Size:         "
+msgstr "Розмір:       "
+
+#: parted/parted.c:1235
+msgid "Minimum size: "
+msgstr "Мінімальний розмір: "
+
+#: parted/parted.c:1238
+msgid "Maximum size: "
+msgstr "Максимальний розмір: "
+
+#: parted/parted.c:1362
+#, c-format
+msgid "Model: %s (%s)\n"
+msgstr "Модель: %s (%s)\n"
+
+#: parted/parted.c:1364
+#, c-format
+msgid "Disk %s: %s\n"
+msgstr "Диск %s: %s\n"
+
+#: parted/parted.c:1365
+#, c-format
+msgid "Sector size (logical/physical): %lldB/%lldB\n"
+msgstr "Розмір сектора (логічний/фізичний): %lldБ/%lldБ\n"
+
+#: parted/parted.c:1383
+#, c-format
+msgid "BIOS cylinder,head,sector geometry: %d,%d,%d.  Each cylinder is %s.\n"
+msgstr "BIOS циліндр,головка,сектор геометрія: %d,%d,%d.  Кожен циліндр %s.\n"
+
+#: parted/parted.c:1392
+#, c-format
+msgid "Partition Table: %s\n"
+msgstr "таблиця розділів: %s\n"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Number"
+msgstr "Номер"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Start"
+msgstr "Початок"
+
+#: parted/parted.c:1407 parted/parted.c:1410
+msgid "End"
+msgstr "Кінець"
+
+#: parted/parted.c:1410
+msgid "Size"
+msgstr "Розмір"
+
+#: parted/parted.c:1414
+msgid "Type"
+msgstr "Тип"
+
+#: parted/parted.c:1416
+msgid "File system"
+msgstr "Файлова система"
+
+#: parted/parted.c:1419
+msgid "Name"
+msgstr "Назва"
+
+#: parted/parted.c:1421
+msgid "Flags"
+msgstr "Ознаки"
+
+#: parted/parted.c:1477
+msgid "Free Space"
+msgstr "Вільний простір"
+
+#: parted/parted.c:1624
+#, c-format
+msgid ""
+"A %s %s partition was found at %s -> %s.  Do you want to add it to the "
+"partition table?"
+msgstr ""
+"Знайдено розділ %s %s у межах від %s -> %s. Бажаєте додати його до таблиці "
+"розділів?"
+
+#: parted/parted.c:1663
+msgid "searching for file systems"
+msgstr "пошук файлових систем"
+
+#: parted/parted.c:1877
+msgid "New device?"
+msgstr "Новий пристрій?"
+
+#: parted/parted.c:1902
+msgid "Flag to Invert?"
+msgstr "Ознака, яку інвертувати?"
+
+#: parted/parted.c:1907
+msgid "New state?"
+msgstr "Нове значення?"
+
+#: parted/parted.c:1944
+msgid "Unit?"
+msgstr "Блок?"
+
+#: parted/parted.c:2093
+msgid "check"
+msgstr "check"
+
+#: parted/parted.c:2096
+msgid ""
+"check NUMBER                             do a simple check on the file system"
+msgstr ""
+"check НОМЕР                   виконати просту перевірку файлової системи"
+
+#: parted/parted.c:2102
+msgid "cp"
+msgstr "cp"
+
+#: parted/parted.c:2105
+msgid ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+"partition"
+msgstr ""
+"cp [З-ПРИСТРОЮ] З-НОМЕР У-НОМЕР     копіювати файлову систему у інший розділ"
+
+#: parted/parted.c:2111
+msgid "help"
+msgstr "help"
+
+#: parted/parted.c:2114
+#, fuzzy
+msgid ""
+"help [COMMAND]                           print general help, or help on "
+"COMMAND"
+msgstr "help [КОМАНДА]                вивести довідку, або довідку про КОМАНДА"
+
+#: parted/parted.c:2120
+msgid "mklabel"
+msgstr "mklabel"
+
+#: parted/parted.c:2120
+msgid "mktable"
+msgstr "mktable"
+
+#: parted/parted.c:2123
+msgid ""
+"mklabel,mktable LABEL-TYPE               create a new disklabel (partition "
+"table)"
+msgstr ""
+"mklabel,mktable ТИП_ЕТИКЕТКИ  створити нову позначку диску (таблицю розділів)"
+
+#: parted/parted.c:2129
+msgid "mkfs"
+msgstr "mkfs"
+
+#: parted/parted.c:2132
+msgid ""
+"mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on "
+"partititon NUMBER"
+msgstr ""
+"mkfs НОМЕР ТИП-ФС             створити файлову систему ТИП-ФС у розділі НОМЕР"
+
+#: parted/parted.c:2138
+msgid "mkpart"
+msgstr "mkpart"
+
+#: parted/parted.c:2141
+msgid "mkpart PART-TYPE [FS-TYPE] START END     make a partition"
+msgstr "mkpart ТИП-РОЗДІЛУ [ТИП-ФС] ПОЧАТОК КІНЕЦЬ    створити розділ"
+
+#: parted/parted.c:2147
+#, fuzzy
+msgid ""
+"'mkpart' makes a partition without creating a new file system on the "
+"partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"
+msgstr ""
+"mkpart створити розділ без створення нової файлової системи у ньому. Можна "
+"вказати ТИП-ФС для встановлення відповідного ідентифікатора розділу.\n"
+
+#: parted/parted.c:2152
+msgid "mkpartfs"
+msgstr "mkpartfs"
+
+#: parted/parted.c:2155
+msgid ""
+"mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system"
+msgstr ""
+"mkpartfs ТИП-РОЗДІЛУ ТИП-ФС ПОЧАТОК КІНЕЦЬ    створити розділ з файловою "
+"системою"
+
+#: parted/parted.c:2161
+msgid "move"
+msgstr "move"
+
+#: parted/parted.c:2164
+msgid "move NUMBER START END                    move partition NUMBER"
+msgstr "move НОМЕР ПОЧАТОК КІНЕЦЬ     перемістити розділ з номером НОМЕР"
+
+#: parted/parted.c:2169
+msgid "name"
+msgstr "name"
+
+#: parted/parted.c:2172
+msgid "name NUMBER NAME                         name partition NUMBER as NAME"
+msgstr "name НОМЕР НАЗВА              призначити назву НАЗВА розділу НОМЕР"
+
+#: parted/parted.c:2177
+msgid "print"
+msgstr "print"
+
+#: parted/parted.c:2180
+msgid ""
+"print [devices|free|list,all|NUMBER]     display the partition table, "
+"available devices, free space, all found partitions, or a particular "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2185
+msgid ""
+"Without arguments, 'print' displays the entire partition table. However with "
+"the following arguments it performs various other actions.\n"
+msgstr ""
+
+#: parted/parted.c:2187
+msgid "  devices   : display all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2188
+msgid ""
+"  free      : display information about free unpartitioned space on the "
+"current block device\n"
+msgstr ""
+
+#: parted/parted.c:2190
+#, fuzzy
+msgid ""
+"  list, all : display the partition tables of all active block devices\n"
+msgstr "вивести список таблиць розділів на усіх пристроях"
+
+#: parted/parted.c:2191
+msgid ""
+"  NUMBER    : display more detailed information about this particular "
+"partition\n"
+msgstr ""
+
+#: parted/parted.c:2196
+msgid "quit"
+msgstr "quit"
+
+#: parted/parted.c:2199
+msgid "quit                                     exit program"
+msgstr "quit                          вихід з програми"
+
+#: parted/parted.c:2204
+msgid "rescue"
+msgstr "rescue"
+
+#: parted/parted.c:2207
+msgid ""
+"rescue START END                         rescue a lost partition near START "
+"and END"
+msgstr ""
+"rescue ПОЧАТОК КІНЕЦЬ         знайти втрачені розділи між ПОЧАТОК та КІНЕЦЬ"
+
+#: parted/parted.c:2213
+msgid "resize"
+msgstr "resize"
+
+#: parted/parted.c:2216
+msgid ""
+"resize NUMBER START END                  resize partition NUMBER and its "
+"file system"
+msgstr "resize НОМЕР ПОЧАТОК КІНЕЦЬ   змінити розмір розділу НОМЕР"
+
+#: parted/parted.c:2224
+msgid "rm"
+msgstr "rm"
+
+#: parted/parted.c:2227
+msgid "rm NUMBER                                delete partition NUMBER"
+msgstr "rm НОМЕР                      видалити розділ з номером НОМЕР"
+
+#: parted/parted.c:2232
+msgid "select"
+msgstr "select"
+
+#: parted/parted.c:2235
+msgid "select DEVICE                            choose the device to edit"
+msgstr "select ПРИСТРІЙ               вибирати пристрій для роботи"
+
+#: parted/parted.c:2240
+msgid "set"
+msgstr "set"
+
+#: parted/parted.c:2243
+msgid ""
+"set NUMBER FLAG STATE                    change the FLAG on partition NUMBER"
+msgstr "set НОМЕР ОЗНАКА СТАН         змінити ознаку розділу з номером НОМЕР"
+
+#: parted/parted.c:2249
+msgid "toggle"
+msgstr "toggle"
+
+#: parted/parted.c:2252
+msgid ""
+"toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+"partition NUMBER"
+msgstr ""
+"toggle [НОМЕР [ОЗНАКА]]       перемикнути ознаку ОЗНАКА розділу з номером "
+"НОМЕР"
+
+#: parted/parted.c:2258
+msgid "unit"
+msgstr "unit"
+
+#: parted/parted.c:2261
+msgid "unit UNIT                                set the default unit to UNIT"
+msgstr ""
+"unit БЛОК                     встановити для типового блоку значення БЛОК"
+
+#: parted/parted.c:2266
+msgid "version"
+msgstr "версія"
+
+#: parted/parted.c:2269
+#, fuzzy
+msgid ""
+"version                                  display the version number and "
+"copyright information of GNU Parted"
+msgstr ""
+"версія                        вивести поточну версію GNU Parted та "
+"інформацію про авторське право"
+
+#: parted/parted.c:2273
+#, fuzzy
+msgid ""
+"'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"
+msgstr ""
+"команда version виводить інформацію про версію цієї програми GNU Parted\n"
+
+#: parted/parted.c:2335
+#, c-format
+msgid "Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"
+msgstr ""
+
+#: parted/parted.c:2379
+msgid "No device found"
+msgstr "Пристрій не знайдено"
+
+#: parted/parted.c:2412
+#, fuzzy
+msgid "WARNING: You are not superuser.  Watch out for permissions."
+msgstr ""
+"ПОПЕРЕДЖЕННЯ: Ви не маєте привілей адміністратора. Отримайте повноваження.\n"
+
+#: parted/parted.c:2450
+#, fuzzy
+msgid "You may need to update /etc/fstab.\n"
+msgstr "Не забудьте оновити /etc/fstab, якщо це необхідно.\n"
+
+#: parted/ui.c:160
+msgid "Welcome to GNU Parted! Type 'help' to view a list of commands.\n"
+msgstr ""
+"Ласкаво просимо до GNU Parted! Перелік команд виводиться командою 'help'.\n"
+
+#: parted/ui.c:163
+msgid ""
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run "
+"in\n"
+"interactive mode.\n"
+msgstr ""
+"Використання: parted [КЛЮЧ]... [ПРИСТРІЙ [КОМАНДА [ПАРАМЕТРИ]...]...]\n"
+"Виконати КОМАНДА з параметрами ПАРАМЕТРИ для пристрою ПРИСТРІЙ.  Якщо\n"
+"КОМАНДА не вказана, запускається у інтерактивному режимі.\n"
+
+#: parted/ui.c:168
+#, fuzzy, c-format
+msgid ""
+"\n"
+"\n"
+"You found a bug in GNU Parted! Here's what you have to do:\n"
+"\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n"
+"\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Please check this version prior to bug reporting.\n"
+"\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"for further information.\n"
+"\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n"
+msgstr ""
+"\n"
+"\n"
+"Ви знайшли помилку у GNU Parted! Рекомендації щодо подальших дій:\n"
+"\n"
+"Не панікуйте! Швидше за все помилка не впливає на ваші дані.\n"
+"Допоможіть нам виправити помилку, для цього:\n"
+"\n"
+"Перевірте чи не була помилка вже виправлена у останній версії\n"
+"GNU Parted, яку можна знайти за адресою:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Перевірте цю версію, перш ніж надсилати звіт про помилку.\n"
+"\n"
+"Якщо помилка не виправлена чи ви не знаєте як це перевірити,\n"
+"подальшу інформацію шукайте на веб-сайті GNU Parted:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"У вашому звіті слід вказати версію випуску, (%s)\n"
+"наведене нижче повідомлення про помилку, вивід команди\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"та додаткову інформацію про параметри, які ви вважатимете важливими.\n"
+
+#: parted/ui.c:284
+msgid ""
+"\n"
+"Command History:\n"
+msgstr ""
+
+#: parted/ui.c:366
+#, fuzzy
+msgid ""
+"\n"
+"Error: SEGV_MAPERR (Address not mapped to object)\n"
+msgstr ""
+"\n"
+"Помилка: SEGV_MAPERR (Адреса не прив'язана до об'єкту)"
+
+#: parted/ui.c:372
+#, fuzzy
+msgid ""
+"\n"
+"Error: SEGV_ACCERR (Invalid permissions for mapped object)\n"
+msgstr ""
+"\n"
+"Помилка: SEGV_ACCERR (Неправильні права доступу для прив'язаного об'єкту)"
+
+#: parted/ui.c:377
+#, fuzzy
+msgid ""
+"\n"
+"Error: A general SIGSEGV signal was encountered.\n"
+msgstr ""
+"\n"
+"Помилка: Виявлено загальний сигнал SIGSEGV."
+
+#: parted/ui.c:410
+msgid ""
+"\n"
+"Error: FPE_INTDIV (Integer: divide by zero)"
+msgstr ""
+"\n"
+"Помилка: FPE_INTDIV (Ціле: ділення на нуль)"
+
+#: parted/ui.c:415
+msgid ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+msgstr ""
+"\n"
+"Помилка: FPE_INTOVF (Ціле число: переповнення)"
+
+#: parted/ui.c:420
+msgid ""
+"\n"
+"Error: FPE_FLTDIV (Float: divide by zero)"
+msgstr ""
+"\n"
+"Помилка: FPE_INTDIV (Число з рухомою комою: ділення на нуль)"
+
+#: parted/ui.c:425
+msgid ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+msgstr ""
+"\n"
+"Помилка: FPE_FLTOVF (Число з рухомою комою: переповнення)"
+
+#: parted/ui.c:430
+msgid ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+msgstr ""
+"\n"
+"Помилка: FPE_FLTUND (Число з рухомою комою: дуже мале значення)"
+
+#: parted/ui.c:435
+msgid ""
+"\n"
+"Error: FPE_FLTRES (Float: inexact result)"
+msgstr ""
+"\n"
+"Помилка: FPE_FLTRES (Число з рухомою комою: неточний результат)"
+
+#: parted/ui.c:440
+msgid ""
+"\n"
+"Error: FPE_FLTINV (Float: invalid operation)"
+msgstr ""
+"\n"
+"Помилка: FPE_FLTINV (Число з рухомою комою: неправильна операція)"
+
+#: parted/ui.c:445
+msgid ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript out of range)"
+msgstr ""
+"\n"
+"Помилка: FPE_FLTSUB (Число з рухомою комою: підпис поза межами)"
+
+#: parted/ui.c:450
+msgid ""
+"\n"
+"Error: A general SIGFPE signal was encountered."
+msgstr ""
+"\n"
+"Помилка: Виявлено загальний сигнал SIGFPE."
+
+#: parted/ui.c:483
+msgid ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+msgstr ""
+"\n"
+"Помилка: ILL_ILLOPC (Недопустимий код операцій)"
+
+#: parted/ui.c:488
+msgid ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+msgstr ""
+"\n"
+"Помилка: ILL_ILLOPN (Неправильний операнд)"
+
+#: parted/ui.c:493
+msgid ""
+"\n"
+"Error: ILL_ILLADR (Illegal addressing mode)"
+msgstr ""
+"\n"
+"Помилка: ILL_ILLADR (Неправильний режим адресації)"
+
+#: parted/ui.c:498
+msgid ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+msgstr ""
+"\n"
+"Помилка: ILL_ILLTRP (Неправильна пастка)"
+
+#: parted/ui.c:503
+msgid ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+msgstr ""
+"\n"
+"Помилка: ILL_PRVOPC (Код привілейованої операції)"
+
+#: parted/ui.c:508
+msgid ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+msgstr ""
+"\n"
+"Помилка: ILL_PRVREG (Привілейований регістр)"
+
+#: parted/ui.c:513
+msgid ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+msgstr ""
+"\n"
+"Помилка: ILL_COPROC (Помилка співпроцесора)"
+
+#: parted/ui.c:518
+msgid ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+msgstr ""
+"\n"
+"Помилка: ILL_BADSTK (Внутрішня помилка стеку)"
+
+#: parted/ui.c:523
+msgid ""
+"\n"
+"Error: A general SIGILL signal was encountered."
+msgstr ""
+"\n"
+"Помилка: Виявлено загальний сигнал SIGILL."
+
+#: parted/ui.c:1024
+msgid "Expecting a partition number."
+msgstr "Очікується номер розділу."
+
+#: parted/ui.c:1033
+msgid "Partition doesn't exist."
+msgstr "Розділ не існує."
+
+#: parted/ui.c:1053
+msgid "Expecting a file system type."
+msgstr "Очікується тип файлова система."
+
+#: parted/ui.c:1060
+#, c-format
+msgid "Unknown file system type \"%s\"."
+msgstr "Невідомий тип файлової системи \"%s\"."
+
+#: parted/ui.c:1080
+msgid "Expecting a disk label type."
+msgstr "Очікується тип дискової етикетки."
+
+#: parted/ui.c:1178
+msgid "Can't create any more partitions."
+msgstr "Не вдається додатково створити розділи."
+
+#: parted/ui.c:1188
+msgid "Expecting a partition type."
+msgstr "Очікується тип розділу."
+
+#: parted/ui.c:1315
+msgid "on"
+msgstr "on"
+
+#: parted/ui.c:1316
+msgid "off"
+msgstr "off"
+
+#: parted/ui.c:1431
+msgid "OPTIONs:"
+msgstr "КЛЮЧІ:"
+
+#: parted/ui.c:1436
+msgid "COMMANDs:"
+msgstr "КОМАНДИ:"
+
+#: parted/ui.c:1445
+#, c-format
+msgid "Using %s\n"
+msgstr "Використовується %s\n"
+
+#: parted/ui.c:1519
+msgid "This command does not make sense in non-interactive mode.\n"
+msgstr ""
+
+#~ msgid "GNU Parted cannot resize this file system, please useresize2fs."
+#~ msgstr ""
+#~ "GNU Parted не може змінювати цю файлову систему, користуйтесь "
+#~ "useresize2fs."
+
+#~ msgid "where necessary, prompts for user intervention"
+#~ msgstr "коли необхідно, запитувати втручання користувача"
+
+#~ msgid "GNU Parted Version information:\n"
+#~ msgstr "Версія GNU Parted:\n"
+
+#~ msgid ""
+#~ "print [free|NUMBER|all]                  display the partition table, a "
+#~ "partition, or all devices"
+#~ msgstr ""
+#~ "print [free|НОМЕР|all]        вивести таблицю розділів, розділ або усі "
+#~ "пристрої"
+
+#~ msgid ""
+#~ "Without arguments, print displays the entire partition table. With "
+#~ "'free'\n"
+#~ "argument, information about free space will be displayed otherwise if a\n"
+#~ "partition number is given, then more detailed information is displayed\n"
+#~ "about that partition. If the 'all' argument is passed instead, partition\n"
+#~ "information for all devices will be displayed.\n"
+#~ msgstr ""
+#~ "Без аргументів, виводить таблицю розділів. Якщо вказано 'free',\n"
+#~ "відображається інформація про вільний простір, якщо вказано номер\n"
+#~ "розділу, виводиться докладніша інформація про розділ. \n"
+#~ "Якщо вказано 'all', відображається інформація про усі пристрої.\n"
+
+#~ msgid "Attempt to read sectors %ld-%ld outside of partition on %s."
+#~ msgstr "Спроба прочитати сектори %ld-%ld за межами розділу на %s."
diff --git a/parted-1.8.7/po/vi.gmo b/parted-1.8.7/po/vi.gmo
new file mode 100644
index 0000000..664e00b
--- /dev/null
+++ b/parted-1.8.7/po/vi.gmo
Binary files differ
diff --git a/parted-1.8.7/po/vi.po b/parted-1.8.7/po/vi.po
new file mode 100644
index 0000000..b58d937
--- /dev/null
+++ b/parted-1.8.7/po/vi.po
@@ -0,0 +1,3321 @@
+# translation of parted-1.6.6.po to Vietnamese
+# Copyright (C) 2005 Free Software Foundation, Inc.
+# Tran Thi Hoang Quyen <banhdauxanhhaiduong@gmail.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: parted 1.6.6\n"
+"Report-Msgid-Bugs-To: bug-parted@gnu.org\n"
+"POT-Creation-Date: 2007-05-09 17:02-0400\n"
+"PO-Revision-Date: 2005-07-03 21:04+0400\n"
+"Last-Translator: Tran Thi Hoang Quyen <banhdauxanhhaiduong@gmail.com>\n"
+"Language-Team: Vietnamese <gnomevi-list@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#: lib/closeout.c:74
+msgid "write error"
+msgstr ""
+
+#: lib/error.c:125
+#, fuzzy
+msgid "Unknown system error"
+msgstr "Dạng hệ thống tập tin không rõ \"%s\"."
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK).  A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#.
+#. If you don't know what to put here, please see
+#. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr ""
+
+#: lib/regcomp.c:131
+msgid "Success"
+msgstr ""
+
+#: lib/regcomp.c:134
+msgid "No match"
+msgstr ""
+
+#: lib/regcomp.c:137
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regcomp.c:140
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regcomp.c:143
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regcomp.c:146
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regcomp.c:149
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regcomp.c:152
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regcomp.c:155
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regcomp.c:158
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regcomp.c:161
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regcomp.c:164
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regcomp.c:170
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regcomp.c:173
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regcomp.c:176
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regcomp.c:179
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regcomp.c:680
+msgid "No previous regular expression"
+msgstr ""
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr ""
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:66
+msgid "(C)"
+msgstr ""
+
+#: lib/version-etc.c:68
+msgid ""
+"\n"
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:84
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:88
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:92
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:98
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:104
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:110
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:132
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+
+#: lib/xalloc-die.c:35
+msgid "memory exhausted"
+msgstr ""
+
+#: libparted/arch/beos.c:237
+msgid "Disk Image"
+msgstr ""
+
+#: libparted/arch/beos.c:338 libparted/arch/gnu.c:261
+#: libparted/arch/linux.c:1272
+#, c-format
+msgid "Error opening %s: %s"
+msgstr "Lỗi mở %s: %s"
+
+#: libparted/arch/beos.c:349 libparted/arch/gnu.c:271
+#: libparted/arch/linux.c:1283
+#, c-format
+msgid "Unable to open %s read-write (%s).  %s has been opened read-only."
+msgstr "KHông mở được %s đọc-ghi (%s).  Mở %s chỉ đọc."
+
+#: libparted/arch/beos.c:411 libparted/arch/linux.c:1431
+#, c-format
+msgid "%s during seek for read on %s"
+msgstr "%s khi tìm để đọc trên %s"
+
+#: libparted/arch/beos.c:444 libparted/arch/gnu.c:449 libparted/arch/gnu.c:548
+#: libparted/arch/gnu.c:676 libparted/arch/linux.c:1391
+#: libparted/arch/linux.c:1469
+#, c-format
+msgid "%s during read on %s"
+msgstr "%s khi đọc trên %s"
+
+#: libparted/arch/beos.c:480 libparted/arch/gnu.c:509
+#: libparted/arch/linux.c:1546
+#, c-format
+msgid "Can't write to %s, because it is opened read-only."
+msgstr "Không ghi được tới %s, vì mở nó chỉ đọc."
+
+#: libparted/arch/beos.c:496 libparted/arch/linux.c:1570
+#, c-format
+msgid "%s during seek for write on %s"
+msgstr "%s khi tìm để ghi trên %s"
+
+#: libparted/arch/beos.c:533 libparted/arch/gnu.c:585 libparted/arch/gnu.c:630
+#: libparted/arch/gnu.c:707 libparted/arch/linux.c:1517
+#: libparted/arch/linux.c:1612 libparted/arch/linux.c:1684
+#, c-format
+msgid "%s during write on %s"
+msgstr "%s khi ghi trên %s"
+
+#: debug/clearfat/clearfat.c:63 partprobe/partprobe.c:137
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:67
+#, c-format
+msgid ""
+"Usage: %s [OPTION]\n"
+"  or:  %s DEVICE MINOR\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:70
+msgid ""
+"Clear unused space on a FAT partition (a GNU Parted testing tool).\n"
+"\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:74
+msgid "      --help     display this help and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:75
+msgid "      --version  output version information and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:77 partprobe/partprobe.c:154
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:285
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:290
+#, fuzzy, c-format
+msgid "too many arguments"
+msgstr "Quá nhiều trang xấu."
+
+#: partprobe/partprobe.c:141
+#, c-format
+msgid "Usage: %s [OPTION] [DEVICE]...\n"
+msgstr ""
+
+#: partprobe/partprobe.c:142
+msgid ""
+"Inform the OS of partition table changes.\n"
+"\n"
+"  -d, --no-update  don't update the kernel\n"
+"  -s, --summary    print a summary of contents\n"
+"  -h, --help       display this help and exit\n"
+"  -v, --version    output version information and exit\n"
+msgstr ""
+
+#: partprobe/partprobe.c:150
+msgid ""
+"\n"
+"With no DEVICE, probe all partitions.\n"
+msgstr ""
+
+#: libparted/arch/gnu.c:94
+#, c-format
+msgid "Unable to open %s."
+msgstr "Không mở được %s."
+
+#: libparted/arch/gnu.c:114
+msgid "Unable to probe store."
+msgstr "Không thăm dò được kho chứa."
+
+#: libparted/arch/gnu.c:352
+#, fuzzy
+msgid ""
+"The partition table cannot be re-read.  This means you need to reboot before "
+"mounting any modified partitions.  You also need to reinstall your boot "
+"loader before you reboot (which may require mounting modified partitions).  "
+"It is impossible do both things!  So you'll need to boot off a rescue disk, "
+"and reinstall your boot loader from the rescue disk.  Read section 4 of the "
+"Parted User documentation for more information."
+msgstr ""
+"Không đọc lại được bảng phân vùng, vì thế, cần khởi động lại trước khi gắn "
+"bất ký phân vùng đã sửa đổi nào.  Người dùng cũng cần cài đặt lại trình khởi "
+"động của mình trước khi khởi động lại (thao tác này có thể yêu cầu gắn phân "
+"vùng đã sửa đổi).  Không thể thực hiện cả hai thao tác!  Vì thế người dùng "
+"sẽ cần khởi động bẳng đĩa mềm dự phòng, và cài đặt lại trình khởi động từ "
+"đó. Hãy đọc phần 4 của tài liệu Người dùng Parted để biết thêm chi tiết."
+
+#: libparted/arch/gnu.c:369
+#, fuzzy, c-format
+msgid ""
+"The partition table on %s cannot be re-read (%s).  This means the Hurd knows "
+"nothing about any modifications you made.  You should reboot your computer "
+"before doing anything with %s."
+msgstr ""
+"Bảng phân vùng trên %s (%s).  Có nghĩa là Hurd không biết gì về những thay "
+"đổi đã tạo ra.  Người dùng cần khởi động lại máy tính trước khi thực hiện "
+"bất kỳ thao tác nào với %s."
+
+#: libparted/arch/gnu.c:380 parted/parted.c:2443
+msgid ""
+"You should reinstall your boot loader before rebooting.  Read section 4 of "
+"the Parted User documentation for more information."
+msgstr ""
+"Cần cài đặt lại trình khởi động trước khi khởi động lại. Hãy đọc phần 4 của "
+"tài liệu Người dùng Parted để biết thêm chi tiết."
+
+#: libparted/arch/gnu.c:772
+#, c-format
+msgid "%s trying to sync %s to disk"
+msgstr "%s đang cố đồng bộ sync %s lên đĩa"
+
+#: libparted/arch/linux.c:408
+#, c-format
+msgid "Could not stat device %s - %s."
+msgstr "Không stat được thiết bị %s - %s."
+
+#: libparted/arch/linux.c:523
+#, c-format
+msgid ""
+"Could not determine sector size for %s: %s.\n"
+"Using the default sector size (%lld)."
+msgstr ""
+
+#: libparted/arch/linux.c:539
+#, c-format
+msgid ""
+"Device %s has a logical sector size of %lld.  Not all parts of GNU Parted "
+"support this at the moment, and the working code is HIGHLY EXPERIMENTAL.\n"
+msgstr ""
+
+#: libparted/arch/linux.c:579
+#, fuzzy, c-format
+msgid "Unable to determine the size of %s (%s)."
+msgstr "Không nhận ra kích thước của %s (%s)"
+
+#: libparted/arch/linux.c:668
+#, c-format
+msgid "Could not get identity of device %s - %s"
+msgstr "Không lấy được tên của thiết bị %s - %s"
+
+#: libparted/arch/linux.c:677
+msgid "Generic IDE"
+msgstr ""
+
+#: libparted/arch/linux.c:698
+#, c-format
+msgid ""
+"Device %s has multiple (%d) logical sectors per physical sector.\n"
+"GNU Parted supports this EXPERIMENTALLY for some special disk label/file "
+"system combinations, e.g. GPT and ext2/3.\n"
+"Please consult the web site for up-to-date information."
+msgstr ""
+
+#: libparted/arch/linux.c:873
+#, c-format
+msgid "Error initialising SCSI device %s - %s"
+msgstr "Lỗi chạy thiết bị SCSI %s - %s"
+
+#: libparted/arch/linux.c:928
+#, fuzzy, c-format
+msgid ""
+"The device %s has zero length, and can't possibly store a file system or "
+"partition table.  Perhaps you selected the wrong device?"
+msgstr ""
+"Thiết bị %s có chiều dài bằng không, và không thể chứa một hệ thống tập tin "
+"hay một bảng phân vùng.  Có thể đã chọn sai thiết bị?"
+
+#: libparted/arch/linux.c:1032
+#, fuzzy, c-format
+msgid ""
+"Unable to determine geometry of file/device %s.  You should not use Parted "
+"unless you REALLY know what you're doing!"
+msgstr ""
+"Không nhận ra cấu trúc hình học của tập tin/thiết bị.  Không được sử dụng "
+"Parted trừ khi THỰC SỰ biết mình đang làm gì!"
+
+#: libparted/arch/linux.c:1110
+msgid "DAC960 RAID controller"
+msgstr "Điều khiển DAC960 RAID controller"
+
+#: libparted/arch/linux.c:1115
+msgid "Promise SX8 SATA Device"
+msgstr ""
+
+#: libparted/arch/linux.c:1120
+msgid "IBM S390 DASD drive"
+msgstr ""
+
+#: libparted/arch/linux.c:1125
+msgid "IBM iSeries Virtual DASD"
+msgstr ""
+
+#: libparted/arch/linux.c:1130
+msgid "Compaq Smart Array"
+msgstr "Dãy Thông minh của Compaq"
+
+#: libparted/arch/linux.c:1135
+msgid "ATARAID Controller"
+msgstr "Điều khiển ATARAID Controller"
+
+#: libparted/arch/linux.c:1140
+msgid "I2O Controller"
+msgstr "Điều khiển I2O Controller"
+
+#: libparted/arch/linux.c:1145
+msgid "User-Mode Linux UBD"
+msgstr ""
+
+#: libparted/arch/linux.c:1156
+msgid "Linux device-mapper"
+msgstr ""
+
+#: libparted/arch/linux.c:1162
+msgid "Unknown"
+msgstr "Không rõ"
+
+#: libparted/arch/linux.c:1169
+msgid "ped_device_new()  Unsupported device type"
+msgstr "ped_device_new()  Dạng thiết bị không hỗ trợ"
+
+#: libparted/arch/linux.c:2083
+#, fuzzy, c-format
+msgid ""
+"Error informing the kernel about modifications to partition %s -- %s.  This "
+"means Linux won't know about any changes you made to %s until you reboot -- "
+"so you shouldn't mount it or use it in any way before rebooting."
+msgstr ""
+"Lỗi cung cấp cho nhân thông tin về sự sửa đổi phân vùng %s - %s.  Có nghĩa "
+"là Linux sẽ không biết về những thay đổi đã tạo ra trên %s cho đến khi khởi "
+"động lại - vì thế không nên gắn hoặc sử dụng phân vùng này trước khi khởi "
+"động lại."
+
+#: libparted/arch/linux.c:2262
+#, fuzzy, c-format
+msgid ""
+"parted was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made. "
+msgstr ""
+"Nhân không đọc lại được bảng phân vùng trên %s (%s).  Có nghĩa là Linux sẽ "
+"không biết về những thay đổi đã tạo ra cho đến khi khởi động lại.  Người "
+"dùng nên khởi động lại máy tính trước khi thao tác với %s."
+
+#: libparted/arch/linux.c:2368
+#, fuzzy, c-format
+msgid ""
+"The kernel was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made until you "
+"reboot.  You should reboot your computer before doing anything with %s."
+msgstr ""
+"Nhân không đọc lại được bảng phân vùng trên %s (%s).  Có nghĩa là Linux sẽ "
+"không biết về những thay đổi đã tạo ra cho đến khi khởi động lại.  Người "
+"dùng nên khởi động lại máy tính trước khi thao tác với %s."
+
+#: libparted/cs/geom.c:162
+msgid "Can't have the end before the start!"
+msgstr "Không thể có kết thúc đứng trước bắt đầu!"
+
+#: libparted/cs/geom.c:169
+msgid "Can't have a partition outside the disk!"
+msgstr "Không thể có phân vùng nằm ngoài ổ đĩa!"
+
+#: libparted/cs/geom.c:366
+#, fuzzy, c-format
+msgid "Attempt to write sectors %ld-%ld outside of partition on %s."
+msgstr "Cố ghi các sector %ld-%ld nằm ngoài phân vùng trên %s"
+
+#: libparted/cs/geom.c:406 libparted/fs/linux_swap/linux_swap.c:475
+msgid "checking for bad blocks"
+msgstr "đang kiểm tra các khối xấu"
+
+#: libparted/debug.c:102
+#, c-format
+msgid "Backtrace has %d calls on stack:\n"
+msgstr ""
+
+#: libparted/debug.c:114
+#, c-format
+msgid "Assertion (%s) at %s:%d in function %s() failed."
+msgstr ""
+
+#: libparted/disk.c:203
+#, c-format
+msgid "Unable to open %s - unrecognised disk label."
+msgstr "Không mở được %s - nhãn đĩa không nhận ra."
+
+#: libparted/disk.c:471
+#, c-format
+msgid ""
+"This libparted doesn't have write support for %s.  Perhaps it was compiled "
+"read-only."
+msgstr ""
+"Thư viện libparted này không hỗ trợ %s.  Có thể đã biên dịch nó chỉ đọc."
+
+#: libparted/disk.c:598
+#, fuzzy, c-format
+msgid "Partition %d is %s, but the file system is %s."
+msgstr "Phân vùng %d %.3fMb, nhưng hệ thống tập tin là %.3fMb."
+
+#: libparted/disk.c:1075
+#, c-format
+msgid "%s disk labels do not support extended partitions."
+msgstr "Nhãn đĩa %s không hỗ trợ các phân vùng mở rộng."
+
+#: libparted/disk.c:1634
+#, c-format
+msgid "%s disk labels don't support logical or extended partitions."
+msgstr "Nhãn đĩa %s không hỗ trợ các phân vùng mở rộng hay lôgíc."
+
+#: libparted/disk.c:1647
+#, fuzzy
+msgid "Too many primary partitions."
+msgstr "Quá nhiều phân vùng chính"
+
+#: libparted/disk.c:1656
+#, c-format
+msgid ""
+"Can't add a logical partition to %s, because there is no extended partition."
+msgstr "Không thêm được phân vùng lôgíc vào %s, vì không có phân vùng mở rộng."
+
+#: libparted/disk.c:1680
+#, fuzzy, c-format
+msgid "Can't have more than one extended partition on %s."
+msgstr "Không thể có hơn một phân vùng mở rộng trên %s"
+
+#: libparted/disk.c:1690
+msgid "Can't have logical partitions outside of the extended partition."
+msgstr "Không thể có phân vùng lôgíc nằm ngoài phân vùng mở rộng."
+
+#: libparted/disk.c:1715
+#, c-format
+msgid "Can't have a logical partition outside of the extended partition on %s."
+msgstr "Không thể có phân vùng lôgíc nằm ngoài phân vùng mở rộng trên %s."
+
+#: libparted/disk.c:1725 libparted/disk.c:1779 libparted/disk.c:1945
+#, fuzzy
+msgid "Can't have overlapping partitions."
+msgstr "Không thể có phân vùng đè lên nhau"
+
+#: libparted/disk.c:1733
+msgid "Can't have a primary partition inside an extended partition."
+msgstr "Không thể có phân vùng chính nằm trong một phân vùng mở rộng."
+
+#: libparted/disk.c:2140
+msgid "metadata"
+msgstr "dữ liệu mêta"
+
+#: libparted/disk.c:2142
+msgid "free"
+msgstr "trống"
+
+#: libparted/disk.c:2144 parted/ui.c:1169 parted/ui.c:1197
+msgid "extended"
+msgstr "mởrộng"
+
+#: libparted/disk.c:2146 parted/ui.c:1173 parted/ui.c:1201
+msgid "logical"
+msgstr "lôgíc"
+
+#: libparted/disk.c:2148 parted/ui.c:1165 parted/ui.c:1193
+msgid "primary"
+msgstr "chính"
+
+#: libparted/disk.c:2164
+msgid "boot"
+msgstr "kđộng"
+
+#: libparted/disk.c:2166
+msgid "root"
+msgstr "gốc"
+
+#: libparted/disk.c:2168
+msgid "swap"
+msgstr "swap"
+
+#: libparted/disk.c:2170
+msgid "hidden"
+msgstr "ẩn"
+
+#: libparted/disk.c:2172
+msgid "raid"
+msgstr "raid"
+
+#: libparted/disk.c:2174
+msgid "lvm"
+msgstr "lvm"
+
+#: libparted/disk.c:2176
+msgid "lba"
+msgstr "lba"
+
+#: libparted/disk.c:2178
+msgid "hp-service"
+msgstr "hp-dịchvụ"
+
+#: libparted/disk.c:2180
+msgid "palo"
+msgstr ""
+
+#: libparted/disk.c:2182
+msgid "prep"
+msgstr ""
+
+#: libparted/disk.c:2184
+msgid "msftres"
+msgstr ""
+
+#: libparted/disk.c:2190
+#, fuzzy, c-format
+msgid "Unknown partition flag, %d."
+msgstr "Không rõ cờ phân vùng, %d."
+
+#: libparted/exception.c:78
+msgid "Information"
+msgstr "Thông tin"
+
+#: libparted/exception.c:79
+msgid "Warning"
+msgstr "Cảnh báo"
+
+#: libparted/exception.c:80
+msgid "Error"
+msgstr "Lỗi"
+
+#: libparted/exception.c:81
+msgid "Fatal"
+msgstr "Lỗi nặng"
+
+#: libparted/exception.c:82
+msgid "Bug"
+msgstr "Lỗi bug"
+
+#: libparted/exception.c:83
+msgid "No Implementation"
+msgstr "Chưa phát triển"
+
+#: libparted/exception.c:87
+msgid "Fix"
+msgstr "Sửa"
+
+#: libparted/exception.c:88
+msgid "Yes"
+msgstr "Có"
+
+#: libparted/exception.c:89
+msgid "No"
+msgstr "Không"
+
+#: libparted/exception.c:90
+msgid "OK"
+msgstr "Được"
+
+#: libparted/exception.c:91
+msgid "Retry"
+msgstr "Thử lại"
+
+#: libparted/exception.c:92
+msgid "Ignore"
+msgstr "Lờ đi"
+
+#: libparted/exception.c:93
+msgid "Cancel"
+msgstr "Dừng"
+
+#: libparted/exception.c:133
+#, fuzzy, c-format
+msgid ""
+"A bug has been detected in GNU Parted.  Refer to the web site of parted "
+"http://www.gnu.org/software/parted/parted.html for more informations of what "
+"could be useful for bug submitting!  Please email a bug report to bug-"
+"parted@gnu.org containing at least the version (%s) and the following "
+"message:  "
+msgstr ""
+"Phát hiện ra một lỗi bug trong GNU parted.  Xin hãy gửi email thông báo tới "
+"bug-parted@gnu.org kèm theo phiên bản (%s) và thông tin sau:"
+
+#: libparted/filesys.c:384
+msgid "Could not detect file system."
+msgstr "Không nhận ra hệ thống tập tin."
+
+#: libparted/filesys.c:395
+#, fuzzy
+msgid "The file system is bigger than its volume!"
+msgstr "Hệ thống tập tin lớn hơn volume của nó!"
+
+#: libparted/filesys.c:403
+#, c-format
+msgid "Support for opening %s file systems is not implemented yet."
+msgstr "Hỗ trợ mở %s hệ thống tập tin còn chưa được phát triển."
+
+#: libparted/filesys.c:445
+#, c-format
+msgid "Support for creating %s file systems is not implemented yet."
+msgstr "Hỗ trợ tạo %s hệ thống tập tin còn chưa được phát triển."
+
+#: libparted/filesys.c:505
+#, c-format
+msgid "Support for checking %s file systems is not implemented yet."
+msgstr "Hỗ trợ kiểm tra %s hệ thống tập tin còn chưa được phát triển."
+
+#: libparted/filesys.c:571
+msgid "raw block copying"
+msgstr "sao chép các khối thô sơ"
+
+#: libparted/filesys.c:582
+msgid "growing file system"
+msgstr "đang tăng hệ thống tập tin"
+
+#: libparted/filesys.c:622
+msgid "Can't copy onto an overlapping partition."
+msgstr "Không sao chép được tới một phân vùng chèn lên nhau."
+
+#: libparted/filesys.c:644
+#, fuzzy, c-format
+msgid ""
+"Direct support for copying file systems is not yet implemented for %s.  "
+"However, support for resizing is implemented.  Therefore, the file system "
+"can be copied if the new partition is at least as big as the old one.  So, "
+"either shrink the partition you are trying to copy, or copy to a bigger "
+"partition."
+msgstr ""
+"Hỗ trợ thẳng để sao chép hệ thống tập tin chưa được phát triển cho %s.  Tuy "
+"nhiên, đã có hỗ trợ thay đổi kích thước.  Vì thế, có thể sao chép hệ thống "
+"tập tin nếu phân vùng mới có kích thước không nhỏ hơn phân vùng cũ.  Vì vậy, "
+"hoặc rút ngắn phân vùng cần sao chép, hoặc sao chép tới một phân vùng lớn "
+"hơn."
+
+#: libparted/filesys.c:658
+#, c-format
+msgid "Support for copying %s file systems is not implemented yet."
+msgstr "Hỗ trợ sao chép chép %s hệ thống tập tin chưa được phát triển."
+
+#: libparted/filesys.c:696
+#, c-format
+msgid "Support for resizing %s file systems is not implemented yet."
+msgstr "Hỗ trợ thay đổi kích thước %s hệ thống tập tin chưa được phát triển."
+
+#: libparted/fs/reiserfs/reiserfs.c:315
+msgid "creating"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:402
+#, fuzzy
+msgid "The file system is in an invalid state.  Perhaps it is mounted?"
+msgstr "Hệ thống tập tin lớn hơn volume của nó!"
+
+#: libparted/fs/reiserfs/reiserfs.c:410
+msgid "The file system is in old (unresizeable) format."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:416
+msgid "Invalid free blocks count.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:431
+#, fuzzy
+msgid "checking"
+msgstr "check"
+
+#: libparted/fs/reiserfs/reiserfs.c:437
+msgid "Reiserfs tree seems to be corrupted.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:449
+#, fuzzy
+msgid ""
+"The reiserfs file system passed a basic check.  For a more comprehensive "
+"check, run reiserfsck --check."
+msgstr ""
+"Hệ thống tập tin ext2 đã qua kiểm tra cơ bản.  Để kiểm tra kỹ hơn, hãy dùng "
+"chương trình e2fsck."
+
+#: libparted/fs/reiserfs/reiserfs.c:474
+#, fuzzy
+msgid "Sorry, can't move the start of reiserfs partitions yet."
+msgstr "Rất tiếc, tạm thời chưa thể di chuyển đầu của phân vùng ext2!"
+
+#: libparted/fs/reiserfs/reiserfs.c:490
+msgid "Couldn't reopen device abstraction layer for read/write."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:508 libparted/fs/ext2/ext2_resize.c:552
+#: libparted/fs/hfs/hfs.c:250 libparted/fs/hfs/hfs.c:629
+msgid "shrinking"
+msgstr "đang rút ngắn"
+
+#: libparted/fs/reiserfs/reiserfs.c:520
+#, fuzzy
+msgid "expanding"
+msgstr "Cảnh báo"
+
+#: libparted/fs/reiserfs/reiserfs.c:592
+msgid "Couldn't create reiserfs device abstraction handler."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:606
+#, fuzzy, c-format
+msgid "Device is too small for %lu blocks."
+msgstr "Hệ thống tập tin quá nhỏ cho ext2."
+
+#: libparted/fs/reiserfs/reiserfs.c:615
+msgid "copying"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:682
+#, c-format
+msgid "Couldn't resolve symbol %s.  Error: %s."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:704
+msgid "GNU Parted found an invalid libreiserfs library."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:715
+#, c-format
+msgid ""
+"GNU Parted has detected libreiserfs interface version mismatch.  Found %d-%"
+"d, required %d. ReiserFS support will be disabled."
+msgstr ""
+
+#: libparted/labels/aix.c:137
+#, fuzzy
+msgid "Support for reading AIX disk labels is is not implemented yet."
+msgstr "Hỗ trợ tạo %s hệ thống tập tin còn chưa được phát triển."
+
+#: libparted/labels/aix.c:148
+#, fuzzy
+msgid "Support for writing AIX disk labels is is not implemented yet."
+msgstr "Hỗ trợ tạo %s hệ thống tập tin còn chưa được phát triển."
+
+#: libparted/labels/aix.c:161
+#, fuzzy
+msgid ""
+"Support for adding partitions to AIX disk labels is not implemented yet."
+msgstr "Hỗ trợ tạo %s hệ thống tập tin còn chưa được phát triển."
+
+#: libparted/labels/aix.c:171
+#, fuzzy
+msgid ""
+"Support for duplicating partitions in AIX disk labels is not implemented yet."
+msgstr "Hỗ trợ tạo %s hệ thống tập tin còn chưa được phát triển."
+
+#: libparted/labels/aix.c:189
+#, fuzzy
+msgid ""
+"Support for setting system type of partitions in AIX disk labels is not "
+"implemented yet."
+msgstr "Hỗ trợ tạo %s hệ thống tập tin còn chưa được phát triển."
+
+#: libparted/labels/aix.c:199
+#, fuzzy
+msgid "Support for setting flags in AIX disk labels is not implemented yet."
+msgstr "Hỗ trợ tạo %s hệ thống tập tin còn chưa được phát triển."
+
+#: libparted/labels/bsd.c:501 libparted/labels/dasd.c:755
+#: libparted/labels/dos.c:1974 libparted/labels/dvh.c:770
+#: libparted/labels/gpt.c:1448 libparted/labels/loop.c:248
+#: libparted/labels/mac.c:1408 libparted/labels/pc98.c:759
+#: libparted/labels/rdb.c:1041 libparted/labels/sun.c:705
+msgid "Unable to satisfy all constraints on the partition."
+msgstr "Không thể thoả mãn mọi sự bắt buộc trên phân vùng."
+
+#: libparted/labels/bsd.c:526
+#, fuzzy
+msgid "Unable to allocate a bsd disklabel slot."
+msgstr "Không phân phối được một rãnh nhãn đĩa bsd"
+
+#: libparted/labels/dasd.c:166
+#, fuzzy
+msgid "Unable to determine the block size of this dasd"
+msgstr "Không nhận ra kích thước của %s (%s)"
+
+#: libparted/labels/dasd.c:781
+#, fuzzy
+msgid "Unable to allocate a dasd disklabel slot"
+msgstr "Không phân phối được một rãnh nhãn đĩa bsd"
+
+#: libparted/labels/dos.c:827
+#, fuzzy, c-format
+msgid "Invalid partition table on %s -- wrong signature %x."
+msgstr "Bảng phân vùng sai trên %s - sai chữ ký %x"
+
+#: libparted/labels/dos.c:855
+#, c-format
+msgid "Invalid partition table - recursive partition on %s."
+msgstr "Bảng phân vùng sai - phân vùng đệ quy trên %s."
+
+#: libparted/labels/dos.c:1318
+msgid "Extended partitions cannot be hidden on msdos disk labels."
+msgstr ""
+
+#: libparted/labels/dos.c:1958
+msgid "Parted can't resize partitions managed by Windows Dynamic Disk."
+msgstr ""
+
+#: libparted/labels/dvh.c:190
+#, fuzzy, c-format
+msgid "%s has no extended partition (volume header partition)."
+msgstr ""
+"%s không có phân vùng mở rộng (phân vùng phần đầu của các volume).  Nếu lờ "
+"đi, thì mọi volume khởi động sẽ bị xóa."
+
+#: libparted/labels/dvh.c:313
+msgid "Checksum is wrong, indicating the partition table is corrupt."
+msgstr "Tổng kiểm tra bị sai, chỉ ra bảng phân vùng bị hỏng."
+
+#: libparted/labels/dvh.c:616
+msgid "Only primary partitions can be root partitions."
+msgstr "Chỉ các phân vùng chính có thể là phân vùng gốc."
+
+#: libparted/labels/dvh.c:630
+msgid "Only primary partitions can be swap partitions."
+msgstr "Chỉ các phân vùng chính có thể là phân vùng swap."
+
+#: libparted/labels/dvh.c:644
+msgid "Only logical partitions can be a boot file."
+msgstr "Chỉ phân vùng lôgíc có thể là tập tin khởi động."
+
+#: libparted/labels/dvh.c:721
+msgid "Only logical partitions (boot files) have a name."
+msgstr "Chỉ phân vùng lôgíc (tập tin khởi động) có một tên."
+
+#: libparted/labels/dvh.c:812
+msgid "Too many primary partitions"
+msgstr "Quá nhiều phân vùng chính"
+
+#: libparted/labels/fdasd.c:103
+#, c-format
+msgid ""
+"%s open error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:107
+#, c-format
+msgid ""
+"%s seek error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:110
+#, c-format
+msgid ""
+"%s read error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:113
+#, fuzzy, c-format
+msgid ""
+"%s write error\n"
+"%s\n"
+msgstr "%s khi ghi trên %s"
+
+#: libparted/labels/fdasd.c:116
+#, c-format
+msgid ""
+"%s IOCTL error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:119
+#, c-format
+msgid ""
+"%s API version mismatch\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:122
+#, c-format
+msgid ""
+"%s Unsupported disk type\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:126
+#, c-format
+msgid ""
+"%s Unsupported disk format\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:130
+#, fuzzy, c-format
+msgid ""
+"%s Disk in use\n"
+"%s\n"
+msgstr "%s  %s  %s"
+
+#: libparted/labels/fdasd.c:133
+#, c-format
+msgid ""
+"%s Config file syntax error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:137
+#, c-format
+msgid ""
+"%s Volume label is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:141
+#, c-format
+msgid ""
+"%s a data set name is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:145
+#, c-format
+msgid ""
+"%s space allocation\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:149
+#, c-format
+msgid ""
+"%s device verification failed\n"
+"The specified device is not a valid DASD device\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:154
+#, c-format
+msgid ""
+"%s Fatal error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/gpt.c:454
+#, fuzzy, c-format
+msgid ""
+"%s contains GPT signatures, indicating that it has a GPT table.  However, it "
+"does not have a valid fake msdos partition table, as it should.  Perhaps it "
+"was corrupted -- possibly by a program that doesn't understand GPT partition "
+"tables.  Or perhaps you deleted the GPT table, and are now using an msdos "
+"partition table.  Is this a GPT partition table?"
+msgstr ""
+"%s chứa chữ ký GPT, chỉ ra nó có bảng GPT.  Tuy nhiên, nó không có một bảng "
+"phân vùng giả msdos cần thiết.  Có thể nó đã bị làm hỏng bởi một chương "
+"trình không hiểu bảng phân vùng GPT.  Hoặc có thể người dùng đã xóa bảng "
+"GPT, và bây giờ đang sử dụng một bảng phân vùng msdos.  Đây có phải là một "
+"bảng phân vùng GPT?"
+
+#: libparted/labels/gpt.c:648
+#, c-format
+msgid ""
+"The format of the GPT partition table is version %x, which is newer than "
+"what Parted can recognise.  Please tell us!  bug-parted@gnu.org"
+msgstr ""
+"Định dạng của bảng phân vùng GPT có phiên bản %x, mới hơn so với phiên bản "
+"Parted có thể nhận ra.  Xin hãy cho chúng tôi biết!  bug-parted@gnu.org"
+
+#: libparted/labels/gpt.c:698
+#, c-format
+msgid ""
+"Not all of the space available to %s appears to be used, you can fix the GPT "
+"to use all of the space (an extra %llu blocks) or continue with the current "
+"setting? "
+msgstr ""
+
+#: libparted/labels/gpt.c:827
+msgid ""
+"The backup GPT table is not at the end of the disk, as it should be.  This "
+"might mean that another operating system believes the disk is smaller.  Fix, "
+"by moving the backup to the end (and removing the old backup)?"
+msgstr ""
+"Bảng GPT sao lưu không nằm tại cuối đĩa như yêu cầu.  Có nghĩa là hệ điều "
+"hành khác sẽ thấy đĩa nhỏ hơn thông thường.  Sửa bằng cách di chuyển sao lưu "
+"tới cuối (và xóa bỏ sao lưu cũ)?"
+
+#: libparted/labels/gpt.c:862
+#, fuzzy
+msgid ""
+"The primary GPT table is corrupt, but the backup appears OK, so that will be "
+"used."
+msgstr ""
+"Bảng GPT chính bị hỏng, nhưng sao lưu thì vẫn tốt, vì thế sẽ sử dụng sao lưu."
+
+#: libparted/labels/gpt.c:870
+#, fuzzy
+msgid ""
+"Both the primary and backup GPT tables are corrupt.  Try making a fresh "
+"table, and using Parted's rescue feature to recover partitions."
+msgstr ""
+"Cả bảng GPT chính và sao lưu đều hỏng.  Hãy thử tạo một bảng mới, và sử dụng "
+"tính năng cứu nguy của Parted, để phục hồi các phân vùng."
+
+#: libparted/labels/mac.c:181
+#, c-format
+msgid "Invalid signature %x for Mac disk labels."
+msgstr "Chữ ký sai %x cho nhãn đĩa Mac."
+
+#: libparted/labels/mac.c:226
+msgid "Partition map has no partition map entry!"
+msgstr "Sơ đồ phân vùng không có mục sơ đồ phân vùng!"
+
+#: libparted/labels/mac.c:273
+#, c-format
+msgid "%s is too small for a Mac disk label!"
+msgstr "%s quá nhỏ cho một nhãn đĩa Mac!"
+
+#: libparted/labels/mac.c:532
+#, c-format
+msgid "Partition %d has an invalid signature %x."
+msgstr "Phân vùng %d có một chữ ký sai %x."
+
+#: libparted/labels/mac.c:550
+#, c-format
+msgid "Partition %d has an invalid length of 0 bytes!"
+msgstr "Phân vùng %d có một chiều dài sai 0 byte!"
+
+#: libparted/labels/mac.c:580
+#, fuzzy
+msgid "The data region doesn't start at the start of the partition."
+msgstr "Vùng dữ liệu không bắt đầu tại đầu của phân vùng"
+
+#: libparted/labels/mac.c:597
+#, fuzzy
+msgid "The boot region doesn't start at the start of the partition."
+msgstr "Vùng khởi động không bắt đầu tại đầu của phân vùng"
+
+#: libparted/labels/mac.c:611
+msgid "The partition's boot region doesn't occupy the entire partition."
+msgstr "Vùng khởi động của phân vùng không chiếm toàn bộ phân vùng."
+
+#: libparted/labels/mac.c:622
+msgid "The partition's data region doesn't occupy the entire partition."
+msgstr "Vùng dữ liệu của phân vùng không chiếm toàn bộ phân vùng."
+
+#: libparted/labels/mac.c:675
+#, c-format
+msgid ""
+"Weird block size on device descriptor: %d bytes is not divisible by 512."
+msgstr ""
+"Kích thước khối kỳ lạ trên mô tả thiết bị: %d byte không chia hết cho 512."
+
+#: libparted/labels/mac.c:688
+#, c-format
+msgid ""
+"The driver descriptor says the physical block size is %d bytes, but Linux "
+"says it is %d bytes."
+msgstr ""
+"Mô tả của ổ cho biết kích thước khối là %d byte, nhưng Linux nói nó %d byte."
+
+#: libparted/labels/mac.c:736
+msgid "No valid partition map found."
+msgstr "Không tìm thấy một sơ đồ phân vùng đúng."
+
+#: libparted/labels/mac.c:795
+#, fuzzy, c-format
+msgid ""
+"Conflicting partition map entry sizes!  Entry 1 says it is %d, but entry %d "
+"says it is %d!"
+msgstr ""
+"Xung đột kích thước mục sơ đồ phân vùng!  Mục 1 nói là %d, nhưng mục %d nói "
+"là %d!"
+
+#: libparted/labels/mac.c:822
+#, fuzzy
+msgid "Weird!  There are 2 partitions map entries!"
+msgstr "Kỳ lạ - hai mục sơ đồ phân vùng!"
+
+#: libparted/labels/mac.c:1347
+msgid ""
+"Changing the name of a root or swap partition will prevent Linux from "
+"recognising it as such."
+msgstr ""
+"Thay đổi tên của một phân vùng gốc hay swap sẽ khiến Linux không nhận ra "
+"chúng như trước."
+
+#: libparted/labels/mac.c:1443
+#, fuzzy
+msgid "Can't add another partition -- the partition map is too small!"
+msgstr "Không thêm được phân vùng khác - sơ đồ phân quá nhỏ!"
+
+#: libparted/labels/pc98.c:354
+#, fuzzy, c-format
+msgid "Invalid partition table on %s."
+msgstr "Bảng phân vùng sai trên %s"
+
+#: libparted/labels/pc98.c:406 libparted/labels/pc98.c:484
+#, fuzzy, c-format
+msgid ""
+"Partition %d isn't aligned to cylinder boundaries.  This is still "
+"unsupported."
+msgstr ""
+"Phân vùng %d chưa sắp hàng tới khung cylinder.  Cần thêm hỗ trợ cho tính "
+"năng này."
+
+#: libparted/labels/pc98.c:791
+msgid "Can't add another partition."
+msgstr "Không thêm được phân vùng khác."
+
+#: libparted/labels/rdb.c:162
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:497
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen."
+msgstr ""
+
+#: libparted/labels/rdb.c:581
+#, c-format
+msgid "%s : Loop detected at block %d."
+msgstr ""
+
+#: libparted/labels/rdb.c:600
+#, c-format
+msgid "%s : The %s list seems bad at block %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:689
+#, c-format
+msgid "%s : Failed to list bad blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:697
+#, c-format
+msgid "%s : Failed to list partition blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:705
+#, c-format
+msgid "%s : Failed to list file system blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:713
+#, c-format
+msgid "%s : Failed to list boot blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:740
+#, c-format
+msgid "Failed to write partition block at %d."
+msgstr ""
+
+#: libparted/labels/rdb.c:1069
+#, fuzzy
+msgid "Unable to allocate a partition number."
+msgstr "Mong đợi một số của phân vùng."
+
+#: libparted/labels/sun.c:145
+msgid "Corrupted Sun disk label detected."
+msgstr "Nhận ra một nhãn đĩa Sun bị hỏng."
+
+#: libparted/labels/sun.c:266
+#, fuzzy, c-format
+msgid ""
+"The disk CHS geometry (%d,%d,%d) reported by the operating system does not "
+"match the geometry stored on the disk label (%d,%d,%d)."
+msgstr ""
+"Cấu trúc CHS của đĩa (%d,%d,%d) không tương ứng cấu trúc chứa trong nhãn đĩa "
+"(%d,%d,%d)."
+
+#: libparted/labels/sun.c:288
+#, c-format
+msgid "The disk label describes a disk bigger than %s."
+msgstr "Nhãn đĩa mô tả một đĩa lớn hơn %s."
+
+#: libparted/labels/sun.c:442
+#, c-format
+msgid "The disk has %d cylinders, which is greater than the maximum of 65536."
+msgstr ""
+
+#: libparted/labels/sun.c:737
+msgid ""
+"The Whole Disk partition is the only available one left.  Generally, it is "
+"not a good idea to overwrite this partition with a real one.  Solaris may "
+"not be able to boot without it, and SILO (the sparc boot loader) appreciates "
+"it as well."
+msgstr ""
+"Phân vùng Toàn bộ Đĩa Whole Disk là phân vùng còn lại duy nhất.  Nói chung, "
+"không nên ghi chèn phân vùng này bằng một phân vùng thực sự.  Solaris có thể "
+"sẽ không khởi động khi không có nó, và SILO (trình khởi động sparc) cũng cần "
+"phân vùng này."
+
+#: libparted/labels/sun.c:752
+msgid "Sun disk label is full."
+msgstr "Nhãn đĩa Sun đầy."
+
+#: libparted/labels/vtoc.c:163
+#, c-format
+msgid ""
+"%s opening device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:167
+#, c-format
+msgid ""
+"%s seeking device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:171
+#, c-format
+msgid ""
+"%s writing to device '%s' failed,\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:175
+#, c-format
+msgid ""
+"%s reading from device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:179
+#, c-format
+msgid "Fatal error\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:418
+msgid "Could not read VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:424
+msgid "Could not read VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:431
+msgid "Could not read VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:438
+msgid "Could not read VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:445
+msgid "Could not read VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:462
+msgid "Could not write VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:468
+msgid "Could not write VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:475
+msgid "Could not write VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:482
+msgid "Could not write VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:489
+msgid "Could not write VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/libparted.c:296 libparted/libparted.c:316
+msgid "Out of memory."
+msgstr "Không đủ bộ nhớ."
+
+#: libparted/unit.c:139
+msgid "Cannot get unit size for special unit 'COMPACT'."
+msgstr ""
+
+#: libparted/unit.c:386
+#, c-format
+msgid "\"%s\" has invalid syntax for locations."
+msgstr ""
+
+#: libparted/unit.c:394
+#, c-format
+msgid "The maximum head value is %d."
+msgstr ""
+
+#: libparted/unit.c:401
+#, c-format
+msgid "The maximum sector value is %d."
+msgstr ""
+
+#: libparted/unit.c:413 libparted/unit.c:545
+#, c-format
+msgid "The location %s is outside of the device %s."
+msgstr ""
+
+#: libparted/unit.c:527
+msgid "Invalid number."
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:63 libparted/fs/amiga/apfs.c:56
+#: libparted/fs/amiga/asfs.c:70
+#, fuzzy, c-format
+msgid "%s : Failed to allocate partition block\n"
+msgstr "Mong đợi một số của phân vùng."
+
+#: libparted/fs/amiga/affs.c:78 libparted/fs/amiga/apfs.c:70
+#: libparted/fs/amiga/asfs.c:86
+#, c-format
+msgid "%s : Failed to allocate block\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:83 libparted/fs/amiga/apfs.c:75
+#, c-format
+msgid "%s : Couldn't read boot block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:99 libparted/fs/amiga/apfs.c:86
+#: libparted/fs/amiga/asfs.c:92 libparted/fs/amiga/asfs.c:106
+#, c-format
+msgid "%s : Couldn't read root block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:72
+#, c-format
+msgid "%s : Failed to allocate id list element\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:189
+#, c-format
+msgid "%s : Couldn't read block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:202
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:212
+#, fuzzy, c-format
+msgid "%s : Couldn't write block %d\n"
+msgstr "%s khi ghi trên %s"
+
+#: libparted/fs/amiga/amiga.c:278
+#, c-format
+msgid "%s : Failed to allocate disk_specific rdb block\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:289
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:318
+#, c-format
+msgid "%s : Failed to read partition block %llu\n"
+msgstr ""
+
+#: libparted/fs/ext2/ext2.c:87 libparted/fs/ext2/ext2.c:112
+msgid "Inconsistent group descriptors!"
+msgstr "Các mô tả nhóm đã thay đổi!"
+
+#: libparted/fs/ext2/ext2.c:91 libparted/fs/ext2/ext2.c:116
+#, fuzzy
+msgid "File system full!"
+msgstr "Đầy hệ thống tập tin!"
+
+#: libparted/fs/ext2/ext2.c:686
+#, fuzzy
+msgid "Invalid superblock.  Are you sure this is an ext2 file system?"
+msgstr "Khối super sai.  Đây chắc chắn là hệ thống tập tin ext2?"
+
+#: libparted/fs/ext2/ext2.c:700 libparted/fs/ext2/ext2_resize.c:658
+#, fuzzy
+msgid "File system has errors!  You should run e2fsck."
+msgstr "Hệ thống tập tin có lỗi!  Cần chạy e2fsck."
+
+#: libparted/fs/ext2/ext2.c:711
+#, fuzzy
+msgid ""
+"File system was not cleanly unmounted!  You should run e2fsck.  Modifying an "
+"unclean file system could cause severe corruption."
+msgstr ""
+"Hệ thống tập tin chưa được bỏ gắn một cách đúng đắn!  Cần chạy e2fsck.  Sửa "
+"đổi hệ thống tin đó có thể gây một vài lỗi."
+
+#: libparted/fs/ext2/ext2.c:731
+#, fuzzy
+msgid "File system has an incompatible feature enabled."
+msgstr "Hệ thống tập tin có tính năng không tương thích được bật"
+
+#: libparted/fs/ext2/ext2.c:742
+msgid "Error allocating buffer cache."
+msgstr "Lỗi phân phối cache bộ đệm."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:114
+#, fuzzy
+msgid ""
+"Found an inode with a incorrect link count.  Better go run e2fsck first!"
+msgstr ""
+"Tìm thấy một inode với số đếm liên kết sai.  Tốt nhất hãy chạy e2fsck trước."
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:487
+msgid "Not enough free inodes!"
+msgstr "Không đủ inode trống!"
+
+#: libparted/fs/ext2/ext2_resize.c:223
+#, fuzzy
+msgid "File system is too full to remove a group!"
+msgstr "Hệ thống tập tin không còn đủ chỗ để xóa bỏ một nhóm!"
+
+#: libparted/fs/ext2/ext2_resize.c:232
+#, fuzzy
+msgid "File system has too many allocated inodes to remove a group!"
+msgstr "Hệ thống tập tin có quá nhiều inode phân phối để xóa một nhóm!"
+
+#: libparted/fs/ext2/ext2_resize.c:491
+msgid "adding groups"
+msgstr "thêm nhóm"
+
+#: libparted/fs/ext2/ext2_resize.c:528
+#, fuzzy, c-format
+msgid "Your file system is too full to resize it to %i blocks.  Sorry."
+msgstr ""
+"Hệ thống tập tin không còn đủ trống để thay đổi kích thước thành %i khối. "
+"Rất tiếc."
+
+#: libparted/fs/ext2/ext2_resize.c:538
+#, fuzzy, c-format
+msgid ""
+"Your file system has too many occupied inodes to resize it to %i blocks.  "
+"Sorry."
+msgstr ""
+"Hệ thống tập tin không còn đủ inode để thay đổi kích thước thành %i khối. "
+"Rất tiếc."
+
+#: libparted/fs/ext2/ext2_resize.c:666
+#, fuzzy
+msgid "File system was not cleanly unmounted!  You should run e2fsck."
+msgstr "Hệ thống tập tin chưa được bỏ gắn đúng!  Cần chạy e2fsck."
+
+#: libparted/fs/ext2/ext2_resize.c:675
+msgid ""
+"The file system has the 'dir_index' feature enabled.  Parted can only resize "
+"the file system if it disables this feature.  You can enable it later by "
+"running 'tune2fs -O dir_index DEVICE' and then 'e2fsck -fD DEVICE'."
+msgstr ""
+"Hệ thống tập tin có tính năng 'dir_index' bật dùng.  Parted chỉ có thể thay "
+"đổi kích thước của hệ thống tập tin nếu tắt bỏ tính năng này.  Có thể bật "
+"dùng lại tính năng sau này bằng 'tune2fs -O dir_index THIẾTBỊ' và sau đó "
+"'e2fsck -fD THIẾTBỊ'."
+
+#: libparted/fs/ext2/ext2_resize.c:691
+msgid ""
+"A resize operation on this file system will use EXPERIMENTAL code\n"
+"that MAY CORRUPT it (although no one has reported any such damage yet).\n"
+"You should at least backup your data first, and run 'e2fsck -f' afterwards."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_block_relocator.c:198
+#, fuzzy
+msgid "Cross-linked blocks found!  Better go run e2fsck first!"
+msgstr "Tìm thấy các khối liên kết chồng chéo! tốt nhất hãy chạy e2fsck trước!"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:537
+#, fuzzy, c-format
+msgid "Block %i has no reference?  Weird."
+msgstr "Khối %i không có liên kết?  Kỳ lạ"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:737
+#, fuzzy, c-format
+msgid "Block %i shouldn't have been marked (%d, %d)!"
+msgstr "Không được đánh dấu khối %i!"
+
+#: libparted/fs/ext2/interface.c:186
+#, fuzzy
+msgid ""
+"The ext2 file system passed a basic check.  For a more comprehensive check, "
+"use the e2fsck program."
+msgstr ""
+"Hệ thống tập tin ext2 đã qua kiểm tra cơ bản.  Để kiểm tra kỹ hơn, hãy dùng "
+"chương trình e2fsck."
+
+#: libparted/fs/ext2/interface.c:203
+msgid "Sorry, can't move the start of ext2 partitions yet!"
+msgstr "Rất tiếc, tạm thời chưa thể di chuyển đầu của phân vùng ext2!"
+
+#: libparted/fs/ext2/ext2_buffer.c:82
+msgid "Couldn't flush buffer cache!"
+msgstr "Không san bằng được cache bộ đệm!"
+
+#: libparted/fs/ext2/ext2_mkfs.c:162
+msgid "writing per-group metadata"
+msgstr "đang ghi dữ liệu mêta của mỗi nhóm"
+
+#: libparted/fs/ext2/ext2_mkfs.c:564
+msgid "File system too small for ext2."
+msgstr "Hệ thống tập tin quá nhỏ cho ext2."
+
+#: libparted/fs/fat/calc.c:135
+#, fuzzy, c-format
+msgid ""
+"You need %s of free disk space to shrink this partition to this size.  "
+"Currently, only %s is free."
+msgstr ""
+"Người dùng cần %dM không gian trống để rút ngắn phân vùng tới kích thước này "
+"(hiện thời chỉ có %dM trống)"
+
+#: libparted/fs/fat/context.c:56
+#, c-format
+msgid ""
+"Cluster start delta = %d, which is not a multiple of the cluster size %d."
+msgstr ""
+"Delta bắt đầu cluster = %d, và không phải là bộ số của kích thước cluster %d."
+
+#: libparted/fs/fat/fat.c:308
+#, fuzzy, c-format
+msgid "Partition too big/small for a %s file system."
+msgstr "Phân vùng quá lớn/nhỏ cho một hệ thống tập tin %s"
+
+#: libparted/fs/fat/fat.c:474
+msgid ""
+"The FATs don't match.  If you don't know what this means, then select "
+"cancel, run scandisk on the file system, and then come back."
+msgstr ""
+"Các FAT không tương ứng.  Nếu không biết ý nghĩa của nó, thì hãy chọn cancel "
+"(dừng), chạy scandisk trên hệ thống tập tin, sau đó quay lại."
+
+#: libparted/fs/fat/fat.c:514
+msgid "There are no possible configurations for this FAT type."
+msgstr "Không có cấu hình có thể cho dạng FAT này."
+
+#: libparted/fs/fat/fat.c:526
+#, c-format
+msgid ""
+"File system doesn't have expected sizes for Windows to like it.  Cluster "
+"size is %dk (%dk expected); number of clusters is %d (%d expected); size of "
+"FATs is %d sectors (%d expected)."
+msgstr ""
+"Hệ thống tập tin không có kích thước Windows mong đợi.  Kích thước cluster "
+"là %dk (mong đợi %dk); số cluster là %d (mong đợi %d); kích thước FAT là %d "
+"sector (mong đợi %d)."
+
+#: libparted/fs/fat/fat.c:549
+#, c-format
+msgid ""
+"File system is reporting the free space as %d clusters, not %d clusters."
+msgstr ""
+"Hệ thống tập tin cho biết không gian trống là %d cluster, không phải %d."
+
+#: libparted/fs/fat/fat.c:874
+#, fuzzy
+msgid ""
+"GNU Parted was miscompiled: the FAT boot sector should be 512 bytes.  FAT "
+"support will be disabled."
+msgstr ""
+"Đã biên dịch sai GNU parted: sector khởi động FAT phải là 512 byte.  Hỗ trợ "
+"FAT sẽ bị tắt bỏ."
+
+#: libparted/fs/fat/resize.c:159
+#, fuzzy
+msgid ""
+"There's not enough room in the root directory for all of the files.  Either "
+"cancel, or ignore to lose the files."
+msgstr ""
+"Không đủ chỗ trống trong thư mục gốc, cho tất cả các tập tin.  Hoặc dừng "
+"(cancel), hoặc lờ đi (ignore) và sẽ mất các tập tin."
+
+#: libparted/fs/fat/resize.c:300
+msgid "Error writing to the root directory."
+msgstr "Lỗi ghi tới thư mục gốc."
+
+#: libparted/fs/fat/resize.c:489
+#, fuzzy
+msgid "If you leave your file system as FAT16, then you will have no problems."
+msgstr "Nếu để hệ thống tập tin là FAT16, thì sẽ không có vấn đề gì."
+
+#: libparted/fs/fat/resize.c:492
+msgid ""
+"If you convert to FAT16, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual)."
+msgstr ""
+"Nếu chuyển thành FAT16, và cài đặt MS Windows trên phân vùng này, thì sẽ "
+"phải cài đặt lại trình khởi động của MS Windows.  Nếu muốn thực hiện, thì "
+"cần xem tài liệu người dùng của Parted (hoặc tài liệu của nhà phân phối)."
+
+#: libparted/fs/fat/resize.c:500
+msgid ""
+"If you leave your file system as FAT32, then you will not introduce any new "
+"problems."
+msgstr "Nếu dể hệ thống là FAT32, thì sẽ không có vấn đề mới nào xảy ra."
+
+#: libparted/fs/fat/resize.c:504
+msgid ""
+"If you convert to FAT32, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual).  Also, "
+"converting to FAT32 will make the file system unreadable by MS DOS, MS "
+"Windows 95a, and MS Windows NT."
+msgstr ""
+"Nếu chuyển thành FAT32, và cài đặt MS Windows trên phân vùng này, thì sẽ "
+"phải cài đặt lại trình khởi động của MS Windows.  Nếu muốn thực hiện, thì "
+"cần xem tài liệu người dùng của Parted (hoặc tài liệu của nhà phân phối).  "
+"Đồng thời, chuyển thành FAT32 sẽ khiến MS DOS, MS Windows 95a, và MS Windows "
+"NT không đọc được chúng."
+
+#: libparted/fs/fat/resize.c:518
+#, c-format
+msgid "%s  %s  %s"
+msgstr "%s  %s  %s"
+
+#: libparted/fs/fat/resize.c:519
+msgid "Would you like to use FAT32?"
+msgstr "Ngài muốn dùng FAT32?"
+
+#: libparted/fs/fat/resize.c:550 libparted/fs/fat/resize.c:566
+#, c-format
+msgid "%s  %s"
+msgstr "%s  %s"
+
+#: libparted/fs/fat/resize.c:551
+msgid ""
+"The file system can only be resized to this size by converting to FAT16."
+msgstr ""
+"Chỉ thay đổi được kích thước của hệ thống tập tin thành kích thước này khi "
+"chuyển thành FAT16."
+
+#: libparted/fs/fat/resize.c:567
+msgid ""
+"The file system can only be resized to this size by converting to FAT32."
+msgstr ""
+"Chỉ thay đổi được kích thước của hệ thống tập tin thành kích thước này khi "
+"chuyển thành FAT32."
+
+#: libparted/fs/fat/resize.c:580
+#, fuzzy
+msgid ""
+"GNU Parted cannot resize this partition to this size.  We're working on it!"
+msgstr ""
+"GNU Parted không thay đổi được kích thước của phân vùng này thành kích thước "
+"chỉ ra.  Chúng tôi đang thực hiện việc đó!"
+
+#: libparted/fs/fat/bootsector.c:49 libparted/fs/fat/bootsector.c:56
+msgid "File system has an invalid signature for a FAT file system."
+msgstr "Hệ thống tập tin có chữ ký hệ thống tập tin FAT sai."
+
+#: libparted/fs/fat/bootsector.c:64
+msgid "File system has an invalid sector size for a FAT file system."
+msgstr "Hệ thống tập tin có kích thước sector sai cho hệ thống tập tin FAT."
+
+#: libparted/fs/fat/bootsector.c:71
+msgid "File system has an invalid cluster size for a FAT file system."
+msgstr "Hệ thống tập tin có kích thước cluster sai cho hệ thống tập tin FAT."
+
+#: libparted/fs/fat/bootsector.c:78
+#, fuzzy
+msgid ""
+"File system has an invalid number of reserved sectors for a FAT file system."
+msgstr "Hệ thống tập tin có số sector dự trữ sai cho hệ thống tập tin FAT."
+
+#: libparted/fs/fat/bootsector.c:85
+#, fuzzy
+msgid "File system has an invalid number of FATs."
+msgstr "Hệ thống tập tin có số hệ thống tập tin FAT sai."
+
+#: libparted/fs/fat/bootsector.c:139
+#, c-format
+msgid ""
+"This file system has a logical sector size of %d.  GNU Parted is known not "
+"to work properly with sector sizes other than 512 bytes."
+msgstr ""
+"Hệ thống tập tin có kích thước sector lôgíc là %d.  GNU Parted không làm "
+"việc chính xác với kích thước sector khác 512 byte."
+
+#: libparted/fs/fat/bootsector.c:164
+#, c-format
+msgid ""
+"The file system's CHS geometry is (%d, %d, %d), which is invalid.  The "
+"partition table's CHS geometry is (%d, %d, %d).  If you select Ignore, the "
+"file system's CHS geometry will be left unchanged.  If you select Fix, the "
+"file system's CHS geometry will be set to match the partition table's CHS "
+"geometry."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:213
+msgid "FAT boot sector says logical sector size is 0.  This is weird. "
+msgstr "Sector khởi động FAT nói kích thước sector lôgíc là 0.  Kỳ lạ. "
+
+#: libparted/fs/fat/bootsector.c:219
+msgid "FAT boot sector says there are no FAT tables.  This is weird. "
+msgstr "Sector khởi động FAT nói không có bảng FAT.  Kỳ lạ. "
+
+#: libparted/fs/fat/bootsector.c:225
+msgid "FAT boot sector says clusters are 0 sectors.  This is weird. "
+msgstr "Sector khởi động FAT nói các cluster là các sector 0.  Kỳ lạ. "
+
+#: libparted/fs/fat/bootsector.c:235
+#, fuzzy
+msgid "File system is FAT12, which is unsupported."
+msgstr "Hệ thống tập tin là FAT12, và không được hỗ trợ."
+
+#: libparted/fs/fat/bootsector.c:411
+#, c-format
+msgid ""
+"The information sector has the wrong signature (%x).  Select cancel for now, "
+"and send in a bug report.  If you're desperate, it's probably safe to ignore."
+msgstr ""
+"Sector thông tin có chữ ký sai (%x).  Hãy chọn dừng (cancel), và gửi một báo "
+"cáo lỗi bug.  Nếu liều lĩnh, thì có thể lờ đi."
+
+#: libparted/fs/fat/count.c:152
+#, c-format
+msgid "Bad directory entry for %s: first cluster is the end of file marker."
+msgstr "Mục thư mục xấu cho %s: cluster đầu tiên là cuối của đánh dấu tập tin."
+
+#: libparted/fs/fat/count.c:165
+#, c-format
+msgid ""
+"Bad FAT: unterminated chain for %s.  You should run dosfsck or scandisk."
+msgstr "FAT Xấu: chuỗi không kết thúc cho %s.  Cần chạy dosfsck hoặc scandisk."
+
+#: libparted/fs/fat/count.c:174
+#, fuzzy, c-format
+msgid ""
+"Bad FAT: cluster %d outside file system in chain for %s.  You should run "
+"dosfsck or scandisk."
+msgstr ""
+"FAT Xấu: cluster %d ngoài hệ thống tập tin trong chuỗi cho %s.  Cần chạy "
+"dosfsck hoặc scandisk."
+
+#: libparted/fs/fat/count.c:184
+#, c-format
+msgid ""
+"Bad FAT: cluster %d is cross-linked for %s.  You should run dosfsck or "
+"scandisk."
+msgstr ""
+"FAT Xấu: cluster %d là liên kết chồng chéo cho %s.  Cần chạy dosfsck hoặc "
+"scandisk."
+
+#: libparted/fs/fat/count.c:203
+#, c-format
+msgid "%s is %dk, but it has %d clusters (%dk)."
+msgstr "%s là %dk, nhưng nó có %d cluster (%dk)."
+
+#: libparted/fs/fat/count.c:266
+#, c-format
+msgid ""
+"The file %s is marked as a system file.  This means moving it could cause "
+"some programs to stop working."
+msgstr ""
+"Tập tin %s có dấu hiệu của tập tin hệ thống.  Có nghĩa di chuyển tập tin này "
+"có thể khiến một số chương trình dừng làm việc."
+
+#: libparted/fs/fat/table.c:137
+#, c-format
+msgid ""
+"FAT %d media %x doesn't match the boot sector's media %x.  You should "
+"probably run scandisk."
+msgstr ""
+"FAT %d thiết bị %x không tương ứng thiết bị sector khởi động %x.  Có thể cần "
+"chạy scandisk."
+
+#: libparted/fs/fat/table.c:269
+#, fuzzy, c-format
+msgid "fat_table_set: cluster %ld outside file system"
+msgstr "fat_table_set: cluster %ld ngoài hệ thống tập tin"
+
+#: libparted/fs/fat/table.c:301
+#, fuzzy, c-format
+msgid "fat_table_get: cluster %ld outside file system"
+msgstr "fat_table_get: cluster %ld ngoài hệ thống tập tin"
+
+#: libparted/fs/fat/table.c:343
+msgid "fat_table_alloc_cluster: no free clusters"
+msgstr "fat_table_alloc_cluster: không còn cluster trống"
+
+#: libparted/fs/linux_swap/linux_swap.c:275
+#, fuzzy, c-format
+msgid "Unrecognised old style linux swap signature '%10s'."
+msgstr "Chữ ký linux swap không nhận ra '%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:318
+#, fuzzy, c-format
+msgid "Unrecognised new style linux swap signature '%10s'."
+msgstr "Chữ ký linux swap không nhận ra '%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:358
+#, fuzzy, c-format
+msgid "Unrecognised swsusp linux swap signature '%9s'."
+msgstr "Chữ ký linux swap không nhận ra '%10s'."
+
+#: libparted/fs/linux_swap/linux_swap.c:434
+msgid "Too many bad pages."
+msgstr "Quá nhiều trang xấu."
+
+#: libparted/fs/hfs/advfs.c:121 libparted/fs/hfs/advfs_plus.c:122
+#: libparted/fs/hfs/reloc.c:414 libparted/fs/hfs/reloc.c:508
+#: libparted/fs/hfs/reloc_plus.c:539 libparted/fs/hfs/reloc_plus.c:658
+#: libparted/fs/hfs/reloc_plus.c:772
+msgid "The file system contains errors."
+msgstr ""
+
+#: libparted/fs/hfs/advfs_plus.c:287
+msgid "Bad blocks could not be read."
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:137
+#, c-format
+msgid ""
+"Trying to register an extent starting at block 0x%X, but another one already "
+"exists at this position.  You should check the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:214
+#, c-format
+msgid ""
+"Trying to move an extent from block Ox%X to block Ox%X, but another one "
+"already exists at this position.  This should not happen!"
+msgstr ""
+
+#: libparted/fs/hfs/file.c:143
+#, c-format
+msgid "Could not update the extent cache for HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:180
+#, c-format
+msgid "Trying to read HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:190 libparted/fs/hfs/file.c:220
+#, c-format
+msgid "Could not find sector %lli of HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:210
+#, c-format
+msgid "Trying to write HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:157
+#, c-format
+msgid "Could not update the extent cache for HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:202
+#, c-format
+msgid "Trying to read HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:213 libparted/fs/hfs/file_plus.c:256
+#, c-format
+msgid "Could not find sector %lli of HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:245
+#, c-format
+msgid "Trying to write HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:232
+msgid "Sorry, HFS cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:262 libparted/fs/hfs/hfs.c:641
+msgid "Data relocation has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:281
+msgid "Data relocation left some data in the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:320
+#, fuzzy
+msgid "writing HFS Master Directory Block"
+msgstr "Lỗi ghi tới thư mục gốc."
+
+#: libparted/fs/hfs/hfs.c:468
+msgid "No valid HFS[+X] signature has been found while opening."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:478
+#, c-format
+msgid "Version %d of HFS+ isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:489
+#, c-format
+msgid "Version %d of HFSX isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:672
+msgid "Data relocation left some data at the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:720
+#, fuzzy
+msgid "Error while writing the allocation file."
+msgstr "Lỗi ghi tới thư mục gốc."
+
+#: libparted/fs/hfs/hfs.c:735
+msgid "Error while writing the compatibility part of the allocation file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:750
+msgid "writing HFS+ Volume Header"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:850
+msgid "An error occurred while looking for the mandatory bad blocks file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:904
+msgid ""
+"It seems there is an error in the HFS wrapper: the bad blocks file doesn't "
+"contain the embedded HFS+ volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:940
+msgid "Sorry, HFS+ cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:975
+msgid "shrinking embedded HFS+ volume"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:991
+msgid "Resizing the HFS+ volume has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:998
+#, fuzzy
+msgid "shrinking HFS wrapper"
+msgstr "đang rút ngắn"
+
+#: libparted/fs/hfs/hfs.c:1007
+msgid "Updating the HFS wrapper has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:1109 libparted/fs/hfs/hfs.c:1194
+#, c-format
+msgid ""
+"This is not a real %s check.  This is going to extract special low level "
+"files for debugging purposes."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:155
+msgid "Bad block list header checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:168
+#, c-format
+msgid ""
+"Invalid size of a transaction block while replaying the journal (%i bytes)."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:260
+msgid ""
+"Journal stored outside of the volume are not supported.  Try to desactivate "
+"the journal and run Parted again."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:271
+#, fuzzy
+msgid "Journal offset or size is not multiple of the sector size."
+msgstr ""
+"Delta bắt đầu cluster = %d, và không phải là bộ số của kích thước cluster %d."
+
+#: libparted/fs/hfs/journal.c:292
+msgid "Incorrect magic values in the journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:302
+msgid "Journal size mismatch between journal info block and journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:314
+#, fuzzy
+msgid "Some header fields are not multiple of the sector size."
+msgstr ""
+"Delta bắt đầu cluster = %d, và không phải là bộ số của kích thước cluster %d."
+
+#: libparted/fs/hfs/journal.c:323
+msgid ""
+"The sector size stored in the journal is not 512 bytes.  Parted only "
+"supports 512 bytes length sectors."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:335
+msgid "Bad journal checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:353
+msgid ""
+"The journal is not empty.  Parted must replay the transactions before "
+"opening the file system.  This will modify the file system."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:381
+msgid ""
+"The volume header or the master directory block has changed while replaying "
+"the journal.  You should restart Parted."
+msgstr ""
+
+#: libparted/fs/hfs/probe.c:51
+#, c-format
+msgid ""
+"Parted can't use HFS file systems on disks with a sector size not equal to %"
+"d bytes."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:151 libparted/fs/hfs/reloc_plus.c:155
+msgid "An extent has not been relocated."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:251 libparted/fs/hfs/reloc_plus.c:307
+msgid ""
+"A reference to an extent comes from a place it should not.  You should check "
+"the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:381
+msgid "This HFS volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:475
+msgid "This HFS volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:517 libparted/fs/hfs/reloc_plus.c:668
+msgid ""
+"The extents overflow file should not contain its own extents!  You should "
+"check the file system."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:574 libparted/fs/hfs/reloc_plus.c:847
+#, fuzzy
+msgid "Could not cache the file system in memory."
+msgstr "Không nhận ra hệ thống tập tin."
+
+#: libparted/fs/hfs/reloc.c:635 libparted/fs/hfs/reloc_plus.c:908
+msgid "Bad blocks list could not be loaded."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:649 libparted/fs/hfs/reloc_plus.c:924
+msgid "An error occurred during extent relocation."
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:495
+msgid "This HFS+ volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:619
+msgid "This HFS+ volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: parted/parted.c:94
+msgid "displays this help message"
+msgstr "hiển thị trợ giúp này"
+
+#: parted/parted.c:95
+msgid "lists partition layout on all block devices"
+msgstr ""
+
+#: parted/parted.c:96
+msgid "displays machine parseable output"
+msgstr ""
+
+#: parted/parted.c:97
+msgid "never prompts for user intervention"
+msgstr "không bao giờ hỏi người dùng"
+
+#: parted/parted.c:98
+msgid "displays the version"
+msgstr "hiển thị phiên bản"
+
+#: parted/parted.c:111
+#, fuzzy
+msgid ""
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"
+msgstr ""
+"MINOR (NHỎ) là số của phân vùng sử dụng bởi Linux.  Trên nhãn đĩa msdos, các "
+"phân vùng chính có số từ 1 đến 4, và phân vùng lôgíc từ 5 trở đi.\n"
+
+#: parted/parted.c:114
+msgid "LABEL-TYPE is one of: "
+msgstr "LABEL-TYPE là một trong số: "
+
+#: parted/parted.c:115
+msgid "FLAG is one of: "
+msgstr "FLAG là một trong số: "
+
+#: parted/parted.c:116
+#, fuzzy
+msgid "UNIT is one of: "
+msgstr "FLAG là một trong số: "
+
+#: parted/parted.c:117
+msgid "PART-TYPE is one of: primary, logical, extended\n"
+msgstr "PART-TYPE là một trong số: primary, logical, extended\n"
+
+#: parted/parted.c:119
+msgid "FS-TYPE is one of: "
+msgstr "FS-TYPE là một trong số: "
+
+#: parted/parted.c:120
+#, fuzzy
+msgid ""
+"START and END are disk locations, such as 4GB or 10%.  Negative values count "
+"from the end of the disk.  For example, -1s specifies exactly the last "
+"sector.\n"
+msgstr "START và END tính theo mêga byte.  Giá trị âm đếm từ cuối đĩa.\n"
+
+#: parted/parted.c:123
+msgid "STATE is one of: on, off\n"
+msgstr "STATE là một trong số: on, off\n"
+
+#: parted/parted.c:124
+msgid "DEVICE is usually /dev/hda or /dev/sda\n"
+msgstr "DEVICE thông thường là /dev/hda hay /dev/sda\n"
+
+#: parted/parted.c:125
+msgid "NAME is any word you want\n"
+msgstr "NAME là bất kỳ từ gì theo ý muốn\n"
+
+#: parted/parted.c:126
+msgid "The partition must have one of the following FS-TYPEs: "
+msgstr ""
+
+#: parted/parted.c:130
+#, fuzzy
+msgid ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+msgstr ""
+"Đăng ký bản quyền (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software "
+"Foundation, Inc.\n"
+"Chương trình này là một phầm mềm miễn phí, theo bản quyền GNU General Public "
+"License.\n"
+"\n"
+"Chương trình này được phát hành với hy vọng rằng nó sẽ trở nên hữu ích, "
+"nhưng nó KHÔNG KÈM THEO BẤT KỲ SỰ BẢO ĐẢM NÀO, ngay cả những đảm bảo ngầm "
+"hiểu về việc THƯƠNG MẠI HÓA hay PHẢI PHÙ HỢP VỚI MỘT MỤC ĐÍCH CỤ THỂ NÀO. "
+"Hãy tham khảo giấy phép GNU General Public License để biết thêm chi tiết.\n"
+"\n"
+
+#: parted/parted.c:176
+#, c-format
+msgid "%0.f%%\t(time left %.2d:%.2d)"
+msgstr "%0.f%%\t(còn lại %.2d:%.2d)"
+
+#: parted/parted.c:195
+#, c-format
+msgid ""
+"Partition %s is being used. You must unmount it before you modify it with "
+"Parted."
+msgstr ""
+
+#: parted/parted.c:211
+#, c-format
+msgid "Partition(s) on %s are being used."
+msgstr "(Các) phân vùng trên %s đang được dùng."
+
+#: parted/parted.c:223
+msgid ""
+"The existing file system will be destroyed and all data on the partition "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:235
+#, c-format
+msgid ""
+"The existing disk label on %s will be destroyed and all data on this disk "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:458 parted/parted.c:652 parted/parted.c:1044
+#: parted/parted.c:1128 parted/parted.c:1771 parted/parted.c:1852
+#: parted/parted.c:1900
+msgid "Partition number?"
+msgstr "Số của phân vùng?"
+
+#: parted/parted.c:500
+msgid "Source device?"
+msgstr "Thiết bị nguồn?"
+
+#: parted/parted.c:504
+msgid "Source partition number?"
+msgstr "Số của phân vùng của nguồn?"
+
+#: parted/parted.c:509
+#, fuzzy
+msgid "Can't copy an extended partition."
+msgstr "Không sao chép được phân vùng mở rộng."
+
+#: parted/parted.c:515
+msgid "Destination partition number?"
+msgstr "Số của phân vùng của đích?"
+
+#: parted/parted.c:615
+msgid "New disk label type?"
+msgstr "Dạng nhãn đĩa mới?"
+
+#: parted/parted.c:656
+msgid "File system?"
+msgstr "Hệ thống tập tin?"
+
+#: parted/parted.c:707 parted/parted.c:878
+msgid "Partition type?"
+msgstr "Dạng phân vùng?"
+
+#: parted/parted.c:714 parted/parted.c:885 parted/parted.c:1131
+msgid "Partition name?"
+msgstr "Tên phân vùng?"
+
+#: parted/parted.c:722 parted/parted.c:895
+msgid "File system type?"
+msgstr "Dạng hệ thống tập tin?"
+
+#: parted/parted.c:729 parted/parted.c:897 parted/parted.c:1059
+#: parted/parted.c:1725 parted/parted.c:1780
+msgid "Start?"
+msgstr "Đầu?"
+
+#: parted/parted.c:731 parted/parted.c:900 parted/parted.c:1062
+#: parted/parted.c:1727 parted/parted.c:1782
+msgid "End?"
+msgstr "Cuối?"
+
+#: parted/parted.c:769 parted/parted.c:938
+#, c-format
+msgid ""
+"You requested a partition from %s to %s.\n"
+"The closest location we can manage is %s to %s.  Is this still acceptable to "
+"you?"
+msgstr ""
+
+#: parted/parted.c:890
+#, fuzzy
+msgid "An extended partition cannot hold a file system.  Did you want mkpart?"
+msgstr "Phân vùng mở rộng không thể có hệ thống tập tin.  Bạn muốn mkpart?"
+
+#: parted/parted.c:1050
+#, fuzzy
+msgid "Can't move an extended partition."
+msgstr "Không thể di chuyển các phân vùng mở rộng."
+
+#: parted/parted.c:1079
+msgid "Can't move a partition onto itself.  Try using resize, perhaps?"
+msgstr ""
+"Không thể di chuyển một phân vùng lên chính nó.  Có thể, hãy thử thay đổi "
+"kích thước?"
+
+#: parted/parted.c:1227
+#, c-format
+msgid "Minor: %d\n"
+msgstr "Số nhỏ: %d\n"
+
+#: parted/parted.c:1228
+#, fuzzy, c-format
+msgid "Flags: %s\n"
+msgstr "Cờ: "
+
+#: parted/parted.c:1229
+#, c-format
+msgid "File System: %s\n"
+msgstr "Hệ thống tập tin: %s\n"
+
+#: parted/parted.c:1230
+#, fuzzy
+msgid "Size:         "
+msgstr "Kíchthước:         %10.3fMb (%d%%)\n"
+
+#: parted/parted.c:1235
+#, fuzzy
+msgid "Minimum size: "
+msgstr "Kích thước nhỏ nhất: %10.3fMb (%d%%)\n"
+
+#: parted/parted.c:1238
+#, fuzzy
+msgid "Maximum size: "
+msgstr "Kích thước lớn nhất: %10.3fMb (%d%%)\n"
+
+#: parted/parted.c:1362
+#, c-format
+msgid "Model: %s (%s)\n"
+msgstr ""
+
+#: parted/parted.c:1364
+#, fuzzy, c-format
+msgid "Disk %s: %s\n"
+msgstr "%s  %s  %s"
+
+#: parted/parted.c:1365
+#, c-format
+msgid "Sector size (logical/physical): %lldB/%lldB\n"
+msgstr ""
+
+#: parted/parted.c:1383
+#, c-format
+msgid "BIOS cylinder,head,sector geometry: %d,%d,%d.  Each cylinder is %s.\n"
+msgstr ""
+
+#: parted/parted.c:1392
+#, fuzzy, c-format
+msgid "Partition Table: %s\n"
+msgstr "Tên phân vùng?"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Number"
+msgstr ""
+
+#: parted/parted.c:1406 parted/parted.c:1409
+#, fuzzy
+msgid "Start"
+msgstr "Đầu?"
+
+#: parted/parted.c:1407 parted/parted.c:1410
+#, fuzzy
+msgid "End"
+msgstr "Cuối?"
+
+#: parted/parted.c:1410
+#, fuzzy
+msgid "Size"
+msgstr "resize"
+
+#: parted/parted.c:1414
+msgid "Type"
+msgstr ""
+
+#: parted/parted.c:1416
+#, fuzzy
+msgid "File system"
+msgstr "Hệ thống tập tin?"
+
+#: parted/parted.c:1419
+#, fuzzy
+msgid "Name"
+msgstr "name"
+
+#: parted/parted.c:1421
+msgid "Flags"
+msgstr "Cờ"
+
+#: parted/parted.c:1477
+msgid "Free Space"
+msgstr ""
+
+#: parted/parted.c:1624
+#, fuzzy, c-format
+msgid ""
+"A %s %s partition was found at %s -> %s.  Do you want to add it to the "
+"partition table?"
+msgstr ""
+"Tìm thấy một phân vùng %s %s tại %.3fMb -> %.3fMb.  Thêm nó vào bảng phân "
+"vùng?"
+
+#: parted/parted.c:1663
+msgid "searching for file systems"
+msgstr "tìm kiếm hệ thống tập tin"
+
+#: parted/parted.c:1877
+msgid "New device?"
+msgstr "Thiết bị mới?"
+
+#: parted/parted.c:1902
+#, fuzzy
+msgid "Flag to Invert?"
+msgstr "Cờ để thay đổi?"
+
+#: parted/parted.c:1907
+msgid "New state?"
+msgstr "Trạng thái mới?"
+
+#: parted/parted.c:1944
+msgid "Unit?"
+msgstr ""
+
+#: parted/parted.c:2093
+msgid "check"
+msgstr "check"
+
+#: parted/parted.c:2096
+#, fuzzy
+msgid ""
+"check NUMBER                             do a simple check on the file system"
+msgstr ""
+"check MINOR                   thực hiện một kiểm tra đơn giản trên hệ thống "
+"tập tin"
+
+#: parted/parted.c:2102
+msgid "cp"
+msgstr "cp"
+
+#: parted/parted.c:2105
+#, fuzzy
+msgid ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+"partition"
+msgstr ""
+"cp [FROM-DEVICE] FROM-MINOR TO-MINOR      sao chép hệ thống tập tin tới phân "
+"vùng khác"
+
+#: parted/parted.c:2111
+msgid "help"
+msgstr "help"
+
+#: parted/parted.c:2114
+#, fuzzy
+msgid ""
+"help [COMMAND]                           print general help, or help on "
+"COMMAND"
+msgstr ""
+"help [COMMAND]                in trợ giúp chung, hoặc trợ giúp trên câu lệnh "
+"COMMAND"
+
+#: parted/parted.c:2120
+msgid "mklabel"
+msgstr "mklabel"
+
+#: parted/parted.c:2120
+#, fuzzy
+msgid "mktable"
+msgstr "mklabel"
+
+#: parted/parted.c:2123
+#, fuzzy
+msgid ""
+"mklabel,mktable LABEL-TYPE               create a new disklabel (partition "
+"table)"
+msgstr "mklabel LABEL-TYPE            tạo một nhãn đĩa mới (bảng phân vùng)"
+
+#: parted/parted.c:2129
+msgid "mkfs"
+msgstr "mkfs"
+
+#: parted/parted.c:2132
+#, fuzzy
+msgid ""
+"mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on "
+"partititon NUMBER"
+msgstr ""
+"mkfs MINOR FS-TYPE            tạo một hệ thống tập tin dạng FS-TYPE trên "
+"phân vùng MINOR"
+
+#: parted/parted.c:2138
+msgid "mkpart"
+msgstr "mkpart"
+
+#: parted/parted.c:2141
+#, fuzzy
+msgid "mkpart PART-TYPE [FS-TYPE] START END     make a partition"
+msgstr "mkpart PART-TYPE [FS-TYPE] START END      tạo một phân vùng"
+
+#: parted/parted.c:2147
+#, fuzzy
+msgid ""
+"'mkpart' makes a partition without creating a new file system on the "
+"partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"
+msgstr ""
+"mkpart tạo một phân vùng và không tạo một hệ thống tập tin mới trên phân "
+"vùng đó.  Có thể chỉ ra FS-TYPE để đặt một ID phân vùng thích hợp.\n"
+
+#: parted/parted.c:2152
+msgid "mkpartfs"
+msgstr "mkpartfs"
+
+#: parted/parted.c:2155
+#, fuzzy
+msgid ""
+"mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system"
+msgstr ""
+"mkpartfs PART-TYPE FS-TYPE START END      tạo một phân vùng với một hệ thống "
+"tập tin"
+
+#: parted/parted.c:2161
+msgid "move"
+msgstr "move"
+
+#: parted/parted.c:2164
+#, fuzzy
+msgid "move NUMBER START END                    move partition NUMBER"
+msgstr "move MINOR START END          di chuyển phân vùng MINOR"
+
+#: parted/parted.c:2169
+msgid "name"
+msgstr "name"
+
+#: parted/parted.c:2172
+#, fuzzy
+msgid "name NUMBER NAME                         name partition NUMBER as NAME"
+msgstr "name MINOR NAME               đặt tên phân vùng MINOR bằng tên NAME"
+
+#: parted/parted.c:2177
+msgid "print"
+msgstr "print"
+
+#: parted/parted.c:2180
+msgid ""
+"print [devices|free|list,all|NUMBER]     display the partition table, "
+"available devices, free space, all found partitions, or a particular "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2185
+msgid ""
+"Without arguments, 'print' displays the entire partition table. However with "
+"the following arguments it performs various other actions.\n"
+msgstr ""
+
+#: parted/parted.c:2187
+msgid "  devices   : display all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2188
+msgid ""
+"  free      : display information about free unpartitioned space on the "
+"current block device\n"
+msgstr ""
+
+#: parted/parted.c:2190
+#, fuzzy
+msgid ""
+"  list, all : display the partition tables of all active block devices\n"
+msgstr ""
+"print [MINOR]                 hiển thị bảng phân vùng, hoặc một phân vùng"
+
+#: parted/parted.c:2191
+msgid ""
+"  NUMBER    : display more detailed information about this particular "
+"partition\n"
+msgstr ""
+
+#: parted/parted.c:2196
+msgid "quit"
+msgstr "quit"
+
+#: parted/parted.c:2199
+#, fuzzy
+msgid "quit                                     exit program"
+msgstr "quit                          thoát khỏi chương trình"
+
+#: parted/parted.c:2204
+msgid "rescue"
+msgstr "rescue"
+
+#: parted/parted.c:2207
+#, fuzzy
+msgid ""
+"rescue START END                         rescue a lost partition near START "
+"and END"
+msgstr ""
+"rescue START END              phục hồi một phân vùng đã mất cạnh đầu START "
+"và cuối END"
+
+#: parted/parted.c:2213
+msgid "resize"
+msgstr "resize"
+
+#: parted/parted.c:2216
+#, fuzzy
+msgid ""
+"resize NUMBER START END                  resize partition NUMBER and its "
+"file system"
+msgstr ""
+"rescue START END              phục hồi một phân vùng đã mất cạnh đầu START "
+"và cuối END"
+
+#: parted/parted.c:2224
+msgid "rm"
+msgstr "rm"
+
+#: parted/parted.c:2227
+#, fuzzy
+msgid "rm NUMBER                                delete partition NUMBER"
+msgstr "rm MINOR                      xóa bỏ phân vùng MINOR"
+
+#: parted/parted.c:2232
+msgid "select"
+msgstr "select"
+
+#: parted/parted.c:2235
+#, fuzzy
+msgid "select DEVICE                            choose the device to edit"
+msgstr "select DEVICE                 chọn thiết bị để thực hiện"
+
+#: parted/parted.c:2240
+msgid "set"
+msgstr "set"
+
+#: parted/parted.c:2243
+#, fuzzy
+msgid ""
+"set NUMBER FLAG STATE                    change the FLAG on partition NUMBER"
+msgstr "set MINOR FLAG STATE          thay đổi cờ trên phân vùng MINOR"
+
+#: parted/parted.c:2249
+msgid "toggle"
+msgstr ""
+
+#: parted/parted.c:2252
+msgid ""
+"toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+"partition NUMBER"
+msgstr ""
+
+#: parted/parted.c:2258
+#, fuzzy
+msgid "unit"
+msgstr "quit"
+
+#: parted/parted.c:2261
+#, fuzzy
+msgid "unit UNIT                                set the default unit to UNIT"
+msgstr "quit                          thoát khỏi chương trình"
+
+#: parted/parted.c:2266
+msgid "version"
+msgstr ""
+
+#: parted/parted.c:2269
+msgid ""
+"version                                  display the version number and "
+"copyright information of GNU Parted"
+msgstr ""
+
+#: parted/parted.c:2273
+msgid ""
+"'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"
+msgstr ""
+
+#: parted/parted.c:2335
+#, c-format
+msgid "Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"
+msgstr ""
+
+#: parted/parted.c:2379
+msgid "No device found"
+msgstr "Không tìm thấy thiết bị nào"
+
+#: parted/parted.c:2412
+msgid "WARNING: You are not superuser.  Watch out for permissions."
+msgstr ""
+
+#: parted/parted.c:2450
+#, fuzzy
+msgid "You may need to update /etc/fstab.\n"
+msgstr "Đừng quên cập nhật /etc/fstab, nếu cần thiết.\n"
+
+#: parted/ui.c:160
+msgid "Welcome to GNU Parted! Type 'help' to view a list of commands.\n"
+msgstr ""
+
+#: parted/ui.c:163
+#, fuzzy
+msgid ""
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run "
+"in\n"
+"interactive mode.\n"
+msgstr ""
+"Sử dụng: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Áp dụng các câu lệnh COMMAND với các tham số PARAMETERS tới thiết bị "
+"DEVICE.  Nếu\n"
+"không có câu lệnh COMMAND nào chạy trong chế độ hỏi đáp.\n"
+
+#: parted/ui.c:168
+#, c-format
+msgid ""
+"\n"
+"\n"
+"You found a bug in GNU Parted! Here's what you have to do:\n"
+"\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n"
+"\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Please check this version prior to bug reporting.\n"
+"\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"for further information.\n"
+"\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n"
+msgstr ""
+
+#: parted/ui.c:284
+msgid ""
+"\n"
+"Command History:\n"
+msgstr ""
+
+#: parted/ui.c:366
+msgid ""
+"\n"
+"Error: SEGV_MAPERR (Address not mapped to object)\n"
+msgstr ""
+
+#: parted/ui.c:372
+msgid ""
+"\n"
+"Error: SEGV_ACCERR (Invalid permissions for mapped object)\n"
+msgstr ""
+
+#: parted/ui.c:377
+msgid ""
+"\n"
+"Error: A general SIGSEGV signal was encountered.\n"
+msgstr ""
+
+#: parted/ui.c:410
+msgid ""
+"\n"
+"Error: FPE_INTDIV (Integer: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:415
+msgid ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+msgstr ""
+
+#: parted/ui.c:420
+msgid ""
+"\n"
+"Error: FPE_FLTDIV (Float: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:425
+msgid ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+msgstr ""
+
+#: parted/ui.c:430
+msgid ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+msgstr ""
+
+#: parted/ui.c:435
+msgid ""
+"\n"
+"Error: FPE_FLTRES (Float: inexact result)"
+msgstr ""
+
+#: parted/ui.c:440
+msgid ""
+"\n"
+"Error: FPE_FLTINV (Float: invalid operation)"
+msgstr ""
+
+#: parted/ui.c:445
+msgid ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript out of range)"
+msgstr ""
+
+#: parted/ui.c:450
+msgid ""
+"\n"
+"Error: A general SIGFPE signal was encountered."
+msgstr ""
+
+#: parted/ui.c:483
+msgid ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+msgstr ""
+
+#: parted/ui.c:488
+msgid ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+msgstr ""
+
+#: parted/ui.c:493
+msgid ""
+"\n"
+"Error: ILL_ILLADR (Illegal addressing mode)"
+msgstr ""
+
+#: parted/ui.c:498
+msgid ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+msgstr ""
+
+#: parted/ui.c:503
+msgid ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+msgstr ""
+
+#: parted/ui.c:508
+msgid ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+msgstr ""
+
+#: parted/ui.c:513
+msgid ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+msgstr ""
+
+#: parted/ui.c:518
+msgid ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+msgstr ""
+
+#: parted/ui.c:523
+msgid ""
+"\n"
+"Error: A general SIGILL signal was encountered."
+msgstr ""
+
+#: parted/ui.c:1024
+msgid "Expecting a partition number."
+msgstr "Mong đợi một số của phân vùng."
+
+#: parted/ui.c:1033
+msgid "Partition doesn't exist."
+msgstr "Phân vùng không tồn tại."
+
+#: parted/ui.c:1053
+msgid "Expecting a file system type."
+msgstr "Mong đợi một dạng hệ thống tập tin."
+
+#: parted/ui.c:1060
+#, c-format
+msgid "Unknown file system type \"%s\"."
+msgstr "Dạng hệ thống tập tin không rõ \"%s\"."
+
+#: parted/ui.c:1080
+msgid "Expecting a disk label type."
+msgstr "Mong đợi một dạng nhãn đĩa."
+
+#: parted/ui.c:1178
+msgid "Can't create any more partitions."
+msgstr "Không tạo được thêm phân vùng nữa."
+
+#: parted/ui.c:1188
+msgid "Expecting a partition type."
+msgstr "Mong đợi một dạng phân vùng."
+
+#: parted/ui.c:1315
+msgid "on"
+msgstr "bật"
+
+#: parted/ui.c:1316
+msgid "off"
+msgstr "tắt"
+
+#: parted/ui.c:1431
+msgid "OPTIONs:"
+msgstr "TÙY CHỌN:"
+
+#: parted/ui.c:1436
+msgid "COMMANDs:"
+msgstr "CÂU LỆNH:"
+
+#: parted/ui.c:1445
+#, c-format
+msgid "Using %s\n"
+msgstr "Sử dụng %s\n"
+
+#: parted/ui.c:1519
+msgid "This command does not make sense in non-interactive mode.\n"
+msgstr ""
+
+#~ msgid "where necessary, prompts for user intervention"
+#~ msgstr "khi cần thiết, hỏi người dùng thao tác cần làm"
+
+#, fuzzy
+#~ msgid ""
+#~ "Without arguments, print displays the entire partition table. With "
+#~ "'free'\n"
+#~ "argument, information about free space will be displayed otherwise if a\n"
+#~ "partition number is given, then more detailed information is displayed\n"
+#~ "about that partition. If the 'all' argument is passed instead, partition\n"
+#~ "information for all devices will be displayed.\n"
+#~ msgstr ""
+#~ "Khi không có tham số, print hiển thị toàn bộ bảng phân vùng.  Nếu đưa\n"
+#~ "ra số của bảng phân vùng, thì hiển thị thông tin chi tiết hơn về phân "
+#~ "vùng\n"
+#~ "đó.\n"
+
+#~ msgid ""
+#~ "The sector size on %s is %d bytes.  Parted is known not to work properly "
+#~ "with drives with sector sizes other than %d bytes"
+#~ msgstr ""
+#~ "Kích thước sector trên %s là %d byte.  Parted không làm việc chính xác "
+#~ "được với các ổ có kích thước sector không phải %d byte"
+
+#~ msgid "Could not read geometry of %s - %s."
+#~ msgstr "Không đọc được cấu trúc hình học của %s - %s."
+
+#~ msgid "Device %s has dodgey geometry."
+#~ msgstr "Thiết bị %s có cấu trúc hình học khó hiểu."
+
+#~ msgid "IDE"
+#~ msgstr "IDE"
+
+#~ msgid "SCSI"
+#~ msgstr "SCSI"
+
+#~ msgid "Device %s is neither a SCSI nor IDE drive."
+#~ msgstr "Thiết bị %s không phải là một ổ SCSI hay IDE."
+
+#~ msgid "Error reading %s (%s) to determine if partition is mounted."
+#~ msgstr "Lỗi đọc %s (%s) để xem đã gắn phân vùng hay chưa."
+
+#~ msgid ""
+#~ "Unable to determine if partitions are mounted via /proc/mounts or /etc/"
+#~ "mtab.  Make sure you don't attempt to resize or modify mounted file "
+#~ "systems.  (Even read-only mounted)"
+#~ msgstr ""
+#~ "Không nhận ra được các phân vùng đã gắn qua /proc/mounts hay /etc/ mtab "
+#~ "hay chưa.  Cần kiểm tra lại để chắc chắn là không thay đổi kích thước hay "
+#~ "sửa đổi của hệ thống tập tin đã gắn.  (Thậm chí cả khi gắn chỉ đọc)"
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  However, the most likely reason is that Linux "
+#~ "detected the BIOS geometry for %s incorrectly.  GNU Parted suspects the "
+#~ "real geometry should be %d/%d/%d (not %d/%d/%d).  You should check with "
+#~ "your BIOS first, as this may not be correct.  You can inform Linux by "
+#~ "adding the parameter %s=%d,%d,%d to the command line.  See the LILO or "
+#~ "GRUB documentation for more information.  If you think Parted's suggested "
+#~ "geometry is correct, you may select Ignore to continue (and fix Linux "
+#~ "later).  Otherwise, select Cancel (and fix Linux and/or the BIOS now)."
+#~ msgstr ""
+#~ "Bảng phân vùng trên %s đã thay đổi.  Có nhiều nguyên nhân của sự thay đổi "
+#~ "này.  Tuy nhiên, nguyên nhân có khả năng cao nhất là Linux đã nhận ra cấu "
+#~ "trúc hình học của BIOS cho %s bị sai.  GNU Parted cho rẳng cấu trúc thực "
+#~ "sự phải là %d/%d/%d (không phải %d/%d/%d).  Người dùng cần kiểm tra BIOS "
+#~ "của mình trước.  Có thể gửi tới Linux bằng tham số %s=%d,%d,%d trên dòng "
+#~ "lệnh.  Hãy xem tài liệu của LILO hay GRUB để biết thêm thông tin.  Nếu "
+#~ "người dùng cho rằng cấu trúc Parted đã đề nghị là sai, thì có thể chọn "
+#~ "Ignore (lờ đi) để tiếp tục (và sau đó sửa Linux).  Nếu không, hãy chọn "
+#~ "Cancel (Đóng) và sửa Linux và/hoặc BIOS ngay bây giờ."
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  Often, the reason is that Linux detected the "
+#~ "BIOS geometry incorrectly.  However, this does not appear to be the case "
+#~ "here.  It is safe to ignore,but ignoring may cause (fixable) problems "
+#~ "with some boot loaders, and may cause problems with FAT file systems.  "
+#~ "Using LBA is recommended."
+#~ msgstr ""
+#~ "Bảng phân vùng trên %s đã thay đổi.  Có nhiều nguyên nhân của sự thay đổi "
+#~ "này.  Thông thường, nguyên nhân là Linux đã nhận ra cấu trúc hình học của "
+#~ "BIOS bị sai.  Tuy nhiên, đây không phải là trường hợp như vậy.  Có thể lờ "
+#~ "đi, nhưng lờ đi có thể gây ra vấn đề (có thể sửa) với một số trình khởi "
+#~ "động, và tạo vấn đề với các hệ thống tập tin FAT.  Nên sử dụng LBA."
+
+#~ msgid ""
+#~ "Unable to align partition properly.  This probably means that another "
+#~ "partitioning tool generated an incorrect partition table, because it "
+#~ "didn't have the correct BIOS geometry.  It is safe to ignore,but ignoring "
+#~ "may cause (fixable) problems with some boot loaders."
+#~ msgstr ""
+#~ "Không sắp hàng đúng được các phân vùng.  Có thể một công cụ phân khác đã "
+#~ "tạo ra một bảng phân vùng sai, vì nó không có cấu trúc đúng của BIOS.  Có "
+#~ "thể lờ đi, nhưng lờ đi có thể sẽ gây vấn đề (có thể sửa) với một số trình "
+#~ "khởi động."
+
+#~ msgid "Attempt to read sectors %ld-%ld outside of partition on %s"
+#~ msgstr "Cố đọc các sector %ld-%ld nằm ngoài phân vùng trên %s"
+
+#~ msgid ""
+#~ "This ext2 filesystem has a rather strange layout!  Parted can't resize "
+#~ "this (yet)."
+#~ msgstr ""
+#~ "Hệ thống tập tin ext2 này có bố trí lạ!  Parted (tạm thời) không thể thay "
+#~ "đổi kích thước."
+
+#~ msgid "File system has an invalid signature for a FAT file systems."
+#~ msgstr "Hệ thống tập tin có chữ ký hệ thống tập tin FAT sai."
+
+#~ msgid ""
+#~ "Partition %s is being used.  Modifying it while it is in use could cause "
+#~ "severe corruption."
+#~ msgstr "Phân vùng %s đang được dùng.  Sửa đổi nó bây giờ có thể gây hỏng."
+
+#~ msgid ""
+#~ "You requested to create a partition at %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Người dùng đã yêu cầu tạo một phân vùng tại %.3f-%.3fMb. Vùng gần nhất "
+#~ "Parted có thể quản lý là %.3f-%.3fMb."
+
+#~ msgid ""
+#~ "You requested to move the partition to %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Người dùng đã yêu cầu di chuyển một phân vùng tới %.3f-%.3fMb. Vùng gần "
+#~ "nhất Parted có thể quản lý là %.3f-%.3fMb."
+
+#~ msgid "Disk geometry for %s: 0.000-%.3f megabytes\n"
+#~ msgstr "Cấu trúc hình học cho %s: 0.000-%.3f mêga byte\n"
+
+#~ msgid "Disk label type: %s\n"
+#~ msgstr "Dạng nhãn đĩa: %s\n"
+
+#~ msgid "Minor    Start       End     "
+#~ msgstr "Sốnhỏ    Đầu       Cuối     "
+
+#~ msgid "Type      "
+#~ msgstr "Dạng      "
+
+#~ msgid "Filesystem  "
+#~ msgstr "Httậptin  "
+
+#~ msgid "Name                  "
+#~ msgstr "Tên                  "
+
+#~ msgid ""
+#~ "You requested to resize the partition to %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "Người dùng đã yêu cầu thay đổi kích thước một phân vùng thành %.3f-"
+#~ "%.3fMb. Vùng gần nhất Parted có thể quản lý là %.3f-%.3fMb."
+
+#~ msgid "resize MINOR START END        resize filesystem on partition MINOR"
+#~ msgstr ""
+#~ "resize MINOR START END        thay đổi kích thước hệ thống tập tin trên "
+#~ "phân vùng MINOR"
+
+#~ msgid ""
+#~ "You found a bug in GNU Parted.  Please email a bug report to bug-"
+#~ "parted@gnu.org containing the version (%s), and the following message:\n"
+#~ msgstr ""
+#~ "Bạn tìm thấy một lỗi bug trong GNU Parted.  Xin hãy gửi email báo cáo lỗi "
+#~ "tới bug-parted@gnu.org kèm theo phiên bản (%s), và thông báo sau:\n"
+
+#~ msgid ""
+#~ "  You have Windows FAT partition(s) that are not using LBA.  If your BIOS "
+#~ "supports LBA, then you should switch to LBA by setting the LBA flag on "
+#~ "all FAT partitions.  Otherwise, make sure the operating system and the "
+#~ "BIOS have the same geometry before resizing any FAT partitions."
+#~ msgstr ""
+#~ "  Người dùng có các phân vùng FAT của Windows không sử dụng LBA.  Nếu "
+#~ "BIOS hỗ trợ LBA, thì cần chuyển tới LBA bằng thiết lập cờ LBA trên tất cả "
+#~ "các phân vùng FAT.  Nếu không, cần chắc là hệ điều hành và BIOS có cùng "
+#~ "cấu trúc hình học của đĩa trước khi thay đổi kích thước bất kỳ phân vùng "
+#~ "FAT nào."
+
+#~ msgid ""
+#~ "The operating system thinks the geometry on %s is %d/%d/%d.  Therefore, "
+#~ "cylinder 1024 ends at %.3fM.%s"
+#~ msgstr ""
+#~ "Hệ điều hành nghĩ là hình học trên %s là %d/%d/%d.  Tuy nhiên, cylinder "
+#~ "số 1024 kết thúc tại %.3fM.%s"
+
+#~ msgid "The operating system thinks the geometry on %s is %d/%d/%d.%s"
+#~ msgstr "Hệ điều hành nghĩ là hình học trên %s là %d/%d/%d.%s"
diff --git a/parted-1.8.7/po/zh_CN.gmo b/parted-1.8.7/po/zh_CN.gmo
new file mode 100644
index 0000000..235dac4
--- /dev/null
+++ b/parted-1.8.7/po/zh_CN.gmo
Binary files differ
diff --git a/parted-1.8.7/po/zh_CN.po b/parted-1.8.7/po/zh_CN.po
new file mode 100644
index 0000000..0da7851
--- /dev/null
+++ b/parted-1.8.7/po/zh_CN.po
@@ -0,0 +1,3221 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# Wang Li <charles@linux.net.cn>, 2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: parted 1.6.6\n"
+"Report-Msgid-Bugs-To: bug-parted@gnu.org\n"
+"POT-Creation-Date: 2007-05-09 17:02-0400\n"
+"PO-Revision-Date: 2003-08-01 11:27+0800\n"
+"Last-Translator: Wang Li <charles@linux.net.cn>\n"
+"Language-Team: Chinese (simplified) <i18n-translation@lists.linux.net.cn>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=gb2312\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/closeout.c:74
+msgid "write error"
+msgstr ""
+
+#: lib/error.c:125
+#, fuzzy
+msgid "Unknown system error"
+msgstr "δ֪µÄÎļþϵͳÀàÐÍ¡°%s¡±¡£"
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK).  A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#.
+#. If you don't know what to put here, please see
+#. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr ""
+
+#: lib/regcomp.c:131
+msgid "Success"
+msgstr ""
+
+#: lib/regcomp.c:134
+msgid "No match"
+msgstr ""
+
+#: lib/regcomp.c:137
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regcomp.c:140
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regcomp.c:143
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regcomp.c:146
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regcomp.c:149
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regcomp.c:152
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regcomp.c:155
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regcomp.c:158
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regcomp.c:161
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regcomp.c:164
+msgid "Invalid range end"
+msgstr ""
+
+#: lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regcomp.c:170
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regcomp.c:173
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regcomp.c:176
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regcomp.c:179
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regcomp.c:680
+msgid "No previous regular expression"
+msgstr ""
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr ""
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:66
+msgid "(C)"
+msgstr ""
+
+#: lib/version-etc.c:68
+msgid ""
+"\n"
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:84
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:88
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:92
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:98
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:104
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:110
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:132
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+
+#: lib/xalloc-die.c:35
+msgid "memory exhausted"
+msgstr ""
+
+#: libparted/arch/beos.c:237
+msgid "Disk Image"
+msgstr ""
+
+#: libparted/arch/beos.c:338 libparted/arch/gnu.c:261
+#: libparted/arch/linux.c:1272
+#, c-format
+msgid "Error opening %s: %s"
+msgstr "´ò¿ª %s ³ö´í£º%s"
+
+#: libparted/arch/beos.c:349 libparted/arch/gnu.c:271
+#: libparted/arch/linux.c:1283
+#, c-format
+msgid "Unable to open %s read-write (%s).  %s has been opened read-only."
+msgstr "ÎÞ·¨ÒÔ¶Áд·½Ê½´ò¿ª %s (%s)¡£%s ÒÑ°´ÕÕÖ»¶Á·½Ê½´ò¿ª¡£"
+
+#: libparted/arch/beos.c:411 libparted/arch/linux.c:1431
+#, c-format
+msgid "%s during seek for read on %s"
+msgstr "ÔÚΪ¶ÁÈ¡ %2$s ¶øµ÷Óà seek ʱ %1$s"
+
+#: libparted/arch/beos.c:444 libparted/arch/gnu.c:449 libparted/arch/gnu.c:548
+#: libparted/arch/gnu.c:676 libparted/arch/linux.c:1391
+#: libparted/arch/linux.c:1469
+#, c-format
+msgid "%s during read on %s"
+msgstr "ÔÚ¶ÁÈ¡ %2$s ÆÚ¼ä %1$s"
+
+#: libparted/arch/beos.c:480 libparted/arch/gnu.c:509
+#: libparted/arch/linux.c:1546
+#, c-format
+msgid "Can't write to %s, because it is opened read-only."
+msgstr "ÓÉÓÚ %s ÊÇÒÔÖ»¶Á·½Ê½´ò¿ªµÄ£¬Òò´ËÎÞ·¨Ð´Èë¡£"
+
+#: libparted/arch/beos.c:496 libparted/arch/linux.c:1570
+#, c-format
+msgid "%s during seek for write on %s"
+msgstr "ÔÚΪдÈë %2$s µ÷Óà seek ʱ %1$s"
+
+#: libparted/arch/beos.c:533 libparted/arch/gnu.c:585 libparted/arch/gnu.c:630
+#: libparted/arch/gnu.c:707 libparted/arch/linux.c:1517
+#: libparted/arch/linux.c:1612 libparted/arch/linux.c:1684
+#, c-format
+msgid "%s during write on %s"
+msgstr "ÔÚдÈë %2$s ʱ %1$s"
+
+#: debug/clearfat/clearfat.c:63 partprobe/partprobe.c:137
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:67
+#, c-format
+msgid ""
+"Usage: %s [OPTION]\n"
+"  or:  %s DEVICE MINOR\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:70
+msgid ""
+"Clear unused space on a FAT partition (a GNU Parted testing tool).\n"
+"\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:74
+msgid "      --help     display this help and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:75
+msgid "      --version  output version information and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:77 partprobe/partprobe.c:154
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:285
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:290
+#, fuzzy, c-format
+msgid "too many arguments"
+msgstr "¹ý¶àµÄ»µÒ³¡£"
+
+#: partprobe/partprobe.c:141
+#, c-format
+msgid "Usage: %s [OPTION] [DEVICE]...\n"
+msgstr ""
+
+#: partprobe/partprobe.c:142
+msgid ""
+"Inform the OS of partition table changes.\n"
+"\n"
+"  -d, --no-update  don't update the kernel\n"
+"  -s, --summary    print a summary of contents\n"
+"  -h, --help       display this help and exit\n"
+"  -v, --version    output version information and exit\n"
+msgstr ""
+
+#: partprobe/partprobe.c:150
+msgid ""
+"\n"
+"With no DEVICE, probe all partitions.\n"
+msgstr ""
+
+#: libparted/arch/gnu.c:94
+#, c-format
+msgid "Unable to open %s."
+msgstr "ÎÞ·¨´ò¿ª %s¡£"
+
+#: libparted/arch/gnu.c:114
+msgid "Unable to probe store."
+msgstr "ÎÞ·¨Ì½²â´æ´¢É豸¡£"
+
+#: libparted/arch/gnu.c:352
+#, fuzzy
+msgid ""
+"The partition table cannot be re-read.  This means you need to reboot before "
+"mounting any modified partitions.  You also need to reinstall your boot "
+"loader before you reboot (which may require mounting modified partitions).  "
+"It is impossible do both things!  So you'll need to boot off a rescue disk, "
+"and reinstall your boot loader from the rescue disk.  Read section 4 of the "
+"Parted User documentation for more information."
+msgstr ""
+"ÎÞ·¨ÖØжÁÈë·ÖÇø±í£¬Í¬Ñù£¬Äú±ØÐëÔÚ¼ÓÔØÈκÎÐÞ¸ÄÁ˵ķÖÇø֮ǰÖØÐÂÆô¶¯¡£Äú»¹ÐèÒª"
+"ÔÚÄúÖØÐÂÆô¶¯Ö®Ç°ÖØа²×°Æô¶¯¹ÜÀíÆ÷ (Ëü¿ÉÄÜÐèÒª¼ÓÔØÐÞ¸ÄÁ˵ķÖÇø)¡£Í¬Ê±×öÕâÁ½¼þ"
+"ÊÂÊDz»¿ÉÄܵģ¡ËùÒÔÄú¾ÍÐèÒª´Ó¼±¾ÈÅÌÆô¶¯£¬²¢´Ó¼±¾ÈÅÌÖØа²×°ÄúµÄÆô¶¯¹ÜÀíÆ÷¡£¸ü"
+"¶àÏêÇéÇë²ÎÔÄ Parted Óû§ÎĵµµÄµÚËĽڡ£"
+
+#: libparted/arch/gnu.c:369
+#, fuzzy, c-format
+msgid ""
+"The partition table on %s cannot be re-read (%s).  This means the Hurd knows "
+"nothing about any modifications you made.  You should reboot your computer "
+"before doing anything with %s."
+msgstr ""
+"%s (%s) ÉϵķÖÇø±í¡£ÕâÒâζ×Å Hurd ²»ÖªµÀÈκÎÄúËù×÷µÄÐ޸ġ£ÄúÓ¦¸ÃÔÚ¶Ô %s ×öÈÎ"
+"ºÎ²Ù×÷֮ǰÖØÐÂÆô¶¯ÄúµÄ¼ÆËã»ú¡£"
+
+#: libparted/arch/gnu.c:380 parted/parted.c:2443
+msgid ""
+"You should reinstall your boot loader before rebooting.  Read section 4 of "
+"the Parted User documentation for more information."
+msgstr ""
+"ÄúÓ¦¸ÃÔÚÖØÐÂÆô¶¯Ö®Ç°ÖØа²×°ÄúµÄÆô¶¯¹ÜÀíÆ÷¡£ÏêÇéÇëÔĶÁ Parted Óû§ÎĵµµÄµÚËÄ"
+"½Ú¡£"
+
+#: libparted/arch/gnu.c:772
+#, c-format
+msgid "%s trying to sync %s to disk"
+msgstr "%s ÊÔͼ½« %s ͬ²½µ½´ÅÅÌÉÏ"
+
+#: libparted/arch/linux.c:408
+#, c-format
+msgid "Could not stat device %s - %s."
+msgstr "ÎÞ·¨¶ÔÉ豸 %s - %s ×ö stat ²Ù×÷¡£"
+
+#: libparted/arch/linux.c:523
+#, c-format
+msgid ""
+"Could not determine sector size for %s: %s.\n"
+"Using the default sector size (%lld)."
+msgstr ""
+
+#: libparted/arch/linux.c:539
+#, c-format
+msgid ""
+"Device %s has a logical sector size of %lld.  Not all parts of GNU Parted "
+"support this at the moment, and the working code is HIGHLY EXPERIMENTAL.\n"
+msgstr ""
+
+#: libparted/arch/linux.c:579
+#, fuzzy, c-format
+msgid "Unable to determine the size of %s (%s)."
+msgstr "ÎÞ·¨È·¶¨ %s (%s) µÄ´óС"
+
+#: libparted/arch/linux.c:668
+#, c-format
+msgid "Could not get identity of device %s - %s"
+msgstr "ÎÞ·¨»ñÈ¡É豸 %s - %s µÄ±êʶ"
+
+#: libparted/arch/linux.c:677
+msgid "Generic IDE"
+msgstr ""
+
+#: libparted/arch/linux.c:698
+#, c-format
+msgid ""
+"Device %s has multiple (%d) logical sectors per physical sector.\n"
+"GNU Parted supports this EXPERIMENTALLY for some special disk label/file "
+"system combinations, e.g. GPT and ext2/3.\n"
+"Please consult the web site for up-to-date information."
+msgstr ""
+
+#: libparted/arch/linux.c:873
+#, c-format
+msgid "Error initialising SCSI device %s - %s"
+msgstr "³õʼ»¯ SCSI É豸 %s - %s ³ö´í"
+
+#: libparted/arch/linux.c:928
+#, fuzzy, c-format
+msgid ""
+"The device %s has zero length, and can't possibly store a file system or "
+"partition table.  Perhaps you selected the wrong device?"
+msgstr ""
+"É豸 %s µÄ³¤¶ÈΪÁ㣬Òò´ËÎÞ·¨±£´æÎļþϵͳ»ò·ÖÇø±í¡£¿ÉÄÜÄúÑ¡ÔñÁË´íÎóµÄÉ豸£¿"
+
+#: libparted/arch/linux.c:1032
+#, fuzzy, c-format
+msgid ""
+"Unable to determine geometry of file/device %s.  You should not use Parted "
+"unless you REALLY know what you're doing!"
+msgstr ""
+"ÎÞ·¨È·¶¨Îļþ/É豸µÄ¼¸ºÎ½á¹¹¡£³ý·ÇÄúȷʵ֪µÀÄúÔÚ×öʲô£¬·ñÔòÄú²»¸ÃʹÓà "
+"Parted£¡"
+
+#: libparted/arch/linux.c:1110
+msgid "DAC960 RAID controller"
+msgstr "DAC960 RAID ¿ØÖÆÆ÷"
+
+#: libparted/arch/linux.c:1115
+msgid "Promise SX8 SATA Device"
+msgstr ""
+
+#: libparted/arch/linux.c:1120
+msgid "IBM S390 DASD drive"
+msgstr ""
+
+#: libparted/arch/linux.c:1125
+msgid "IBM iSeries Virtual DASD"
+msgstr ""
+
+#: libparted/arch/linux.c:1130
+msgid "Compaq Smart Array"
+msgstr "Compaq ÖÇÄÜÕóÁÐ"
+
+#: libparted/arch/linux.c:1135
+msgid "ATARAID Controller"
+msgstr "ATARAID ¿ØÖÆÆ÷"
+
+#: libparted/arch/linux.c:1140
+msgid "I2O Controller"
+msgstr "I2O ¿ØÖÆÆ÷"
+
+#: libparted/arch/linux.c:1145
+msgid "User-Mode Linux UBD"
+msgstr ""
+
+#: libparted/arch/linux.c:1156
+msgid "Linux device-mapper"
+msgstr ""
+
+#: libparted/arch/linux.c:1162
+msgid "Unknown"
+msgstr "δ֪"
+
+#: libparted/arch/linux.c:1169
+msgid "ped_device_new()  Unsupported device type"
+msgstr "ped_device_new()  ²»Ö§³ÖµÄÉ豸ÀàÐÍ"
+
+#: libparted/arch/linux.c:2083
+#, fuzzy, c-format
+msgid ""
+"Error informing the kernel about modifications to partition %s -- %s.  This "
+"means Linux won't know about any changes you made to %s until you reboot -- "
+"so you shouldn't mount it or use it in any way before rebooting."
+msgstr ""
+"֪ͨÄں˹ØÓÚ·ÖÇø %s - %s µÄÐÞ¸Äʱ³ö´í¡£ÕâÒâζ×Å Linux ÔÚÖØÐÂÆô¶¯Ö®Ç°ÎÞ·¨ÖªµÀ"
+"ÄúÕë¶Ô %s Ëù×÷µÄÈκÎÐÞ¸Ä - ËùÒÔÄúÒ²²»ÄÜÔÚÖØÐÂÆô¶¯Ö®Ç°¼ÓÔØ»òÒÔÈκη½Ê½Ê¹ÓÃËü¡£"
+
+#: libparted/arch/linux.c:2262
+#, fuzzy, c-format
+msgid ""
+"parted was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made. "
+msgstr ""
+"ÄÚºËÎÞ·¨ÖØжÁÈ¡ %s (%s) ÉϵķÖÇø±í¡£ÕâÒâζÕâ Linux ÔÚÄúÖØÐÂÆô¶¯Ö®Ç°ÎÞ·¨ÖªµÀ"
+"ÈκÎÐ޸ġ£ÄúÓ¦¸ÃÔÚ¶Ô %s ×öÈκβÙ×÷  ֮ǰÖØÐÂÆô¶¯ÄúµÄ¼ÆËã»ú¡£"
+
+#: libparted/arch/linux.c:2368
+#, fuzzy, c-format
+msgid ""
+"The kernel was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made until you "
+"reboot.  You should reboot your computer before doing anything with %s."
+msgstr ""
+"ÄÚºËÎÞ·¨ÖØжÁÈ¡ %s (%s) ÉϵķÖÇø±í¡£ÕâÒâζÕâ Linux ÔÚÄúÖØÐÂÆô¶¯Ö®Ç°ÎÞ·¨ÖªµÀ"
+"ÈκÎÐ޸ġ£ÄúÓ¦¸ÃÔÚ¶Ô %s ×öÈκβÙ×÷  ֮ǰÖØÐÂÆô¶¯ÄúµÄ¼ÆËã»ú¡£"
+
+#: libparted/cs/geom.c:162
+msgid "Can't have the end before the start!"
+msgstr "ÎÞ·¨ÔÚ¿ªÊ¼Ö®Ç°½áÊø£¡"
+
+#: libparted/cs/geom.c:169
+msgid "Can't have a partition outside the disk!"
+msgstr "ÎÞ·¨È÷ÖÇø³¬³ö´ÅÅÌ£¡"
+
+#: libparted/cs/geom.c:366
+#, fuzzy, c-format
+msgid "Attempt to write sectors %ld-%ld outside of partition on %s."
+msgstr "ÊÔͼдÈë %3$s ÉÏ·ÖÇøÖ®ÍâµÄÉÈÇø %1$ld-%2$ld"
+
+#: libparted/cs/geom.c:406 libparted/fs/linux_swap/linux_swap.c:475
+msgid "checking for bad blocks"
+msgstr "¼ì²é»µ¿é"
+
+#: libparted/debug.c:102
+#, c-format
+msgid "Backtrace has %d calls on stack:\n"
+msgstr ""
+
+#: libparted/debug.c:114
+#, c-format
+msgid "Assertion (%s) at %s:%d in function %s() failed."
+msgstr ""
+
+#: libparted/disk.c:203
+#, c-format
+msgid "Unable to open %s - unrecognised disk label."
+msgstr "ÎÞ·¨´ò¿ª %s - ÎÞ·¨Ê¶±ðµÄ´ÅÅ̱êÇ©¡£"
+
+#: libparted/disk.c:471
+#, c-format
+msgid ""
+"This libparted doesn't have write support for %s.  Perhaps it was compiled "
+"read-only."
+msgstr "Õâ¸ö libparted ²»Ö§³Ö¶Ô %s µÄд²Ù×÷¡£¿ÉÄÜËüÊÇ°´Ö»¶Á·½Ê½±àÒëµÄ¡£"
+
+#: libparted/disk.c:598
+#, fuzzy, c-format
+msgid "Partition %d is %s, but the file system is %s."
+msgstr "·ÖÇø %d Ϊ %.3fMb£¬µ«ÎļþϵͳΪ %.3fMb¡£"
+
+#: libparted/disk.c:1075
+#, c-format
+msgid "%s disk labels do not support extended partitions."
+msgstr "%s ´ÅÅ̱êÇ©²»Ö§³ÖÀ©Õ¹·ÖÇø¡£"
+
+#: libparted/disk.c:1634
+#, c-format
+msgid "%s disk labels don't support logical or extended partitions."
+msgstr "%s ´ÅÅ̱êÇ©²»Ö§³ÖÂß¼­»òÀ©Õ¹·ÖÇø¡£"
+
+#: libparted/disk.c:1647
+#, fuzzy
+msgid "Too many primary partitions."
+msgstr "¹ý¶àµÄÖ÷·ÖÇø"
+
+#: libparted/disk.c:1656
+#, c-format
+msgid ""
+"Can't add a logical partition to %s, because there is no extended partition."
+msgstr "ÓÉÓÚûÓÐÀ©Õ¹·ÖÇø£¬ÎÞ·¨½«Âß¼­·ÖÇøÌí¼Óµ½ %s¡£"
+
+#: libparted/disk.c:1680
+#, fuzzy, c-format
+msgid "Can't have more than one extended partition on %s."
+msgstr "%s Éϲ»Äܺ¬ÓжàÓÚÒ»¸öÀ©Õ¹·ÖÇø"
+
+#: libparted/disk.c:1690
+msgid "Can't have logical partitions outside of the extended partition."
+msgstr "Âß¼­·ÖÇø²»ÄÜ´¦ÓÚÀ©Õ¹·ÖÇøÖ®Íâ¡£"
+
+#: libparted/disk.c:1715
+#, c-format
+msgid "Can't have a logical partition outside of the extended partition on %s."
+msgstr "%s ÉϵÄÂß¼­·ÖÇø²»ÄÜ´¦ÓÚÀ©Õ¹·ÖÇøÖ®Íâ¡£"
+
+#: libparted/disk.c:1725 libparted/disk.c:1779 libparted/disk.c:1945
+#, fuzzy
+msgid "Can't have overlapping partitions."
+msgstr "·ÖÇø²»ÄÜÖصþ"
+
+#: libparted/disk.c:1733
+msgid "Can't have a primary partition inside an extended partition."
+msgstr "À©Õ¹·ÖÇøÖв»Äܺ¬ÓÐÖ÷·ÖÇø¡£"
+
+#: libparted/disk.c:2140
+msgid "metadata"
+msgstr "ÔªÊý¾Ý"
+
+#: libparted/disk.c:2142
+msgid "free"
+msgstr "¿ÕÏпռä"
+
+#: libparted/disk.c:2144 parted/ui.c:1169 parted/ui.c:1197
+msgid "extended"
+msgstr "À©Õ¹·ÖÇø"
+
+#: libparted/disk.c:2146 parted/ui.c:1173 parted/ui.c:1201
+msgid "logical"
+msgstr "Âß¼­·ÖÇø"
+
+#: libparted/disk.c:2148 parted/ui.c:1165 parted/ui.c:1193
+msgid "primary"
+msgstr "Ö÷·ÖÇø"
+
+#: libparted/disk.c:2164
+msgid "boot"
+msgstr "Æô¶¯"
+
+#: libparted/disk.c:2166
+msgid "root"
+msgstr "¸ù"
+
+#: libparted/disk.c:2168
+msgid "swap"
+msgstr "¶Ô»»·ÖÇø"
+
+#: libparted/disk.c:2170
+msgid "hidden"
+msgstr "Òþ²Ø·ÖÇø"
+
+#: libparted/disk.c:2172
+msgid "raid"
+msgstr "raid"
+
+#: libparted/disk.c:2174
+msgid "lvm"
+msgstr "lvm"
+
+#: libparted/disk.c:2176
+msgid "lba"
+msgstr "lba"
+
+#: libparted/disk.c:2178
+msgid "hp-service"
+msgstr ""
+
+#: libparted/disk.c:2180
+msgid "palo"
+msgstr ""
+
+#: libparted/disk.c:2182
+msgid "prep"
+msgstr ""
+
+#: libparted/disk.c:2184
+msgid "msftres"
+msgstr ""
+
+#: libparted/disk.c:2190
+#, c-format
+msgid "Unknown partition flag, %d."
+msgstr ""
+
+#: libparted/exception.c:78
+msgid "Information"
+msgstr "ÐÅÏ¢"
+
+#: libparted/exception.c:79
+msgid "Warning"
+msgstr "¾¯¸æ"
+
+#: libparted/exception.c:80
+msgid "Error"
+msgstr "´íÎó"
+
+#: libparted/exception.c:81
+msgid "Fatal"
+msgstr "ÖÂÃü´íÎó"
+
+#: libparted/exception.c:82
+msgid "Bug"
+msgstr "Bug"
+
+#: libparted/exception.c:83
+msgid "No Implementation"
+msgstr "δʵÏÖ"
+
+#: libparted/exception.c:87
+msgid "Fix"
+msgstr "ÐÞÕý"
+
+#: libparted/exception.c:88
+msgid "Yes"
+msgstr "ÊÇ"
+
+#: libparted/exception.c:89
+msgid "No"
+msgstr "·ñ"
+
+#: libparted/exception.c:90
+msgid "OK"
+msgstr "È·ÈÏ"
+
+#: libparted/exception.c:91
+msgid "Retry"
+msgstr "ÖØÊÔ"
+
+#: libparted/exception.c:92
+msgid "Ignore"
+msgstr "ºöÂÔ"
+
+#: libparted/exception.c:93
+msgid "Cancel"
+msgstr "·ÅÆú"
+
+#: libparted/exception.c:133
+#, fuzzy, c-format
+msgid ""
+"A bug has been detected in GNU Parted.  Refer to the web site of parted "
+"http://www.gnu.org/software/parted/parted.html for more informations of what "
+"could be useful for bug submitting!  Please email a bug report to bug-"
+"parted@gnu.org containing at least the version (%s) and the following "
+"message:  "
+msgstr ""
+"·¢ÏÖ GNU Parted ÖÐµÄ bug¡£Ç뽫º¬Óа汾 (%s) ºÍÒÔÏÂÐÅÏ¢µÄ bug ±¨¸æ·¢Ë͵½ bug-"
+"parted@gnu.org£º"
+
+#: libparted/filesys.c:384
+msgid "Could not detect file system."
+msgstr "ÎÞ·¨¼ì²âÎļþϵͳ¡£"
+
+#: libparted/filesys.c:395
+#, fuzzy
+msgid "The file system is bigger than its volume!"
+msgstr "Îļþϵͳ±ÈËüµÄ¾í»¹´ó£¡"
+
+#: libparted/filesys.c:403
+#, c-format
+msgid "Support for opening %s file systems is not implemented yet."
+msgstr "¹ØÓÚ´ò¿ª %s ÎļþϵͳµÄÖ§³ÖÉÐδʵÏÖ¡£"
+
+#: libparted/filesys.c:445
+#, c-format
+msgid "Support for creating %s file systems is not implemented yet."
+msgstr "¹ØÓÚ´´½¨ %s ÎļþϵͳµÄÖ§³ÖÉÐδʵÏÖ¡£"
+
+#: libparted/filesys.c:505
+#, c-format
+msgid "Support for checking %s file systems is not implemented yet."
+msgstr "¹ØÓÚ¼ì²é %s ÎļþϵͳµÄÖ§³ÖÉÐδʵÏÖ¡£"
+
+#: libparted/filesys.c:571
+msgid "raw block copying"
+msgstr "ԭʼ¿é¸´ÖÆ"
+
+#: libparted/filesys.c:582
+msgid "growing file system"
+msgstr "ÕýÔÚÀ©´óÎļþϵͳ"
+
+#: libparted/filesys.c:622
+msgid "Can't copy onto an overlapping partition."
+msgstr "ÎÞ·¨¸´ÖƵ½ÖصþµÄ·ÖÇø¡£"
+
+#: libparted/filesys.c:644
+#, fuzzy, c-format
+msgid ""
+"Direct support for copying file systems is not yet implemented for %s.  "
+"However, support for resizing is implemented.  Therefore, the file system "
+"can be copied if the new partition is at least as big as the old one.  So, "
+"either shrink the partition you are trying to copy, or copy to a bigger "
+"partition."
+msgstr ""
+"¶Ô %s À´ËµÉв»Ö§³ÖÖ±½ÓµÄÎļþϵͳ¸´ÖÆ¡£µ«Ö§³Ö¸Ä±ä´óС¡£Òò´Ë£¬Ö»ÒªÐ·ÖÇø±ÈÔ­·Ö"
+"Çø´ó£¬¾ÍÄܹ»¸´ÖÆÎļþϵͳ¡£ËùÒÔ£¬ËõСÄúÊÔͼ¸´ÖƵķÖÇø£¬»ò¸´ÖƵ½½Ï´óµÄ·ÖÇø¡£"
+
+#: libparted/filesys.c:658
+#, c-format
+msgid "Support for copying %s file systems is not implemented yet."
+msgstr "¹ØÓÚ¸´ÖÆ %s ÎļþϵͳµÄÖ§³ÖÉÐδʵÏÖ¡£"
+
+#: libparted/filesys.c:696
+#, c-format
+msgid "Support for resizing %s file systems is not implemented yet."
+msgstr "¸Ä±ä %s ÎļþϵͳµÄÖ§³ÖÉÐδʵÏÖ¡£"
+
+#: libparted/fs/reiserfs/reiserfs.c:315
+msgid "creating"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:402
+#, fuzzy
+msgid "The file system is in an invalid state.  Perhaps it is mounted?"
+msgstr "Îļþϵͳ±ÈËüµÄ¾í»¹´ó£¡"
+
+#: libparted/fs/reiserfs/reiserfs.c:410
+msgid "The file system is in old (unresizeable) format."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:416
+msgid "Invalid free blocks count.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:431
+#, fuzzy
+msgid "checking"
+msgstr "¼ì²é"
+
+#: libparted/fs/reiserfs/reiserfs.c:437
+msgid "Reiserfs tree seems to be corrupted.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:449
+#, fuzzy
+msgid ""
+"The reiserfs file system passed a basic check.  For a more comprehensive "
+"check, run reiserfsck --check."
+msgstr "ext2 Îļþϵͳͨ¹ý»ù±¾¼ì²é¡£ÖÁÓÚ¸ü¸ºÔصļì²é£¬Ê¹Óà e2fsck ³ÌÐò¡£"
+
+#: libparted/fs/reiserfs/reiserfs.c:474
+#, fuzzy
+msgid "Sorry, can't move the start of reiserfs partitions yet."
+msgstr "´íÎó£¬ÉÐÎÞ·¨Òƶ¯ ext2 ·ÖÇøµÄÆðµã£¡"
+
+#: libparted/fs/reiserfs/reiserfs.c:490
+msgid "Couldn't reopen device abstraction layer for read/write."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:508 libparted/fs/ext2/ext2_resize.c:552
+#: libparted/fs/hfs/hfs.c:250 libparted/fs/hfs/hfs.c:629
+msgid "shrinking"
+msgstr "ÕýÔÚËõС"
+
+#: libparted/fs/reiserfs/reiserfs.c:520
+#, fuzzy
+msgid "expanding"
+msgstr "¾¯¸æ"
+
+#: libparted/fs/reiserfs/reiserfs.c:592
+msgid "Couldn't create reiserfs device abstraction handler."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:606
+#, fuzzy, c-format
+msgid "Device is too small for %lu blocks."
+msgstr "¶Ô ext2 À´ËµÎļþϵͳ¹ýС¡£"
+
+#: libparted/fs/reiserfs/reiserfs.c:615
+msgid "copying"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:682
+#, c-format
+msgid "Couldn't resolve symbol %s.  Error: %s."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:704
+msgid "GNU Parted found an invalid libreiserfs library."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:715
+#, c-format
+msgid ""
+"GNU Parted has detected libreiserfs interface version mismatch.  Found %d-%"
+"d, required %d. ReiserFS support will be disabled."
+msgstr ""
+
+#: libparted/labels/aix.c:137
+#, fuzzy
+msgid "Support for reading AIX disk labels is is not implemented yet."
+msgstr "¹ØÓÚ´´½¨ %s ÎļþϵͳµÄÖ§³ÖÉÐδʵÏÖ¡£"
+
+#: libparted/labels/aix.c:148
+#, fuzzy
+msgid "Support for writing AIX disk labels is is not implemented yet."
+msgstr "¹ØÓÚ´´½¨ %s ÎļþϵͳµÄÖ§³ÖÉÐδʵÏÖ¡£"
+
+#: libparted/labels/aix.c:161
+#, fuzzy
+msgid ""
+"Support for adding partitions to AIX disk labels is not implemented yet."
+msgstr "¹ØÓÚ´´½¨ %s ÎļþϵͳµÄÖ§³ÖÉÐδʵÏÖ¡£"
+
+#: libparted/labels/aix.c:171
+#, fuzzy
+msgid ""
+"Support for duplicating partitions in AIX disk labels is not implemented yet."
+msgstr "¹ØÓÚ´´½¨ %s ÎļþϵͳµÄÖ§³ÖÉÐδʵÏÖ¡£"
+
+#: libparted/labels/aix.c:189
+#, fuzzy
+msgid ""
+"Support for setting system type of partitions in AIX disk labels is not "
+"implemented yet."
+msgstr "¹ØÓÚ´´½¨ %s ÎļþϵͳµÄÖ§³ÖÉÐδʵÏÖ¡£"
+
+#: libparted/labels/aix.c:199
+#, fuzzy
+msgid "Support for setting flags in AIX disk labels is not implemented yet."
+msgstr "¹ØÓÚ´´½¨ %s ÎļþϵͳµÄÖ§³ÖÉÐδʵÏÖ¡£"
+
+#: libparted/labels/bsd.c:501 libparted/labels/dasd.c:755
+#: libparted/labels/dos.c:1974 libparted/labels/dvh.c:770
+#: libparted/labels/gpt.c:1448 libparted/labels/loop.c:248
+#: libparted/labels/mac.c:1408 libparted/labels/pc98.c:759
+#: libparted/labels/rdb.c:1041 libparted/labels/sun.c:705
+msgid "Unable to satisfy all constraints on the partition."
+msgstr "ÎÞ·¨Âú×ã·ÖÇøµÄËùÓÐÏÞÖÆ¡£"
+
+#: libparted/labels/bsd.c:526
+#, fuzzy
+msgid "Unable to allocate a bsd disklabel slot."
+msgstr "È¡·¨¶¨Î» bsd ´ÅÅ̱êÇ©²Û"
+
+#: libparted/labels/dasd.c:166
+#, fuzzy
+msgid "Unable to determine the block size of this dasd"
+msgstr "ÎÞ·¨È·¶¨ %s (%s) µÄ´óС"
+
+#: libparted/labels/dasd.c:781
+#, fuzzy
+msgid "Unable to allocate a dasd disklabel slot"
+msgstr "È¡·¨¶¨Î» bsd ´ÅÅ̱êÇ©²Û"
+
+#: libparted/labels/dos.c:827
+#, fuzzy, c-format
+msgid "Invalid partition table on %s -- wrong signature %x."
+msgstr "%s ÉϵķÖÇø±íÎÞЧ - ´íÎóµÄÇ©Ãû %x"
+
+#: libparted/labels/dos.c:855
+#, c-format
+msgid "Invalid partition table - recursive partition on %s."
+msgstr "ÎÞЧµÄ·ÖÇø±í - %s ³öÏֵݹé·ÖÇø¡£"
+
+#: libparted/labels/dos.c:1318
+msgid "Extended partitions cannot be hidden on msdos disk labels."
+msgstr ""
+
+#: libparted/labels/dos.c:1958
+msgid "Parted can't resize partitions managed by Windows Dynamic Disk."
+msgstr ""
+
+#: libparted/labels/dvh.c:190
+#, fuzzy, c-format
+msgid "%s has no extended partition (volume header partition)."
+msgstr "%s ûÓÐÀ©Õ¹·ÖÇø (¾íÍ··ÖÇø)¡£Èç¹ûÄúºöÂÔ£¬½«É¾³ýËùÓÐÆô¶¯¾í¡£"
+
+#: libparted/labels/dvh.c:313
+msgid "Checksum is wrong, indicating the partition table is corrupt."
+msgstr "УÑéºÍ´íÎ󣬱êÃ÷·ÖÇø±íÒÑË𻵡£"
+
+#: libparted/labels/dvh.c:616
+msgid "Only primary partitions can be root partitions."
+msgstr "Ö»ÓÐÖ÷·ÖÇø¿ÉÒÔÊǸù·ÖÇø¡£"
+
+#: libparted/labels/dvh.c:630
+msgid "Only primary partitions can be swap partitions."
+msgstr "Ö»ÓÐÖ÷·ÖÇø¿ÉÒÔÊǶԻ»·ÖÇø¡£"
+
+#: libparted/labels/dvh.c:644
+msgid "Only logical partitions can be a boot file."
+msgstr "Ö»ÓÐÂß¼­·ÖÇø¿ÉÒÔÊÇÆô¶¯Îļþ¡£"
+
+#: libparted/labels/dvh.c:721
+msgid "Only logical partitions (boot files) have a name."
+msgstr "Ö»ÓÐÂß¼­·ÖÇø (Æô¶¯Îļþ) ÓµÓÐÃû×Ö¡£"
+
+#: libparted/labels/dvh.c:812
+msgid "Too many primary partitions"
+msgstr "¹ý¶àµÄÖ÷·ÖÇø"
+
+#: libparted/labels/fdasd.c:103
+#, c-format
+msgid ""
+"%s open error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:107
+#, c-format
+msgid ""
+"%s seek error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:110
+#, c-format
+msgid ""
+"%s read error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:113
+#, fuzzy, c-format
+msgid ""
+"%s write error\n"
+"%s\n"
+msgstr "ÔÚдÈë %2$s ʱ %1$s"
+
+#: libparted/labels/fdasd.c:116
+#, c-format
+msgid ""
+"%s IOCTL error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:119
+#, c-format
+msgid ""
+"%s API version mismatch\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:122
+#, c-format
+msgid ""
+"%s Unsupported disk type\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:126
+#, c-format
+msgid ""
+"%s Unsupported disk format\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:130
+#, fuzzy, c-format
+msgid ""
+"%s Disk in use\n"
+"%s\n"
+msgstr "%s  %s  %s"
+
+#: libparted/labels/fdasd.c:133
+#, c-format
+msgid ""
+"%s Config file syntax error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:137
+#, c-format
+msgid ""
+"%s Volume label is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:141
+#, c-format
+msgid ""
+"%s a data set name is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:145
+#, c-format
+msgid ""
+"%s space allocation\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:149
+#, c-format
+msgid ""
+"%s device verification failed\n"
+"The specified device is not a valid DASD device\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:154
+#, c-format
+msgid ""
+"%s Fatal error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/gpt.c:454
+#, fuzzy, c-format
+msgid ""
+"%s contains GPT signatures, indicating that it has a GPT table.  However, it "
+"does not have a valid fake msdos partition table, as it should.  Perhaps it "
+"was corrupted -- possibly by a program that doesn't understand GPT partition "
+"tables.  Or perhaps you deleted the GPT table, and are now using an msdos "
+"partition table.  Is this a GPT partition table?"
+msgstr ""
+"%s º¬ÓÐ GPT Ç©Ãû£¬±êÃ÷Ëüº¬ÓÐ GPT ±í¡£È»¶ø£¬Ëü²¢²»ÏñÓ¦¸ÃµÄÄÇÑùº¬ÓÐÓÐЧµÄα "
+"msdos ·ÖÇø±í¡£¿ÉÄÜËüÒѾ­Ë𻵠- ¿ÉÄÜÊDz»Àí½â GPT ·ÖÇø±íµÄ³ÌÐòµ¼Öµġ£»òÕßÄúɾ"
+"³ýÁË GPT ±í£¬ÏÖÔÚʹÓà msdos ·ÖÇø±í¡£ÕâÊÇ GPT ·ÖÇø±íÂð£¿"
+
+#: libparted/labels/gpt.c:648
+#, c-format
+msgid ""
+"The format of the GPT partition table is version %x, which is newer than "
+"what Parted can recognise.  Please tell us!  bug-parted@gnu.org"
+msgstr ""
+"GPT ·ÖÇø±íµÄ¸ñʽ°æ±¾Îª %x£¬Ëü±È Parted ËùÄÜʶ±ðµÄ°æ±¾ÒªÐ¡£Çë¸æËßÎÒÃÇ£¡bug-"
+"parted@gnu.org"
+
+#: libparted/labels/gpt.c:698
+#, c-format
+msgid ""
+"Not all of the space available to %s appears to be used, you can fix the GPT "
+"to use all of the space (an extra %llu blocks) or continue with the current "
+"setting? "
+msgstr ""
+
+#: libparted/labels/gpt.c:827
+msgid ""
+"The backup GPT table is not at the end of the disk, as it should be.  This "
+"might mean that another operating system believes the disk is smaller.  Fix, "
+"by moving the backup to the end (and removing the old backup)?"
+msgstr ""
+"±¸·Ý GPT ±í²»ÏñÓ¦¸ÃµÄÄÇÑù³öÏÖÔÚ´ÅÅ̵Äĩβ¡£Õâ¿ÉÄÜÒâζÕâÆäËü²Ù×÷ϵͳÏàÐÅ´ÅÅÌС"
+"һЩ¡£Í¨¹ý½«±¸·ÝÒƶ¯µ½Ä©Î² (²¢É¾³ý¾É±¸·Ý) À´ÐÞÕý£¿"
+
+#: libparted/labels/gpt.c:862
+#, fuzzy
+msgid ""
+"The primary GPT table is corrupt, but the backup appears OK, so that will be "
+"used."
+msgstr "Ö÷ GPT ±íË𻵣¬µ«±¸·ÝËƺõÊÇÕýÈ·µÄ£¬ËùÒÔʹÓñ¸·Ý¡£"
+
+#: libparted/labels/gpt.c:870
+#, fuzzy
+msgid ""
+"Both the primary and backup GPT tables are corrupt.  Try making a fresh "
+"table, and using Parted's rescue feature to recover partitions."
+msgstr ""
+"Ö÷ GPT ºÍ±¸·Ý GPT ¶¼Ëð»µÁË¡£ÊÔͼ´´½¨ÐÂ±í²¢Ê¹Óà Parted µÄ¼±¾È¹¦ÄÜÒÔÐÞ¸´·ÖÇø"
+"񡭜"
+
+#: libparted/labels/mac.c:181
+#, c-format
+msgid "Invalid signature %x for Mac disk labels."
+msgstr "ÎÞЧµÄ Mac ´ÅÅ̱êÇ©Ç©Ãû %x¡£"
+
+#: libparted/labels/mac.c:226
+msgid "Partition map has no partition map entry!"
+msgstr "·ÖÇøÓ³Éä²»º¬ÓзÖÇøÓ³ÉäÌõÄ¿£¡"
+
+#: libparted/labels/mac.c:273
+#, c-format
+msgid "%s is too small for a Mac disk label!"
+msgstr "%s ¶Ô Mac ´ÅÅ̱êÇ©À´ËµÌ«Ð¡ÁË£¡"
+
+#: libparted/labels/mac.c:532
+#, c-format
+msgid "Partition %d has an invalid signature %x."
+msgstr "·ÖÇø %d º¬ÓÐÎÞЧµÄÇ©Ãû %x¡£"
+
+#: libparted/labels/mac.c:550
+#, c-format
+msgid "Partition %d has an invalid length of 0 bytes!"
+msgstr "·ÖÇø %d º¬ÓÐÎÞЧµÄ³¤¶È 0 ×Ö½Ú£¡"
+
+#: libparted/labels/mac.c:580
+#, fuzzy
+msgid "The data region doesn't start at the start of the partition."
+msgstr "Êý¾ÝÇø²¢Î´´Ó·ÖÇøµÄÆðµã¿ªÊ¼"
+
+#: libparted/labels/mac.c:597
+#, fuzzy
+msgid "The boot region doesn't start at the start of the partition."
+msgstr "Æô¶¯ÇøÓò²¢Î´´Ó·ÖÇøµÄÆðµã¿ªÊ¼"
+
+#: libparted/labels/mac.c:611
+msgid "The partition's boot region doesn't occupy the entire partition."
+msgstr "·ÖÇøµÄÆô¶¯ÇøÓò²¢Î´Õ¼ÓÃÕû¸ö·ÖÇø¡£"
+
+#: libparted/labels/mac.c:622
+msgid "The partition's data region doesn't occupy the entire partition."
+msgstr "·ÖÇøµÄÊý¾ÝÇøÓò²¢Î´Õ¼ÓÃÕû¸ö·ÖÇø¡£"
+
+#: libparted/labels/mac.c:675
+#, c-format
+msgid ""
+"Weird block size on device descriptor: %d bytes is not divisible by 512."
+msgstr "É豸ÃèÊöÖгöÏֹŹֵĿé´óС£º%d ×Ö½Ú²»Äܱ» 512 Õû³ý¡£"
+
+#: libparted/labels/mac.c:688
+#, c-format
+msgid ""
+"The driver descriptor says the physical block size is %d bytes, but Linux "
+"says it is %d bytes."
+msgstr "´ÅÅÌÃèÊö±íÃ÷ÎïÀí¿é´óСΪ %d ×Ö½Ú£¬µ« Linux ÈÏΪËüÊÇ %d ×Ö½Ú¡£"
+
+#: libparted/labels/mac.c:736
+msgid "No valid partition map found."
+msgstr "ÕÒ²»µ½ÓÐЧµÄ·ÖÇøÓ³Éä¡£"
+
+#: libparted/labels/mac.c:795
+#, fuzzy, c-format
+msgid ""
+"Conflicting partition map entry sizes!  Entry 1 says it is %d, but entry %d "
+"says it is %d!"
+msgstr "·ÖÇøÓ³ÉäÌõÄ¿´óС³åÍ»£¡ÌõÄ¿ 1 ˵ËüÊÇ %d£¬µ«ÌõÄ¿ %d ˵ËüÊÇ %d£¡"
+
+#: libparted/labels/mac.c:822
+#, fuzzy
+msgid "Weird!  There are 2 partitions map entries!"
+msgstr "Ææ¹Ö - Á½¸ö·ÖÇøÓ³ÉäÌõÄ¿£¡"
+
+#: libparted/labels/mac.c:1347
+msgid ""
+"Changing the name of a root or swap partition will prevent Linux from "
+"recognising it as such."
+msgstr "¸Ä±ä¸ù·ÖÇø»ò¶Ô»»·ÖÇøµÄÃû³Æ½«µ¼Ö Linux ÎÞ·¨Ê¶±ðËü¡£"
+
+#: libparted/labels/mac.c:1443
+#, fuzzy
+msgid "Can't add another partition -- the partition map is too small!"
+msgstr "ÎÞ·¨Ìí¼ÓÁíÒ»¸ö·ÖÇø - ·ÖÇøÓ³Éä¹ýС£¡"
+
+#: libparted/labels/pc98.c:354
+#, fuzzy, c-format
+msgid "Invalid partition table on %s."
+msgstr "%s µÄ·ÖÇø±íÎÞЧ"
+
+#: libparted/labels/pc98.c:406 libparted/labels/pc98.c:484
+#, fuzzy, c-format
+msgid ""
+"Partition %d isn't aligned to cylinder boundaries.  This is still "
+"unsupported."
+msgstr "·ÖÇø %d ²¢Î´¶ÔÆëµ½ÖùÃæ±ß½ç¡£ÐèÒªÌí¼Ó¶ÔËüµÄÖ§³Ö¡£"
+
+#: libparted/labels/pc98.c:791
+msgid "Can't add another partition."
+msgstr "ÎÞ·¨Ìí¼ÓÆäËü·ÖÇø¡£"
+
+#: libparted/labels/rdb.c:162
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:497
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen."
+msgstr ""
+
+#: libparted/labels/rdb.c:581
+#, c-format
+msgid "%s : Loop detected at block %d."
+msgstr ""
+
+#: libparted/labels/rdb.c:600
+#, c-format
+msgid "%s : The %s list seems bad at block %s."
+msgstr ""
+
+#: libparted/labels/rdb.c:689
+#, c-format
+msgid "%s : Failed to list bad blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:697
+#, c-format
+msgid "%s : Failed to list partition blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:705
+#, c-format
+msgid "%s : Failed to list file system blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:713
+#, c-format
+msgid "%s : Failed to list boot blocks."
+msgstr ""
+
+#: libparted/labels/rdb.c:740
+#, c-format
+msgid "Failed to write partition block at %d."
+msgstr ""
+
+#: libparted/labels/rdb.c:1069
+#, fuzzy
+msgid "Unable to allocate a partition number."
+msgstr "ÐèÒª·ÖÇø±àºÅ¡£"
+
+#: libparted/labels/sun.c:145
+msgid "Corrupted Sun disk label detected."
+msgstr "¼ì²âµ½Ëð»µÁ赀 Sun ´ÅÅ̱êÇ©¡£"
+
+#: libparted/labels/sun.c:266
+#, fuzzy, c-format
+msgid ""
+"The disk CHS geometry (%d,%d,%d) reported by the operating system does not "
+"match the geometry stored on the disk label (%d,%d,%d)."
+msgstr ""
+"´ÅÅÌ CHS ¼¸ºÎ½á¹¹ (%d,%d,%d) ÓÚ±£´æÔÚ´ÅÅ̱êÇ© (%d,%d,%d) Öеļ¸ºÎ½á¹¹²»Æ¥Åä¡£"
+
+#: libparted/labels/sun.c:288
+#, c-format
+msgid "The disk label describes a disk bigger than %s."
+msgstr "´ÅÅ̱êÇ©ÃèÊöµÄ´ÅÅÌ´óÓÚ %s¡£"
+
+#: libparted/labels/sun.c:442
+#, c-format
+msgid "The disk has %d cylinders, which is greater than the maximum of 65536."
+msgstr ""
+
+#: libparted/labels/sun.c:737
+msgid ""
+"The Whole Disk partition is the only available one left.  Generally, it is "
+"not a good idea to overwrite this partition with a real one.  Solaris may "
+"not be able to boot without it, and SILO (the sparc boot loader) appreciates "
+"it as well."
+msgstr ""
+
+#: libparted/labels/sun.c:752
+msgid "Sun disk label is full."
+msgstr "Sun ´ÅÅ̱êÇ©ÒÑÂú¡£"
+
+#: libparted/labels/vtoc.c:163
+#, c-format
+msgid ""
+"%s opening device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:167
+#, c-format
+msgid ""
+"%s seeking device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:171
+#, c-format
+msgid ""
+"%s writing to device '%s' failed,\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:175
+#, c-format
+msgid ""
+"%s reading from device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:179
+#, c-format
+msgid "Fatal error\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:418
+msgid "Could not read VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:424
+msgid "Could not read VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:431
+msgid "Could not read VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:438
+msgid "Could not read VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:445
+msgid "Could not read VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:462
+msgid "Could not write VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:468
+msgid "Could not write VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:475
+msgid "Could not write VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:482
+msgid "Could not write VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:489
+msgid "Could not write VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/libparted.c:296 libparted/libparted.c:316
+msgid "Out of memory."
+msgstr "ÄÚ´æºÄ¾¡¡£"
+
+#: libparted/unit.c:139
+msgid "Cannot get unit size for special unit 'COMPACT'."
+msgstr ""
+
+#: libparted/unit.c:386
+#, c-format
+msgid "\"%s\" has invalid syntax for locations."
+msgstr ""
+
+#: libparted/unit.c:394
+#, c-format
+msgid "The maximum head value is %d."
+msgstr ""
+
+#: libparted/unit.c:401
+#, c-format
+msgid "The maximum sector value is %d."
+msgstr ""
+
+#: libparted/unit.c:413 libparted/unit.c:545
+#, c-format
+msgid "The location %s is outside of the device %s."
+msgstr ""
+
+#: libparted/unit.c:527
+msgid "Invalid number."
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:63 libparted/fs/amiga/apfs.c:56
+#: libparted/fs/amiga/asfs.c:70
+#, fuzzy, c-format
+msgid "%s : Failed to allocate partition block\n"
+msgstr "ÐèÒª·ÖÇø±àºÅ¡£"
+
+#: libparted/fs/amiga/affs.c:78 libparted/fs/amiga/apfs.c:70
+#: libparted/fs/amiga/asfs.c:86
+#, c-format
+msgid "%s : Failed to allocate block\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:83 libparted/fs/amiga/apfs.c:75
+#, c-format
+msgid "%s : Couldn't read boot block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/affs.c:99 libparted/fs/amiga/apfs.c:86
+#: libparted/fs/amiga/asfs.c:92 libparted/fs/amiga/asfs.c:106
+#, c-format
+msgid "%s : Couldn't read root block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:72
+#, c-format
+msgid "%s : Failed to allocate id list element\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:189
+#, c-format
+msgid "%s : Couldn't read block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:202
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:212
+#, fuzzy, c-format
+msgid "%s : Couldn't write block %d\n"
+msgstr "ÔÚдÈë %2$s ʱ %1$s"
+
+#: libparted/fs/amiga/amiga.c:278
+#, c-format
+msgid "%s : Failed to allocate disk_specific rdb block\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:289
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:318
+#, c-format
+msgid "%s : Failed to read partition block %llu\n"
+msgstr ""
+
+#: libparted/fs/ext2/ext2.c:87 libparted/fs/ext2/ext2.c:112
+msgid "Inconsistent group descriptors!"
+msgstr "²»Ò»ÖµÄ×éÃèÊö·û£¡"
+
+#: libparted/fs/ext2/ext2.c:91 libparted/fs/ext2/ext2.c:116
+#, fuzzy
+msgid "File system full!"
+msgstr "ÎļþϵͳÒÑÂú£¡"
+
+#: libparted/fs/ext2/ext2.c:686
+#, fuzzy
+msgid "Invalid superblock.  Are you sure this is an ext2 file system?"
+msgstr "ÎÞЧµÄ³¬¿é¡£ÄúÈ·ÈÏËüÊÇÒ»¸ö ext2 Îļþϵͳ£¿"
+
+#: libparted/fs/ext2/ext2.c:700 libparted/fs/ext2/ext2_resize.c:658
+#, fuzzy
+msgid "File system has errors!  You should run e2fsck."
+msgstr "Îļþϵͳ´íÎó£¡ÄúÓ¦¸ÃÔËÐÐ e2fsck¡£"
+
+#: libparted/fs/ext2/ext2.c:711
+#, fuzzy
+msgid ""
+"File system was not cleanly unmounted!  You should run e2fsck.  Modifying an "
+"unclean file system could cause severe corruption."
+msgstr ""
+"ÎļþϵͳûÓб»¸É¾»µØжÔØ£¡ÄúÓ¦¸ÃÔËÐÐ e2fsck¡£Ð޸IJ»¸É¾»µÄÎļþϵͳ½«µ¼ÖÂÑÏÖصÄ"
+"Ë𻵡£"
+
+#: libparted/fs/ext2/ext2.c:731
+#, fuzzy
+msgid "File system has an incompatible feature enabled."
+msgstr "ÎļþϵͳÆôÓÃÁ˲»¼æÈݵŦÄÜ"
+
+#: libparted/fs/ext2/ext2.c:742
+msgid "Error allocating buffer cache."
+msgstr "·ÖÅ仺³åÇø cache ´íÎó¡£"
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:114
+#, fuzzy
+msgid ""
+"Found an inode with a incorrect link count.  Better go run e2fsck first!"
+msgstr "ÕÒµ½´øÓдíÎóÁ¬½Ó¼ÆÊýµÄ inode¡£×îºÃÏÈÔËÐÐ e2fsck¡£"
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:487
+msgid "Not enough free inodes!"
+msgstr "ûÓÐ×ã¹»µÄ¿ÕÏÐ inodes£¡"
+
+#: libparted/fs/ext2/ext2_resize.c:223
+#, fuzzy
+msgid "File system is too full to remove a group!"
+msgstr "Îļþϵͳ±»¹ý¶ÉÕ¼ÓÃÒÔÖÂÎÞ·¨É¾³ý×飡"
+
+#: libparted/fs/ext2/ext2_resize.c:232
+#, fuzzy
+msgid "File system has too many allocated inodes to remove a group!"
+msgstr "ÎļþϵͳÖÐÒÑʹÓÃµÄ inode ¹ý¶àÒÔÖÂÎÞ·¨É¾³ý×飡"
+
+#: libparted/fs/ext2/ext2_resize.c:491
+msgid "adding groups"
+msgstr "Ìí¼Ó×é"
+
+#: libparted/fs/ext2/ext2_resize.c:528
+#, fuzzy, c-format
+msgid "Your file system is too full to resize it to %i blocks.  Sorry."
+msgstr "ÄúµÄÎļþϵͳ±»¹ý¶ÉÕ¼ÓÃÒÔÖÂÎÞ·¨½«ËüµÄ´óС¸Ä±äΪ %i ¸ö¿é¡£±§Ç¸¡£"
+
+#: libparted/fs/ext2/ext2_resize.c:538
+#, fuzzy, c-format
+msgid ""
+"Your file system has too many occupied inodes to resize it to %i blocks.  "
+"Sorry."
+msgstr ""
+"ÄúµÄÎļþϵͳÖÐÒÑʹÓÃµÄ inode ¹ý¶àÒÔÖÂÎÞ·¨½«Æä´óС¸Ä±äΪ %i ¸ö¿é¡£±§Ç¸¡£"
+
+#: libparted/fs/ext2/ext2_resize.c:666
+#, fuzzy
+msgid "File system was not cleanly unmounted!  You should run e2fsck."
+msgstr "ÎļþϵͳûÓиɾ»µØжÔØ£¡ÄúÓ¦¸ÃÔËÐÐ e2fsck¡£"
+
+#: libparted/fs/ext2/ext2_resize.c:675
+msgid ""
+"The file system has the 'dir_index' feature enabled.  Parted can only resize "
+"the file system if it disables this feature.  You can enable it later by "
+"running 'tune2fs -O dir_index DEVICE' and then 'e2fsck -fD DEVICE'."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_resize.c:691
+msgid ""
+"A resize operation on this file system will use EXPERIMENTAL code\n"
+"that MAY CORRUPT it (although no one has reported any such damage yet).\n"
+"You should at least backup your data first, and run 'e2fsck -f' afterwards."
+msgstr ""
+
+#: libparted/fs/ext2/ext2_block_relocator.c:198
+#, fuzzy
+msgid "Cross-linked blocks found!  Better go run e2fsck first!"
+msgstr "·¢ÏÖ½»²æÁ¬½Ó¿é£¡×îºÃÏÈÔËÐÐ e2fsck£¡"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:537
+#, fuzzy, c-format
+msgid "Block %i has no reference?  Weird."
+msgstr "¿é %i ûÓÐÒýÓã¿Ææ¹Ö"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:737
+#, fuzzy, c-format
+msgid "Block %i shouldn't have been marked (%d, %d)!"
+msgstr "¿é %i ²»Ó¦¸ÃÒѱ»±ê¼Ç£¡"
+
+#: libparted/fs/ext2/interface.c:186
+#, fuzzy
+msgid ""
+"The ext2 file system passed a basic check.  For a more comprehensive check, "
+"use the e2fsck program."
+msgstr "ext2 Îļþϵͳͨ¹ý»ù±¾¼ì²é¡£ÖÁÓÚ¸ü¸ºÔصļì²é£¬Ê¹Óà e2fsck ³ÌÐò¡£"
+
+#: libparted/fs/ext2/interface.c:203
+msgid "Sorry, can't move the start of ext2 partitions yet!"
+msgstr "´íÎó£¬ÉÐÎÞ·¨Òƶ¯ ext2 ·ÖÇøµÄÆðµã£¡"
+
+#: libparted/fs/ext2/ext2_buffer.c:82
+msgid "Couldn't flush buffer cache!"
+msgstr "ÎÞ·¨Ë¢Ð»º³åÇø cache£¡"
+
+#: libparted/fs/ext2/ext2_mkfs.c:162
+msgid "writing per-group metadata"
+msgstr "дÈëÿ¸ö×鶼ÓеÄÔªÊý¾Ý"
+
+#: libparted/fs/ext2/ext2_mkfs.c:564
+msgid "File system too small for ext2."
+msgstr "¶Ô ext2 À´ËµÎļþϵͳ¹ýС¡£"
+
+#: libparted/fs/fat/calc.c:135
+#, fuzzy, c-format
+msgid ""
+"You need %s of free disk space to shrink this partition to this size.  "
+"Currently, only %s is free."
+msgstr ""
+"ÄúÐèÒª %dM µÄ¿ÕÏпռäÀ´½«´Ë·ÖÇøÊÕËõµ½ÕâÒ»´óС (ÄúÄ¿Ç°Ö»ÓÐ %dM µÄ¿ÕÏпռä)"
+
+#: libparted/fs/fat/context.c:56
+#, c-format
+msgid ""
+"Cluster start delta = %d, which is not a multiple of the cluster size %d."
+msgstr "´ØÆðʼƫÒÆ = %d£¬²»ÊÇ´Ø´óС %d µÄÕûÊý±¶¡£"
+
+#: libparted/fs/fat/fat.c:308
+#, fuzzy, c-format
+msgid "Partition too big/small for a %s file system."
+msgstr "¶ÔÓÚ %s ÎļþϵͳÀ´Ëµ£¬·ÖÇø¹ý´ó»ò¹ýС"
+
+#: libparted/fs/fat/fat.c:474
+msgid ""
+"The FATs don't match.  If you don't know what this means, then select "
+"cancel, run scandisk on the file system, and then come back."
+msgstr ""
+"FAT ²»Æ¥Åä¡£Èç¹ûÄã²»ÖªµÀËüµÄº¬Ò壬ÇëÑ¡Ôñ·ÅÆú£¬²¢¶ÔÎļþϵͳÔËÐÐ scandisk£¬¶øºó"
+"Ôڻص½ÕâÀïÀ´¡£"
+
+#: libparted/fs/fat/fat.c:514
+msgid "There are no possible configurations for this FAT type."
+msgstr "¶ÔÓÚ´Ë FAT ÀàÐÍûÓпÉÄܵÄÅäÖá£"
+
+#: libparted/fs/fat/fat.c:526
+#, c-format
+msgid ""
+"File system doesn't have expected sizes for Windows to like it.  Cluster "
+"size is %dk (%dk expected); number of clusters is %d (%d expected); size of "
+"FATs is %d sectors (%d expected)."
+msgstr ""
+"ÎļþϵͳµÄ´óС²»ÊÇ Windows ËùÏ£ÍûµÄ¡£´Ø´óСΪ %dk (ÆÚÍû %dk)£»´ØÊýÁ¿Îª %d (ÆÚ"
+"Íû %d)£»FAT µÄ´óСΪ %d ÉÈÇø (ÆÚÍû %d)¡£"
+
+#: libparted/fs/fat/fat.c:549
+#, c-format
+msgid ""
+"File system is reporting the free space as %d clusters, not %d clusters."
+msgstr "Îļþϵͳ±¨¸æ¿ÕÏпռäΪ %d ´Ø£¬¶ø²»ÊÇ %d ´Ø¡£"
+
+#: libparted/fs/fat/fat.c:874
+#, fuzzy
+msgid ""
+"GNU Parted was miscompiled: the FAT boot sector should be 512 bytes.  FAT "
+"support will be disabled."
+msgstr "GNU parted ±àÒë´íÎó£ºFAT Æô¶¯ÉÈÇøӦΪ 512 ×Ö½Ú¡£FAT Ö§³Ö½«±»¹Ø±Õ¡£"
+
+#: libparted/fs/fat/resize.c:159
+#, fuzzy
+msgid ""
+"There's not enough room in the root directory for all of the files.  Either "
+"cancel, or ignore to lose the files."
+msgstr "¸ùĿ¼ÏÂûÓб£´æËùÓÐÎļþµÄ×ã¹»¿Õ¼ä¡£·ÅÆú»òÕßÒÔËðʧÎļþΪ´ú¼ÛºöÂÔ¡£"
+
+#: libparted/fs/fat/resize.c:300
+msgid "Error writing to the root directory."
+msgstr "дÈë¸ùĿ¼´íÎó¡£"
+
+#: libparted/fs/fat/resize.c:489
+#, fuzzy
+msgid "If you leave your file system as FAT16, then you will have no problems."
+msgstr "Èç¹û½«ÄúµÄÎļþϵͳÀàÐͱ£³Ö FAT16 ²»±ä£¬ÄÇôÄã¾Í²»»áÓÐÎÊÌâ¡£"
+
+#: libparted/fs/fat/resize.c:492
+msgid ""
+"If you convert to FAT16, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual)."
+msgstr ""
+"Èç¹ûÄúת»»Îª FAT16£¬²¢½« MS Windows °²×°µ½Õâ¸ö·ÖÇø£¬ÄÇôÄú±ØÐëÖØа²×° MS "
+"Windows Æô¶¯¹ÜÀíÆ÷¡£Èç¹ûÄú´òËãÕâô×ö£¬ÄúÓ¦¸Ã²ÎÔÄ Parted µÄÊÖ²á (»òÄúµÄ·¢Ðаæ"
+"µÄÊÖ²á)¡£"
+
+#: libparted/fs/fat/resize.c:500
+msgid ""
+"If you leave your file system as FAT32, then you will not introduce any new "
+"problems."
+msgstr "Èç¹ûÄú±£³ÖÎļþϵͳÀàÐÍΪ FAT32 ²»±ä£¬ÄÇôÄú½«²»»áÓöµ½ÈκÎÐÂÎÊÌâ¡£"
+
+#: libparted/fs/fat/resize.c:504
+msgid ""
+"If you convert to FAT32, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual).  Also, "
+"converting to FAT32 will make the file system unreadable by MS DOS, MS "
+"Windows 95a, and MS Windows NT."
+msgstr ""
+"Èç¹ûÄúת»»Îª FAT32£¬²¢ÇÒ MS Windows °²×°ÔÚÕâ¸ö·ÖÇø£¬ÄÇôÄú±ØÐëÖØа²×° MS "
+"Windows µÄÆô¶¯¹ÜÀíÆ÷¡£Èç¹ûÄú´òËãÕâÑù×÷£¬ÄúÓ¦¸Ã²ÎÔÄ Parted µÄÊÖ²á (»òÕßÄúµÄ·¢"
+"ÐаæµÄÊÖ²á)¡£´ËÍ⣬½«Îļþϵͳת»»Îª FAT32£¬Îļþϵͳ¾Í²»Äܹ»±» MS DOS¡¢MS "
+"Windows 95a ºÍ MS Windows NT Ëù·ÃÎÊÁË¡£"
+
+#: libparted/fs/fat/resize.c:518
+#, c-format
+msgid "%s  %s  %s"
+msgstr "%s  %s  %s"
+
+#: libparted/fs/fat/resize.c:519
+msgid "Would you like to use FAT32?"
+msgstr "ÄúÊÇ·ñÔ¸ÒâʹÓà FAT32£¿"
+
+#: libparted/fs/fat/resize.c:550 libparted/fs/fat/resize.c:566
+#, c-format
+msgid "%s  %s"
+msgstr "%s  %s"
+
+#: libparted/fs/fat/resize.c:551
+msgid ""
+"The file system can only be resized to this size by converting to FAT16."
+msgstr "ÎļþϵͳµÄ´óСֻÄÜͨ¹ýת»»Îª FAT16 ¸Ä±äµ½ÕâÒ»´óС¡£"
+
+#: libparted/fs/fat/resize.c:567
+msgid ""
+"The file system can only be resized to this size by converting to FAT32."
+msgstr "ÎļþϵͳµÄ´óСֻÄÜͨ¹ýת»»Îª FAT32 ¸Ä±äµ½ÕâÒ»´óС¡£"
+
+#: libparted/fs/fat/resize.c:580
+#, fuzzy
+msgid ""
+"GNU Parted cannot resize this partition to this size.  We're working on it!"
+msgstr "GNU Parted ÎÞ·¨½«´Ë·ÖÇøת»»µ½ÕâÒ»´óС¡£ÎÒÃÇÕýÔÚʵÏÖËü£¡"
+
+#: libparted/fs/fat/bootsector.c:49 libparted/fs/fat/bootsector.c:56
+msgid "File system has an invalid signature for a FAT file system."
+msgstr "Îļþϵͳº¬ÓÐÎÞЧµÄ FAT ÎļþϵͳǩÃû¡£"
+
+#: libparted/fs/fat/bootsector.c:64
+msgid "File system has an invalid sector size for a FAT file system."
+msgstr "ÎļþϵͳµÄÉÈÇø´óС¶Ô FAT ÎļþϵͳÀ´ËµÎÞЧ¡£"
+
+#: libparted/fs/fat/bootsector.c:71
+msgid "File system has an invalid cluster size for a FAT file system."
+msgstr "ÎļþϵͳµÄ´Ø´óС¶Ô FAT ÎļþϵͳÀ´ËµÎÞЧ¡£"
+
+#: libparted/fs/fat/bootsector.c:78
+#, fuzzy
+msgid ""
+"File system has an invalid number of reserved sectors for a FAT file system."
+msgstr "ÎļþϵͳµÄ±£ÁôÉÈÇøÊý¶Ô FAT ÎļþϵͳÀ´ËµÎÞЧ¡£"
+
+#: libparted/fs/fat/bootsector.c:85
+#, fuzzy
+msgid "File system has an invalid number of FATs."
+msgstr "ÎļþϵͳµÄ FATS ÊýÁ¿ÎÞЧ¡£"
+
+#: libparted/fs/fat/bootsector.c:139
+#, c-format
+msgid ""
+"This file system has a logical sector size of %d.  GNU Parted is known not "
+"to work properly with sector sizes other than 512 bytes."
+msgstr ""
+"´ËÎļþϵͳµÄÂß¼­ÉÈÇø´óСΪ %d¡£GNU Parted ²»ÄÜÔÚÉÈÇø´óС²»ÊÇ 512 ×Ö½ÚµÄÇé¿öÏÂ"
+"ÕýÈ·¹¤×÷¡£"
+
+#: libparted/fs/fat/bootsector.c:164
+#, c-format
+msgid ""
+"The file system's CHS geometry is (%d, %d, %d), which is invalid.  The "
+"partition table's CHS geometry is (%d, %d, %d).  If you select Ignore, the "
+"file system's CHS geometry will be left unchanged.  If you select Fix, the "
+"file system's CHS geometry will be set to match the partition table's CHS "
+"geometry."
+msgstr ""
+
+#: libparted/fs/fat/bootsector.c:213
+msgid "FAT boot sector says logical sector size is 0.  This is weird. "
+msgstr "FAT Æô¶¯ÉÈÇøÉù³ÆÂß¼­ÉÈÇøµÄ´óСΪÁã¡£ÕâºÜÆæ¹Ö¡£"
+
+#: libparted/fs/fat/bootsector.c:219
+msgid "FAT boot sector says there are no FAT tables.  This is weird. "
+msgstr "FAT Æô¶¯ÉÈÇøÉù³ÆûÓÐ FAT ±í¡£ÕâºÜÆæ¹Ö¡£"
+
+#: libparted/fs/fat/bootsector.c:225
+msgid "FAT boot sector says clusters are 0 sectors.  This is weird. "
+msgstr "FAT Æô¶¯ÉÈÇøÉù³Æ×äÊÇÁãÉÈÇø¡£ÕâºÜÆæ¹Ö¡£"
+
+#: libparted/fs/fat/bootsector.c:235
+#, fuzzy
+msgid "File system is FAT12, which is unsupported."
+msgstr "ÎļþϵͳΪ FAT12£¬²»Ö§³Ö¡£"
+
+#: libparted/fs/fat/bootsector.c:411
+#, c-format
+msgid ""
+"The information sector has the wrong signature (%x).  Select cancel for now, "
+"and send in a bug report.  If you're desperate, it's probably safe to ignore."
+msgstr ""
+"ÐÅÏ¢ÉÈÇøµÄÇ©Ãû´íÎó (%x)¡£ÏÖÔÚÑ¡Ôñ·ÅÆú£¬²¢·¢ËÍ bug ±¨¸æ¡£Èç¹ûÄú²»¹ËÒ»ÇУ¬Ñ¡Ôñ"
+"ºöÂÔÓпÉÄÜÊÇ¡°°²È«¡±µÄ¡£"
+
+#: libparted/fs/fat/count.c:152
+#, c-format
+msgid "Bad directory entry for %s: first cluster is the end of file marker."
+msgstr "%s µÄĿ¼ÌõÄ¿´íÎ󣺵ÚÒ»¸ö´Ø¾ÍÊÇÎļþ±êÖ¾µÄ½áÊø¡£"
+
+#: libparted/fs/fat/count.c:165
+#, c-format
+msgid ""
+"Bad FAT: unterminated chain for %s.  You should run dosfsck or scandisk."
+msgstr "´íÎóµÄ FAT£º%s µÄÁ´Î´ÖÕÖ¹¡£ÄúÓ¦¸ÃÔËÐÐ dosfsck »ò scandisk¡£"
+
+#: libparted/fs/fat/count.c:174
+#, fuzzy, c-format
+msgid ""
+"Bad FAT: cluster %d outside file system in chain for %s.  You should run "
+"dosfsck or scandisk."
+msgstr ""
+"´íÎóµÄ FAT£ºÔÚ%2$s µÄÁ´ÖУ¬´Ø %1$d ´¦ÓÚÎļþϵͳ֮Íâ¡£ÄúÓ¦¸ÃÔËÐÐ dosfsck »ò "
+"scandisk¡£"
+
+#: libparted/fs/fat/count.c:184
+#, c-format
+msgid ""
+"Bad FAT: cluster %d is cross-linked for %s.  You should run dosfsck or "
+"scandisk."
+msgstr "´íÎóµÄ FAT£º´Ø %d ͬ %s µÄÁ´½»²æÁË¡£ÄúÓ¦¸ÃÔËÐÐ dosfsck »ò scandisk¡£"
+
+#: libparted/fs/fat/count.c:203
+#, c-format
+msgid "%s is %dk, but it has %d clusters (%dk)."
+msgstr "%s Ϊ %dk£¬µ«º¬ÓÐ %d ¸ö´Ø (%dk)¡£"
+
+#: libparted/fs/fat/count.c:266
+#, c-format
+msgid ""
+"The file %s is marked as a system file.  This means moving it could cause "
+"some programs to stop working."
+msgstr "Îļþ %s ±»±ê¼ÇΪϵͳÎļþ¡£ÕâÒâζ×ÅÒƶ¯Ëü¿ÉÄܵ¼ÖÂijЩ³ÌÐòÍ£Ö¹¹¤×÷¡£"
+
+#: libparted/fs/fat/table.c:137
+#, c-format
+msgid ""
+"FAT %d media %x doesn't match the boot sector's media %x.  You should "
+"probably run scandisk."
+msgstr ""
+"FAT %d ýÌå %x ºÍÆô¶¯ÉÈÇøËùÔÚµÄýÌå %x ²»Æ¥Åä¡£Äú¿ÉÄÜÓ¦¸ÃÔËÐÐ scandisk¡£"
+
+#: libparted/fs/fat/table.c:269
+#, fuzzy, c-format
+msgid "fat_table_set: cluster %ld outside file system"
+msgstr "fat_table_set£º´Ø %ld ´¦ÓÚÎļþϵͳ֮Íâ"
+
+#: libparted/fs/fat/table.c:301
+#, fuzzy, c-format
+msgid "fat_table_get: cluster %ld outside file system"
+msgstr "fat_table_get£º´Ø %ld ´¦ÓÚÎļþϵͳ֮Íâ"
+
+#: libparted/fs/fat/table.c:343
+msgid "fat_table_alloc_cluster: no free clusters"
+msgstr "fat_table_alloc_cluster£ºÃ»ÓпÕÏдØ"
+
+#: libparted/fs/linux_swap/linux_swap.c:275
+#, fuzzy, c-format
+msgid "Unrecognised old style linux swap signature '%10s'."
+msgstr "ÎÞ·¨Ê¶±ðµÄ linux ¶Ô»»Ç©Ãû¡°%10s¡±¡£"
+
+#: libparted/fs/linux_swap/linux_swap.c:318
+#, fuzzy, c-format
+msgid "Unrecognised new style linux swap signature '%10s'."
+msgstr "ÎÞ·¨Ê¶±ðµÄ linux ¶Ô»»Ç©Ãû¡°%10s¡±¡£"
+
+#: libparted/fs/linux_swap/linux_swap.c:358
+#, fuzzy, c-format
+msgid "Unrecognised swsusp linux swap signature '%9s'."
+msgstr "ÎÞ·¨Ê¶±ðµÄ linux ¶Ô»»Ç©Ãû¡°%10s¡±¡£"
+
+#: libparted/fs/linux_swap/linux_swap.c:434
+msgid "Too many bad pages."
+msgstr "¹ý¶àµÄ»µÒ³¡£"
+
+#: libparted/fs/hfs/advfs.c:121 libparted/fs/hfs/advfs_plus.c:122
+#: libparted/fs/hfs/reloc.c:414 libparted/fs/hfs/reloc.c:508
+#: libparted/fs/hfs/reloc_plus.c:539 libparted/fs/hfs/reloc_plus.c:658
+#: libparted/fs/hfs/reloc_plus.c:772
+msgid "The file system contains errors."
+msgstr ""
+
+#: libparted/fs/hfs/advfs_plus.c:287
+msgid "Bad blocks could not be read."
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:137
+#, c-format
+msgid ""
+"Trying to register an extent starting at block 0x%X, but another one already "
+"exists at this position.  You should check the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/cache.c:214
+#, c-format
+msgid ""
+"Trying to move an extent from block Ox%X to block Ox%X, but another one "
+"already exists at this position.  This should not happen!"
+msgstr ""
+
+#: libparted/fs/hfs/file.c:143
+#, c-format
+msgid "Could not update the extent cache for HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:180
+#, c-format
+msgid "Trying to read HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:190 libparted/fs/hfs/file.c:220
+#, c-format
+msgid "Could not find sector %lli of HFS file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file.c:210
+#, c-format
+msgid "Trying to write HFS file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:157
+#, c-format
+msgid "Could not update the extent cache for HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:202
+#, c-format
+msgid "Trying to read HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:213 libparted/fs/hfs/file_plus.c:256
+#, c-format
+msgid "Could not find sector %lli of HFS+ file with CNID %X."
+msgstr ""
+
+#: libparted/fs/hfs/file_plus.c:245
+#, c-format
+msgid "Trying to write HFS+ file with CNID %X behind EOF."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:232
+msgid "Sorry, HFS cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:262 libparted/fs/hfs/hfs.c:641
+msgid "Data relocation has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:281
+msgid "Data relocation left some data in the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:320
+#, fuzzy
+msgid "writing HFS Master Directory Block"
+msgstr "дÈë¸ùĿ¼´íÎó¡£"
+
+#: libparted/fs/hfs/hfs.c:468
+msgid "No valid HFS[+X] signature has been found while opening."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:478
+#, c-format
+msgid "Version %d of HFS+ isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:489
+#, c-format
+msgid "Version %d of HFSX isn't supported."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:672
+msgid "Data relocation left some data at the end of the volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:720
+#, fuzzy
+msgid "Error while writing the allocation file."
+msgstr "дÈë¸ùĿ¼´íÎó¡£"
+
+#: libparted/fs/hfs/hfs.c:735
+msgid "Error while writing the compatibility part of the allocation file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:750
+msgid "writing HFS+ Volume Header"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:850
+msgid "An error occurred while looking for the mandatory bad blocks file."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:904
+msgid ""
+"It seems there is an error in the HFS wrapper: the bad blocks file doesn't "
+"contain the embedded HFS+ volume."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:940
+msgid "Sorry, HFS+ cannot be resized that way yet."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:975
+msgid "shrinking embedded HFS+ volume"
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:991
+msgid "Resizing the HFS+ volume has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:998
+#, fuzzy
+msgid "shrinking HFS wrapper"
+msgstr "ÕýÔÚËõС"
+
+#: libparted/fs/hfs/hfs.c:1007
+msgid "Updating the HFS wrapper has failed."
+msgstr ""
+
+#: libparted/fs/hfs/hfs.c:1109 libparted/fs/hfs/hfs.c:1194
+#, c-format
+msgid ""
+"This is not a real %s check.  This is going to extract special low level "
+"files for debugging purposes."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:155
+msgid "Bad block list header checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:168
+#, c-format
+msgid ""
+"Invalid size of a transaction block while replaying the journal (%i bytes)."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:260
+msgid ""
+"Journal stored outside of the volume are not supported.  Try to desactivate "
+"the journal and run Parted again."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:271
+#, fuzzy
+msgid "Journal offset or size is not multiple of the sector size."
+msgstr "´ØÆðʼƫÒÆ = %d£¬²»ÊÇ´Ø´óС %d µÄÕûÊý±¶¡£"
+
+#: libparted/fs/hfs/journal.c:292
+msgid "Incorrect magic values in the journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:302
+msgid "Journal size mismatch between journal info block and journal header."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:314
+#, fuzzy
+msgid "Some header fields are not multiple of the sector size."
+msgstr "´ØÆðʼƫÒÆ = %d£¬²»ÊÇ´Ø´óС %d µÄÕûÊý±¶¡£"
+
+#: libparted/fs/hfs/journal.c:323
+msgid ""
+"The sector size stored in the journal is not 512 bytes.  Parted only "
+"supports 512 bytes length sectors."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:335
+msgid "Bad journal checksum."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:353
+msgid ""
+"The journal is not empty.  Parted must replay the transactions before "
+"opening the file system.  This will modify the file system."
+msgstr ""
+
+#: libparted/fs/hfs/journal.c:381
+msgid ""
+"The volume header or the master directory block has changed while replaying "
+"the journal.  You should restart Parted."
+msgstr ""
+
+#: libparted/fs/hfs/probe.c:51
+#, c-format
+msgid ""
+"Parted can't use HFS file systems on disks with a sector size not equal to %"
+"d bytes."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:151 libparted/fs/hfs/reloc_plus.c:155
+msgid "An extent has not been relocated."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:251 libparted/fs/hfs/reloc_plus.c:307
+msgid ""
+"A reference to an extent comes from a place it should not.  You should check "
+"the file system!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:381
+msgid "This HFS volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:475
+msgid "This HFS volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:517 libparted/fs/hfs/reloc_plus.c:668
+msgid ""
+"The extents overflow file should not contain its own extents!  You should "
+"check the file system."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:574 libparted/fs/hfs/reloc_plus.c:847
+#, fuzzy
+msgid "Could not cache the file system in memory."
+msgstr "ÎÞ·¨¼ì²âÎļþϵͳ¡£"
+
+#: libparted/fs/hfs/reloc.c:635 libparted/fs/hfs/reloc_plus.c:908
+msgid "Bad blocks list could not be loaded."
+msgstr ""
+
+#: libparted/fs/hfs/reloc.c:649 libparted/fs/hfs/reloc_plus.c:924
+msgid "An error occurred during extent relocation."
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:495
+msgid "This HFS+ volume has no catalog file.  This is very unusual!"
+msgstr ""
+
+#: libparted/fs/hfs/reloc_plus.c:619
+msgid "This HFS+ volume has no extents overflow file.  This is quite unusual!"
+msgstr ""
+
+#: parted/parted.c:94
+msgid "displays this help message"
+msgstr "ÏÔʾ´ËÇóÖúÐÅÏ¢"
+
+#: parted/parted.c:95
+msgid "lists partition layout on all block devices"
+msgstr ""
+
+#: parted/parted.c:96
+msgid "displays machine parseable output"
+msgstr ""
+
+#: parted/parted.c:97
+msgid "never prompts for user intervention"
+msgstr "´Ó²»ÌáʾÓû§"
+
+#: parted/parted.c:98
+msgid "displays the version"
+msgstr "ÏÔʾ°æ±¾"
+
+#: parted/parted.c:111
+#, fuzzy
+msgid ""
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"
+msgstr ""
+"MINOR ÊÇ Linux ʹÓõķÖÇø±àºÅ¡£ÔÚ msdos ´ÅÅÌ    ±êÇ©ÖУ¬Ö÷·ÖÇø±àºÅΪ 1 - 4£¬"
+"Âß¼­·ÖÇø´Ó 5 ¿ªÊ¼¡£\n"
+
+#: parted/parted.c:114
+msgid "LABEL-TYPE is one of: "
+msgstr "¡°±êÇ©ÀàÐÍ¡±ÊÇÒÔÏÂÈÎÒâÒ»Ï"
+
+#: parted/parted.c:115
+msgid "FLAG is one of: "
+msgstr "¡°±êÖ¾¡±ÊÇÒÔÏÂÈÎÒâÒ»Ï"
+
+#: parted/parted.c:116
+#, fuzzy
+msgid "UNIT is one of: "
+msgstr "¡°±êÖ¾¡±ÊÇÒÔÏÂÈÎÒâÒ»Ï"
+
+#: parted/parted.c:117
+msgid "PART-TYPE is one of: primary, logical, extended\n"
+msgstr "¡°·ÖÇøÀàÐÍ¡±ÊÇÖ÷·ÖÇø¡¢Âß¼­·ÖÇø¡¢À©Õ¹·ÖÇøÖ®Ò»\n"
+
+#: parted/parted.c:119
+msgid "FS-TYPE is one of: "
+msgstr "¡°ÎļþϵͳÀàÐÍ¡±ÊÇÒÔÏÂÈÎÒâÒ»Ï"
+
+#: parted/parted.c:120
+#, fuzzy
+msgid ""
+"START and END are disk locations, such as 4GB or 10%.  Negative values count "
+"from the end of the disk.  For example, -1s specifies exactly the last "
+"sector.\n"
+msgstr "¡°Æðʼµã¡±ºÍ¡°ÖÕÖ¹µã¡±ÒÔÕ×Ϊµ¥Î»¡£¸ºÖµ±íʾ´Ó´ÅÅÌÄ©¶Î¿ªÊ¼¼ÆÊý¡£\n"
+
+#: parted/parted.c:123
+msgid "STATE is one of: on, off\n"
+msgstr "״̬Ϊ£º¿ª¡¢¹Ø\n"
+
+#: parted/parted.c:124
+msgid "DEVICE is usually /dev/hda or /dev/sda\n"
+msgstr "DEVICE ͨ³£Îª /dev/hda »ò /dev/sda\n"
+
+#: parted/parted.c:125
+msgid "NAME is any word you want\n"
+msgstr "NAME ÊÇÄúÐèÒªµÄÈκε¥´Ê\n"
+
+#: parted/parted.c:126
+msgid "The partition must have one of the following FS-TYPEs: "
+msgstr ""
+
+#: parted/parted.c:130
+#, fuzzy
+msgid ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+msgstr ""
+"°æȨËùÓÐ (C) 1998, 1999, 2000, 2001, 2002, 2003 ×ÔÓÉÈí¼þ»ù½ð»á¡£\n"
+"±¾³ÌÐòΪ×ÔÓÉÈí¼þ£¬°´ GNU ͨÓù«¹²Ðí¿ÉÖ¤·¢ÐС£\n"
+"\n"
+"·¢Ðб¾³ÌÐòÊÇÏ£ÍûËüÄܹ»ÓÐÓ㬵«Ã»ÓÐÈκε£±££»ÉõÖÁ²»°üÀ¨Òþº¬µÄÊÊÏúºÍÊʺÏÌض¨ÓÃ"
+";µÄ±£Ö¤¡£ÏêÇéÇë²Î¼û GNU ͨÓù«¹²Ðí¿ÉÖ¤¡£\n"
+
+#: parted/parted.c:176
+#, c-format
+msgid "%0.f%%\t(time left %.2d:%.2d)"
+msgstr "%0.f%%\t(Ê£Óàʱ¼ä %.2d:%.2d)"
+
+#: parted/parted.c:195
+#, c-format
+msgid ""
+"Partition %s is being used. You must unmount it before you modify it with "
+"Parted."
+msgstr ""
+
+#: parted/parted.c:211
+#, c-format
+msgid "Partition(s) on %s are being used."
+msgstr "ÕýÔÚʹÓà %s ÉϵķÖÇø¡£"
+
+#: parted/parted.c:223
+msgid ""
+"The existing file system will be destroyed and all data on the partition "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:235
+#, c-format
+msgid ""
+"The existing disk label on %s will be destroyed and all data on this disk "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:458 parted/parted.c:652 parted/parted.c:1044
+#: parted/parted.c:1128 parted/parted.c:1771 parted/parted.c:1852
+#: parted/parted.c:1900
+msgid "Partition number?"
+msgstr "·ÖÇø±àºÅ£¿"
+
+#: parted/parted.c:500
+msgid "Source device?"
+msgstr "Ô´É豸£¿"
+
+#: parted/parted.c:504
+msgid "Source partition number?"
+msgstr "Ô´·ÖÇø±àºÅ£¿"
+
+#: parted/parted.c:509
+#, fuzzy
+msgid "Can't copy an extended partition."
+msgstr "²»ÄÜÖ»¸´ÖÆÀ©Õ¹·ÖÇø¡£"
+
+#: parted/parted.c:515
+msgid "Destination partition number?"
+msgstr "Ä¿±ê·ÖÇø±àºÅ£¿"
+
+#: parted/parted.c:615
+msgid "New disk label type?"
+msgstr "еĴÅÅ̱êÇ©ÀàÐÍ£¿"
+
+#: parted/parted.c:656
+msgid "File system?"
+msgstr "Îļþϵͳ£¿"
+
+#: parted/parted.c:707 parted/parted.c:878
+msgid "Partition type?"
+msgstr "·ÖÇøÀàÐÍ£¿"
+
+#: parted/parted.c:714 parted/parted.c:885 parted/parted.c:1131
+msgid "Partition name?"
+msgstr "·ÖÇøÃû³Æ£¿"
+
+#: parted/parted.c:722 parted/parted.c:895
+msgid "File system type?"
+msgstr "ÎļþϵͳÀàÐÍ£¿"
+
+#: parted/parted.c:729 parted/parted.c:897 parted/parted.c:1059
+#: parted/parted.c:1725 parted/parted.c:1780
+msgid "Start?"
+msgstr "Æðʼµã£¿"
+
+#: parted/parted.c:731 parted/parted.c:900 parted/parted.c:1062
+#: parted/parted.c:1727 parted/parted.c:1782
+msgid "End?"
+msgstr "½áÊøµã£¿"
+
+#: parted/parted.c:769 parted/parted.c:938
+#, c-format
+msgid ""
+"You requested a partition from %s to %s.\n"
+"The closest location we can manage is %s to %s.  Is this still acceptable to "
+"you?"
+msgstr ""
+
+#: parted/parted.c:890
+#, fuzzy
+msgid "An extended partition cannot hold a file system.  Did you want mkpart?"
+msgstr "À©Õ¹·ÖÇø²»Äܺ¬ÓÐÎļþϵͳ¡£ÄúÊÇÒªÓà mkpart °É£¿"
+
+#: parted/parted.c:1050
+#, fuzzy
+msgid "Can't move an extended partition."
+msgstr "ÎÞ·¨Òƶ¯À©Õ¹·ÖÇø¡£"
+
+#: parted/parted.c:1079
+msgid "Can't move a partition onto itself.  Try using resize, perhaps?"
+msgstr "ÎÞ·¨½«·ÖÇøÒƶ¯µ½Ëü×ÔÉí¡£ÊÔÓøıä´óС£¬¿ÉÄÜ£¿"
+
+#: parted/parted.c:1227
+#, c-format
+msgid "Minor: %d\n"
+msgstr "Minor£º%d\n"
+
+#: parted/parted.c:1228
+#, fuzzy, c-format
+msgid "Flags: %s\n"
+msgstr "±êÖ¾£º"
+
+#: parted/parted.c:1229
+#, c-format
+msgid "File System: %s\n"
+msgstr "Îļþϵͳ£º%s\n"
+
+#: parted/parted.c:1230
+#, fuzzy
+msgid "Size:         "
+msgstr "´óС£º         %10.3fMb (%d%%)\n"
+
+#: parted/parted.c:1235
+#, fuzzy
+msgid "Minimum size: "
+msgstr "×îС³ß´ç£º     %10.3fMb (%d%%)\n"
+
+#: parted/parted.c:1238
+#, fuzzy
+msgid "Maximum size: "
+msgstr "×î´ó³ß´ç£º     %10.3fMb (%d%%)\n"
+
+#: parted/parted.c:1362
+#, c-format
+msgid "Model: %s (%s)\n"
+msgstr ""
+
+#: parted/parted.c:1364
+#, fuzzy, c-format
+msgid "Disk %s: %s\n"
+msgstr "%s  %s  %s"
+
+#: parted/parted.c:1365
+#, c-format
+msgid "Sector size (logical/physical): %lldB/%lldB\n"
+msgstr ""
+
+#: parted/parted.c:1383
+#, c-format
+msgid "BIOS cylinder,head,sector geometry: %d,%d,%d.  Each cylinder is %s.\n"
+msgstr ""
+
+#: parted/parted.c:1392
+#, fuzzy, c-format
+msgid "Partition Table: %s\n"
+msgstr "·ÖÇøÃû³Æ£¿"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Number"
+msgstr ""
+
+#: parted/parted.c:1406 parted/parted.c:1409
+#, fuzzy
+msgid "Start"
+msgstr "Æðʼµã£¿"
+
+#: parted/parted.c:1407 parted/parted.c:1410
+#, fuzzy
+msgid "End"
+msgstr "½áÊøµã£¿"
+
+#: parted/parted.c:1410
+#, fuzzy
+msgid "Size"
+msgstr "resize"
+
+#: parted/parted.c:1414
+msgid "Type"
+msgstr ""
+
+#: parted/parted.c:1416
+#, fuzzy
+msgid "File system"
+msgstr "Îļþϵͳ£¿"
+
+#: parted/parted.c:1419
+#, fuzzy
+msgid "Name"
+msgstr "name"
+
+#: parted/parted.c:1421
+msgid "Flags"
+msgstr "±êÖ¾"
+
+#: parted/parted.c:1477
+msgid "Free Space"
+msgstr ""
+
+#: parted/parted.c:1624
+#, fuzzy, c-format
+msgid ""
+"A %s %s partition was found at %s -> %s.  Do you want to add it to the "
+"partition table?"
+msgstr ""
+"ÔÚ %3$.3fMb -> %4$.3fMb ´¦ÕÒµ½Ò»¸ö %1$s %2$s ·ÖÇø¡£ÄúÏ£Íû½«ÆäÌí¼Óµ½·ÖÇø±íÖÐ"
+"Âð£¿"
+
+#: parted/parted.c:1663
+msgid "searching for file systems"
+msgstr "ÕýÔÚËÑË÷Îļþϵͳ"
+
+#: parted/parted.c:1877
+msgid "New device?"
+msgstr "ÐÂÉ豸£¿"
+
+#: parted/parted.c:1902
+#, fuzzy
+msgid "Flag to Invert?"
+msgstr "ÒªÐ޸ĵıêÖ¾£¿"
+
+#: parted/parted.c:1907
+msgid "New state?"
+msgstr "ÐÂ״̬£¿"
+
+#: parted/parted.c:1944
+msgid "Unit?"
+msgstr ""
+
+#: parted/parted.c:2093
+msgid "check"
+msgstr "¼ì²é"
+
+#: parted/parted.c:2096
+#, fuzzy
+msgid ""
+"check NUMBER                             do a simple check on the file system"
+msgstr "¼ì²é  MINOR                   ¶ÔÎļþϵͳ½øÐÐÒ»¸ö¼òµ¥µÄ¼ì²é"
+
+#: parted/parted.c:2102
+msgid "cp"
+msgstr "cp"
+
+#: parted/parted.c:2105
+#, fuzzy
+msgid ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+"partition"
+msgstr "cp [FROM-DEVICE] FROM-MINOR TO-MINOR      ½«Îļþϵͳ¸´ÖƵ½ÁíÒ»¸ö·ÖÇø"
+
+#: parted/parted.c:2111
+msgid "help"
+msgstr "help"
+
+#: parted/parted.c:2114
+#, fuzzy
+msgid ""
+"help [COMMAND]                           print general help, or help on "
+"COMMAND"
+msgstr "help [COMMAND]                ´òӡͨÓÃÇóÖúÐÅÏ¢£¬»ò¹ØÓÚ COMMAND µÄÐÅÏ¢"
+
+#: parted/parted.c:2120
+msgid "mklabel"
+msgstr "mklabel"
+
+#: parted/parted.c:2120
+#, fuzzy
+msgid "mktable"
+msgstr "mklabel"
+
+#: parted/parted.c:2123
+#, fuzzy
+msgid ""
+"mklabel,mktable LABEL-TYPE               create a new disklabel (partition "
+"table)"
+msgstr "mklabel ±êÇ©ÀàÐÍ              ´´½¨ÐµĴÅÅ̱êÇ© (·ÖÇø±í)"
+
+#: parted/parted.c:2129
+msgid "mkfs"
+msgstr "mkfs"
+
+#: parted/parted.c:2132
+#, fuzzy
+msgid ""
+"mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on "
+"partititon NUMBER"
+msgstr ""
+"mkfs MINOR ÎļþϵͳÀàÐÍ       ÔÚ MINOR ´´½¨ÀàÐÍΪ¡°ÎļþϵͳÀàÐÍ¡±µÄÎļþϵͳ"
+
+#: parted/parted.c:2138
+msgid "mkpart"
+msgstr "mkpart"
+
+#: parted/parted.c:2141
+#, fuzzy
+msgid "mkpart PART-TYPE [FS-TYPE] START END     make a partition"
+msgstr "mkpart ·ÖÇøÀàÐÍ [ÎļþϵͳÀàÐÍ] Æðʼµã ÖÕÖ¹µã      ´´½¨Ò»¸ö·ÖÇø"
+
+#: parted/parted.c:2147
+#, fuzzy
+msgid ""
+"'mkpart' makes a partition without creating a new file system on the "
+"partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"
+msgstr ""
+"mkpart ´´½¨·ÖÇø¶ø²»ÔÚ·ÖÇøÉÏ´´½¨ÐÂÎļþϵͳ¡£¡°ÎļþϵͳÀàÐÍ¡±¿ÉÒÔÓÃÓÚÉèÖÃÊʵ±µÄ"
+"·ÖÇø±êʶ¡£\n"
+
+#: parted/parted.c:2152
+msgid "mkpartfs"
+msgstr "mkpartfs"
+
+#: parted/parted.c:2155
+#, fuzzy
+msgid ""
+"mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system"
+msgstr ""
+"mkpartfs ·ÖÇøÀàÐÍ ÎļþϵͳÀàÐÍ Æðʼµã ÖÕÖ¹µã  ´´½¨Ò»¸ö´øÓÐÎļþϵͳµÄ·ÖÇø"
+
+#: parted/parted.c:2161
+msgid "move"
+msgstr "move"
+
+#: parted/parted.c:2164
+#, fuzzy
+msgid "move NUMBER START END                    move partition NUMBER"
+msgstr "move MINOR Æðʼµã ÖÕÖ¹µã      Òƶ¯±àºÅΪ MINOR µÄ·ÖÇø"
+
+#: parted/parted.c:2169
+msgid "name"
+msgstr "name"
+
+#: parted/parted.c:2172
+#, fuzzy
+msgid "name NUMBER NAME                         name partition NUMBER as NAME"
+msgstr "name MINOR Ãû³Æ               ½«±àºÅΪ MINOR µÄ·ÖÇøÃüÃûΪ¡°Ãû³Æ¡±"
+
+#: parted/parted.c:2177
+msgid "print"
+msgstr "print"
+
+#: parted/parted.c:2180
+msgid ""
+"print [devices|free|list,all|NUMBER]     display the partition table, "
+"available devices, free space, all found partitions, or a particular "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2185
+msgid ""
+"Without arguments, 'print' displays the entire partition table. However with "
+"the following arguments it performs various other actions.\n"
+msgstr ""
+
+#: parted/parted.c:2187
+msgid "  devices   : display all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2188
+msgid ""
+"  free      : display information about free unpartitioned space on the "
+"current block device\n"
+msgstr ""
+
+#: parted/parted.c:2190
+#, fuzzy
+msgid ""
+"  list, all : display the partition tables of all active block devices\n"
+msgstr "print [MINOR]                 ´òÓ¡·ÖÇø±í£¬»òÕß·ÖÇø"
+
+#: parted/parted.c:2191
+msgid ""
+"  NUMBER    : display more detailed information about this particular "
+"partition\n"
+msgstr ""
+
+#: parted/parted.c:2196
+msgid "quit"
+msgstr "quit"
+
+#: parted/parted.c:2199
+#, fuzzy
+msgid "quit                                     exit program"
+msgstr "quit                          Í˳ö³ÌÐò"
+
+#: parted/parted.c:2204
+msgid "rescue"
+msgstr "rescue"
+
+#: parted/parted.c:2207
+#, fuzzy
+msgid ""
+"rescue START END                         rescue a lost partition near START "
+"and END"
+msgstr ""
+"rescue Æðʼµã ÖÕÖ¹µã          Íì¾ÈÁÙ½ü¡°Æðʼµã¡±¡¢¡°ÖÕÖ¹µã¡±µÄÒÅʧµÄ·ÖÇø"
+
+#: parted/parted.c:2213
+msgid "resize"
+msgstr "resize"
+
+#: parted/parted.c:2216
+#, fuzzy
+msgid ""
+"resize NUMBER START END                  resize partition NUMBER and its "
+"file system"
+msgstr ""
+"rescue Æðʼµã ÖÕÖ¹µã          Íì¾ÈÁÙ½ü¡°Æðʼµã¡±¡¢¡°ÖÕÖ¹µã¡±µÄÒÅʧµÄ·ÖÇø"
+
+#: parted/parted.c:2224
+msgid "rm"
+msgstr "rm"
+
+#: parted/parted.c:2227
+#, fuzzy
+msgid "rm NUMBER                                delete partition NUMBER"
+msgstr "rm MINOR                      ɾ³ý±àºÅΪ MINOR µÄ·ÖÇø"
+
+#: parted/parted.c:2232
+msgid "select"
+msgstr "select"
+
+#: parted/parted.c:2235
+#, fuzzy
+msgid "select DEVICE                            choose the device to edit"
+msgstr "select É豸                 Ñ¡ÔñÒª±à¼­µÄÉ豸"
+
+#: parted/parted.c:2240
+msgid "set"
+msgstr "set"
+
+#: parted/parted.c:2243
+#, fuzzy
+msgid ""
+"set NUMBER FLAG STATE                    change the FLAG on partition NUMBER"
+msgstr "set MINOR ±êÖ¾ ״̬           ¸Ä±ä±àºÅΪ MINOR µÄ·ÖÇøµÄ±êÖ¾"
+
+#: parted/parted.c:2249
+msgid "toggle"
+msgstr ""
+
+#: parted/parted.c:2252
+msgid ""
+"toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+"partition NUMBER"
+msgstr ""
+
+#: parted/parted.c:2258
+#, fuzzy
+msgid "unit"
+msgstr "quit"
+
+#: parted/parted.c:2261
+#, fuzzy
+msgid "unit UNIT                                set the default unit to UNIT"
+msgstr "quit                          Í˳ö³ÌÐò"
+
+#: parted/parted.c:2266
+msgid "version"
+msgstr ""
+
+#: parted/parted.c:2269
+msgid ""
+"version                                  display the version number and "
+"copyright information of GNU Parted"
+msgstr ""
+
+#: parted/parted.c:2273
+msgid ""
+"'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"
+msgstr ""
+
+#: parted/parted.c:2335
+#, c-format
+msgid "Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"
+msgstr ""
+
+#: parted/parted.c:2379
+msgid "No device found"
+msgstr "ûÓÐÕÒµ½É豸"
+
+#: parted/parted.c:2412
+msgid "WARNING: You are not superuser.  Watch out for permissions."
+msgstr ""
+
+#: parted/parted.c:2450
+#, fuzzy
+msgid "You may need to update /etc/fstab.\n"
+msgstr "Èç¹û±ØÒª£¬²»ÒªÍü¼Ç¸üР/etc/fstab¡£\n"
+
+#: parted/ui.c:160
+msgid "Welcome to GNU Parted! Type 'help' to view a list of commands.\n"
+msgstr ""
+
+#: parted/ui.c:163
+#, fuzzy
+msgid ""
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run "
+"in\n"
+"interactive mode.\n"
+msgstr ""
+"Ó÷¨£ºparted [Ñ¡Ïî]... [É豸 [ÃüÁî [²ÎÊý]...]...]\n"
+"½«´øÓС°²ÎÊý¡±µÄÃüÁîÓ¦ÓÃÓÚ¡°É豸¡±¡£Èç¹ûûÓиø³ö¡°ÃüÁ£¬ÔòÒÔ½»»¥Ä£Ê½ÔË"
+"ÐС£\n"
+
+#: parted/ui.c:168
+#, c-format
+msgid ""
+"\n"
+"\n"
+"You found a bug in GNU Parted! Here's what you have to do:\n"
+"\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n"
+"\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Please check this version prior to bug reporting.\n"
+"\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"for further information.\n"
+"\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n"
+msgstr ""
+
+#: parted/ui.c:284
+msgid ""
+"\n"
+"Command History:\n"
+msgstr ""
+
+#: parted/ui.c:366
+msgid ""
+"\n"
+"Error: SEGV_MAPERR (Address not mapped to object)\n"
+msgstr ""
+
+#: parted/ui.c:372
+msgid ""
+"\n"
+"Error: SEGV_ACCERR (Invalid permissions for mapped object)\n"
+msgstr ""
+
+#: parted/ui.c:377
+msgid ""
+"\n"
+"Error: A general SIGSEGV signal was encountered.\n"
+msgstr ""
+
+#: parted/ui.c:410
+msgid ""
+"\n"
+"Error: FPE_INTDIV (Integer: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:415
+msgid ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+msgstr ""
+
+#: parted/ui.c:420
+msgid ""
+"\n"
+"Error: FPE_FLTDIV (Float: divide by zero)"
+msgstr ""
+
+#: parted/ui.c:425
+msgid ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+msgstr ""
+
+#: parted/ui.c:430
+msgid ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+msgstr ""
+
+#: parted/ui.c:435
+msgid ""
+"\n"
+"Error: FPE_FLTRES (Float: inexact result)"
+msgstr ""
+
+#: parted/ui.c:440
+msgid ""
+"\n"
+"Error: FPE_FLTINV (Float: invalid operation)"
+msgstr ""
+
+#: parted/ui.c:445
+msgid ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript out of range)"
+msgstr ""
+
+#: parted/ui.c:450
+msgid ""
+"\n"
+"Error: A general SIGFPE signal was encountered."
+msgstr ""
+
+#: parted/ui.c:483
+msgid ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+msgstr ""
+
+#: parted/ui.c:488
+msgid ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+msgstr ""
+
+#: parted/ui.c:493
+msgid ""
+"\n"
+"Error: ILL_ILLADR (Illegal addressing mode)"
+msgstr ""
+
+#: parted/ui.c:498
+msgid ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+msgstr ""
+
+#: parted/ui.c:503
+msgid ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+msgstr ""
+
+#: parted/ui.c:508
+msgid ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+msgstr ""
+
+#: parted/ui.c:513
+msgid ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+msgstr ""
+
+#: parted/ui.c:518
+msgid ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+msgstr ""
+
+#: parted/ui.c:523
+msgid ""
+"\n"
+"Error: A general SIGILL signal was encountered."
+msgstr ""
+
+#: parted/ui.c:1024
+msgid "Expecting a partition number."
+msgstr "ÐèÒª·ÖÇø±àºÅ¡£"
+
+#: parted/ui.c:1033
+msgid "Partition doesn't exist."
+msgstr "·ÖÇø²»´æÔÚ¡£"
+
+#: parted/ui.c:1053
+msgid "Expecting a file system type."
+msgstr "ÐèÒªÎļþϵͳÀàÐÍ¡£"
+
+#: parted/ui.c:1060
+#, c-format
+msgid "Unknown file system type \"%s\"."
+msgstr "δ֪µÄÎļþϵͳÀàÐÍ¡°%s¡±¡£"
+
+#: parted/ui.c:1080
+msgid "Expecting a disk label type."
+msgstr "ÐèÒª´ÅÅ̱êÇ©ÀàÐÍ¡£"
+
+#: parted/ui.c:1178
+msgid "Can't create any more partitions."
+msgstr "ÎÞ·¨´´½¨¸ü¶à·ÖÇø¡£"
+
+#: parted/ui.c:1188
+msgid "Expecting a partition type."
+msgstr "ÐèÒª·ÖÇøÀàÐÍ¡£"
+
+#: parted/ui.c:1315
+msgid "on"
+msgstr "¿ª"
+
+#: parted/ui.c:1316
+msgid "off"
+msgstr "¹Ø"
+
+#: parted/ui.c:1431
+msgid "OPTIONs:"
+msgstr "Ñ¡Ï"
+
+#: parted/ui.c:1436
+msgid "COMMANDs:"
+msgstr "ÃüÁ"
+
+#: parted/ui.c:1445
+#, c-format
+msgid "Using %s\n"
+msgstr "ʹÓà %s\n"
+
+#: parted/ui.c:1519
+msgid "This command does not make sense in non-interactive mode.\n"
+msgstr ""
+
+#~ msgid "where necessary, prompts for user intervention"
+#~ msgstr "ÔÚ±ØҪʱ£¬ÌáʾÓû§"
+
+#, fuzzy
+#~ msgid ""
+#~ "Without arguments, print displays the entire partition table. With "
+#~ "'free'\n"
+#~ "argument, information about free space will be displayed otherwise if a\n"
+#~ "partition number is given, then more detailed information is displayed\n"
+#~ "about that partition. If the 'all' argument is passed instead, partition\n"
+#~ "information for all devices will be displayed.\n"
+#~ msgstr ""
+#~ "²»´ø²ÎÊý£¬print ÏÔʾÕû¸ö·ÖÇø±í¡£\n"
+#~ "Èç¹û¸ø³öÁË·ÖÇø±í£¬¾ÍÏÔʾ¸ü¶à\n"
+#~ "¹ØÓÚ·ÖÇøµÄÏêϸÐÅÏ¢¡£\n"
+
+#~ msgid ""
+#~ "The sector size on %s is %d bytes.  Parted is known not to work properly "
+#~ "with drives with sector sizes other than %d bytes"
+#~ msgstr ""
+#~ "%s ÉϵÄÉÈÇø´óСΪ %d ×Ö½Ú¡£Ä¿Ç° Parted ²»ÄÜÔÚÉÈÇø´óС²»ÊÇ %d ×ֽڵĴÅÅÌÉÏ"
+#~ "ÕýÈ·¹¤×÷¡£"
+
+#~ msgid "Could not read geometry of %s - %s."
+#~ msgstr "ÎÞ·¨¶ÁÈ¡ %s - %s µÄ¼¸ºÎ½á¹¹¡£"
+
+#~ msgid "Device %s has dodgey geometry."
+#~ msgstr "É豸 %s µÄ¼¸ºÎ½á¹¹ºÜÆæ¹Ö¡£"
+
+#~ msgid "IDE"
+#~ msgstr "IDE"
+
+#~ msgid "SCSI"
+#~ msgstr "SCSI"
+
+#~ msgid "Device %s is neither a SCSI nor IDE drive."
+#~ msgstr "É豸 %s ¼´²»ÊÇ SCSI ´ÅÅÌÒ²²»ÊÇ IDE ´ÅÅÌ¡£"
+
+#~ msgid "Error reading %s (%s) to determine if partition is mounted."
+#~ msgstr "Ϊȷ¶¨·ÖÇøÊÇ·ñ¼ÓÔضø¶ÁÈ¡ %s (%s) ʱ³ö´í¡£"
+
+#~ msgid ""
+#~ "Unable to determine if partitions are mounted via /proc/mounts or /etc/"
+#~ "mtab.  Make sure you don't attempt to resize or modify mounted file "
+#~ "systems.  (Even read-only mounted)"
+#~ msgstr ""
+#~ "ÎÞ·¨È·¶¨·ÖÇøÊÇ·ñÊÇͨ¹ý /proc/mounts »ò /etc/mtab ¼ÓÔصġ£ÇëÈ·ÈÏÄú²»»áÊÔͼ"
+#~ "¸Ä±äÎļþϵͳµÄ´óС»òÕßÐ޸ļÓÔصÄÎļþϵͳ¡£(¼´Ê¹°´Ö»¶Á·½Ê½¼ÓÔØÒ²²»ÐÐ)"
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  However, the most likely reason is that Linux "
+#~ "detected the BIOS geometry for %s incorrectly.  GNU Parted suspects the "
+#~ "real geometry should be %d/%d/%d (not %d/%d/%d).  You should check with "
+#~ "your BIOS first, as this may not be correct.  You can inform Linux by "
+#~ "adding the parameter %s=%d,%d,%d to the command line.  See the LILO or "
+#~ "GRUB documentation for more information.  If you think Parted's suggested "
+#~ "geometry is correct, you may select Ignore to continue (and fix Linux "
+#~ "later).  Otherwise, select Cancel (and fix Linux and/or the BIOS now)."
+#~ msgstr ""
+#~ "%s ÉϵķÖÇø²»Ð­µ÷¡£²úÉúÕâÖÖÇé¿öµÄÔ­ÒòºÜ¶à¡£È»¶ø£¬×î¿ÉÄܵÄÔ­ÒòÊÇ Linux ¼ì²â"
+#~ "µ½µÄ BIOS ¹ØÓÚ %s µÄ¼¸ºÎ½á¹¹ÊÇ´íÎóµÄ¡£GNU Parted »³ÒÉʵ¼ÊµÄ¼¸ºÎ½á¹¹Îª %d/%"
+#~ "d/%d (¶ø²»ÊÇ %d/%d/%d)¡£ÒòΪ BIOS ¿ÉÄܲ»ÕýÈ·£¬ÄúÓ¦¸ÃÊ×Ïȼì²éÄúµÄ BIOS¡£Äú"
+#~ "¿ÉÒÔͨ¹ýÔÚÃüÁîÐÐÖÐÌí¼Ó²ÎÊý %s=%d,%d,%d À´Í¨Öª Linux¡£ÏêÇéÇë²Î¼û LILO »ò "
+#~ "GRUB µÄÎĵµ¡£Èç¹ûÄúÈÏΪ Parted Ëù½¨ÒéµÄ¼¸ºÎ½á¹¹ÊÇÕýÈ·µÄ£¬Äú¿ÉÒÔºöÂÔ²¢¼ÌÐø "
+#~ "(²¢ÔÚÒÔºóÐÞÕý Linux)¡£·ñÔò£¬Ñ¡Ôñ·ÅÆú (²¢ÂíÉÏÐÞÕý Linux ²¢ÇÒ/»òÕß BIOS)¡£"
+
+#~ msgid ""
+#~ "The partition table on %s is inconsistent.  There are many reasons why "
+#~ "this might be the case.  Often, the reason is that Linux detected the "
+#~ "BIOS geometry incorrectly.  However, this does not appear to be the case "
+#~ "here.  It is safe to ignore,but ignoring may cause (fixable) problems "
+#~ "with some boot loaders, and may cause problems with FAT file systems.  "
+#~ "Using LBA is recommended."
+#~ msgstr ""
+#~ "%s ÉϵķÖÇø±í²»Ð­µ÷¡£¿ÉÄܵ¼ÖÂÕâÖÖÇé¿öµÄÔ­ÒòÓкܶࡣͨ³££¬Ô­ÒòÊÇ Linux ¼ì²â"
+#~ "µ½µÄ BIOS ¼¸ºÎ½á¹¹ÊÇ´íÎóµÄ¡£È»¶ø£¬ÏÖÔÚËƺõ²¢²»ÊÇÕâÖÖÇé¿ö¡£ºöÂÔÊÇ°²È«µÄ£¬µ«"
+#~ "ÊǺöÂÔ¿ÉÄܵ¼ÖÂijЩÆô¶¯¹ÜÀíÆ÷µÄÎÊÌâ (¿ÉÐÞ¸´µÄ)£¬»¹¿ÉÄܵ¼Ö FAT Îļþϵͳ³öÏÖ"
+#~ "ÎÊÌâ¡£½¨ÒéʹÓà LBA¡£"
+
+#~ msgid ""
+#~ "Unable to align partition properly.  This probably means that another "
+#~ "partitioning tool generated an incorrect partition table, because it "
+#~ "didn't have the correct BIOS geometry.  It is safe to ignore,but ignoring "
+#~ "may cause (fixable) problems with some boot loaders."
+#~ msgstr ""
+#~ "ÎÞ·¨ÕýÈ·µØ¶ÔÆë·ÖÇø¡£Õâ¿ÉÄÜÒâζ×ÅÆäËü·ÖÇø¹¤¾ßÓÉÓÚûÓеõ½ÕýÈ·µÄ BIOS ¼¸ºÎ½á"
+#~ "¹¹¶øÉú³ÉÁË´íÎóµÄ·ÖÇø±í¡£ºöÂÔÊÇ°²È«µÄ£¬µ«ºöÂÔ¿ÉÄܵ¼ÖÂijЩÆô¶¯¹ÜÀíÆ÷³öÏÖ¿ÉÐÞ"
+#~ "¸´µÄÎÊÌâ¡£"
+
+#~ msgid "Attempt to read sectors %ld-%ld outside of partition on %s"
+#~ msgstr "ÊÔͼ¶ÁÈ¡ %3$s ÉÏ·ÖÇøÖ®ÍâµÄÉÈÇø %1$ld-%2$ld"
+
+#~ msgid ""
+#~ "This ext2 filesystem has a rather strange layout!  Parted can't resize "
+#~ "this (yet)."
+#~ msgstr "¸Ã ext2 ÎļþϵͳµÄ²¼¾ÖÏ൱Ææ¹Ö£¡Parted ÉÐÇÒÎÞ·¨¸Ä±äËüµÄ´óС¡£"
+
+#~ msgid "File system has an invalid signature for a FAT file systems."
+#~ msgstr "Îļþϵͳº¬ÓÐÎÞЧµÄ FAT ÎļþϵͳǩÃû¡£"
+
+#~ msgid ""
+#~ "Partition %s is being used.  Modifying it while it is in use could cause "
+#~ "severe corruption."
+#~ msgstr "ÕýÔÚʹÓ÷ÖÇø %s¡£ÔÚʹÓÃʱÐÞ¸ÄËû½«µ¼ÖÂÑÏÖصÄÆÆ»µ¡£"
+
+#~ msgid ""
+#~ "You requested to create a partition at %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "ÄúÒªÇóÔÚ %.3f - %.3fMb µÄλÖô´½¨·ÖÇø¡£¿É¹ÜÀíµÄ×îÏà½ü·ÖÇøΪ %.3f-%.3fMb¡£"
+
+#~ msgid ""
+#~ "You requested to move the partition to %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "ÄúÇëÇ󽫷ÖÇøÒƶ¯µ½ %.3f - %.3fMb¡£¿É¹ÜÀí×îÌù½üµÄ·ÖÇøΪ %.3f - %.3fMB¡£"
+
+#~ msgid "Disk geometry for %s: 0.000-%.3f megabytes\n"
+#~ msgstr "%s µÄ´ÅÅ̼¸ºÎ½á¹¹£º0.000-%.3f Õ××Ö½Ú\n"
+
+#~ msgid "Disk label type: %s\n"
+#~ msgstr "´ÅÅ̱êÇ©ÀàÐÍ£º%s\n"
+
+#~ msgid "Minor    Start       End     "
+#~ msgstr "Minor    Æðʼµã        ÖÕÖ¹µã  "
+
+#~ msgid "Type      "
+#~ msgstr "ÀàÐÍ      "
+
+#~ msgid "Filesystem  "
+#~ msgstr "Îļþϵͳ    "
+
+#~ msgid "Name                  "
+#~ msgstr "Ãû³Æ                  "
+
+#~ msgid ""
+#~ "You requested to resize the partition to %.3f-%.3fMb. The closest Parted "
+#~ "can manage is %.3f-%.3fMb."
+#~ msgstr ""
+#~ "ÄúÒªÇ󽫷ÖÇø¸Ä±ä´óС²¢±£´æµ½ %.3f - %.3fMb¡£¿É¹ÜÀí×î½Ó½üµÄ·ÖÇøΪ %.3f - "
+#~ "%.3fMb¡£"
+
+#~ msgid "resize MINOR START END        resize filesystem on partition MINOR"
+#~ msgstr ""
+#~ "resize MINOR Æðʼµã ÖÕÖ¹µã    ¸Ä±äλÓÚ±àºÅΪ MINOR µÄ·ÖÇøÖÐÎļþϵͳµÄ´óС"
+
+#~ msgid ""
+#~ "You found a bug in GNU Parted.  Please email a bug report to bug-"
+#~ "parted@gnu.org containing the version (%s), and the following message:\n"
+#~ msgstr ""
+#~ "ÄúÕÒµ½ÁË GNU Parted µÄ bug¡£Ç뽫º¬Óа汾 (%s) ºÍÒÔÏÂÐÅÏ¢µÄ bug ±¨¸æ·¢Ë͵½ "
+#~ "bug-parted@gnu.org£º\n"
+
+#~ msgid ""
+#~ "  You have Windows FAT partition(s) that are not using LBA.  If your BIOS "
+#~ "supports LBA, then you should switch to LBA by setting the LBA flag on "
+#~ "all FAT partitions.  Otherwise, make sure the operating system and the "
+#~ "BIOS have the same geometry before resizing any FAT partitions."
+#~ msgstr ""
+#~ "ÄúʹÓÃÁ˲»Ê¹Óà LBA µÄ Windows FAT ·ÖÇø¡£Èç¹ûÄúµÄ BIOS Ö§³Ö LBA£¬ÄÇôÄúÓ¦¸Ã"
+#~ "ͨ¹ýÔÚËùÓÐ FAT ·ÖÇøÉÏÉèÖà LBA ±êÖ¾ÒÔÇл»µ½ LBA ģʽ¡£·ñÔò£¬ÔڸıäÈκΠFAT "
+#~ "·ÖÇø´óСµÄʱºòÈ·ÈϲÙ×÷ϵͳºÍ BIOS ʹÓÃÏàͬµÄ¼¸ºÎ½á¹¹¡£"
+
+#~ msgid ""
+#~ "The operating system thinks the geometry on %s is %d/%d/%d.  Therefore, "
+#~ "cylinder 1024 ends at %.3fM.%s"
+#~ msgstr ""
+#~ "²Ù×÷ϵͳÈÏΪ %s µÄ¼¸ºÎ½á¹¹Îª %d/%d/%d¡£Òò´Ë£¬ÖùÃæ 1024 ½áÊøÓÚ %.3fM.%s"
+
+#~ msgid "The operating system thinks the geometry on %s is %d/%d/%d.%s"
+#~ msgstr "²Ù×÷ϵͳÈÏΪ %s µÄ¼¸ºÎ½á¹¹ %d/%d/%d.%s"
diff --git a/parted-1.8.7/po/zh_TW.gmo b/parted-1.8.7/po/zh_TW.gmo
new file mode 100644
index 0000000..2fabd8d
--- /dev/null
+++ b/parted-1.8.7/po/zh_TW.gmo
Binary files differ
diff --git a/parted-1.8.7/po/zh_TW.po b/parted-1.8.7/po/zh_TW.po
new file mode 100644
index 0000000..70693b9
--- /dev/null
+++ b/parted-1.8.7/po/zh_TW.po
@@ -0,0 +1,3129 @@
+# Traditional Chinese Messages for parted
+# Copyright (C) 2003, 05, 06 Free Software Foundation, Inc.
+# Wang Li <charles@linux.net.cn>, 2003
+# Wei-Lun Chao <chaoweilun@pcmail.com.tw>, 2005, 06
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: parted 1.7.0rc1\n"
+"Report-Msgid-Bugs-To: bug-parted@gnu.org\n"
+"POT-Creation-Date: 2007-05-09 17:02-0400\n"
+"PO-Revision-Date: 2006-07-04 18:18+0800\n"
+"Last-Translator: Wei-Lun Chao <chaoweilun@pcmail.com.tw>\n"
+"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: lib/closeout.c:74
+msgid "write error"
+msgstr ""
+
+#: lib/error.c:125
+#, fuzzy
+msgid "Unknown system error"
+msgstr "未知的檔案系統類型「%s」。"
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#. TRANSLATORS:
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'".  If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK).  A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#.
+#. If you don't know what to put here, please see
+#. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr ""
+
+#: lib/regcomp.c:131
+msgid "Success"
+msgstr ""
+
+#: lib/regcomp.c:134
+msgid "No match"
+msgstr ""
+
+#: lib/regcomp.c:137
+msgid "Invalid regular expression"
+msgstr ""
+
+#: lib/regcomp.c:140
+msgid "Invalid collation character"
+msgstr ""
+
+#: lib/regcomp.c:143
+msgid "Invalid character class name"
+msgstr ""
+
+#: lib/regcomp.c:146
+msgid "Trailing backslash"
+msgstr ""
+
+#: lib/regcomp.c:149
+msgid "Invalid back reference"
+msgstr ""
+
+#: lib/regcomp.c:152
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: lib/regcomp.c:155
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: lib/regcomp.c:158
+msgid "Unmatched \\{"
+msgstr ""
+
+#: lib/regcomp.c:161
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: lib/regcomp.c:164
+#, fuzzy
+msgid "Invalid range end"
+msgstr "無效的編號。"
+
+#: lib/regcomp.c:167
+msgid "Memory exhausted"
+msgstr ""
+
+#: lib/regcomp.c:170
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: lib/regcomp.c:173
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: lib/regcomp.c:176
+msgid "Regular expression too big"
+msgstr ""
+
+#: lib/regcomp.c:179
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: lib/regcomp.c:680
+msgid "No previous regular expression"
+msgstr ""
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr ""
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr ""
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale.  Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:66
+msgid "(C)"
+msgstr ""
+
+#: lib/version-etc.c:68
+msgid ""
+"\n"
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:84
+#, c-format
+msgid "Written by %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:88
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:92
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:98
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:104
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:110
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:132
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:142
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+
+#: lib/xalloc-die.c:35
+msgid "memory exhausted"
+msgstr ""
+
+#: libparted/arch/beos.c:237
+msgid "Disk Image"
+msgstr ""
+
+#: libparted/arch/beos.c:338 libparted/arch/gnu.c:261
+#: libparted/arch/linux.c:1272
+#, c-format
+msgid "Error opening %s: %s"
+msgstr "開啟 %s 出錯:%s"
+
+#: libparted/arch/beos.c:349 libparted/arch/gnu.c:271
+#: libparted/arch/linux.c:1283
+#, c-format
+msgid "Unable to open %s read-write (%s).  %s has been opened read-only."
+msgstr "無法開啟 %s 以讀寫 (%s)。%s 已用唯讀的方式開啟。"
+
+#: libparted/arch/beos.c:411 libparted/arch/linux.c:1431
+#, c-format
+msgid "%s during seek for read on %s"
+msgstr "在為讀取 %2$s 而呼叫 seek 時 %1$s"
+
+#: libparted/arch/beos.c:444 libparted/arch/gnu.c:449 libparted/arch/gnu.c:548
+#: libparted/arch/gnu.c:676 libparted/arch/linux.c:1391
+#: libparted/arch/linux.c:1469
+#, c-format
+msgid "%s during read on %s"
+msgstr "在讀取 %2$s 期間 %1$s"
+
+#: libparted/arch/beos.c:480 libparted/arch/gnu.c:509
+#: libparted/arch/linux.c:1546
+#, c-format
+msgid "Can't write to %s, because it is opened read-only."
+msgstr "由於 %s 是以唯讀方式開啟的,因此無法寫入。"
+
+#: libparted/arch/beos.c:496 libparted/arch/linux.c:1570
+#, c-format
+msgid "%s during seek for write on %s"
+msgstr "在為寫入 %2$s 呼叫 seek 時 %1$s"
+
+#: libparted/arch/beos.c:533 libparted/arch/gnu.c:585 libparted/arch/gnu.c:630
+#: libparted/arch/gnu.c:707 libparted/arch/linux.c:1517
+#: libparted/arch/linux.c:1612 libparted/arch/linux.c:1684
+#, c-format
+msgid "%s during write on %s"
+msgstr "在寫入 %2$s 時 %1$s"
+
+#: debug/clearfat/clearfat.c:63 partprobe/partprobe.c:137
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:67
+#, c-format
+msgid ""
+"Usage: %s [OPTION]\n"
+"  or:  %s DEVICE MINOR\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:70
+msgid ""
+"Clear unused space on a FAT partition (a GNU Parted testing tool).\n"
+"\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:74
+msgid "      --help     display this help and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:75
+msgid "      --version  output version information and exit\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:77 partprobe/partprobe.c:154
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:285
+#, c-format
+msgid "too few arguments"
+msgstr ""
+
+#: debug/clearfat/clearfat.c:290
+#, fuzzy, c-format
+msgid "too many arguments"
+msgstr "過多的不當分頁。"
+
+#: partprobe/partprobe.c:141
+#, c-format
+msgid "Usage: %s [OPTION] [DEVICE]...\n"
+msgstr ""
+
+#: partprobe/partprobe.c:142
+msgid ""
+"Inform the OS of partition table changes.\n"
+"\n"
+"  -d, --no-update  don't update the kernel\n"
+"  -s, --summary    print a summary of contents\n"
+"  -h, --help       display this help and exit\n"
+"  -v, --version    output version information and exit\n"
+msgstr ""
+
+#: partprobe/partprobe.c:150
+msgid ""
+"\n"
+"With no DEVICE, probe all partitions.\n"
+msgstr ""
+
+#: libparted/arch/gnu.c:94
+#, c-format
+msgid "Unable to open %s."
+msgstr "無法開啟 %s。"
+
+#: libparted/arch/gnu.c:114
+msgid "Unable to probe store."
+msgstr "無法偵測儲存設備。"
+
+#: libparted/arch/gnu.c:352
+msgid ""
+"The partition table cannot be re-read.  This means you need to reboot before "
+"mounting any modified partitions.  You also need to reinstall your boot "
+"loader before you reboot (which may require mounting modified partitions).  "
+"It is impossible do both things!  So you'll need to boot off a rescue disk, "
+"and reinstall your boot loader from the rescue disk.  Read section 4 of the "
+"Parted User documentation for more information."
+msgstr ""
+"無法重新讀入分割區表。同樣,您必須在掛載任何修改過的分割區之前重新啟動。您還"
+"需要在您重新啟動之前重新安裝開機載入程式 (它可能需要掛載修改過的分割區)。同時"
+"做這兩件事是不可能的!所以您就需要從回復碟片啟動,並從回復碟片重新安裝您的開"
+"機載入程式。更多詳情請參閱 Parted 使用者文件的第四節。"
+
+#: libparted/arch/gnu.c:369
+#, c-format
+msgid ""
+"The partition table on %s cannot be re-read (%s).  This means the Hurd knows "
+"nothing about any modifications you made.  You should reboot your computer "
+"before doing anything with %s."
+msgstr ""
+"%s 上的分割區表無法被重新讀取 (%s)。這意味著 Hurd 不知道任何您所作的修改。您"
+"應該在對 %s 做任何操作之前重新啟動您的電腦。"
+
+#: libparted/arch/gnu.c:380 parted/parted.c:2443
+msgid ""
+"You should reinstall your boot loader before rebooting.  Read section 4 of "
+"the Parted User documentation for more information."
+msgstr ""
+"您應該在重新啟動之前重新安裝您的開機載入程式。詳情請閱讀 Parted 使用者文件的"
+"第四節。"
+
+#: libparted/arch/gnu.c:772
+#, c-format
+msgid "%s trying to sync %s to disk"
+msgstr "%s 試圖將 %s 同步到磁碟上"
+
+#: libparted/arch/linux.c:408
+#, c-format
+msgid "Could not stat device %s - %s."
+msgstr "無法對設備 %s - %s 進行 stat 操作。"
+
+#: libparted/arch/linux.c:523
+#, fuzzy, c-format
+msgid ""
+"Could not determine sector size for %s: %s.\n"
+"Using the default sector size (%lld)."
+msgstr ""
+"無法決定 %s 的磁區大小:%s。\n"
+"使用預設磁區大小 (%d)。"
+
+#: libparted/arch/linux.c:539
+#, fuzzy, c-format
+msgid ""
+"Device %s has a logical sector size of %lld.  Not all parts of GNU Parted "
+"support this at the moment, and the working code is HIGHLY EXPERIMENTAL.\n"
+msgstr "%s 的邏輯磁區大小為 %d。目前並非全部的 GNU Parted 都支援它。\n"
+
+#: libparted/arch/linux.c:579
+#, c-format
+msgid "Unable to determine the size of %s (%s)."
+msgstr "無法確定 %s (%s) 的大小。"
+
+#: libparted/arch/linux.c:668
+#, c-format
+msgid "Could not get identity of device %s - %s"
+msgstr "無法獲取設備 %s - %s 的標識"
+
+#: libparted/arch/linux.c:677
+msgid "Generic IDE"
+msgstr "一般 IDE"
+
+#: libparted/arch/linux.c:698
+#, c-format
+msgid ""
+"Device %s has multiple (%d) logical sectors per physical sector.\n"
+"GNU Parted supports this EXPERIMENTALLY for some special disk label/file "
+"system combinations, e.g. GPT and ext2/3.\n"
+"Please consult the web site for up-to-date information."
+msgstr ""
+"裝置 %s 的每一物理磁區具有多個 (%d) 邏輯磁區。\n"
+"GNU Parted 對某些特定磁碟標籤/檔案系統組合還是[實驗性]支援,像是 GPT 和 "
+"ext2/3。\n"
+"請參照網頁以獲得最新的資訊。"
+
+#: libparted/arch/linux.c:873
+#, c-format
+msgid "Error initialising SCSI device %s - %s"
+msgstr "初始化 SCSI 設備 %s - %s 出錯"
+
+#: libparted/arch/linux.c:928
+#, c-format
+msgid ""
+"The device %s has zero length, and can't possibly store a file system or "
+"partition table.  Perhaps you selected the wrong device?"
+msgstr ""
+"設備 %s 的長度為零,因此也許無法保存檔案系統或分割區表。可能您選擇了錯誤的設"
+"備?"
+
+#: libparted/arch/linux.c:1032
+#, fuzzy, c-format
+msgid ""
+"Unable to determine geometry of file/device %s.  You should not use Parted "
+"unless you REALLY know what you're doing!"
+msgstr ""
+"無法確定檔案/設備的幾何結構。除非您確實知道您在做什麼,否則您不該使用 "
+"Parted!"
+
+#: libparted/arch/linux.c:1110
+msgid "DAC960 RAID controller"
+msgstr "DAC960 RAID 控制器"
+
+#: libparted/arch/linux.c:1115
+msgid "Promise SX8 SATA Device"
+msgstr ""
+
+#: libparted/arch/linux.c:1120
+msgid "IBM S390 DASD drive"
+msgstr ""
+
+#: libparted/arch/linux.c:1125
+msgid "IBM iSeries Virtual DASD"
+msgstr ""
+
+#: libparted/arch/linux.c:1130
+msgid "Compaq Smart Array"
+msgstr "Compaq 智慧型陣列"
+
+#: libparted/arch/linux.c:1135
+msgid "ATARAID Controller"
+msgstr "ATARAID 控制器"
+
+#: libparted/arch/linux.c:1140
+msgid "I2O Controller"
+msgstr "I2O 控制器"
+
+#: libparted/arch/linux.c:1145
+msgid "User-Mode Linux UBD"
+msgstr "使用者模式 Linux UBD"
+
+#: libparted/arch/linux.c:1156
+msgid "Linux device-mapper"
+msgstr ""
+
+#: libparted/arch/linux.c:1162
+msgid "Unknown"
+msgstr "未知"
+
+#: libparted/arch/linux.c:1169
+msgid "ped_device_new()  Unsupported device type"
+msgstr "ped_device_new()  不支援的設備類型"
+
+#: libparted/arch/linux.c:2083
+#, c-format
+msgid ""
+"Error informing the kernel about modifications to partition %s -- %s.  This "
+"means Linux won't know about any changes you made to %s until you reboot -- "
+"so you shouldn't mount it or use it in any way before rebooting."
+msgstr ""
+"通知核心關於分割區 %s -- %s 的修改時出錯。這意味著 Linux 在重新啟動之前無法知"
+"道您針對 %s 所作的任何修改 - 所以您也不能在重新啟動之前掛載或以任何方式使用"
+"它。"
+
+#: libparted/arch/linux.c:2262
+#, fuzzy, c-format
+msgid ""
+"parted was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made. "
+msgstr ""
+"核心無法重新讀取 %s (%s) 上的分割區表。這意味這 Linux 在您重新啟動之前無法知"
+"道任何修改。您應該在對 %s 做任何操作之前重新啟動您的電腦。"
+
+#: libparted/arch/linux.c:2368
+#, c-format
+msgid ""
+"The kernel was unable to re-read the partition table on %s (%s).  This means "
+"Linux won't know anything about the modifications you made until you "
+"reboot.  You should reboot your computer before doing anything with %s."
+msgstr ""
+"核心無法重新讀取 %s (%s) 上的分割區表。這意味這 Linux 在您重新啟動之前無法知"
+"道任何修改。您應該在對 %s 做任何操作之前重新啟動您的電腦。"
+
+#: libparted/cs/geom.c:162
+msgid "Can't have the end before the start!"
+msgstr "無法在開始之前結束!"
+
+#: libparted/cs/geom.c:169
+msgid "Can't have a partition outside the disk!"
+msgstr "無法讓分割區超出磁碟!"
+
+#: libparted/cs/geom.c:366
+#, c-format
+msgid "Attempt to write sectors %ld-%ld outside of partition on %s."
+msgstr "試圖寫入 %3$s 上分割區之外的磁區 %1$ld-%2$ld。"
+
+#: libparted/cs/geom.c:406 libparted/fs/linux_swap/linux_swap.c:475
+msgid "checking for bad blocks"
+msgstr "檢查壞區塊"
+
+#: libparted/debug.c:102
+#, c-format
+msgid "Backtrace has %d calls on stack:\n"
+msgstr ""
+
+#: libparted/debug.c:114
+#, c-format
+msgid "Assertion (%s) at %s:%d in function %s() failed."
+msgstr ""
+
+#: libparted/disk.c:203
+#, c-format
+msgid "Unable to open %s - unrecognised disk label."
+msgstr "無法開啟 %s - 無法識別的磁碟標籤。"
+
+#: libparted/disk.c:471
+#, c-format
+msgid ""
+"This libparted doesn't have write support for %s.  Perhaps it was compiled "
+"read-only."
+msgstr "這個 libparted 不支援對 %s 的寫入操作。可能它是以唯讀方式編譯的。"
+
+#: libparted/disk.c:598
+#, c-format
+msgid "Partition %d is %s, but the file system is %s."
+msgstr "分割區 %d 大小為 %s,但檔案系統大小為 %s。"
+
+#: libparted/disk.c:1075
+#, c-format
+msgid "%s disk labels do not support extended partitions."
+msgstr "%s 磁碟標籤不支援擴充分割區。"
+
+#: libparted/disk.c:1634
+#, c-format
+msgid "%s disk labels don't support logical or extended partitions."
+msgstr "%s 磁碟標籤不支援邏輯或擴充分割區。"
+
+#: libparted/disk.c:1647
+msgid "Too many primary partitions."
+msgstr "過多的主分割區。"
+
+#: libparted/disk.c:1656
+#, c-format
+msgid ""
+"Can't add a logical partition to %s, because there is no extended partition."
+msgstr "由於沒有擴充分割區,無法將邏輯分割區添加到 %s。"
+
+#: libparted/disk.c:1680
+#, c-format
+msgid "Can't have more than one extended partition on %s."
+msgstr "%s 上不能含有多於一個的擴充分割區。"
+
+#: libparted/disk.c:1690
+msgid "Can't have logical partitions outside of the extended partition."
+msgstr "邏輯分割區不能位於擴充分割區之外。"
+
+#: libparted/disk.c:1715
+#, c-format
+msgid "Can't have a logical partition outside of the extended partition on %s."
+msgstr "%s 上的邏輯分割區不能位於擴充分割區之外。"
+
+#: libparted/disk.c:1725 libparted/disk.c:1779 libparted/disk.c:1945
+msgid "Can't have overlapping partitions."
+msgstr "分割區不能重疊。"
+
+#: libparted/disk.c:1733
+msgid "Can't have a primary partition inside an extended partition."
+msgstr "擴充分割區中不能含有主分割區。"
+
+#: libparted/disk.c:2140
+msgid "metadata"
+msgstr "中繼資料"
+
+#: libparted/disk.c:2142
+msgid "free"
+msgstr "自由空間"
+
+#: libparted/disk.c:2144 parted/ui.c:1169 parted/ui.c:1197
+msgid "extended"
+msgstr "擴充分割區"
+
+#: libparted/disk.c:2146 parted/ui.c:1173 parted/ui.c:1201
+msgid "logical"
+msgstr "邏輯分割區"
+
+#: libparted/disk.c:2148 parted/ui.c:1165 parted/ui.c:1193
+msgid "primary"
+msgstr "主分割區"
+
+#: libparted/disk.c:2164
+msgid "boot"
+msgstr "啟動"
+
+#: libparted/disk.c:2166
+msgid "root"
+msgstr "根"
+
+#: libparted/disk.c:2168
+msgid "swap"
+msgstr "交換分割區"
+
+#: libparted/disk.c:2170
+msgid "hidden"
+msgstr "隱藏分割區"
+
+#: libparted/disk.c:2172
+msgid "raid"
+msgstr "raid"
+
+#: libparted/disk.c:2174
+msgid "lvm"
+msgstr "lvm"
+
+#: libparted/disk.c:2176
+msgid "lba"
+msgstr "lba"
+
+#: libparted/disk.c:2178
+msgid "hp-service"
+msgstr "hp-服務"
+
+#: libparted/disk.c:2180
+msgid "palo"
+msgstr "palo"
+
+#: libparted/disk.c:2182
+msgid "prep"
+msgstr "prep"
+
+#: libparted/disk.c:2184
+msgid "msftres"
+msgstr "msftres"
+
+#: libparted/disk.c:2190
+#, c-format
+msgid "Unknown partition flag, %d."
+msgstr "未知的分割區旗標,%d。"
+
+#: libparted/exception.c:78
+msgid "Information"
+msgstr "資訊"
+
+#: libparted/exception.c:79
+msgid "Warning"
+msgstr "警告"
+
+#: libparted/exception.c:80
+msgid "Error"
+msgstr "錯誤"
+
+#: libparted/exception.c:81
+msgid "Fatal"
+msgstr "致命錯誤"
+
+#: libparted/exception.c:82
+msgid "Bug"
+msgstr "臭蟲"
+
+#: libparted/exception.c:83
+msgid "No Implementation"
+msgstr "未實作"
+
+#: libparted/exception.c:87
+msgid "Fix"
+msgstr "修正"
+
+#: libparted/exception.c:88
+msgid "Yes"
+msgstr "是"
+
+#: libparted/exception.c:89
+msgid "No"
+msgstr "否"
+
+#: libparted/exception.c:90
+msgid "OK"
+msgstr "確認"
+
+#: libparted/exception.c:91
+msgid "Retry"
+msgstr "重試"
+
+#: libparted/exception.c:92
+msgid "Ignore"
+msgstr "忽略"
+
+#: libparted/exception.c:93
+msgid "Cancel"
+msgstr "取消"
+
+#: libparted/exception.c:133
+#, c-format
+msgid ""
+"A bug has been detected in GNU Parted.  Refer to the web site of parted "
+"http://www.gnu.org/software/parted/parted.html for more informations of what "
+"could be useful for bug submitting!  Please email a bug report to bug-"
+"parted@gnu.org containing at least the version (%s) and the following "
+"message:  "
+msgstr ""
+"發現 GNU Parted 中的程式錯誤。參照 parted 的網址 http://www.gnu.org/software/"
+"parted/parted.html 以獲得更多有關提交錯誤報告的有用資訊。請將至少含有版本 (%"
+"s) 和以下資訊的錯誤報告發送到 bug-parted@gnu.org:"
+
+#: libparted/filesys.c:384
+msgid "Could not detect file system."
+msgstr "無法偵測檔案系統。"
+
+#: libparted/filesys.c:395
+msgid "The file system is bigger than its volume!"
+msgstr "檔案系統比它的卷冊還大!"
+
+#: libparted/filesys.c:403
+#, c-format
+msgid "Support for opening %s file systems is not implemented yet."
+msgstr "開啟 %s 檔案系統的支援尚未實作。"
+
+#: libparted/filesys.c:445
+#, c-format
+msgid "Support for creating %s file systems is not implemented yet."
+msgstr "建立 %s 檔案系統的支援尚未實作。"
+
+#: libparted/filesys.c:505
+#, c-format
+msgid "Support for checking %s file systems is not implemented yet."
+msgstr "檢查 %s 檔案系統的支援尚未實作。"
+
+#: libparted/filesys.c:571
+msgid "raw block copying"
+msgstr "原始區塊複製"
+
+#: libparted/filesys.c:582
+msgid "growing file system"
+msgstr "正在擴大檔案系統"
+
+#: libparted/filesys.c:622
+msgid "Can't copy onto an overlapping partition."
+msgstr "無法複製到重疊的分割區。"
+
+#: libparted/filesys.c:644
+#, c-format
+msgid ""
+"Direct support for copying file systems is not yet implemented for %s.  "
+"However, support for resizing is implemented.  Therefore, the file system "
+"can be copied if the new partition is at least as big as the old one.  So, "
+"either shrink the partition you are trying to copy, or copy to a bigger "
+"partition."
+msgstr ""
+"對 %s 來說尚不直接支援它的檔案系統複製。然而,改變大小的支援已實作完成。因"
+"此,只要新分割區比舊分割區大,就能夠複製檔案系統。所以,縮小您試圖複製的分割"
+"區,或是複製到較大的分割區。"
+
+#: libparted/filesys.c:658
+#, c-format
+msgid "Support for copying %s file systems is not implemented yet."
+msgstr "複製 %s 檔案系統的支援尚未實作。"
+
+#: libparted/filesys.c:696
+#, c-format
+msgid "Support for resizing %s file systems is not implemented yet."
+msgstr "改變 %s 檔案系統的支援尚未實作。"
+
+#: libparted/fs/reiserfs/reiserfs.c:315
+msgid "creating"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:402
+#, fuzzy
+msgid "The file system is in an invalid state.  Perhaps it is mounted?"
+msgstr "檔案系統比它的卷冊還大!"
+
+#: libparted/fs/reiserfs/reiserfs.c:410
+msgid "The file system is in old (unresizeable) format."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:416
+msgid "Invalid free blocks count.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:431
+#, fuzzy
+msgid "checking"
+msgstr "檢查"
+
+#: libparted/fs/reiserfs/reiserfs.c:437
+msgid "Reiserfs tree seems to be corrupted.  Run reiserfsck --check first."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:449
+#, fuzzy
+msgid ""
+"The reiserfs file system passed a basic check.  For a more comprehensive "
+"check, run reiserfsck --check."
+msgstr "ext2 檔案系統通過了基本檢查。至於更完整的檢查,請使用 e2fsck 程式。"
+
+#: libparted/fs/reiserfs/reiserfs.c:474
+#, fuzzy
+msgid "Sorry, can't move the start of reiserfs partitions yet."
+msgstr "抱歉,尚無法移動 ext2 分割區的起點!"
+
+#: libparted/fs/reiserfs/reiserfs.c:490
+msgid "Couldn't reopen device abstraction layer for read/write."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:508 libparted/fs/ext2/ext2_resize.c:552
+#: libparted/fs/hfs/hfs.c:250 libparted/fs/hfs/hfs.c:629
+msgid "shrinking"
+msgstr "正在縮小"
+
+#: libparted/fs/reiserfs/reiserfs.c:520
+#, fuzzy
+msgid "expanding"
+msgstr "警告"
+
+#: libparted/fs/reiserfs/reiserfs.c:592
+msgid "Couldn't create reiserfs device abstraction handler."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:606
+#, fuzzy, c-format
+msgid "Device is too small for %lu blocks."
+msgstr "對 ext2 來說檔案系統過小。"
+
+#: libparted/fs/reiserfs/reiserfs.c:615
+msgid "copying"
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:682
+#, c-format
+msgid "Couldn't resolve symbol %s.  Error: %s."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:704
+msgid "GNU Parted found an invalid libreiserfs library."
+msgstr ""
+
+#: libparted/fs/reiserfs/reiserfs.c:715
+#, c-format
+msgid ""
+"GNU Parted has detected libreiserfs interface version mismatch.  Found %d-%"
+"d, required %d. ReiserFS support will be disabled."
+msgstr ""
+
+#: libparted/labels/aix.c:137
+#, fuzzy
+msgid "Support for reading AIX disk labels is is not implemented yet."
+msgstr "建立 %s 檔案系統的支援尚未實作。"
+
+#: libparted/labels/aix.c:148
+#, fuzzy
+msgid "Support for writing AIX disk labels is is not implemented yet."
+msgstr "建立 %s 檔案系統的支援尚未實作。"
+
+#: libparted/labels/aix.c:161
+#, fuzzy
+msgid ""
+"Support for adding partitions to AIX disk labels is not implemented yet."
+msgstr "建立 %s 檔案系統的支援尚未實作。"
+
+#: libparted/labels/aix.c:171
+#, fuzzy
+msgid ""
+"Support for duplicating partitions in AIX disk labels is not implemented yet."
+msgstr "建立 %s 檔案系統的支援尚未實作。"
+
+#: libparted/labels/aix.c:189
+#, fuzzy
+msgid ""
+"Support for setting system type of partitions in AIX disk labels is not "
+"implemented yet."
+msgstr "建立 %s 檔案系統的支援尚未實作。"
+
+#: libparted/labels/aix.c:199
+#, fuzzy
+msgid "Support for setting flags in AIX disk labels is not implemented yet."
+msgstr "建立 %s 檔案系統的支援尚未實作。"
+
+#: libparted/labels/bsd.c:501 libparted/labels/dasd.c:755
+#: libparted/labels/dos.c:1974 libparted/labels/dvh.c:770
+#: libparted/labels/gpt.c:1448 libparted/labels/loop.c:248
+#: libparted/labels/mac.c:1408 libparted/labels/pc98.c:759
+#: libparted/labels/rdb.c:1041 libparted/labels/sun.c:705
+msgid "Unable to satisfy all constraints on the partition."
+msgstr "無法滿足分割區的所有限制。"
+
+#: libparted/labels/bsd.c:526
+msgid "Unable to allocate a bsd disklabel slot."
+msgstr "無法定位 bsd 磁碟標籤槽。"
+
+#: libparted/labels/dasd.c:166
+#, fuzzy
+msgid "Unable to determine the block size of this dasd"
+msgstr "無法確定 %s (%s) 的大小。"
+
+#: libparted/labels/dasd.c:781
+#, fuzzy
+msgid "Unable to allocate a dasd disklabel slot"
+msgstr "無法定位 bsd 磁碟標籤槽。"
+
+#: libparted/labels/dos.c:827
+#, c-format
+msgid "Invalid partition table on %s -- wrong signature %x."
+msgstr "%s 上的分割區表無效 - 錯誤的簽名 %x。"
+
+#: libparted/labels/dos.c:855
+#, c-format
+msgid "Invalid partition table - recursive partition on %s."
+msgstr "無效的分割區表 - %s 出現遞歸分割區。"
+
+#: libparted/labels/dos.c:1318
+msgid "Extended partitions cannot be hidden on msdos disk labels."
+msgstr "擴充分割區無法隱藏於 msdos 磁碟標籤之上。"
+
+#: libparted/labels/dos.c:1958
+msgid "Parted can't resize partitions managed by Windows Dynamic Disk."
+msgstr "Parted 無法改變由「視窗動態磁碟」所管理的分割區大小。"
+
+#: libparted/labels/dvh.c:190
+#, c-format
+msgid "%s has no extended partition (volume header partition)."
+msgstr "%s 沒有擴充分割區 (卷頭分割區)。"
+
+#: libparted/labels/dvh.c:313
+msgid "Checksum is wrong, indicating the partition table is corrupt."
+msgstr "總和檢查錯誤,標明分割區表已損壞。"
+
+#: libparted/labels/dvh.c:616
+msgid "Only primary partitions can be root partitions."
+msgstr "只有主分割區可以做為根分割區。"
+
+#: libparted/labels/dvh.c:630
+msgid "Only primary partitions can be swap partitions."
+msgstr "只有主分割區可以是交換分割區。"
+
+#: libparted/labels/dvh.c:644
+msgid "Only logical partitions can be a boot file."
+msgstr "只有邏輯分割區可以是個開機檔案。"
+
+#: libparted/labels/dvh.c:721
+msgid "Only logical partitions (boot files) have a name."
+msgstr "只有邏輯分割區 (開機檔案) 擁有名字。"
+
+#: libparted/labels/dvh.c:812
+msgid "Too many primary partitions"
+msgstr "過多的主分割區"
+
+#: libparted/labels/fdasd.c:103
+#, c-format
+msgid ""
+"%s open error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:107
+#, c-format
+msgid ""
+"%s seek error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:110
+#, c-format
+msgid ""
+"%s read error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:113
+#, fuzzy, c-format
+msgid ""
+"%s write error\n"
+"%s\n"
+msgstr "在寫入 %2$s 時 %1$s"
+
+#: libparted/labels/fdasd.c:116
+#, c-format
+msgid ""
+"%s IOCTL error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:119
+#, c-format
+msgid ""
+"%s API version mismatch\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:122
+#, c-format
+msgid ""
+"%s Unsupported disk type\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:126
+#, c-format
+msgid ""
+"%s Unsupported disk format\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:130
+#, fuzzy, c-format
+msgid ""
+"%s Disk in use\n"
+"%s\n"
+msgstr "磁碟 %s:%s\n"
+
+#: libparted/labels/fdasd.c:133
+#, c-format
+msgid ""
+"%s Config file syntax error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:137
+#, c-format
+msgid ""
+"%s Volume label is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:141
+#, c-format
+msgid ""
+"%s a data set name is corrupted.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:145
+#, c-format
+msgid ""
+"%s space allocation\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:149
+#, c-format
+msgid ""
+"%s device verification failed\n"
+"The specified device is not a valid DASD device\n"
+msgstr ""
+
+#: libparted/labels/fdasd.c:154
+#, c-format
+msgid ""
+"%s Fatal error\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/gpt.c:454
+#, c-format
+msgid ""
+"%s contains GPT signatures, indicating that it has a GPT table.  However, it "
+"does not have a valid fake msdos partition table, as it should.  Perhaps it "
+"was corrupted -- possibly by a program that doesn't understand GPT partition "
+"tables.  Or perhaps you deleted the GPT table, and are now using an msdos "
+"partition table.  Is this a GPT partition table?"
+msgstr ""
+"%s 含有 GPT 簽名,標明它含有 GPT 表。然而,它並不像應該的那樣含有有效的偽 "
+"msdos 分割區表。可能它已經損壞 - 可能是不理解 GPT 分割區表的程式所導致的。或"
+"者您刪除了 GPT 表,而現在使用 msdos 分割區表。這是 GPT 分割區表嗎?"
+
+#: libparted/labels/gpt.c:648
+#, c-format
+msgid ""
+"The format of the GPT partition table is version %x, which is newer than "
+"what Parted can recognise.  Please tell us!  bug-parted@gnu.org"
+msgstr ""
+"GPT 分割區表的格式版本為 %x,它比 Parted 所能識別的版本要新。請告訴我們!bug-"
+"parted@gnu.org"
+
+#: libparted/labels/gpt.c:698
+#, c-format
+msgid ""
+"Not all of the space available to %s appears to be used, you can fix the GPT "
+"to use all of the space (an extra %llu blocks) or continue with the current "
+"setting? "
+msgstr ""
+
+#: libparted/labels/gpt.c:827
+msgid ""
+"The backup GPT table is not at the end of the disk, as it should be.  This "
+"might mean that another operating system believes the disk is smaller.  Fix, "
+"by moving the backup to the end (and removing the old backup)?"
+msgstr ""
+"備份 GPT 表不像應該的那樣出現在磁碟的末尾。這可能意味者其它操作系統相信磁碟小"
+"一些。經由將備份移動到末尾 (並刪除舊備份) 來修正它?"
+
+#: libparted/labels/gpt.c:862
+msgid ""
+"The primary GPT table is corrupt, but the backup appears OK, so that will be "
+"used."
+msgstr "主 GPT 表損壞,但備份似乎是正確的,所以將會使用它。"
+
+#: libparted/labels/gpt.c:870
+msgid ""
+"Both the primary and backup GPT tables are corrupt.  Try making a fresh "
+"table, and using Parted's rescue feature to recover partitions."
+msgstr ""
+"主 GPT 和備份 GPT 都損壞了。現在試圖建立新表,並使用 Parted 的回復功能以重建"
+"分割區表。"
+
+#: libparted/labels/mac.c:181
+#, c-format
+msgid "Invalid signature %x for Mac disk labels."
+msgstr "無效的 Mac 磁碟標籤簽名 %x。"
+
+#: libparted/labels/mac.c:226
+msgid "Partition map has no partition map entry!"
+msgstr "分割區映射不含有分割區映射條目!"
+
+#: libparted/labels/mac.c:273
+#, c-format
+msgid "%s is too small for a Mac disk label!"
+msgstr "%s 對 Mac 磁碟標籤來說太小了!"
+
+#: libparted/labels/mac.c:532
+#, c-format
+msgid "Partition %d has an invalid signature %x."
+msgstr "分割區 %d 含有無效的簽名 %x。"
+
+#: libparted/labels/mac.c:550
+#, c-format
+msgid "Partition %d has an invalid length of 0 bytes!"
+msgstr "分割區 %d 含有無效的長度 0 位元組!"
+
+#: libparted/labels/mac.c:580
+msgid "The data region doesn't start at the start of the partition."
+msgstr "資料區並未從分割區的起點開始。"
+
+#: libparted/labels/mac.c:597
+msgid "The boot region doesn't start at the start of the partition."
+msgstr "啟動區域並未從分割區的起點開始。"
+
+#: libparted/labels/mac.c:611
+msgid "The partition's boot region doesn't occupy the entire partition."
+msgstr "分割區的啟動區域並未佔用整個分割區。"
+
+#: libparted/labels/mac.c:622
+msgid "The partition's data region doesn't occupy the entire partition."
+msgstr "分割區的資料區域並未佔用整個分割區。"
+
+#: libparted/labels/mac.c:675
+#, c-format
+msgid ""
+"Weird block size on device descriptor: %d bytes is not divisible by 512."
+msgstr "設備描述中出現古怪的區塊大小:%d 位元組不能被 512 整除。"
+
+#: libparted/labels/mac.c:688
+#, c-format
+msgid ""
+"The driver descriptor says the physical block size is %d bytes, but Linux "
+"says it is %d bytes."
+msgstr "磁碟描述表明物理區塊大小為 %d 位元組,但 Linux 認為它是 %d 位元組。"
+
+#: libparted/labels/mac.c:736
+msgid "No valid partition map found."
+msgstr "找不到有效的分割區映射。"
+
+#: libparted/labels/mac.c:795
+#, c-format
+msgid ""
+"Conflicting partition map entry sizes!  Entry 1 says it is %d, but entry %d "
+"says it is %d!"
+msgstr "分割區映射條目大小發生衝突!條目 1 說它是 %d,但條目 %d 說它是 %d!"
+
+#: libparted/labels/mac.c:822
+msgid "Weird!  There are 2 partitions map entries!"
+msgstr "奇怪!兩個分割區映射條目!"
+
+#: libparted/labels/mac.c:1347
+msgid ""
+"Changing the name of a root or swap partition will prevent Linux from "
+"recognising it as such."
+msgstr "改變根分割區或交換分割區的名稱將導致 Linux 無法識別它。"
+
+#: libparted/labels/mac.c:1443
+msgid "Can't add another partition -- the partition map is too small!"
+msgstr "無法添加另一個分割區 -- 分割區映射過小!"
+
+#: libparted/labels/pc98.c:354
+#, c-format
+msgid "Invalid partition table on %s."
+msgstr "%s 的分割區表無效。"
+
+#: libparted/labels/pc98.c:406 libparted/labels/pc98.c:484
+#, c-format
+msgid ""
+"Partition %d isn't aligned to cylinder boundaries.  This is still "
+"unsupported."
+msgstr "分割區 %d 並未對齊到磁柱邊界。此功能仍然尚未被支援。"
+
+#: libparted/labels/pc98.c:791
+msgid "Can't add another partition."
+msgstr "無法添加其它分割區。"
+
+#: libparted/labels/rdb.c:162
+#, c-format
+msgid "%s : Bad checksum on block %llu of type %s."
+msgstr "%s:區塊 %llu 的類型 %s 有不當的總和檢查值。"
+
+#: libparted/labels/rdb.c:497
+#, c-format
+msgid "%s : Didn't find rdb block, should never happen."
+msgstr "%s:無法找到 rdb 區塊,這不應該發生。"
+
+#: libparted/labels/rdb.c:581
+#, c-format
+msgid "%s : Loop detected at block %d."
+msgstr "%s:於區塊 %d 偵測到迴圈。"
+
+#: libparted/labels/rdb.c:600
+#, c-format
+msgid "%s : The %s list seems bad at block %s."
+msgstr "%1$s:區塊 %3$s 處似有不當 %2$s 列表。"
+
+#: libparted/labels/rdb.c:689
+#, c-format
+msgid "%s : Failed to list bad blocks."
+msgstr "%s:列舉不當區塊時失敗。"
+
+#: libparted/labels/rdb.c:697
+#, c-format
+msgid "%s : Failed to list partition blocks."
+msgstr "%s:列舉分割區區塊時失敗。"
+
+#: libparted/labels/rdb.c:705
+#, c-format
+msgid "%s : Failed to list file system blocks."
+msgstr "%s:列舉檔案系統區塊時失敗。"
+
+#: libparted/labels/rdb.c:713
+#, c-format
+msgid "%s : Failed to list boot blocks."
+msgstr "%s:列舉開機區塊時失敗。"
+
+#: libparted/labels/rdb.c:740
+#, c-format
+msgid "Failed to write partition block at %d."
+msgstr "寫入分割區區塊 %d 時失敗。"
+
+#: libparted/labels/rdb.c:1069
+msgid "Unable to allocate a partition number."
+msgstr "無法定位分割區編號。"
+
+#: libparted/labels/sun.c:145
+msgid "Corrupted Sun disk label detected."
+msgstr "偵測到損壞了的 Sun 磁碟標籤。"
+
+#: libparted/labels/sun.c:266
+#, c-format
+msgid ""
+"The disk CHS geometry (%d,%d,%d) reported by the operating system does not "
+"match the geometry stored on the disk label (%d,%d,%d)."
+msgstr ""
+"由作業系統回報的磁碟 CHS 幾何結構 (%d,%d,%d) 與保存在磁碟標籤中的幾何結構 (%"
+"d,%d,%d) 不符合。"
+
+#: libparted/labels/sun.c:288
+#, c-format
+msgid "The disk label describes a disk bigger than %s."
+msgstr "磁碟標籤描述的磁碟大於 %s。"
+
+#: libparted/labels/sun.c:442
+#, c-format
+msgid "The disk has %d cylinders, which is greater than the maximum of 65536."
+msgstr "該磁碟具有 %d 圈磁柱,已超過 65536 的最大限制。"
+
+#: libparted/labels/sun.c:737
+msgid ""
+"The Whole Disk partition is the only available one left.  Generally, it is "
+"not a good idea to overwrite this partition with a real one.  Solaris may "
+"not be able to boot without it, and SILO (the sparc boot loader) appreciates "
+"it as well."
+msgstr ""
+"整個磁碟分割區是惟一還留下可用的區塊。一般而言,以真實的區塊來覆寫這塊分割區 "
+"並不是個好主意。沒有了它,Solaris 也許就無法開機,並且 SILO (sparc 開機載入程"
+"式) 也會因此而感激的。"
+
+#: libparted/labels/sun.c:752
+msgid "Sun disk label is full."
+msgstr "Sun 磁碟標籤已滿。"
+
+#: libparted/labels/vtoc.c:163
+#, c-format
+msgid ""
+"%s opening device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:167
+#, c-format
+msgid ""
+"%s seeking device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:171
+#, c-format
+msgid ""
+"%s writing to device '%s' failed,\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:175
+#, c-format
+msgid ""
+"%s reading from device '%s' failed.\n"
+"%s\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:179
+#, c-format
+msgid "Fatal error\n"
+msgstr ""
+
+#: libparted/labels/vtoc.c:418
+msgid "Could not read VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:424
+msgid "Could not read VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:431
+msgid "Could not read VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:438
+msgid "Could not read VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:445
+msgid "Could not read VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:462
+msgid "Could not write VTOC labels."
+msgstr ""
+
+#: libparted/labels/vtoc.c:468
+msgid "Could not write VTOC FMT1 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:475
+msgid "Could not write VTOC FMT4 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:482
+msgid "Could not write VTOC FMT5 DSCB."
+msgstr ""
+
+#: libparted/labels/vtoc.c:489
+msgid "Could not write VTOC FMT7 DSCB."
+msgstr ""
+
+#: libparted/libparted.c:296 libparted/libparted.c:316
+msgid "Out of memory."
+msgstr "記憶體耗盡。"
+
+#: libparted/unit.c:139
+msgid "Cannot get unit size for special unit 'COMPACT'."
+msgstr "無法獲得特殊的「COMPACT」所用的單位大小。"
+
+#: libparted/unit.c:386
+#, c-format
+msgid "\"%s\" has invalid syntax for locations."
+msgstr "定位 \"%s\" 時語法無效。"
+
+#: libparted/unit.c:394
+#, c-format
+msgid "The maximum head value is %d."
+msgstr "磁頭數量的最大值為 %d。"
+
+#: libparted/unit.c:401
+#, c-format
+msgid "The maximum sector value is %d."
+msgstr "磁區數量的最大值為 %d。"
+
+#: libparted/unit.c:413 libparted/unit.c:545
+#, c-format
+msgid "The location %s is outside of the device %s."
+msgstr "位置 %s 超出裝置 %s 的範圍。"
+
+#: libparted/unit.c:527
+msgid "Invalid number."
+msgstr "無效的編號。"
+
+#: libparted/fs/amiga/affs.c:63 libparted/fs/amiga/apfs.c:56
+#: libparted/fs/amiga/asfs.c:70
+#, fuzzy, c-format
+msgid "%s : Failed to allocate partition block\n"
+msgstr "%s:列舉分割區區塊時失敗。"
+
+#: libparted/fs/amiga/affs.c:78 libparted/fs/amiga/apfs.c:70
+#: libparted/fs/amiga/asfs.c:86
+#, fuzzy, c-format
+msgid "%s : Failed to allocate block\n"
+msgstr "%s:列舉開機區塊時失敗。"
+
+#: libparted/fs/amiga/affs.c:83 libparted/fs/amiga/apfs.c:75
+#, fuzzy, c-format
+msgid "%s : Couldn't read boot block %llu\n"
+msgstr "%s:於區塊 %d 偵測到迴圈。"
+
+#: libparted/fs/amiga/affs.c:99 libparted/fs/amiga/apfs.c:86
+#: libparted/fs/amiga/asfs.c:92 libparted/fs/amiga/asfs.c:106
+#, fuzzy, c-format
+msgid "%s : Couldn't read root block %llu\n"
+msgstr "%s:於區塊 %d 偵測到迴圈。"
+
+#: libparted/fs/amiga/amiga.c:72
+#, fuzzy, c-format
+msgid "%s : Failed to allocate id list element\n"
+msgstr "%s:列舉不當區塊時失敗。"
+
+#: libparted/fs/amiga/amiga.c:189
+#, c-format
+msgid "%s : Couldn't read block %llu\n"
+msgstr ""
+
+#: libparted/fs/amiga/amiga.c:202
+#, fuzzy, c-format
+msgid "%s : Bad checksum on block %llu of type %s\n"
+msgstr "%s:區塊 %llu 的類型 %s 有不當的總和檢查值。"
+
+#: libparted/fs/amiga/amiga.c:212
+#, fuzzy, c-format
+msgid "%s : Couldn't write block %d\n"
+msgstr "%s:於區塊 %d 偵測到迴圈。"
+
+#: libparted/fs/amiga/amiga.c:278
+#, fuzzy, c-format
+msgid "%s : Failed to allocate disk_specific rdb block\n"
+msgstr "%s:列舉不當區塊時失敗。"
+
+#: libparted/fs/amiga/amiga.c:289
+#, fuzzy, c-format
+msgid "%s : Didn't find rdb block, should never happen\n"
+msgstr "%s:無法找到 rdb 區塊,這不應該發生。"
+
+#: libparted/fs/amiga/amiga.c:318
+#, fuzzy, c-format
+msgid "%s : Failed to read partition block %llu\n"
+msgstr "%s:列舉分割區區塊時失敗。"
+
+#: libparted/fs/ext2/ext2.c:87 libparted/fs/ext2/ext2.c:112
+msgid "Inconsistent group descriptors!"
+msgstr "不一致的群組描述符號!"
+
+#: libparted/fs/ext2/ext2.c:91 libparted/fs/ext2/ext2.c:116
+msgid "File system full!"
+msgstr "檔案系統已滿!"
+
+#: libparted/fs/ext2/ext2.c:686
+msgid "Invalid superblock.  Are you sure this is an ext2 file system?"
+msgstr "無效的超區塊。您確信它是一個 ext2 檔案系統?"
+
+#: libparted/fs/ext2/ext2.c:700 libparted/fs/ext2/ext2_resize.c:658
+msgid "File system has errors!  You should run e2fsck."
+msgstr "檔案系統發生錯誤!您應該執行 e2fsck。"
+
+#: libparted/fs/ext2/ext2.c:711
+msgid ""
+"File system was not cleanly unmounted!  You should run e2fsck.  Modifying an "
+"unclean file system could cause severe corruption."
+msgstr ""
+"檔案系統沒有被乾淨地卸載!您應該執行 e2fsck。修改不乾淨的檔案系統可能導致嚴重"
+"的損壞。"
+
+#: libparted/fs/ext2/ext2.c:731
+msgid "File system has an incompatible feature enabled."
+msgstr "檔案系統啟用了不相容的功能。"
+
+#: libparted/fs/ext2/ext2.c:742
+msgid "Error allocating buffer cache."
+msgstr "分配緩衝區快取時發生錯誤。"
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:114
+msgid ""
+"Found an inode with a incorrect link count.  Better go run e2fsck first!"
+msgstr "找到帶有錯誤連結計數的 inode。最好先執行 e2fsck!"
+
+#: libparted/fs/ext2/ext2_inode_relocator.c:487
+msgid "Not enough free inodes!"
+msgstr "沒有足夠的可用 inodes!"
+
+#: libparted/fs/ext2/ext2_resize.c:223
+msgid "File system is too full to remove a group!"
+msgstr "檔案系統被過度佔用,以致無法刪除整組!"
+
+#: libparted/fs/ext2/ext2_resize.c:232
+msgid "File system has too many allocated inodes to remove a group!"
+msgstr "檔案系統中已使用的 inode 過多,以致無法刪除整組!"
+
+#: libparted/fs/ext2/ext2_resize.c:491
+msgid "adding groups"
+msgstr "添加群組"
+
+#: libparted/fs/ext2/ext2_resize.c:528
+#, c-format
+msgid "Your file system is too full to resize it to %i blocks.  Sorry."
+msgstr "您的檔案系統被過度佔用,以致無法將它的大小改變為 %i 個區塊。抱歉。"
+
+#: libparted/fs/ext2/ext2_resize.c:538
+#, c-format
+msgid ""
+"Your file system has too many occupied inodes to resize it to %i blocks.  "
+"Sorry."
+msgstr ""
+"您的檔案系統中已使用的 inode 過多,以致無法將其大小改變為 %i 個區塊。抱歉。"
+
+#: libparted/fs/ext2/ext2_resize.c:666
+msgid "File system was not cleanly unmounted!  You should run e2fsck."
+msgstr "檔案系統沒有乾淨地卸載!您應該執行 e2fsck。"
+
+#: libparted/fs/ext2/ext2_resize.c:675
+msgid ""
+"The file system has the 'dir_index' feature enabled.  Parted can only resize "
+"the file system if it disables this feature.  You can enable it later by "
+"running 'tune2fs -O dir_index DEVICE' and then 'e2fsck -fD DEVICE'."
+msgstr ""
+"檔案系統已啟用「dir_index」的特殊功能。只有當此特性停用時,Parted 才能改變檔"
+"案系統的大小。您可以在稍後利用執行「tune2fs -O dir_index DEVICE」來啟用它,然"
+"後接著「e2fsck -fD DEVICE」。"
+
+#: libparted/fs/ext2/ext2_resize.c:691
+#, fuzzy
+msgid ""
+"A resize operation on this file system will use EXPERIMENTAL code\n"
+"that MAY CORRUPT it (although no one has reported any such damage yet).\n"
+"You should at least backup your data first, and run 'e2fsck -f' afterwards."
+msgstr ""
+"在這個檔案系統上改變大小的操作,將會使用[實驗性]的程式碼,它[有可能]造成[毀"
+"損](雖然還不曾發生過)。您應該至少要備份您的資料,並在之後執行 'e2fsck -f'。"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:198
+msgid "Cross-linked blocks found!  Better go run e2fsck first!"
+msgstr "發現交叉連結區塊!最好先執行 e2fsck!"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:537
+#, c-format
+msgid "Block %i has no reference?  Weird."
+msgstr "區塊 %i 沒有被參照?奇怪。"
+
+#: libparted/fs/ext2/ext2_block_relocator.c:737
+#, fuzzy, c-format
+msgid "Block %i shouldn't have been marked (%d, %d)!"
+msgstr "區塊 %i 不應該已被標記!"
+
+#: libparted/fs/ext2/interface.c:186
+msgid ""
+"The ext2 file system passed a basic check.  For a more comprehensive check, "
+"use the e2fsck program."
+msgstr "ext2 檔案系統通過了基本檢查。至於更完整的檢查,請使用 e2fsck 程式。"
+
+#: libparted/fs/ext2/interface.c:203
+msgid "Sorry, can't move the start of ext2 partitions yet!"
+msgstr "抱歉,尚無法移動 ext2 分割區的起點!"
+
+#: libparted/fs/ext2/ext2_buffer.c:82
+msgid "Couldn't flush buffer cache!"
+msgstr "無法排空緩衝區快取!"
+
+#: libparted/fs/ext2/ext2_mkfs.c:162
+msgid "writing per-group metadata"
+msgstr "寫入個別群組的中繼資料"
+
+#: libparted/fs/ext2/ext2_mkfs.c:564
+msgid "File system too small for ext2."
+msgstr "對 ext2 來說檔案系統過小。"
+
+#: libparted/fs/fat/calc.c:135
+#, c-format
+msgid ""
+"You need %s of free disk space to shrink this partition to this size.  "
+"Currently, only %s is free."
+msgstr ""
+"您需要 %s 的自由空間來將此分割區收縮到這一大小。而目前只有 %s 的自由空間。"
+
+#: libparted/fs/fat/context.c:56
+#, c-format
+msgid ""
+"Cluster start delta = %d, which is not a multiple of the cluster size %d."
+msgstr "磁簇起始偏移 = %d,不是磁簇大小 %d 的整數倍。"
+
+#: libparted/fs/fat/fat.c:308
+#, c-format
+msgid "Partition too big/small for a %s file system."
+msgstr "對於 %s 檔案系統來說,分割區過大或過小。"
+
+#: libparted/fs/fat/fat.c:474
+msgid ""
+"The FATs don't match.  If you don't know what this means, then select "
+"cancel, run scandisk on the file system, and then come back."
+msgstr ""
+"FAT 不相符合。如果你不知道它的含義,請選擇取消,並對檔案系統執行 scandisk,然"
+"後再回到這裡來。"
+
+#: libparted/fs/fat/fat.c:514
+msgid "There are no possible configurations for this FAT type."
+msgstr "對於此 FAT 類型沒有可能的配置。"
+
+#: libparted/fs/fat/fat.c:526
+#, c-format
+msgid ""
+"File system doesn't have expected sizes for Windows to like it.  Cluster "
+"size is %dk (%dk expected); number of clusters is %d (%d expected); size of "
+"FATs is %d sectors (%d expected)."
+msgstr ""
+"檔案系統的大小不是 Windows 所希望的。磁簇大小為 %dk (期望 %dk);磁簇數量為 %"
+"d (期望 %d);FAT 的大小為 %d 磁區 (期望 %d)。"
+
+#: libparted/fs/fat/fat.c:549
+#, c-format
+msgid ""
+"File system is reporting the free space as %d clusters, not %d clusters."
+msgstr "檔案系統報告自由空間為 %d 磁簇,而不是 %d 磁簇。"
+
+#: libparted/fs/fat/fat.c:874
+msgid ""
+"GNU Parted was miscompiled: the FAT boot sector should be 512 bytes.  FAT "
+"support will be disabled."
+msgstr "GNU parted 編譯錯誤:FAT 啟動磁區應為 512 位元組。FAT 支援將被關閉。"
+
+#: libparted/fs/fat/resize.c:159
+msgid ""
+"There's not enough room in the root directory for all of the files.  Either "
+"cancel, or ignore to lose the files."
+msgstr "根目錄下沒有保存所有檔案的足夠空間。取消或者以損失檔案為代價忽略它。"
+
+#: libparted/fs/fat/resize.c:300
+msgid "Error writing to the root directory."
+msgstr "寫入根目錄時錯誤。"
+
+#: libparted/fs/fat/resize.c:489
+msgid "If you leave your file system as FAT16, then you will have no problems."
+msgstr "如果將您的檔案系統類型保持 FAT16 不變,那麼你就不會有問題。"
+
+#: libparted/fs/fat/resize.c:492
+msgid ""
+"If you convert to FAT16, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual)."
+msgstr ""
+"如果您轉換為 FAT16,並將 MS Windows 安裝到這個分割區,那麼您必須重新安裝 MS "
+"Windows 開機載入程式。如果您打算這麼做,您應該參閱 Parted 的手冊 (或您的發行"
+"版手冊)。"
+
+#: libparted/fs/fat/resize.c:500
+msgid ""
+"If you leave your file system as FAT32, then you will not introduce any new "
+"problems."
+msgstr "如果您保持檔案系統類型為 FAT32 不變,那麼您將不會遇到任何新問題。"
+
+#: libparted/fs/fat/resize.c:504
+msgid ""
+"If you convert to FAT32, and MS Windows is installed on this partition, then "
+"you must re-install the MS Windows boot loader.  If you want to do this, you "
+"should consult the Parted manual (or your distribution's manual).  Also, "
+"converting to FAT32 will make the file system unreadable by MS DOS, MS "
+"Windows 95a, and MS Windows NT."
+msgstr ""
+"如果您轉換為 FAT32,並且 MS Windows 安裝在這個分割區,那麼您必須重新安裝 MS "
+"Windows 的開機載入程式。如果您打算這樣作,您應該參閱 Parted 的手冊 (或者您的"
+"發行版手冊)。此外,將檔案系統轉換為 FAT32,檔案系統就不能夠被 MS DOS、MS "
+"Windows 95a 和 MS Windows NT 所存取。"
+
+#: libparted/fs/fat/resize.c:518
+#, c-format
+msgid "%s  %s  %s"
+msgstr "%s  %s  %s"
+
+#: libparted/fs/fat/resize.c:519
+msgid "Would you like to use FAT32?"
+msgstr "您是否願意使用 FAT32?"
+
+#: libparted/fs/fat/resize.c:550 libparted/fs/fat/resize.c:566
+#, c-format
+msgid "%s  %s"
+msgstr "%s  %s"
+
+#: libparted/fs/fat/resize.c:551
+msgid ""
+"The file system can only be resized to this size by converting to FAT16."
+msgstr "檔案系統的大小只能經由轉換為 FAT16 改變到這一大小。"
+
+#: libparted/fs/fat/resize.c:567
+msgid ""
+"The file system can only be resized to this size by converting to FAT32."
+msgstr "檔案系統的大小只能經由轉換為 FAT32 改變到這一大小。"
+
+#: libparted/fs/fat/resize.c:580
+msgid ""
+"GNU Parted cannot resize this partition to this size.  We're working on it!"
+msgstr "GNU Parted 無法將此分割區轉換到這一大小。我們正在努力中!"
+
+#: libparted/fs/fat/bootsector.c:49 libparted/fs/fat/bootsector.c:56
+msgid "File system has an invalid signature for a FAT file system."
+msgstr "檔案系統含有無效的 FAT 檔案系統簽名。"
+
+#: libparted/fs/fat/bootsector.c:64
+msgid "File system has an invalid sector size for a FAT file system."
+msgstr "檔案系統的磁區大小對 FAT 檔案系統來說無效。"
+
+#: libparted/fs/fat/bootsector.c:71
+msgid "File system has an invalid cluster size for a FAT file system."
+msgstr "檔案系統的磁簇大小對 FAT 檔案系統來說無效。"
+
+#: libparted/fs/fat/bootsector.c:78
+msgid ""
+"File system has an invalid number of reserved sectors for a FAT file system."
+msgstr "檔案系統的保留磁區數對 FAT 檔案系統來說無效。"
+
+#: libparted/fs/fat/bootsector.c:85
+msgid "File system has an invalid number of FATs."
+msgstr "檔案系統的 FAT 數量無效。"
+
+#: libparted/fs/fat/bootsector.c:139
+#, c-format
+msgid ""
+"This file system has a logical sector size of %d.  GNU Parted is known not "
+"to work properly with sector sizes other than 512 bytes."
+msgstr ""
+"此檔案系統的邏輯磁區大小為 %d。GNU Parted 無法在磁區大小不是 512 位元組的情況"
+"下正確工作。"
+
+#: libparted/fs/fat/bootsector.c:164
+#, c-format
+msgid ""
+"The file system's CHS geometry is (%d, %d, %d), which is invalid.  The "
+"partition table's CHS geometry is (%d, %d, %d).  If you select Ignore, the "
+"file system's CHS geometry will be left unchanged.  If you select Fix, the "
+"file system's CHS geometry will be set to match the partition table's CHS "
+"geometry."
+msgstr ""
+"檔案系統的 CHS 幾何結構為 (%d, %d, %d),而其為無效。分割區表的 CHS 幾何結構"
+"為 (%d, %d, %d)。如果您選擇忽略,檔案系統的 CHS 幾何結構將會保留不變。如果您"
+"選擇修復,檔案系統的 CHS 幾何結構將會被設定以符合分割區表的 CHS 幾何結構。"
+
+#: libparted/fs/fat/bootsector.c:213
+msgid "FAT boot sector says logical sector size is 0.  This is weird. "
+msgstr "FAT 啟動磁區聲稱邏輯磁區的大小為零。這很奇怪。"
+
+#: libparted/fs/fat/bootsector.c:219
+msgid "FAT boot sector says there are no FAT tables.  This is weird. "
+msgstr "FAT 啟動磁區聲稱沒有 FAT 表。這很奇怪。"
+
+#: libparted/fs/fat/bootsector.c:225
+msgid "FAT boot sector says clusters are 0 sectors.  This is weird. "
+msgstr "FAT 啟動磁區聲稱磁簇具有零磁區。這很奇怪。"
+
+#: libparted/fs/fat/bootsector.c:235
+msgid "File system is FAT12, which is unsupported."
+msgstr "檔案系統為 FAT12,不支援。"
+
+#: libparted/fs/fat/bootsector.c:411
+#, c-format
+msgid ""
+"The information sector has the wrong signature (%x).  Select cancel for now, "
+"and send in a bug report.  If you're desperate, it's probably safe to ignore."
+msgstr ""
+"資訊磁區的簽名錯誤 (%x)。現在選擇取消,並發送程式錯誤報告。如果您不顧一切,選"
+"擇忽略有可能是「安全」的。"
+
+#: libparted/fs/fat/count.c:152
+#, c-format
+msgid "Bad directory entry for %s: first cluster is the end of file marker."
+msgstr "%s 的目錄條目不當:第一個磁簇就是檔案標記的結束。"
+
+#: libparted/fs/fat/count.c:165
+#, c-format
+msgid ""
+"Bad FAT: unterminated chain for %s.  You should run dosfsck or scandisk."
+msgstr "不當的 FAT:%s 的鏈結未結束。您應該執行 dosfsck 或 scandisk。"
+
+#: libparted/fs/fat/count.c:174
+#, c-format
+msgid ""
+"Bad FAT: cluster %d outside file system in chain for %s.  You should run "
+"dosfsck or scandisk."
+msgstr ""
+"不當的 FAT:在%2$s 的鏈結中,磁簇 %1$d 位於檔案系統之外。您應該執行 dosfsck "
+"或 scandisk。"
+
+#: libparted/fs/fat/count.c:184
+#, c-format
+msgid ""
+"Bad FAT: cluster %d is cross-linked for %s.  You should run dosfsck or "
+"scandisk."
+msgstr "不當的 FAT:磁簇 %d 與 %s 的鏈結交叉。您應該執行 dosfsck 或 scandisk。"
+
+#: libparted/fs/fat/count.c:203
+#, c-format
+msgid "%s is %dk, but it has %d clusters (%dk)."
+msgstr "%s 為 %dk,但含有 %d 個磁簇 (%dk)。"
+
+#: libparted/fs/fat/count.c:266
+#, c-format
+msgid ""
+"The file %s is marked as a system file.  This means moving it could cause "
+"some programs to stop working."
+msgstr "檔案 %s 被標記為系統檔案。這意味著移動它可能導致某些程式停止工作。"
+
+#: libparted/fs/fat/table.c:137
+#, c-format
+msgid ""
+"FAT %d media %x doesn't match the boot sector's media %x.  You should "
+"probably run scandisk."
+msgstr ""
+"FAT %d 媒體 %x 和啟動磁區所在的媒體 %x 不符合。您可能應該執行 scandisk。"
+
+#: libparted/fs/fat/table.c:269
+#, c-format
+msgid "fat_table_set: cluster %ld outside file system"
+msgstr "fat_table_set:磁簇 %ld 位於檔案系統之外"
+
+#: libparted/fs/fat/table.c:301
+#, c-format
+msgid "fat_table_get: cluster %ld outside file system"
+msgstr "fat_table_get:磁簇 %ld 位於檔案系統之外"
+
+#: libparted/fs/fat/table.c:343
+msgid "fat_table_alloc_cluster: no free clusters"
+msgstr "fat_table_alloc_cluster:沒有自由磁簇"
+
+#: libparted/fs/linux_swap/linux_swap.c:275
+#, fuzzy, c-format
+msgid "Unrecognised old style linux swap signature '%10s'."
+msgstr "無法識別的 linux 交換簽名「%10s」。"
+
+#: libparted/fs/linux_swap/linux_swap.c:318
+#, fuzzy, c-format
+msgid "Unrecognised new style linux swap signature '%10s'."
+msgstr "無法識別的 linux 交換簽名「%10s」。"
+
+#: libparted/fs/linux_swap/linux_swap.c:358
+#, fuzzy, c-format
+msgid "Unrecognised swsusp linux swap signature '%9s'."
+msgstr "無法識別的 linux 交換簽名「%10s」。"
+
+#: libparted/fs/linux_swap/linux_swap.c:434
+msgid "Too many bad pages."
+msgstr "過多的不當分頁。"
+
+#: libparted/fs/hfs/advfs.c:121 libparted/fs/hfs/advfs_plus.c:122
+#: libparted/fs/hfs/reloc.c:414 libparted/fs/hfs/reloc.c:508
+#: libparted/fs/hfs/reloc_plus.c:539 libparted/fs/hfs/reloc_plus.c:658
+#: libparted/fs/hfs/reloc_plus.c:772
+msgid "The file system contains errors."
+msgstr "檔案系統包含錯誤。"
+
+#: libparted/fs/hfs/advfs_plus.c:287
+msgid "Bad blocks could not be read."
+msgstr "無法讀取不當的區塊。"
+
+#: libparted/fs/hfs/cache.c:137
+#, c-format
+msgid ""
+"Trying to register an extent starting at block 0x%X, but another one already "
+"exists at this position.  You should check the file system!"
+msgstr ""
+"嘗試註冊一個起始於區塊 0x%X 的擴充區,但是此處已有其他區塊存在。您應該檢查檔"
+"案系統!"
+
+#: libparted/fs/hfs/cache.c:214
+#, c-format
+msgid ""
+"Trying to move an extent from block Ox%X to block Ox%X, but another one "
+"already exists at this position.  This should not happen!"
+msgstr ""
+"嘗試將一個擴充區自區塊 Ox%X 移至 Ox%X,但是此處已有其他區塊存在。這種事不應該"
+"發生!"
+
+#: libparted/fs/hfs/file.c:143
+#, c-format
+msgid "Could not update the extent cache for HFS file with CNID %X."
+msgstr "無法更新具有 CNID %X 的 HFS 檔案擴充快取。"
+
+#: libparted/fs/hfs/file.c:180
+#, c-format
+msgid "Trying to read HFS file with CNID %X behind EOF."
+msgstr "嘗試讀取資料於具有 CNID %X 的 HFS 檔案結尾之後。"
+
+#: libparted/fs/hfs/file.c:190 libparted/fs/hfs/file.c:220
+#, c-format
+msgid "Could not find sector %lli of HFS file with CNID %X."
+msgstr "無法找到具有 CNID %2$X 的 HFS 檔案之中的磁區 %1$lli。"
+
+#: libparted/fs/hfs/file.c:210
+#, c-format
+msgid "Trying to write HFS file with CNID %X behind EOF."
+msgstr "嘗試寫入資料於具有 CNID %X 的 HFS 檔案結尾之後。"
+
+#: libparted/fs/hfs/file_plus.c:157
+#, c-format
+msgid "Could not update the extent cache for HFS+ file with CNID %X."
+msgstr "無法更新具有 CNID %X 的 HFS+ 檔案之擴充快取。"
+
+#: libparted/fs/hfs/file_plus.c:202
+#, c-format
+msgid "Trying to read HFS+ file with CNID %X behind EOF."
+msgstr "嘗試讀取資料於具有 CNID %X 的 HFS+ 檔案結尾之後。"
+
+#: libparted/fs/hfs/file_plus.c:213 libparted/fs/hfs/file_plus.c:256
+#, c-format
+msgid "Could not find sector %lli of HFS+ file with CNID %X."
+msgstr "無法找到具有 CNID %2$X 的 HFS+ 檔案之中的磁區 %1$lli。"
+
+#: libparted/fs/hfs/file_plus.c:245
+#, c-format
+msgid "Trying to write HFS+ file with CNID %X behind EOF."
+msgstr "嘗試寫入資料於具有 CNID %X 的 HFS+ 檔案結尾之後。"
+
+#: libparted/fs/hfs/hfs.c:232
+msgid "Sorry, HFS cannot be resized that way yet."
+msgstr "抱歉,HFS 尚無法以此方式改變大小。"
+
+#: libparted/fs/hfs/hfs.c:262 libparted/fs/hfs/hfs.c:641
+msgid "Data relocation has failed."
+msgstr "資料重新定位時失敗。"
+
+#: libparted/fs/hfs/hfs.c:281
+msgid "Data relocation left some data in the end of the volume."
+msgstr "資料重新定位時留下一些資料於卷冊末端。"
+
+#: libparted/fs/hfs/hfs.c:320
+msgid "writing HFS Master Directory Block"
+msgstr "正在寫入 HFS 主目錄區塊"
+
+#: libparted/fs/hfs/hfs.c:468
+msgid "No valid HFS[+X] signature has been found while opening."
+msgstr "開啟時沒有找到任何有效的 HFS[+X] 簽章。"
+
+#: libparted/fs/hfs/hfs.c:478
+#, c-format
+msgid "Version %d of HFS+ isn't supported."
+msgstr "並不支援版本 %d 的 HFS+。"
+
+#: libparted/fs/hfs/hfs.c:489
+#, c-format
+msgid "Version %d of HFSX isn't supported."
+msgstr "並不支援版本 %d 的 HFSX。"
+
+#: libparted/fs/hfs/hfs.c:672
+msgid "Data relocation left some data at the end of the volume."
+msgstr "資料重定位後遺留一些資料於卷冊的末端。"
+
+#: libparted/fs/hfs/hfs.c:720
+msgid "Error while writing the allocation file."
+msgstr "寫入定位檔案時發生錯誤。"
+
+#: libparted/fs/hfs/hfs.c:735
+msgid "Error while writing the compatibility part of the allocation file."
+msgstr "寫入定位檔案的相容部份時發生錯誤。"
+
+#: libparted/fs/hfs/hfs.c:750
+msgid "writing HFS+ Volume Header"
+msgstr "正在寫入 HFS+ 卷冊表頭"
+
+#: libparted/fs/hfs/hfs.c:850
+msgid "An error occurred while looking for the mandatory bad blocks file."
+msgstr "尋找強制性損壞區塊檔案時發生錯誤。"
+
+#: libparted/fs/hfs/hfs.c:904
+msgid ""
+"It seems there is an error in the HFS wrapper: the bad blocks file doesn't "
+"contain the embedded HFS+ volume."
+msgstr "在 HFS+ 轉包程式中似乎有錯誤:損壞的區塊檔案並未包含內嵌的 HFS+ 卷冊。"
+
+#: libparted/fs/hfs/hfs.c:940
+msgid "Sorry, HFS+ cannot be resized that way yet."
+msgstr "抱歉,HFS+ 尚無法以此方式改變大小。"
+
+#: libparted/fs/hfs/hfs.c:975
+msgid "shrinking embedded HFS+ volume"
+msgstr "正在縮小內嵌的 HFS+ 卷冊"
+
+#: libparted/fs/hfs/hfs.c:991
+msgid "Resizing the HFS+ volume has failed."
+msgstr "改變 HFS+ 卷冊大小時失敗。"
+
+#: libparted/fs/hfs/hfs.c:998
+msgid "shrinking HFS wrapper"
+msgstr "正在縮小 HFS 轉包程式"
+
+#: libparted/fs/hfs/hfs.c:1007
+msgid "Updating the HFS wrapper has failed."
+msgstr "更新 HFS+ 轉包程式時失敗。"
+
+#: libparted/fs/hfs/hfs.c:1109 libparted/fs/hfs/hfs.c:1194
+#, c-format
+msgid ""
+"This is not a real %s check.  This is going to extract special low level "
+"files for debugging purposes."
+msgstr ""
+"這並非是一次真正的 %s 檢查。而是為了要分離出特別的低階檔案,以達到除錯的目"
+"的。"
+
+#: libparted/fs/hfs/journal.c:155
+msgid "Bad block list header checksum."
+msgstr "不良的區塊列表頭總和檢查值。"
+
+#: libparted/fs/hfs/journal.c:168
+#, c-format
+msgid ""
+"Invalid size of a transaction block while replaying the journal (%i bytes)."
+msgstr "重播日誌時無效的異動區塊大小 (%i 位元組)。"
+
+#: libparted/fs/hfs/journal.c:260
+msgid ""
+"Journal stored outside of the volume are not supported.  Try to desactivate "
+"the journal and run Parted again."
+msgstr "不支援日誌式 HFS+ 卷冊,您應該在其上嘗試任何作業之前關閉日誌功能。"
+
+#: libparted/fs/hfs/journal.c:271
+msgid "Journal offset or size is not multiple of the sector size."
+msgstr "日誌偏移量或大小不是磁區大小的整數倍。"
+
+#: libparted/fs/hfs/journal.c:292
+msgid "Incorrect magic values in the journal header."
+msgstr "在日誌表頭中有不正確的特異值。"
+
+#: libparted/fs/hfs/journal.c:302
+msgid "Journal size mismatch between journal info block and journal header."
+msgstr "在日誌資訊區塊與日誌表頭之間的大小不相符合。"
+
+#: libparted/fs/hfs/journal.c:314
+msgid "Some header fields are not multiple of the sector size."
+msgstr "某些表頭欄位不是磁區大小的整數倍。"
+
+#: libparted/fs/hfs/journal.c:323
+msgid ""
+"The sector size stored in the journal is not 512 bytes.  Parted only "
+"supports 512 bytes length sectors."
+msgstr ""
+"儲存於日誌的磁區大小不是 512 位元組。Parted 只支援長度為 512 位元組的磁區。"
+
+#: libparted/fs/hfs/journal.c:335
+msgid "Bad journal checksum."
+msgstr "不良的日誌總和檢查值。"
+
+#: libparted/fs/hfs/journal.c:353
+msgid ""
+"The journal is not empty.  Parted must replay the transactions before "
+"opening the file system.  This will modify the file system."
+msgstr ""
+"日誌並非為空。Parted 必須在開啟檔案系統之前重新播放異動。這將會修改檔案系統。"
+
+#: libparted/fs/hfs/journal.c:381
+msgid ""
+"The volume header or the master directory block has changed while replaying "
+"the journal.  You should restart Parted."
+msgstr ""
+"當重新播放日誌時,卷冊表頭或是主目錄區塊已經改變。您應該重新啟動 Parted。"
+
+#: libparted/fs/hfs/probe.c:51
+#, c-format
+msgid ""
+"Parted can't use HFS file systems on disks with a sector size not equal to %"
+"d bytes."
+msgstr "Parted 無法在其磁區大小不等於 %d 位元組的磁碟上使用 HFS 檔案系統。"
+
+#: libparted/fs/hfs/reloc.c:151 libparted/fs/hfs/reloc_plus.c:155
+msgid "An extent has not been relocated."
+msgstr "尚未重新定位一個擴充分割區。"
+
+#: libparted/fs/hfs/reloc.c:251 libparted/fs/hfs/reloc_plus.c:307
+msgid ""
+"A reference to an extent comes from a place it should not.  You should check "
+"the file system!"
+msgstr "對於擴充分割區的參照來自一個不應該的地方。您應該檢查檔案系統!"
+
+#: libparted/fs/hfs/reloc.c:381
+msgid "This HFS volume has no catalog file.  This is very unusual!"
+msgstr "這個 HFS 卷冊沒有類目檔案。這是很不尋常的!"
+
+#: libparted/fs/hfs/reloc.c:475
+msgid "This HFS volume has no extents overflow file.  This is quite unusual!"
+msgstr "這個 HFS 卷冊沒有擴充區溢位檔案。這是相當不尋常的!"
+
+#: libparted/fs/hfs/reloc.c:517 libparted/fs/hfs/reloc_plus.c:668
+msgid ""
+"The extents overflow file should not contain its own extents!  You should "
+"check the file system."
+msgstr "擴充區溢位檔案不應該包含它自己的擴充部份!您應該檢查檔案系統。"
+
+#: libparted/fs/hfs/reloc.c:574 libparted/fs/hfs/reloc_plus.c:847
+msgid "Could not cache the file system in memory."
+msgstr "無法快取記憶體中的檔案系統。"
+
+#: libparted/fs/hfs/reloc.c:635 libparted/fs/hfs/reloc_plus.c:908
+msgid "Bad blocks list could not be loaded."
+msgstr "不當的區塊列表無法被載入。"
+
+#: libparted/fs/hfs/reloc.c:649 libparted/fs/hfs/reloc_plus.c:924
+msgid "An error occurred during extent relocation."
+msgstr "擴充分割區重新定位期間發生錯誤。"
+
+#: libparted/fs/hfs/reloc_plus.c:495
+msgid "This HFS+ volume has no catalog file.  This is very unusual!"
+msgstr "這個 HFS+ 卷冊沒有類目檔案。這是很不尋常的!"
+
+#: libparted/fs/hfs/reloc_plus.c:619
+msgid "This HFS+ volume has no extents overflow file.  This is quite unusual!"
+msgstr "這個 HFS+ 卷冊沒有擴充區溢位檔案。這是相當不尋常的!"
+
+#: parted/parted.c:94
+msgid "displays this help message"
+msgstr "顯示此求助資訊"
+
+#: parted/parted.c:95
+msgid "lists partition layout on all block devices"
+msgstr ""
+
+#: parted/parted.c:96
+msgid "displays machine parseable output"
+msgstr ""
+
+#: parted/parted.c:97
+msgid "never prompts for user intervention"
+msgstr "從不提示使用者介入"
+
+#: parted/parted.c:98
+msgid "displays the version"
+msgstr "顯示版本"
+
+#: parted/parted.c:111
+msgid ""
+"NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the "
+"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"
+msgstr ""
+"NUMBER 是 Linux 使用的分割區編號。在 MS-DOS 磁碟標籤中,主分割區編號為 1 - "
+"4,邏輯分割區從 5 開始。\n"
+
+#: parted/parted.c:114
+msgid "LABEL-TYPE is one of: "
+msgstr "LABEL-TYPE 是以下任意一項:"
+
+#: parted/parted.c:115
+msgid "FLAG is one of: "
+msgstr "FLAG 是以下任意一項:"
+
+#: parted/parted.c:116
+msgid "UNIT is one of: "
+msgstr "UNIT 是以下任意一項:"
+
+#: parted/parted.c:117
+msgid "PART-TYPE is one of: primary, logical, extended\n"
+msgstr "PART-TYPE 是主分割區、邏輯分割區、擴充分割區之一\n"
+
+#: parted/parted.c:119
+msgid "FS-TYPE is one of: "
+msgstr "FS-TYPE 是以下任意一項:"
+
+#: parted/parted.c:120
+msgid ""
+"START and END are disk locations, such as 4GB or 10%.  Negative values count "
+"from the end of the disk.  For example, -1s specifies exactly the last "
+"sector.\n"
+msgstr ""
+"START 和 END 是磁碟用量,像是 4GB 或 10%。負數值則是從磁碟末端起算。例如,-"
+"1s 指定最後一個磁區。\n"
+
+#: parted/parted.c:123
+msgid "STATE is one of: on, off\n"
+msgstr "STATE 為:開、關\n"
+
+#: parted/parted.c:124
+msgid "DEVICE is usually /dev/hda or /dev/sda\n"
+msgstr "DEVICE 通常為 /dev/hda 或 /dev/sda\n"
+
+#: parted/parted.c:125
+msgid "NAME is any word you want\n"
+msgstr "NAME 是您需要的任何單詞\n"
+
+#: parted/parted.c:126
+msgid "The partition must have one of the following FS-TYPEs: "
+msgstr "分割區必須具備以下 FS-TYPEs 之一:"
+
+#: parted/parted.c:130
+#, fuzzy
+msgid ""
+"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n"
+"This program is free software, covered by the GNU General Public License.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+msgstr ""
+"版權所有 (C) 1998 - 2006 自由軟體基金會。\n"
+"本程式為自由軟體,按 GNU 通用公共許可證發行。\n"
+"\n"
+"發行本程式是希望它能夠有用,但沒有任何擔保;甚至不包括隱含的適銷和適合特定用"
+"途的保證。詳情請參見 GNU 通用公共許可證。\n"
+"\n"
+
+#: parted/parted.c:176
+#, c-format
+msgid "%0.f%%\t(time left %.2d:%.2d)"
+msgstr "%0.f%%\t(剩餘時間 %.2d:%.2d)"
+
+#: parted/parted.c:195
+#, fuzzy, c-format
+msgid ""
+"Partition %s is being used. You must unmount it before you modify it with "
+"Parted."
+msgstr "正在使用分割區 %s。您必須在以 Parted 更改它之前先將它卸載。"
+
+#: parted/parted.c:211
+#, c-format
+msgid "Partition(s) on %s are being used."
+msgstr "正在使用 %s 上的分割區。"
+
+#: parted/parted.c:223
+msgid ""
+"The existing file system will be destroyed and all data on the partition "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:235
+#, c-format
+msgid ""
+"The existing disk label on %s will be destroyed and all data on this disk "
+"will be lost. Do you want to continue?"
+msgstr ""
+
+#: parted/parted.c:458 parted/parted.c:652 parted/parted.c:1044
+#: parted/parted.c:1128 parted/parted.c:1771 parted/parted.c:1852
+#: parted/parted.c:1900
+msgid "Partition number?"
+msgstr "分割區編號?"
+
+#: parted/parted.c:500
+msgid "Source device?"
+msgstr "來源設備?"
+
+#: parted/parted.c:504
+msgid "Source partition number?"
+msgstr "來源分割區編號?"
+
+#: parted/parted.c:509
+msgid "Can't copy an extended partition."
+msgstr "無法複製擴充分割區。"
+
+#: parted/parted.c:515
+msgid "Destination partition number?"
+msgstr "目標分割區編號?"
+
+#: parted/parted.c:615
+msgid "New disk label type?"
+msgstr "新的磁碟標籤類型?"
+
+#: parted/parted.c:656
+msgid "File system?"
+msgstr "檔案系統?"
+
+#: parted/parted.c:707 parted/parted.c:878
+msgid "Partition type?"
+msgstr "分割區類型?"
+
+#: parted/parted.c:714 parted/parted.c:885 parted/parted.c:1131
+msgid "Partition name?"
+msgstr "分割區名稱?"
+
+#: parted/parted.c:722 parted/parted.c:895
+msgid "File system type?"
+msgstr "檔案系統類型?"
+
+#: parted/parted.c:729 parted/parted.c:897 parted/parted.c:1059
+#: parted/parted.c:1725 parted/parted.c:1780
+msgid "Start?"
+msgstr "起始點?"
+
+#: parted/parted.c:731 parted/parted.c:900 parted/parted.c:1062
+#: parted/parted.c:1727 parted/parted.c:1782
+msgid "End?"
+msgstr "結束點?"
+
+#: parted/parted.c:769 parted/parted.c:938
+#, c-format
+msgid ""
+"You requested a partition from %s to %s.\n"
+"The closest location we can manage is %s to %s.  Is this still acceptable to "
+"you?"
+msgstr ""
+"您要求將分割區從 %s 移動到 %s。\n"
+"我們可以管理的最接近分割區是從 %s 到 %s。這樣您可以接受嗎?"
+
+#: parted/parted.c:890
+msgid "An extended partition cannot hold a file system.  Did you want mkpart?"
+msgstr "擴充分割區不能含有檔案系統。您是要用 mkpart 吧?"
+
+#: parted/parted.c:1050
+msgid "Can't move an extended partition."
+msgstr "無法移動擴充分割區。"
+
+#: parted/parted.c:1079
+msgid "Can't move a partition onto itself.  Try using resize, perhaps?"
+msgstr "無法將分割區移動到它自身。也許試試改變大小?"
+
+#: parted/parted.c:1227
+#, c-format
+msgid "Minor: %d\n"
+msgstr "編號:%d\n"
+
+#: parted/parted.c:1228
+#, c-format
+msgid "Flags: %s\n"
+msgstr "旗標:%s\n"
+
+#: parted/parted.c:1229
+#, c-format
+msgid "File System: %s\n"
+msgstr "檔案系統:%s\n"
+
+#: parted/parted.c:1230
+msgid "Size:         "
+msgstr "大小:        "
+
+#: parted/parted.c:1235
+msgid "Minimum size: "
+msgstr "最小尺寸:"
+
+#: parted/parted.c:1238
+msgid "Maximum size: "
+msgstr "最大尺寸:"
+
+#: parted/parted.c:1362
+#, c-format
+msgid "Model: %s (%s)\n"
+msgstr ""
+
+#: parted/parted.c:1364
+#, c-format
+msgid "Disk %s: %s\n"
+msgstr "磁碟 %s:%s\n"
+
+#: parted/parted.c:1365
+#, c-format
+msgid "Sector size (logical/physical): %lldB/%lldB\n"
+msgstr "磁區大小 (邏輯/物理):%lldB/%lldB\n"
+
+#: parted/parted.c:1383
+#, c-format
+msgid "BIOS cylinder,head,sector geometry: %d,%d,%d.  Each cylinder is %s.\n"
+msgstr "BIOS 的磁柱、磁頭、磁區幾何結構:%d,%d,%d。每圈磁柱是 %s。\n"
+
+#: parted/parted.c:1392
+#, c-format
+msgid "Partition Table: %s\n"
+msgstr "分割區:%s\n"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Number"
+msgstr "編號"
+
+#: parted/parted.c:1406 parted/parted.c:1409
+msgid "Start"
+msgstr "起始點"
+
+#: parted/parted.c:1407 parted/parted.c:1410
+msgid "End"
+msgstr "結束點"
+
+#: parted/parted.c:1410
+msgid "Size"
+msgstr "大小"
+
+#: parted/parted.c:1414
+msgid "Type"
+msgstr "類型"
+
+#: parted/parted.c:1416
+msgid "File system"
+msgstr "檔案系統"
+
+#: parted/parted.c:1419
+msgid "Name"
+msgstr "名稱"
+
+#: parted/parted.c:1421
+msgid "Flags"
+msgstr "旗標"
+
+#: parted/parted.c:1477
+msgid "Free Space"
+msgstr "可用空間"
+
+#: parted/parted.c:1624
+#, c-format
+msgid ""
+"A %s %s partition was found at %s -> %s.  Do you want to add it to the "
+"partition table?"
+msgstr ""
+"在 %3$s -> %4$s 處找到一個 %1$s %2$s 分割區。您希望將其添加到分割表中嗎?"
+
+#: parted/parted.c:1663
+msgid "searching for file systems"
+msgstr "正在搜尋檔案系統"
+
+#: parted/parted.c:1877
+msgid "New device?"
+msgstr "新裝置?"
+
+#: parted/parted.c:1902
+msgid "Flag to Invert?"
+msgstr "要反相的旗標?"
+
+#: parted/parted.c:1907
+msgid "New state?"
+msgstr "新狀態?"
+
+#: parted/parted.c:1944
+msgid "Unit?"
+msgstr "單位?"
+
+#: parted/parted.c:2093
+msgid "check"
+msgstr "檢查"
+
+#: parted/parted.c:2096
+msgid ""
+"check NUMBER                             do a simple check on the file system"
+msgstr "check 編號                               對檔案系統進行簡單的檢查"
+
+#: parted/parted.c:2102
+msgid "cp"
+msgstr "cp"
+
+#: parted/parted.c:2105
+msgid ""
+"cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another "
+"partition"
+msgstr "cp [來源裝置] 來源編號 目標編號          將檔案系統複製到另一個分割區"
+
+#: parted/parted.c:2111
+msgid "help"
+msgstr "help"
+
+#: parted/parted.c:2114
+#, fuzzy
+msgid ""
+"help [COMMAND]                           print general help, or help on "
+"COMMAND"
+msgstr ""
+"help [命令]                              印出一般求助資訊,或關於「命令」的資"
+"訊"
+
+#: parted/parted.c:2120
+msgid "mklabel"
+msgstr "mklabel"
+
+#: parted/parted.c:2120
+#, fuzzy
+msgid "mktable"
+msgstr "mklabel"
+
+#: parted/parted.c:2123
+#, fuzzy
+msgid ""
+"mklabel,mktable LABEL-TYPE               create a new disklabel (partition "
+"table)"
+msgstr "mklabel 標籤類型                         建立新的磁碟標籤 (分割區表)"
+
+#: parted/parted.c:2129
+msgid "mkfs"
+msgstr "mkfs"
+
+#: parted/parted.c:2132
+msgid ""
+"mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on "
+"partititon NUMBER"
+msgstr ""
+"mkfs 編號 檔案系統類型                   在指定「編號」的分割區中建立類型為"
+"「檔案系統類型」的檔案系統"
+
+#: parted/parted.c:2138
+msgid "mkpart"
+msgstr "mkpart"
+
+#: parted/parted.c:2141
+msgid "mkpart PART-TYPE [FS-TYPE] START END     make a partition"
+msgstr "mkpart 分割區類型 [檔案系統類型] 起始點 結束點      建立一個分割區"
+
+#: parted/parted.c:2147
+#, fuzzy
+msgid ""
+"'mkpart' makes a partition without creating a new file system on the "
+"partition.  FS-TYPE may be specified to set an appropriate partition ID.\n"
+msgstr ""
+"mkpart 建立分割區而不在分割區上建立新檔案系統。「檔案系統類型」可以用於設置適"
+"當的分割區識別號。\n"
+
+#: parted/parted.c:2152
+msgid "mkpartfs"
+msgstr "mkpartfs"
+
+#: parted/parted.c:2155
+msgid ""
+"mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system"
+msgstr ""
+"mkpartfs 分割區類型 檔案系統類型 起始點 結束點  建立一個帶有檔案系統的分割區"
+
+#: parted/parted.c:2161
+msgid "move"
+msgstr "move"
+
+#: parted/parted.c:2164
+msgid "move NUMBER START END                    move partition NUMBER"
+msgstr "move 編號 起始點 結束點                  移動指定「編號」的分割區"
+
+#: parted/parted.c:2169
+msgid "name"
+msgstr "name"
+
+#: parted/parted.c:2172
+msgid "name NUMBER NAME                         name partition NUMBER as NAME"
+msgstr ""
+"name 編號 名稱                           將指定「編號」的分割區命名為「名稱」"
+
+#: parted/parted.c:2177
+msgid "print"
+msgstr "print"
+
+#: parted/parted.c:2180
+msgid ""
+"print [devices|free|list,all|NUMBER]     display the partition table, "
+"available devices, free space, all found partitions, or a particular "
+"partition"
+msgstr ""
+
+#: parted/parted.c:2185
+msgid ""
+"Without arguments, 'print' displays the entire partition table. However with "
+"the following arguments it performs various other actions.\n"
+msgstr ""
+
+#: parted/parted.c:2187
+msgid "  devices   : display all active block devices\n"
+msgstr ""
+
+#: parted/parted.c:2188
+msgid ""
+"  free      : display information about free unpartitioned space on the "
+"current block device\n"
+msgstr ""
+
+#: parted/parted.c:2190
+#, fuzzy
+msgid ""
+"  list, all : display the partition tables of all active block devices\n"
+msgstr ""
+"print [free|編號|all]                    顯示分割區表、分割區,或者所有裝置"
+
+#: parted/parted.c:2191
+msgid ""
+"  NUMBER    : display more detailed information about this particular "
+"partition\n"
+msgstr ""
+
+#: parted/parted.c:2196
+msgid "quit"
+msgstr "quit"
+
+#: parted/parted.c:2199
+msgid "quit                                     exit program"
+msgstr "quit                                     離開程式"
+
+#: parted/parted.c:2204
+msgid "rescue"
+msgstr "rescue"
+
+#: parted/parted.c:2207
+msgid ""
+"rescue START END                         rescue a lost partition near START "
+"and END"
+msgstr ""
+"rescue 起始點 結束點                     挽救臨近「起始點」、「結束點」的遺失"
+"的分割區"
+
+#: parted/parted.c:2213
+msgid "resize"
+msgstr "resize"
+
+#: parted/parted.c:2216
+msgid ""
+"resize NUMBER START END                  resize partition NUMBER and its "
+"file system"
+msgstr ""
+"resize 編號 起始點 結束點                改變位於指定「編號」的分割區中檔案系"
+"統的大小"
+
+#: parted/parted.c:2224
+msgid "rm"
+msgstr "rm"
+
+#: parted/parted.c:2227
+msgid "rm NUMBER                                delete partition NUMBER"
+msgstr "rm 編號                                  刪除指定「編號」的分割區"
+
+#: parted/parted.c:2232
+msgid "select"
+msgstr "select"
+
+#: parted/parted.c:2235
+msgid "select DEVICE                            choose the device to edit"
+msgstr "select 設備                              選擇要編輯的設備"
+
+#: parted/parted.c:2240
+msgid "set"
+msgstr "set"
+
+#: parted/parted.c:2243
+msgid ""
+"set NUMBER FLAG STATE                    change the FLAG on partition NUMBER"
+msgstr "set 編號 旗標 狀態                       改變指定「編號」分割區的旗標"
+
+#: parted/parted.c:2249
+msgid "toggle"
+msgstr "toggle"
+
+#: parted/parted.c:2252
+msgid ""
+"toggle [NUMBER [FLAG]]                   toggle the state of FLAG on "
+"partition NUMBER"
+msgstr ""
+"toggle [編號 [旗標]]                     切換「編號」分割區上的「旗標」狀態"
+
+#: parted/parted.c:2258
+msgid "unit"
+msgstr "unit"
+
+#: parted/parted.c:2261
+msgid "unit UNIT                                set the default unit to UNIT"
+msgstr "unit 單位                                設定預設的「單位」"
+
+#: parted/parted.c:2266
+#, fuzzy
+msgid "version"
+msgstr "verion"
+
+#: parted/parted.c:2269
+#, fuzzy
+msgid ""
+"version                                  display the version number and "
+"copyright information of GNU Parted"
+msgstr ""
+"version                                  顯示目前 GNU Parted 的版本與版權資訊"
+
+#: parted/parted.c:2273
+#, fuzzy
+msgid ""
+"'version' displays copyright and version information corresponding to this "
+"copy of GNU Parted\n"
+msgstr "version 依據此份 GNU Parted 顯示其版權與版本資訊\n"
+
+#: parted/parted.c:2335
+#, c-format
+msgid "Usage: %s [-hlmsv] [DEVICE [COMMAND [PARAMETERS]]...]\n"
+msgstr ""
+
+#: parted/parted.c:2379
+msgid "No device found"
+msgstr "沒有找到設備"
+
+#: parted/parted.c:2412
+msgid "WARNING: You are not superuser.  Watch out for permissions."
+msgstr ""
+
+#: parted/parted.c:2450
+#, fuzzy
+msgid "You may need to update /etc/fstab.\n"
+msgstr "如果必要,不要忘記更新 /etc/fstab。\n"
+
+#: parted/ui.c:160
+msgid "Welcome to GNU Parted! Type 'help' to view a list of commands.\n"
+msgstr "歡迎使用 GNU Parted!輸入 'help' 來檢視命令列表。\n"
+
+#: parted/ui.c:163
+msgid ""
+"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n"
+"Apply COMMANDs with PARAMETERS to DEVICE.  If no COMMAND(s) are given, run "
+"in\n"
+"interactive mode.\n"
+msgstr ""
+"用法:parted [選項]… [裝置 [命令 [參數]…]…]\n"
+"將帶有「參數」的「命令」應用於「裝置」。如果沒有指定「命令」,則以交談模式執"
+"行。\n"
+
+#: parted/ui.c:168
+#, fuzzy, c-format
+msgid ""
+"\n"
+"\n"
+"You found a bug in GNU Parted! Here's what you have to do:\n"
+"\n"
+"Don't panic! The bug has most likely not affected any of your data.\n"
+"Help us to fix this bug by doing the following:\n"
+"\n"
+"Check whether the bug has already been fixed by checking\n"
+"the last version of GNU Parted that you can find at:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"Please check this version prior to bug reporting.\n"
+"\n"
+"If this has not been fixed yet or if you don't know how to check,\n"
+"please visit the GNU Parted website:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"for further information.\n"
+"\n"
+"Your report should contain the version of this release (%s)\n"
+"along with the error message below, the output of\n"
+"\n"
+"\tparted DEVICE unit co print unit s print\n"
+"\n"
+"and the following history of commands you entered.\n"
+"Also include any additional information about your setup you\n"
+"consider important.\n"
+msgstr ""
+"\n"
+"\n"
+"您找到了 GNU Parted 中的一個錯誤!以下是您必須進行的事:\n"
+"\n"
+"不必慌張!此一錯誤不太可能會影響到您的任何資料。\n"
+"請用以下方法來幫助我們修正這個錯誤:\n"
+"\n"
+"藉由檢查位於:\n"
+"\n"
+"\thttp://ftp.gnu.org/gnu/parted/\n"
+"\n"
+"的最新版 GNU Parted,您可以確認是否這個錯誤已經被修正了。\n"
+"請於回報錯誤前先檢查此一版本。\n"
+"\n"
+"如果這尚未被修正,或是您不知道如何去檢查,\n"
+"請參訪 GNU Parted 網址:\n"
+"\n"
+"\thttp://www.gnu.org/software/parted\n"
+"\n"
+"以獲得進一步的資訊。\n"
+"\n"
+"您的回報應該要包含釋出的版本編號 (%s)\n"
+"以及其下的錯誤訊息,系列命令\n"
+"\n"
+"\tparted 裝置 unit co print unit s print\n"
+"\n"
+"的輸出結果和其他您認為重要的設定資訊。\n"
+
+#: parted/ui.c:284
+msgid ""
+"\n"
+"Command History:\n"
+msgstr ""
+
+#: parted/ui.c:366
+#, fuzzy
+msgid ""
+"\n"
+"Error: SEGV_MAPERR (Address not mapped to object)\n"
+msgstr ""
+"\n"
+"錯誤: SEGV_MAPERR (位址並未對應到物件)"
+
+#: parted/ui.c:372
+#, fuzzy
+msgid ""
+"\n"
+"Error: SEGV_ACCERR (Invalid permissions for mapped object)\n"
+msgstr ""
+"\n"
+"錯誤: SEGV_ACCERR (對應的物件權限無效)"
+
+#: parted/ui.c:377
+#, fuzzy
+msgid ""
+"\n"
+"Error: A general SIGSEGV signal was encountered.\n"
+msgstr ""
+"\n"
+"錯誤: 遇到一般的 SIGSEGV 訊號。"
+
+#: parted/ui.c:410
+msgid ""
+"\n"
+"Error: FPE_INTDIV (Integer: divide by zero)"
+msgstr ""
+"\n"
+"錯誤: FPE_INTDIV (整數: 被零除)"
+
+#: parted/ui.c:415
+msgid ""
+"\n"
+"Error: FPE_INTOVF (Integer: overflow)"
+msgstr ""
+"\n"
+"錯誤: FPE_INTOVF (整數: 向上溢位)"
+
+#: parted/ui.c:420
+#, fuzzy
+msgid ""
+"\n"
+"Error: FPE_FLTDIV (Float: divide by zero)"
+msgstr ""
+"\n"
+"錯誤: FPE_INTDIV (浮點: 被零除)"
+
+#: parted/ui.c:425
+msgid ""
+"\n"
+"Error: FPE_FLTOVF (Float: overflow)"
+msgstr ""
+"\n"
+"錯誤: FPE_FLTOVF (浮點: 向上溢位)"
+
+#: parted/ui.c:430
+msgid ""
+"\n"
+"Error: FPE_FLTUND (Float: underflow)"
+msgstr ""
+"\n"
+"錯誤: FPE_FLTUND (浮點: 向下溢位)"
+
+#: parted/ui.c:435
+msgid ""
+"\n"
+"Error: FPE_FLTRES (Float: inexact result)"
+msgstr ""
+"\n"
+"錯誤: FPE_FLTRES (浮點: 不明確的結果)"
+
+#: parted/ui.c:440
+msgid ""
+"\n"
+"Error: FPE_FLTINV (Float: invalid operation)"
+msgstr ""
+"\n"
+"錯誤: FPE_FLTINV (浮點: 無效的操作)"
+
+#: parted/ui.c:445
+msgid ""
+"\n"
+"Error: FPE_FLTSUB (Float: subscript out of range)"
+msgstr ""
+"\n"
+"錯誤: FPE_FLTSUB (浮點: 註標超出範圍)"
+
+#: parted/ui.c:450
+msgid ""
+"\n"
+"Error: A general SIGFPE signal was encountered."
+msgstr ""
+"\n"
+"錯誤: 遇到一般的 SIGFPE 訊號。"
+
+#: parted/ui.c:483
+msgid ""
+"\n"
+"Error: ILL_ILLOPC (Illegal Opcode)"
+msgstr ""
+"\n"
+"錯誤: ILL_ILLOPC (不合法的操作碼)"
+
+#: parted/ui.c:488
+msgid ""
+"\n"
+"Error: ILL_ILLOPN (Illegal Operand)"
+msgstr ""
+"\n"
+"錯誤: ILL_ILLOPN (不合法的運算元)"
+
+#: parted/ui.c:493
+msgid ""
+"\n"
+"Error: ILL_ILLADR (Illegal addressing mode)"
+msgstr ""
+"\n"
+"錯誤: ILL_ILLADR (不合法的定址模式)"
+
+#: parted/ui.c:498
+msgid ""
+"\n"
+"Error: ILL_ILLTRP (Illegal Trap)"
+msgstr ""
+"\n"
+"錯誤: ILL_ILLTRP (不合法的陷阱)"
+
+#: parted/ui.c:503
+msgid ""
+"\n"
+"Error: ILL_PRVOPC (Privileged Opcode)"
+msgstr ""
+"\n"
+"錯誤: ILL_PRVOPC (具優先權的操作碼)"
+
+#: parted/ui.c:508
+msgid ""
+"\n"
+"Error: ILL_PRVREG (Privileged Register)"
+msgstr ""
+"\n"
+"錯誤: ILL_PRVREG (具優先權的暫存器)"
+
+#: parted/ui.c:513
+msgid ""
+"\n"
+"Error: ILL_COPROC (Coprocessor Error)"
+msgstr ""
+"\n"
+"錯誤: ILL_COPROC (輔助處理器錯誤)"
+
+#: parted/ui.c:518
+msgid ""
+"\n"
+"Error: ILL_BADSTK (Internal Stack Error)"
+msgstr ""
+"\n"
+"錯誤: ILL_BADSTK (內部堆疊錯誤)"
+
+#: parted/ui.c:523
+#, fuzzy
+msgid ""
+"\n"
+"Error: A general SIGILL signal was encountered."
+msgstr ""
+"\n"
+"錯誤: 遇到一般的 SIGILL 訊號。"
+
+#: parted/ui.c:1024
+msgid "Expecting a partition number."
+msgstr "需要分割區編號。"
+
+#: parted/ui.c:1033
+msgid "Partition doesn't exist."
+msgstr "分割區不存在。"
+
+#: parted/ui.c:1053
+msgid "Expecting a file system type."
+msgstr "需要檔案系統類型。"
+
+#: parted/ui.c:1060
+#, c-format
+msgid "Unknown file system type \"%s\"."
+msgstr "未知的檔案系統類型「%s」。"
+
+#: parted/ui.c:1080
+msgid "Expecting a disk label type."
+msgstr "需要磁碟標籤類型。"
+
+#: parted/ui.c:1178
+msgid "Can't create any more partitions."
+msgstr "無法建立更多分割區。"
+
+#: parted/ui.c:1188
+msgid "Expecting a partition type."
+msgstr "需要分割區類型。"
+
+#: parted/ui.c:1315
+msgid "on"
+msgstr "開"
+
+#: parted/ui.c:1316
+msgid "off"
+msgstr "關"
+
+#: parted/ui.c:1431
+msgid "OPTIONs:"
+msgstr "選項:"
+
+#: parted/ui.c:1436
+msgid "COMMANDs:"
+msgstr "命令:"
+
+#: parted/ui.c:1445
+#, c-format
+msgid "Using %s\n"
+msgstr "使用 %s\n"
+
+#: parted/ui.c:1519
+msgid "This command does not make sense in non-interactive mode.\n"
+msgstr ""
+
+#~ msgid "where necessary, prompts for user intervention"
+#~ msgstr "在必要時,提示使用者介入"
+
+#~ msgid "GNU Parted Version information:\n"
+#~ msgstr "GNU Parted 版本資訊:\n"
+
+#, fuzzy
+#~ msgid ""
+#~ "Without arguments, print displays the entire partition table. With "
+#~ "'free'\n"
+#~ "argument, information about free space will be displayed otherwise if a\n"
+#~ "partition number is given, then more detailed information is displayed\n"
+#~ "about that partition. If the 'all' argument is passed instead, partition\n"
+#~ "information for all devices will be displayed.\n"
+#~ msgstr ""
+#~ "若無引數,print 顯示整個分割區表。利用 'free' 引數來顯示可用空間的資訊,\n"
+#~ "否則如果指定了分割區號碼,就顯示更多關於分割區的詳細資訊。如果以引數 "
+#~ "'all' 來取代,\n"
+#~ "將會顯示所有裝置的分割區資訊。"
+
+#~ msgid "Attempt to read sectors %ld-%ld outside of partition on %s."
+#~ msgstr "試圖讀取 %3$s 上分割區之外的磁區 %1$ld-%2$ld。"
diff --git a/parted-1.8.7/scripts/data/abi/baseline_symbols.txt b/parted-1.8.7/scripts/data/abi/baseline_symbols.txt
new file mode 100644
index 0000000..16fe6f4
--- /dev/null
+++ b/parted-1.8.7/scripts/data/abi/baseline_symbols.txt
@@ -0,0 +1,452 @@
+FUNC:__efi_crc32
+FUNC:_amiga_add_id
+FUNC:_amiga_free_ids
+FUNC:_amiga_id_in_list
+FUNC:_copy_hidden_sectors
+FUNC:_fini
+FUNC:_init
+FUNC:_ped_device_probe
+FUNC:_ped_disk_alloc
+FUNC:_ped_disk_free
+FUNC:_ped_partition_alloc
+FUNC:_ped_partition_attempt_align
+FUNC:_ped_partition_free
+FUNC:_update_stats
+FUNC:abs_mod
+FUNC:amiga_find_part
+FUNC:ext2_bcache_deinit
+FUNC:ext2_bcache_dump
+FUNC:ext2_bcache_flush
+FUNC:ext2_bcache_flush_range
+FUNC:ext2_bcache_init
+FUNC:ext2_bcache_sync
+FUNC:ext2_bcreate
+FUNC:ext2_block_relocate
+FUNC:ext2_bread
+FUNC:ext2_brelse
+FUNC:ext2_close
+FUNC:ext2_commit_metadata
+FUNC:ext2_copy_block
+FUNC:ext2_destroy_dev_handle
+FUNC:ext2_do_inode
+FUNC:ext2_find_free_block
+FUNC:ext2_find_free_inode
+FUNC:ext2_get_block_state
+FUNC:ext2_get_inode_offset
+FUNC:ext2_get_inode_state
+FUNC:ext2_inode_relocate
+FUNC:ext2_is_group_sparse
+FUNC:ext2_make_dev_handle_from_parted_geometry
+FUNC:ext2_metadata_push
+FUNC:ext2_mkfs
+FUNC:ext2_move_blocks
+FUNC:ext2_open
+FUNC:ext2_read_blocks
+FUNC:ext2_read_inode
+FUNC:ext2_resize_fs
+FUNC:ext2_set_block_state
+FUNC:ext2_set_inode_state
+FUNC:ext2_sync
+FUNC:ext2_write_blocks
+FUNC:ext2_write_inode
+FUNC:ext2_zero_blocks
+FUNC:ext2_zero_inode
+FUNC:extended_euclid
+FUNC:fat_alloc
+FUNC:fat_alloc_buffers
+FUNC:fat_boot_sector_analyse
+FUNC:fat_boot_sector_generate
+FUNC:fat_boot_sector_probe_type
+FUNC:fat_boot_sector_read
+FUNC:fat_boot_sector_set_boot_code
+FUNC:fat_boot_sector_write
+FUNC:fat_calc_align_sectors
+FUNC:fat_calc_resize_sizes
+FUNC:fat_calc_sizes
+FUNC:fat_check
+FUNC:fat_check_resize_geometry
+FUNC:fat_clobber
+FUNC:fat_close
+FUNC:fat_cluster_to_frag
+FUNC:fat_cluster_to_sector
+FUNC:fat_collect_cluster_info
+FUNC:fat_copy
+FUNC:fat_create
+FUNC:fat_create_fat16
+FUNC:fat_create_fat32
+FUNC:fat_dir_entry_get_first_cluster
+FUNC:fat_dir_entry_get_length
+FUNC:fat_dir_entry_get_name
+FUNC:fat_dir_entry_has_first_cluster
+FUNC:fat_dir_entry_is_active
+FUNC:fat_dir_entry_is_directory
+FUNC:fat_dir_entry_is_file
+FUNC:fat_dir_entry_is_null_term
+FUNC:fat_dir_entry_is_system_file
+FUNC:fat_dir_entry_set_first_cluster
+FUNC:fat_duplicate_clusters
+FUNC:fat_frag_to_cluster
+FUNC:fat_frag_to_sector
+FUNC:fat_free
+FUNC:fat_free_buffers
+FUNC:fat_get_cluster_flag
+FUNC:fat_get_cluster_usage
+FUNC:fat_get_copy_constraint
+FUNC:fat_get_create_constraint_fat16
+FUNC:fat_get_create_constraint_fat32
+FUNC:fat_get_fragment_flag
+FUNC:fat_get_resize_constraint
+FUNC:fat_info_sector_generate
+FUNC:fat_info_sector_read
+FUNC:fat_info_sector_write
+FUNC:fat_is_fragment_active
+FUNC:fat_is_sector_in_clusters
+FUNC:fat_max_cluster_count
+FUNC:fat_max_cluster_size
+FUNC:fat_min_cluster_count
+FUNC:fat_min_cluster_size
+FUNC:fat_min_reserved_sector_count
+FUNC:fat_op_context_create_initial_fat
+FUNC:fat_op_context_destroy
+FUNC:fat_op_context_map_cluster
+FUNC:fat_op_context_map_fragment
+FUNC:fat_op_context_map_static_cluster
+FUNC:fat_op_context_map_static_fragment
+FUNC:fat_op_context_new
+FUNC:fat_open
+FUNC:fat_probe
+FUNC:fat_probe_fat16
+FUNC:fat_probe_fat32
+FUNC:fat_read_cluster
+FUNC:fat_read_clusters
+FUNC:fat_read_fragment
+FUNC:fat_read_fragments
+FUNC:fat_recommend_min_cluster_size
+FUNC:fat_resize
+FUNC:fat_sector_to_cluster
+FUNC:fat_sector_to_frag
+FUNC:fat_set_frag_sectors
+FUNC:fat_table_alloc_check_cluster
+FUNC:fat_table_alloc_cluster
+FUNC:fat_table_clear
+FUNC:fat_table_compare
+FUNC:fat_table_count_stats
+FUNC:fat_table_destroy
+FUNC:fat_table_duplicate
+FUNC:fat_table_entry_size
+FUNC:fat_table_get
+FUNC:fat_table_is_active
+FUNC:fat_table_is_available
+FUNC:fat_table_is_bad
+FUNC:fat_table_is_empty
+FUNC:fat_table_is_eof
+FUNC:fat_table_new
+FUNC:fat_table_read
+FUNC:fat_table_set
+FUNC:fat_table_set_avail
+FUNC:fat_table_set_bad
+FUNC:fat_table_set_cluster_count
+FUNC:fat_table_set_eof
+FUNC:fat_table_write
+FUNC:fat_table_write_all
+FUNC:fat_traverse_begin
+FUNC:fat_traverse_complete
+FUNC:fat_traverse_directory
+FUNC:fat_traverse_entries_per_buffer
+FUNC:fat_traverse_mark_dirty
+FUNC:fat_traverse_next_dir_entry
+FUNC:fat_write_cluster
+FUNC:fat_write_clusters
+FUNC:fat_write_fragment
+FUNC:fat_write_fragments
+FUNC:fat_write_sync_cluster
+FUNC:fat_write_sync_clusters
+FUNC:fat_write_sync_fragment
+FUNC:fat_write_sync_fragments
+FUNC:findit
+FUNC:geom_dal_create
+FUNC:geom_dal_free
+FUNC:geom_dal_reopen
+FUNC:hfs_and_wrapper_probe
+FUNC:hfs_btree_search
+FUNC:hfs_file_close
+FUNC:hfs_file_open
+FUNC:hfs_file_read_sector
+FUNC:hfs_file_write_sector
+FUNC:hfs_find_start_pack
+FUNC:hfs_free_bad_blocks_list
+FUNC:hfs_get_empty_end
+FUNC:hfs_is_bad_block
+FUNC:hfs_pack_free_space_from_block
+FUNC:hfs_probe
+FUNC:hfs_read_bad_blocks
+FUNC:hfs_update_mdb
+FUNC:hfsc_cache_add_extent
+FUNC:hfsc_cache_move_extent
+FUNC:hfsc_cache_search_extent
+FUNC:hfsc_can_use_geom
+FUNC:hfsc_delete_cache
+FUNC:hfsc_new_cache
+FUNC:hfsj_replay_journal
+FUNC:hfsj_update_jib
+FUNC:hfsj_update_jl
+FUNC:hfsplus_btree_search
+FUNC:hfsplus_file_close
+FUNC:hfsplus_file_open
+FUNC:hfsplus_file_read
+FUNC:hfsplus_file_write
+FUNC:hfsplus_find_start_pack
+FUNC:hfsplus_free_bad_blocks_list
+FUNC:hfsplus_get_empty_end
+FUNC:hfsplus_get_min_size
+FUNC:hfsplus_is_bad_block
+FUNC:hfsplus_pack_free_space_from_block
+FUNC:hfsplus_probe
+FUNC:hfsplus_read_bad_blocks
+FUNC:hfsplus_update_vh
+FUNC:hfsx_probe
+FUNC:mac_alloc
+FUNC:ped_alignment_align_down
+FUNC:ped_alignment_align_nearest
+FUNC:ped_alignment_align_up
+FUNC:ped_alignment_destroy
+FUNC:ped_alignment_duplicate
+FUNC:ped_alignment_init
+FUNC:ped_alignment_intersect
+FUNC:ped_alignment_is_aligned
+FUNC:ped_alignment_new
+FUNC:ped_assert
+FUNC:ped_calloc
+FUNC:ped_constraint_any
+FUNC:ped_constraint_destroy
+FUNC:ped_constraint_done
+FUNC:ped_constraint_duplicate
+FUNC:ped_constraint_exact
+FUNC:ped_constraint_init
+FUNC:ped_constraint_intersect
+FUNC:ped_constraint_is_solution
+FUNC:ped_constraint_new
+FUNC:ped_constraint_new_from_max
+FUNC:ped_constraint_new_from_min
+FUNC:ped_constraint_new_from_min_max
+FUNC:ped_constraint_solve_max
+FUNC:ped_constraint_solve_nearest
+FUNC:ped_debug
+FUNC:ped_debug_set_handler
+FUNC:ped_device_begin_external_access
+FUNC:ped_device_check
+FUNC:ped_device_close
+FUNC:ped_device_destroy
+FUNC:ped_device_end_external_access
+FUNC:ped_device_free_all
+FUNC:ped_device_get
+FUNC:ped_device_get_constraint
+FUNC:ped_device_get_next
+FUNC:ped_device_is_busy
+FUNC:ped_device_open
+FUNC:ped_device_probe_all
+FUNC:ped_device_read
+FUNC:ped_device_sync
+FUNC:ped_device_sync_fast
+FUNC:ped_device_write
+FUNC:ped_disk_add_partition
+FUNC:ped_disk_amiga_done
+FUNC:ped_disk_amiga_init
+FUNC:ped_disk_bsd_done
+FUNC:ped_disk_bsd_init
+FUNC:ped_disk_check
+FUNC:ped_disk_clobber
+FUNC:ped_disk_clobber_exclude
+FUNC:ped_disk_commit
+FUNC:ped_disk_commit_to_dev
+FUNC:ped_disk_commit_to_os
+FUNC:ped_disk_delete_all
+FUNC:ped_disk_delete_partition
+FUNC:ped_disk_destroy
+FUNC:ped_disk_duplicate
+FUNC:ped_disk_dvh_done
+FUNC:ped_disk_dvh_init
+FUNC:ped_disk_extended_partition
+FUNC:ped_disk_get_last_partition_num
+FUNC:ped_disk_get_max_partition_geometry
+FUNC:ped_disk_get_max_primary_partition_count
+FUNC:ped_disk_get_partition
+FUNC:ped_disk_get_partition_by_sector
+FUNC:ped_disk_get_primary_partition_count
+FUNC:ped_disk_gpt_done
+FUNC:ped_disk_gpt_init
+FUNC:ped_disk_loop_done
+FUNC:ped_disk_loop_init
+FUNC:ped_disk_mac_done
+FUNC:ped_disk_mac_init
+FUNC:ped_disk_maximize_partition
+FUNC:ped_disk_minimize_extended_partition
+FUNC:ped_disk_msdos_done
+FUNC:ped_disk_msdos_init
+FUNC:ped_disk_new
+FUNC:ped_disk_new_fresh
+FUNC:ped_disk_next_partition
+FUNC:ped_disk_pc98_done
+FUNC:ped_disk_pc98_init
+FUNC:ped_disk_print
+FUNC:ped_disk_probe
+FUNC:ped_disk_remove_partition
+FUNC:ped_disk_set_partition_geom
+FUNC:ped_disk_sun_done
+FUNC:ped_disk_sun_init
+FUNC:ped_disk_type_check_feature
+FUNC:ped_disk_type_get
+FUNC:ped_disk_type_get_next
+FUNC:ped_disk_type_register
+FUNC:ped_disk_type_unregister
+FUNC:ped_div_round_to_nearest
+FUNC:ped_div_round_up
+FUNC:ped_exception_catch
+FUNC:ped_exception_fetch_all
+FUNC:ped_exception_get_option_string
+FUNC:ped_exception_get_type_string
+FUNC:ped_exception_leave_all
+FUNC:ped_exception_rethrow
+FUNC:ped_exception_set_handler
+FUNC:ped_exception_throw
+FUNC:ped_file_system_amiga_done
+FUNC:ped_file_system_amiga_init
+FUNC:ped_file_system_check
+FUNC:ped_file_system_clobber
+FUNC:ped_file_system_close
+FUNC:ped_file_system_copy
+FUNC:ped_file_system_create
+FUNC:ped_file_system_ext2_done
+FUNC:ped_file_system_ext2_init
+FUNC:ped_file_system_fat_done
+FUNC:ped_file_system_fat_init
+FUNC:ped_file_system_get_copy_constraint
+FUNC:ped_file_system_get_create_constraint
+FUNC:ped_file_system_get_resize_constraint
+FUNC:ped_file_system_hfs_done
+FUNC:ped_file_system_hfs_init
+FUNC:ped_file_system_jfs_done
+FUNC:ped_file_system_jfs_init
+FUNC:ped_file_system_linux_swap_done
+FUNC:ped_file_system_linux_swap_init
+FUNC:ped_file_system_ntfs_done
+FUNC:ped_file_system_ntfs_init
+FUNC:ped_file_system_open
+FUNC:ped_file_system_probe
+FUNC:ped_file_system_probe_specific
+FUNC:ped_file_system_reiserfs_done
+FUNC:ped_file_system_reiserfs_init
+FUNC:ped_file_system_resize
+FUNC:ped_file_system_type_get
+FUNC:ped_file_system_type_get_next
+FUNC:ped_file_system_type_register
+FUNC:ped_file_system_type_unregister
+FUNC:ped_file_system_ufs_done
+FUNC:ped_file_system_ufs_init
+FUNC:ped_file_system_xfs_done
+FUNC:ped_file_system_xfs_init
+FUNC:ped_free
+FUNC:ped_geometry_check
+FUNC:ped_geometry_destroy
+FUNC:ped_geometry_duplicate
+FUNC:ped_geometry_init
+FUNC:ped_geometry_intersect
+FUNC:ped_geometry_map
+FUNC:ped_geometry_new
+FUNC:ped_geometry_read
+FUNC:ped_geometry_set
+FUNC:ped_geometry_set_end
+FUNC:ped_geometry_set_start
+FUNC:ped_geometry_sync
+FUNC:ped_geometry_sync_fast
+FUNC:ped_geometry_test_equal
+FUNC:ped_geometry_test_inside
+FUNC:ped_geometry_test_overlap
+FUNC:ped_geometry_test_sector_inside
+FUNC:ped_geometry_write
+FUNC:ped_get_version
+FUNC:ped_greatest_common_divisor
+FUNC:ped_malloc
+FUNC:ped_partition_destroy
+FUNC:ped_partition_flag_get_by_name
+FUNC:ped_partition_flag_get_name
+FUNC:ped_partition_flag_next
+FUNC:ped_partition_get_flag
+FUNC:ped_partition_get_name
+FUNC:ped_partition_get_path
+FUNC:ped_partition_is_active
+FUNC:ped_partition_is_busy
+FUNC:ped_partition_is_flag_available
+FUNC:ped_partition_new
+FUNC:ped_partition_print
+FUNC:ped_partition_set_flag
+FUNC:ped_partition_set_name
+FUNC:ped_partition_set_system
+FUNC:ped_partition_type_get_name
+FUNC:ped_realloc
+FUNC:ped_register_disk_type
+FUNC:ped_round_down_to
+FUNC:ped_round_to_nearest
+FUNC:ped_round_up_to
+FUNC:ped_set_architecture
+FUNC:ped_timer_destroy
+FUNC:ped_timer_destroy_nested
+FUNC:ped_timer_new
+FUNC:ped_timer_new_nested
+FUNC:ped_timer_reset
+FUNC:ped_timer_set_state_name
+FUNC:ped_timer_touch
+FUNC:ped_timer_update
+FUNC:ped_unit_format
+FUNC:ped_unit_format_byte
+FUNC:ped_unit_format_custom
+FUNC:ped_unit_format_custom_byte
+FUNC:ped_unit_get_by_name
+FUNC:ped_unit_get_default
+FUNC:ped_unit_get_name
+FUNC:ped_unit_get_size
+FUNC:ped_unit_parse
+FUNC:ped_unit_parse_custom
+FUNC:ped_unit_set_default
+FUNC:ped_unregister_disk_type
+FUNC:raw_part_parse
+NOTYPE:__bss_start
+NOTYPE:_edata
+NOTYPE:_end
+OBJECT:12:linux_disk_ops
+OBJECT:16:_affs0_type
+OBJECT:16:_affs1_type
+OBJECT:16:_affs2_type
+OBJECT:16:_affs3_type
+OBJECT:16:_affs4_type
+OBJECT:16:_affs5_type
+OBJECT:16:_affs6_type
+OBJECT:16:_affs7_type
+OBJECT:16:_amufs0_type
+OBJECT:16:_amufs1_type
+OBJECT:16:_amufs2_type
+OBJECT:16:_amufs3_type
+OBJECT:16:_amufs4_type
+OBJECT:16:_amufs5_type
+OBJECT:16:_amufs_type
+OBJECT:16:_apfs1_type
+OBJECT:16:_apfs2_type
+OBJECT:16:_asfs_type
+OBJECT:16:fat16_type
+OBJECT:16:fat32_type
+OBJECT:1:fat16
+OBJECT:24:ops
+OBJECT:324:xfsstats
+OBJECT:4:ext2_buffer_cache_pool_size
+OBJECT:4:ext2_hash_bits
+OBJECT:4:ext2_relocator_pool_size
+OBJECT:4:hfs_block
+OBJECT:4:hfs_block_count
+OBJECT:4:hfsp_block
+OBJECT:4:hfsp_block_count
+OBJECT:4:ped_alignment_any
+OBJECT:4:ped_alignment_none
+OBJECT:4:ped_architecture
+OBJECT:4:ped_exception
+OBJECT:8:_bitmap
+OBJECT:8:ped_linux_arch
diff --git a/parted-1.8.7/scripts/extract_symvers b/parted-1.8.7/scripts/extract_symvers
new file mode 100755
index 0000000..8a74db9
--- /dev/null
+++ b/parted-1.8.7/scripts/extract_symvers
@@ -0,0 +1,67 @@
+#!/bin/sh
+
+# Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+#
+# This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
+# Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+# USA.
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction.  Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License.  This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+
+if test ${#} -lt 2 || test $1 = '--help'; then
+  echo "Usage:  extract_symvers  shared_lib output_file" 1>&2
+  exit 1
+fi
+
+lib=$1
+output=$2
+
+# GNU binutils, somewhere after version 2.11.2, requires -W/--wide to avoid
+# default line truncation.  -W is not supported and truncation did not occur
+# by default before that point.
+readelf="readelf --symbols"
+if readelf --help | grep -- --wide > /dev/null; then
+    readelf="$readelf --wide"
+fi
+
+# This avoids weird sorting problems later.
+LC_ALL=C
+export LC_ALL
+LANG=C
+export LANG
+
+tmp=extract.$$
+
+${readelf} ${lib} | sed '/\.dynsym/,/^$/p;d' | egrep -v ' (LOCAL|UND) ' |\
+awk '{ if ($4 == "FUNC" || $4 == "NOTYPE")
+         printf "%s:%s\n", $4, $8;
+       else if ($4 == "OBJECT")
+         printf "%s:%s:%s\n", $4, $3, $8;
+     }' | sort | uniq > $tmp 2>&1
+#       else printf "Huh?  What is %s?\n", $8;
+
+
+# I think we'll be doing some more with this file, but for now, dump.
+mv $tmp $output
+
+exit 0
diff --git a/parted-1.8.7/tests/Makefile.am b/parted-1.8.7/tests/Makefile.am
new file mode 100644
index 0000000..2948ae2
--- /dev/null
+++ b/parted-1.8.7/tests/Makefile.am
@@ -0,0 +1,10 @@
+TESTS = \
+  t0000-basic.sh \
+  t1000-mkpartfs.sh \
+  t2000-mkfs.sh
+
+TESTS_ENVIRONMENT = \
+  PATH="`pwd`/../parted$(PATH_SEPARATOR)$$PATH"
+
+EXTRA_DIST = \
+  $(TESTS) test-lib.sh
diff --git a/parted-1.8.7/tests/Makefile.in b/parted-1.8.7/tests/Makefile.in
new file mode 100644
index 0000000..fb154de
--- /dev/null
+++ b/parted-1.8.7/tests/Makefile.in
@@ -0,0 +1,595 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \
+	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/assert.m4 \
+	$(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/calloc.m4 \
+	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/closeout.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
+	$(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+	$(top_srcdir)/m4/double-slash-root.m4 \
+	$(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exitfail.m4 \
+	$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fpending.m4 \
+	$(top_srcdir)/m4/free.m4 $(top_srcdir)/m4/getopt.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/gnulib-common.m4 \
+	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
+	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/lib-ignore.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/localcharset.m4 \
+	$(top_srcdir)/m4/long-options.m4 $(top_srcdir)/m4/longlong.m4 \
+	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+	$(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memcmp.m4 \
+	$(top_srcdir)/m4/memcpy.m4 $(top_srcdir)/m4/memmove.m4 \
+	$(top_srcdir)/m4/memset.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/regex.m4 \
+	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rpmatch.m4 \
+	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
+	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdarg.m4 \
+	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stdint.m4 \
+	$(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strcspn.m4 \
+	$(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
+	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtod.m4 \
+	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/unistd_h.m4 \
+	$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \
+	$(top_srcdir)/m4/utimes-null.m4 $(top_srcdir)/m4/wchar.m4 \
+	$(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wint_t.m4 \
+	$(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrndup.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABSOLUTE_INTTYPES_H = @ABSOLUTE_INTTYPES_H@
+ABSOLUTE_STDINT_H = @ABSOLUTE_STDINT_H@
+ABSOLUTE_STDLIB_H = @ABSOLUTE_STDLIB_H@
+ABSOLUTE_STRING_H = @ABSOLUTE_STRING_H@
+ABSOLUTE_UNISTD_H = @ABSOLUTE_UNISTD_H@
+ABSOLUTE_WCHAR_H = @ABSOLUTE_WCHAR_H@
+ABSOLUTE_WCTYPE_H = @ABSOLUTE_WCTYPE_H@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+BUILDINFO = @BUILDINFO@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIBS = @DL_LIBS@
+DM_LIBS = @DM_LIBS@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETOPT_H = @GETOPT_H@
+GLIBC21 = @GLIBC21@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
+GREP = @GREP@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASECMP = @HAVE_STRCASECMP@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLINCS = @INTLINCS@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTTYPES_H = @INTTYPES_H@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OS_LIBS = @OS_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PARTEDLDFLAGS = @PARTEDLDFLAGS@
+PARTED_LIBS = @PARTED_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+REISER_LIBS = @REISER_LIBS@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+SED = @SED@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+TESTS = \
+  t0000-basic.sh \
+  t1000-mkpartfs.sh \
+  t2000-mkfs.sh
+
+TESTS_ENVIRONMENT = \
+  PATH="`pwd`/../parted$(PATH_SEPARATOR)$$PATH"
+
+EXTRA_DIST = \
+  $(TESTS) test-lib.sh
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+check-TESTS: $(TESTS)
+	@failed=0; all=0; xfail=0; xpass=0; skip=0; ws='[	 ]'; \
+	srcdir=$(srcdir); export srcdir; \
+	list=' $(TESTS) '; \
+	if test -n "$$list"; then \
+	  for tst in $$list; do \
+	    if test -f ./$$tst; then dir=./; \
+	    elif test -f $$tst; then dir=; \
+	    else dir="$(srcdir)/"; fi; \
+	    if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+	      all=`expr $$all + 1`; \
+	      case " $(XFAIL_TESTS) " in \
+	      *$$ws$$tst$$ws*) \
+		xpass=`expr $$xpass + 1`; \
+		failed=`expr $$failed + 1`; \
+		echo "XPASS: $$tst"; \
+	      ;; \
+	      *) \
+		echo "PASS: $$tst"; \
+	      ;; \
+	      esac; \
+	    elif test $$? -ne 77; then \
+	      all=`expr $$all + 1`; \
+	      case " $(XFAIL_TESTS) " in \
+	      *$$ws$$tst$$ws*) \
+		xfail=`expr $$xfail + 1`; \
+		echo "XFAIL: $$tst"; \
+	      ;; \
+	      *) \
+		failed=`expr $$failed + 1`; \
+		echo "FAIL: $$tst"; \
+	      ;; \
+	      esac; \
+	    else \
+	      skip=`expr $$skip + 1`; \
+	      echo "SKIP: $$tst"; \
+	    fi; \
+	  done; \
+	  if test "$$failed" -eq 0; then \
+	    if test "$$xfail" -eq 0; then \
+	      banner="All $$all tests passed"; \
+	    else \
+	      banner="All $$all tests behaved as expected ($$xfail expected failures)"; \
+	    fi; \
+	  else \
+	    if test "$$xpass" -eq 0; then \
+	      banner="$$failed of $$all tests failed"; \
+	    else \
+	      banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \
+	    fi; \
+	  fi; \
+	  dashes="$$banner"; \
+	  skipped=""; \
+	  if test "$$skip" -ne 0; then \
+	    skipped="($$skip tests were not run)"; \
+	    test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+	      dashes="$$skipped"; \
+	  fi; \
+	  report=""; \
+	  if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+	    report="Please report to $(PACKAGE_BUGREPORT)"; \
+	    test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+	      dashes="$$report"; \
+	  fi; \
+	  dashes=`echo "$$dashes" | sed s/./=/g`; \
+	  echo "$$dashes"; \
+	  echo "$$banner"; \
+	  test -z "$$skipped" || echo "$$skipped"; \
+	  test -z "$$report" || echo "$$report"; \
+	  echo "$$dashes"; \
+	  test "$$failed" -eq 0; \
+	else :; fi
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-TESTS check-am clean clean-generic \
+	clean-libtool distclean distclean-generic distclean-libtool \
+	distdir dvi dvi-am html html-am info info-am install \
+	install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/parted-1.8.7/tests/t0000-basic.sh b/parted-1.8.7/tests/t0000-basic.sh
new file mode 100755
index 0000000..6049e15
--- /dev/null
+++ b/parted-1.8.7/tests/t0000-basic.sh
Binary files differ
diff --git a/parted-1.8.7/tests/t1000-mkpartfs.sh b/parted-1.8.7/tests/t1000-mkpartfs.sh
new file mode 100755
index 0000000..37dc43a
--- /dev/null
+++ b/parted-1.8.7/tests/t1000-mkpartfs.sh
@@ -0,0 +1,69 @@
+#!/bin/sh
+
+# Copyright (C) 2007 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+
+test_description='Create some file systems using mkpartfs.'
+
+. $srcdir/test-lib.sh
+
+N=1M
+dev=loop-file
+test_expect_success \
+    'create a file too small to hold a fat32 file system' \
+    'dd if=/dev/zero of=$dev bs=$N count=1 2> /dev/null'
+
+test_expect_success \
+    'label the test disk' \
+    'parted -s $dev mklabel msdos > out 2>&1'
+test_expect_success 'expect no output' '$compare out /dev/null'
+
+# Expect parted's mkpartfs command to fail.
+test_expect_failure \
+    'try/fail to create a file system in too small a space' \
+    'parted -s $dev mkpartfs primary fat32 0 1 > out 2>&1'
+
+test_expect_success \
+    'create expected output file' \
+    'echo "Error: Partition too big/small for a fat32 file system." > exp'
+
+test_expect_success \
+    'check for expected failure diagnostic' \
+    '$compare out exp'
+
+test_expect_success 'clean up, preparing for next test' 'rm $dev out'
+
+#====================================================================
+# Similar, but with a file that's large enough, so mkpartfs succeeds.
+N=40M
+
+test_expect_success \
+    'create a file large enough to hold a fat32 file system' \
+    'dd if=/dev/zero of=$dev bs=$N count=1 2> /dev/null'
+
+test_expect_success \
+    'label the test disk' \
+    'parted -s $dev mklabel msdos > out 2>&1'
+test_expect_success 'expect no output' '$compare out /dev/null'
+
+test_expect_success \
+    'create an msdos file system' \
+    'parted -s $dev mkpartfs primary fat32 1 40 > out 2>&1'
+
+test_expect_success 'expect no output' '$compare out /dev/null'
+
+test_done
diff --git a/parted-1.8.7/tests/t2000-mkfs.sh b/parted-1.8.7/tests/t2000-mkfs.sh
new file mode 100755
index 0000000..e47da8f
--- /dev/null
+++ b/parted-1.8.7/tests/t2000-mkfs.sh
@@ -0,0 +1,45 @@
+#!/bin/sh
+
+# Copyright (C) 2007 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+
+test_description='Create some file systems using mkfs.'
+
+. $srcdir/test-lib.sh
+
+N=40M
+dev=loop-file
+test_expect_success \
+    'create a file large enough to hold a fat32 file system' \
+    'dd if=/dev/zero of=$dev bs=$N count=1 2> /dev/null'
+
+test_expect_success \
+    'label the test disk' \
+    'parted -s $dev mklabel msdos > out 2>&1'
+test_expect_success 'expect no output' '$compare out /dev/null'
+
+test_expect_success \
+    'create an partition' \
+    'parted -s $dev mkpart primary 1 40 > out 2>&1'
+
+test_expect_success \
+    'create an msdos file system' \
+    'parted -s $dev mkfs 1 fat32 > out 2>&1'
+
+test_expect_success 'expect no output' '$compare out /dev/null'
+
+test_done
diff --git a/parted-1.8.7/tests/test-lib.sh b/parted-1.8.7/tests/test-lib.sh
new file mode 100644
index 0000000..d6804cf
--- /dev/null
+++ b/parted-1.8.7/tests/test-lib.sh
@@ -0,0 +1,238 @@
+#!/bin/sh
+# Derived from git's t/test-lib.sh.
+# Copyright (c) 2005 Junio C Hamano
+
+# For repeatability, reset the environment to known value.
+LANG=C
+LC_ALL=C
+TZ=UTC
+export LANG LC_ALL TZ
+
+# Protect ourselves from common misconfiguration to export
+# CDPATH into the environment
+unset CDPATH
+
+# Each test should start with something like this, after copyright notices:
+#
+# test_description='Description of this test...
+# This test checks if command xyzzy does the right thing...
+# '
+# . ./test-lib.sh
+
+error () {
+	echo "* error: $*"
+	trap - exit
+	exit 1
+}
+
+say () {
+	echo "* $*"
+}
+
+test "${test_description}" != "" ||
+error "Test script did not set test_description."
+
+# If $srcdir is not set, set it, if it's ".".  Otherwise, fail.
+if test -a "$srcdir"; then
+    if test -f test-lib.sh; then
+	srcdir=.
+    else
+	error '$srcdir is not set; either set it, or run the test' \
+	    'from the source directory'
+    fi
+fi
+
+while test "$#" -ne 0
+do
+	case "$1" in
+	-d|--d|--de|--deb|--debu|--debug)
+		debug=t; shift ;;
+	-i|--i|--im|--imm|--imme|--immed|--immedi|--immedia|--immediat|--immediate)
+		immediate=t; shift ;;
+	-h|--h|--he|--hel|--help)
+		echo "$test_description"
+		exit 0 ;;
+	-v|--v|--ve|--ver|--verb|--verbo|--verbos|--verbose)
+		verbose=t; shift ;;
+	esac
+done
+
+exec 5>&1
+if test "$verbose" = "t"
+then
+	exec 4>&2 3>&1
+else
+	exec 4>/dev/null 3>/dev/null
+fi
+
+test_failure=0
+test_count=0
+
+trap 'echo >&5 "FATAL: Unexpected exit with code $?"; exit 1' exit
+
+# You are not expected to call test_ok_ and test_failure_ directly, use
+# the text_expect_* functions instead.
+
+test_ok_ () {
+	test_count=$(expr "$test_count" + 1)
+	say "  ok $test_count: $@"
+}
+
+test_failure_ () {
+	test_count=$(expr "$test_count" + 1)
+	test_failure=$(expr "$test_failure" + 1);
+	say "FAIL $test_count: $1"
+	shift
+	echo "$@" | sed -e 's/^/	/'
+	test "$immediate" = "" || { trap - exit; exit 1; }
+}
+
+test_debug () {
+	test "$debug" = "" || eval "$1"
+}
+
+test_run_ () {
+	eval >&3 2>&4 "$1"
+	eval_ret="$?"
+	return 0
+}
+
+test_skip () {
+	this_test=$(expr "./$0" : '.*/\(t[0-9]*\)-[^/]*$')
+	this_test="$this_test.$(expr "$test_count" + 1)"
+	to_skip=
+	for skp in $SKIP_TESTS
+	do
+		case "$this_test" in
+		$skp)
+			to_skip=t
+		esac
+	done
+	case "$to_skip" in
+	t)
+		say >&3 "skipping test: $@"
+		test_count=$(expr "$test_count" + 1)
+		say "skip $test_count: $1"
+		: true
+		;;
+	*)
+		false
+		;;
+	esac
+}
+
+test_expect_failure () {
+	test "$#" = 2 ||
+	error "bug in the test script: not 2 parameters to test-expect-failure"
+	if ! test_skip "$@"
+	then
+		say >&3 "expecting failure: $2"
+		test_run_ "$2"
+		if [ "$?" = 0 -a "$eval_ret" != 0 -a "$eval_ret" -lt 129 ]
+		then
+			test_ok_ "$1"
+		else
+			test_failure_ "$@"
+		fi
+	fi
+	echo >&3 ""
+}
+
+test_expect_success () {
+	test "$#" = 2 ||
+	error "bug in the test script: not 2 parameters to test-expect-success"
+	if ! test_skip "$@"
+	then
+		say >&3 "expecting success: $2"
+		test_run_ "$2"
+		if [ "$?" = 0 -a "$eval_ret" = 0 ]
+		then
+			test_ok_ "$1"
+		else
+			test_failure_ "$@"
+		fi
+	fi
+	echo >&3 ""
+}
+
+test_expect_code () {
+	test "$#" = 3 ||
+	error "bug in the test script: not 3 parameters to test-expect-code"
+	if ! test_skip "$@"
+	then
+		say >&3 "expecting exit code $1: $3"
+		test_run_ "$3"
+		if [ "$?" = 0 -a "$eval_ret" = "$1" ]
+		then
+			test_ok_ "$2"
+		else
+			test_failure_ "$@"
+		fi
+	fi
+	echo >&3 ""
+}
+
+test_done () {
+	case "$test_failure" in
+	0)
+		# We could:
+		# cd .. && rm -fr trash
+		# but that means we forbid any tests that use their own
+		# subdirectory from calling test_done without coming back
+		# to where they started from.
+		# The Makefile provided will clean this test area so
+		# we will leave things as they are.
+
+		say "passed all $test_count test(s)"
+		exit 0 ;;
+
+	*)
+		say "failed $test_failure among $test_count test(s)"
+		exit 1 ;;
+
+	esac
+}
+
+pwd_=`pwd`
+
+# Test the binaries we have just built.  The tests are kept in
+# t/ subdirectory and are run in trash subdirectory.
+PATH=$pwd_/../parted:$PATH
+export PATH
+
+t0=`echo "$0"|sed 's,.*/,,'`.tmp; tmp_=$t0/$$
+trap 'st=$?; cd "$pwd_" && chmod -R u+rwx $t0 && rm -rf $t0 && exit $st' 0
+trap '(exit $?); exit $?' 1 2 13 15
+
+framework_failure=0
+mkdir -p $tmp_ || framework_failure=1
+cd $tmp_ || framework_failure=1
+test $framework_failure = 0 \
+     || error 'failed to create temporary directory'
+
+this_test=$(expr "./$0" : '.*/\(t[0-9]*\)-[^/]*$')
+for skp in $SKIP_TESTS
+do
+	to_skip=
+	for skp in $SKIP_TESTS
+	do
+		case "$this_test" in
+		$skp)
+			to_skip=t
+		esac
+	done
+	case "$to_skip" in
+	t)
+		say >&3 "skipping test $this_test altogether"
+		say "skip all tests in $this_test"
+		test_done
+	esac
+done
+
+if ( diff --version < /dev/null 2>&1 | grep GNU ) 2>&1 > /dev/null; then
+  compare='diff -u'
+elif ( cmp --version < /dev/null 2>&1 | grep GNU ) 2>&1 > /dev/null; then
+  compare='cmp -s'
+else
+  compare=cmp
+fi
diff --git a/parted.patches/parted-50.description b/parted.patches/parted-50.description
new file mode 100644
index 0000000..0b215a5
--- /dev/null
+++ b/parted.patches/parted-50.description
@@ -0,0 +1 @@
+Remove unused workaround for 64-bit PGC compiler that's causing a build error for us. 
diff --git a/parted.patches/parted-50.patch b/parted.patches/parted-50.patch
new file mode 100644
index 0000000..ff5e90f
--- /dev/null
+++ b/parted.patches/parted-50.patch
@@ -0,0 +1,13 @@
+--- lib/regex_internal.h	2007-02-14 16:16:55.000000000 -0800
++++ lib/regex_internal.h	2014-04-30 18:34:31.110773635 -0700
+@@ -182,10 +182,6 @@
+ # if BITSET_WORD_BITS <= SBC_MAX
+ #  error "Invalid SBC_MAX"
+ # endif
+-#elif BITSET_WORD_MAX == (0xffffffff + 2) * 0xffffffff
+-/* Work around a bug in 64-bit PGC (before version 6.1-2), where the
+-   preprocessor mishandles large unsigned values as if they were signed.  */
+-# define BITSET_WORD_BITS 64
+ #else
+ # error "Add case for new bitset_word_t size"
+ #endif
diff --git a/parted.patches/parted-51.description b/parted.patches/parted-51.description
new file mode 100644
index 0000000..ae36216
--- /dev/null
+++ b/parted.patches/parted-51.description
@@ -0,0 +1 @@
+Remove inline keyword from function prototype. Function inlined in definition.
diff --git a/parted.patches/parted-51.patch b/parted.patches/parted-51.patch
new file mode 100644
index 0000000..c44823c
--- /dev/null
+++ b/parted.patches/parted-51.patch
@@ -0,0 +1,15 @@
+--- include/parted/natmath.h	2007-04-18 14:12:10.000000000 -0700
++++ include/parted/natmath.h	2014-04-30 18:37:22.487991387 -0700
+@@ -87,10 +87,10 @@
+ extern const PedAlignment* ped_alignment_any;
+ extern const PedAlignment* ped_alignment_none;
+ 
+-extern inline PedSector
++extern PedSector
+ ped_div_round_up (PedSector numerator, PedSector divisor);
+ 
+-extern inline PedSector
++extern PedSector
+ ped_div_round_to_nearest (PedSector numerator, PedSector divisor);
+ 
+ #endif /* PED_NATMATH_H_INCLUDED */
diff --git a/parted.patches/parted-52.description b/parted.patches/parted-52.description
new file mode 100644
index 0000000..ee0bf70
--- /dev/null
+++ b/parted.patches/parted-52.description
@@ -0,0 +1 @@
+Allow FAT fs images without MBRs
diff --git a/parted.patches/parted-52.patch b/parted.patches/parted-52.patch
new file mode 100644
index 0000000..f1d4b6a
--- /dev/null
+++ b/parted.patches/parted-52.patch
@@ -0,0 +1,16 @@
+--- libparted/labels/dos.c	2014-11-13 14:23:10.147494213 -0800
++++ libparted/labels/dos.c	2014-11-13 14:28:54.262031054 -0800
+@@ -173,10 +173,12 @@ msdos_probe (const PedDevice *dev)
+ 	 * Loader (SBML) signature indicates a partition table, not a file
+ 	 * system.
+ 	 */
+-	if ((!strncmp (part_table.boot_code + 0x36, "FAT", 3)
++       /* check below commented out to allow FAT fs images without a MBR */ 
++/*	if ((!strncmp (part_table.boot_code + 0x36, "FAT", 3)
+ 	    && strncmp (part_table.boot_code + 0x40, "SBML", 4) != 0)
+ 	    || !strncmp (part_table.boot_code + 0x52, "FAT", 3))
+ 		return 0;
++*/
+ 
+ 	/* If this is a GPT disk, fail here */
+ 	for (i = 0; i < 4; i++) {
diff --git a/parted.patches/parted-53.description b/parted.patches/parted-53.description
new file mode 100644
index 0000000..2d86718
--- /dev/null
+++ b/parted.patches/parted-53.description
@@ -0,0 +1 @@
+O_DIRECT mode unsupported in Sapphire
diff --git a/parted.patches/parted-53.patch b/parted.patches/parted-53.patch
new file mode 100644
index 0000000..0385e2b
--- /dev/null
+++ b/parted.patches/parted-53.patch
@@ -0,0 +1,11 @@
+--- libparted/arch/linux.c	2014-11-13 14:23:10.147494213 -0800
++++ libparted/arch/linux.c	2014-11-13 15:18:09.673789395 -0800
+@@ -65,6 +65,8 @@
+ #define HDIO_GETGEO             0x0301  /* get device geometry */
+ #define HDIO_GET_IDENTITY       0x030d  /* get IDE identification info */
+ 
++/* O_DIRECT mode not supported in Sapphire */
++#undef O_DIRECT
+ #if defined(O_DIRECT) && (!defined(__s390__) || !defined(__s390x__))
+ #define RD_MODE (O_RDONLY | O_DIRECT)
+ #define WR_MODE (O_WRONLY | O_DIRECT)
diff --git a/parted.tar.gz b/parted.tar.gz
new file mode 100644
index 0000000..8bea1e0
--- /dev/null
+++ b/parted.tar.gz
Binary files differ
diff --git a/parted.url b/parted.url
new file mode 100644
index 0000000..fe8720b
--- /dev/null
+++ b/parted.url
@@ -0,0 +1 @@
+http://ftp.gnu.org/pub/gnu/parted/parted-1.8.7.tar.gz
diff --git a/parted.version b/parted.version
new file mode 100644
index 0000000..88d3ee7
--- /dev/null
+++ b/parted.version
@@ -0,0 +1 @@
+1.8.7